Grammatical Evolution Algorithm for Evolution of Swarm Behaviors
Aadesh Neupane, Michael A. Goodrich, Eric G. Mercer
Problem
- Cumbersome to design collective behaviors
- Requires experts for modeling
Solution
- Evolutionary computation to generate collective behaviors
$$\dot{R} = -aR + vnD , R(0) = R_0$$
$$\dot{O} = aR -bO +cE, O(0) = O_0$$
$$\dot{E} = q(D)bO - cE, E(0) = E_0$$
$$\dot{A} = p(D)bO - mA + wnD, A(0) = A_0$$
$$\dot{D} = mA - nD, D(0) = D_0$$
Reference: Stability of choice in the honey bee nest-site selection process
-
Related Work
-
Evolutionary Robotics
- Neural Nets
- Distributed Evolution
- Grammatical Evolution
-
Evolutionary Robotics
- GEESE
-
Results
- Santa Fe Trail
- Single Source Foraging
- Conclusion
Presentation Structure
Related Work - Evolutionary Robotics
Reference: Evolution of collective behaviors for a real swarm of aquatic surface robots
- Swarm behaviors like homing, dispersion, clustering and monitoring by Duarte et. al
- They transferred the evolved controller from simulation to real world aquatic robots and validated the key properties of swarms like scalability, flexibility, and robustness
Neural Network based controllers
Merits
- Direct mapping from sensory inputs into actuators values
- Provides generalized solutions
- Only a few human inputs needed
Demerits
- Very hard to reverse engineer
- Not easy to obtain insights on the evolved collective behavior
- Very difficult to modify the behaviors
Related Work - Evolutionary Robotics
Reference: GESwarm: Grammatical Evolution for the Automatic Synthesis of Collective Behaviors in Swarm Robotics
- Ferrante et. al. used grammatical evolution based approach named as "GESwarm" to evolve collective behaviors for foraging problem
- Individual behaviors were composed of preconditions, low-level behavior and actions
- Grammatical evolution would evolve different interaction rules between the individual behaviors
Grammatical Evolution based controllers
Advantages
Disadvantages
- BNF grammar and objective function enable human to shape collective tasks
- Easy to analyze and modify collective behaviors
- Human expert has to define the primitive low-level rules
- Low-level rules need mapping to sensors and actuators values
Related Work - Distributed Evolution
Reference: odNEAT: An algorithm for distributed online, onboard evolution of robot behaviours
odNEAT
- Online distributed algorithm based on NEAT evolves neural network weights along with topology
- Applicable for online learning in groups of embodied agents (robots)
- odNEAT performs well in aggregation in comparison with rtNEAT (centralized)
What is the outcome if we combine best features from all of these works?
A online distributed Grammatical Evolution
Related Work - Grammatical Evolution
BNF Grammar
Population of Genome
Corresponding Phenotype
![](https://s3.amazonaws.com/media-p.slid.es/uploads/658435/images/4595592/GE_overall.png)
Grammatical evolution: Evolving programs for an arbitrary language
Grammatical Evolution
BNF Grammar
<code> ::= <code> | <progs>
<progs> ::= <condition> | <prog2> | <prog3> | <op>
<condition> ::= if_food_ahead(<progs>, <progs>)
<prog2> ::= prog2(<progs>, <progs>)
<prog3> ::= prog3(<progs>, <progs>, <progs>)
<op> ::= left | right | move
- Santa Fe Trail Grammar
- Represented by tuple \(N, T, P, S\)
- N -> Set of all non-terminals
- T -> Set of all terminals
- P -> Set of productions that map \(N\) to \(T\)
- S -> Initial start symbol
Grammatical Evolution
Genome/ Genotype / Individual
![](https://s3.amazonaws.com/media-p.slid.es/uploads/658435/images/4595646/genome.png)
- Defines the proceedings of left-derivation
- \({Codon}\) is a group of symbols, usually 4 or 8.
Grammatical Evolution - BNF Grammar
Mapping
- Let \(c\) be codon integer
- \(A\) denotes the left-most non-terminal in the derivation
- \(r_A\) denotes the number of right-hand side rules associated with the production of \(A\)
-
RHSRule = \(c\%r_A\)
Phenotype
- The output from the mapping process is the phenotype
- The phenotype represents a valid expansion of the BNF grammar
- \(if\_food\_ahead(move, left)\)
Example of Grammatical Evolution
RHSRule = \(c\%r_A\)
<code> ::= <code> | <progs>
<progs> ::= <condition> | <prog2> | <prog3> | <op>
<condition> ::= if_food_ahead(<progs>, <progs>)
<prog2> ::= prog2(<progs>, <progs>)
<prog3> ::= prog3(<progs>, <progs>, <progs>)
<op> ::= left | right | move
![](https://s3.amazonaws.com/media-p.slid.es/uploads/658435/images/4596848/genome_value.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/658435/images/4596850/table.png)
Grammatical Evolution
GE Pipeline
![](https://s3.amazonaws.com/media-p.slid.es/uploads/658435/images/4597842/GE.png)
GEESE
![](https://s3.amazonaws.com/media-p.slid.es/uploads/658435/images/4596860/robot_genome_2.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/658435/images/4596862/robot_genome.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/658435/images/4596864/robot_genome_1.png)
GEESE
Hello! Neighbour!
How well are you doing with your current program in this desert?
Hello!
I collected 35 oz of water.
Take my genome and perform magic using genetic operators !
GEESE Pipeline
![](https://s3.amazonaws.com/media-p.slid.es/uploads/658435/images/5067821/geese.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/658435/images/4595658/SantaFeTrail.gif)
- Objective
- Find all food using maximum of 600 moves
- 32 x 32 cells
- Optimal trail
- 144 cells
- 89 food
- 55 gaps
- Actions :
- Left
- Right
- Forward
Santa Fe Trail
Problem Description
Results
![](https://s3.amazonaws.com/media-p.slid.es/uploads/658435/images/4597929/box_plot_standard.png)
Santa Fe Trail
Results
Santa Fe Trail
![](https://s3.amazonaws.com/media-p.slid.es/uploads/658435/images/5053764/best.png)
Evolved Program
- Solves Santa Fe Trail in 324 steps
Foraging
![](https://s3.amazonaws.com/media-p.slid.es/uploads/658435/images/4597958/environment.png)
Single Source Foraging problem
Problem Description
- Objective
- Collect maximum food
- Environment
- Hub
- Source
- Agents
Foraging
Primitive Behaviors
- Motion Behaviors
- Random Walk
- ToSource
- ToNest
- Communication Behaviors
- Cue
- DropCue
- PickCue
- Signal
- SendSignal
- ReceiveSignal
- Cue
Swarm Behaviors
![](https://s3.amazonaws.com/media-p.slid.es/uploads/658435/images/5053957/grammar.png)
Grammar
Results
Swarms
![](https://s3.amazonaws.com/media-p.slid.es/uploads/658435/images/5053887/Rules.png)
Results
Evolved Rules
![](https://s3.amazonaws.com/media-p.slid.es/uploads/658435/images/5054010/rule1.png)
Results
Evolved Rules
![](https://s3.amazonaws.com/media-p.slid.es/uploads/658435/images/5054011/rule2.png)
Results
Foraging
![](https://s3.amazonaws.com/media-p.slid.es/uploads/658435/images/5054050/foraging_performance1.png)
Results
Video
Summary
- Better suited for swarms
- Performance on Foraging problem and a standard GA benchmark problem good
- Human readable evolved behaviors
Future Work
- Access the performance of GEESE with several benchmark problems and swarms problems
- Implement the evolved behaviors in actual robots
Conclusion
Thank You!
This work has been funded by ONR grant number N000141613025.
https://github.com/aadeshnpn/swarm
GECCO
By Aadesh Neupane
GECCO
GECCO Presentation
- 884