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: 40

Initial Population: 100

Reproduction Rate: 8% per generation

Fitness Measure: Score / (Score + (average score of opponents) )

The program evaluates fitness via a ten rounded battle between the current robot being evaluated, two sample robots and my own hand made 'role model' robot. Robots that have not been mutated and have not experienced crossover with its parents are not re-evaluated.



Some pretty decent robots have been produced so far but I'm still trying to optimise the algorithm. My hand made 'house robot' still consistently beats my best 'genetic robot'; I'm beginning to wonder whether I've coincidently produced already optimised values for my house robot. Maybe for this exercise I should expect less of my genetic robots. I am considering reducing the capabilities of my house robot; it will still be capable of beating all of the sample bots but it is important for me to produce a GP which creates genetic robots capable of beating my hand-made robot. I'm currently playing with a modified battle; I'm running two battles; one where the genetic robot fights the house bot and two sample bots and secondly the genetic robot fights the house bot on its own. Nevertheless in my own testing my hand made House Robot is by far the king of the castle.--Bigfatcat 19:53, 27 April 2011 (UTC)

I'll edit with updates. Cheers! --Bigfatcat 13:16, 26 April 2011 (UTC)


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)