粒子群算法
粒子群算法(PSO,Particle Swarm Optimization),也称粒子群优化算法或鸟群觅食算法。1995年由J. Kennedy和R. C. Eberhart等开发的一种新的进化算法(Evolutionary Algorithm - EA)。
粒子群优化算法的基本思想是利用群体中个体之间的信息共享,从而使得整个群体的运动在问题求解空间中产生从无序到有序的演化过程,从而获得问题的最优解。
粒子群算法的详细介绍,网上已经有很多资料,这里就不再赘述。画个标准算法的流程图吧。
然后推荐几个学习链接:
https://mp.weixin.qq.com/s/Vz6BFqzFmQLwgQz6agjG0A
https://mp.weixin.qq.com/s/axln8SohDXpHDAeJ2EhKQg
https://mp.weixin.qq.com/s/3Os2ZxLkFM6wKzY6wLQ9zA
……
本文要求解极值的非线性函数为
下面直接上代码:
程序中种群规模为50,迭代次数为500,位置范围为[-2, 2],速度范围为[-0.5, 0.5],两个加速因子均为1.49445。/* 参考资料:https://blog.csdn.net/hcc199521/article/details/53445656?utm_medium=distribute.pc_relevant.none-task-blog-title-2&spm=1001.2101.3001.4242求解以下二元函数的最大值f(x,y) = sin(sqrt(x^2+y^2))/(sqrt(x^2+y^2)) + exp((cos(2*PI*x)+cos(2*PI*y))/2) - 2.71289s.t. x∈[-2, 2] y∈[-2, 2]*/#include #include #include #include #include