![30c6cecb6d70c179643464cd0514577d.png](https://i-blog.csdnimg.cn/blog_migrate/822babc338e2ba78dd7b82e5e3f067f4.jpeg)
粒子群优化算法的思路
粒子群算法是一种群体智能算法,是基于种群群体提出的进化算法,如鸟群或者鱼群等觅食的行为,鸟群中个每只鸟往四周觅食,有些鸟飞过的地方食物多,有些地方食物少。它们的最终目标是寻找到食物最多的地方,在这个种群中每个个体都有自我认知和共享社会信息的能力,自我认知的能力指每只鸟能够记录自己寻找到的食物最多的地方,社会共享能力指种群直接按可以相互共享信息以找到整个种群找到的食物最多的地方。所以粒子群优化算法需要记录两类信息,一是个体找到的最佳位置
速度更新公式:
位置更新公式:
其中
种群中个体在迭代更新速度与位置时,应该保证不能超出速度的最大及最小值和位置的最大及最小值。位置的最大及最小值就是决策变量的取值范围,而速度范围的选取即不可太大又不能太小,太大会导致粒子可能偏离最优解,而太小则可能导致陷入局部最优。同样的惯性因子
问题1:
w的选取一种是取固定值,一般在(0.5,0.8)范围内,还有一种是动态策略,目前使用最多的是线性递减权值策略。
问题2:
一般的当种群的位置范围设为
matlab代码实现[2]:
这里依然以单目标遗传算法的例子为例,求解
function
![321c7379dabad2dcdf25089c8fec6d6a.png](https://i-blog.csdnimg.cn/blog_migrate/e418463e0bc44136cc8068537c94a874.png)
![fb2e8ade42490c06ab6733e060fd77f0.png](https://i-blog.csdnimg.cn/blog_migrate/589c430d0af5026984802cae26d2ca71.png)
参考
- ^https://www.jianshu.com/p/7e097bfb6390
- ^https://blog.csdn.net/nightmare_dimple/article/details/74331679