User talk:Bigfatcat

From Robowiki
Revision as of 00:09, 26 April 2011 by Voidious (talk | contribs) (comment)
Jump to navigation Jump to search

Feel free to discuss my Genetic Programming project!

If you need to speed up the compiling you may with to try using Jikes instead of javac. It compiles much faster, but unfortunately only works for Java 1.4 and earlier, so you need to point at an old robocode.jar for your compile classpath. For running, if you have multiple cores you can turn on the robocode option to enable running the robots in parallel. Otherwise you could use something like RoboResearch which can network battles across multiple machines and set up a whole lab to run your battles. Some food for thought =) --Skilgannon 18:30, 25 April 2011 (UTC)

Thanks Skilgannon, really appreciate the suggestions, definitely food for thought :) I'll look into the dual core option, if I have time RoboResearch sounds like a good idea too. For now I'll halve the reproduction rate just so I can run a complete cycle of 50 generations and while I'm waiting I'll look into your suggestions. Cheers! --Bigfatcat 18:40, 25 April 2011 (UTC)

I've been tinkering with genetic algorithms with Robocode - not "genetic programming", just tuning parameters of algorithms. Why increase the population size over time? I just cull to the same population size each generation. My populations tend to be more like 20-50. Currently I breed using "roulette selection", which I think is pretty common. Also, note that you need to run a lot if battles to accurately evaluate performance, especially as your fitness goes up. Something like 50-100 battles (35 rounds each) is what I use until fitness improvement starts really slowing down. In general, as my fitness improvement slows down, I lower mutation rate, increase crossover rate, and increase the battle count. Of course, all these settings vary by the problem you're working with.

As you've noticed, running actual battles is kinda slow, though that also depends on the complexity of the bots. I'm using WaveSim just to work on targeting algorithms. If you can find any way to evaluate fitness without running actual battles, that could help a lot. Good luck. =) --Voidious 23:09, 25 April 2011 (UTC)