差分进化算法

差分进化算法在 1997 年日本召开的第一届国际进化优化计算竞赛(ICEO)]表现突出,已成为进化算法(EA)的一个重要分支,很多学者开始研究 DE 算法,并取得了大量成果.2006年 CEC 国际会议将其作为专题讨论,由此可见 DE 算法已成为学者的研究热点,具有很大的发展空间.

每个个体的优劣程度根据已定义好的适应度函数来评价,这与被解决的问题有关.基本的差分进化算法实现过程如下:

Step1: 确定DE控制参数和所采用的具体策略,DE控制参数包括:种群数量、变异算子、交叉算子、最大进化代数、终止条件等.

Step2: 随机产生初始种群,进化代数 t = 1.

Step3: 对初始种群进行评价,即计算初始种群中每个个体的适应度值.

Step4: 判断是否达到终止条件或进化代数达到最大.若是,则进化终止,将此时的最佳个体作为解输出;若否,继续.

Step5:进行变异和交叉操作,对边界条件进行处理,得到临时种群.

Step6: 对临时种群进行评价,计算临时种群中每个个体的适应度值.

Step7: 进行选择操作,得到新种群.Step8: 进化代数 t = t+ 1,转步骤4.


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

(1)种群数量.根据经验,种群数量 NP 的合理选择在5 D   10D之间,必须满足 NP ≥4以确保DE具有足够的不同的变异向量.

(2)变异算子.变异算子 F ∈ [0,2]是一个实常数因数,它决定偏差向量的放大比例.迄今为止的研究表明,小于0.4和大于1的 F 值仅偶尔有效, F = 0.5通常是一个较好的初始选择.若种群过早收敛,那么 F 或 NP 应该增加.

(3)交叉算子.交叉算子CR 是一个范围在[0,1]的实数,它是控制一个试验向量来自随机选择的变异向量而不是原来向量的概率的参数.CR 的一个较好的选择是0.1,但较大的CR 通常加速收敛,为了看是否可能获得一个快速解,可以首先尝试 CR = 0.9或 CR = 1.0.

(4)最大进化代数.它表示DE算法运行到指定的进化代数之后就停止运行,并将当前群体中的最佳个体作为所求问题的最优解输出.一般取值范围为100-200,当然根据问题的需要,可以增大最大进化代数以提高算法的求解精度,不过这样往往使得算法的运行时间过长.

(5)终止条件.除最大进化代数可作为DE的终止条件,还需要其它判定准则.一般当适应度值小于阀值时程序终止,阀值常选为610 .

上述参数中,F ,CR 与 NP 一样,在搜索过程中是常数,一般 F 和CR 影响搜索过程的收敛速度和鲁棒性,它们的优化值不仅依赖于目标函数的特性,还与 NP 有关.通常可通过在对不同值做一些试验之后利用试验和结果误差找到 F ,CR 和 NP 合适值.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值