SlideShare a Scribd company logo
1 of 22
Download to read offline
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

More Related Content

What's hot

GPU Programming on CPU - Using C++AMP
GPU Programming on CPU - Using C++AMPGPU Programming on CPU - Using C++AMP
GPU Programming on CPU - Using C++AMPMiller Lee
 
A Future for R: Parallel and Distributed Processing in R for Everyone
A Future for R: Parallel and Distributed Processing in R for EveryoneA Future for R: Parallel and Distributed Processing in R for Everyone
A Future for R: Parallel and Distributed Processing in R for Everyoneinside-BigData.com
 
SICP勉強会について
SICP勉強会についてSICP勉強会について
SICP勉強会についてYusuke Sasaki
 
TC74LCX244FW PSpice Model (Free SPICE Model)
TC74LCX244FW PSpice Model (Free SPICE Model)TC74LCX244FW PSpice Model (Free SPICE Model)
TC74LCX244FW PSpice Model (Free SPICE Model)Tsuyoshi Horigome
 
TC74LCX244FT PSpice Model (Free SPICE Model)
TC74LCX244FT PSpice Model (Free SPICE Model)TC74LCX244FT PSpice Model (Free SPICE Model)
TC74LCX244FT PSpice Model (Free SPICE Model)Tsuyoshi Horigome
 
TC74LCX244F PSpice Model (Free SPICE Model)
TC74LCX244F PSpice Model (Free SPICE Model)TC74LCX244F PSpice Model (Free SPICE Model)
TC74LCX244F PSpice Model (Free SPICE Model)Tsuyoshi Horigome
 
Scott Anderson [InfluxData] | Map & Reduce – The Powerhouses of Custom Flux F...
Scott Anderson [InfluxData] | Map & Reduce – The Powerhouses of Custom Flux F...Scott Anderson [InfluxData] | Map & Reduce – The Powerhouses of Custom Flux F...
Scott Anderson [InfluxData] | Map & Reduce – The Powerhouses of Custom Flux F...InfluxData
 
C++ Corehard Autumn 2018. Обучаем на Python, применяем на C++ - Павел Филонов
C++ Corehard Autumn 2018. Обучаем на Python, применяем на C++ - Павел ФилоновC++ Corehard Autumn 2018. Обучаем на Python, применяем на C++ - Павел Филонов
C++ Corehard Autumn 2018. Обучаем на Python, применяем на C++ - Павел Филоновcorehard_by
 
QGATE 0.3: QUANTUM CIRCUIT SIMULATOR
QGATE 0.3: QUANTUM CIRCUIT SIMULATORQGATE 0.3: QUANTUM CIRCUIT SIMULATOR
QGATE 0.3: QUANTUM CIRCUIT SIMULATORNVIDIA Japan
 
Performance Portability Through Descriptive Parallelism
Performance Portability Through Descriptive ParallelismPerformance Portability Through Descriptive Parallelism
Performance Portability Through Descriptive ParallelismJeff Larkin
 
Home Automation with Android Things and the Google Assistant
Home Automation with Android Things and the Google AssistantHome Automation with Android Things and the Google Assistant
Home Automation with Android Things and the Google AssistantNilhcem
 
Optimizing the Performance of an Unpredictable UAV Swarm for Intruder Detection
Optimizing the Performance of an Unpredictable UAV Swarm for Intruder DetectionOptimizing the Performance of an Unpredictable UAV Swarm for Intruder Detection
Optimizing the Performance of an Unpredictable UAV Swarm for Intruder DetectionDaniel H. Stolfi
 
Vc4c development of opencl compiler for videocore4
Vc4c  development of opencl compiler for videocore4Vc4c  development of opencl compiler for videocore4
Vc4c development of opencl compiler for videocore4nomaddo
 
A Cooperative Coevolutionary Approach to Maximise Surveillance Coverage of UA...
A Cooperative Coevolutionary Approach to Maximise Surveillance Coverage of UA...A Cooperative Coevolutionary Approach to Maximise Surveillance Coverage of UA...
A Cooperative Coevolutionary Approach to Maximise Surveillance Coverage of UA...Daniel H. Stolfi
 
