Coevolution of Human-Competitive Robocode Tanks Using Genetic Programming with Exogenous Fitness Jason Owens & Ron Bowers.
Presentation on theme: "Coevolution of Human-Competitive Robocode Tanks Using Genetic Programming with Exogenous Fitness Jason Owens & Ron Bowers."— Presentation transcript:
Coevolution of Human-Competitive Robocode Tanks Using Genetic Programming with Exogenous Fitness Jason Owens & Ron Bowers
Why? Interesting GP and coevolution are particularly intriguing aspects of EC. We are using EC to generate an entertaining product. Challenging GP and coevolution are difficult to use. To date, no one has succeeded with coevolution in Robocode. Relevant Our employer is developing adaptive, agent-based combat simulations. We aren't working on them.
Coevolution Angeline and Pollock  argue that competitive fitness functions are more effective than independent fitness functions. A competitive fitness function is dependent on the current state of the population, rather than relative to a global optimum. Generally, competitive fitness is measured through competition betweenpopulation members. These competitions can range from testing each member against each other to a carefully structured tournament Floreano, Nolfi and Mondada  found that competitive coevolution can generate efficient chasing and escaping strategies in a predator/prey environment. This capability evolved even more quickly than "simple" wall avoidance They postulate that competitive coevolution generates solutions to difficult problems by generating a series of challenges of increasing difficulty. Uchibe and Asasa  were able to use coevolution to evolve both competitive and cooperative behaviors in soccer playing bots.
Difficulties with Coevolution Mediocre Stable State Ficici and Pollack  note additional difficulties. Maintaining balance in the arms race. The environment should neither be too easy nor too difficult: Open-ended coevolution is not necessarily synonymous with a purely competitive framework. Instead, it's necessary to provide a mixture of competitive and cooperative pressures in order to avoid the mediocre stable state.
Previous Work with Robocode Eisenstein  Used a GA to evolve a subsumption architecture. Was successful in developing bots that could fight a specific adversary given a specific starting condition Attempted to use coevolution but after several generations I found the populations rife with catatonics Hong and Cho  Used a GA that consisted of 6 chromosomes, representing the bot behavior in the main loop and in 5 of the event handlers. Each chromosome consisted of six genes, corresponding to actions such as move or shoot. Each action could be one of 2 or more hand-coded implementations. Were successful in consistently defeating 3 of the standard bots.
Previous Work With Robocode Shichel, Ziserman, and Sipper  Used Koza-style GP Limited investigation to Haiku Bot (4 lines of code) Evolved bots were entered into a Haiku Bot tournament where they placed third out of 27. Also attempted coevolution, but could not produce competitive bots.
Hypothesis We hypothesize that by using genetic programming and coevolution with an exogenous fitness function we can evolve Robocode agents that can compete successfully against human-coded bots. But...
Initial Results We did not entirely succeed. We did not produce any competitive agents in time to report in the paper. We have continued our efforts!
Algorithm Configuration Strongly-typed tree-based GP Linear-rank selection using stochastic universal sampling 80% crossover, 20% mutation (whoa!) Elitism (one individual) Initial tree depth of 5
Fitness Functions simple (shoot and dodge) movement, enemy sensing, wall avoidance re-proportioned movement value final, emphasis on damage with firing/scanning efficiencies
Analysis of Initial Results Unearned dodging credit overblown scan credit Generally a rapid rise, then decay. Trees appear non-robust (brittle). Behavior arises from the coupling of trees and state. Different event histories lead to different states and thus radically different behavior.
Mistakes and Deficiencies Using a Single Population Using instantaneous fitness. Not monitoring the progress to determine if the population had started to degress. Threading issues (Heisenbugs) in Robocode.
Open Questions Can coevolution in general succeed in multi-dimensional one-population competitive environments without outside influence? Does this environment need the insertion of external human-coded bots to drive fitness adjustments? How do we modify the fitness function to improve behavior?
Future Work Continue experimenting with the exogenous fitness function, the node set, population size, and the reproduction parameters in an attempt to succeed with the coevolutionary approach. Incorporate the results from the progress measurement rounds into the selection process. Replace the single population model with a dual population model and investigate the efficacy of the evaluation approaches specified in De Jong  and Bader-Natal  Modify the driver program to limit the size of the trees.