User:Bigfatcat

From Robowiki
Jump to navigation Jump to search

Genetic Programming with Robocode

I'm creating a genetic program (GP) to optimise a specified set of Robot functions over a specific number of generations. I've almost completed the GP and I am currently optimising the figures below and others such as mutation and crossover probability.

Number of Generations: 50

Initial Population: 100

Reproduction Rate: 16% per generation

As I type the program has been running for about two hours and is at generation 25 but now it is taking about 10-15 mins to run per generation; and that's increasing too.

Population at Generation 25: 3263

The program evaluates fitness via a three rounded 3v3 battle between the current robot being evaluated and two other default 'house' robots. Robots that have not been mutated and have not experienced crossover with its parents are not re-evaluated.

This is taking a lot of time! Compiling the java files and then running the battles hundreds of times by a factor of 50 generations and the size of the population is causing the application to take a long time per generation cycle.

If anybody has any idea how to reduce compile or battle run time I'd really appreciate it.

I'll edit with updates. Cheers! --Bigfatcat 18:56, 25 April 2011 (UTC)



I ended the run after waiting and waiting...I then reduced the reproduction rate to 8%. The program is still running but it is not on the 41st generation. I may have to let it run overnight.

My Robocode battles are run via my own created BattleRunner class which creates a new BattleEngine and BattleSpecification etc... I was wondering, would my application run any faster by running the BattleRunners as Threads? or would that kill my program and/or computer? --Bigfatcat 20:44, 25 April 2011 (UTC)