【智能优化算法】—粒子群算法(Particle Swarm Optimization, PSO)

目录

0 前言

1 简介

1.1 算法原理 

1.2 粒子群算法的基本流程

1.3 粒子群算法的应用 

1.4 粒子群算法与其他智能算法的对比 

2 改进粒子群算法 

2.1 基本粒子群算法的不足 

2.2 改进粒子群算法

2.3 粒子群算法的其他改进方法

2.3.1 分群方法

2.3.2 混合方法 

2.3.3 扰动方法 

3 参考资料

0 前言

粒子群算法是由Eberhart和Kennedy提出的,以鸟类动物的群体行为作为机制的算法被称为粒子群算法(Particle Swarm Optimization, PSO)。鸟儿在空中搜寻、觅食。如果一只鸟在它的飞翔距离之内,存在一块食物,那么它就需要去寻找,去得到它的确切位置。鸟群间的个体能够通过群体合作来分享自己获取的信息,鸟群间的每个个体下一步的飞行方向和速度,取决于个体飞行路径中最优的位置和群体最优的位置,鸟群需要飞行一定的距离才能够寻找到食物,如果鸟聚集在同个地方,就会停止寻找。这种基于动物群体合作行为作为机制而创作的算法称为粒子群算法。

1 简介

1.1 算法原理 

在粒子群算法中,群体间的每个个体都被看作是一个“粒子”,每一个粒子都分布在整个解空间,它们所处的位置各不相同,它们所对应的适应性也各不相同。由于粒子自身有一定的移动距离和速度,因此粒子可以在一个预定的解空间内不停地移动。粒子群算法以粒子群为初始状态,利用粒子群的随机性,不断地调整粒子的运动速度,使粒子在求解空间中的位置得到最优解。在迭代过程中,粒子个体最优值(pbest)、粒子群体的最优值(gbest )决定了粒子本身的飞行距离和走向。随着迭代次数的增加,整个粒子群体的搜索区域不断地向一个更好的方向发展,以寻找到最优解。

设粒子数目是m{z_i} = \left( {​{z_{i1}},{z_{i2}}, \cdots {z_{iD}}} \right) 第i个粒子i = \left( {1,2,3 \cdots m} \right)D维位置矢量,由适应值函数来计算得出粒子${z_i}$的适应值,这表示了粒子${z_i}$位置的优劣;${v_i} = \left( {​{v_{i1}},{v_{i2}}, \cdots {v_{iD}}} \right)$是第i个粒子的飞行速度,即粒子的移动距离;{p_i} = \left( {​{p_{i1}},{p_{i2}}, \cdots {p_{iD}}} \right)是第i个粒子目前得到的最优位置;{p_g} = \left( {​{p_{g1}},{p_{g2}}, \cdots {p_{gD}}} \right)是对于所有的微粒群来说,找到最佳的位置。对于每一个粒子,在迭代时,都可以用下面的公式来修正自己的速度和位置:

其中,{c_1}{r_1} \times \left( {​{p_{id}} - z_{id}^k} \right)项是“认知”部分,表示粒子自身学习;{c_2}{r_2} \times \left( {​{p_{gd}} - z_{id}^k} \right)项是“社会”部分,表示粒子群个体间的互相学习。{c_1}{c_2}为学习因子,衡量了粒子个体自我学习和个体间的互相学习程度。

1.2 粒子群算法的基本流程

以下是基本粒子群算法的流程图,如下图所示:

1.3 粒子群算法的应用 

PSO是一类具有代表性的智能优化方法,已被广泛地用于各类优化问题中。文献[1]最后以无人驾驶飞机为例,对其进行了仿真,结果表明,所提出的算法是可行且有效的。文献[2]在PSO算法的基础上,通过引入贪婪优化、模拟退火等方法,对高维空间背包问题进行优化,以提高其稳定性与可靠性。文献[3]以典型的 TSP问题为背景,把遗传算法中选择、交叉、变异算子的操作赋予了混合粒子群算法,并经过实验,可以有效地优化算法的性能。文献[4]通过对 PSO的学习因子、速率增长等参数的实时调控,实现 PSO的迭代优化,增强了PSO的自寻优能力。并将该算法应用于云资源调度的问题上,最后通过仿真实验,结果表明,该算法能够显著提升资源的利用率。

