EvoRobocode Competition @ GECCO-2013
Upcoming SlideShare
Loading in...5
×
 

EvoRobocode Competition @ GECCO-2013

on

  • 375 views

Results of the EvoRobocode Competition held at GECCO-2013

Results of the EvoRobocode Competition held at GECCO-2013

Statistics

Views

Total Views
375
Views on SlideShare
370
Embed Views
5

Actions

Likes
0
Downloads
1
Comments
0

1 Embed 5

http://www.geccocompetitions.com 5

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

EvoRobocode Competition @ GECCO-2013 EvoRobocode Competition @ GECCO-2013 Presentation Transcript

  • GECCO 2013 GPUs for GEC EvoRobocode Competition Daniele Loiacono and Moshe Sipper
  • 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
  • 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
  • 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
  • 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
  • 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:
  • RoboNucleicAcid     Evolving  Robocode  bots   with  a  Gene7c  Algorithm  for     Mike  Worth  &  Randy  Olson  
  • 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  
  • EvolveBot  class   50  EB*.class  files,  so  pop.  size  =  50  
  • 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  
  • 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  
  • 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  
  • 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
  • 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
  • Implementa<on  of  a  Code  Node   (Func<on/Terminal) 15Heal.TekitokaBot:  A  Robocode  Bot  evolved  with  Gene<c  Programming  using  Heuris<cLab
  • 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
  • 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
  • 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
  • Fitness  Func<on 19 "  Progress  against  Sample  Robots •  Best  Quality:  +241   Heal.TekitokaBot:  A  Robocode  Bot  evolved  with  Gene<c  Programming  using  Heuris<cLabL
  • 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
  • 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  
  • GECCO 2013 GPUs for GEC And the winner is… SCALPBot Robin Harper