RobocodeJGAP

From Robowiki
Revision as of 18:31, 14 December 2008 by Klausikm (talk | contribs) (Added logo)
Jump to navigation Jump to search
RobocodeJGAP.png

Overview

RobocodeJGAP is an approach to automatically evolve Robocode via the Genetic Programming engine JGAP (Java Genetic Algorithms and Genetic Programming Package). JGAP is an open source Java framework for Genetic Algorithms and Genetic Programming. RobocodeJGAP is based on JGAP. The RobocodeJGAP project can be also downloaded. JGAP and RobocodeJGAP are maintained by Klaus Meffert.

Testbed and fitness computation

RobocodeJGAP evolves a robot and then let it fight against one or many robots in each evolution step (but only one opponent at a time). It can be configured whether one or more robots are registered as opponents. Currently 3 opponents are configured. The opponents are already existent, regular robots taken from the Robocode repository and the samples provides with robocode. The 3 robots are: voidious.Dookious (the best robot in the overall ranking) sample.TrackFire (supplied with Robocode) bestaspirant.Aspirant_winner (an evolved robot that has quite a good score) Two modes of operation are possible: a) fight one of the three robots each evolution step (randomly chosen) in a one-to-one battle b)fight all of the three robots and calculate the average. Currently mode b) is set.

The fitness value of a robot is calculated after each battle. For that the ratio of the own score to the sum of both robots scores is taken. To scale the score up, it is artifically multiplied by 1000.

If fighting against three enemies one after another in a single evolution round, and the difference between the best score of our evolved robot and the worst score is too high, the fitness average is reduced a bit. The idea behind that is that an enemy that could be quite good, may have a partial weakness we just explored. But that doesn't help much, normally, in fighting against 200 other robots, like in RoboRumble.