The Particle Swarm Optimization Algorithm, N. Trpkovic

advertisement
The Particle Swarm
Optimization Algorithm
Nebojša Trpković
trx.lists@gmail.com
10th Dec 2010
Problem Definition
optimization of continuous nonlinear functions
↓
finding the best solution in problem space
Nebojša Trpković
trx.lists@gmail.com
Slide 2 of 18
Example
Nebojša Trpković
trx.lists@gmail.com
Slide 3 of 18
Importance
• function optimization
• artificial neural network training
• fuzzy system control
Nebojša Trpković
trx.lists@gmail.com
Slide 4 of 18
Existing Solutions
• Ant Colony (ACO)
– discrete
• Genetic Algorithms (GA)
– slow convergence
Nebojša Trpković
trx.lists@gmail.com
Slide 5 of 18
Particle Swarm Optimization
Very simple classification:
•
•
•
•
a computational method
that optimizes a problem
by iteratively trying to improve a candidate solution
with regard to a given measure of quality
Nebojša Trpković
trx.lists@gmail.com
Slide 6 of 18
Particle Swarm Optimization
Facts:
• developed by Russell C. Eberhart and James Kennedy in 1995
• inspired by social behavior of bird flocking or fish schooling
• similar to evolutionary techniques such as Genetic Algorithms (GA)
Nebojša Trpković
trx.lists@gmail.com
Slide 7 of 18
Particle Swarm Optimization
Benefits:
• faster convergence
• less parameters to tune
↓
• easier searching in very large problem spaces
Nebojša Trpković
trx.lists@gmail.com
Slide 8 of 18
Particle Swarm Optimization
Basic principle:
let particle swarm move
towards the best position in search space,
remembering each particle’s best known position
and global (swarm’s) best known position
Nebojša Trpković
trx.lists@gmail.com
Slide 9 of 18
Velocity Change
xi – specific particle
pi – particle’s (personal) best known position
g – swarm’s (global) best known position
vi – particle’s velocity
vi ← ωvi + φprp(pi - xi) + φgrg(g - xi)
inertia
Nebojša Trpković
trx.lists@gmail.com
cognitive
social
Slide 10 of 18
Position Change
xi – specific particle
vi – particle’s velocity
xi ← xi + vi
Nebojša Trpković
trx.lists@gmail.com
Slide 11 of 18
Algorithm
For each particle
Initialize particle
END
Do
For each particle
Calculate fitness value
If the fitness value is better than the best personal fitness value in history, set current value
as a new best personal fitness value
End
Choose the particle with the best fitness value of all the particles, and if that fitness value is
better then current global best, set as a global best fitness value
For each particle
Calculate particle velocity according velocity change equation
Update particle position according position change equation
End
While maximum iterations or minimum error criteria is not attained
Nebojša Trpković
trx.lists@gmail.com
Slide 12 of 18
Single Particle
Nebojša Trpković
trx.lists@gmail.com
Slide 13 of 18
Parameters selection
Different ways to choose parameters:
• proper balance between exploration and exploitation
(avoiding premature convergence to a local optimum yet still ensuring a good rate of
convergence to the optimum)
• putting all attention on exploitation
(making possible searches in a vast problem spaces)
• automatization by meta-optimization
Nebojša Trpković
trx.lists@gmail.com
Slide 14 of 18
Avoiding Local Optimums
• adding randomization factor to velocity calculation
• adding random momentum in a specific iterations
Nebojša Trpković
trx.lists@gmail.com
Slide 15 of 18
Swarm
Nebojša Trpković
trx.lists@gmail.com
Slide 16 of 18
Conclusion
“This algorithm belongs ideologically to that philosophical school
that allows wisdom to emerge rather than trying to impose it,
that emulates nature rather than trying to control it,
and that seeks to make things simpler rather than more complex.”
James Kennedy, Russell Eberhart
Nebojša Trpković
trx.lists@gmail.com
Slide 17 of 18
References
• Wikipedia
http://www.wikipedia.org/
• Swarm Intelligence
http://www.swarmintelligence.org/
• Application of a particle swarm optimization algorithm for
determining optimum well location and type, Jerome Onwunalu
and Louis J. Durlofsky, 2009
• Particle Swarm Optimization, James Kennedy and Russell Eberhart,
1995
http://www.engr.iupui.edu/~shi/Coference/psopap4.html
• Robot Swarm driven by Particle Swarm Optimization
algorithm, thinkfluid
http://www.youtube.com/watch?v=RLIA1EKfSys
Nebojša Trpković
trx.lists@gmail.com
Slide 18 of 18
Download