粒子群优化器 (PSO)
- class pypop7.optimizers.pso.pso.PSO(problem, options)[源代码]
粒子群优化器 (PSO)。
这是所有 PSO 类的抽象类。请使用其任何已实例化的子类来优化手头的黑盒问题。该抽象类的唯一目标是统一其所有子类(不同算法版本)的通用接口。
注意
PSO 是一类非常流行的基于群体的搜索算法,最初由电气工程师 Russell C. Eberhart 和心理学家 James Kennedy 提出,这两位是 2012 年 IEEE 进化计算先驱奖的获得者。其内在动机源于在社会性动物(例如鸟类)中观察到的有趣的集体行为(例如集群),这些行为通常被视为涌现或自组织的一种特殊形式。最近,PSO 类型的群体优化器已在基于共识的优化 (CBO) 或群体梯度动力学框架下进行了理论分析,为了数学上的易处理性,对标准 PSO 的实现进行了或多或少的修改。
关于 PSO/CBO 在不同领域的一些有趣应用,请参考 [Melis et al., 2024, Nature], [Wang et al., 2024, Nature Materials], [Nature Communications-2024], [Zhang et al., 2024, CVPR (Snap Inc. + CUHK + Stanford + UCLA)], [Elijošius et al., 2024], [Lugagne et al., 2024, Nature Communications], [Bottrell et al., MNRAS, 2024], [Xie et al., 2024, JGCD], [Chen et al., 2023, Nature Communications], [Guo et al., 2023, ISSTA], [Yang et al., 2023, IEEE-TSP], [Weiss et al., 2023, CGF], [Menke et al., 2023, Ph.D. Dissertation (Harvard University)], [Liu et al., 2022, Nature Communications], [Benedetti et al., 2019], [Venter&Sobieszczanski-Sobieski, 2003, AIAAJ] 等等。
- 参数:
problem (dict) –
- 问题参数,包含以下通用设置 (键)
'fitness_function' - 需要被最小化的目标函数 (func),
'ndim_problem' - 维度数量 (int),
'upper_boundary' - 搜索范围的上边界 (array_like),
'lower_boundary' - 搜索范围的下边界 (array_like).
options (dict) –
- 优化器选项,包含以下通用设置 (键)
'max_function_evaluations' - 函数评估的最大次数 (int, 默认: np.inf),
'max_runtime' - 允许的最大运行时间 (float, 默认: np.inf),
'seed_rng' - 随机数生成器的种子,需要明确设置 (int);
- 以及以下特定设置 (键)
'n_individuals' - 粒子群(种群)大小,即粒子数量 (int, 默认: 20),
'cognition' - 认知学习率 (float, 默认: 2.0),
'society' - 社会学习率 (float, 默认: 2.0),
'max_ratio_v' - 相对于搜索范围的最大速度比率 (float, 默认: 0.2).
- cognition
认知学习率,也称为加速系数。
- 类型:
float
- max_ratio_v
相对于搜索范围的最大速度比率。
- 类型:
float
- n_individuals
粒子群(种群)大小,即粒子数量。
- 类型:
int
- society
社会学习率,也称为加速系数。
- 类型:
float
参考文献
Bolte, J., Miclo, L. and Villeneuve, S., 2024. 用于全局优化的群体梯度动力学:平均场极限情况。 Mathematical Programming, 205(1), pp.661-701.
Cipriani, C., Huang, H. and Qiu, J., 2022. 零惯性极限:从粒子群优化到基于共识的优化。 SIAM Journal on Mathematical Analysis, 54(3), pp.3091-3121.
Fornasier, M., Huang, H., Pareschi, L. and Sünnen, P., 2022. 球体上基于共识优化的各向异性扩散。 SIAM Journal on Optimization, 32(3), pp.1984-2012.
Fornasier, M., Huang, H., Pareschi, L. and Sünnen, P., 2021. 球体上基于共识的优化:向全局极小值的收敛和机器学习。 Journal of Machine Learning Research, 22(1), pp.10722-10776.
Blackwell, T. and Kennedy, J., 2018. 通信拓扑在粒子群优化中的影响。 IEEE Transactions on Evolutionary Computation, 23(4), pp.689-702.
Bonyadi, M.R. and Michalewicz, Z., 2017. 针对单目标连续空间问题的粒子群优化:综述。 Evolutionary Computation, 25(1), pp.1-54.
https://www.cs.cmu.edu/~arielpro/15381f16/c_slides/781f16-26.pdf
Floreano, D. and Mattiussi, C., 2008. 仿生人工智能:理论、方法和技术。 MIT Press. (详情请见 [第 7.2 章 粒子群优化]。)
http://www.scholarpedia.org/article/Particle_swarm_optimization
Poli, R., Kennedy, J. and Blackwell, T., 2007. 粒子群优化。 Swarm Intelligence, 1(1), pp.33-57.
Clerc, M. and Kennedy, J., 2002. 粒子群——多维复杂空间中的爆炸、稳定性和收敛性。 IEEE Transactions on Evolutionary Computation, 6(1), pp.58-73.
Eberhart, R.C., Shi, Y. and Kennedy, J., 2001. 群体智能。 Elsevier.
Shi, Y. and Eberhart, R., 1998, May. 一种改进的粒子群优化器。 In IEEE World Congress on Computational Intelligence (pp. 69-73). IEEE.
Kennedy, J. and Eberhart, R., 1995, November. 粒子群优化。 In Proceedings of International Conference on Neural Networks (pp. 1942-1948). IEEE.
PSO 的一些有趣应用
我们在此列出一些(实际上是所有)涉及 PSO 的有趣应用,尽管它们几乎都没有使用 PyPop7。
[Kong et al., Science Advances, 2025], [Xie et al., Science Advances, 2025], [Crespo-Miguel et al., Nature Communications, 2025], [Nature Communications, 2025], [Nature Communications, 2025], [Nature, 2024], [Reviews of Modern Physics, 2024], [Nature Materials, 2024], [Wang et al., Science Advances, 2024], [Yang et al., Science Advances, 2024], [Nature Communications, 2024], [Nature Communications, 2024], [CVPR, 2024], [arXiv, 2024], [MNRAS, 2024] 等。