[Home]ImperfectPerfection

Robo Home | Changes | Preferences | AllPages

I'm putting this toguether since WaveSurfing is getting so much adepts. -- Axe

The problem

Since a lot of people is focusing in getting their WaveSurfing working perfectly, I thinked that it would be a good idea to write this page explaining a particularity in the RoboRumble rating system (ELO).
ELO rating system gives higher points to higher scoring differences (%), this is why WaveSurfing is so profitable (since it allows u to score above 99% against HOTs).
So, getting a perfect score (100%) against a bot sounds a very good idea, right? The answer is DEFINITELY NO! 100% scores actually would give u infinite points, and for obvious reasons the RoboRumble server simply discard those results! Some people could think that this is a flaw, but i don't think so... My thoughts might sound very subjective, but there they go:

Scoring diff. ELO calculated rating
50.00% 0.0
60.00% 108.3
70.00% 226.3
80.00% 370.2
90.00% 586.8
95.00% 786.3
99.00% 1227.0
99.90% 1844.0
99.99% 2460.0
100.00% Double.POSITIVE_INFINITY

The values of the table above where calculated via ELOCalculator

The solution

It's a pitty throw off such a beatifull result as this, donīt u think? Many people already knows that, and have protected their bots againt it. Here is the algo that is implemented in SilverSurfer (i think that RaikoMX and CassiusClay have a similar approch):

Chat

... and then the losing bot does this:

 System.out.println();
It really works. -- Jonathan

??? Didnt understand what u mean???? -- Axe

It's somekind of pull-the-pin-and-swallow-the-granade technique? Do u mean that System.out.println() disables the bot? If so, itīs strange, i use this to print in my bot and never got disabled... -- Axe

Using System.out disables a bot for me (Robot.out doesn't). So if the losing bot tries to print on it there's no way for the (im)perfect bot to get a <100% score. -- Jonathan

I use System.out all the time. Never seen it disable anything. What's the error message, if any? -- PEZ

Strange. Now I tried it again it doesn't get some security exception plus being disabled. It even prints to the bot's own PrintStream?. I'm going to look at that... -- Jonathan

Can u run SilverSurfer (or CassiusClay) in your computer, and see if it gets disabled? -- Axe

All the bots I downloaded have always worked, regardless of the PrintStream? they used (finally took some time to actually look at their source now). Really strange. -- Jonathan

iirc, the Robocode code :) redirects the System.out so, i would be surprised if System.out violates the SecurityManager?... Unless, obviously, that u do something like: int i=0, System.out.println(9/i);... Anyway, thanks for testing. -- Axe

Probably something else (seemingly insignificant) in the code that was changed at the same time you switched streams pointers.

On the issue of this page. I know I am one that has wined about the extreme rating adjustments that's the result of a near 100% score. But a few weeks ago I started to think about the peculiarity that the raw score percentage rankings are identical to the ELO ones. Check out: http://rumble.robowiki.net/servlet/PremierLeague?game=roborumble&table=2 And. Yes, I do have perfection protection in CassiusClay. But I'm thinking of removing it. It's not too often CC shuts out an opponent anyway and when it does the RR@H clients keep running that pairing until the losing bots get at least 1 point. Things will probably sort themselves out I figure. On the other hand I wonder if we couldn't just fix this at the server end by setting any bots score to Math.max(1, uploaded_score). -- PEZ

@PEZ: Considering the current RR@Home client, I have a question about that phrase: "...the RR@H clients keep running that pairing until the losing bots get at least 1 point.". Doesnīt the client run with priority the battles only until 500 matches? Letīs say that u have a perfect WaveSurfer that allways scores 100% against HOTs... Even if the client re-run those 100% battles u will still score 100%, and never gain those deserved points, right? Of course that bot is hypothetic. -- Axe

I think that the client not only ensures 500 battles, but that it also tries to complete all bots pairing tables. Tell you this, when I have made that perfect surfer I will not hesitate to protect against 100% scores. =) -- PEZ

--David Alves

Whhhooooo!!!!!!!!!!! Please let us know what you fixed and how your surfing works. -- PEZ


Robo Home | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited September 22, 2004 9:05 EST by PEZ (diff)
Search: