Particle Swarm Optimizer (PSO)¶
- class pypop7.optimizers.pso.pso.PSO(problem, options)¶
Particle Swarm Optimizer (PSO).
This is the abstract class for all PSO classes. Please use any of its instantiated subclasses to optimize the black-box problem at hand.
Note
PSO is a very popular family of swarm-based search algorithms, proposed by an electrical engineer (Russell C. Eberhart) and a psychologist (James Kennedy), two recipients of IEEE Evolutionary Computation Pioneer Award 2012. Its underlying motivation comes from very interesting collective behaviors (e.g. flocking) observed from social animals (such as birds), which are often regarded as a particular form of emergence or self-organization. Recently, PSO-type swarm optimizers are theoretically analyzed under the Consensus-Based Optimization (CBO) framework.
- Parameters:
problem (dict) –
- problem arguments with the following common settings (keys):
’fitness_function’ - objective function to be minimized (func),
’ndim_problem’ - number of dimensionality (int),
’upper_boundary’ - upper boundary of search range (array_like),
’lower_boundary’ - lower boundary of search range (array_like).
options (dict) –
- optimizer options with the following common settings (keys):
’max_function_evaluations’ - maximum of function evaluations (int, default: np.Inf),
’max_runtime’ - maximal runtime to be allowed (float, default: np.Inf),
’seed_rng’ - seed for random number generation needed to be explicitly set (int);
- and with the following particular settings (keys):
’n_individuals’ - swarm (population) size, aka number of particles (int, default: 20),
’cognition’ - cognitive learning rate (float, default: 2.0),
’society’ - social learning rate (float, default: 2.0),
’max_ratio_v’ - maximal ratio of velocities w.r.t. search range (float, default: 0.2).
- cognition¶
cognitive learning rate, aka acceleration coefficient.
- Type:
float
- max_ratio_v¶
maximal ratio of velocities w.r.t. search range.
- Type:
float
- n_individuals¶
swarm (population) size, aka number of particles.
- Type:
int
- society¶
social learning rate, aka acceleration coefficient.
- Type:
float
References
Cipriani, C., Huang, H. and Qiu, J., 2022. Zero-inertia limit: From particle swarm optimization to consensus-based optimization. SIAM Journal on Mathematical Analysis, 54(3), pp.3091-3121. https://epubs.siam.org/doi/10.1137/21M1412323
Fornasier, M., Huang, H., Pareschi, L. and Sünnen, P., 2022. Anisotropic diffusion in consensus-based optimization on the sphere. SIAM Journal on Optimization, 32(3), pp.1984-2012. https://epubs.siam.org/doi/abs/10.1137/21M140941X
Fornasier, M., Huang, H., Pareschi, L. and Sünnen, P., 2021. Consensus-based optimization on the sphere: Convergence to global minimizers and machine learning. Journal of Machine Learning Research, 22(1), pp.10722-10776. https://jmlr.csail.mit.edu/papers/v22/21-0259.html
Blackwell, T. and Kennedy, J., 2018. Impact of communication topology in particle swarm optimization. IEEE Transactions on Evolutionary Computation, 23(4), pp.689-702. https://ieeexplore.ieee.org/abstract/document/8531770
Bonyadi, M.R. and Michalewicz, Z., 2017. Particle swarm optimization for single objective continuous space problems: A review. Evolutionary Computation, 25(1), pp.1-54. https://direct.mit.edu/evco/article-abstract/25/1/1/1040/Particle-Swarm-Optimization-for-Single-Objective
https://www.cs.cmu.edu/~arielpro/15381f16/c_slides/781f16-26.pdf
Floreano, D. and Mattiussi, C., 2008. Bio-inspired artificial intelligence: Theories, methods, and technologies. MIT Press. https://mitpress.mit.edu/9780262062718/bio-inspired-artificial-intelligence/ (See [Chapter 7.2 Particle Swarm Optimization] for details.)
http://www.scholarpedia.org/article/Particle_swarm_optimization
Poli, R., Kennedy, J. and Blackwell, T., 2007. Particle swarm optimization. Swarm Intelligence, 1(1), pp.33-57. https://link.springer.com/article/10.1007/s11721-007-0002-0
Venter, G. and Sobieszczanski-Sobieski, J., 2003. Particle swarm optimization. AIAA Journal, 41(8), pp.1583-1589. https://arc.aiaa.org/doi/abs/10.2514/2.2111
Clerc, M. and Kennedy, J., 2002. The particle swarm-explosion, stability, and convergence in a multidimensional complex space. IEEE Transactions on Evolutionary Computation, 6(1), pp.58-73. https://ieeexplore.ieee.org/abstract/document/985692
Eberhart, R.C., Shi, Y. and Kennedy, J., 2001. Swarm intelligence. Elsevier. https://www.elsevier.com/books/swarm-intelligence/eberhart/978-1-55860-595-4
Shi, Y. and Eberhart, R., 1998, May. A modified particle swarm optimizer. In IEEE World Congress on Computational Intelligence (pp. 69-73). IEEE. https://ieeexplore.ieee.org/abstract/document/699146
Kennedy, J. and Eberhart, R., 1995, November. Particle swarm optimization. In Proceedings of International Conference on Neural Networks (pp. 1942-1948). IEEE. https://ieeexplore.ieee.org/document/488968
PSOs:
- Cooperative Coevolving Particle Swarm Optimizer (CCPSO2)
- Incremental Particle Swarm Optimizer (IPSO)
- Comprehensive Learning Particle Swarm Optimizer (CLPSO)
- Cooperative Particle Swarm Optimizer (CPSO)
- Standard Particle Swarm Optimizer with a Local topology (SPSOL)
- Standard Particle Swarm Optimizer with a global topology (SPSO)