Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Present car racing_setup

445 views

Published on

Published in: Technology, Sports
  • Be the first to comment

Present car racing_setup

  1. 1. Car setup optimization via evolutionary algorithms Carlos Cotta, Antonio J. Fern´andez-Leiva, Alberto Fuentes S´anchez, Ra´ul Lara-Cabrera Dept. Lenguajes y Ciencias de la Computaci´on, University of M´alaga, SPAIN http://anyself.wordpress.com http://dnemesis.lcc.uma.es
  2. 2. Introduction Artificial intelligence (AI) in games has become a very important research field International conferences and journals that only focus on this topic: CIG, AIIDE, TCIAIG Games offer a large variety of AI research problems: planning, player modeling, decision making under uncertainty, ... They should be used as tool for testing AI techniques 2 / 11
  3. 3. TORCS: The Open Racing Car Simulator Open-source 3D racing simulator Human and artificial players (bots) Client-server architecture: Bots run as an external process Communication with the race server through an UDP connection Cars have 50 mechanical parameters: Tyre angles, suspension’s hardness, ... Good testing framework for optimization techniques 3 / 11
  4. 4. The competition The contest involves three tracks The objective is to find the best car setup for each one of the tracks Two phases: optimization and evaluation (time-limited) A car setup is represented by a vector of real numbers (50 parameters) Participants are ranked according to their maximum covered distance 4 / 11
  5. 5. Steady-state approach (I) Parameters are real values and encoded with 10-bit Each individual of the population is an array of 500 bits Crossover and mutation with probability 1.0 5 / 11
  6. 6. Steady-state approach (II) Fitness function C1 ∗ distraced + C2 ∗ topspeed + C3 ∗ (1000 − bestlap) + C4 ∗ damage distraced Total amount of distance topspeed Maximum speed bestlap Best lap time damage Damage taken by the car Several combinations of weights C1, C2, C3, C4 have been tested. 6 / 11
  7. 7. Steady-state approach (III) Experimental Analysis Runs:10 Population:50 Iterations:20 Best weights after testing several combinations: C1 = 0.6, C2 = 2.5, C3 = 0.15 and C4 = 0.05 Controller submitted to the EVO-* competition: Competitor CG Track Poli-Track Dirt-3 Distance Points Mu˜noz (MOEA) 10 6 8 23614.13 24 Garc´ıa-S´aez (PSO) 6 10 5 21388.04 21 Walz (PSO) 8 5 6 21049.77 19 Fuent-Cotta-Fdez-Cab (GA) 4 4 10 19748.08 18 Mu˜noz-Mart´ın-S´aez (EA) 5 8 4 20515.29 17 7 / 11
  8. 8. Multi-objective approach Multi-objective algorithm using SPEA2 We have tested several combinations of fitness functions: Variables: bestlap, distraced, damage, topspeed and the fitness defined for the single-objective algorithm Best results obtained from two objectives: minimize the time of the best lap and maximize the single-objective fitness Additionally, we have considered the optimization of every variable, that is, maximize distraced and topspeed and minimize bestlap and damage 8 / 11
  9. 9. Multi-objective approach (II) Experimental Analysis Runs:10 Population:50 Generations:20 Compared to the participants of the competition held at GECCO-2009 Driver Speedway ETRACK Olethros Wheel Total Multi-objective 10 5 8 8 31 V&M&C 4 8 5 10 27 Jorge 8 4 10 4 26 Multi-objective PCA 3 10 6 6 25 Single-objective 5 6 4 5 20 Luigi 6 3 3 3 15 9 / 11
  10. 10. Conclusions Different proposals based on evolutionary computation to set up a car in a racing simulator Multi-objective evolutionary algorithms are a good solution to the problem The single-objective algorithm has determined the fitness function used in our EMOAs Future work: Use meta-optimization to get a better fitness function Improve evolutionary algorithms’ parameters in order to obtain better results 10 / 11
  11. 11. Thanks for your attention! AnySelf Project http://facebook.com/AnySelfProject @anyselfproject http://dnemesis.lcc.uma.es/wordpress/ @DNEMESISproject 11 / 11

×