差分进化算法-DE
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
G ,如公式(2.11)(2.12)所示。 新的二进制变异个体 uij
G f pij
1 1 e
2b G G G pr 1, j F ( pr 2, j pr 3, j ) 0.5 1 2 F
(2.11)
G 1, if rand () f (pij ) u 0, otherwise G ij
(3)选择算子 DE 采用贪婪选择策略来对种群进行更新,通过比较新生成的试验个体与当 代种群中对应个体的优劣, 选择适应值更优的个体作为子代进入新种群,如公式 (2.3)所示。
p
G 1 i
viG , if f (viG ) f ( piG ) G pi , otherwise
(2.3)
从公式(2.1)可以看出,DE 的变异操作实际上是将两个不同父代个体的差值 加权后加到第 3 个父代个体,从而得到一个新的临时个体。因此,DE 具有很好 的几何意义,如图 2.2 所示。
x2
ui pr1 F ( pr 2 pr 3 )
变异
ui
候选解
pr1
vi
pr2
交叉
pr3
pi
0
图 2.2 DE 个体更新原理示意图
2.1 差分进化算法
差分进化算法(Differential Evolution,DE)和 GA,PSO,ACO 等进化算法 一样, 都是基于群体智能的随机并行优化算法,通过模仿生物群体内个体间的合 作与竞争产生的启发式群体智能来指导优化搜索。DE 特有的记忆能力使其可以 动态跟踪当前的搜索情况,以调整其搜索策略,实现自适应寻优,因此具有较强 的全局收敛性和鲁棒性, 且不需要借助问题的特定信息,适于求解一些利用常规 的数学规划方法所无法求解的复杂环境中的优化问题[69]。 DE 的种群由若干个体组成, 每个个体代表优化问题的一个潜在解。 DE 的优 化机制是根据不同个体之间的距离和方向信息来生成新的候选个体, 实现群体进 化。与其他进化算法类似,DE 采用变异、交叉、选择这三个典型进化算子对种 群进行更新,但不同于传统进化算子,DE 的进化算子有其独到之处。 (1)变异算子 假设种群规模为 NP ,解的维数为 N ,则种群 P
G pr 1 G pr 2
概率模型
uiG
变异个体
G pr 3
概率估计算子
父代个体
图 2.7 MBDE 概率估计算子
由于采用 3 个不同个体的对应比特位进行概率预测,因此就有 8 种 0、1 组 合。从图 2.8 和表 2.1 可以看出,MBDE 的概率估计算子是关于实数变异值对称 的,因此可以实现“0” “1”平衡搜索,避免陷入局部最优。例如,当比特组合 为“101”时,即父代种群中比特“1”多于“0”时,此时为防止陷入局部最优, 子代取“1”的概率不能太大;同理,当比特组合为“010”时,子代取“0”的概 率也不能太大,因此 MBDE 能较好地防止种群陷入局部最优。
i 为个体的索引, N 为个体编码长度;
Step 3:
计算种群中所有个体的适应值,选出最优个体 pb ;
Step 4: 判断是否满足算法停止迭代条件,若是,则终止迭代并输出最优解
pb ,否则继续下面步骤,对种群进行迭代更新;
Step 5: Step 6:
根据概率预测算子生成变异个体 uiG ,即公式(2.11)(2.12); 将父代个体 piG 与 uiG 进行交叉,即按照公式(2.13)生成二进制试验个 体 viG 作为候选解;
G 示为实数解空间中的一个向量 piG ( piG 1 , pi 2 ,
N
,第 G 代个体 i 可以表
G , piN ) , i 1, 2,
, N 。DE 的变
异算子为每个个体生成一个对应的临时个体 uiG ,称为“变异个体” 。 如变异公式(2.1)所示,DE 从当代种群中随机选择 3 个个体作为父代个体进 行变异,生成变异个体 uiG 。
Step 7:
选择操作:根据公式(2.3),比较父代个体 piG 与试验个体 viG 的优劣, 选择优胜者作为新一代个体 piG 1
Step 8:
G G 1 ;转到 Step 4 继续迭代。
图 2.9 MBDE 算法优化流程
(2.12)
G G 其中 prG 1 、 pr 2 、 pr 3 是第 G 代种群中随机选出的 3 个不同的父代个体,F 0
G 是根据概 是缩放因子,b 0 是跨度系数,rand () 是 0, 1 之间的均匀随机数,uij
率向量采样生成的二进制变异位。 如图 2.7 所示,MBDE 根据 3 个不同父代个体的比特分布来预测下一代个 体,一方面可以从父代个体中继承有用的全局信息,另一方面,相对于种群递增 学习算法(Population-based Increasing Learning,PBIL)[83]根据父代种群中所有 个体的分布建立唯一的概率向量导致生成的子代重复率高、多样性差的缺点, MBDE 只选部分父代个体进行概率估计,可以为不同的个体建立不同的概率估 计向量,从而提高种群的多样性,避免由于次优解群集导致的早熟收敛。
u G , if rand () CR j Ir G vij ijG pij , otherwise
(2.2)
G 其中 vij 为候选解 viG 的第 j 维元素;rand () 是 [0,1) 之间的均匀随机数,CR 是
; Ir 是 [1, N ] 之间的随机整数,对于同一个体 0, 1 之间的常数,称为“交叉概率” 的不同维度, Ir 保持唯一。 从公式(2.2)和图 1 可以看出,变异个体 uiG 中至少有一个元素被继承到新的 候选解中,因此,DE 可以较好地保持种群的多样性。
1 0.9 0.8 0.7 0.6 100,111 010 110
S'(x)
0.5 0.4 0.3 0.2 0.1 001 0 -F 000,011
101 1-F
0
0.5
1
F
1+F
x
图 2.8 MBDE 概率估计算子(F=2) 表 2.1 不同父代比特组合情况下概率向量的取值
prG 1, j
[83, 84] Algorithm, EDA) 是遗传算法和统计学习的结合, 通过统计学习的手段建立
解空间内个体分布的概率模型, 然后对概率模型随机采样产生新的群体,如此反 复进行,实现群体的进化。 为了克服 DBDE 算法由于 S 函数定义域不对称使得转换之后取 “1” 和 “0”
的概率不对称从而导致算法搜索不平衡,影响算法的优化性能的缺陷,受 EDA 和 DBPSO 算法的启发,本文引入“概率预测分布”的概念,将 EDA 和 DE 算法 结合起来, 同时对 S 函数进行修正, 提出了一种基于概率预测更新机制的改进二 进制 DE 算法(Modified Binary DE,MBDE) 。 2.1.1 算法原理 (1)概率预测算子 MBDE 算法提出了一个 “概率预测算子” 对父代个体的比特分布进行建模, 建立父代个体的概率分布向量 f piG , 然后利用该概率向量进行随机采样, 生成
uiG piG
r CR j Ir
uiG 1 piG 1
true false
uiG 2 piG 2
false true
… … … … …
G uij
G pij
…… ……
G uiN G piN
false false
G pij
true true ……
G uiN
viG
uiG 1
uiG 2
图 2.1 DE 交叉算子示意图
x1
总的来说, DE 算法的进化流程如图 2.3 所示, 即通过变异算子来探索新解, 利用交叉算子进行局部开发, 利用贪婪选择策略进行保优,使种群向最优区域靠 拢。因此,DE 算法具有较好的全局收敛性。
初始种群 父代 变异 交叉 选择
图 2.3 DE 进化流程
在 DBPSO 算法[80]中,S 函数相对于粒子位置和速度更新的范围是对称的, 通过 S 函数转换之后的概率范围同样也是对称的。因此,DBPSO 算法采用 S 函 数作为实数空间到二进制空间的映射有其合理性。然后,对于二进制编码 DE 算 法而言, 变异算子生成的临时实数变异向量如果作为 S 函数的自变量, 其取值范 围不是对称的,因此,在二进制 DE 算法中直接套用 DBPSO 算法的转换方法显 然是不可行的。 在进化算法中, 父代个体在搜索空间中的分布情况对于生成子代个体,指导 算法向更优区域搜索具有重要意义。分布估计算法( Estimation of Distribution
G G G uij prG 1, j F ( pr 2, j pr 3, j )
(2.Leabharlann Baidu)
G G G 其中 uij 是变异个体 uiG 的第 j 维元素; prG 1 , pr 2 , pr 3 为第 G 代种群中 3 个互
异的个体,并且 r1 r 2 r3 i ; F 是实数常量,称为“缩放因子” ,其取值范围 一般为 F 0, 2 。 (2)交叉算子 在进化算法中,交叉也称为“重组” ,即将多个父代个体按照一定的规则进 行交叉组合,实现局部开采。DE 利用交叉算子生成新的候选解 viG ,称为“试验 个体” 。DE 常用的交叉方式为二项式交叉,如公式(2.2)所示。
0 0 0 0 1 1 1 1
prG2, j
0 0 1 1 0 0 1 1
prG3, j
0 1 0 1 0 1 0 1
uij G
0 -F F 0 1 1-F 1+F 1
f(uij) F=0.5 0.0474 0.0025 0.5000 0.0474 0.9526 0.5000 0.9975 0.9526 F=1.0 0.1192 0.0025 0.8808 0.1192 0.8808 0.1192 0.9975 0.8808 F=2.0 0.2315 0.0025 0.9734 0.2315 0.7685 0.0266 0.9975 0.7685
G uij
0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1
注:0/1 表示可能取 0 也可能取 1
(2)交叉算子 MBDE 算法保留了标准 DE 算法中的交叉算子,不同的是,标准 DE 算法中 交叉操作中个体都是浮点编码的个体,而在 MBDE 算法中,该算子是将二进制
编码的父代个体 piG 与概率预测算子生成的临时变异个体进行交叉,将父代个体 中的有用信息继承到子代个体 viG 中,如公式(2.13)所示。
G , if rand () CR j Ir uij v G pij , otherwise
G ij
(2.13)
(3)选择算子 MBDE 同时也保留了标准 DE 算法的选择算子, 通过贪婪选择将最优个体保 存到新一代种群中,指导算法向最优区域搜索。 2.1.2 算法流程 MBDE 算法利用概率估计算子生成二进制变异个体,利用交叉算子将变异 个体与父代个体进行交叉生成试验个体, 然后根据贪婪选择策略保留试验个体与 父代个体之间的优胜者作为子代个体进入新种群,实现种群的更新,其详细流程 如图 2.9 所示。 Step 1: 设置算法控制参数:交叉概率 CR ,缩放因子 F ,跨度系数 b ,种群 规模 NP ,最大迭代次数 Gmax ;设种群代数计数器 G 0 ; Step 2: 0 0 随机初始化二进制种群 P p10 , p2 , , pi0 , , pNP ,其中 pi0 0,1N ,