EvoRobocode Competition @ GECCO-2013


Published on

Results of the EvoRobocode Competition held at GECCO-2013

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

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

EvoRobocode Competition @ GECCO-2013

  1. 1. GECCO 2013 GPUs for GEC EvoRobocode Competition Daniele Loiacono and Moshe Sipper
  2. 2. GECCO 2013 GPUs for GEC Overview q  EvoRobocode challenges you to apply Evolutionary Computation to design a competitive robot tank for the Robocode game! q  Robocode is a programming game, where the goal is developing in Java a robot tank to fight against other tanks. q  Battles can be either run in real- time and displayed on the screen or run in a batch mode without visualization. q  Robocode also features an on-line tournament system to rank developed tanks. 2
  3. 3. GECCO 2013 GPUs for GEC q  Criteria " 50% – Performance " 30% - Relevance of EC " 20% – Novelty q  Panel … and myself Evaluation J. J. MereloMoshe SipperMike Preuss
  4. 4. GECCO 2013 GPUs for GEC Entries SCALPBot Robin Harper RoboNucleicAcid Mike Worth and Randy Olson TekitokaBot Mohab Elkaref, Andreas Scheibenpflug, Stefan Wagner, and Michael Affenzeller
  5. 5. GECCO 2013 GPUs for GEC SCALPBot q  Based on “Co-Evolving Robocode Tanks”, GECCO-2011 q  Grammatical Evolution together with a Spatial Co-evolution System
  6. 6. GECCO 2013 GPUs for GEC SCALPBot (2) q  Spatial co-evolution of three stacked toroidal planes, each plane having 20x20 (i.e. 400) cells. Inside each cell there are two robocode robots, one the “predator” the other the “prey”. q  Bot structure:
  7. 7. RoboNucleicAcid     Evolving  Robocode  bots   with  a  Gene7c  Algorithm  for     Mike  Worth  &  Randy  Olson  
  8. 8. Gene7c  Algorithm  for  RoboCode   Test  in  Robocode   against  SpinBot     Selec7on   Crossover   Muta7on     Popula7on  Evaluate  each  bot   Fitness  score  for  each  bot   Next  genera7on  of  bots  
  9. 9. EvolveBot  class   50  EB*.class  files,  so  pop.  size  =  50  
  10. 10. Byte  string  encoding   9  byte  strings,  one  for  each  AdvancedBot  event     onScannedBot()      1443a000003f14233248   onHitByBullet()    990ff0aab[b4948a04420   onHitBot()    1f3a864a258990da0daad0998d6475508a0442   onHitWall()    1f3a864a258990da0daad09985746d3a34feeb5cfaf5c99ce2   onBulletHitBullet()    0240000000240000000710   onBulletHit()    43a000000a2488aa0ff5842332   onBulletMissed()    3f301441c2ace2a460   run()      14420000009985746d508a0442   while(true)    990ff0ae000300     Byte  strings  stored  in  associated  .data  directory   Crossover  &  muta7ons  act  directly  on  bytes  
  11. 11. Byte  string  decoding   9  byte  strings,  one  for  each  AdvancedBot  event     onScannedBot()    setFire((e.getDistance()+e.getEnergy())/80);turnGunLec((e.getDistance() +e.getEnergy()));     onHitByBullet()  setFire((e.getHeading()+e.getVelocity())/80);  execute();   setTurnGunLec(((e.getHeading()+e.getVelocity())+e.getBearing()));turnGunLec(((e.getHeading() +e.getVelocity())+e.getBearing()));setMaxVelocity((((e.getHeading()+e.getVelocity())+e.getBearing()) +e.getBearing())/32);     onHitBot()    back(0);setTurnGunLec((0+e.getBearing()));   onHitWall()    execute();setMaxVelocity(0/32);   onBulletHitBullet()  ;   onBulletHit()  turnGunLec(0);   onBulletMissed()  setMaxVelocity(0/32);fire(0/80);   run()    ;   while(true)    ahead(1);  if  (1  >  7)  {setMaxVelocity(0/32)};     Translated  from  byte  code  to  bot  ac7ons,   opera7ons  on  a  register,  and  if  statements  
  12. 12. Limi7ng  code  length  to  nanobot  size   Implemented  feast  and  famine  periods     Feast:  unlimited  genome  size  allowed     Famine:  fitness  propor7onally  reduced  if   genome  size  is  over  nanobot  size  limit     Repeat  feast  and  famine  periods  mul7ple  7mes  
  13. 13. Mohab  Elkaref,  mohab.elkaref@gmail.com Andreas  Scheibenpflug,  ascheibe@heuris7clab.com     Stefan  Wagner,  swagner@heuris7clab.com   Michael  Affenzeller,  maffenze@heuris7clab.com Heal.TekitokaBot:  A  Robocode  Bot  evolved  with  Gene<c   Programming  using  Heuris<cLab
  14. 14. Environment 14 "  Heuris<cLab  (HL) •  Framework  for  heuris7c  op7miza7on •  Can  be  applied  to  different  problems •  Implemented  in  Microsoc®. NET and C# " Robocode  Plugin •  Uses  the  HL  framework  to  apply  Gene7c   Programming  to  Syntax  Tree   representa7ons  of  Robocode  programs   •  Interprets  Syntax  Trees  and  outputs  Java   programs   •  Runs  the  output  programs  in  the   Robocode  simulator  and  retrieves  the   result   Heal.TekitokaBot:  A  Robocode  Bot  evolved  with  Gene<c  Programming  using  Heuris<cLab
  15. 15. Implementa<on  of  a  Code  Node   (Func<on/Terminal) 15Heal.TekitokaBot:  A  Robocode  Bot  evolved  with  Gene<c  Programming  using  Heuris<cLab
  16. 16. Parameters  &  Runs 16 "  Evolu<on  Parameters •  Popula<on  size:  250 •  Crossover:Standard  crossover  with  0.9   probability  of  selec7ng  an  inner  node   and  0.1  probability  of  selec7ng  a  leaf. •  Muta<on:Probability  of  0.3,  used   operators  are:  Changing  of  the  Node   type,  Removal  and  Replacement  of  a   branch.  All  three  had  equal  chances  of   being  selected. •  Solu<on  Creator:Trees  were  generated   using  the  Grow  method,  since  the   implementa7on  of  Numerical  opera7ons   and  Logical  comparisons  introduced   uneven  trees  making  the  use  of  a  Full   Tree  creator  impossible. •  Maximum  Tree  Depth:  15. Heal.TekitokaBot:  A  Robocode  Bot  evolved  with  Gene<c  Programming  using  Heuris<cLab "  Termina<on  Criteria •  Conversion  past  200  genera7ons "  Training  against  Human-­‐Coded  Robots •  5  tops  robots  from  the  roborumble   league  selected   •  206  genera7ons   "  Training  against  Sample  Robots •  5  sample  robots  provided  with   Robocode   •  230  genera7ons   •  5  sample  robots  provided  with   Robocode   "  AUer  ini<al  experiments  2  code  addi<ons "  Code  added  to  turn  radar  around  indefinitely   in  the  Run  method "  Code  added  to  turn  gun  in  direc7on  of  radar   in  onScannedRobot  event
  17. 17. Fitness  Func<on 17 "  5  Human-­‐coded  Robots  matched  against  SiXngDuck  sample  bot "  5  round  Matches •  5  Human-­‐coded  robots  matched  against  SipngDuck  sample  bot •  5  round  matches   •  Largest  Score:  900 •  Difference  of  score  used  as  fitness  measure •  Absolute  score  goes  from  -­‐900(complete  loss)  to  +900(absolute   domina7on) •  Compe77ve  opponents  both  score  close  to  0 "  Evalua<on  of  members  of  popula<on •  Average  score  difference  of  score  against  5  opponents •  5  round  matches  against  each  opponent Heal.TekitokaBot:  A  Robocode  Bot  evolved  with  Gene<c  Programming  using  Heuris<cLab
  18. 18. Fitness  Func<on 18 "  Progress  against  Human-­‐coded  Robots •  Best  Quality:  -­‐264 Heal.TekitokaBot:  A  Robocode  Bot  evolved  with  Gene<c  Programming  using  Heuris<cLab
  19. 19. Fitness  Func<on 19 "  Progress  against  Sample  Robots •  Best  Quality:  +241   Heal.TekitokaBot:  A  Robocode  Bot  evolved  with  Gene<c  Programming  using  Heuris<cLabL
  20. 20. Comparing  Results  of  Runs 20Heal.TekitokaBot:  A  Robocode  Bot  evolved  with  Gene<c  Programming  using  Heuris<cLab " Result  in  a  cell  is  score  of  column  vs   row "  Value  between  brackets  is  number   of  wins " BotSample  selected  to  enter   compe<<on  under  the  name   Heal.TekitokaBot "  Selec<ng  Best  Robots  from  the  2   runs •  Best  3  robots  from  run  against  Human   coded  Robots •  Bot200,  Bot199,  Bot198 •  Best  robot  from  run  against  Sample   robots •  BotSample •  25  round  matches "  Rank  in  NANORUMBLE:  189/248
  21. 21. GECCO 2013 GPUs for GEC Performance Evaluation q  RoboRubmle (Nanobots category, 28 participants) q  Out of 1000 battles: Rank  Robot Name   Total Score  1sts  2nds  3rds   1st   SCALPBot   150256 (44%)   515   281   204   2nd   TekitokaBot   111007 (32%)   389   308   303   3rd   MendelBot   81743 (24%)   172   340   488  
  22. 22. GECCO 2013 GPUs for GEC And the winner is… SCALPBot Robin Harper