Paper: Evolving Robot Tank Controllers Author: Jacob Eisenstein Summary: The paper evaluates a genetic programming approach to developing controllers for tanks in Robocode. These evolving programs are written in TableRex, a language designed by the author, which is amenable to genetic programming. The actual Java robot controller incorporated an interpreter for TableRex. Important ideas in paper: 1. When used correctly, genetic programming can evolve acceptable agent programs for nontrivial environments where firstly, there is a lot of knowledge to handle. Secondly, the agent receives a number of percepts in quick succession (in terms of diverse game events like being hit, shooting someone successfully, etc) but the agent won't succeed if it is just a reflex agent. It needs to create and execute short plans for each of these percepts, and time is a constraint. 2. It is an interesting example of a successful application of genetic programming, in a language specifically designed for this purpose. Flaws in paper: 1. The method succeeded in evolving good robots mainly because it had high quality hand-coded robots to train against. It is highly unlikely these results would have been possible if these training robots had not been available. Further, these evolved robots still were quite poor at shooting, though they did learn to evade bullets. 2. The paper has independent event handling functions (written in TableRex). These functions pretty much don't interact, and don't update any global knowledge base. Open questions: 1. How well can genetic programming do in different problems in AI. It doesn't represent and infer from knowledge in the conventional way. Knowledge "evolves" according to a small fixed set of rules (crossover, mutation). Is it realistic to expect genetic programming to be the best method for some set of problems. 2. More work is possible needed on writing languages amenable to genetic programming.