Static analysis of C++ source code
Static analysis of C++ source codeStatic analysis of C++ source code
Static analysis of C++ source codeAndrey Karpov
 
Config interface
Config interfaceConfig interface
Config interfaceRyan Boland
 
Pythran: Static compiler for high performance by Mehdi Amini PyData SV 2014
Pythran: Static compiler for high performance by Mehdi Amini PyData SV 2014Pythran: Static compiler for high performance by Mehdi Amini PyData SV 2014
Pythran: Static compiler for high performance by Mehdi Amini PyData SV 2014PyData
 

What's hot (18)

GPU Programming on CPU - Using C++AMP
GPU Programming on CPU - Using C++AMPGPU Programming on CPU - Using C++AMP
GPU Programming on CPU - Using C++AMP
 
A Future for R: Parallel and Distributed Processing in R for Everyone
A Future for R: Parallel and Distributed Processing in R for EveryoneA Future for R: Parallel and Distributed Processing in R for Everyone
A Future for R: Parallel and Distributed Processing in R for Everyone
 
SICP勉強会について
SICP勉強会についてSICP勉強会について
SICP勉強会について
 
TC74LCX244FW PSpice Model (Free SPICE Model)
TC74LCX244FW PSpice Model (Free SPICE Model)TC74LCX244FW PSpice Model (Free SPICE Model)
TC74LCX244FW PSpice Model (Free SPICE Model)
 
Thesis Final Presentation
Thesis Final PresentationThesis Final Presentation
Thesis Final Presentation
 
TC74LCX244FT PSpice Model (Free SPICE Model)
TC74LCX244FT PSpice Model (Free SPICE Model)TC74LCX244FT PSpice Model (Free SPICE Model)
TC74LCX244FT PSpice Model (Free SPICE Model)
 
TC74LCX244F PSpice Model (Free SPICE Model)
TC74LCX244F PSpice Model (Free SPICE Model)TC74LCX244F PSpice Model (Free SPICE Model)
TC74LCX244F PSpice Model (Free SPICE Model)
 
Scott Anderson [InfluxData] | Map & Reduce – The Powerhouses of Custom Flux F...
Scott Anderson [InfluxData] | Map & Reduce – The Powerhouses of Custom Flux F...Scott Anderson [InfluxData] | Map & Reduce – The Powerhouses of Custom Flux F...
Scott Anderson [InfluxData] | Map & Reduce – The Powerhouses of Custom Flux F...
 
C++ Corehard Autumn 2018. Обучаем на Python, применяем на C++ - Павел Филонов
C++ Corehard Autumn 2018. Обучаем на Python, применяем на C++ - Павел ФилоновC++ Corehard Autumn 2018. Обучаем на Python, применяем на C++ - Павел Филонов
C++ Corehard Autumn 2018. Обучаем на Python, применяем на C++ - Павел Филонов
 
QGATE 0.3: QUANTUM CIRCUIT SIMULATOR
QGATE 0.3: QUANTUM CIRCUIT SIMULATORQGATE 0.3: QUANTUM CIRCUIT SIMULATOR
QGATE 0.3: QUANTUM CIRCUIT SIMULATOR
 
Performance Portability Through Descriptive Parallelism
Performance Portability Through Descriptive ParallelismPerformance Portability Through Descriptive Parallelism
Performance Portability Through Descriptive Parallelism
 
Home Automation with Android Things and the Google Assistant
Home Automation with Android Things and the Google AssistantHome Automation with Android Things and the Google Assistant
Home Automation with Android Things and the Google Assistant
 
Optimizing the Performance of an Unpredictable UAV Swarm for Intruder Detection
Optimizing the Performance of an Unpredictable UAV Swarm for Intruder DetectionOptimizing the Performance of an Unpredictable UAV Swarm for Intruder Detection
Optimizing the Performance of an Unpredictable UAV Swarm for Intruder Detection
 
Vc4c development of opencl compiler for videocore4
Vc4c  development of opencl compiler for videocore4Vc4c  development of opencl compiler for videocore4
Vc4c development of opencl compiler for videocore4
 
