Evolutionary Computation

Evolutionary Computation 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

What is Swarm in nature?

Picture from NY Times Evolutionary Computation Swarm behaviour

What is Swarm in nature?

I swarm in Rome

I school Evolutionary Computation Swarm behaviour

What is ?

I General definition: 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 : 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 of swarm behaviour. I Some possible explanations:

I Better defence, e.g., early warning, confuse predator I Better 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 optimisation: a SI algorithm inspired by ’ behaviour, useful to solve combinatorial optimisation problems, such as finding better paths through graphs. I Particle Swarm Optimisation

I Swarm : design coordination of multirobot systems which consist of large numbers of mostly simple physical .

I Goes beyond distributed system, aims to promote , 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 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.