*4算法相对于其它两种改进的进化算法不仅具有更快的收敛速度"而且具有更高的收敛精度9X*4算法的良好性能特别表现在对高维函数的优化上"而且不仅是高维单峰函数%如图<%:&和%Y&所示&"也表现在对高维多峰函数的优化上%如图<%K&"%G&所示&<而对于低维函数"三种算法的优化性能基本相同%如图<%V&所示&<
>1H?!1X
大家好好利用
M<M
计!!算!!机!!学!!报!$$%年
图<!不同函数的进化过程
全局最优解所在的邻域!但是这些个体的变异强度
?!理论分析
在进化规划算法中!如果算法未能以指定精度搜索到全局最优解通常称之为不收敛!但经过分析发现!这种不收敛包含两种情况"
#$由于算法使用了不合适的变异算子标准差>#通常是过小$!导致种群陷入了局部极值不能脱离!因此求解精度不能满足需要!对于这种情况的不收敛在本文中定义为第一类不收敛!也就是平时所说的的早熟收敛%
#$由于算法使用了不合适的变异算子标准差!
万方数据#通常是过大$!种群中的某些个体虽然已经到达了
是如此地大!以至于个体与全局最优解间的距离始终不能足够地小!因此求解精度不能满足需要!对于这种情况的不收敛在本文中定义为第二类不收敛9
设待优化的一维函数如图L所示!假设某一时刻种群中的所有个体到达了函数的某个局部极值点但是还没有任何个体进入区域&!CCC#的附近!>!!’
假设算法的参数!$^>!1BL$!CC>!C$B#F!B!F
那么在传统的进化规划算法中!种群中在C$^#!>B
的概CCC#附近的个体经过一次变异进入区域&>!!’
率为
!F!!
J>’L$(GCCB<^>‘>$IF(!W>^#!$^>F
#$>$
(
>F
#$
大家好好利用
#期
王向军等’一种双种群进化规划算法
M<"
!
J!BGCC’$^<LIF!W$^$$$>!$^$$$>F
$%><
(
$
$%
图L!待优化函数的区域划分
也就是大约平均需要<‘>$
!>
代的进化!才有一个个体从局部极值进入区域"C>!C!#!而这个进化代数对于工程应用来讲实在是太长了!这也是理论上证明了能够全局收敛的*4算法之所以还会陷入局部极值的原因<在此时!种群陷入早熟收敛<
设种群中的某个个体经过有限次的进化后进入区域$C?!C!%!并位于C?附近!此时收敛精度对应的区域为"C%!C?#!而且有!$B$^>!C?FC%B$^$$$>!那么在传统的进化规划算法中个体经过一次变异进入收敛精度对应的区域"C%!C?#
的概率为J!B(
$
F
$^$$$>GCI$F!
!$^>!%
WC’L‘>$FL$>>%因此大约需要平均!#$$次进化才能有获得一个满
足精度要求的个体!这也就是较大的变异算子能够在设定的进化代数内搜索到全局最优解的邻域!但是在设定的进化代数内无法满足精度要求的原因<在此时!种群陷入了第二类不收敛<
假设某一时刻种群中的所有个体到达了函数的局部极值点C#的附近!
在X*4算法中!子群>1的高斯变异算子标准差!以@@:C1
H
为周期做振荡!只要H的取值比较合适!总可以在某个进化代数的时候!1落在">!>^##区间<假设此时!1B>^!!那么子群>1中的以个个体经过一次变异进入区域"C>!C!#的概率为
J>B(
F
>F
>^#GCI$F!&!
>^!!%
WC’$^$"?!$>!%对于一个包含!$个个体的子群而言!
经过一次变异平均就有大约两个个体进入区域"C>!C!#
<设子群>>中的某个个体经过有限次的进化后进入区域$C?!C!%!并位于C?附近<子群>+使用指数递减的高斯变异算子标准差!+!只要选取合适的值!
总可以使!+’$^$$$>!那么个体经过一次变异进入区域万方数据"C%!C?#
的概率为因此大约需要<次进化个体就能进入收敛精度对应的区域"C%!C?#
<正是由于X*4算法同时使用不同大小的变异算子标准差!从而保证种群中的个体既能对变量空间进行分散的探索!又能够对探索到的局部进行充
分的搜索9
!结!论
针对进化规划算法容易早熟收敛的弱点!从平衡进化规划算法的探索能力和搜索能力出发!本文提出了一种双群进化规划$X*4%算法9将种群的进化划分为两个并行的子群同时进行!一个子群使用振荡的高斯变异算子对解空间进行大范围地粗略地反复探索!另一个子群使用递减的高斯变异算子!对粗略寻找到的目标进行仔细地搜索9通过种群的重组实现子群间的信息交流与融合9通过典型算例!测试了X*4算法与一些改进的*4算法的性能!数值仿真结果证明!X*4算法具有更好的性能!而且这种良好的性能特别体现在高维函数的优化中9
参
考文献
a:7P9!1AFa990EGBGH78FUA7E:T;J;JUG@V7TGH78HAEQ:TUAVA=KA:8EGFT:8EGUB7T[J9(***5T:EJ:KUA7EJ7E)GFT:8)GUB7T[J!>""?!M$<%’%"L"?><
+GY:8W0969!+KS8GEZAQ,993AEA@:CWGJAQ
E7VEGFT:8EGUK7E=UT788GTJV7TSAQS8;FEKGTU:AEI8:EUJ9(***5T:EJ:KUA7EJ7E)GF=T:8)GUB7T[J!>""L!#$>%’?<"M!X7TES78WU+9!OT:FEWGEZR99OGEGT:8:J;@@GUTAKEGFT:8EGU=B7T[J:EWJUTFKUFTGWGJAQEY;QGEGUAK:8Q7TAUS@J9(***5T:EJ=:KUA7EJ7E)GFT:8)GUB7T[J!>""!!#$#%’<!?"<<L27QG8R9X990II8;AEQGH78FUA7E:T;IT7QT:@@AEQU7JG8GKUGWUT:HG8AEQJ:8GJ@:EIT7Y8G@9&;YGTEGUAKJ:EW+;JUG@!>""<!!L$>%’!?"<%a:7P9!1AFa9!1AEO99*H78FUA7E:T;IT7QT:@@AEQ@:WGV:J=UGT9(***5T:EJ:KUA7EJ7E*H78FUA7E:T;&7@IFU:UA7E!>"""!<$!%’M!">$!
+7EQ0A=OF7!1F,A=/GE90T:E[AEQY:JGW:W:IUAHGGH78FUA7E:T;
7IGT:U7TQGEGUAK:8Q7TAUS@905&0*8GKUT7EAK:+AEAK:!>"""!8!?$>%’M#"MM$AE&SAEGJG
%$宋爱国!陆佶人9一种基于排序操作的进化算子自适应遗传算法9电子学报!>"""!!?$>%’M#"MM%1GG&9!a:7P99*H78FUA7E:T;IT7QT:@@AEQFJAEQ@