User talk:Tmservo

From Robowiki
Jump to navigation Jump to search
package Josewong;
import robocode.*;
//import java.awt.Color;

// API help :

 * Invertigo - a robot by (your name here)
public class Invertigo extends Robot
	 * run: Invertigo's default behavior
	public void run() {
		// Initialization of the robot should be put here

		// After trying out your robot, try uncommenting the import at the top,
		// and the next line:

		// setColors(,,; // body,gun,radar

		// Robot main loop
		while(true) {
			// Replace the next 4 lines with any behavior you would like

	 * onScannedRobot: What to do when you see another robot
	public void onScannedRobot(ScannedRobotEvent e) {
		// Replace the next line with any behavior you would like

	 * onHitByBullet: What to do when you're hit by a bullet
	public void onHitByBullet(HitByBulletEvent e) {
		// Replace the next line with any behavior you would like
	 * onHitWall: What to do when you hit a wall
	public void onHitWall(HitWallEvent e) {
		// Replace the next line with any behavior you would like
package Josewong;
import robocode.*;

// API help :

 * InvertigoJunior - a robot by (your name here)
public class InvertigoJunior extends JuniorRobot
	 * run: InvertigoJunior's default behavior
	public void run() {
		// Initialization of the robot should be put here

		// Some color codes: blue, yellow, black, white, red, pink, brown, grey, orange...
		// Sets these colors (robot parts): body, gun, radar, bullet, scan_arc
		setColors(orange, blue, white, yellow, black);

		// Robot main loop
		while(true) {
			// Replace the next 4 lines with any behavior you would like

	 * onScannedRobot: What to do when you see another robot
	public void onScannedRobot() {
		// Replace the next line with any behavior you would like

	 * onHitByBullet: What to do when you're hit by a bullet
	public void onHitByBullet() {
		// Replace the next line with any behavior you would like
	 * onHitWall: What to do when you hit a wall
	public void onHitWall() {
		// Replace the next line with any behavior you would like

I am actually Josewong from wikia My name is Augustus Joseph Wong and my location is 7129 Beverly Street, 66204,


Thread titleRepliesLast modified
Did anyone have trouble logging in302:21, 29 October 2014
Best Beginner MegaBot Contest123:43, 17 September 2014
Wiki postings619:01, 22 July 2014
here's a warning016:28, 20 March 2014
literumble needs update1401:42, 18 March 2014
what's the secret to making a good robot in robocode3916:06, 20 December 2013
kms.golden vs basicgfsurfer105:28, 19 December 2013
FoilistMicro vs EpeeistMicro103:04, 19 December 2013
dcbot targeting or gftargetingbot targeting200:43, 19 December 2013
java file multiple class files108:25, 18 December 2013
how do i post source code104:05, 16 December 2013
best robot exactly ten lines407:18, 14 December 2013
how to make a X-tree103:54, 12 December 2013
best guessfactor place102:54, 12 December 2013
pattern surfer002:53, 5 December 2013
proof that literumble win percentage is broken103:23, 30 November 2013
does bin smoothing make guns better or worse803:09, 26 November 2013
netbeans vs eclipse114:24, 23 November 2013
AW's kd-tree1500:38, 15 October 2013
Skilgannon's kd-tree3020:43, 11 October 2013
First page
First page
Next page
Next page
Last page
Last page

Did anyone have trouble logging in

Because RoboWiki Forcibly logged me off and wouldn't let me log in until this day Did anyone else have that same problem

Tmservo (talk)09:02, 28 October 2014

From Oct 19th to 24th, the server had an out of disk space condition. That was causing failed logins among other things. That's fixed now.

Rednaxela (talk)14:44, 28 October 2014

This explains my troubles as well. The wiki was complaining about cookies not set and did not let me in.

Do we have a secondary channel to notify admins if something of similar nature will come up again?

Beaming (talk)15:26, 28 October 2014

For my part, I can be contacted at áĺêẍ@śťṙḁṅḡĕãúťǒṃẚṱấ,ćőṃ (remove accents, they're an anti-spam measure). As they posted on Contacts, Voidious and Skilgannon who have the same level of admin access as I do can be contacted at voidious and jkflying respectively on ḡḿẚḭḽ

Rednaxela (talk)02:21, 29 October 2014

Best Beginner MegaBot Contest

Edited by author.
Last edit: 23:43, 17 September 2014
1: You must be a beginner with some coding experience
2: You cannot copy a bot
3: Bot must be GNU GPL any version
4: Participants must sign up now by replying to this thread
5: The winner is the person who creates the best robot
6: Benchmark robots are all 12 wiki. prefix robots including BasicGFSurfer
7: The best robot is the best scoring robot against all 12 wiki. prefix robots
8: 1v1 for all 12 wiki. prefix robots
Tmservo (talk)17:06, 17 September 2014

Tmservo, your categories are not defined and thus make sense only in your head.

Who is qualified as beginner? What is the metric? Is it a time devoted to robocode or success of a typical bot from an author?

Which 12 wiki bots are you referring to? What if some one add one more wiki bot?

Is this competition 1on1 or melee?

The part about "stolen" and "permission" seems to be redundant. What if someone use one of the top bots distributed with permissive license? Are they good to participate?

Beaming (talk)23:32, 17 September 2014

Wiki postings

Edited by author.
Last edit: 04:30, 12 December 2013

Please don't think that I want you to leave. I am complaining. I would like the questions (in their current form) to stop. But I'd also like a new member of the community. The following are my suggestions for how to ask questions on the robowiki:

1) Make sure your question is closely related to Robocode. It can be about algorithms that are not specific to Robocode, but it should be about the algorithms as applied to Robocode.

2) Make sure you punctuate your questions. It's not hard. Furthermore, it makes them easier to read.

3) Make sure you pay attention to the answers you receive. Read them before replying.

4) Make sure you thank people for helping you. We are all busy and have other things to do.

5) Make sure you have some understanding of the subject about which you are asking. If you don't, answering your questions isn't worth our time.

6) Make sure you search for an answer to the question before asking it. Use the search box in the left and/or google unless you know the information isn't easily available.

I'm glad you are interested in what I found to be the best way to learn programming, but I think that following the above guidelines will help you to learn.

Do you have any questions? Ask away.

AW (talk)03:55, 12 December 2013

Yep, I'm a jerk.

Punctuation error: "If you don't answering your questions isn't worth our time." Comma should be added after don't

BeastBots101 (talk)03:59, 12 December 2013

Actually, I think the comma is optional on a short introductory phrase, such as the one I used. I'll include it anyways. More importantly(,) I ended a sentence with a preposition and said that the search box was on the right... It's better now.

AW (talk)04:07, 12 December 2013

Actually, it appears that I'm wrong and the comma is required for introductory clauses. Introductory phrases need commas depending on the length of the phrase.

AW (talk)04:10, 12 December 2013

As am I.

"Make sure your question is closely related to [Robocode]. It can be about algorithms that are not specific to [Robocode], but [it] should be about the algorithms as applied to [Robocode]."

Sheldor (talk)04:11, 12 December 2013

Good advice, and kind of you to take the time to post this.

Voidious (talk)06:15, 12 December 2013

Hi Tmservo, Welcome to the RoboWiki. Are you Human?

(is Skilgannon's 'new Bot' designing itself now? )

) Cheers
Jlm0924 (talk)19:01, 22 July 2014

here's a warning

i think i may have used too many dual accounts using my 2 accounts so i might no longer be chatting on

Tmservo (talk)16:26, 20 March 2014

literumble needs update

Tmservo (talk)13:11, 11 March 2014


literumble needs your CPU cycles and not update. There is only one person who is currently donating CPU cycles to battle runs, no wonder there are almost no updates. [1]

P.S. Tmservo, it is hard to read a mind of a person. Please, add description/words to your posts, not just links or pictures.

Beaming (talk)15:25, 11 March 2014

i meant update via RoboRumble client and i need A Robocode because i Updated to a long time ago P.S what version do you use beaming

Tmservo (talk)06:51, 12 March 2014

I use since it the latest from which rumble accept stats.

I would prefer since it seems to have a faster graphics in comparison to newer versions and I like to use for my internal program/debug/observe cycle.

Beaming (talk)04:32, 13 March 2014

what versions are compatible with roborumble

Tmservo (talk)10:21, 13 March 2014

If you go to the rumble statistic page you will see: Allowed Robocode versions: ['', '']

Beaming (talk)15:03, 13 March 2014

The reason only and are allowed is because they both have a bug which affects the scores, giving top bots a slightly lower score. If we want to switch to new versions we will have to delete all data and start fresh, because new versions fix the bug.

Skilgannon (talk)17:06, 15 March 2014

I think it is better to allow newer version to participate and to regenerate stats. It might boost number of contributors.

Robocode is hard enough to start. Not everyone will have enough patience to see that it requires older version for rumble. Besides it is better to debug/prototype a bot with the same version of robocode and rumble.

Beaming (talk)21:17, 15 March 2014

Suggestion about switching to newer versions.

If literumble kept separate average scores for each version on each pairing, it could support multiple versions at the same time.

And, maybe, using the version of the last upload on each pairing as the main version. Contributors could gradually upgrade their clients without need to reset the whole database.

Unused old version stats could be deleted after some time to free space.

MN (talk)18:54, 16 March 2014

what's the secret to making a good robot in robocode

what is it please tell me

Tmservo (talk)00:46, 16 December 2013

The secret is to copy other peoples code, since clearly there is no other way to make anything that competes.

Straw (talk)02:38, 16 December 2013

- Understanding of the rules of the game, which means Robocode physics and scoring system.

- Understanding of the Java technology, including deep knowledge of Robocode API.

- Understanding of competition mechanics, like game theory.

Looking what other robocoders are doing helps a lot. Most strategies are a combination of the 3 elements above, but starting from where others are now is more efficient than trying to reinvent the wheel and figuring out everything by yourself.

How do you now where others are now? Browse this wiki, there is A LOT of information here. Reverse engineering code from the top bots also helps, but only after you are familiar with most of the concepts.

MN (talk)03:14, 16 December 2013

MN's response is far more helpful than mine, you should take that advice. I learned about robocode relatively recently and I found that reading basically the entire wiki helped a lot.

Straw (talk)03:51, 16 December 2013

To quote Skilgannon (slightly out of context):

"I'm good at producing a top scoring bot, I'm not arguing that, but I'm better at optimising code so it runs quickly/small and then just using a feature 10x more than anybody else ever has before. Examples are the 100+ buffers in DrussGT, surf-absolutely-everybody in Neuromancer, multiple-choice pattern matching in Toorkild. We'd already had multiple buffers, melee surfing, micro pattern matching, non-micro multiple-choice pattern matching, so nothing I did was really new, I just squeezed every last drop of performance out that it had to give. I guess my real claim to fame is variable-distance Stop-And-Go, the rest is my interpretation of the wealth of knowledge already available on the wiki =) I guess the moral of the story is to think big!"

Sheldor (talk)04:13, 16 December 2013

There is a lot more to DrussGT than simply a bunch of buffers.

I think multiple buffers are the weakest part of DrussGT. Replacing the bins with k-NN search in movement would make it even stronger.

State of the art go-to surfing, anti-pattern matching, flattener, surf 2 waves, wall smoothing, super strong dynamic clustering gun, data decay, anti-surfer gun, genetic tuning, precise MEA, gun heat waves, super survivalist energy management, bullet shadows...

MN (talk)05:06, 16 December 2013

Agreed, there's a lot more to Skilgannon's success than a willingess to "go big" and squeeze harder. It's tough to go bigger or squeeze harder without your system breaking down. But we humans are narrative-oriented and Skilgannon's a humble guy, so he comes up with a humble narrative. ;)

Voidious (talk)18:12, 16 December 2013

That quote seems like an example of Survivorship Bias to me:

Just because Skilgannon is the champ doesn't mean his memory of the approach he took is the best approach (or even above average).

Voidious (talk)18:16, 16 December 2013

Kicking myself for missing the chance to link to a much cooler post about Survivorship Bias. :-)

Voidious (talk)19:31, 16 December 2013

Hi! I think, that Tomcat is pretty good robot, so i can publish my humble opinion:)

First of all, Skilgannon, imho, is the best robocoder ever, i remember how easy he retake first place in PL, when Tomcat try to get it. And it's impossible for me to understand:) He just from another planet and cannot be understood by regular humans:) So don't try to beat him, until beat other regular humans:)

Secret of others top bots is pretty simple: passion, hard work and attention to details. And don't try reinvent the wheel, until beat other regular humans:) With Tomcat (initially Jdev, later UltraMarine, later Primarch) i spent two years trying to reinvent the wheel and in result fail with it. Then in two months i just implement all known best practises and take 50th place. And after four or five months i take 3rd place. If you will look at Tomcat's history, then find out, that most of changes was small tweaks and bugfixes.

I can give few technical advices:

  1. Start with implementing of all known best practises
  2. Fix all bugs in implementation
  3. Watch at your bot in battle - it is only way to catch many types of bugs
  4. Visualize your bot's data
  5. Move by small steps
  6. Use strong build and test precess with VCS, automatically versioning, batch battles execution etc. So you can say "Bot of version V from revision R with changes Cs, has following results: RES"

And about reinventing the wheel: i think that Tomcat is little reinventer and he still top bot because with PIF-gun and pretty unique movement logs system he is very strong against weak bots, and pretty unpredictable for strong bots. But i'm not master of robocode, so here i may be wrong

So be passionate, work hard and you will find success:) I pleases, that robocode cummunity is still active and here still appears new robocoders