A Cooperative Coevolutionary Approach to Maximise Surveillance Coverage of UA...
A Cooperative Coevolutionary Approach to Maximise Surveillance Coverage of UA...A Cooperative Coevolutionary Approach to Maximise Surveillance Coverage of UA...
A Cooperative Coevolutionary Approach to Maximise Surveillance Coverage of UA...
 
Static analysis of C++ source code
Static analysis of C++ source codeStatic analysis of C++ source code
Static analysis of C++ source code
 
Config interface
Config interfaceConfig interface
Config interface
 
Pythran: Static compiler for high performance by Mehdi Amini PyData SV 2014
Pythran: Static compiler for high performance by Mehdi Amini PyData SV 2014Pythran: Static compiler for high performance by Mehdi Amini PyData SV 2014
Pythran: Static compiler for high performance by Mehdi Amini PyData SV 2014
 

Similar to EvoRobocode Competition @ GECCO-2013

Code instrumentation
Code instrumentationCode instrumentation
Code instrumentationBryan Reinero
 
Android RenderScript on LLVM
Android RenderScript on LLVMAndroid RenderScript on LLVM
Android RenderScript on LLVMJohn Lee
 
Kotlin Backend Development 6 Yrs Recap. The Good, the Bad and the Ugly
Kotlin Backend Development 6 Yrs Recap. The Good, the Bad and the UglyKotlin Backend Development 6 Yrs Recap. The Good, the Bad and the Ugly
Kotlin Backend Development 6 Yrs Recap. The Good, the Bad and the UglyHaim Yadid
 
JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?Doug Hawkins
 
FPGA design with CλaSH
FPGA design with CλaSHFPGA design with CλaSH
FPGA design with CλaSHConrad Parker
 
From V8 to Modern Compilers
From V8 to Modern CompilersFrom V8 to Modern Compilers
From V8 to Modern CompilersMin-Yih Hsu
 
Using Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systemsUsing Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systemsSerge Stinckwich
 
Efficient JavaScript Mutation Testing
Efficient JavaScript Mutation TestingEfficient JavaScript Mutation Testing
Efficient JavaScript Mutation TestingSALT Lab @ UBC
 
Pharo Optimising JIT Internals
Pharo Optimising JIT InternalsPharo Optimising JIT Internals
Pharo Optimising JIT InternalsESUG
 
Pharo Virtual Machine: News from the Front
Pharo Virtual Machine: News from the FrontPharo Virtual Machine: News from the Front
Pharo Virtual Machine: News from the FrontESUG
 
XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...
XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...
XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...The Linux Foundation
 
So You Want To Write Your Own Benchmark
So You Want To Write Your Own BenchmarkSo You Want To Write Your Own Benchmark
So You Want To Write Your Own BenchmarkDror Bereznitsky
 
Java Unit Testing Tool Competition — Fifth Round
Java Unit Testing Tool Competition — Fifth RoundJava Unit Testing Tool Competition — Fifth Round
Java Unit Testing Tool Competition — Fifth RoundAnnibale Panichella
 
How do you create a programming language for the JVM?
How do you create a programming language for the JVM?How do you create a programming language for the JVM?
How do you create a programming language for the JVM?Federico Tomassetti
 
How to Design a Program Repair Bot? Insights from the Repairnator Project
How to Design a Program Repair Bot? Insights from the Repairnator ProjectHow to Design a Program Repair Bot? Insights from the Repairnator Project
How to Design a Program Repair Bot? Insights from the Repairnator ProjectSimon Urli
 
Eclipse Day India 2015 - Java bytecode analysis and JIT
Eclipse Day India 2015 - Java bytecode analysis and JITEclipse Day India 2015 - Java bytecode analysis and JIT
Eclipse Day India 2015 - Java bytecode analysis and JITEclipse Day India
 
Report - Line Following Robot
Report - Line Following RobotReport - Line Following Robot
Report - Line Following RobotDivay Khatri
 

Similar to EvoRobocode Competition @ GECCO-2013 (20)

Code instrumentation
Code instrumentationCode instrumentation
Code instrumentation
 
Android RenderScript on LLVM
Android RenderScript on LLVMAndroid RenderScript on LLVM
Android RenderScript on LLVM
 
