粒子群算法介绍。附matlab、python代码

粒子群算法介绍01:附Matlab、python代码(PSO)

一:

粒子群算法(PSO:particle swarm optimization,粒子群优化算法)是一种群体智能优化算法(像蚁群算法、鱼群算法等等)。由Kenndy和Eberhart于1995年首次提出,源于对鸟群捕食行为的研究——鸟类捕食时,找到食物最简单有效的策略就是搜索当前距离食物最近的那个鸟的周围空间。(怎么找到距离食物最近的鸟——信息共享、适应度函数;其他鸟如何去搜寻——依靠其速度更新公式)。算法中每个粒子都代表问题的一个潜在解,每个粒子都对应一个由适应度函数决定的适应度值。粒子速度决定了粒子的移动方向和距离,速度随自身及最好粒子的经验进行动态调整,从而实现个体在可解空间中的寻优。算法的核心思想:是通过群体中个体之间的协作和信息共享使整个群体在求解空间中产生从无序到有序的进化过程,来寻找最优解。

二:

粒子群算法通过无质量的粒子模拟鸟群中的鸟,粒子具有两种属性:速度和位置(或包含三种属性速度、位置、适应度值)。
1.首先在可行解空间中初始化一群粒子,每个粒子都代表该问题的潜在最优解。
2.粒子在解空间运动,怎么运动?通过跟踪个体极值Pbest[将粒子带入适应度函数求得的解,若第二次迭代个体极值没有第一次迭代个体极值优,则还取第一次迭代的个体极值以此类推]和群体极值Gbest[所有粒子带入适应度函数求得的解中最好的那个,更新规则和个体极值一样]更新自己的位置来运动。如下图所示:
粒子不断更新自己的位置最后趋于集中
在这里插入图片描述
个体极值Pbest是指个体粒子搜索到的适应度值最优的位置(单个粒子截止现在时刻搜索到的最优位置);
群体极值Gbest是指种群中的所有粒子搜索到的适应度最优的位置(整个粒子群截止现在时刻搜索到的最优位置)。

具体更新公式如下图:
在这里插入图片描述文献来自:Matlab智能算法30个案例分析(第二版)P130

你可能看的各种参考资料速度和位置更新公式都不一样,但他们思想都一样。这里解释一下上述图片里面的难理解的地方。下面是重点,尤其是在你写论文的模型算法求解中
这里以一个例子说明:
miny =x1+x2
你的解其中一个解肯定写成X=(x1,x2)的形式,所以你的维数就是2即D=2,如果有n个粒子不就可以用上图的形式表示。
如果位置只是轴线上的一个点,即一维的。用一个数就可以了
如果位置是平面上的一个点,即二维的。用有序数对(x,y)表示
如果位置是空间上的一个点,即三维的。用(x, y, z)表示
……
于是用D维向量表示即Xi=(xi1,xi2…,xiD)
简单来说就是你要求解的模型中有几个变量,维度就是几
图片中的个体极值用向量表示应该是根据向量运算最后得出Pi;群体极值同理。最后一句话,为了防止粒子盲目搜索,一般建议后面应该书上写错了,其中一个换成【-Vmax,Vmax】。式(13-2)后面那个速度角标也错了。

三:

上述公式图形理解:
在这里插入图片描述
在这里插入图片描述
w惯性因子很好理解,取值较大,粒子的自身惯性速度比重大,受自我认知和社会认知影响就小,全局搜索能力就强;C1、C2学习因子,通常都取2。

四:

算例分析
在这里插入图片描述

五:

算法流程
在这里插入图片描述

六:

相关参考
https://blog.csdn.net/daaikuaichuan/article/details/81382794
https://blog.csdn.net/weixin_44580451/article/details/109261902

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

交通运输怪味张

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值