Good luck!

P.S: as usual, sorry for my english

Jdev (talk)09:04, 17 December 2013

First thanks to all for the praise I've recieved on the thread =) I don't think I'm superhuman, but I know that I do approach problems from a different perspective than most people.

I don't think I've discussed much is about the process I go through when I make gains. These are typically from three things:

  1. Adding a new behaviour that has already been shown to improve performance, or creating a new behaviour that might improve performance and then testing it to death over lots of battles to see if it actually helped.
  2. Fixing bugs. Enough said.
  3. Speeding up code to make the skipped turn behaviour more predictable, and add spare CPU/memory capacity for future features

So absolutely, I agree with what JDev has said here: make it work, make it right, make it fast.

One other thing that I have to recommend is to not make ANY assumptions about enemy or bot behaviour. If you do make an assumption, do a bunch of tessts and check that the data supports your assumption. And once your feature is implemented, see if there is any way you can get rid of the assumption and thus take advantage of the cases where it isn't true.

Skilgannon (talk)16:35, 17 December 2013

About making assumptions of opponents, it can be done, but not in the way many people do it. That's where game theory kicks in.

The best assumption you can make is that opponents are also trying to outperform you. You are not the only one trying to climb the ranking. That said, any assumption you make might be used against you. The higher the ranking of a competitor, the stronger this statement becomes.

