粒子群优化器 (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。

https://visitor-badge.laobi.icu/badge?page_id=Evolutionary-Intelligence.pypop