Particle Swarm optimisation: A mini tutorial
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
The “inventors” (1)
Russell Eberhart
eberhart@engr.iupui.edu
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
The “inventors” (2)
at work Jim
James Kennedy
Kennedy_Jim@bls.gov
2004−12−15 Particle Swarm optimisation Maurice.Clerc@WriteMe.com
Part 1: United we stand
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Cooperation example
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Memory and informers
It is thanks to these eccentrics, whose behaviour is not conform to the one of the other bees, that all fruits sources around the colony are so quickly found. Karl von Frish 1927
PNP D
2004−12−15 Particle Swarm optimisation Maurice.Clerc@WriteMe.com
Initialisation. Positions and velocities
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Neighbourhoods
geographical
2004−12−15 Particle Swarm optimisation
social
Maurice.Clerc@WriteMe.com
Psychosocial compromise
ximity i−pro
Here I am! x p g My best perf. The best perf. of my neighbours
v
2004−12−15 Particle Swarm optimisation
roximity g−p
Maurice.Clerc@WriteMe.com
The historical algorithm
At each time step t for each particle for each component d
update α v ( t ) ⎪ d the ⎨ velocity ⎪+ β rand ( 0, ϕ1 ) pd − xd ( t ) then move x(t + 1) = x(t ) + v(t + 1)
2004−12−15 Particle Swarm optimisation
Randomness inside the ⎧vd ( t + 1) = loop ⎪
⎪ ⎩+ β rand ( 0, ϕ2
( )( g
d
− xd
) (t ))
Maurice.Clerc@WriteMe.com
Oscillations
Initial v
1 3
Fitness
2 4
Search space
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
The circular neighbourhood
Particle 1’s 3−neighbourhood
7 1 8 2
3
Virtual circle
6 5
2004−12−15 Particle Swarm optimisation
4
Maurice.Clerc@WriteMe.com
Random proximity
Hyperparallelepiped => Biased
ximity i−pro
p x g v
2004−12−15 Particle Swarm optimisation Maurice.Clerc@WriteMe.com
pyramid =Mayan DPNP
oximity g−pr
Animated illustration
Global optimum
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Maths and parameters
The right wa y
This way
Or this way
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Neighbourhoods (topologies)
rld” graph “Small wo
or
2004−12−15 Particle Swarm optimisation
?
(informers)
Maurice.Clerc@WriteMe.com
n coefficient l constrictio Globa Usual values: ⎧v(t + 1) = χ (v(t ) + ϕ (q − x(t ))) ⎨ κ=1 ⎩ x(t + 1) = v(t + 1) + x(t ) with ϕ=4.1 ϕ = rand (0, ϕ ) + rand (0, ϕ ) = ϕ ' +ϕ ' => χ=0.73 ϕ ' p +ϕ ' g q= swarm size=20 ϕ ' +ϕ ' hood size=3 2κ ⎧ for ϕ > 4 ⎪ ⎪ χ = ⎨ϕ − 2 + ϕ − 4ϕ riterion ⎪ gence c ⎪else κ n diver ⎩ No
1 2 1 2
1 2 1 2
Type 1” form
2
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
5D complex space
A 3D section
ϕ
6 5 4 -2 -1 3 2 1 0 00 1 2
} Convergence
-4 -2
}
Non divergence
2
Re(v)
2004−12−15
4
Re(y)
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Move in a 2D section (attractor)
Im(v) 0.8 0.6 0.4 0.2 -1 -0.5 0 0 0.5 -0.2 -0.4 -0.6 -0.8 1 Re(v)
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Beyond real numbers
1 0 0 1 1 2 3 4 0 1 2 3
2004−12−15
2 3 4 5 6 0 1 2 0 1 2 3 4
Maurice.Clerc@WriteMe.com
8
2 3 4
Bingo! 8
Particle Swarm optimisation
Minimun requirements
Comparing positions in the search space H
∀( x, x' ) ∈ H × H , ( f (x ) < f (x')) ∨ ( f (x ) ≥ f (x'))
Algebraic operators
(coefficient , velocity ) ⎯⊗ velocity ⎯→ (velocity, velocity ) ⎯o velocity ⎯→ ( position, position ) ⎯Θ velocity ⎯→ ( position, velocity ) ⎯⊕ position ⎯→
2004−12−15 Particle Swarm optimisation Maurice.Clerc@WriteMe.com
Pseudo code form
velocity = pos_minus_pos(position1, position2) velocity = linear_combin(α,velocity1,β,velocity2) position = pos_plus_vel(position, velocity)
}
algebraic operators
(position,velocity) = confinement(positiont+1,positiont)
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Confinements
Frontiers (ex. : interval)
=>
Granularity
=>
2004−12−15 Particle Swarm optimisation Maurice.Clerc@WriteMe.com
End of Part 1
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Part 2: When the algo mutates
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
The PSO Family
1995 1998 2000 2002 2004
Empirical Empirical
Canonical Canonical
Adaptive Adaptive
Spherical, Spherical, Gaussian Gaussian Pivot Pivot TRIBES
Weighted Constraints Weighted Constraints Discrete Discrete Combinatorial Combinatorial Multi−swarm Multi−swarm
Hybride Hybride OEP 0, 1, …
Multi−objective Multi−objective
2004−12−15 Particle Swarm optimisation Maurice.Clerc@WriteMe.com
Unbiased random proximity
Hyperparallelepiped => Biased Hypersphere vs mity i−proxi hypercube oximity g−pr p
1.2 1
x
0.8
Volume
g v
0.6
0.4
0.2
0 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29
Dimension 2004−12−15 Particle Swarm optimisation Maurice.Clerc@WriteMe.com
The three balls
oximity i−pr
p x g
ximity g−pro
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Think locally, act locally
narchy
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Adaptive coefficients s
le or fuzzy ru Crisp
αv
The better I am the more I follow my own way
rand(0…b)(p-x) The better is my best neighbour the more I tend to go towards him
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Adaptive swarmrulessize
zzy Crisp or fu There has been enough improvement although I'm the worst
I try to kill myself
I'm the best but there has been not enough improvement
I try to generate a new particle
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
TRIBES and strategies
ES IB TR
Adaptive information links Adaptive proximity distributions (DPNP)
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Energies: classical process
Rosenbrock 2D. Swarm size=20, constant coefficients Rosenbrock 2D. Swarm size=20, constant coefficients.
1,00E+04 9,00E+03 8,00E+03 7,00E+03 6,00E+03 5,00E+03 4,00E+03 3,00E+03 2,00E+03 1,00E+03 0,00E+00 0 5 10 15 Potential energy Kinetic energy Swarm size 20 25
ε=0.00001
Number of evaluations after 2240 evaluations
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Energies: adaptive process
Rosenbrock 2D. Adaptive swarm size, size, adaptive coefficients Rosenbrock 2D. Adaptive swarm adaptive coefficients.
1,00E+04 9,00E+03 8,00E+03 7,00E+03 6,00E+03 5,00E+03 4,00E+03 3,00E+03 2,00E+03 1,00E+03 0,00E+00 0 5 10 15 Potential energy Kinetic energy Swarm size 20 25
ε=0.00001
Number of evaluations after 1414 evaluations
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
The simplest PSO
Random informers 1 K=3
8 2
Pivot method
7
3
g x
6 5
2004−12−15
4
ximity g−pro
Maurice.Clerc@WriteMe.com
Particle Swarm optimisation
End of Part 2
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Part 3:Story of Optimisation
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Classical results
Optimum=0, dimension=30 Best result after 40 000 evaluations
30D function Griewank [±300] Rastrigin [±5] PSO Type 1" Evolutionary algo.(Angeline 98) 0.003944 82.95618 0.4033 46.4689 1610.359
Maurice.Clerc@WriteMe.com
Rosenbrock [±10] 50.193877
2004−12−15 Particle Swarm optimisation
Some small problems
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Fifty−fifty
rity=1 ⎧granula ⎪
⎪ xi ∈ 1...N ⎪ ⎨ i ≠ j ⇒ xi ≠ x j ⎪D / 2 D ⎪ xi ⎪ xi = ⎪ 1 ⎩ D / 2+1
{ }
∑
∑
N=100, D=20. Search space: [1,N]D
105 evaluations: 63+90+16+54+71+20+23+60+38+15 = 12+48+13+51+36+42+86+26+57+79 (=450)
2004−12−15 Particle Swarm optimisation Maurice.Clerc@WriteMe.com
Knapsack
⎧ ⎪ ⎪ x ∈ 1...N ⎪ i ⎪ ⎨ i ≠ j ⇒ xi ≠ x j ⎪ ⎪ xi = S ⎪ ⎪ i∈I , I = D, I ⊂{ N } 1, ⎩
rity=1 ranula g
{ }
∑
N=100, D=10, S=100,
870 evaluations: run 1 => (9, 14, 18, 1, 16, 5, 6, 2, 12, 17) run 2 => (29, 3, 16, 4, 1, 2, 6, 8, 26, 5)
2004−12−15 Particle Swarm optimisation Maurice.Clerc@WriteMe.com
Apple trees
Best position Swarm size=3
Evaluation n1 0 3 1 6 3 2 3 7 n2 n3 0 17 4 10 11 6
n1 n3 n2
7 6
f = (n1 − n2 )2 + (n2 − n3 )2
2004−12−15 Particle Swarm optimisation Maurice.Clerc@WriteMe.com
Graph Coloring Problem
vel plus − pos −
5 3 1 1 5 1 2 2 5 0
+
1 5 5
-1 0 2 4 1 4 2
-1 -1 -3
=
2004−12−15
5
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
The Tireless Traveller
Example of position: X=(5,3,4,1,2,6) Example of velocity: v=((5,3),(2,5),(3,1))
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
BR17, the movie
rch space ctured sea Stru
?
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Ecological niche
Fuzzy data Non linear Multiobjective
Dynamical, real time Heterogeneous
t1
t2
t3
t4
t5
t6
t7
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
End of Part 3
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Part 4: Real applications
Medical diagnosis Industrial mixer
Electrical generator
Electrical vehicle
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Applications (1)
Salerno, J. Using the particle swarm optimization technique to train a recurrent neural model. IEEE International Conference on Tools with Artificial Intelligence, 1997, p. 4549, 1997. He Z., Wei C., Yang L., Gao X., Yao S., Eberhart R. C., Shi Y., "Extracting Rules from Fuzzy Neural Network by PSO", IEEE IEC, Anchorage, Alaska, USA, 1998. Secrest B. R., Traveling Salesman Problem for Surveillance Mission using PSO, AFIT/GCE/ENG/01M-03, Air Force Institute of Technology, 2001. Yoshida H., Kawata K., Fukuyama Y., "A PSO for Reactive Power and Voltage Control considering Voltage Security Assessment", IEEE TPS, vol. 15, 2001, p. 12321239. Krohling, R. A., Knidel, H., and Shi, Y. Solving numerical equations of hydraulic problems using PSO. Proceedings of the IEEE CEC, Honolulu, Hawaii USA. 2002.
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Applications (2)
Kadrovach, B.A., and Lamont G., A particle swarm model for swarm-based networked sensor systems, ACM symposium on Applied computing, Madrid, Spain, p. 918-924, 2002 Omran, M., Salman, A., and Engelbrecht, A. P. Image classification using PSO. Proceedings of the 4th Asia-Pacific Conference on Simulated Evolution and Learning 2002 (SEAL 2002), Singapore. p. 370-374, 2002. Coello Coello, C. A., Luna, E. H., and Aguirre, A. H. Use of PSO to design combinational logic circuits. LNCS No. 2606, p. 398-409, 2003. Onwubolu, G. C. and Clerc, M., "Optimal path for automated drilling operations by a new heuristic approach using particle swarm optimization," International Journal of Production Research, vol. 4, p. 473-491, 2004. Onwubolu G.C., TRIBES application to the flowshop scheduling problem, New Optimization Techniques in Engineering. Heidelberg, Germany, Springer: p. 517-536, 2004 2004−12−15 Maurice.Clerc@WriteMe.com Particle Swarm optimisation .
Neuronal network
Test Ei ei,1 ei,2
. . .
Wanted output Si
Transfer functions
Real output S'i(t) si,1
. . .
s'i,1(t)
.. .
τ k ,m ( entry , xk ,m )
si,P
s'i,P(t)
ei,N
⎧ E = (E1 ...Enb _tests ) ⎪ ⎪ X (t ) = (x k, m (t )) ⎨ S = (S1 ...Snb _ tests ) ⎪ ' ' ⎪S ' (t ) = (S1 (t )...Snb _tests (t )) ⎩
1 1+ e
xk , m entry
Function to minimise
f (X ) = S − S
'
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
To know more
THE site:
Particle Swarm Central, http://www.particleswarm.info Kennedy, J., R. Eberhart, et al. (2001). Swarm Intelligence, Morgan Kaufmann Academic Press.
Self advert
TEC award 005 IEEE 2
Clerc M., Kennedy J., "The Particle Swarm-Explosion, Stability, and Convergence in a Multidimensional Complex space", IEEE Transaction on Evolutionary Computation, 2002,vol. 6, p. 58-73
2004−12−15 Particle Swarm optimisation Maurice.Clerc@WriteMe.com
More self ad.
My PSO site: http://clerc.maurice.free.fr/pso/index.htm
If you read French
Clerc M., "L'optimisation par essaim particulaire. Principes et pratique", Hermès, Techniques et Science de l'Informatique, 2002. Article de 25 p. Clerc M., L ’optimisation par essaims particulaires. http://www.editions-hermes.fr/fr/. Parution février 2005
2004−12−15 Particle Swarm optimisation Maurice.Clerc@WriteMe.com
PSO in the world
eXtended Particle Swarms (XPS) project
2004−12−15 Particle Swarm optimisation Maurice.Clerc@WriteMe.com
Some open questions
to ical ideas at ew mathem interactions N cl e odel parti m
eighted w aptive hips Ad ns relatio
es approach l binatoria m Better co 2004−12−15 Particle Swarm optimisation
l tamode Me
Maurice.Clerc@WriteMe.com
Beat the swarm!
position current Your
perf. ur best Yo
2004−12−15 Particle Swarm optimisation
perf. of Best the swarm
Maurice.Clerc@WriteMe.com
APPENDIX
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Canonical form
⎧v ( t + 1) = v ( t ) + ϕ ( q − x ( t ) ) ⎪ ⎨ ⎪ x ( t + 1) = x ( t ) + v ( t + 1) ⎩
M
y ( t ) = q − x ( t ) ⎡ v(t + 1)⎤ ⎡ 1
Eigen values e1 and e2 ⎧v (t +1) = αv (t ) + βϕy(t) β ⎨ − ηϕ ⎩ y(t + 1) = −γ v(t ) + (δδ−ηϕ )y (t )
2004−12−15 Particle Swarm optimisation
ϕ ⎤ ⎡ v(t )⎤ ⎢ y (t + 1)⎥ = ⎢− 1 1 − ϕ ⎥ ⎢ y (t )⎥ ⎣ ⎦ ⎣ ⎦⎣ ⎦
Maurice.Clerc@WriteMe.com
Constriction
Constriction coefficients
⎧ α + δ − ηϕ + (ηϕ )2 + 2ϕ (αη − δη − 2 βγ ) + (α − δ )2 ⎪ χ1 = ⎪ 2 − ϕ + ϕ 2 − 4ϕ ⎪ ⎨ ⎪ α + δ − ηϕ − (ηϕ )2 + 2ϕ (αη − δη − 2 βγ ) + (α − δ )2 ⎪χ 2 = ⎪ 2 − ϕ + ϕ 2 − 4ϕ ⎩
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Convergence criterion
⎧ χ 1e1 < 1 ⎧ χ1 < 1 ⎪ ⎪ ⎨ ⇐⎨ ⎪ χ 2 e 2 < 1 ⎪ χ 2 e2 < 1 ⎩ ⎩
3.5 3 2.5 2 1.5 1 0.5 1 2
κ = χ2e 2
2004−12−15
Particle Swarm optimisation
ϕ
3
4
5
6
Maurice.Clerc@WriteMe.com
Robustness
Performance map : NeededIterations(κ,ϕ)
Iter
f ( x1 , x2 ) =
100 x2 − x12 + (1 − x1 )
2004−12−15
(
)
2
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Clusters and queens
Each particle is weighted by its perf. Dynamic clustering Centroids = queens = temporary new “particles”
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Magic Square (1)
⎡ m1,1 ⎢ ⎢ M ⎢m ⎣ D ,1 K mi , j K ⎤ D ⎥ M ⎥ m D, D ⎥ ⎦ m1,
∑ ∑ (m
i =1
D −1 ⎛
⎜ ⎜ ⎝
D
i, j
− mi +1, j
)
j =1
⎞ ⎟ ⎟ ⎠
2
⎧mi , j = x j + (i −1) D ⎪ ⎪ 1L ⎨mi , j ∈ { N } ⎪ ⎪mi , j ≠ mk ,l ⎩
2004−12−15
+
∑ ∑(
D j =1
D −1 ⎛
⎜ mi , j − mi , j +1 ⎜ ⎝ i =1
)
⎞ ⎟ ⎟ ⎠
2
=0
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Magic Square (2)
55 30 68 42 49 62 56 74 23 30 61 53 89 32 23 25 51 68 43 51 78 75 33 64 54 88 30 80 3 30 22 72 19 11 38 64 50 43 67 58 55 47 52 62 4
D=3x3, N=100 10 runs 13430 evaluations
27 96 39 73 40 49 62 26 74 22 70 58 40 75 35 88 5 57
10 solutions
18 25 59 32 53 17 52 24 26
65 28 64 63 55 39 29 74 54
50 65 68 69 42 72 64 76 43
2004−12−15
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
Non linear system
2 2 ⎧ x1 + x2 − 1 = 0 ⎪ ⎨ ⎪sin (10 x1 ) − x2 = 0 ⎩
Search space [0,1]2
1 run 143 evaluations 10 runs 1430 evaluations
1 solution
3 solutions
Maurice.Clerc@WriteMe.com
2004−12−15
Particle Swarm optimisation
Model fitting (ARMA +AIC)
Autoregressive Moving Average + Akaike's Information Criterion
∑φ y
i =0 i
N
n
t −i
= ∑ θ j at − j
j =0
t data
m
σ =
2
∑ (y
i =1
− yt ARMA N
)
2
f = n log σ + 2(n + m )
2004−12−15
( )
2
s terogenuou he
Particle Swarm optimisation
Maurice.Clerc@WriteMe.com
A binary PSO C code
Information links are modified at random if there has been no improvement
// Pivot method ----------------------------------------// Works pretty well on some problems .. and pretty bad on some others P[s]=P_m[g]; // Initialise the new position of particle s // at the position of the best known around dist=log(D); // We suppose here D>=2
r=alea(1,dist); // Radius for DPNP for (k=0;k