一键建站系统有哪些,西安网站建设推广公司,广州花都区,彩票网站建设开发差分进化(Differential Evolution#xff0c;DE)算法是由美国学者Storn和 Price在1995年为求解Chebyshev多项式拟合问题而提出的。算法主要通过基于差分形式的变异操作和基于概率选择的交叉操作进行优化搜索#xff0c;虽然其操作名称和遗传算法相同#xff0c;但实现方法有…
差分进化(Differential EvolutionDE)算法是由美国学者Storn和 Price在1995年为求解Chebyshev多项式拟合问题而提出的。算法主要通过基于差分形式的变异操作和基于概率选择的交叉操作进行优化搜索虽然其操作名称和遗传算法相同但实现方法有本质区别。
差分进化算法的原理简单,参数设置较少,易于编程实现,目前已被证明为是一种高效的智能优化算法已在人工神经网络、电力、机器人、信号处理等领域得到了应用。
本文将介绍其理论模型和代码实现。
00 目录
1 差分进化算法原理
2 代码目录
3 算法性能
4 源码获取
01 差分进化算法原理
差分进化算法的基本思想源于遗传算法。
变异DE算法是通过把种群中两个个体之间的加权差向量加到第三个个体上来产生新参数向量;
交叉将变异向量的参数与另外预先决定的目标向量的参数按照一定的规则混合起来产生子个体;
选择新产生的子个体只有当它比种群中的目标个体优良时才对其进行替换;
DE算法的选择操作是在完成变异、交叉之后由父代个体与新产生的候选个体――对应地进行竞争优胜劣汰,使得子代个体总是等于或优于父代个体。
而且,DE算法给予父代所有个体以平等的机会进入下一代,不歧视劣质个体。
差分进化算法把一定比例的多个个体的差分信息作为个体的扰动量,使得算法在跳跃距离和搜索方向上具有自适应性。在进化的早期,因为种群中个体的差异性较大,使得扰动量较大,从而使得算法能够在较大范围内搜索,具有较强的勘探能力﹔到了进化的后期﹐当算法趋向于收敛时,种群中个体的差异性较小,算法在个体附近搜索,这使得算法具有较强的局部开采能力。 正是由于差分进化算法具有向种群个体学习的能力,使得其拥有其他进化算法无法比拟的性能。其具体操作如下
1变异
当种群进化至第 G 代时对父代个体XiG 实施变异操作得到变异个体即
式中下标 r1r2r3 是在 1 和 NP种群规模 之间随机选择的与i不同的互异整数Xr1,G称为基向量( Xr2,G - Xr3,G ) 称为差分向量F为缩放因子。如果变异个体中的参数超出边界则该参数的值将被边界值替换。
2交叉
通过交叉操作产生试验个体为
其中
式中 rj[ 01) 代表第 j 次计算的随机数CR 为交叉率。r(i)是在1和D之间随机选取的 整数可使Ui,G 1从Vi,G 1获得至少一个变量。
3选择
对于最小化问题在试验个体Ui,G 1与父代个体Xi,G中选择目标函数较小的个体进入下一代种群即
式中 F (X)代表目标函数。
算法中主要的控制参数为种群规模NP、缩放因子F、交叉率CR通常这些参数在进化时都保持不变。
算法流程图如下
02 代码目录 MATLAB Python
包含MATLAB 和Python的程序考虑到很多同学获取代码后有乱码matlab版本问题可以将matlab版本改为2020-2022或使用乱码解决文件夹中的txt文件即可。
部分代码 03 算法性能
采用CEC中的测试函数来初步检验其寻优性能在MATLAB中执行程序结果如下
在Python中结果
04 源码获取
在GZHKAU的云实验台加粗样式回复 DE 即可
DE算法具有较强的通用性不依赖于问题信息且原理简单容易实现能够利用个体的局部信息和群体的全局信息指导算法搜索能够易于与其他算法结合同样DE算法也存在局部搜索能力弱、搜索效率低等缺点为此可采用不同的变异策略或是种群更新机制等方法提升其性能。
另如果有伙伴有待解决的优化问题各种领域都可可以发我我会选择性的更新利用优化算法解决这些问题的文章。
如果这篇文章对你有帮助或启发可以点击右下角的赞/在看(ง •̀_•́)ง(不点也行)你们的鼓励就是我坚持的动力若有定制需求可私信作者。