Raspberry PI 2
6x a P2-300 is still pretty much crap by our standards. :-) But it sounds like a fun experiment, keep us posted!
It doesn't need to be lightning fast if you can leave it on all day every day running something. It only consumes around 4 watts compared to 500 for a desktop PC so its not going to break your bank to do so. I dunno if the power to wattage ratio is better than a desktop PC though! Are desktop PCs 100 times faster than a RP2? I would have thought not!
I can go to work, leave it running which is not what I would do with my desktop! :)
Sure, sure, let me know when you're willing to wait 4 days for what takes an hour on your desktop. :-) I've done GA on my quad core Core i7 (6-8 threads running safely) and let it run for days. I cringe at the thought of a cluster of P2-300s doing the same amount of work... weeks? years?
CPU power aside, I'd be curious to hear about your GA setup. I've looked into, but never done real battles with Robocode. I've only evolved guns with WaveSim. To evolve movement, I imagine you have a test bot loading the variable code from a .properties file, unless your GA code is compiling and outputting JARs, which is the ideal but a pain.
FWIW, GA with full bots is not hard with BerryBots - I've even written an example to solve a maze: http://berrybots.com/wiki/MazerEvolver .... But, alas, the automation API doesn't support the Raspberry Pi (yet?). The big hurdle is that the automation API supports user interaction - you specify what fields you want and it prompts the user with a GUI. I'd like to do an ncurses version for the Rpi at some point, but who knows if I'll get around to it - I'm more interested in the web UI at this point.
Hah I'm not so sure it will be that slow. We shall see I guess. Will be fun to find out whatever the result! :)
As for the GA I don't have it running yet, but I have in the past for previous test bots. This time will be similar but better I hope. Basically I have my own framework for testing a bot similar to Roborunner / RoboJogger but I can run diirectly from other code. This is all in C# just because its what I'm most comfortable in using (especially for threading). I plan to use this framework to run tests against bots as you describe by programmatically updating a settings file in the bots data directory. Do a run for every individual in the population, evolve, try again. This will be very slow to run I know. But I will probably evolve on a subset of the robots in the RR, not sure how many yet. You have a good idea of what gives good coverage? I dont want the GA to specialise against just a few bots as it will probably decrease performance vs the rest! :)
I will be evolving all parameters in the bot at once. GA is great for doing this, I think that doing movement/gun independently has advantages and disadvantages but I think the two are not mutually exclusive and the GA might find some interesting ways of setting variables such as firepower depending on how your bot moves compared to your target - and your targets will adjust movement & position depending on your position, which affects your targeting. We shall see!
If I get time I will do a write up of my stuff and maybe release the source for my framework if anyone isn't wanting to use RR/RJ for some reason like me! :D
Back of the napkin calculation: 17 years since I got my P2-300 = 11 doublings (Moore's Law) = 2^11 or 2048x speed for modern desktop vs original Rpi /= 6 for Rpi 2 = 340x. =)
The P2-300 is Single core, The Cortex-A7 is Quad core . The P2-300 has 300 Mhz, The Cortex-A7 has 900 Mhz. The P2-300 is CISC, The Cortex-A7 is RISC. The P2-300 consumes 18.6 Watts, The Raspberry Pi only 4 Watts. In other words yes the Cortex-A7 is better than P2-300.