Most attempts at exploiting opponents weaknesses also open yourself to weaknesses. Skillgannon's approach of not making assumptions is all about not exposing yourself to weaknesses.

A good example is most bots trying to crush anyone behaving like SittingDuck. The best targeting against SittingDuck is Head-On Targeting. But Head-On Targeting is shamefully predictable. Many bots still do it. Look what happened when EnergyDome exploited that.

MN (talk)18:05, 18 December 2013

High ranking bots make all sorts of assumptions really. Guessfactors that are so commonly used as a way to predict the opponant's movement, contain some (loose) assumptions about how the opponant's movement at least vaguely related to where you fired from. Most targeting systems also make the assumption that the opponant acts symmetrically when going backwards versus forwards. Those two assumptions can be quite easily broken, but they're not easily exploitable because breaking them would not make you more unpredictable to those using the incorrect assumptions, it would merely make you more predictable to those who *don't* make the assumptions.

One just has to distinguish between assumptions which are sufficiently safe, and are not sufficiently safe.

Rednaxela (talk)20:13, 18 December 2013

I actually don't feel like GFs make any major assumptions besides clockwise vs counter-clockwise being treated the same. And it would take some actual effort to make that assumption false. The firing angle you use is relative to where you are firing from, regardless of how the enemy moves. And that's the output you need from a targeting algorithm, not the exact location of an enemy.

