Python粒子群优化算法实现(PSO)

PSO(PSO——Particle Swarm Optimization)(基于种群的随机优化技术算法)
粒子群算法模仿昆虫、兽群、鸟群和鱼群等的群集行为,这些群体按照一种合作的方式寻找食物,群体中的每个成员通过学习它自身的经验和其他成员的经验来不断改变其搜索模式。

概述请见:

http://www.omegaxyz.com/2017/05/04/introductionofpso/

MATLAB代码请见:http://www.omegaxyz.com/2018/01/17/matlab_pso/

Python3代码:

注意pN是指初始种群,一般来说初始种群越大效果越好

dim是优化的函数维度,常见的初等函数和初等复合函数都是1维

max_iter是迭代次数

本文的优化函数是x^2-4x+3,显然这个函数在x=2时取最小值-1

验证:

迭代图像:

迭代的最后可以看到结果:

当然多维函数只需要改变dim和函数表达式就好了!

参考资料:http://blog.csdn.net/kunshanyuz/article/details/63683145

6 评论

  1. 博主你好,请问你这里为什么每次只打印第1个粒子呢?而不是打印最优的那个粒子?

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注