Difference between revisions of "Archived talk:CassiusClay 20050329"
(migrating from old wiki) |
m (moved CassiusClay/Archived Talk 20050329 to Archived talk:CassiusClay 20050329: move to talkarchive) |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
{{Talkarchvie|Talk:CassiusClay}} | {{Talkarchvie|Talk:CassiusClay}} | ||
− | [[PEZ]], you say in the update history that you "Tweaked the movement flatener." What do you mean by this? -- [[jim]] | + | [[User:PEZ|PEZ]], you say in the update history that you "Tweaked the movement flatener." What do you mean by this? -- [[User:Sparafucil3|jim]] |
− | That wasn't right. I have now corrected it. I tweaked the hit stats segmentation. Using time-since-velocity-changed instead of time-since-decceleration and -acceleration. It makes me lose against about all top bots, but gains me 10 points in the total. -- [[PEZ]] | + | That wasn't right. I have now corrected it. I tweaked the hit stats segmentation. Using time-since-velocity-changed instead of time-since-decceleration and -acceleration. It makes me lose against about all top bots, but gains me 10 points in the total. -- [[User:PEZ|PEZ]] |
Seems CC now has [[DT]]'s number: | Seems CC now has [[DT]]'s number: | ||
Line 10: | Line 10: | ||
2nd: pe.SandboxDT 3.02 30962 10250 2050 16860 1801 0 0 206 295 | 2nd: pe.SandboxDT 3.02 30962 10250 2050 16860 1801 0 0 206 295 | ||
</pre> | </pre> | ||
− | Nice! -- [[PEZ]] | + | Nice! -- [[User:PEZ|PEZ]] |
− | Your goal needs to be updated. Uless of course you are angling to be #2 :P -- [[jim]] | + | Your goal needs to be updated. Uless of course you are angling to be #2 :P -- [[User:Sparafucil3|jim]] |
− | Well, CC can't dethrown RMX while it is not the king of course. =) I'll update the label. -- [[PEZ]] | + | Well, CC can't dethrown RMX while it is not the king of course. =) I'll update the label. -- [[User:PEZ|PEZ]] |
− | [[PEZ]], at your suggestion I am looking at using your gun indecies for DarkHallow. When I looked at your latest code on CC, I noticed your are setting the accelIndex twice. You set it to the same value each time so I am pretty sure this is redundant. -- [[jim]] | + | [[User:PEZ|PEZ]], at your suggestion I am looking at using your gun indecies for DarkHallow. When I looked at your latest code on CC, I noticed your are setting the accelIndex twice. You set it to the same value each time so I am pretty sure this is redundant. -- [[User:Sparafucil3|jim]] |
− | I don't think I am using an accelIndex? -- [[PEZ]] | + | I don't think I am using an accelIndex? -- [[User:PEZ|PEZ]] |
− | Hi [[PEZ]], i noticed that you latest gun tweak didn't do that well. Are you sure you calculated the botwidth correctly? I took a look at your code and now i think your method botwidth() returns twice the number of bins it should. You are using maxEscapeAngle() which actually returns the angle between the GFs 0 and 1 (or between -1 and 0 of course), but at the same time your use the total number of guess factor bins. If i'm right that could make quite a difference, if not you may of course delete this comment :-) (i just looked at the code, so no debugging or stuff ... ). --[[Mue]] | + | Hi [[User:PEZ|PEZ]], i noticed that you latest gun tweak didn't do that well. Are you sure you calculated the botwidth correctly? I took a look at your code and now i think your method botwidth() returns twice the number of bins it should. You are using maxEscapeAngle() which actually returns the angle between the GFs 0 and 1 (or between -1 and 0 of course), but at the same time your use the total number of guess factor bins. If i'm right that could make quite a difference, if not you may of course delete this comment :-) (i just looked at the code, so no debugging or stuff ... ). --[[User:Mue|Mue]] |
− | I guess that could make a lot of difference. You're right of course. Stupid me. With some luck this could solve this big mystery. Thanks! -- [[PEZ]] | + | I guess that could make a lot of difference. You're right of course. Stupid me. With some luck this could solve this big mystery. Thanks! -- [[User:PEZ|PEZ]] |
---- | ---- | ||
− | There is no listing for the current version of CC in the update history section. Care to share? -- [[jim]] | + | There is no listing for the current version of CC in the update history section. Care to share? -- [[User:Sparafucil3|jim]] |
---- | ---- | ||
− | Version 1.9.8.03 has five lousy points left! And I'm totally out of ideas again! 5 lousy points! Well, I should be happy of course. I am. But it's frustrating to chase something so elusive for so long... -- [[PEZ]] | + | Version 1.9.8.03 has five lousy points left! And I'm totally out of ideas again! 5 lousy points! Well, I should be happy of course. I am. But it's frustrating to chase something so elusive for so long... -- [[User:PEZ|PEZ]] |
− | A pretty cool table: http:/robocode/uploads/pez/CCvsDT_35.html -- [[PEZ]] | + | A pretty cool table: http:/robocode/uploads/pez/CCvsDT_35.html -- [[User:PEZ|PEZ]] |
− | OK, so with version 1.9.9.00g I have finally taken the time to update the movement predictor so that it takes into account the maximum turning the bot can do at a given velocity. My tests shows it does not yet perform like the previous version of the predictor. Might have a bug in there. Check the /Butterfly page if you're curious and maybe even willing to help a poor surfing developer get the more precise act together. -- [[PEZ]] | + | OK, so with version 1.9.9.00g I have finally taken the time to update the movement predictor so that it takes into account the maximum turning the bot can do at a given velocity. My tests shows it does not yet perform like the previous version of the predictor. Might have a bug in there. Check the /Butterfly page if you're curious and maybe even willing to help a poor surfing developer get the more precise act together. -- [[User:PEZ|PEZ]] |
Line 39: | Line 39: | ||
http://robowiki.net/robocode/uploads/axe/CC19900b2.GIF | http://robowiki.net/robocode/uploads/axe/CC19900b2.GIF | ||
− | -- [[Axe]] | + | -- [[User:Axe|Axe]] |
− | Thanks for saving that for me. I like to see what ground I've touched. =) 2063 now with 296 battles. I know it's going to fall back to its "around 2050" pocket, but it's cool anyway. =) -- [[PEZ]] | + | Thanks for saving that for me. I like to see what ground I've touched. =) 2063 now with 296 battles. I know it's going to fall back to its "around 2050" pocket, but it's cool anyway. =) -- [[User:PEZ|PEZ]] |
− | CC is #2 by a hair... Congratulations! Are you going to remove SilverFist? I seem to recall you mentioning that you were going to remove it if either you or Axe were #2 behind it. --[[David Alves]] | + | CC is #2 by a hair... Congratulations! Are you going to remove SilverFist? I seem to recall you mentioning that you were going to remove it if either you or Axe were #2 behind it. --[[User:David Alves|David Alves]] |
− | We'll have to see where it ends up. I've seen CC drop so many times before... In any case a SilverFist WT must be tried, just to see where the bar would be placed with such a beast. -- [[PEZ]] | + | We'll have to see where it ends up. I've seen CC drop so many times before... In any case a SilverFist WT must be tried, just to see where the bar would be placed with such a beast. -- [[User:PEZ|PEZ]] |
− | Great stuff! did you use BeeWT's version or did you hack in the serialization code? And now it's waiting for SFWT..... --[[Vic]] | + | Great stuff! did you use BeeWT's version or did you hack in the serialization code? And now it's waiting for SFWT..... --[[User:Vic Stewart|Vic]] |
− | Big congrats dude! SuperNodes is a great find. I'm using the BeeWT gun hooked on CC movement. And I'm just now putting together SFWT. Will pull CCWT tomorrow then. And SFWT can stay the proof of concepts for [[/Bee]] Targeting with SuperNodes and SilverSurfing. -- [[PEZ]] | + | Big congrats dude! SuperNodes is a great find. I'm using the BeeWT gun hooked on CC movement. And I'm just now putting together SFWT. Will pull CCWT tomorrow then. And SFWT can stay the proof of concepts for [[/Bee]] Targeting with SuperNodes and SilverSurfing. -- [[User:PEZ|PEZ]] |
− | Now I have cleaned all code that could do data writing and reading from CC. With saved data it's too hard to know what a particular gain or loss in rating really comes from. One less parameter to worry about! CC will now try to outrank RaikoMX without any data on disk. -- [[PEZ]] | + | Now I have cleaned all code that could do data writing and reading from CC. With saved data it's too hard to know what a particular gain or loss in rating really comes from. One less parameter to worry about! CC will now try to outrank RaikoMX without any data on disk. -- [[User:PEZ|PEZ]] |
− | Congratulations on achieving your goal, and by a nice margin too. --[[David Alves]] | + | Congratulations on achieving your goal, and by a nice margin too. --[[User:David Alves|David Alves]] |
− | Thanks!!!!!!!!!!! Man this is a wonderful day. Yayyy!! -- [[PEZ]] | + | Thanks!!!!!!!!!!! Man this is a wonderful day. Yayyy!! -- [[User:PEZ|PEZ]] |
− | Congrats, man! U surely deserved it! Hail! -- [[Axe]] | + | Congrats, man! U surely deserved it! Hail! -- [[User:Axe|Axe]] |
− | Wow! Great stuff, [[PEZ]]! Congratulations! Now tell us all about the wave list management alterations please :-) And of course how heavy your BinSmoothing is now :-) --[[Vic]] | + | Wow! Great stuff, [[User:PEZ|PEZ]]! Congratulations! Now tell us all about the wave list management alterations please :-) And of course how heavy your BinSmoothing is now :-) --[[User:Vic Stewart|Vic]] |
− | Thanks both of ya! I'm having this stupid smile in my face that I just can't wipe away. =) About wave list management. It was one of the last leftovers from [[Pugilist]]. I used custom events for my [[Wave]]'s that updated the waves in the test() method. Thus relying on thar Robocode would always iterate my waves. But obviously I coudln't. I have noticed for a long while in GL that my waves does not stay aligned for the full duration of their flight. Thought I could ignore it. But the other day I decided to not ignore it. About bin smoothing. I now smooth with pow(d, 0.4) instead of pow(d, 0.5). At first I thought it made a majr difference, but I think I must have done some other "minor" change at the same time. Because now in my tests 0.5 (sqrt) works equally well. All in all the 30 points come from bug fixes, glitch-fixes and minor tweaks in the surfing. There's no implementation detail too small to not pay attention to. -- [[PEZ]] | + | Thanks both of ya! I'm having this stupid smile in my face that I just can't wipe away. =) About wave list management. It was one of the last leftovers from [[Pugilist]]. I used custom events for my [[Wave]]'s that updated the waves in the test() method. Thus relying on thar Robocode would always iterate my waves. But obviously I coudln't. I have noticed for a long while in GL that my waves does not stay aligned for the full duration of their flight. Thought I could ignore it. But the other day I decided to not ignore it. About bin smoothing. I now smooth with pow(d, 0.4) instead of pow(d, 0.5). At first I thought it made a majr difference, but I think I must have done some other "minor" change at the same time. Because now in my tests 0.5 (sqrt) works equally well. All in all the 30 points come from bug fixes, glitch-fixes and minor tweaks in the surfing. There's no implementation detail too small to not pay attention to. -- [[User:PEZ|PEZ]] |
− | What do you mean pow(d, 0.4)? What is d? :-P --[[David Alves]] | + | What do you mean pow(d, 0.4)? What is d? :-P --[[User:David Alves|David Alves]] |
d is the distance of the measured bin from the bin used for smoothing. Like so: | d is the distance of the measured bin from the bin used for smoothing. Like so: | ||
Line 72: | Line 72: | ||
} | } | ||
</pre> | </pre> | ||
− | -- [[PEZ]] | + | -- [[User:PEZ|PEZ]] |
− | [[PEZ]], a bit late, but CONGRATULATIONS with your number one position. I have been away for some time and now find the RoboRumble landscape shaken. Nice work! | + | [[User:PEZ|PEZ]], a bit late, but CONGRATULATIONS with your number one position. I have been away for some time and now find the RoboRumble landscape shaken. Nice work! |
B.t.w. what happened to the RoboRumble? I thought there were bots with a 15000+ battles behind their names. | B.t.w. what happened to the RoboRumble? I thought there were bots with a 15000+ battles behind their names. | ||
− | --[[Loki]] | + | --[[User:Loki|Loki]] |
The rumble and the wiki was burnt to ashes in what is now known as TheBigCrash (see WelcomeToTheNewWiki and RoboRumble/TemporaryServerUp or some more on this). Like [[PhoeniX]] birds they have risen from the ashes though! The rumble a bit more hurt than the wiki. Which means we have lost a lot of battles. But the warriors of the [[RR Uploaders Competition]] has made sure we at least have a correct and stable curren standing. | The rumble and the wiki was burnt to ashes in what is now known as TheBigCrash (see WelcomeToTheNewWiki and RoboRumble/TemporaryServerUp or some more on this). Like [[PhoeniX]] birds they have risen from the ashes though! The rumble a bit more hurt than the wiki. Which means we have lost a lot of battles. But the warriors of the [[RR Uploaders Competition]] has made sure we at least have a correct and stable curren standing. | ||
Line 83: | Line 83: | ||
Thanks for those congrats! It was bloody hard work to outrank RaikoMX! | Thanks for those congrats! It was bloody hard work to outrank RaikoMX! | ||
− | -- [[PEZ]] | + | -- [[User:PEZ|PEZ]] |
− | he he, you are a pretty competitative guy. You even turned getting the new rankings into a new competition! But only a second place for you ... must be hard to swallow ;-) --[[Loki]] | + | he he, you are a pretty competitative guy. You even turned getting the new rankings into a new competition! But only a second place for you ... must be hard to swallow ;-) --[[User:Loki|Loki]] |
− | It's a hard life. But I get by. One day at a time. =) -- [[PEZ]] | + | It's a hard life. But I get by. One day at a time. =) -- [[User:PEZ|PEZ]] |
Well here's an interesting one, PEZ. You've got Shark as a problembot, but not Raiko. Assuming their movements are about the same, wouldn't that mean Raiko's gun is less effective against you than Shark's? --[[Goofy]] | Well here's an interesting one, PEZ. You've got Shark as a problembot, but not Raiko. Assuming their movements are about the same, wouldn't that mean Raiko's gun is less effective against you than Shark's? --[[Goofy]] | ||
− | No. It means Shark's gun is worse than Raiko's against about every bot in the rumble. Just a bit less so against surfers. -- [[PEZ]] | + | No. It means Shark's gun is worse than Raiko's against about every bot in the rumble. Just a bit less so against surfers. -- [[User:PEZ|PEZ]] |
− | A truly random gun would be just as effective against a surfer as it would be against very other bot in the rumble. Surfers take advantage of the fact that they can learn as you learn. When you manage to hit them, they know where you think the peak is in your stats and can avoid it until you hit them at your new peak. Some surfers go even one further and flatten the results of their movement to try and eliminate all the peaks truly turning you GF gun into a random gun. I would argue that the SharkChallenge is not a test of surfing at all. It is a test of your targeting system more than your surfing system. -- [[jim]] | + | A truly random gun would be just as effective against a surfer as it would be against very other bot in the rumble. Surfers take advantage of the fact that they can learn as you learn. When you manage to hit them, they know where you think the peak is in your stats and can avoid it until you hit them at your new peak. Some surfers go even one further and flatten the results of their movement to try and eliminate all the peaks truly turning you GF gun into a random gun. I would argue that the SharkChallenge is not a test of surfing at all. It is a test of your targeting system more than your surfing system. -- [[User:Sparafucil3|jim]] |
− | Then again, noone has said that the SharkChallenge is a test for surfers. =) -- [[PEZ]] | + | Then again, noone has said that the SharkChallenge is a test for surfers. =) -- [[User:PEZ|PEZ]] |
I finally found the secret of your number one position: you haven't fought a single battle against mini.Wodan :-) | I finally found the secret of your number one position: you haven't fought a single battle against mini.Wodan :-) | ||
− | Heheh, let's be realistic, it's probably better for Wodan's ranking. But i introduced statistics aging/rolling averages after i found that it improved my results against CC v1.9.5.3 --[[Loki]] | + | Heheh, let's be realistic, it's probably better for Wodan's ranking. But i introduced statistics aging/rolling averages after i found that it improved my results against CC v1.9.5.3 --[[User:Loki|Loki]] |
− | Yes, rolling your gun stats should help against any surfer. But, if I were you I would try a version of Wodan that does not roll the stats. You might find it works better in the rumble as a whole. -- [[PEZ]] | + | Yes, rolling your gun stats should help against any surfer. But, if I were you I would try a version of Wodan that does not roll the stats. You might find it works better in the rumble as a whole. -- [[User:PEZ|PEZ]] |
− | I gained 14 points (7 positions) by using a fast version of rolling averages in the general rumble (a bit to my surprise as i only expected improvements against the wave surfers). I tested several 'aging speeds' against a number of the top bots and found contradicting results: fast aging worked best against SS and Aleph, no aging worked best against CC and intermediate against Ascendant. So i finally settled on fast aging. --[[Loki]] | + | I gained 14 points (7 positions) by using a fast version of rolling averages in the general rumble (a bit to my surprise as i only expected improvements against the wave surfers). I tested several 'aging speeds' against a number of the top bots and found contradicting results: fast aging worked best against SS and Aleph, no aging worked best against CC and intermediate against Ascendant. So i finally settled on fast aging. --[[User:Loki|Loki]] |
− | B.t.w. the results of MiniWodan in the TargetingChallenge show that an intermediate speed of rolling averages works best against those bots. --[[Loki]] | + | B.t.w. the results of MiniWodan in the TargetingChallenge show that an intermediate speed of rolling averages works best against those bots. --[[User:Loki|Loki]] |
− | That's for your gun of course. For [[/Bee]] every experiment with rolling averages has resulted in decreased RR@H rating. -- [[PEZ]] | + | That's for your gun of course. For [[/Bee]] every experiment with rolling averages has resulted in decreased RR@H rating. -- [[User:PEZ|PEZ]] |
---- | ---- | ||
That looks strange: | That looks strange: | ||
Line 117: | Line 117: | ||
--[[ph]] | --[[ph]] | ||
− | Yeah, it was a non-firing CC. And then I "fixed" it with .28b which also was stationary. =) But now .28c booth fires and moves. -- [[PEZ]] | + | Yeah, it was a non-firing CC. And then I "fixed" it with .28b which also was stationary. =) But now .28c booth fires and moves. -- [[User:PEZ|PEZ]] |
− | Looks like .37 has a bug. Unless of course this is your HOT test... -- [[Alcatraz]] | + | Looks like .37 has a bug. Unless of course this is your HOT test... -- [[User:Alcatraz|Alcatraz]] |
− | Thanks! It's not my HOT test. V .09ho is my HOT test. ... I wonder what .37 is doing! -- [[PEZ]] | + | Thanks! It's not my HOT test. V .09ho is my HOT test. ... I wonder what .37 is doing! -- [[User:PEZ|PEZ]] |
− | OK. *lol* Found it. I often do that. I'll let .37 be left in till it gets all pairings. It'll answer the question "how high ranking does a surfer get if it doesn't fire?" Duh!!! -- [[PEZ]] | + | OK. *lol* Found it. I often do that. I'll let .37 be left in till it gets all pairings. It'll answer the question "how high ranking does a surfer get if it doesn't fire?" Duh!!! -- [[User:PEZ|PEZ]] |
− | Wow! I used sample.[[Walls]] to check what was wrong with .37. And in round 3 I actually saw that bug (when CC takes a [[HOT]] non-[[ChaseBullet]] hit) happening! I don't have the time right now to investigate it, but it's a MAJOR breakthrough to have seen it. I'll have that bug fixed soon I think. Yay!!! -- [[PEZ]] | + | Wow! I used sample.[[Walls]] to check what was wrong with .37. And in round 3 I actually saw that bug (when CC takes a [[HOT]] non-[[ChaseBullet]] hit) happening! I don't have the time right now to investigate it, but it's a MAJOR breakthrough to have seen it. I'll have that bug fixed soon I think. Yay!!! -- [[User:PEZ|PEZ]] |
− | .09hot might score higher with Shark's gun, which would prevent being crushed by surfers. Just a thought. :-) --[[David Alves]] | + | .09hot might score higher with Shark's gun, which would prevent being crushed by surfers. Just a thought. :-) --[[User:David Alves|David Alves]] |
− | Feel free to test it! I'm sure you'll figure out how to plug Shark's gun on a CC .09rd in a jiffy. -- [[PEZ]] | + | Feel free to test it! I'm sure you'll figure out how to plug Shark's gun on a CC .09rd in a jiffy. -- [[User:PEZ|PEZ]] |
− | Ain´t CC the King again? -- [[Axe]] | + | Ain´t CC the King again? -- [[User:Axe|Axe]] |
− | Nope. Just a test version of Ascendant hanging around. =) -- [[PEZ]] | + | Nope. Just a test version of Ascendant hanging around. =) -- [[User:PEZ|PEZ]] |
− | someone (maybe it was CuriousGeorge) said "asking questions is never stupid", but maybe my question qualifies. Anayway here it is: where are the results of the PremierLeague posted ? I have seen claims like "King of PremierLeague" before, but have never been able to verify them :( --[[Loki]] | + | someone (maybe it was CuriousGeorge) said "asking questions is never stupid", but maybe my question qualifies. Anayway here it is: where are the results of the PremierLeague posted ? I have seen claims like "King of PremierLeague" before, but have never been able to verify them :( --[[User:Loki|Loki]] |
− | That's the point. The claims are up for grabs. =) Nah! On the RoboRumble/CurrentRankings page there's a [http://pezius.com/rumble/servlet/PremierLeague?game=roborumble PL] for the various classes where a PL ranking is available. -- [[PEZ]] | + | That's the point. The claims are up for grabs. =) Nah! On the RoboRumble/CurrentRankings page there's a [http://pezius.com/rumble/servlet/PremierLeague?game=roborumble PL] for the various classes where a PL ranking is available. -- [[User:PEZ|PEZ]] |
− | ??? have you just added that [http://pezius.com/rumble/servlet/PremierLeague?game=roborumble PL] link, or have i (unconciously ignored/overlooked) that link sinds it have been added? Or is it because i always open the RR-results directly from my 'Favourites'? Anyway, i am learning something new each time i visit this wiki. thanks for answering any question, be it a smart one or a stupid one! --[[Loki]] | + | ??? have you just added that [http://pezius.com/rumble/servlet/PremierLeague?game=roborumble PL] link, or have i (unconciously ignored/overlooked) that link sinds it have been added? Or is it because i always open the RR-results directly from my 'Favourites'? Anyway, i am learning something new each time i visit this wiki. thanks for answering any question, be it a smart one or a stupid one! --[[User:Loki|Loki]] |
− | You've probably missed that link for almost a year. =) Anyway, as you now saw, CC and [[Pear]] both have only one loss, but I claim the crown since I use the ELO ranking to solve the tie. I do like CC's LRP graph too. CC is a balanced bot, almost no outliers on that graph. -- [[PEZ]] | + | You've probably missed that link for almost a year. =) Anyway, as you now saw, CC and [[Pear]] both have only one loss, but I claim the crown since I use the ELO ranking to solve the tie. I do like CC's LRP graph too. CC is a balanced bot, almost no outliers on that graph. -- [[User:PEZ|PEZ]] |
− | [[PEZ]], u use 1.9 pwr bullets even against rammers? I think that they deserve 3.0 pwr bullets, dont? I´m thinking in try this later... I know it is a lil issue, but these rammers are indeed annoying, as u said once:"Death is too kind to NanoDeath..." :). -- [[Axe]] | + | [[User:PEZ|PEZ]], u use 1.9 pwr bullets even against rammers? I think that they deserve 3.0 pwr bullets, dont? I´m thinking in try this later... I know it is a lil issue, but these rammers are indeed annoying, as u said once:"Death is too kind to NanoDeath..." :). -- [[User:Axe|Axe]] |
− | You're right, maybe true rammers are too predictive to fire anything less than 3.0 against. But CC is already among the top-3 ND-bashers (most versions of CC are #1 in this game)... Worth a try anyway. Death ''is'' to kind to NanoDeat after all. =) -- [[PEZ]] | + | You're right, maybe true rammers are too predictive to fire anything less than 3.0 against. But CC is already among the top-3 ND-bashers (most versions of CC are #1 in this game)... Worth a try anyway. Death ''is'' to kind to NanoDeat after all. =) -- [[User:PEZ|PEZ]] |
− | mmm... Maybe im doing this already, i use power 3.0 bullets if hitRate > 35% remember? I forgot. :) -- [[Axe]] | + | mmm... Maybe im doing this already, i use power 3.0 bullets if hitRate > 35% remember? I forgot. :) -- [[User:Axe|Axe]] |
− | Yes, and I haven't tried that yet. Good you reminded me. -- [[PEZ]] | + | Yes, and I haven't tried that yet. Good you reminded me. -- [[User:PEZ|PEZ]] |
− | It's a bit too small diff to tell for sure maybe, but it looks like firing full power when the hit rate indicates an easy victim bought me 1 or 2 points. Thanks! Maybe with some extra attention to detail in this (right now it's the rawest and simplest implementation imaginable) I can squeeze out 2 secured points. -- [[PEZ]] | + | It's a bit too small diff to tell for sure maybe, but it looks like firing full power when the hit rate indicates an easy victim bought me 1 or 2 points. Thanks! Maybe with some extra attention to detail in this (right now it's the rawest and simplest implementation imaginable) I can squeeze out 2 secured points. -- [[User:PEZ|PEZ]] |
− | That was my result too... 1 or 2 points gain. It´s lil, but... -- [[Axe]] | + | That was my result too... 1 or 2 points gain. It´s lil, but... -- [[User:Axe|Axe]] |
The current CC is right now less than one point behind [[Ascendant]], which means that the difference between the ratings of these bots is probably within the margin of error. So according to the rating these bots are equally good. Now i wonder whats the consequence for the position of the king. Are there two kings now? Or has the new king to be better than the old one? Or is there another competition to solve these issues (maybe consulting PremierLeague, or the direct duel)? | The current CC is right now less than one point behind [[Ascendant]], which means that the difference between the ratings of these bots is probably within the margin of error. So according to the rating these bots are equally good. Now i wonder whats the consequence for the position of the king. Are there two kings now? Or has the new king to be better than the old one? Or is there another competition to solve these issues (maybe consulting PremierLeague, or the direct duel)? | ||
− | Maybe i should try that bullet power thing too. If i gain about one point too, we can postpone that question :-). -- [[Mue]] | + | Maybe i should try that bullet power thing too. If i gain about one point too, we can postpone that question :-). -- [[User:Mue|Mue]] |
− | Yeah, postpone it please. =) But it looks like Ascendant ended up #1 in the exchange as it is. I think that if we have two bots competing very closely for #1 then we can upload some 25 battles which pairs those two bots and let the outcome from that decide which one is the King's bot. -- [[PEZ]] | + | Yeah, postpone it please. =) But it looks like Ascendant ended up #1 in the exchange as it is. I think that if we have two bots competing very closely for #1 then we can upload some 25 battles which pairs those two bots and let the outcome from that decide which one is the King's bot. -- [[User:PEZ|PEZ]] |
− | Hmmm, maybe CC just had some luck there. Now it's back at 2066 again... -- [[PEZ]] | + | Hmmm, maybe CC just had some luck there. Now it's back at 2066 again... -- [[User:PEZ|PEZ]] |
Congratulations, you have a very strong release there. Right now CC is 0.3 rating points above [[Ascendant]] with 752 battles fought. | Congratulations, you have a very strong release there. Right now CC is 0.3 rating points above [[Ascendant]] with 752 battles fought. | ||
Line 170: | Line 170: | ||
I think that this is too close to just judge by the ranking which one is stronger. Maybe its time to run a number of battles between these two (as you proposed above) and use the result to decide who is king now? I'd do it myself, but i dont know how to tell the client to focus on a specific pairing. | I think that this is too close to just judge by the ranking which one is stronger. Maybe its time to run a number of battles between these two (as you proposed above) and use the result to decide who is king now? I'd do it myself, but i dont know how to tell the client to focus on a specific pairing. | ||
− | Sorry for not simply acknowledging that CC is king now, but i really think that any minor fluctuation in the ranking can change the order of CC and A. --[[Mue]] | + | Sorry for not simply acknowledging that CC is king now, but i really think that any minor fluctuation in the ranking can change the order of CC and A. --[[User:Mue|Mue]] |
− | I agree. Next version maybe. =) -- [[PEZ]] | + | I agree. Next version maybe. =) -- [[User:PEZ|PEZ]] |
− | Good luck :-). Though you probably wont need it since it will still take some time until my next release is ready. I started to rewrite my gun making it an array based guess factor gun again (should bring better performance and Bee proves that this is a viable approach). Unfortunately the first results are very disappointing. I'll probably take a closer look at Bee now and run some experiments with it. Maybe i can figure out what exactly it is that makes your gun so incredibly strong. --[[Mue]] | + | Good luck :-). Though you probably wont need it since it will still take some time until my next release is ready. I started to rewrite my gun making it an array based guess factor gun again (should bring better performance and Bee proves that this is a viable approach). Unfortunately the first results are very disappointing. I'll probably take a closer look at Bee now and run some experiments with it. Maybe i can figure out what exactly it is that makes your gun so incredibly strong. --[[User:Mue|Mue]] |
− | If your gun is not array based, what is it based on then? -- [[PEZ]] | + | If your gun is not array based, what is it based on then? -- [[User:PEZ|PEZ]] |
− | I tampered with dynamic segmentation and use basically a growing list of segments (each containing a guess factor array). When firing, the segments similar to current situation are weighted together. But after a careful analysis of whats happening there i came to the conlusion that this approach does not have innate advantages compared to array based implementations. So i'm switching to arrays now, which are faster by far, because i just need to compute some indexes instead of comparing the current situation to all situations in that list. --[[Mue]] | + | I tampered with dynamic segmentation and use basically a growing list of segments (each containing a guess factor array). When firing, the segments similar to current situation are weighted together. But after a careful analysis of whats happening there i came to the conlusion that this approach does not have innate advantages compared to array based implementations. So i'm switching to arrays now, which are faster by far, because i just need to compute some indexes instead of comparing the current situation to all situations in that list. --[[User:Mue|Mue]] |
− | Interesting. How many similar situations do you collect before weighing them together? Have you tried clustering the similar situations with something like K-Means to see which of them that agree the most about the best guess factor? I would think such a gun should be very strong. -- [[PEZ]] | + | Interesting. How many similar situations do you collect before weighing them together? Have you tried clustering the similar situations with something like K-Means to see which of them that agree the most about the best guess factor? I would think such a gun should be very strong. -- [[User:PEZ|PEZ]] |
− | Well, i take all all similar situations into account. I do not really understand what you mean by clustering similar situations. What are K-Means? --[[Mue]] | + | Well, i take all all similar situations into account. I do not really understand what you mean by clustering similar situations. What are K-Means? --[[User:Mue|Mue]] |
− | All? That must mean you take all ''identical'' situations into account? K-means is a clustering method where you try build N clusters from the input data by chosing the N observations farthest from each other and then assigning observations to these clusters by measuring their "closeness" to the center of the cluster. Each time you add an observation to the cluster you recalculate the center. This goes on until all observations are assigned to a cluster. Then it would be a matter of checking what cluster the current obesrvation belongs to, and checking where the majority of those would fire. The trick is of course to figure out what distance measure to use for an observation with several measures in it. But maybe the euclidian distance between each measurements together with a "weight" for that "axis"... Something like what Axe seems to be doing in SilverSurfer I think. -- [[PEZ]] | + | All? That must mean you take all ''identical'' situations into account? K-means is a clustering method where you try build N clusters from the input data by chosing the N observations farthest from each other and then assigning observations to these clusters by measuring their "closeness" to the center of the cluster. Each time you add an observation to the cluster you recalculate the center. This goes on until all observations are assigned to a cluster. Then it would be a matter of checking what cluster the current obesrvation belongs to, and checking where the majority of those would fire. The trick is of course to figure out what distance measure to use for an observation with several measures in it. But maybe the euclidian distance between each measurements together with a "weight" for that "axis"... Something like what Axe seems to be doing in SilverSurfer I think. -- [[User:PEZ|PEZ]] |
− | You once accused [[Paul_Evans]] of being a rocket scientist. Now who is looking to lauch their own rockets? I could not follow one word of that. =^> [[jim]] | + | You once accused [[Paul_Evans]] of being a rocket scientist. Now who is looking to lauch their own rockets? I could not follow one word of that. =^> [[User:Sparafucil3|jim]] |
− | I use the euclidian distance in my gun (actually the squared distance). The center of the cluster is always the current situation, I don't understand what you mean by "chosing the N observations farthest from each other". The dynamic part, adapting axis weights by analysing tendencies, is something I have thought about since forever but never managed to turn it into actual code. -- [[ABC]] | + | I use the euclidian distance in my gun (actually the squared distance). The center of the cluster is always the current situation, I don't understand what you mean by "chosing the N observations farthest from each other". The dynamic part, adapting axis weights by analysing tendencies, is something I have thought about since forever but never managed to turn it into actual code. -- [[User:ABC|ABC]] |
− | That's just how K-Means clustering works, you first decide how many clusters you want and then go assign observations to the clusters. There are some other clustering methods one could use instead, like hierarchical (however you spell that...) wher you start with as many clusters as you have obesrvations and then cluster together neighbouring clusters until you only have one left. Left is a tree of clusters where you could go back and chose the level of clustering you want. We did these kind of things with data at my last job which was about marketing research analysis. Dynamically adapting axis weights? That would be cool! Maybe using the standard deviation for each axis works? -- [[PEZ]] | + | That's just how K-Means clustering works, you first decide how many clusters you want and then go assign observations to the clusters. There are some other clustering methods one could use instead, like hierarchical (however you spell that...) wher you start with as many clusters as you have obesrvations and then cluster together neighbouring clusters until you only have one left. Left is a tree of clusters where you could go back and chose the level of clustering you want. We did these kind of things with data at my last job which was about marketing research analysis. Dynamically adapting axis weights? That would be cool! Maybe using the standard deviation for each axis works? -- [[User:PEZ|PEZ]] |
− | I have some (currently unused) code for computing the standard deviation for each axis, one of my many experiments :). The problem is that I'm not very good with Math/Statistics, and I get lost easily in small tweaks. I'll turn my current movement into a gun first and try to evolve from there, it should be much easier with guess factors because of the reduced sample numbers. -- [[ABC]] | + | I have some (currently unused) code for computing the standard deviation for each axis, one of my many experiments :). The problem is that I'm not very good with Math/Statistics, and I get lost easily in small tweaks. I'll turn my current movement into a gun first and try to evolve from there, it should be much easier with guess factors because of the reduced sample numbers. -- [[User:ABC|ABC]] |
− | The club of non-matematicians trying to use math for solving Robocode problems probably has more members than just you and I, ABC. =) Thinking about what we have just discussed though i wonder if standard clustering techniques are usable in a bot. Maybe it's too heavy to keep clustering a growing list of observations every tick. About std dev. Is it possible to keep the std deviation updated with each collected observation or do you have to recalculate it ever time? Maybe since you already traverse the full list every time it's not a big overhead. -- [[PEZ]] | + | The club of non-matematicians trying to use math for solving Robocode problems probably has more members than just you and I, ABC. =) Thinking about what we have just discussed though i wonder if standard clustering techniques are usable in a bot. Maybe it's too heavy to keep clustering a growing list of observations every tick. About std dev. Is it possible to keep the std deviation updated with each collected observation or do you have to recalculate it ever time? Maybe since you already traverse the full list every time it's not a big overhead. -- [[User:PEZ|PEZ]] |
− | I read somewhere that it is possible to calculate the stdv without traversing the list twice (one for the mean and another for the squared distances), but I never find it when I need it. In my attempt I did it the slow way, but only at the end of each round, adjusting weights only once per round. But then I decided that I better make a working hand-tuned version of it before trying a smarter one. I don't see the need for that clustering method you describe, if you assume a fixed cluster size its easy to keep adding samples until the cluster is full. -- [[ABC]] | + | I read somewhere that it is possible to calculate the stdv without traversing the list twice (one for the mean and another for the squared distances), but I never find it when I need it. In my attempt I did it the slow way, but only at the end of each round, adjusting weights only once per round. But then I decided that I better make a working hand-tuned version of it before trying a smarter one. I don't see the need for that clustering method you describe, if you assume a fixed cluster size its easy to keep adding samples until the cluster is full. -- [[User:ABC|ABC]] |
− | If you use a fixed cluster size you risk either excluding good matches or including bad ones. Might not be a big problem though, I haven't tested any clustering at all in a gun yet. -- [[PEZ]] | + | If you use a fixed cluster size you risk either excluding good matches or including bad ones. Might not be a big problem though, I haven't tested any clustering at all in a gun yet. -- [[User:PEZ|PEZ]] |
− | I now tried making a version of Bee where I use a log of all my waves and search it for similar situations and find out what visitIndex is most often used among them. It performs like Bee in terms of TC points but gets very slow after a 30 rounds or so... -- [[PEZ]] | + | I now tried making a version of Bee where I use a log of all my waves and search it for similar situations and find out what visitIndex is most often used among them. It performs like Bee in terms of TC points but gets very slow after a 30 rounds or so... -- [[User:PEZ|PEZ]] |
Interesting, did you use CC's segmentation as axis? Maybe it's time for you to make a proper "only predict if you going to shoot" gun... ;) | Interesting, did you use CC's segmentation as axis? Maybe it's time for you to make a proper "only predict if you going to shoot" gun... ;) | ||
− | I tried that, but got lower TC points in my tests. Must have done something wrong as usual. Anyway, the log quickly grows to hold enormous quantities of observations, which is the big problem if I want a bot that is even possible to run 1K round battles with. Yes, I used CC's existing segmentations. Only difference is that I don't require all of them to match perfectly. Got 2041 points using CC's current movement which means the gun doesn't perform near Bee yet. But if I get some hours of continous coding time I'll try making the gun working without those indexes in the Bee segmentation. -- [[PEZ]] | + | I tried that, but got lower TC points in my tests. Must have done something wrong as usual. Anyway, the log quickly grows to hold enormous quantities of observations, which is the big problem if I want a bot that is even possible to run 1K round battles with. Yes, I used CC's existing segmentations. Only difference is that I don't require all of them to match perfectly. Got 2041 points using CC's current movement which means the gun doesn't perform near Bee yet. But if I get some hours of continous coding time I'll try making the gun working without those indexes in the Bee segmentation. -- [[User:PEZ|PEZ]] |
− | Whoa - what happened with 1.9.9.72? Was it only a gun change that cost that many points? --[[David Alves]] | + | Whoa - what happened with 1.9.9.72? Was it only a gun change that cost that many points? --[[User:David Alves|David Alves]] |
− | Yeah. It scored 91.10 in TC35 and then lost me 11 points in RR@H. .78 scores 90.89 in TC35 so I just might get higher RR@H rating. =) -- [[PEZ]] | + | Yeah. It scored 91.10 in TC35 and then lost me 11 points in RR@H. .78 scores 90.89 in TC35 so I just might get higher RR@H rating. =) -- [[User:PEZ|PEZ]] |
− | You mean it lost you 111 points. Unless that's a mistake on your /UpdateHistory :-) --[[David Alves]] | + | You mean it lost you 111 points. Unless that's a mistake on your /UpdateHistory :-) --[[User:David Alves|David Alves]] |
− | Yeah, I made a mistake there. Imagine that writing 100 points too little still gives a score of 1955! =) -- [[PEZ]] | + | Yeah, I made a mistake there. Imagine that writing 100 points too little still gives a score of 1955! =) -- [[User:PEZ|PEZ]] |
− | Hi [[PEZ]], i took another look at your Bee gun. I think there is an issue with your last velocity segmentation. The last velocity you use is always the velocity from the tick before. But since you segment on time-since-last-velocity-change too, you get a lot of 'impossible segments'. Last velocity can only differ from current velocity if you are in the smallest time-since-last-velocity-segment. Am i missing something or is this some kind of bug? You know i segment on acceleration instead of last velocity, but of course i take the acceleration from the last time the velocity changed (no need to use extra segments to tell the gun that velocity didnt change since time-since-last-velocity-change). --[[Mue]] | + | Hi [[User:PEZ|PEZ]], i took another look at your Bee gun. I think there is an issue with your last velocity segmentation. The last velocity you use is always the velocity from the tick before. But since you segment on time-since-last-velocity-change too, you get a lot of 'impossible segments'. Last velocity can only differ from current velocity if you are in the smallest time-since-last-velocity-segment. Am i missing something or is this some kind of bug? You know i segment on acceleration instead of last velocity, but of course i take the acceleration from the last time the velocity changed (no need to use extra segments to tell the gun that velocity didnt change since time-since-last-velocity-change). --[[User:Mue|Mue]] |
− | It isn't exactly a bug, but I am aware of it. [[Jamougha]] uses the buckets for different stuff in this situation, but I can't really follow what's going on there and I haven't figured out a way to fill the void. Your solution is excellent! Thanks for letting me know about it. I'll try implement it right away. I'm also using acceleration now instead of a lastVelocity segment so the change should be pretty straight forward. -- [[PEZ]] | + | It isn't exactly a bug, but I am aware of it. [[User:Jamougha|Jamougha]] uses the buckets for different stuff in this situation, but I can't really follow what's going on there and I haven't figured out a way to fill the void. Your solution is excellent! Thanks for letting me know about it. I'll try implement it right away. I'm also using acceleration now instead of a lastVelocity segment so the change should be pretty straight forward. -- [[User:PEZ|PEZ]] |
− | From my tests it seems it doesn't matter if I use 5 lastVelocity indexes or 2 acceleration indexes. I'll settle for acceleration since it's much clearer about its purpose and since it makes the whole stat buffer less than half the size. -- [[PEZ]] | + | From my tests it seems it doesn't matter if I use 5 lastVelocity indexes or 2 acceleration indexes. I'll settle for acceleration since it's much clearer about its purpose and since it makes the whole stat buffer less than half the size. -- [[User:PEZ|PEZ]] |
− | It's probably negligble but going from any speed to speed 0 is possible too (wall collision). -- [[Pulsar]] | + | It's probably negligble but going from any speed to speed 0 is possible too (wall collision). -- [[User:Pulsar|Pulsar]] |
− | That's one of the reasons I used the lastVelocity segmentation to begin with. But it seems, in my tests, that it isn't common enough to make a difference. -- [[PEZ]] | + | That's one of the reasons I used the lastVelocity segmentation to begin with. But it seems, in my tests, that it isn't common enough to make a difference. -- [[User:PEZ|PEZ]] |
− | Wow, CC is rising again. Congratulations! --[[Mue]] | + | Wow, CC is rising again. Congratulations! --[[User:Mue|Mue]] |
− | Thanks! I'm actually just fooling around with weights and rolling depths. Seems to not matter too much what I do, but there are some few points there at least (obviously). To leap the gap to [[Ascendant]] I'll need to do something new though... -- [[PEZ]] | + | Thanks! I'm actually just fooling around with weights and rolling depths. Seems to not matter too much what I do, but there are some few points there at least (obviously). To leap the gap to [[Ascendant]] I'll need to do something new though... -- [[User:PEZ|PEZ]] |
− | That's the price you have to pay to be at the top, but I am confident that you will find a way to really threaten [[Ascendant]]. -- [[GrubbmGait]] | + | That's the price you have to pay to be at the top, but I am confident that you will find a way to really threaten [[Ascendant]]. -- [[User:GrubbmGait|GrubbmGait]] |
− | How long until version 2.0? You are really stretching the 1.9.9 thing. -- [[Alcatraz]] | + | How long until version 2.0? You are really stretching the 1.9.9 thing. -- [[User:Alcatraz|Alcatraz]] |
− | Indeed! Or rather I have been too quick to reach 1.9.9 really. Some of those changes have been truly minor. Like the ones I am trying now. I was thinking to wait with 2.0 until it contained something new. But I have been playing [http://pezius.com/perl/hw2iki Halo 2] very much lately and haven't really been cooking any new stuff. So. I'll keep stretching it a while. =) -- [[PEZ]] | + | Indeed! Or rather I have been too quick to reach 1.9.9 really. Some of those changes have been truly minor. Like the ones I am trying now. I was thinking to wait with 2.0 until it contained something new. But I have been playing [http://pezius.com/perl/hw2iki Halo 2] very much lately and haven't really been cooking any new stuff. So. I'll keep stretching it a while. =) -- [[User:PEZ|PEZ]] |
− | Just admit it, you love to be the King of '''TLBVNL''' (The Longest Bot Version Number League) -- [[GrubbmGait]] | + | Just admit it, you love to be the King of '''TLBVNL''' (The Longest Bot Version Number League) -- [[User:GrubbmGait|GrubbmGait]] |
− | I've already won that title over at the RobocodeLittleLeague. And there's a limit to the bot version length anyway. =) -- [[PEZ]] | + | I've already won that title over at the RobocodeLittleLeague. And there's a limit to the bot version length anyway. =) -- [[User:PEZ|PEZ]] |
[[Category:Archived Talk|CassiusClay/Archived Talk 20050329]] | [[Category:Archived Talk|CassiusClay/Archived Talk 20050329]] |
Latest revision as of 04:50, 8 October 2009
|
PEZ, you say in the update history that you "Tweaked the movement flatener." What do you mean by this? -- jim
That wasn't right. I have now corrected it. I tweaked the hit stats segmentation. Using time-since-velocity-changed instead of time-since-decceleration and -acceleration. It makes me lose against about all top bots, but gains me 10 points in the total. -- PEZ
Seems CC now has DT's number:
1st: pez.rumble.CassiusClay 1.9.6.01 40881 14750 2950 20342 2839 0 0 295 205 2nd: pe.SandboxDT 3.02 30962 10250 2050 16860 1801 0 0 206 295
Nice! -- PEZ
Your goal needs to be updated. Uless of course you are angling to be #2 :P -- jim
Well, CC can't dethrown RMX while it is not the king of course. =) I'll update the label. -- PEZ
PEZ, at your suggestion I am looking at using your gun indecies for DarkHallow. When I looked at your latest code on CC, I noticed your are setting the accelIndex twice. You set it to the same value each time so I am pretty sure this is redundant. -- jim
I don't think I am using an accelIndex? -- PEZ
Hi PEZ, i noticed that you latest gun tweak didn't do that well. Are you sure you calculated the botwidth correctly? I took a look at your code and now i think your method botwidth() returns twice the number of bins it should. You are using maxEscapeAngle() which actually returns the angle between the GFs 0 and 1 (or between -1 and 0 of course), but at the same time your use the total number of guess factor bins. If i'm right that could make quite a difference, if not you may of course delete this comment :-) (i just looked at the code, so no debugging or stuff ... ). --Mue
I guess that could make a lot of difference. You're right of course. Stupid me. With some luck this could solve this big mystery. Thanks! -- PEZ
There is no listing for the current version of CC in the update history section. Care to share? -- jim
Version 1.9.8.03 has five lousy points left! And I'm totally out of ideas again! 5 lousy points! Well, I should be happy of course. I am. But it's frustrating to chase something so elusive for so long... -- PEZ
A pretty cool table: http:/robocode/uploads/pez/CCvsDT_35.html -- PEZ
OK, so with version 1.9.9.00g I have finally taken the time to update the movement predictor so that it takes into account the maximum turning the bot can do at a given velocity. My tests shows it does not yet perform like the previous version of the predictor. Might have a bug in there. Check the /Butterfly page if you're curious and maybe even willing to help a poor surfing developer get the more precise act together. -- PEZ
Dunno if it will last, but it´s cool:
http://robowiki.net/robocode/uploads/axe/CC19900b2.GIF
-- Axe
Thanks for saving that for me. I like to see what ground I've touched. =) 2063 now with 296 battles. I know it's going to fall back to its "around 2050" pocket, but it's cool anyway. =) -- PEZ
CC is #2 by a hair... Congratulations! Are you going to remove SilverFist? I seem to recall you mentioning that you were going to remove it if either you or Axe were #2 behind it. --David Alves
We'll have to see where it ends up. I've seen CC drop so many times before... In any case a SilverFist WT must be tried, just to see where the bar would be placed with such a beast. -- PEZ
Great stuff! did you use BeeWT's version or did you hack in the serialization code? And now it's waiting for SFWT..... --Vic
Big congrats dude! SuperNodes is a great find. I'm using the BeeWT gun hooked on CC movement. And I'm just now putting together SFWT. Will pull CCWT tomorrow then. And SFWT can stay the proof of concepts for /Bee Targeting with SuperNodes and SilverSurfing. -- PEZ
Now I have cleaned all code that could do data writing and reading from CC. With saved data it's too hard to know what a particular gain or loss in rating really comes from. One less parameter to worry about! CC will now try to outrank RaikoMX without any data on disk. -- PEZ
Congratulations on achieving your goal, and by a nice margin too. --David Alves
Thanks!!!!!!!!!!! Man this is a wonderful day. Yayyy!! -- PEZ
Congrats, man! U surely deserved it! Hail! -- Axe
Wow! Great stuff, PEZ! Congratulations! Now tell us all about the wave list management alterations please :-) And of course how heavy your BinSmoothing is now :-) --Vic
Thanks both of ya! I'm having this stupid smile in my face that I just can't wipe away. =) About wave list management. It was one of the last leftovers from Pugilist. I used custom events for my Wave's that updated the waves in the test() method. Thus relying on thar Robocode would always iterate my waves. But obviously I coudln't. I have noticed for a long while in GL that my waves does not stay aligned for the full duration of their flight. Thought I could ignore it. But the other day I decided to not ignore it. About bin smoothing. I now smooth with pow(d, 0.4) instead of pow(d, 0.5). At first I thought it made a majr difference, but I think I must have done some other "minor" change at the same time. Because now in my tests 0.5 (sqrt) works equally well. All in all the 30 points come from bug fixes, glitch-fixes and minor tweaks in the surfing. There's no implementation detail too small to not pay attention to. -- PEZ
What do you mean pow(d, 0.4)? What is d? :-P --David Alves
d is the distance of the measured bin from the bin used for smoothing. Like so:
for (int i = 0; i < FACTORS; i++) { danger += _danger_calc(i) / Math.pow((double)(Math.abs(measuredIndex - i) + 1.0), 0.4); }
-- PEZ
PEZ, a bit late, but CONGRATULATIONS with your number one position. I have been away for some time and now find the RoboRumble landscape shaken. Nice work!
B.t.w. what happened to the RoboRumble? I thought there were bots with a 15000+ battles behind their names. --Loki
The rumble and the wiki was burnt to ashes in what is now known as TheBigCrash (see WelcomeToTheNewWiki and RoboRumble/TemporaryServerUp or some more on this). Like PhoeniX birds they have risen from the ashes though! The rumble a bit more hurt than the wiki. Which means we have lost a lot of battles. But the warriors of the RR Uploaders Competition has made sure we at least have a correct and stable curren standing.
Thanks for those congrats! It was bloody hard work to outrank RaikoMX!
-- PEZ
he he, you are a pretty competitative guy. You even turned getting the new rankings into a new competition! But only a second place for you ... must be hard to swallow ;-) --Loki
It's a hard life. But I get by. One day at a time. =) -- PEZ
Well here's an interesting one, PEZ. You've got Shark as a problembot, but not Raiko. Assuming their movements are about the same, wouldn't that mean Raiko's gun is less effective against you than Shark's? --Goofy
No. It means Shark's gun is worse than Raiko's against about every bot in the rumble. Just a bit less so against surfers. -- PEZ
A truly random gun would be just as effective against a surfer as it would be against very other bot in the rumble. Surfers take advantage of the fact that they can learn as you learn. When you manage to hit them, they know where you think the peak is in your stats and can avoid it until you hit them at your new peak. Some surfers go even one further and flatten the results of their movement to try and eliminate all the peaks truly turning you GF gun into a random gun. I would argue that the SharkChallenge is not a test of surfing at all. It is a test of your targeting system more than your surfing system. -- jim
Then again, noone has said that the SharkChallenge is a test for surfers. =) -- PEZ
I finally found the secret of your number one position: you haven't fought a single battle against mini.Wodan :-)
Heheh, let's be realistic, it's probably better for Wodan's ranking. But i introduced statistics aging/rolling averages after i found that it improved my results against CC v1.9.5.3 --Loki
Yes, rolling your gun stats should help against any surfer. But, if I were you I would try a version of Wodan that does not roll the stats. You might find it works better in the rumble as a whole. -- PEZ
I gained 14 points (7 positions) by using a fast version of rolling averages in the general rumble (a bit to my surprise as i only expected improvements against the wave surfers). I tested several 'aging speeds' against a number of the top bots and found contradicting results: fast aging worked best against SS and Aleph, no aging worked best against CC and intermediate against Ascendant. So i finally settled on fast aging. --Loki
B.t.w. the results of MiniWodan in the TargetingChallenge show that an intermediate speed of rolling averages works best against those bots. --Loki
That's for your gun of course. For /Bee every experiment with rolling averages has resulted in decreased RR@H rating. -- PEZ
That looks strange:
Fighting battle 0 ... pez.rumble.CassiusClay 1.9.9.28,pez.mini.Pugilist 2.0.9 RESULT = pez.mini.Pugilist 2.0.9 wins 4948 to 720
--ph
Yeah, it was a non-firing CC. And then I "fixed" it with .28b which also was stationary. =) But now .28c booth fires and moves. -- PEZ
Looks like .37 has a bug. Unless of course this is your HOT test... -- Alcatraz
Thanks! It's not my HOT test. V .09ho is my HOT test. ... I wonder what .37 is doing! -- PEZ
OK. *lol* Found it. I often do that. I'll let .37 be left in till it gets all pairings. It'll answer the question "how high ranking does a surfer get if it doesn't fire?" Duh!!! -- PEZ
Wow! I used sample.Walls to check what was wrong with .37. And in round 3 I actually saw that bug (when CC takes a HOT non-ChaseBullet hit) happening! I don't have the time right now to investigate it, but it's a MAJOR breakthrough to have seen it. I'll have that bug fixed soon I think. Yay!!! -- PEZ
.09hot might score higher with Shark's gun, which would prevent being crushed by surfers. Just a thought. :-) --David Alves
Feel free to test it! I'm sure you'll figure out how to plug Shark's gun on a CC .09rd in a jiffy. -- PEZ
Ain´t CC the King again? -- Axe
Nope. Just a test version of Ascendant hanging around. =) -- PEZ
someone (maybe it was CuriousGeorge) said "asking questions is never stupid", but maybe my question qualifies. Anayway here it is: where are the results of the PremierLeague posted ? I have seen claims like "King of PremierLeague" before, but have never been able to verify them :( --Loki
That's the point. The claims are up for grabs. =) Nah! On the RoboRumble/CurrentRankings page there's a PL for the various classes where a PL ranking is available. -- PEZ
??? have you just added that PL link, or have i (unconciously ignored/overlooked) that link sinds it have been added? Or is it because i always open the RR-results directly from my 'Favourites'? Anyway, i am learning something new each time i visit this wiki. thanks for answering any question, be it a smart one or a stupid one! --Loki
You've probably missed that link for almost a year. =) Anyway, as you now saw, CC and Pear both have only one loss, but I claim the crown since I use the ELO ranking to solve the tie. I do like CC's LRP graph too. CC is a balanced bot, almost no outliers on that graph. -- PEZ
PEZ, u use 1.9 pwr bullets even against rammers? I think that they deserve 3.0 pwr bullets, dont? I´m thinking in try this later... I know it is a lil issue, but these rammers are indeed annoying, as u said once:"Death is too kind to NanoDeath..." :). -- Axe
You're right, maybe true rammers are too predictive to fire anything less than 3.0 against. But CC is already among the top-3 ND-bashers (most versions of CC are #1 in this game)... Worth a try anyway. Death is to kind to NanoDeat after all. =) -- PEZ
mmm... Maybe im doing this already, i use power 3.0 bullets if hitRate > 35% remember? I forgot. :) -- Axe
Yes, and I haven't tried that yet. Good you reminded me. -- PEZ
It's a bit too small diff to tell for sure maybe, but it looks like firing full power when the hit rate indicates an easy victim bought me 1 or 2 points. Thanks! Maybe with some extra attention to detail in this (right now it's the rawest and simplest implementation imaginable) I can squeeze out 2 secured points. -- PEZ
That was my result too... 1 or 2 points gain. It´s lil, but... -- Axe
The current CC is right now less than one point behind Ascendant, which means that the difference between the ratings of these bots is probably within the margin of error. So according to the rating these bots are equally good. Now i wonder whats the consequence for the position of the king. Are there two kings now? Or has the new king to be better than the old one? Or is there another competition to solve these issues (maybe consulting PremierLeague, or the direct duel)?
Maybe i should try that bullet power thing too. If i gain about one point too, we can postpone that question :-). -- Mue
Yeah, postpone it please. =) But it looks like Ascendant ended up #1 in the exchange as it is. I think that if we have two bots competing very closely for #1 then we can upload some 25 battles which pairs those two bots and let the outcome from that decide which one is the King's bot. -- PEZ
Hmmm, maybe CC just had some luck there. Now it's back at 2066 again... -- PEZ
Congratulations, you have a very strong release there. Right now CC is 0.3 rating points above Ascendant with 752 battles fought.
pez.rumble.CassiusClay 1.9.9.67 2067.82 (752) mue.Ascendant 0.9.7 2067.53 (1010)
I think that this is too close to just judge by the ranking which one is stronger. Maybe its time to run a number of battles between these two (as you proposed above) and use the result to decide who is king now? I'd do it myself, but i dont know how to tell the client to focus on a specific pairing.
Sorry for not simply acknowledging that CC is king now, but i really think that any minor fluctuation in the ranking can change the order of CC and A. --Mue
I agree. Next version maybe. =) -- PEZ
Good luck :-). Though you probably wont need it since it will still take some time until my next release is ready. I started to rewrite my gun making it an array based guess factor gun again (should bring better performance and Bee proves that this is a viable approach). Unfortunately the first results are very disappointing. I'll probably take a closer look at Bee now and run some experiments with it. Maybe i can figure out what exactly it is that makes your gun so incredibly strong. --Mue
If your gun is not array based, what is it based on then? -- PEZ
I tampered with dynamic segmentation and use basically a growing list of segments (each containing a guess factor array). When firing, the segments similar to current situation are weighted together. But after a careful analysis of whats happening there i came to the conlusion that this approach does not have innate advantages compared to array based implementations. So i'm switching to arrays now, which are faster by far, because i just need to compute some indexes instead of comparing the current situation to all situations in that list. --Mue
Interesting. How many similar situations do you collect before weighing them together? Have you tried clustering the similar situations with something like K-Means to see which of them that agree the most about the best guess factor? I would think such a gun should be very strong. -- PEZ
Well, i take all all similar situations into account. I do not really understand what you mean by clustering similar situations. What are K-Means? --Mue
All? That must mean you take all identical situations into account? K-means is a clustering method where you try build N clusters from the input data by chosing the N observations farthest from each other and then assigning observations to these clusters by measuring their "closeness" to the center of the cluster. Each time you add an observation to the cluster you recalculate the center. This goes on until all observations are assigned to a cluster. Then it would be a matter of checking what cluster the current obesrvation belongs to, and checking where the majority of those would fire. The trick is of course to figure out what distance measure to use for an observation with several measures in it. But maybe the euclidian distance between each measurements together with a "weight" for that "axis"... Something like what Axe seems to be doing in SilverSurfer I think. -- PEZ
You once accused Paul_Evans of being a rocket scientist. Now who is looking to lauch their own rockets? I could not follow one word of that. =^> jim
I use the euclidian distance in my gun (actually the squared distance). The center of the cluster is always the current situation, I don't understand what you mean by "chosing the N observations farthest from each other". The dynamic part, adapting axis weights by analysing tendencies, is something I have thought about since forever but never managed to turn it into actual code. -- ABC
That's just how K-Means clustering works, you first decide how many clusters you want and then go assign observations to the clusters. There are some other clustering methods one could use instead, like hierarchical (however you spell that...) wher you start with as many clusters as you have obesrvations and then cluster together neighbouring clusters until you only have one left. Left is a tree of clusters where you could go back and chose the level of clustering you want. We did these kind of things with data at my last job which was about marketing research analysis. Dynamically adapting axis weights? That would be cool! Maybe using the standard deviation for each axis works? -- PEZ
I have some (currently unused) code for computing the standard deviation for each axis, one of my many experiments :). The problem is that I'm not very good with Math/Statistics, and I get lost easily in small tweaks. I'll turn my current movement into a gun first and try to evolve from there, it should be much easier with guess factors because of the reduced sample numbers. -- ABC
The club of non-matematicians trying to use math for solving Robocode problems probably has more members than just you and I, ABC. =) Thinking about what we have just discussed though i wonder if standard clustering techniques are usable in a bot. Maybe it's too heavy to keep clustering a growing list of observations every tick. About std dev. Is it possible to keep the std deviation updated with each collected observation or do you have to recalculate it ever time? Maybe since you already traverse the full list every time it's not a big overhead. -- PEZ
I read somewhere that it is possible to calculate the stdv without traversing the list twice (one for the mean and another for the squared distances), but I never find it when I need it. In my attempt I did it the slow way, but only at the end of each round, adjusting weights only once per round. But then I decided that I better make a working hand-tuned version of it before trying a smarter one. I don't see the need for that clustering method you describe, if you assume a fixed cluster size its easy to keep adding samples until the cluster is full. -- ABC
If you use a fixed cluster size you risk either excluding good matches or including bad ones. Might not be a big problem though, I haven't tested any clustering at all in a gun yet. -- PEZ
I now tried making a version of Bee where I use a log of all my waves and search it for similar situations and find out what visitIndex is most often used among them. It performs like Bee in terms of TC points but gets very slow after a 30 rounds or so... -- PEZ
Interesting, did you use CC's segmentation as axis? Maybe it's time for you to make a proper "only predict if you going to shoot" gun... ;)
I tried that, but got lower TC points in my tests. Must have done something wrong as usual. Anyway, the log quickly grows to hold enormous quantities of observations, which is the big problem if I want a bot that is even possible to run 1K round battles with. Yes, I used CC's existing segmentations. Only difference is that I don't require all of them to match perfectly. Got 2041 points using CC's current movement which means the gun doesn't perform near Bee yet. But if I get some hours of continous coding time I'll try making the gun working without those indexes in the Bee segmentation. -- PEZ
Whoa - what happened with 1.9.9.72? Was it only a gun change that cost that many points? --David Alves
Yeah. It scored 91.10 in TC35 and then lost me 11 points in RR@H. .78 scores 90.89 in TC35 so I just might get higher RR@H rating. =) -- PEZ
You mean it lost you 111 points. Unless that's a mistake on your /UpdateHistory :-) --David Alves
Yeah, I made a mistake there. Imagine that writing 100 points too little still gives a score of 1955! =) -- PEZ
Hi PEZ, i took another look at your Bee gun. I think there is an issue with your last velocity segmentation. The last velocity you use is always the velocity from the tick before. But since you segment on time-since-last-velocity-change too, you get a lot of 'impossible segments'. Last velocity can only differ from current velocity if you are in the smallest time-since-last-velocity-segment. Am i missing something or is this some kind of bug? You know i segment on acceleration instead of last velocity, but of course i take the acceleration from the last time the velocity changed (no need to use extra segments to tell the gun that velocity didnt change since time-since-last-velocity-change). --Mue
It isn't exactly a bug, but I am aware of it. Jamougha uses the buckets for different stuff in this situation, but I can't really follow what's going on there and I haven't figured out a way to fill the void. Your solution is excellent! Thanks for letting me know about it. I'll try implement it right away. I'm also using acceleration now instead of a lastVelocity segment so the change should be pretty straight forward. -- PEZ
From my tests it seems it doesn't matter if I use 5 lastVelocity indexes or 2 acceleration indexes. I'll settle for acceleration since it's much clearer about its purpose and since it makes the whole stat buffer less than half the size. -- PEZ
It's probably negligble but going from any speed to speed 0 is possible too (wall collision). -- Pulsar
That's one of the reasons I used the lastVelocity segmentation to begin with. But it seems, in my tests, that it isn't common enough to make a difference. -- PEZ
Wow, CC is rising again. Congratulations! --Mue
Thanks! I'm actually just fooling around with weights and rolling depths. Seems to not matter too much what I do, but there are some few points there at least (obviously). To leap the gap to Ascendant I'll need to do something new though... -- PEZ
That's the price you have to pay to be at the top, but I am confident that you will find a way to really threaten Ascendant. -- GrubbmGait
How long until version 2.0? You are really stretching the 1.9.9 thing. -- Alcatraz
Indeed! Or rather I have been too quick to reach 1.9.9 really. Some of those changes have been truly minor. Like the ones I am trying now. I was thinking to wait with 2.0 until it contained something new. But I have been playing Halo 2 very much lately and haven't really been cooking any new stuff. So. I'll keep stretching it a while. =) -- PEZ
Just admit it, you love to be the King of TLBVNL (The Longest Bot Version Number League) -- GrubbmGait
I've already won that title over at the RobocodeLittleLeague. And there's a limit to the bot version length anyway. =) -- PEZ