粒子群优化器 (PSO)
- class pypop7.optimizers.pso.pso.PSO(problem, options)[source]
粒子群优化器 (PSO)。
这是所有PSO类的抽象类。请使用其实例化的任何子类来优化手头的黑箱问题。此抽象类的唯一目标是统一其所有子类(不同算法版本)的公共接口。
注意
PSO 是一个非常流行的基于群体的搜索算法家族,最初由一位电气工程师(Russell C. Eberhart)和一位心理学家(James Kennedy)提出,他们是IEEE 2012年进化计算先锋奖的两位获得者。其背后的动机来自于社会性动物(如鸟类)中观察到的有趣的集体行为(例如群集),这些行为通常被视为一种特定形式的涌现或自组织。最近,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], 等等。
- Parameters:
问题 (字典) –
- 问题参数包含以下常见设置 (键):
’fitness_function’ - 需要最小化的目标函数 (函数),
’ndim_problem’ - 维度数 (整数),
’upper_boundary’ - 搜索范围的上限 (类数组),
’lower_boundary’ - 搜索范围的下限 (类数组).
options (dict) –
- 具有以下常见设置的优化器选项 (keys):
’max_function_evaluations’ - 函数评估的最大次数 (int, 默认: np.inf),
’max_runtime’ - 允许的最大运行时间 (float, 默认: np.inf),
’seed_rng’ - 需要显式设置的随机数生成种子 (int);
- 以及以下特定设置 (keys):
’n_individuals’ - 群体(种群)大小,即粒子数量 (int, 默认: 20),
’cognition’ - 认知学习率 (float, 默认: 2.0),
’society’ - 社会学习率 (float, 默认: 2.0),
’max_ratio_v’ - 速度相对于搜索范围的最大比率 (float, 默认: 0.2).
- cognition
认知学习率,也称为加速系数。
- Type:
float
- max_ratio_v
速度相对于搜索范围的最大比率。
- Type:
float
- n_individuals
群体(种群)大小,即粒子数量。
- Type:
int
- society
社交学习率,又称加速系数。
- Type:
float
参考文献
Bolte, J., Miclo, L. 和 Villeneuve, S., 2024. Swarm gradient dynamics for global optimization: The mean-field limit case. 数学规划, 205(1), 第661-701页.
Cipriani, C., Huang, H. 和 Qiu, J., 2022. 零惯性极限:从粒子群优化到基于共识的优化。 SIAM 数学分析杂志, 54(3), 第3091-3121页。
Fornasier, M., Huang, H., Pareschi, L. 和 Sünnen, P., 2022. 球体上基于共识优化的各向异性扩散。 SIAM 优化杂志, 32(3), 第1984-2012页。
Fornasier, M., Huang, H., Pareschi, L. 和 Sünnen, P., 2021. 基于共识的球面优化:收敛到全局最小值和机器学习。 机器学习研究杂志, 22(1), 页10722-10776.
布莱克威尔,T. 和肯尼迪,J.,2018年。 粒子群优化中通信拓扑的影响。 IEEE进化计算汇刊,23(4),第689-702页。
Bonyadi, M.R. 和 Michalewicz, Z., 2017. 粒子群优化在单目标连续空间问题中的应用:综述。 进化计算, 25(1), 第1-54页。
https://www.cs.cmu.edu/~arielpro/15381f16/c_slides/781f16-26.pdf
Floreano, D. 和 Mattiussi, C., 2008年。 生物启发的人工智能:理论、方法和技术。 麻省理工学院出版社。 (详情请参见[第7.2章 粒子群优化]。)
http://www.scholarpedia.org/article/Particle_swarm_optimization
Poli, R., Kennedy, J. 和 Blackwell, T., 2007. 粒子群优化. 群体智能, 1(1), 第33-57页.
Clerc, M. 和 Kennedy, J., 2002. 粒子群爆炸、稳定性和在多维复杂空间中的收敛性。 IEEE Transactions on Evolutionary Computation, 6(1), pp.58-73.
Eberhart, R.C., Shi, Y. 和 Kennedy, J., 2001. 群体智能。 Elsevier.
Shi, Y. 和 Eberhart, R., 1998年5月。 一种改进的粒子群优化器。 在IEEE世界计算智能大会(第69-73页)。IEEE。
Kennedy, J. 和 Eberhart, R., 1995年11月。 粒子群优化。 在国际神经网络会议论文集(第1942-1948页)中。IEEE。
粒子群优化算法: