软件学报
JOURNAL OF SOFTWARE
1999年 第2期 No.2 1999



基于可调变异算子求解遗传算法的欺骗问题*
黄　焱1　蒋　培2　王嘉松1　杨敬安2
　　摘要　针对遗传算法GA(genetic algorithm)欺骗问题的某些特点,从理论上对变异算子进行分析,提出了解决GA欺骗问题的一种新的方法.该算法能够在遗传搜索过程中改变变异算子的方向和概率,使变异算子可调,这样可以有效地消除遗传算法中的欺骗性条件,保持群体的多样性,使GA能顺利地收敛到全局最优解.
　　关键词　遗传算法,欺骗问题,变异.
　　中图法分类号　TP18
A Solution to Deceptive Problems in Genetic Algorithm Based on
an Adjustable Mutation Operator 
HUANG Yan1　JIANG Pei2　WANG Jia-song1　YANG Jing-an2 
　　Abstract　　In this paper, some characteristics of GA(genetic algorithm) deceptive problems are discussed, the performance of the mutation operators is analyzed theoretically, and a new method for solving GA deceptive problems is proposed. The proposed method can change the direction and the possibility of the mutation operators in the process of the genetic searching, making mutation operators adjustable. In this way, GAs can eliminate effectively their deceptive conditions, keep the diversity of population, and thereby converge conveniently on global solutions.
　　Key words　Genetic algorithm, deceptive problem, mutation
　　欺骗问题是遗传算法(Genetic Algorithm,简称GA)研究中的一个热点．根据模式定理：低阶、短距的优模式在遗传子代中将以指数级增长,最终,不同的最优模式相互组合,从而得到最优解［1～3］.但是,对于欺骗问题,复制算子受欺骗性质条件的“迷惑”,使最优低阶模式在组合后形成非最优高阶模式,从而使GA偏离最优解［4］.由于欺骗问题的存在,许多问题被归结为GA难题,使GA的应用受到一定的局限.本文提出一种基于可调变异算子的方法,即在遗传搜索过程中通过改变变异算子的方向和概率来求解GA欺骗问题.这种方法能够在消除GA中的欺骗性条件的同时保持群体的多样性,使GA可以顺利地收敛到全局最优解.
1　欺骗问题的分析和启示
　　本节通过分析最小欺骗问题来寻求解决GA欺骗问题的方法.由于Ⅰ类最小欺骗问题(即f(01)>f(00)的情况)只要在初始群体中最优模式的初始样本数非零,则该问题总是能够收敛到全局最优解,因而Ⅰ类最小欺骗问题并非GA-难题［5,6］.所以,本文将只讨论ⅠⅠ类最小欺骗问题,即f(00)>f(01)的情况.
　　设有4种二阶模式,其平均适应值分别为f(11)=1.1,f(10)=0.9,f(01)=0.5,f(00)=1.0.其中,模式11为最优模式,而由于f(*1)=0.8<f(*0)=0.95,使得该问题具有欺骗性.很明显,这是由于f(01)的值太低才出现了此种情况.如果f(01)>0.8,则f(*1)>0.96,该欺骗性就消失了.此外,如果去掉模式01,剩下的3种模式就不存在欺骗性了.但是,通过改变某些个体或模式的适应值来避免问题的欺骗性是不现实的；而在进化过程中不断剔除适应值较小的个体,以减小甚至克服问题的欺骗性,则是一种值得尝试的方法.
　　下面给出一个三阶完全欺骗问题,进一步说明这种特性.
f(000)=29,　　f(001)=26,　　f(010)=22,　　f(011)=0, 
f(100)=14,　　f(101)=1,　　　f(110)=2,　　f(111)=30. 
在上述问题中同时存在3种欺骗条件：(1) f(0**)>f(1**);(2) f(*0*)>f(*1*);(3) f(**0)>f(**1).依次剔除低适应值模式011,101,110等之后,各单阶模式适应值的变化如表1所示.
表1　三阶完全欺骗问题依次剔除最劣模式后单阶模式适应值的变化情况
剔除的串f(1**)f(0**)f(*1*)f(*0*)f(**1)f(**0)所满足的欺骗条件
　11.7519.2513.517.514.2516.75(1),(2),(3)
01111.7525.671817.51916.75(1)
001,10115.3025.6718232816.75(1),(2)
001,101,1102225.6726232816.75(1)
001,101,110,1003025.672627.52825.5(2)
001,101,110,100,0103027.53027.52829(3)
001,101,110,100,010,001302930293029
2　可调变异算子的构想
　　根据上节的分析可以得出,逐步删除群体中的劣模式或者劣个体可以最终消除问题中的欺骗性,但同时该方法严重地破坏了群体的多样性,因而容易造成GA的不成熟收敛.如表1中的数据所示,只有当剔除所有小于26的个体之后,才能将该问题转化为非欺骗问题,而此时子解空间中只剩下两种模式,仅占初始解空间的1/4.此时要保证杂交和变异的后代属于该子解空间是不容易的,必须经过不断杂交和变异才能实现.而且由于染色体编码的不同,存在着盲目性,如最优模式111、次优模式000及更次的模式001,经由000和001不可能杂交进化到模式111,只能靠变异［7］.取变异概率为0.001,则需要O(109)次变异才能产生最优模式111.显而易见,这种方法虽然直观,但很不现实.
　　通常,变异应该对问题的广域搜索和局域搜索都有促进作用.除了改变问题中已有的遗传物质之外,还能够引入新的遗传物质；而且对于同一问题可以设计多个变异算子［8］.可调变异算子就是基于这种思想设计的,它针对染色体中的不同基因,根据其不同的基因值,在进化过程中调整其变异概率和变异方向：1→0或0→1.
　　可调变异算子具有方向性和概率可调的性质,需要解决的问题是如何确定其变异方向和可调概率的大小.在进化过程中,获取的信息只能来源于进化过程本身,也就是只能从先辈代的群体和适应值特点里提取所需的信息来确定可调变异.而变异可以使染色体中的单个基因发生变化,所以,提取的信息也应是单个基因,即一阶模式的信息.但是,对于欺骗问题,其低阶模式也具有欺骗性,而且其欺骗性隐藏在进化的每一代中.上述三阶欺骗问题,许多代的群体里都具有欺骗条件,例如f(0**)>f(1**),如果将具有欺骗性的信息f(0**)>f(1**)提取出来,就可能会由此做出错误的决定：将变异方向定为1**→0**,并相应地增大其变异概率,使下一代中0**模式的个体增加,反而使GA加速偏离最优解.
　　回顾本节所描述的思想：设适应值下界为f－inf,“剔除”小于f－inf的劣势串,从而使整个问题的欺骗性减小.对于某一确定位置的一阶模式,设开始时f－inf就大于一定的数值,如取f－inf=2,在不断增加f－inf的过程中,该一阶模式满足欺骗性条件的次数就会小于不满足的次数.利用这种特点,在确定变异方向时,对父代群体设定一适应值下界f－inf,其值可以取群体平均适应值f－avg.
　　这里,所谓“剔除”并不是将小于f－inf的个体淘汰,这样会严重损害群体多样性,而是将所有个体都保留在群体中.只是在比较两种同一确定位置的一阶模式时,仅在大于f－inf的串的子解空间中进行比较,得到一阶模式的比较信息,如f(*1*)是大于还是小于f(*0*),从而决定第2位基因的变异方向是0→1,还是1→0.至于变异的可调概率则取决于f(*1*)大于或小于f(*0*)的程度. 
3　最小欺骗问题的演算
　　本文引用传统的最小欺骗问题来演示可调变异算子的效果.在传统的研究中由于仅考虑复制和杂交算子的作用,故有下列等式：
　　　　(1)
　　　　(2)
　　　　(3)
　　　　(4) 
式中Ptij是模式ij在第t代中样本的比例,―是当前代群体平均适应值,可用下式表示.
―=Pt11f(11)+Pt10f(10)+Pt01f(01)+Pt01f(01)+Pt00f(00). 
式中P′c=(δ/(L-1))Pc,Pc是杂交概率,L为串长,δ为定义距.
　　使用第1节中的数据,取Pc=1.0,δ/(L-1)=1.0,此时对于该问题具有最大欺骗性.早期的研究已显示,当设定初始态P0ij=0.25时,有收敛到11的好的结果;但当设定一非常困难的初始条件,如P000=0.7,P010=P001=P011=0.1时,结果呈发散［2］.为与稍后带可调变异的GA进行比较,这里将呈发散的计算结果表示成如图1所示.

　
初始代P000=0.7,P011=P010=P001=0.1
图1　对最小欺骗问题一般GA解法的数值结果 
一旦在GA中引入可调变异算子,变异的作用就不能忽视了.下面的符号Rtij表示在t代经过复制、杂交后,变异前的模式iji的样本比例.公式(1)～(4)仍然适用于这种算法,仅需将等式左边Ptij分别替换为Rtij.为不失一般性,这里列出当Adjust［i］＞0,i=0,1时,经可调变异后模式ij的样本比例的变化等式.为简化公式,令
P′m=(1+c×｜Adjust［0］｜)Pm,　　P″m=(1+c×｜Adjust［1］｜)Pm, 
则有如下公式:
Pt+111=Rt11(1-2Pm)+Rt10(1-Pm)P″m+Rt01(1-Pm)P′m+Rt00P′mP″m,　　　　(5)
Pt+110=Rt10(1-Pm-P″m)+Rt11(1-Pm)Pm+Rt00(1-Pm)P′m+Rt01PmP′m,　　　　(6)
Pt+101=Rt01(1-P′m-pm)+Rt11(1-Pm)Pm+Rt00(1-Pm)P″m+Rt10PmP″m,　　　　(7)
Pt+100=Rt00(1-P′m-P″m)+Rt10(1-P″m)Pm+Rt01(1-P′m)Pm+Rt11P2m.　　　　(8)
引用公式(5)～(8)对该最小欺骗问题进行演算,其结果如图2所示.
 