Voidious (talk)22:12, 18 December 2013

kms.golden vs basicgfsurfer

which is better

Tmservo (talk)05:13, 19 December 2013

These "which is better" questions for seemingly random bots aren't good questions. Besides, if you want to know I suggest you just check the comparison page on the roborumble server instead of making a thread here. If you have a question about a bot that's fine, but "which is better" is not a very useful question and you can get your answer on your own like from the link above.

Rednaxela (talk)05:28, 19 December 2013

FoilistMicro vs EpeeistMicro

why is FoilistMicro worse than EpeeistMicro

Tmservo (talk)00:38, 19 December 2013

Generally, Dynamic Clustering is better than traditional GFT. However, DC also requires more codesize. I had to cut the gun down to three dimensions, instead of EpeeistMicro's five segments. I also had to cut back the movement mode selection, energy management, and anti-ram behavior.

Sheldor (talk)03:04, 19 December 2013

dcbot targeting or gftargetingbot targeting

which is better

Tmservo (talk)02:15, 17 December 2013

I use gftargetingbot. dcbot has some wierd glitches on my client.

Kimstron (talk)07:44, 18 December 2013

Sorry about my poor capitalization there. Adding on, GFTargetingBot is (I think) simpler.

Kimstron (talk)00:43, 19 December 2013