Kotlin Backend Development 6 Yrs Recap. The Good, the Bad and the Ugly
Kotlin Backend Development 6 Yrs Recap. The Good, the Bad and the UglyKotlin Backend Development 6 Yrs Recap. The Good, the Bad and the Ugly
Kotlin Backend Development 6 Yrs Recap. The Good, the Bad and the Ugly
 
JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?
 
FPGA design with CλaSH
FPGA design with CλaSHFPGA design with CλaSH
FPGA design with CλaSH
 
From V8 to Modern Compilers
From V8 to Modern CompilersFrom V8 to Modern Compilers
From V8 to Modern Compilers
 
Using Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systemsUsing Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systems
 
Efficient JavaScript Mutation Testing
Efficient JavaScript Mutation TestingEfficient JavaScript Mutation Testing
Efficient JavaScript Mutation Testing
 
Pharo Optimising JIT Internals
Pharo Optimising JIT InternalsPharo Optimising JIT Internals
Pharo Optimising JIT Internals
 
Pharo Virtual Machine: News from the Front
Pharo Virtual Machine: News from the FrontPharo Virtual Machine: News from the Front
Pharo Virtual Machine: News from the Front
 
XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...
XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...
XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...
 
So You Want To Write Your Own Benchmark
So You Want To Write Your Own BenchmarkSo You Want To Write Your Own Benchmark
So You Want To Write Your Own Benchmark
 
XRobots
XRobotsXRobots
XRobots
 
Java Unit Testing Tool Competition — Fifth Round
Java Unit Testing Tool Competition — Fifth RoundJava Unit Testing Tool Competition — Fifth Round
Java Unit Testing Tool Competition — Fifth Round
 
How do you create a programming language for the JVM?
How do you create a programming language for the JVM?How do you create a programming language for the JVM?
How do you create a programming language for the JVM?
 
How to Design a Program Repair Bot? Insights from the Repairnator Project
How to Design a Program Repair Bot? Insights from the Repairnator ProjectHow to Design a Program Repair Bot? Insights from the Repairnator Project
How to Design a Program Repair Bot? Insights from the Repairnator Project
 
Eclipse Day India 2015 - Java bytecode analysis and JIT
Eclipse Day India 2015 - Java bytecode analysis and JITEclipse Day India 2015 - Java bytecode analysis and JIT
Eclipse Day India 2015 - Java bytecode analysis and JIT
 
Wmc lab (1)
Wmc lab (1)Wmc lab (1)
Wmc lab (1)
 
Report - Line Following Robot
Report - Line Following RobotReport - Line Following Robot
Report - Line Following Robot
 
What Lies Beneath
What Lies BeneathWhat Lies Beneath
What Lies Beneath
 

More from Daniele Loiacono

2013 Simulated Car Racing @ GECCO-2013
2013 Simulated Car Racing @ GECCO-20132013 Simulated Car Racing @ GECCO-2013
2013 Simulated Car Racing @ GECCO-2013Daniele Loiacono
 
2012 Simulated Car Racing Championship @ CIG-2012
2012 Simulated Car Racing Championship @ CIG-20122012 Simulated Car Racing Championship @ CIG-2012
2012 Simulated Car Racing Championship @ CIG-2012Daniele Loiacono
 
2012 Simulated Car Racing Championship @ GECCO-2012
2012 Simulated Car Racing Championship @ GECCO-20122012 Simulated Car Racing Championship @ GECCO-2012
2012 Simulated Car Racing Championship @ GECCO-2012Daniele Loiacono
 
2012 Simulated Car Racing Championship @ Evo*-2012
2012 Simulated Car Racing Championship @ Evo*-20122012 Simulated Car Racing Championship @ Evo*-2012
2012 Simulated Car Racing Championship @ Evo*-2012Daniele Loiacono
 
Computational Intelligence in Games Tutorial @GECCO2012
Computational Intelligence in Games Tutorial @GECCO2012Computational Intelligence in Games Tutorial @GECCO2012
Computational Intelligence in Games Tutorial @GECCO2012Daniele Loiacono
 
