种函数优化问题的混合遗传算法文档格式.docx
《种函数优化问题的混合遗传算法文档格式.docx》由会员分享,可在线阅读,更多相关《种函数优化问题的混合遗传算法文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
![种函数优化问题的混合遗传算法文档格式.docx](https://file1.bdocx.com/fileroot1/2022-10/11/fc29c7e6-29b4-415a-a642-74284306db46/fc29c7e6-29b4-415a-a642-74284306db461.gif)
PENGWeiLUXi-cheng
(DepartmentofComputerChangshaInstituteofTechnologyChangsha410073)
Abstract Toovercometheproblemofslowconvergencebeforethegeneticalgorithms(GAs)reachtheglobaloptima,itisaneffectivewaytocombinetheconventionallocalsearchalgorithmswithGAs.Anewhybridalgorithmthatincorporatestheflexiblepolyhedronmethodintotheorthogonalgeneticalgorithm(OGA)ispresentedinthispaper.Theexperimentsshowedthatitcanachievebetterperformancebyperformingglobalsearchandlocalsearchalternately.Thenewalgorithmcanbeappliedtosolvethefunctionoptimizationproblemsefficiently.
Keywords Geneticalgorithm,flexiblepolyhedron,orthogonalcrossover,functionoptimization.
遗传算法(geneticalgorithms)通过模拟生物进化的途径来在问题的解域中定向搜索最优解,在组合优化、机器学习、自适应控制、多目标决策等领域中有许多应用.对于传统方法较难求解的一些NP问题,遗传算法往往能得到更好的结果.但对传统方法已能较好解决的问题(如一般的非线性优化问题),它并不显示较强的优势.原因在于,遗传算法对问题特定的知识(如梯度、Hessian阵、某些定理等)利用较少.它主要采用群体搜索技术,通过对解的不断组合、随机改变以及对候选解的评估和选择来完成求解过程.在达到全局最优解前,它尚存在收敛慢的问题.设计遗传算法时往往需要在其通用性与有效性之间折衷.设计针对问题的特定遗传算子,可以更有效地求解问题,但缺乏通用性.另一种途径是将遗传算法与问题领域中一些传统的寻优方法(如爬山法、模拟退火法、牛顿法等)结合起来,可在保持算法一定的通用性时提高算法的效率.这类混合算法的基本框架如图1所示.
图1 混合遗传算法的基本框架
本文考虑一类非线性函数优化问题,即
minf(x) x∈D
其中f(.)是n元连续函数,D是Rn的有界子集.文献[2]中探讨了一种将拟牛顿法与传统GA结合起来用于求解上述问题的途径.由于拟牛顿法需求函数的一阶导数,因而该方法的通用性受到一定的限制.本文探讨将可变多面体法(flexiblepolyhedron)与GA相结合的算法,它只利用函数值进行搜索,因而适用范围更广.可变多面体法即Nelder-Mead单纯形法,对于一般的优化问题,能较快地逼近最优解,具有较强的局部搜索能力.但它对初始解的构成具有较强的依赖性,算法执行过程中难于发现新的可能存在最优解的区域.通过将它与GA相结合,一方面可以利用其局部搜索能力,另一方面可通过GA来不断“发现”新的更有希望的搜索区域,并动态调整可变多面体法的搜索方向,从而使算法具有更好的灵活性,也使算法更易于并行化.实验表明,对于求解上述非线性优化问题,混合法(以下称为H-GA)具有比传统GA和可变多面体法都好的性能.
本文第1节给出H-GA的算法描述,第2节给出实验结果和几种算法之间的性能比较,最后是总结.
1H-GA算法
1.1编码方式
编码的实质是在问题的解空间与算法的搜索空间之间建立一个映射.传统GA一般采用一种将实数空间离散化的二进制编码方式[1].这种方式存在编码长度影响求解精度、操作费时、不直观等缺点,因而提出了实数的直接编码方式并表明可以获得更好的性能[3,4].在实数编码方式下,每个个体用一个n维的实向量来表示,这种方式具有直观、易操作的优点,且可以针对它设计非传统的交叉算子.本文采用此编码方式.
1.2交叉和选择操作
交叉操作涉及父本的选择配对机制和交叉算子.配对通常采用随机配对方式.为了维持群体的多样性,还可有选择地配对.配对方式能影响较优模式在群体中的扩散速度.为了防止算法的不成熟收敛(prematureconvergence),通常不希望较优模式在群体中过快地扩散.为此,我们采用一种近邻配对原则[5],即对群体中的第i个个体,若上一次迭代与之配对的是第(i-1)(modN)个个体,则本次迭代用第(i+1)(modN)个个体与之配对,N为群体的大小.这种配对方法不仅可避免较优模式过快地扩散,而且符合遗传算法细粒度并行模型的要求,易于获得较大的并行度.
正交遗传算法(orthogonalgeneticalgorithm)在非线性优化问题及其他组合优化问题中已显示出其有效性
[5,6],我们的算法采用了正交交叉算子.由两个父本交叉操作产生一组个体,从新个体和两个父本中选择最优的进入下一代群体(Elitist策略).由于采用局部选择而不是全局选择,既在一定程度上保持了群体的多样性,又消除了算法在并行实现时的通讯瓶颈.
设两个父本分别为P和Q,用于实数编码的正交交叉操作[5]主要包括:
(1)混合交叉(blendcrossover):
X1[i]=P[i];
X2[i]=Q[i];
X3[i]=r*P[i]+(1-r)*Q[i]),i=1,2,...,n
r为一参数,0<r<1.这里取r=0.5;
(2)用X1,X2和X3按正交表L9(34)产生9个新个体并分别计算它们的适应度值;
(3)按照正交试验方法计算最佳水平组合并产生对应的第10个个体,计算其适应度值;
(4)从X1,X2,X3和新产生的个体中选择最好的两个个体取代P和Q.
1.3变异操作
在实数编码方式下,变异操作对个体X的每个分量X[i]作用一个随机偏差量,即
X′[i]=X[i]+δ,i=1,2,...,n
在进化规划(evolutionaryprogramming)和进化策略(evolutionarystrategy)[7]中,广泛采用了高斯变异算子,用正态(高斯)分布的随机变量来作为变异操作中的偏差量,即δ=σ*N(0,1),N(0,1)为标准正态随机变量.算法中令σ随代数增加而逐渐减少,如可令σ=MUT-C/generation,其中MUT-C为一常数,generation为迭代的代数.文献[8]中亦采用了类似的将GA的混合交叉算子与高斯变异算子相结合的途径.由于在正交交叉算子中已包含了混合交叉操作,因而正交遗传算法优于该算法.
1.4局部搜索
可变多面体法用(n+1)个n维欧氏空间中的顶点来构造搜索过程中的多面体,我们选取(n+1)个相邻的个体作为初始顶点(n<N-1).可变多面体法包含下列几种操作[9]:
(1)找出(n+1)个顶点中函数值最大及最小的点Xh和Xl,然后找出去掉Xh后的由n个顶点构成的多边形的形心Xc;
(2)通过反射操作得到反射点Xr:
Xr[k]=Xc[k]+a*(Xc[k]-Xh[k]),其中X[k]为X的第k个分量,a为反射系数;
(3)若f(Xr)<f(Xl),则执行扩大操作,得到Xe:
Xe[k]=Xc[k]+r*(Xr[k]-Xc[k]),其中r>1为扩大系数;
(4)若对多边形中除去Xh外的任一顶点Xi,均有f(Xr)>f(Xi),则执行收缩操作,得到Xs:
Xs[k]=Xc[k]+b*(Xh[k]-Xc[k]),其中0<b<1为收缩系数;
(5)若f(X
r)>f(Xh),则使所有点向最小点靠近,即令Xi[k]=Xl[k]+0.5*(Xi[k]-Xl[k]),其中Xi[k]为第i个顶点的第k个分量;
(6)令Xr,Xe和Xs中最好的点代替Xh.
1.5终止准则
算法运行停止的条件包括以下的一种或它们的结合形式:
(1)算法收敛到一个不动点或连续几次迭代所获得的改变量小于要求的精度值;
(2)达到算法规定的最大迭代次数、或最大执行时间、或函数的最大调用次数(对解空间的最大采样次数).我们用最大采样次数和最大迭代次数来控制算法的终止.
1.6算法描述
H-GA算法的主要步骤为:
(1)(初始化)随机产生一个分布均匀的初始群体(包含N个初始解);
(2)(交配)按两两配对的原则将群体中的个体配对并执行第1.2节的正交交叉操作;
(3)(变异)群体中每个个体以Pm的概率进行变异;
(4)(局部搜索)采用可变多面体法反复进行局部寻优操作,循环次数由参数Lh控制;
(5)(终止)若终止条件满足,则算法中止,否则转向步骤
(2).
2实验结果
2.1性能比较参数
衡量一个算法的性能的参数包括:
(1)最终解的优劣度或精确度.最终解的优劣度通过误差值来度量.误差值定义为[2]:
其中Xi为算法最终解的第i个分量,X*i为实际的全局最优解的第i个分量,wi为第i个分量的权值,它反映了第i个分量的取值范围大小.
(2)获得最优解的概率.可以用算法多次运行中成功得到最优解的次数来作为其估计值.当群体中最好的解达到一定精度时,认为算法得到最优解.
(3)计算时间.在保证解的一定精确度的条件下,计算时间越少,采样点越少,算法的性能越好.我们采用函数被调用的次数(采样次数)和实际的运行时间来评价.
2.2性能比较
我们用实验的方法来比较正交遗传算法(OGA)和H-GA算法的性能.OGA算法采用与H-GA算法相同的交叉和变异操作.在实验中,我们选择了两个不同性质的函数:
(1),-5≤Xi≤5,i=1,2,...,n.这个函数在全局最小值周围有大量的局部极小值.全局最小值点为(0,0,...,0),相应最小值为-4n.
(2)一般Rosenbrock函数:
f(X)=(100*(Xi+1-X2i)2+(1-Xi)2),-5≤Xi≤5,i=1,2,...,n
函数的全局最小值点为(1,1,...,1),相应最小值为0.文献[10]中采用传统GA求解了n=2时的问题.在Rosenbrock函数曲面山谷中的点的最速下降方向几乎与到函数最小值的最好方向垂直,因而传统算法(如最速下降法)较难求解此问题.实验中我们发现,在高维情况下传统GA难以高效地求解该问题.可变多面体法在大部分试验中均未求得满意的解.
对函数
(1),我们在n=50和n=100的情况下将各个算法分别运行50次.每次运行均记录下算法在不同采样次数时的状态.群体大小分别设为100和150.在H-GA算法中,为简单起见,设每次迭代中可变多面体法的循环次数L为群体大小.应用中可根据函数特性等调整循