近年来万方数据&一些学者提出了很多方法来改善*4
好的全局探索能力&
以期既能快速收敛到最优解附近&又能有比较好的逼近精度9但是同一个体使用两种变异方式&导致算法的计算复杂度增加&算法的收敛速度受到影响&同时该算法对初始参数敏感9
=!双群进化规划算法流程
为了平衡算法的探索和搜索能力&使种群既能够从局部极值的邻域跳转到全局最优解的邻域&又能够在全局最优解的邻域内以高的精度进行搜索&本文提出一种双群进化规划算法9它是将种群按照一定规则划分为两个子群>+和>1<>1子群使用了较大的振荡的高斯变异算子!1&因而该子群具有良好的全局探索能力&在局部极值点的邻域内能够良好地逃逸<>+子群使用了递减的高斯变异算子!+&小的变异算子确保子群能够以很高的精度找到子群所在的局部的极值<该方法就好像有粗(细两个镜头的显微镜&
粗镜头用来在大范围内寻找感兴趣的目标&而细镜头则用来对找到的目标仔细观察&因此&称>1为粗调子群&>+为细调子群&!1为粗调算子&!+为细调算子<通过种群的重组可实现子群间的信息交流<算法流程如下#
><参数初始化<设置种群个体数目1$1取为偶数%&随机竞争个体数目?&最大进化代数@@:C&选取高斯变异算子标准差!$
&设置种群进化代数AB$&设置进化终止条件’!<
种群初始化<在问题的可行解空间中随机产生1个个体作为初始种群>$$%’
<<终止进化判断<满足&停止进化&输出计算结果’否则&转步L’
#
在本文中&严格区分探索$GC87TG%和搜索$的涵义&称之为探索JG:T&K而在种群S%种群到达此前未曾到达过的位置I
所9在位置的附近进行局部寻优&称之为搜索9
<
大家好好利用
#期
王向军等$一种双种群进化规划算法
M<?
随机选取1!其它个体组成种L<!个个体组成子群>+"群>1#
变异产生后代<子群>+中的个体按照如下方式进行#<变异$
%A&
+
如下方法进行处理$
如果则如果则
%&%&"C1DBC1HI1I+I+EI"%&%&"&C1DB!HC1IF%1I+I+EI%&%&"C1DBC1,I1I+I+EI#%&%&"&C1DB!,C1IF%1I+I+EI
%A&
%A&
%A&
%A&
%A&
%A&
%A&
%A&
%A&
%A&
%A&
%A&
%&%%&?%&M%&"
C
%A&
+
%&+DBC
!%A&
+
%A&+%&+E"%A&
+%&>%&!
式中"$""为一服从1%!
%A&
&分布的高斯白噪声"
%GCFA&!!I+B$#
后产生的后代群体称为>D+<
式中"’为解空间在第I维的取值约束条,HI"I(
%A&
重复使用式%&&"直到C1%&件">"-(<%"D$$%I$’I+
式中"其选取与预期的求解精度有关<>+经变异#为一常数"
’,H<"(
子群>1中的个体按照如下方式进行变异$
C%A&%+DBC%A&%A1&1%+&E"&
1
%<&式中""%A&
为一服从1%$"!%A&11
&
分布的高斯白噪声"!%A&
1BG%J
AE$
@%@:C
F:TKJAE%>]G&&E>&
L&GB
L
%#
&式中"H为常数"代表种群在解空间中进行大范围搜索的次数"6为解空间在各个维的宽度<>1变异后产生的后代群体称为>D1<
子群高斯变异算子标准差随进化代数演变过程如图>"图!所示<
%<重组<>+">D+">1">D1组成临时种群>E
"
计算>E中1个个体的适应度函数"
使用随机?竞争法则"选取排在前的个体组成新的种群>%AE>&
#
?<ABAE>"
转步<
<图>!!%A&
+
随进化演变过程图!!!%A&
1
随进化演变过程
在使用X*4对函数进行优化时需注意两个
问题$
%>
&如果函数为多维"对于每一维的高斯变异算子应独立#
%!&算法使用很大的高斯变异算子!1
"因此变异后的子代可能超万方数据出问题的可行解空间"本文使用
II!数值仿真
为了比较X*4算法的性能"
我们用此算法与*4’?(算法)4*4算法’M(
同时进行函数优化以考察
算法的性能<在本文算法中参数选取如下$#B$^$>"B>$$<在函数优化过程中"各算法均有1BL$"B!#"@@:CB
#$$$<测试函数的表达式)函数维数以及函数的定义域分别如表>所示"
各函数的进化计算过程如图<%:&"%
V&所示<其中"横坐标表示进化代数"纵坐标表示函数值%也是进化过程中进化算法所使用的适应度函数&<
表;!测试函数
函数
维数1定义域
1
&>B%C+
!<$
%F>$$">$$
&1+B>1
+
&!
!B%%%C
I&<$%F>$$">$$
&1+B>IB>
1
&<BF+JAE
!$%$"#$$
&1+%C
B>1
&LB%*
C+!
F>$K7J%!$C+&E>$+!$
%F#^>!"#^>!
&1+B>
&#BF!$GCI*F$^
F!$%>1
F<!"<!
&1GCI
1K
7J%!$C+
!
&+B>
+E!$_GCI%>&&%B
LC!
>F!^>CL
>E<%
>
EC>C!F!%F#"#
&1LC!!ELCL!
从图<可以看出"在对函数进行优化的时候"