差分进化算法matlab代码_差分进化算法

差分进化算法是一种全局优化方法,通过变异、交叉和选择操作逐步优化种群。本文介绍了DE的基本原理、算法流程、特点,并提供了MATLAB代码实现的指导,包括控制参数的选择和经验规则。DE的优势在于其简单的参数设置和良好的全局搜索能力,但也可能面临局部最优和收敛速度的问题。
摘要由CSDN通过智能技术生成

差分进化算法(Differential Evolution Algorithm,DE)是一种高效的全局优化算法。是一种模拟生物进化的随机模型,通过反复迭代,使得那些适应环境的个体被保存了下来。它的进化流程则与遗传算法非常类似,都包括变异、杂交和选择操作,但这些操作的具体定义与遗传算法有所不同。

9ab9b92a3feb6abf426153525c5eafd0.png

DE的基本原理

基本思想是从某一组随机产生的初始种群开始,随机选择两个不同的个体向量相减产生差分向量,将差分向量赋予权值后与第三个随机选择的个体向量相加,产生变异向量。然后将变异向量与预先确定的父代个体向量按一定的规则交叉产生试验向量。

402353b50e8bd187598eedccad1679aa.png

若试验向量的适应度值优于父代个体的向量的适应度值,则选用试验的向量进入下一代,否则保留父代个体向量。通过不断的进化,保留优胜的个体,引导搜索过程向最优解逼近。

37cda4641274c6574d6e34d524e47511.png

DE的算法流程

1、基本参数的设置,包括种群规模(NP), 缩放因子(F), 交叉概率(CR)。

2、初始化种群。

3、计算种群适应度值。

4、终止条件不满足时,依次执行变异、交叉、选择运算进行循环,直到终止运算。

b41176a8cb5b2a25eb42983619740057.png

DE的特点

进化计算是一种具有鲁棒性的方法,能适应不同的环境不同的问题,而且在大多数情况下都能得到比较满意的有效解。他对问题的整个参数空间给出一种编码方案,而不是直接对问题的具体参数进行处理,不是从某个单一的初始点开始搜索,而是从一组初始点搜索。因而进化算法具有广泛的应用性,高度的非线性,易修改性和可并行性。

409d9ea59b67012984196e6e2870425a.png

DE代码实现

fc61f86cb8dff45eac76e55ac7edd06c.png

DE的经验规则

控制参数对一个全局优化算法的影响是很大的,DE的控制变量选择也有一些经验规则。

1、种群数量。根据经验,种群数量必须满足NP≥4以确保DE具有足够的不同的变异向量。

2、变异算子。变异算子决定偏差向量的放大比例。F = 0.5通常是一个较好的初始选择。若种群过早收敛,那么 F 或 NP 应该增加。

e2afb0c81015f9c679126c3c2f243b6c.png

3、交叉算子。交叉算子是控制一个试验向量来自随机选择的变异向量,而不是原来向量的概率的参数,CR 的一个较好的选择是0.1,但较大的CR 通常加速收敛。

4、最大进化代数。DE算法运行到指定的进化代数之后就停止运行,并将当前群体中的最佳个体作为所求问题的最优解输出。

5、终止条件。除最大进化代数可作为DE的终止条件,还需要其它判定准则。

1a08d644631d47e5e4ebf39ab67517c0.png

DE的优缺点

DE算法最新颖的特征是它的变异操作。算法迭代初期,种群中个体差异大,变异操作会使算法具有较强全局搜索能力;到迭代后期,当趋于收敛,使得算法具有较强局部搜索能力。这种新颖特征优点有:待定参数少、不易陷入局部最优、收敛速度快。

be985aa380028e67e0dc625bab192a72.png

但是DE也有不足之处:当种群个体较少,且生成新一代个体的适应值比原种群个体适应值差,导致个体难以更新,没有收敛到极值点。如果求解的参数设置不当,收敛过快,产生局部最优问题。

15060a62a5324e097153d82a387780e9.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值