多目标粒子群优化算法matlab_进化算法(3)--粒子群优化算法

30c6cecb6d70c179643464cd0514577d.png

粒子群优化算法的思路

粒子群算法是一种群体智能算法,是基于种群群体提出的进化算法,如鸟群或者鱼群等觅食的行为,鸟群中个每只鸟往四周觅食,有些鸟飞过的地方食物多,有些地方食物少。它们的最终目标是寻找到食物最多的地方,在这个种群中每个个体都有自我认知和共享社会信息的能力,自我认知的能力指每只鸟能够记录自己寻找到的食物最多的地方,社会共享能力指种群直接按可以相互共享信息以找到整个种群找到的食物最多的地方。所以粒子群优化算法需要记录两类信息,一是个体找到的最佳位置

,二是种群找到的最佳位置
。然后需要用到这两个信息更新自己的飞行方向和速度。更新公式如下:

速度更新公式:

位置更新公式:

其中

表示是上一次迭代的数据,
表示本次迭代。
表示维度(决策变量的个数)。
表示种群中的第
个元素。

记录种群中的个体
的经历过的最优解

记录整个种群遍历出的最优解

惯性因子

自身认知项的学习因子,
时表示种群没有自我认知能力而只有社会信息。

群体认知项的学习因子,
时表示种群没有社会信息而只有自我认知能力。

之间的随机数。

种群中个体在迭代更新速度与位置时,应该保证不能超出速度的最大及最小值和位置的最大及最小值。位置的最大及最小值就是决策变量的取值范围,而速度范围的选取即不可太大又不能太小,太大会导致粒子可能偏离最优解,而太小则可能导致陷入局部最优。同样的惯性因子

也面临着这种问题,这里主要关心两个数的选取:

问题1:

的取值
[1]

w的选取一种是取固定值,一般在(0.5,0.8)范围内,还有一种是动态策略,目前使用最多的是线性递减权值策略。

最大迭代次数

初始惯性权重

迭代值最大进化代数时的惯性权重

问题2:

的范围

一般的当种群的位置范围设为

时,速度的范围设为
,其中:
,

matlab代码实现[2]

这里依然以单目标遗传算法的例子为例,求解

function

321c7379dabad2dcdf25089c8fec6d6a.png

fb2e8ade42490c06ab6733e060fd77f0.png

参考

  1. ^https://www.jianshu.com/p/7e097bfb6390
  2. ^https://blog.csdn.net/nightmare_dimple/article/details/74331679
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值