近年来,有越来越多的学者和研究人员采用PSO算法以解决各种各样的问题,当然,也有很多学者采用PSO算法来解决移动机器人的路径规划问题,也取得了很多的成果。Das等人[5]在粒子群算法基础上,提出了一种改进的方法,该方法将两种算子,即遗传算法中的多交叉算子以及蜂群算子两种进化算子,融合进粒子群优化算法,即IPSO,这是该算法的突出特点。最后研究人员进行了路径仿真,结果表明,该算法鲁棒性和实用性较强。Fatin等人[6]提出了一种面向于移动机器人的路径规划算法,移动机器人采用了混合PSO-MFB优化算法,该算法的特点在于,该算法融合了本地搜索(LS)和障碍物检测避障(ODA)策略。最后,在静态和动态环境下,研究人员将该算法进行了测试,证明了它的有效性。Chen等人[7]提出了一种C-GWPSO混合算法,其方法特点在于融合了灰狼优化(GWO)算法,将微粒群按照不同的速度进行了分类。最后,通过仿真实验,结果表明,C-GWPSO混合新算法可以使机器人更容易地以最小的代价找到线路。Setyawan等人[8]提出了对高斯参数更新规则的方法,通过进一步的分析与研究,提出了一种微粒的重新初始化方法。仿真结果表明,该方法使得PSO算法收敛更快且能够保证路径无碰撞。 

1.4 粒子群算法与其他智能算法的对比 

粒子群算法、遗传算法、蚁群算法三者都属于一种概率型的优化算法;群体间的个体共同行动以搜寻最优解,而初始和中期的迭代都是随机的;该方法都具有一定的并行性,且易于实现,可与其他方法相结合,提高系统的整体性能;从实现过程来看,这三种方法都不需要初值,能够从每一个点进行随机搜索,并且能够不断地向最优解移动,因此它们都具有很强的鲁棒性。

三种算法的主要区别在于:①优化方式:粒子群算法中群体的每个个体能够通过自身学习与群体间个体互相学习,来控制其搜寻方向。遗传算法中核心的步骤是交叉、变异算子以及编码工作,来保证种群的多样性,从而逐步寻求最优解。蚁群算法中是通过获取信息素、个体的信息共享、传递从而搜索最优解。②借鉴机理:粒子群算法是借鉴了鸟群觅食行为,遗传算法是借鉴了自然界中适者生存的进化机制,蚁群算法则是借鉴了正反馈机制。③主要应用范围不同

通过对上述几个方面的对比,我们可以看出,它们之间存在着许多相同的地方,但各自又有着各自不同的寻优机理。

2 改进粒子群算法 

2.1 基本粒子群算法的不足 

粒子群算法是一种群体智能算法,算法优化方式非常简单,也容易理解,不需要复杂的计算,不需要过多的调整参数,因此其鲁棒性较为稳定,这一优势也已被广泛应用在许多领域。但正是粒子群算法的数学计算过程比较简单,这会使得粒子群算法的精确度不高。在粒子群算法中,每一个粒子迭代过程中,都是利用粒子个体的最佳值(pbest)、粒子群体的最优值(gbest ),不断更新粒子自身的速度和位置,并且不需要精确的计算,这能够使得粒子群算法收敛速度快,但精度较低。随着迭代次数的增加,在迭代后期,粒子群算法的每个个体的适应度已经接近了全局中的最优解,个体信息相似度也会随着迭代次数的增加而提高,但是群体间每个个体又不具备变异功能,无法完成良性进化操作,只能用pbestgbest更新粒子自身的位置信息,这会使粒子群算法的搜索效果变差 。

2.2 改进粒子群算法

上述的缺陷表明,在 PSO算法中,如何更好的平衡PSO的全局搜索与局部优化的能力,是一个需要解决的问题。因此本节在1.1的公式基础上,加入了惯性权重ω: 