java file multiple class files

how does one java file become multiple class files

Tmservo (talk)05:53, 18 December 2013

You're probably referring to what happens when one defines nested/inner/anonymous classes inside another class's java source file.

Rednaxela (talk)08:25, 18 December 2013

how do i post source code

how do i post source code

Tmservo (talk)01:17, 16 December 2013

Just copy the code you want to post, and then paste it in between "syntaxhighlight" tags on whatever page you want to post.

Sheldor (talk)04:05, 16 December 2013

best robot exactly ten lines

Edited by author.
Last edit: 04:12, 11 December 2013

what is the best robot that you can make without using more than ten lines of codes

Tmservo (talk)00:55, 10 December 2013

Perhaps if you included reasons in more of your questions, you would get more responses. As it is, you seem to be asking rather arbitrary questions to which the answers seem irrelevant.

Straw (talk)07:39, 10 December 2013

Who knows? Not all bots are open source, and I agree with straw that this is not really relevant.

BeastBots101 (talk)02:55, 12 December 2013

Given that new line characters in Java are optional, this robot is better than DrussGT. Also, I think that the "no free lunch theorem" rather limits what can be postulated of said hypothetical robot. But seriously, I'm finding your questions rather annoying. Could you please try using punctuation, multiple sentences, and acknowledging that you understand what we tell you?

Also, questions like "How do I make an X-tree?" don't really belong here. This isn't a general programming forum, and if you can't understand it by using google, you probably need to spend more time increasing your coding skills rather than asking what the best ______ in robocode is. I know we try to be welcoming on the robowiki, and people were very patient with me, but I think it seems like you need to learn more programming before you should worry about most of the questions you are asking. In fact, I'd say learning more programming would make it so you would never ask this question.

I don't mean to scare you away, but some of your questions seem to indicate that you need to learn more about programming. If you have questions about why the GF tutorial does certain things, then please ask them. If you're wondering how to write a priority R tree, then I don't think we'll have the time to help you.

AW (talk)03:41, 12 December 2013

Adding on, try not to be demanding in your questions... "Somebody answer this" or "Why won't anybody post a reply" are not really relevant. Responses usually take hours or even days to come. Be patient. This is also in the wiki postings thread.

And me being 10 minutes after AW is a coincidence.

And I HAD no programming skills earlier. I'm currently still a Robocode Noob and learning java.

BeastBots101 (talk)03:52, 12 December 2013

how to make a X-tree

how do i make a X-tree

Tmservo (talk)00:23, 17 October 2013

