粒子群优化算法_【粒子群算法系列】粒子群算法求解函数极值(C/C++)

粒子群优化算法(PSO)是一种进化算法,通过群体中个体间信息共享来寻找问题最优解。本文介绍PSO的基本思想,并提供一个求解非线性函数极值的C/C++代码示例,展示算法流程。在迭代54代时达到最大值,与遗传算法流程相似,关键在于速度更新公式。
摘要由CSDN通过智能技术生成

47e7563dc38e37e66d4ee26a5533dac0.png

粒子群算法

粒子群算法(PSO,Particle Swarm Optimization),也称粒子群优化算法或鸟群觅食算法。1995年由J. Kennedy和R. C. Eberhart等开发的一种新的进化算法(Evolutionary Algorithm - EA)。

粒子群优化算法的基本思想是利用群体中个体之间的信息共享,从而使得整个群体的运动在问题求解空间中产生从无序到有序的演化过程,从而获得问题的最优解。

粒子群算法的详细介绍,网上已经有很多资料,这里就不再赘述。画个标准算法的流程图吧。

c4ef6807ab255f9c2bc8edcab7498657.png

然后推荐几个学习链接:

https://mp.weixin.qq.com/s/Vz6BFqzFmQLwgQz6agjG0A

https://mp.weixin.qq.com/s/axln8SohDXpHDAeJ2EhKQg

https://mp.weixin.qq.com/s/3Os2ZxLkFM6wKzY6wLQ9zA

……

本文要求解极值的非线性函数为

f6fa53882550c69827cb619a04e39f08.png

下面直接上代码:

程序中种群规模为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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值