Difference between revisions of "Carpet/CarpetFinder"

From Robowiki
Jump to navigation Jump to search
(Applet improvements :D)
m
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
== Welcome to the Wonderful World of Carpets ==
 
== Welcome to the Wonderful World of Carpets ==
  
In the past, [[Raiko]] ([http://robowiki.net/cgi-bin/robowiki?Raiko old wiki link]) became a formidable foe due to reasonably strong and quite simple random movement based upon having a probability of changing orbit direction each tick. Jamougha had some interesting ideas about optimizing this probability which are explained some on the bottom of the old wiki page there. I've decided I want to explore the statistics and create a more optimal beast of random movement. The bot this will be for will be known as Carpet, because, well, carpets are flat!
+
In the past, [[Raiko]] ([http://old.robowiki.net/cgi-bin/robowiki?Raiko old wiki link]) became a formidable foe due to reasonably strong and quite simple random movement based upon having a probability of changing orbit direction each tick. Jamougha had some interesting ideas about optimizing this probability which are explained some on the bottom of the old wiki page there. I've decided I want to explore the statistics and create a more optimal beast of random movement. The bot this will be for will be known as Carpet, because, well, carpets are flat!
  
 
Well, Here's a nice looking and fun applet I made that allows one to instantly see the effect that altering the most simple variables has!
 
Well, Here's a nice looking and fun applet I made that allows one to instantly see the effect that altering the most simple variables has!
  
'''[http://homepages.ucalgary.ca/~agschult/CarpetFinder/ Behold the first steps of CarpetFinder!]'''
+
'''[http://rednaxela-robocode.dyndns.org/data/CarpetFinder/ Behold the first steps of CarpetFinder!]'''
  
 
Move to come later!
 
Move to come later!
Line 14: Line 14:
  
 
--[[User:Rednaxela|Rednaxela]] 18:52, 19 February 2009 (UTC)
 
--[[User:Rednaxela|Rednaxela]] 18:52, 19 February 2009 (UTC)
 +
 +
More changes! I'm really fond of this applet today it seems. Now has a "Natural Blend" option, which makes the initial conditions a probabilitic blend of what the initial conditions would likely be at the given direction-change-probability. When "Natural Blend" is enabled, the graph is also what a unsegmented GF gun would see. Also added an "automatically optimize" option, which each time you change something makes it behave as if you clicked the optimize button. Note that when you optimize with "Natural Blend" it essentially optimizes against an unsegmented GF gun. I'm debating as to if I should add an option to optimize against velocity/acceleration segmented GF, however I think the usefulness of that is debatable, I think this movement type has a weakness against those no matter how I tell it to optimize. In any case: Hooray! Looks like I'll have a strong nano movement on the way! --[[User:Rednaxela|Rednaxela]] 01:58, 20 February 2009 (UTC)
 +
 +
Well, by finding the optimal values for all bullet travel times from 1 to 100, compared it to the values Raiko's formula gives, and made this wonderful chart!
 +
''<Incorrect image here removed>''
 +
 +
Bwahahaha...
 +
 +
--[[User:Rednaxela|Rednaxela]] 03:22, 20 February 2009 (UTC)
 +
 +
Hmm... using RaikoNano as a test base, I substituted the Raiko formula with the "Optimal" values I found... however... it gets hit considerably easier by Shadow and Bee guns now... I wonder if it's my simulation that's wrong, or the assumptions I make about the optimal conditions... --[[User:Rednaxela|Rednaxela]] 20:19, 20 February 2009 (UTC)
 +
 +
Doh! Had a stupid bug in my simulation code, but now it's fixed! Now it really looks like Jam was very much on the right track with Raiko's movement formula!
 +
 +
[[Image:Carpet optimal.jpg]]
 +
 +
--[[User:Rednaxela|Rednaxela]] 21:33, 20 February 2009 (UTC)
 +
 +
This is interesting... In my applet, if I put in a starting velocity of 0 instead of 'natural blend', the curve moves almost exactly to where Raiko's curve is. I wonder if Jam already did this kind of simulation before. In any case, I think the curve with 'blended' velocity is more suitable anyway. --[[User:Rednaxela|Rednaxela]] 21:49, 10 October 2009 (UTC)

Latest revision as of 04:49, 19 January 2011

Welcome to the Wonderful World of Carpets

In the past, Raiko (old wiki link) became a formidable foe due to reasonably strong and quite simple random movement based upon having a probability of changing orbit direction each tick. Jamougha had some interesting ideas about optimizing this probability which are explained some on the bottom of the old wiki page there. I've decided I want to explore the statistics and create a more optimal beast of random movement. The bot this will be for will be known as Carpet, because, well, carpets are flat!

Well, Here's a nice looking and fun applet I made that allows one to instantly see the effect that altering the most simple variables has!

Behold the first steps of CarpetFinder!

Move to come later!

--Rednaxela 09:17, 19 February 2009 (UTC)

Applet updated to model a "chance to change acceleration direction" type random movement instead of a "chance to hit the breaks" type which was weak. Also, now displays the chance that a velocity-segmented GF gun with perfect information would have of hitting! ALSO a button to optimize the direction change chance for the set conditions!

--Rednaxela 18:52, 19 February 2009 (UTC)

More changes! I'm really fond of this applet today it seems. Now has a "Natural Blend" option, which makes the initial conditions a probabilitic blend of what the initial conditions would likely be at the given direction-change-probability. When "Natural Blend" is enabled, the graph is also what a unsegmented GF gun would see. Also added an "automatically optimize" option, which each time you change something makes it behave as if you clicked the optimize button. Note that when you optimize with "Natural Blend" it essentially optimizes against an unsegmented GF gun. I'm debating as to if I should add an option to optimize against velocity/acceleration segmented GF, however I think the usefulness of that is debatable, I think this movement type has a weakness against those no matter how I tell it to optimize. In any case: Hooray! Looks like I'll have a strong nano movement on the way! --Rednaxela 01:58, 20 February 2009 (UTC)

Well, by finding the optimal values for all bullet travel times from 1 to 100, compared it to the values Raiko's formula gives, and made this wonderful chart! <Incorrect image here removed>

Bwahahaha...

--Rednaxela 03:22, 20 February 2009 (UTC)

Hmm... using RaikoNano as a test base, I substituted the Raiko formula with the "Optimal" values I found... however... it gets hit considerably easier by Shadow and Bee guns now... I wonder if it's my simulation that's wrong, or the assumptions I make about the optimal conditions... --Rednaxela 20:19, 20 February 2009 (UTC)

Doh! Had a stupid bug in my simulation code, but now it's fixed! Now it really looks like Jam was very much on the right track with Raiko's movement formula!

Carpet optimal.jpg

--Rednaxela 21:33, 20 February 2009 (UTC)

This is interesting... In my applet, if I put in a starting velocity of 0 instead of 'natural blend', the curve moves almost exactly to where Raiko's curve is. I wonder if Jam already did this kind of simulation before. In any case, I think the curve with 'blended' velocity is more suitable anyway. --Rednaxela 21:49, 10 October 2009 (UTC)