初始代P000=0.8,P010=0.0,P011=P001=0.1
图2　对最小欺骗问题使用带可调变异的GA解法的数值结果
　　从图1和图2的比较可以看出,对于最小欺骗问题,在比较困难的初始代前提下,未使用可调变异算子的GA很快就收敛到00；而使用了可调变异算子的GA则能够顺利地收敛到11.特别在进化过程中,可调变异算子能够始终保持群体包含所有4种模式；而一般的GA则受到欺骗性条件的“迷惑”,迅速淘汰了其他3种模式.
　　对于该问题,用许多不同的初始条件和适应值可以观察到类似的结果.但是需要在初始群体中存在能通过杂交构成优化串的结构,且适应值非零,初始样本比例非零.否则,等不到可调变异算子产生作用,某种非最优模式就已在群体中收敛,造成GA的早熟.
4　实验与结论
　　通过采用可调变异算子的GA程序对第1节给出的三阶完全欺骗问题进行实验,其结果进一步说明了可调变异算子的作用.该问题相对于最小欺骗问题具有更广泛的代表性,因为它如果不使用可调变异算子,通过随机产生的初始群体就会使GA收敛到000;而使用了可调变异算子以后,则完全避免了问题的欺骗性,顺利地收敛到111.其运行结果如图3所示.图中的虚线表示一般GA运行的结果,而实线则表示使用了可调变异算子的GA的运行结果.


