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