¡Descarga Particle Swarm Optimization (PSO) y más Diapositivas en PDF de Algoritmos y Programación solo en Docsity!
Particle Swarm Optimization
Slides largely based on:
Riccardo Poli, James Kennedy, Tim Blackwell: Particle swarm optimization. Swarm Intelligence 1(1): 33-57 (2007)
Particle Swarm Optimization (PSO)
- Developed by Kennedy and Eberhart in 1995
- A population based optimization technique inspired by social behavior of bird flocking or fish schooling
- Individual swarm members can profit from the discoveries and previous experience of all other members of the school
Kennedy, J. and Eberhart, R.: Particle Swarm Optimization. Proceedings of the Fourth IEEE International Conference on Neural Networks, Perth, Australia. IEEE Service Center 1942-1948, 1995.
Boids - Java applet
- A flocking simulation using the boids model:
- Applet:
- http://natcomp.liacs.nl/NC/applets/SwarmApplet/Swa rmApplet.html
- Code:
- http://natcomp.liacs.nl/NC/material/SwarmApplet.zip
- Original code from:
- http://www.theparticle.com/applets/swarm/FlockingS warmWithControls/index.html
History - Roosts
Kennedy and Eberhart included a ‘roost’ in a simplified Boids-like simulation such that each agent:
- is attracted to the location of the roost,
- remembers where it was closer to the roost,
- shares information with its neighbors about its closest location to the roost
Eventually, all agents land on the roost.
What if the notion of distance to the roost is changed by an unknown function?
Original PSO - Algorithm
- Randomly initialize particle positions and velocities
- While not terminate
- For each particle i :
- Evaluate fitness yi at current position xi
- If yi is better than pbesti then update pbesti and pi
- If yi is better than gbesti then update gbesti and gi
- For each particle
- Update velocity vi and position xi using:
i i i
i i i i i i
x x v
v v U φ p x U φ g x
Original PSO - Notation
For each particle i :
- xi is a vector denoting its position
- vi is the vector denoting its velocity
- yi denotes the fitness score of xi
- pi is the best position that it has found so far
- pbesti denotes the fitness of pi
- gi is the best position that has been found so far in its neighborhood
- gbesti denotes the fitness of gi
Velocity update:
- U ( 0 , ϕi ) is a random vector uniformly distributed in [ 0 , ϕi ] generated at each generation for each particle
- ϕ 1 and ϕ 2 are the acceleration coefficients determining the scale of the forces in the direction of pi and gi
- denotes the element-wise multiplication operator
Neighborhoods
- The neighborhood of each particle is defines its communication structure (its social network)
- Two general types:
- Geographical neighborhood topologies :
- Based on Euclidean proximity in the search space
- Close to the real-world paradigm but computationally expensive
- Communication network topologies :
- Communication networks are used based on some connection graph architecture (e.g. rings, stars, von Neumann networks and random graphs)
- Favored over geographical neighborhood because of better convergence properties and less computation involved
Neighborhood topologies
Geographical neighborhoods (^) Communication network topologies
Ring (local best) Global best
Random graph Star
Synchronous versus asynchronous
- Synchronous updates
- Personal best and neighborhood bests updated separately from position and velocity vectors
- Slower feedback about best positions
- Better for gbest PSO
- Asynchronous updates
- New best positions updated after each particle position update
- Immediate feedback about best regions of the search space
- Better for lbest PSO
Acceleration Coefficients
vi (t)
xi (t)
pi (t) (^) gi (t)
ϕ 1 = ϕ 2 = 1 (^) ϕ 1 , ϕ 2 > 1
- The boxes show the distribution of the random vectors of the attracting forces of the local best and global best
- The acceleration coefficients determine the scale distribution of the random cognitive component vector and the social component vector
vi (t)
xi (t)
pi (t) (^) gi (t)
Original PSO - Problems
- The acceleration coefficients should be set sufficiently high
- Higher acceleration coefficients result in less stable systems in which the velocity has a tendency to explode
- To fix this, the velocity vi is usually kept within the range
[- vmax , vmax ]
- However, limiting the velocity does not necessarily prevent particles from leaving the search space, nor does it help to guarantee convergence
v
t
Inertia weighted PSO
- An inertia weight ω was introduced to control the velocity explosion:
- If ω, ϕ 1 and ϕ 2 are set correctly, this update rule allows for convergence without the use of vmax
- The inertia weight can be used to control the balance between exploration and exploitation: - ω ≥ 1: velocities increase over time, swarm diverges - 0 < ω < 1: particles decelerate, convergence depends ϕ 1 and ϕ 2
- Rule-of-thumb settings: ω = 0.7298 and ϕ 1 = ϕ 2 = 1.
vi ωvi U ( , φ ) ( pi xi ) U ( , φ ) ( gi xi )
0 1 0 2
Shi, Y. Eberhart, R., 'A modified particle swarm optimizer', in Evolutionary Computation Proceedings, 1998. IEEE World Congress on Computational Intelligence., The 1998 IEEE International Conference on , pp. 69-73 (1998).
Time decreasing inertia weight
- Eberhart and Shi suggested to decrease ω over time (typically from 0.9 to 0.4) and thereby gradually changing from an exploration to exploitation
- Other schemes for a dynamically changing inertia weight are also possible and have also been tried Eberhart, R. C. Shi, Y., 'Comparing inertia weights and constriction factors in particle swarm optimization', vol. 1, pp. 84-88 vol.1 (2000).
Constricted coefficients PSO
- Take away some ‘guesswork’ for setting ω , ϕ 1 and ϕ 2
- An elegant method for preventing explosion, ensuring convergence and eliminating the parameter vmax
- The constriction coefficient was introduced as:
With and
vi v i U ( 0 , 1 ) ( pi xi ) U ( 0 , 2 ) ( gi xi )
φ φ φ
χ 4
2 1 2 4 (^2)
Clerc, M. Kennedy, J., 'The particle swarm - explosion, stability, and convergence in a multidimensional complex space', Evolutionary Computation, IEEE Transactions on , vol. 6, no. 1, 58-73 (2002).