基本差分进化算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基本差分进化算法
(1)初始化。
DE 利用NP 个维数为D 的实数值参数向量作为每一代的种群,每个个体表示为:
X i ,G (i=1,2,……,NP) (1)
式中:i —— 个体在种群中的序列;G ——进化代数;NP — —种群规模,在最小化过程中NP 保持不变。
为了建立优化搜索的初始点,种群必须被初始化。
通常寻找初始种群的一个方法是从给定边界约束内的值中随机选择。
在DE 研究中,一般假定对所有随机初始化种群均符合均匀概率分布。
设参数变量的界限为 )(
)(
U j j L j X X X << ,则:
)(
)(
)(
0,)()`1,0(L j L j U j ji X X X rand X +-∙= (i=1,2,……,
NP ;j=1,3,……,D ) (2)
式中:rand[0,1]——在[0,1]之间产生的均匀随机数。
如果预先可以得到问题的初步解,初始种群也可以通过对初步解加入正态分布随机偏差来产生,这样可以提高重建效果。
(2)变异。
对于每个目标向量 X i ,G (i=1,2,……,NP),基本DE 算法的变
异向量如下产生:
)(,3,2,11,G r G r G r G i x x F X v -⋅+=+ (3)
其中,随机选择的序号r1,r2和r3互不相同,且r1,r2和r3与目标向
量序号i 也应不同,所以须满足NP ≥4。
变异算子F ∈[0,2]是一个实常数因数,控制偏差变量的放大作用。
(3)交叉。
为了增加干扰参数向量的多样性,引入交叉操作。
则试验向量变为:
),...,,(1,1,21,11,++++=G Di G i G i G i u u u u (4)
⎩⎨⎧=+++1
,1,1,G ji G ji G ji X v u )(rnb CR (j) b rand rnbr(i))(rand i r j j CR j b ≠>=≤且如果或者如果 (i=1,2,……,NP ;j=1,3,……,D ) (5)
式中:randb(j)——产生[0,1]之间随机数发生器的第j 个估计值;rnbr(i)∈ 1,2,⋯ ,D ——一选择的序列,用它来确保1,+G i u 至少从1,+G i u ;获得一个参数;CR ——交叉算子,取值范围为[0,1]。
(4)选择。
为决定试验向量1,+G i u ,是否会成为下一代中的成员,DE 按照贪婪
准则将试验向量与当前种群中的目标向量进行比较。
如果目标函数要被最小化,那么具有较小目标函数值的向量将在下一代种群中赢得一席地位。
下一代中的所有个体都比当前种群的对应个体更佳或者至少一样好。
注意在DE 选择程序中试验向量只与一个个体相比较,而不是与现有种群中的所有个体相比较。
(5)边界条件的处理。
在有边界约束的问题中,确保产生新个体的参数值位于问题的可行域中是必要的,一个简单方法是将不符合边界约束的新个体用在可行域中随机产生的参数向量代替。
即:若 )(
1,)(
1,U j G ji L j G ji x u x u ><++或者,那么:
)(
)(
)(
1,)(]1,0[L j L j U j G ji x x x randj u +-∙=+,(i=1,2,……,
NP ;j=1,3,……,D ) (6)
另外一个方法是根据式(6)重新产生试验向量,然后进行交叉操作,直到产生的新个体满足边界约束为止,但这样做效率较低。