XCSF with Local Deletion: Preventing Detrimental Forgetting
XCSF with Local Deletion: Preventing Detrimental ForgettingXCSF with Local Deletion: Preventing Detrimental Forgetting
XCSF with Local Deletion: Preventing Detrimental ForgettingDaniele Loiacono
 
Testing learning classifier systems
Testing learning classifier systemsTesting learning classifier systems
Testing learning classifier systemsDaniele Loiacono
 
Random Artificial Incorporation of Noise in a Learning Classifier System Envi...
Random Artificial Incorporation of Noise in a Learning Classifier System Envi...Random Artificial Incorporation of Noise in a Learning Classifier System Envi...
Random Artificial Incorporation of Noise in a Learning Classifier System Envi...Daniele Loiacono
 
Introducing LCS to Digital Design Verification
Introducing LCS to Digital Design VerificationIntroducing LCS to Digital Design Verification
Introducing LCS to Digital Design VerificationDaniele Loiacono
 
A temporal classifier system using spiking neural networks
A temporal classifier system using spiking neural networksA temporal classifier system using spiking neural networks
A temporal classifier system using spiking neural networksDaniele Loiacono
 
Confusion Matrices for Improving Performance of Feature Pattern Classifier Sy...
Confusion Matrices for Improving Performance of Feature Pattern Classifier Sy...Confusion Matrices for Improving Performance of Feature Pattern Classifier Sy...
Confusion Matrices for Improving Performance of Feature Pattern Classifier Sy...Daniele Loiacono
 
Automatically Defined Functions for Learning Classifier Systems
Automatically Defined Functions for Learning Classifier SystemsAutomatically Defined Functions for Learning Classifier Systems
Automatically Defined Functions for Learning Classifier SystemsDaniele Loiacono
 
Voting Based Learning Classifier System for Multi-Label Classification
Voting Based Learning Classifier System for Multi-Label ClassificationVoting Based Learning Classifier System for Multi-Label Classification
Voting Based Learning Classifier System for Multi-Label ClassificationDaniele Loiacono
 
2011 Simulated Car Racing Championship @ GECCO-2011
2011 Simulated Car Racing Championship @ GECCO-20112011 Simulated Car Racing Championship @ GECCO-2011
2011 Simulated Car Racing Championship @ GECCO-2011Daniele Loiacono
 
2010 Simulated Car Racing Championship @ CIG-2010
2010 Simulated Car Racing Championship @ CIG-20102010 Simulated Car Racing Championship @ CIG-2010
2010 Simulated Car Racing Championship @ CIG-2010Daniele Loiacono
 
2010 Simulated Car Racing Championship @ GECCO-2010
2010 Simulated Car Racing Championship @ GECCO-20102010 Simulated Car Racing Championship @ GECCO-2010
2010 Simulated Car Racing Championship @ GECCO-2010Daniele Loiacono
 
2010 Simulated Car Racing Championship @ WCCI-2010
2010 Simulated Car Racing Championship @ WCCI-20102010 Simulated Car Racing Championship @ WCCI-2010
2010 Simulated Car Racing Championship @ WCCI-2010Daniele Loiacono
 
Car Setup Optimization Competition @ EvoStar 2010
Car Setup Optimization Competition @ EvoStar 2010Car Setup Optimization Competition @ EvoStar 2010
Car Setup Optimization Competition @ EvoStar 2010Daniele Loiacono
 
2009 Simulate Car Racing Championship
2009 Simulate Car Racing Championship2009 Simulate Car Racing Championship
2009 Simulate Car Racing ChampionshipDaniele Loiacono
 

More from Daniele Loiacono (20)

2013 Simulated Car Racing @ GECCO-2013
2013 Simulated Car Racing @ GECCO-20132013 Simulated Car Racing @ GECCO-2013
2013 Simulated Car Racing @ GECCO-2013
 
2012 Simulated Car Racing Championship @ CIG-2012
2012 Simulated Car Racing Championship @ CIG-20122012 Simulated Car Racing Championship @ CIG-2012
2012 Simulated Car Racing Championship @ CIG-2012
 
