Evolutionary Computation
Evolutionary Computation Swarm Intelligence and Particle Swarm Optimisation
Shan He
School for Computational Science University of Birmingham
Modules 02411 and 22313: EC Evolutionary Computation Outline
Outline of Topics
Swarm behaviour
BOID model
Particle Swarm Optimiser Evolutionary Computation Swarm behaviour
What is Swarm in nature?
Picture from NY Times Evolutionary Computation Swarm behaviour
What is Swarm in nature?
I Starlings swarm in Rome
I Sardine school Evolutionary Computation Swarm behaviour
What is Swarm Intelligence?
I General definition: Collective behaviour of decentralized, self-organized natural or artificial systems
I Self-organized system: an initially disordered system, but some form of global order or coordination will arise out of the local interactions between its components
I A swarm intelligence system typically consists of simple agents interacting with each other and their environment following simple rules
I Emergence: global order or coordination emerges from these simple interacting rules Evolutionary Computation Swarm behaviour
Why swarm?
I There is no clear, unique explanation to the evolution of swarm behaviour. I Some possible explanations:
I Better defence, e.g., early warning, confuse predator I Better foraging efficiency I Saving energy, e.g., wile geese fly in formation (wedge or skein)
I Outcomes of natural selection Evolutionary Computation Swarm behaviour
What is Swarm Intelligence in CS?
I In CS, we define Swarm Intelligence as “a multi-agent system that has self-organized behaviour that shows some intelligent behaviour.” I Two main research fields:
I Swarm Intelligence algorithms: a variety of novel algorithms inspired by natural swarm system:
I Ant colony optimisation: a SI algorithm inspired by ants’ behaviour, useful to solve combinatorial optimisation problems, such as finding better paths through graphs. I Particle Swarm Optimisation
I Swarm Robotics: design coordination of multirobot systems which consist of large numbers of mostly simple physical robots.
I Goes beyond distributed system, aims to promote scalability, e.g., controlling a large number of robots I http://www.swarmanoid.org/ Evolutionary Computation BOID model
BOID
I Invented In 1986 by Craig Reynolds to simulate coordinated animal motion such as bird flocks and fish schools.
I Winner of technical Oscar: 1997 Sci-Tech Awards from Academy of Motion Pictures and Science
I Each individual of the model is called boid which is manoeuvred by three simple predefined behaviours: Evolutionary Computation BOID model
Separation
I Separation: Steer to avoid crowding local neighbour Evolutionary Computation BOID model
Alignment
I Alignment: steer towards the average heading of local neighbour Evolutionary Computation BOID model
Cohesion
I Cohesion: steer to move toward the average position of local neighbour Evolutionary Computation BOID model
Demonstration
I BOID models have been used in many films
I One famous example Batman Returns (1992): BOID was used to create bat swarms and ”army” of penguins marching through the streets of Gotham City
I Amazing BOID model
I Made with Cinder
I If you want to learn Cinder to create your own model: Tutorial from Robert Hodgin Evolutionary Computation Particle Swarm Optimiser
Particle Swarm Optimiser (PSO)
I Invented by Kennedy and Eberhart 1995
I Inspired by bird flocking and fish schooling, more precisely, BIOD
I Simple rules for searching global optima
I Primarily for real-valued optimisation problems
I Simpler but sometimes better than GAs Evolutionary Computation Particle Swarm Optimiser
PSO: detailed algorithm
I Can be seen as a swarm of particles flying in the search space to find the optimal solution. I Each particle is a solution to the problem, represented by t position Xi in the search space t+1 I Each particle also has a velocity Vi , used to update its position I The variation operator consists of only two equations:
t+1 t t t Vi = ωVi + c1r1(Pi − Xi ) + c2r1(Pg − Xi ) (1)
t+1 t t+1 Xi = Xi + Vi (2) Pi is the best previous position of the ith particle; Pg is the global best position of the swarm; ω ∈ (0, 1] is inertia weigh; c1 and c2 are constants, or so-called learning factors; r1 and r2 are random number in the range of (0, 1) Evolutionary Computation Particle Swarm Optimiser
Generic PSO Algorithm X0 := generate an initial population of M particles (solutions) P0 := X0 terminationflag := false t := 0 Evaluate the fitness of each particle in X0. while (terminationflag != true) t Select the best particle Pg from X based on their fitness. For i = 1 : M t t If Xi is better than Pi then Pi := Xi ; // Update Pi t+1 Calculate Vi according equation (1) t+1 Update Xi according equation (2) End For Evaluate the fitness of each particle in Xt+1. t := t + 1 If a termination criterion is met: terminationflag := true Output Pg Evolutionary Computation Particle Swarm Optimiser
PSO: algorithm illustration
I The search direction of PSO is determined by:
I The autobiographical memory, which remembers the best previous position of each individual Pi in the swarm I The publicized knowledge, which is the best solution Pg currently found by the population Evolutionary Computation Particle Swarm Optimiser
PSO: practical issues
I One key problem faced by EC researcher is how to choose appropriate operators and parameters
I PSO: Plug-and-play optimisation algorithm
I Only 3 parameters, all not very sensitive
I ω can be a linearly decreasing value - better local search
I Download my source code at here, you can visualise how PSO find optima.