差分进化算法求解函数最优解matlab实现

一、简介

差分进化算法(Differential Evolution,DE)由Storn和Price于1995年首次提出。主要用于求解实数优化问题。该算法是一类基于群体的自适应全局优化算法,属于演化算法的一种,由于其具有结构简单、容易实现、收敛快速、鲁棒性强等特点,因而被广泛应用在数据挖掘模式识别、数字滤波器设计、人工神经网络电磁学等各个领域。1996年在日本名古屋举行的第一届国际演化计算(ICEO)竞赛中,差分进化算法被证明是速度最快的进化算法。

和遗传算法一样,差分进化算法也是一种基于现代智能理论的优化算法,通过群体内个体之间的相互合作与竞争产生的群体智能来指导优化搜索的方向。该算法的基本思想是:从一个随机产生的初始种群开始,通过把种群中任意两个个体的向量差与第三个个体求和来产生新个体,然后将新个体与当代种群中相应的个体相比较,如果新个体的适应度优于当前个体的适应度,则在下一代中就用新个体取代旧个体,否则仍保存旧个体。通过不断地进化,保留优良个体,淘汰劣质个体,引导搜索向最优解逼近。

为了使更多研究者了解和研究差分进化算法,Storn和Price于1997年建立了差分进化算法的官方网站,该网站的建立得到了广大研究者的关注和支持,为相关人员进行差分演化算法的理论和应用研究提供了极大的方便。此外,Store和Price在差分进化算法上没有申请任何形式的专利,这也为推动差分进化算法的研究和应用起到了重要的作用。

二、步骤:

其具体进化流程如下:

(1)确定差分进化算法控制参数,确定适应度函数。差分进化算法控制参数包括:种群大小NP、缩放因子F与杂交概率CR。

(2)随机产生初始种群。

(3)对初始种群进行评价,即计算初始种群中每个个体的适应度值。

(4)判断是否达到终止条件或进化代数达到最大。若是,则终止进化,将得到最佳个体作为最优解输出;若否,继续。

(5)进行变异和交叉操作,得到中间种群。

(6)在原种群和中间种群中选择个体,得到新一代种群。

(7)进化代数g=g+1,转步骤(4)

三、运行结果

四、代码

https://download.csdn.net/download/weixin_41971010/20386308

原理可以参照这篇文章:

https://blog.csdn.net/qq_37423198/article/details/77856744

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是好人的墨叔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值