粒子群算法在刚开始搜索过程中需要较强的全局搜索能力,这样可以不断扩大搜索范围,以寻求全局最优解,这需要惯性权重ω在搜寻的初期,它的数值比较大。在迭代后期的搜索过程中,粒子群算法需要有很强的局部开发能力,这样才能让粒子更好地进行局部最优。这需要惯性权重ω在迭代后期取值较小。在此基础上,实现了全局寻优与局部寻优的平衡。文中所用到的关于惯性加权随迭代数而线性减小的计算公式为: 

式中{\omega _{\max }}为最大惯性权重值,{\omega _{\max }}取值为0.9,{\omega _{\min }}为最小惯性权重值,{\omega _{\min }}取值为0.4。iter为当前迭代次数,{iter _{\max }}为最大迭代次数。若惯性权重为零,每次迭代后,单个粒子的速度只取决于当前粒子本身的最优值pbest和当前群体最优值gbest。当一个粒子到达整体最佳位置时,它就不动,而其它粒子则不断地向整体最佳位置移动。针对惯性权重非零时,种群粒子具备局部优化能力的特点,采用迭代递增的惯性权重自适应调整策略,可使PSO的全局优化与局部优化能力得到较好的均衡,从而实现PSO的全局优化。 

2.3 粒子群算法的其他改进方法

 如何更好地平衡PSO的全局搜索与局部优化的能力,是一个需要解决的问题,其实这又是两个矛盾的方面,学者们提出了各自的观点,概括起来有以下几点:

2.3.1 分群方法

在基本粒子群算法中,所有粒子是在同一个解空间中搜索的,而分群方法则是将整个粒子群按一定规律划分为若干个单个粒子群,并利用粒子群之间的相互影响,来增强粒子群的搜索能力。有的学者把一个粒子群分成几个子群,使其既能在同一群体中进行,又能在不同群体中进行。该算法能有效地增加群体的多样性,并使算法的搜索准确性得到改善。还有学者根据粒子的适应度和迭代数,对粒子群进行了动态的分类。在此基础上,针对不同层次的粒子群,分别使用局部、标准和全局的粒子群学习模型,增强粒子群的多样性,提升粒子群的收敛性和精确性。 

2.3.2 混合方法 

将两种以上的算法组合在一起,也是一种比较有效的方法。所谓的混合式寻优,就是把PSO与其他寻优算法结合起来,以增强寻优能力。有的学者通过对种群适应度变化的分析,采用粒子群优化和K均值相结合的方法,实现了一种基于种群适应度变化的混合型聚类方法。该方法不仅改善了算法的全局寻优性能,而且还可以加强其局部寻优性能。还有学者利用了模拟退火算法具有全局收敛的特点,以及微粒群算法实现容易、局部收敛速度快的特点,利用两类算法的协同寻优机制,实现对微粒群算法的优化。 

2.3.3 扰动方法 

在此基础上,提出了一种新的粒子群优化方法,该方法利用粒子群的动态特性,对粒子群进行持续的极值干扰,使得粒子群处于一种非平衡态,从而促进粒子群对周围环境的持续探索,增强了粒子群的寻优能力。有的学者将繁殖、变异操作引入粒子群算法中,获得了一种新的混合粒子群优化算法,这样可以有效地克服算法的不足,提高算法的寻优性能及收敛速度。 

3 参考资料

文章中或有内容参考网络和文献,注明如下,如有不妥,请联系删除 。

[1]蔺文轩, 谢文俊, 张鹏等. 基于分组优化改进粒子群算法的无人机三维路径规划[J]. 火力与指挥控制, 2023, 48(1): 20-25+32.

[2]姚若侠, 薛丹, 谢娟英等. 求解0-1背包问题的混合粒子群改进算法研究[J]. 华东师范大学学报(自然科学版), 2020(6): 90-98.

[3]王玮, 吴天红, 姜英姿, 史平. 混合粒子群算法在TSP问题中的研究[J]. 中国新通信, 2020, 22(9): 126-127.