Is that even robocode?

BeastBots101 (talk)03:54, 12 December 2013

best guessfactor place

which bot is the best bot that doesn't use dynamic clustering

Tmservo (talk)03:09, 8 December 2013

Most top bots use DC in their movement.

As for guns, Tomcat is the best bot without DC but does not use GF. XanderCat is the best bot with a GF gun but has multiple guns to go with it(it's not completely GF). The best bot with a single GF gun that I know of is WaveSerpent(Gilgalad has 2 GF guns).

By the way... you could have easily found out yourself. Look at the bots wiki pages.

BeastBots101 (talk)02:54, 12 December 2013

pattern surfer

a pattern surfer is a surfer that uses pattern matching and play it forward in it's movement

Tmservo (talk)02:53, 5 December 2013

proof that literumble win percentage is broken

Tmservo (talk)02:26, 30 November 2013

There have always been strange artifacts when the rumble hasn't stabilized yet. Look again when it is stable.

Chase03:23, 30 November 2013

does bin smoothing make guns better or worse

Edited by author.
Last edit: 14:25, 21 November 2013

can someone tell me if bin smoothing makes guns radar movement better or worse

Tmservo (talk)06:52, 21 November 2013

It doesn't do much for guns, but it helps a lot for wave surfing.

Skilgannon (talk)08:17, 21 November 2013

In movement, Bin Smoothing helps bots dodge bullets with a margin of safety.

In radar, why would you use bins?

In guns, Bin Smoothing helps spot crowds in melee/team if combined with swarm targeting. In 1v1 I don't see any use.

MN (talk)02:52, 23 November 2013

see even the pros learn when they post about stuff

Tmservo (talk)05:18, 23 November 2013

@MN and Skilgannon: While those things are true, I think those descriptions miss the underlying point of why bin smoothing is helpful. In both targeting and dodging, what one is trying to do is to estimate the PDF (probability density function) curve of the opponent's movement/targeting. Whenever one is estimating a PDF curve (not just in Robocode) from a finite number of observations, and the system has some inherent noise or unpredictability, it will give a more accurate estimation of the true PDF curve if one applies the correct amount of smoothing. Now, how much is the "correct amount" is a complicated question that depends on how much noise/uncertainty your measurements have, how much noise/uncertainty the process being measured has, and how many measurements you have (reminds me of Kalman filters, similar principals come into play). In Robocode most people just pick a certain amount of bin smoothing that seems to work for them, but I feel it is worth pointing out that this is just one application of PDF curve estimation, and that there are methods of estimating the correct amount of smoothing which to my knowledge have not yet been applied to Robocode. (I'd guess you two already are well aware of this, but I just feel like rambling)

Rednaxela (talk)21:52, 23 November 2013

Instead of applying methods of estimating the correct amounts of bin smoothing, people tend to switch to kernel density and tune the kernel function. There was a lot of discussion about the best kernel function and the best function width. The optimal changes for each opponent and some kind of averaging is needed, which is usually estimated through genetic tuning.

In guns, smoothing usually has no effect because you don't need to estimate the PDF, you only need to find the peak. But when you superpose many PDFs together (swarm targeting), things change.

MN (talk)02:51, 25 November 2013

Estimating the PDF can still a useful component of finding the peak when not superimposing things, particular when the density of observations is sufficiently low. The main reasons you don't see much effect in targeting is that the usual bin sizes inherently act similar to a certain amount of smoothing anyway, and for targeting you have a larger number of observations than movement which reduces the amount of smoothing that makes sense as well. Consider what happens when your bins are significantly smaller than what is typical without any additional smoothing. (A targeting system that accounts for botwidth also reduces the amount of smoothing that makes sense, but that's a bit of a different matter)

Rednaxela (talk)15:41, 25 November 2013

For me two things make smoothing more useful in movement than in targeting:

  1. Movement needs to estimate probability at arbitrary points, instead of a single peak, so the location the probability is required at isn't related to where data is available.
  2. Movement has much less data than targeting, so smoothing is needed to fill in gaps in knowledge.

