The presentation that was held at GECCO 2011 about the "Demolition Derby" competition. In the competition, separate programs control the cars in a racing game being provided with local, sensor information only. The goal is to cause as much damage to other cars with avoiding damage meanwhile.
The slides shortly introduce the controllers of the participants and then present the results and the winner.
See also http://www.youtube.com/watch?v=YZ1Pi7V83Ao
Lecture-20 Kleene’s Theorem-1.pptx best for understanding the automata
Demolition Derby 2011 at GECCO
1. Martin V. Butz Department of Psychology III University of Würzburg Röntgenring 11, 97070 Würzburg, Germany butz@psychologie.uni-wuerzburg.de GECCO 2011Competitions
3. Demolition Derby: Purpose Optimize opponent interactions Avoid being hit – run away when necessary Try to hit others at the right moment Enables (co-) optimization of interaction behavior. Fitness may be based on damage caused to other cars. Co-development of two or more competitors is possible (possibly with different approaches). 3
4. Goal & Setup Goal: Wreck all opponent cars by crashing into them without gettingwrecked yourself. Setup: Local sensor information as in the Simulated Car Racing Competition. Modifications: Sensors: Same simulated sensors – but without noise. The range of the 36 opponent sensors has been increased to 300m. Damage model: Cars do not take any damage when colliding with walls. Cars do not take any damage in the front when colliding with each other. Cars only take damage when their rear is hit by another car. 4
5. Winner Determination Arena: Large circular track (surface: asphalt; length: 640m, width: 90m) Qualifying 1-vs-1 matches evaluating all against all (winner = 1 point) Eight best controllers qualify for the final showdown. Final match: The best eight controllers fight each other. The last car standing in the final match is declared the winner. 5
6. Additional Goodies for a Quick Start Basic controllerclients for Java and C++, to easily add additional functionality to. COBOSTAR client in Java With opponent monitor that tracks opponents over time. With simple crashing strategy that targets closest car in range. Evolvable client setup that receives caused damage signal, applies CMA evolution strategy-based optimization, runs continuously with or (even faster) without visualization for as many generations as desired.
7. Entries Thies Lönneker Dep. of Computer Science University of Würzburg GERMANY Controller: DemoStar Zygmunt Horodyski Piłsudskiego 39/1 66-530 Drezdenko POLAND Controller: Spartiat
8. Entry Information Thies Lönneker Dep. of Computer Science University of Würzburg GERMANY Controller: DemoStar
33. Action SensorModel (SM) Mainclass Update model every 1min (Run Algoritmevery 1min) Action SM Collect data Send action Select one of behaviors Model M Update Controller Behavior GetAction Algoritm Zygmunt Horodyski Overview of how the controller works
43. Car:CAR CAR CAR CAR CAR Zygmunt Horodyski B, C A, C
44. Algorithm The Algorithm is inspired by “life” observations – and the solution is some sort of model. Referring to the reality, we don’t always think about every single move. From time to time we have to update factors that determine our behavior, in other words we’re changing our model. The select is my interpretation of tournament. Each winner of each tournament (10 in total) has the possibility to crossbreed with the best one from the previous population. Also the two worst solutions form each tournament are crossing with each other (to eliminate useless solutions). Each solution has it’s own probability of mutation based on it’s rating. Probability of mutation is checked for each parameter of solution, adding a Gaussian-distributed parameter value if applicable. Zygmunt Horodyski
45. Evaluation function The evaluation function is also related to life. In many areas of life, especially in cars and racing we know the best way, the best solution. But not always we follow that best solution, although we can calculate it. And that make as unpredictable. In my evaluation function firstly we check which one of strategies suits the situation best. Select of it is based on time to the end, current damage (ours and others), current fuel level and others. Two different strategies determine two different best solutions. Each judged solution is compared to the best one and rated. The perfect score that can be granted is for solutions is the one with 10-20% difference from the best solution. Zygmunt Horodyski
46. Controller Controller is part of program that, based on model and current state of environment, sets the action of our car. There are two different controllers, each specialized to different tasks. One that avoids damage and safes fuel (Dumbass) and the other one that tries to cause damage (Pro). Two strategies protect us from programs that learn the opponent. Firstly we select one behavior, then we calculate each Action parameter (based on the selected behavior) and then return that one to the main class. SensorModel Collect data Send action Select one of behaviors M Update Action Behavior Action Zygmunt Horodyski
60. If controller is near edge, it will evade it.EXAMPLES ON THE NEXT SLIDE (The way how it chooses can be checked in source code in DD_D_Pro and DD_D_Dumbass) Zygmunt Horodyski