[4]马钰, 杨迪, 王鹏. 基于改进粒子群算法的云计算调度策略[J]. 长春理工大学学报(自然科学版), 2022, 45(5): 80-86.

[5]Das PK, Jena PK. Multi-robot path planning using improved particle swarm optimization algorithm through novel evolutionary operators[J]. Applied Soft Computing, 2020, 92: 106312.

[6]Fatin H, et al. Multi-objective path planning of an autonomous mobile robot using hybrid PSO-MFB optimization algorithm[J]. Applied Soft Computing, 2020, 89: 106076.

[7]Fei W, Zi wei W, Meijin L. Robot Path Planning Based on Improved Particle Swarm Optimization[C]. 2021 IEEE 2nd International Conference on Big Data, Artificial Intelligence and Internet of Things Engineering (ICBAIE), 2021: 887-891.

[8] Setyawan N, Kadir R.E.A, Jazidie A. Adaptive Gaussian parameter particle swarm optimization and its implementation in mobile robot path planning[C]. 2017 International Seminar on Intelligent Technology and Its Applications (ISITIA), 2017: 238-243. 

[9]Løvbjerg M, Rasmussen TK, Krink T. Hybrid Particle Swarm Optimiser with breeding and subpopulations [C]. Proceedings of the 3rd Annual Conference on Genetic and Evolutionary Computation, 2001: 469-476.

[10]袁小平, 蒋硕. 基于分层自主学习的改进粒子群优化算法[J]. 计算机应用, 2019, 39(1):148-153.

[11]陶新民, 徐晶, 杨立标, 刘玉. 一种改进的粒子群和K均值混合聚类算法[J]. 电子与信息学报, 2010, 32(1): 92-97.

[12]王丽芳, 曾建潮. 基于微粒群算法与模拟退火算法的协同进化方法[J]. 自动化学报, 2006, 32(4): 630-635. 

[13]Robinson J, Sinton S, Rahmat-Samii Y. Particle swarm, genetic algorithm, and their hybrids: optimization of a profiled corrugated horn antenna[C]. IEEE Antennas and Propagation Society International Symposium, 2002: 314-317.

  • 23
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
粒子群优化算法 (particle swarm optimization, PSO) 是一种基于群体智能优化算法,其算法原理可以概括为以下几个步骤: 1. 初始化一群粒子的位置和速度,并随机分配其初始位置和速度。 2. 计算每个粒子的适应度值,并根据适应度值更新每个粒子的最佳位置和全局最佳位置。 3. 根据每个粒子的最佳位置和全局最佳位置,更新粒子的速度和位置。 4. 判断是否满足停止条件,若满足则输出结果,否则回到第 2 步。 具体来说,PSO 算法的每个粒子都有一个位置向量和一个速度向量。在算法的每一轮迭代中,粒子的速度和位置会根据以下公式进行更新: $v_{i}(t+1)=wv_{i}(t)+c_{1}r_{1}(p_{i}-x_{i}(t))+c_{2}r_{2}(p_{g}-x_{i}(t))$ $x_{i}(t+1)=x_{i}(t)+v_{i}(t+1)$ 其中,$v_{i}(t)$ 表示粒子 $i$ 在时间 $t$ 的速度向量,$x_{i}(t)$ 表示粒子 $i$ 在时间 $t$ 的位置向量,$p_{i}$ 表示粒子 $i$ 的历史最佳位置,$p_{g}$ 表示全局最佳位置,$w$、$c_{1}$ 和 $c_{2}$ 是常数,$r_{1}$ 和 $r_{2}$ 是 $[0,1]$ 之间的随机数。 在算法的每轮迭代中,粒子的速度和位置会不断地更新,直到满足停止条件为止。通常,停止条件可以是达到最大迭代次数、适应度值达到一定阈值等。 PSO 算法通过模拟鸟群、鱼群等群体的行为,将一群粒子看作是搜索空间中的一个个潜在解,通过不断更新粒子的位置和速度,最终找到全局最优解或近似最优解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值