2012 Simulated Car Racing Championship @ GECCO-2012
2012 Simulated Car Racing Championship @ GECCO-20122012 Simulated Car Racing Championship @ GECCO-2012
2012 Simulated Car Racing Championship @ GECCO-2012
 
2012 Simulated Car Racing Championship @ Evo*-2012
2012 Simulated Car Racing Championship @ Evo*-20122012 Simulated Car Racing Championship @ Evo*-2012
2012 Simulated Car Racing Championship @ Evo*-2012
 
Computational Intelligence in Games Tutorial @GECCO2012
Computational Intelligence in Games Tutorial @GECCO2012Computational Intelligence in Games Tutorial @GECCO2012
Computational Intelligence in Games Tutorial @GECCO2012
 
XCSF with Local Deletion: Preventing Detrimental Forgetting
XCSF with Local Deletion: Preventing Detrimental ForgettingXCSF with Local Deletion: Preventing Detrimental Forgetting
XCSF with Local Deletion: Preventing Detrimental Forgetting
 
Testing learning classifier systems
Testing learning classifier systemsTesting learning classifier systems
Testing learning classifier systems
 
Random Artificial Incorporation of Noise in a Learning Classifier System Envi...
Random Artificial Incorporation of Noise in a Learning Classifier System Envi...Random Artificial Incorporation of Noise in a Learning Classifier System Envi...
Random Artificial Incorporation of Noise in a Learning Classifier System Envi...
 
One Step Fits All
One Step Fits AllOne Step Fits All
One Step Fits All
 
Introducing LCS to Digital Design Verification
Introducing LCS to Digital Design VerificationIntroducing LCS to Digital Design Verification
Introducing LCS to Digital Design Verification
 
A temporal classifier system using spiking neural networks
A temporal classifier system using spiking neural networksA temporal classifier system using spiking neural networks
A temporal classifier system using spiking neural networks
 
Confusion Matrices for Improving Performance of Feature Pattern Classifier Sy...
Confusion Matrices for Improving Performance of Feature Pattern Classifier Sy...Confusion Matrices for Improving Performance of Feature Pattern Classifier Sy...
Confusion Matrices for Improving Performance of Feature Pattern Classifier Sy...
 
Automatically Defined Functions for Learning Classifier Systems
Automatically Defined Functions for Learning Classifier SystemsAutomatically Defined Functions for Learning Classifier Systems
Automatically Defined Functions for Learning Classifier Systems
 
Voting Based Learning Classifier System for Multi-Label Classification
Voting Based Learning Classifier System for Multi-Label ClassificationVoting Based Learning Classifier System for Multi-Label Classification
Voting Based Learning Classifier System for Multi-Label Classification
 
2011 Simulated Car Racing Championship @ GECCO-2011
2011 Simulated Car Racing Championship @ GECCO-20112011 Simulated Car Racing Championship @ GECCO-2011
2011 Simulated Car Racing Championship @ GECCO-2011
 
2010 Simulated Car Racing Championship @ CIG-2010
2010 Simulated Car Racing Championship @ CIG-20102010 Simulated Car Racing Championship @ CIG-2010
2010 Simulated Car Racing Championship @ CIG-2010
 
2010 Simulated Car Racing Championship @ GECCO-2010
2010 Simulated Car Racing Championship @ GECCO-20102010 Simulated Car Racing Championship @ GECCO-2010
2010 Simulated Car Racing Championship @ GECCO-2010
 
2010 Simulated Car Racing Championship @ WCCI-2010
2010 Simulated Car Racing Championship @ WCCI-20102010 Simulated Car Racing Championship @ WCCI-2010
2010 Simulated Car Racing Championship @ WCCI-2010
 
Car Setup Optimization Competition @ EvoStar 2010
Car Setup Optimization Competition @ EvoStar 2010Car Setup Optimization Competition @ EvoStar 2010
Car Setup Optimization Competition @ EvoStar 2010
 
2009 Simulate Car Racing Championship
2009 Simulate Car Racing Championship2009 Simulate Car Racing Championship
2009 Simulate Car Racing Championship
 

Recently uploaded

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Recently uploaded (20)

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

EvoRobocode Competition @ GECCO-2013

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