图3　三阶完全欺骗问题的试验结果
　　本文基于变异算子及欺骗问题的自身特点,研究如何解决GA欺骗问题,提出了具有方向性和可变概率的可调变异的思想,并以最小欺骗问题和三阶完全欺骗问题为例,演示了可调变异算子的效果.
　　通过上述的研究和试验表明,利用可调变异算子,可以有效地消除遗传算法中的欺骗性条件,并保持群体的多样性,使得遗传算法能够顺利地收敛到全局的最优解,这种可调变异的方法为解决GA欺骗问题提供了一种灵活、方便的手段.
作者介绍：黄焱,女,1969年生,博士生,主要研究领域为最优化方法,数值代数.
　　　　　蒋培,1969年生,博士生,主要研究领域为进化理论,机器学习.
　　　　　王嘉松,1936年生,教授,主要研究领域为数字信号处理的理论、算法及其应用软件.
　　　　　杨敬安,1943年生,教授,博士生导师,主要研究领域为计算机视觉,模式识别,人工智能.
本文通讯联系人：蒋培,合肥 230009,合肥工业大学315信箱
作者单位：黄　焱　王嘉松　南京大学数学系　南京　210093
　　　　　蒋　培　杨敬安　合肥工业大学人工智能研究所　合肥　230009
参考文献
　［1］Holland J H. Adaptation in Nature and Artificial Systems(2nd ed.). Cambridge: MIT Press, 1992
　［2］Goldberg D E. Genetic Algorithm in Search, Optimization, and Machine Learning. Reading, MA: Addison-Wesley, 1989
　［3］陈国良,王煦法,庄镇泉等.遗传算法及其应用.北京:人民邮电出版社,1996(Chen Guo-liang, Wang Xu-fa, Zhuang Zhen-quan et al. Genetic Algorithm and Its Applications. Beijing: People's Post and Telecommunications Press, 1996)
　［4］Goldberg D E, Bridges C L. An analysis of a reordering operator on a GA-hard problem. Biological Cybernetics, 1990,(62):397～405
　［5］王丽薇,洪勇,洪家荣.遗传算法的收敛性研究.计算机学报,1996,19(10):794～797(Wang Li-wei, Hong Yong, Hong Jia-rong. On the convergence of genetic algorithms. Chinese Journal of Computers, 1996,19(10):794～797)
　［6］Goldberg D E. Computer-aided gas pipeline operation using genetic algorithm and rule learning ［Ph.D. Thesis］. University of Michigan, 1983
　［7］Michael D V. Generalizing the notion of schema in genetic algorithms. Artificial Intelligence, 1991,50(3):385～396
　［8］A C++ Genetic Algorithms Library. Available online at http: ∥lancet.mit.edu/ga/
本文1997-11-04收到原稿,1998-02-11收到修改稿 
