In my quest for (reclaiming) the micro rumble throne, I one day, on a whim, stepped over into the world of GuessFactor
targeting. (Well, close to it anyway). Though I had already created GFNano, that was more of a CodeSize
challenge than a quest for RoboCode
greatness. GFMicro matched the performance WeeklongObsession
in its first version, so I decided to keep pressing the point. It morphed into a GF/NN gun, following in the footsteps of Chase-san/Prototype
. Now it uses DynamicClustering
, something I always thought I would get around to playing with at some point.
But enough of the saga. This page is about hard numbers. Here's what I've done.
Following the example of Voidious/SegmentationResearch, I wrote some simple logging code to save data to file. It saves all the relevant information about a scan, and the firing angle that would have hit the bot from that scan (given a fixed firepower function). Then came code to read in the log & simulate the firing angle my DC code would choose for each scan. Voila, a nice, repeatable, fast playground for my research.
I've currently chosen 7 "segments" that I can fit in a micro:
So now my only remaining questions are, what weights do I assign to each "segment", and what depth should I use for the RollingAverage?
As a proof-of-concept, I recorded one TargetingChallenge battle against SandboxDT, and I'm running a sort of GeneticAlgorithm to tweak the weights. If it works well, it'll be off to the rumble to do some data collection!
You beat me to it! I was thinking of using DC for Mini though, Micro is a bit ambitious, don't you think? =) -- Skilgannon
- Like I said, I have 7 "segments" in there, with simple movement. Codesize is currently 756. I'm just assuming I can drop those 7 instructions somewhere. But the research code has some serious problems currently. The first stab at trying to tune against DT lost me about 10%. -- Simonton
- I feel like I'm always the naysayer with you two =), but DynamicClustering in a CodeSize restricted league is just silly. Even in MegaBots, DynamicClustering and VisitCountStats seem to be pretty equal as methods, but the latter is SO much less CodeSize. Also, I claim title of first MiniBot (maybe even MicroBot) DC gun in the early versions of LuminariousDuo. =) -- Voidious
- Naysayer, true. But be careful to say that its SO much less CodeSize. As I mentioned, 6 segments in a micro (the bullet power one doesn't count for this comparison) is an aweful lot. RaikoMicro, Aristocles and Thorn all have 4. -- Simonton
- Nevertheless, I have coded both types of guns in a CodeSize restricted environment and I'm fairly sure that VisitCountStats will be 30-50% smaller with the same number of attributes and overall performance. True that you are somewhat of a CodeSize wizard, but that skill should work equally well for both! -- Voidious