Difference between revisions of "User:Bigfatcat"

From Robowiki
Jump to navigation Jump to search
 
(4 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
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.
 
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'''
+
'''Number of Generations: 40'''
  
 
'''Initial Population: 100'''
 
'''Initial Population: 100'''
  
'''Reproduction Rate: 16% per generation'''
+
'''Reproduction Rate: 8% 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.
+
'''Fitness Measure: Score / (Score + (average score of opponents) )'''
  
'''Population at Generation 25: 3263'''
+
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.
  
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.
+
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.--[[User:Bigfatcat|Bigfatcat]] 19:53, 27 April 2011 (UTC)
  
 
I'll edit with updates. Cheers!
 
I'll edit with updates. Cheers!
--[[User:Bigfatcat|Bigfatcat]] 18:56, 25 April 2011 (UTC)
+
--[[User:Bigfatcat|Bigfatcat]] 13:16, 26 April 2011 (UTC)
  
 
----
 
----
 
 
I ended the run after waiting for too long...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? --[[User:Bigfatcat|Bigfatcat]] 20:44, 25 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? --[[User:Bigfatcat|Bigfatcat]] 20:44, 25 April 2011 (UTC)

Latest revision as of 20:53, 27 April 2011

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)