- Cumbersome to design collective behaviors
- Requires experts for modeling
- 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
Reference: Evolution of collective behaviors for a real swarm of aquatic surface robots
Merits
Demerits
Reference: GESwarm: Grammatical Evolution for the Automatic Synthesis of Collective Behaviors in Swarm Robotics
Advantages
Disadvantages
Reference: odNEAT: An algorithm for distributed online, onboard evolution of robot behaviours
A online distributed Grammatical Evolution
BNF Grammar
Population of Genome
Corresponding Phenotype
Grammatical evolution: Evolving programs for an arbitrary language
<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\)
RHSRule = \(c\%r_A\)
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
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 !
Single Source Foraging problem
This work has been funded by ONR grant number N000141613025.
https://github.com/aadeshnpn/swarm