自适应小生境遗传算法的性能分析1李明林(福州大学机械工程及自动化学院 福建福州 350002)E-mail:lml_006@摘 要:本文提出一种改进的维持物种多样性的小生境实现技术——自适应小生境遗传算法。
该算法以Mahfoud提出的确定性排挤策略为基础,采用数值编码,并结合算术交叉、非均匀变异和高斯变异、自适应变异概率。
经过实验分析,验证了该算法能有效地、自适应地形成小生境进化环境,并具备相当的收敛速度和相当的求解精度。
关键词:小生境,自适应,遗传算法,多态优化,排挤1 引言作为一种模拟生物在自然环境中遗传和进化过程的自适应全局优化搜索算法,遗传算法以其明显优于传统优化算法的鲁棒性、自适应性、全局优化性和隐含并行性广泛地用于求解各种工程优化问题。
近年来,人们特别关注发展用于多目标优化、多峰值函数优化与组合优化问题的小生境遗传算法[1]。
观察各种小生境的实现方法,可看出其共同点都是为了有效地维持群体的多样性。
而其差别可归纳为两种基本类型:一种是将连续的、无限的搜索空间划分为离散的、有限的小生境区域;另一种则是对种群的适应度作适当的修整以抑制超级个体的复制概率来维持进化过程中的群体多样性。
前一种类型以De Jong 提出的基于排挤机制(Crowding)的小生境实现方法为代表(1975),后一种类型以Goldberg等提出的基于共享机制(Sharing)的小生境技术为代表(1987)。
在此基础上,各种各样的小生境技术不断出现。
我们项目的研究主要是对一些有代表性的技术进行性能分析,为小生境遗传算法的实际工程应用提供有用的设计依据。
本文首先在深入理解Mahfoud提出的基于确定性排挤机制(Deterministic Crowding)的小生境思想的基础上,以实验的手段论证其思想的有效性和正确性。
在实验过程中,不断修改程序的各个组成部分,并用于函数优化测试。
最后发现一种程序组合具有较明显的特点。
它可维持种群的多样性,而且可自适应形成大小、形状各异的小生境。
因此将它称为自适应小生境遗传算法(简称SNGA)。
本文首先介绍确定性排挤机制的基本思想和算法结构,结合文献[2]的遗传算子编写了SNGA类库函数。
其次结合三种较为典型的数值优化测试函数,对SNGA进行实验分析。
最后对SNGA进行总结讨论。
2 确定性排挤机制和SNGA1970年,Cavicchio提出了基于预选择机制(Preselection)的小生境技术,其基本思想是父代个体经过遗传操作后生成子代个体,父子个体相互竞争,适应度高的进入下一代群体中。
DeJong于1975年一般化了Cavicchio的预选择机,在其博士论文提出了基于排挤机制(Crowding)的小生境技术。
即:在父代群体中选取部分个体作为小生境主体,在新生子代群体中与小生境主体相似的个体不得进入下一代群体。
他们声称这两种方法都可在群体中形成小生境的进化环境,并维持了群体的多样性。
1本课题得到福建省教育厅(JB04025)项目资助。
1992年Mahfoud [3]对Preselcetion 和Crowding 进行比较深入的研究,指出在实际应用中,这两种方法并不象其作者所声称的那样能成功地维持种群多样性。
真实情况是这两种方法所采用的随机替代技术将产生大量的基因漂移,而使算法收敛于局部最优解。
在综合Preselection 和Crowding 两种机制的优点后,Mahfoud 提出了基于确定性排挤机制的遗传算法(简称DCGA )。
并认为该方法可从根本上消除基因漂移。
DCGA 的基本思想是:父代个体经过交叉、变异后生成子代个体,父子之间相似的个体进行竞争,适应度高的进入下一代群体。
DCGA 的主要思想体现在图1所示的第3至第5步骤[4]。
针对数值优化测试函数,本文采用实数型编码,这样个体的基因型也是测试函数的表现型——变量,因此无需进行编码和解码操作;个体的适应度函数为测试函数的函数值;交叉算子采用均匀算术交叉;变异算子采用非均匀变异和高斯变异向结合。
算法的控制参数只包括种群规模m 和最大进化代数T ,其余交叉概率为1.0,即每个父代个体均参与交叉;变异概率根据进化代数自适应变化。
而为了自适应形成小生境,本算法仅对群体按适应度进行降序排列。
SNGA 程序结构如图1所示。
假设两父代个体的基因分别为X 1、X 2,经过算术交叉后子代个体的基因分别为X 1C 、X 2C。
它们可由下式确定:()()21212111X X XX X X C C αααα−+=−+= ,其中:α为(0,1)内的随机数。
而非均匀变异算子可表示为:()()(2,15.0,,5.0,,=⎩⎨⎧>∆−≤∆+=i if y t X if y t X XCi C i M iαα),其中:()21,⎟⎠⎞⎜⎝⎛Τ−=∆••t yy t α y 为X i C 到函数变量取值上界或下界的距离,t 为进化代数。
高斯变异算子为:⎟⎟⎟⎠⎞⎜⎜⎜⎝⎛−•∑+==61216j j yX XC iM iα上述遗传操作中,交叉算子可搜索两个父代个体之间的各种基因型,适用凸区间;变异算子可搜索父代个体周围小区域的基因空间,适合细化搜索。
交叉运算和非均匀变异运算在每对父代个体中执行;而高斯变异运算则根据变异概率进行——即此前生成的0、1区间的随机数小于变异概率时,父代个体发生高斯变异。
变异概率由下式确定:Tt P m −=0.1 下面我们将根据一些数值优化测试函数来测试SNGA 的性能。
3 SNGA 的性能分析测试函数1: ()()[]10,10,0.70.110.660max22221−∈−+−−+−=y x y x y x f ,该函数有4点等高的峰值660.0,分别为:(3.0,2.0)、(3.5844,-1.8482)、(-2.8051,3.1313)、(-3.7793,-3.2832)。
取遗传控制参数m =200、T =3000。
为观看SNGA 的进化过程,取其中4代群体如图2。
Fig2 some reports of experiment 1测试函数2:()()[][]10,10,001.00.15.0sin 5.0max2222222−∈++−+−=y x yxy x f该函数有无数局部最大值,但只有一个全局最大值1.0,该点为(0.0,0.0)。
在函数的最高峰周围有多个脊,其中离最高峰最近处有一圈极值为0.990284的圆环。
同样取遗传控制参数m =200、T =3000来测试SNGA 的搜索性能。
部分过程如图3。
图3 函数2的搜索过程 Fig3 some reports of experiment 2测试函数3:()[]()[][10,10,1cos 1cos max51513−∈⎭⎬⎫⎩⎨⎧++⋅×⎭⎬⎫⎩⎨⎧++⋅−=∑∑==y x i y i i i x i i f i i ]该函数有760个局部最优点,其中18个是全局最优点,函数值为186.731。
取控制参数为图4 函数3的进化过程Fig4 some reports of experiment 3每个函数连续实验10次。
测试函数1中,SNGA 搜索出了4个全局最优解的区域,4个最优解中最差个体的函数值为659.997138,最长费时5.953秒,而成功率为100%。
测试函数2时,最大点搜索概率是100%,最长费时4.531秒;但最后搜索点总是限于最大点及最近的山脊(0.990284),而搜索过程中曾经出现的次山脊(0.96)在最后时刻总是被淘汰,这不能不说是一种遗憾;再者,由于搜索点是离散点,对于0.990284的连续山脊只能用拟似曲线进行后续处理。
测试函数3,18个最优点为等值最优,18个局部最优中,最差个体的函数值为179.286064,最好个体为186.730909,最长费时5.406秒,搜索最优点所在区域的概率是100%。
4 结论经过实验观测,我们对SNGA的特点归结如下:1) SNGA可自适应形成若干大小、形状各异的小生境。
这是它的优点,因为它无需任何形成小生境的控制参数,如小生境半径、最优个体数等。
这将大大简化算法的设计并方便SNGA与其它技术的混合使用。
2) SNGA的优点也恰恰是它的缺点。
由于它无需任何形成小生境的控制参数,那么在进化过程中,自适应形成的小生境内种群的个数也将是随机的。
个数少的小生境进化结果可能不是很理想,如测试函数3,不是所有的小生境都进化到该区域的最优点。
3) 小生境的形成与其它选择策略的选取有决定性的影响。
本文曾尝试在交叉运算之前如SGA一样采用按比例选择策略和精英选择策略,但最终算法都是仅收敛于单个最优点。
其实,SNGA本来就可以看作是一种选择策略,故在此提醒SNGA的使用要慎重选取其它选择策略。
4) 在实验中,SNGA的控制参数仅包括种群规模m和最大进化代数T。
从适应度进化曲线可看出,最优适应度在很早——如50代前,就已达到全局某个最优点——不是每个小生境都达到最优点。
因此SNGA的运行时间可根据终止条件的改变或其他要求而有所降低。
参考文献1 李明林,陈乐生.小生境遗传算法的研究进展.振动工程学报(2004增刊).V ol(17):643-648.2 李明林.机器人运动学逆问题的遗传算法研究[M].福州大学,2003.3 Samir W. Mahfoud, Niching Methods for Genetic Algorithms. (Doctoral dissertation, University of Illinois at Urbana-Champaign), 1995.4 Pérez-Vázquez, M. E. & Gento-Municio, A.M. & Lourenço, H.R. Solving a Concrete Sleepers Production Scheduling by Genetic Algorithms. (UPF Working Paper Series 2004)Analysis for Self-adaptive Niching Genetic AlgorithmLI Ming-Lin(College of Mechanical Engineering, Fuzhou University, Fuzhou Fujian 350002)AbstractThe paper represents an advanced niching Genetic Algorithm with self-adaptively forming niches to remain the diversity of spaces. Based on Mahfoud’s deterministic crowding concept, the algorithm embodies real-coded, arithmetical crossover operator, nonuniform mutation operator and Gauss mutation operator, and self-adaptive probability of mutation. With several experiences, we found the algorithm can effectively and self-adaptively form niches and that the optimal solutions can be found quickly every time.Keywords:niche, self-adaptive, Genetic Algorithms, multimodal optimization, crowding作者简介:李明林,1977年出生,2003年于福州大学机械工程学院固体力学专业硕士研究生毕业,现为该院力学教研组教师,助教职称,研究领域为机器人控制技术、遗传算法等。