Theoretically smoothing might help in targeting, but all my testing has shown that a simple square kernel works just as well or better, while running many times faster.

I've also considered something like Kalman filters, but they are Unimodal which doesn't work for targeting or movement at all. Perhaps particle filters, although the histogram filters we have right now in VCS also work pretty well.

Skilgannon (talk)23:07, 25 November 2013

re: why in movement, agreed 100%.

With WaveSim, I've tested different kernel densities (effectively smoothing formulas) in my main gun over a huge data set. There were differences, but IIRC on the order of thousandths of a percent in hit percentage (eg 12.004% vs 12.002%). Not sure of the margin of error, either... 5k battles * ~25k ticks = millions of records, and both algorithms were running on the same data set.

Voidious (talk)02:56, 26 November 2013

netbeans vs eclipse

which is better netbeans or eclipse

Tmservo (talk)02:19, 22 November 2013

I use Eclipse. I don't use NetBeans in years, so I can't really compare the new versions against each other.

But in general terms, most of Eclipse features are based on plug-ins, which means you won't find all the features you need on the basic installation, but there should be a plug-in somewhere doing what you need. NetBeans is a fixed pack, if it has everything you need then it's fine, if not, then you will need additional tools outside NetBeans.

MN (talk)14:24, 23 November 2013

AW's kd-tree

how fast is Andrew Wells kd-tree

Tmservo (talk)13:17, 8 October 2013

How Fast Is Andrew Wells KD-TREE

Tmservo (talk)23:33, 10 October 2013

I suggest you stop worrying about how fast a particular kd-tree is and just use one of them. The top few kd-trees are all very similar in performance and I am sure each have their pro's and cons. I personally still use Rednaxela's Gen 2 tree because of how self contained it is (vs his Gen 3 which has more structure).

Chase06:10, 11 October 2013
Edited by author.
Last edit: 20:43, 11 October 2013

If you were using it for Robocode I don't think you'd be worrying about which one. What are you using the tree for?

Skilgannon (talk)18:27, 11 October 2013
Edited by another user.
Last edit: 22:30, 12 October 2013

The tree that I have, is approximately as fast as rednaxela's 2nd gen. (slightly faster in my tests). Are you trying to write a kd-tree or just looking for one to use? As far as I know, jk's tree, rednaxela's tree, and my tree are all quite similar. Bucket kd-tree. No recursive search methods. Use a MBR (minimum bounding rectangle). Use a heap to store the points. I think rednaxela was the first to introduce most of those ideas to robocode, but in my tests, mine was slightly faster and presumably the same can be said of JK's tests.

AW (talk)20:35, 11 October 2013
Edited by author.
Last edit: 21:34, 11 October 2013

there is no kd-tree at but there is kd-tree inside gilgalad

Tmservo (talk)20:45, 11 October 2013

Soooo, I've been staying out of this because I have nothing constructive to offer... But FYI, the fact you ignore pretty much every question someone asks makes you seem suspicious. And asking/demanding things without listening makes you seem rude.

If you'd engage in a conversation and tell us your situation, we could probably offer you a lot more help. If you're doing something shady, like cheating on homework, and that's why you're being so secretive, we probably don't want to help.

Voidious (talk)21:05, 11 October 2013

Skilgannon's kd-tree

is Julian Kent's kd tree faster than Rednaxela's or is it the other way around

Tmservo (talk)08:45, 4 October 2013

They're pretty much tied. Mine might be a little faster on systems where the data in the Kd-Tree is frequently pushed out of cache.

Skilgannon (talk)13:28, 4 October 2013

is third generation Rednaxela faster than Julian Kent

Tmservo (talk)13:38, 4 October 2013

No, as I said above, they are mostly the same except for cache conditions.

Skilgannon (talk)15:07, 4 October 2013

what about second generation Rednaxela and first generation Rednaxela

Tmservo (talk)23:22, 4 October 2013

3rd gen is the fastest of Rednaxela's trees. There's also a k-NN algorithm benchmark if you want to run some tests.

Voidious (talk)02:32, 5 October 2013
First page
First page
Next page
Next page
Last page
Last page