配色: 字号:
进化策略
2013-12-10 | 阅:  转:  |  分享 
  
进化策略和进化规划 德国学者Schwefel和Rechenburg美国学者Fogel分别提出进化策略ES和进化规划EP。这三种方法具有共同
的本质,分别强调了自然进化中的不同方面:遗传算法强调染色体的操作,进化策略强调了个体级的行为变化。而进化规划则强调种群级上的行为变
化。现在学术界把遗传算法GA、进化策略ES和进化规划EP通称为进化算法EC。8.1进化算法的早期研究 进化算法起源于20世
纪30年代的通过仿真生物进化过程进行机器学习的研究。早在1932年,Cannon就把自然进化想象为一个学习过程。与自然进化过程的机
制和结果稍微不同是,Cannon不是通过维持一个特定的种群来进行搜索,而是对单个个体反复进行随机试验。到了1950年,Turng认
识到,在机器学习和进化之间存在着明显的关系。1959年,Friedman推测,利用变异和选择的仿真可以设计“思想机器”,并且指出下
棋的程序可以用这种方法设计。在1960年,Cambell猜想:在导致知识扩张的所有过程中,都要涉及“盲目—变化—选择—幸存”的过程
。此后,一些学者逐渐将进化理论用于随机工程控制、机器学习和函数优化等领域。8.2进化策略进化策略(Evolutionary
Strategies)是在1965年由Rechenburg和Schwefel独立提出的。早期的进化策略的种群中只包含一个个体,并
且只使用变异操作。在每一代中,变异后的个体与其父代进行比较,并选择较好的一个,这种选择策略被称为(1+1)策略。进化策略中的个体
用传统的十进制实型数表示,即: Xt——第t代个体的数值, N(0,σ)——服从正态分布的随机数,其均值为零,标准差为σ。
8.2进化策略进化策略的一般算法可以描述如下:问题为寻找实值n维矢量x,使得函数F(x):Rn?R取极值。不失一般性,设此程
序为极小化过程。从各维的可行范围内随机选取亲本xi,i=1,…,p的初始值。初始试验的分布一般是均匀分布。通过对于x的每个分量
增加零均值和预先选定的标准差的高斯随机变量,从每个亲本xi产生子代x’i。通过将误差F(xi)和F(x’i),i=1,…,p进行
排序,选择并决定哪些矢量保留。具有最小误差的p个矢量变成下一代的新亲本。进行新试验,选择具有最小方差的新子代,一直到获得充分解,
或者直到满足某个终止条件8.2进化策略在这个模型中,把试验解的分量看做个体的行为特性,而不是沿染色体排列的基因。可以和GA一
样,假设这些表现型特征具有基因根源,但是它们之间的联系实质并没有被弄清楚,所以我们把着重点放在个体的行为特性上。假设不管发生什么
遗传变换,所造成各个行为的变化均遵循零均值和某个标准差的高斯分布。由于基因多效性和多基因性,特定基因的改变可以影响许多表现型特征
。所以在创造新子代时,较为合适的是同时改变亲本所有分量。8.2进化策略进化策略的最初试验采用上述算法,主要采用单亲本—单子代
的搜索,即“(1+1)进化策略((1+1)-ES)”,其中单个子代是由单个亲本产生的,它们都被置于生存竞争中,较弱的一个要被挑选出
来消去。当把这种算法用于函数优化时,发现它有两个缺点:各维取定常的标准差使得程序收敛到最优解的速度很慢;点到点搜索的脆弱本质
使得程序在局部极值附近容易受停滞的影响(虽然此算法表明可以渐近地收敛到全局最优点)。8.2进化策略(μ+1)-ES:早
期的(1十1)-ES,没有体现群体的作用,只是单个个体在进化,具有明显的局限性。随后,Rechenberg又提出(μ+1)-ES,
在这种进化策略中,父代有μ个个体(μ>1),并且引入重组(Recombination)算子,使父代个体组合出新的个体。在执行重组时
,从μ个父代个体中用随机的方法任选两个个体:8.2进化策略然后从这两个个体中组合出如下新个体:式中qi=1或2,它以相
同的概率针对i=1,2,…,n随机选取。对重组产生的新个体执行突变操作,突变方式及σ的调整与(1+1)-ES相同。将突变后的个
体与父代μ个个体相比较,若优于父代最差个体,则代替后者成为下一代μ个个体新成员,否则,重新执行重组和突变产生另一新个体,8.2
进化策略(μ+1)-ES和(1+1)-ES具有相同的策略:只产生一个新个体。(μ+1)-ES的特点在于:(1)采用群
体,其中包含μ个个体;(2)增添重组算子,它相当于遗传算法中的交叉算子,从父代继承信息构成新个体。显然,(μ+1)-
ES比(1+1)-ES有了明显的改进,为进化策略这种新的进化算法奠定良好的基础。8.2进化策略 在1973年,Rechenb
urg把该算法的期望收敛速度定义为对最优点的平均距离与要得到此改善所需要的试验次数之比。 1981年,Schwefel在进化策略
中使用多重亲本和子代,这是Rechenburg早期工作(使用多重亲本,但是仅使用单个子代)的发展,后来考察了两种方法,分别表示为(
μ+λ)-ES相(μ,λ)-ES。在前者中,μ个亲本制造λ个子代,所有解均参加生存竞争,选出最好的μ个作为下一代的亲本。在后者中,
只有λ(λ>μ)个子代参加生存竞争,在每代中μ个亲本被完全取代。这就是说,对于每一代,每个解张成的生命是有限的。增加种群大
小,就在固定数目的世代中增加了优化速率。8.2进化策略 Rechenburg引入了如下想法,在每个新样本的特征分布中附加了一
个自适应参数。在这个方法中,每个解矢量不仅包括了n维试验矢量x,而且还包括了扰动矢量σ,后者给出如何变异x以及它本身如何变异的指令
。例如,设x为当前矢量,σ为对应于x每个维的方差矢量,于是新的解矢量x’,σ’可以这样产生: N(0,1)表示单个标准高
所随机变量,Ni(0,1)表示第i个独立相同的标准高斯分布,τ和τ’是影响总体和个体步长的算子集参数。以这种方式,进化策略可以在
线地适应误差曲面的宽度,并且更恰当地分配实验次数。进化策略的基本技术问题的表达:为了与突变操作相适应,进化策略有两种表达方式
。(1)二元表达方式。这种表达方式中个体由目标变量X和标准差σ两部分组成,每部分又可以有n个分量,即:X和σ的关系为:
τ为全局系数,常取1。进化策略的基本技术(2)三元表达方式。为了改善进化策略的收敛速度,Schwefel在二元表达的基础上
引入第三个因子——坐标旋转角度α。个体的描述扩展为(X,σ,α),即:三者的关系为:αi——父代个体i分量与j分量
间坐标的旋转角度;α’j——子代新个体i分量与j分量间坐标的旋转角度;β——系数,常取0.0873;zi——取决于σ’及α’
的正态分布随机数。进化策略的基本技术旋转角度αi表面上是分量i与j间坐标的旋转角度,实质上它是分量i与分量j之间协方差的体现。
重组进化策略中的重组(Recombination)算子相当于遗传算法的交叉,它们都是以两个父代个体为基础进行信息交换。进化策略
中,重组方式主要有三种:(1)离散重组。先随机选择两个父代个体进化策略的基本技术然后将其分量进行随机交换,构成子代新个体的
各个分量,从而得出如下新个体:(2)中值重组。这种重组方式也是先随机选择两个父代个体,然后将父代个体各分量的平均值作为子代新
个体的分量,构成的新个体为:这时,新个体的各个分量兼容两个父代个体信息,而在离散重组中则只含有某一个父代个体的因子。进化策
略的基本技术(3)混杂(Panmictic)重组。这种重组方式的特点在于父代个体的选择上。混杂重组时先随机选择一个固定的父代个体
,然后针对子代个体每个分量再从父代群体中随机选择第二个父代个体。也就是说,第二个父代个体是经常变化的。至于父代两个个体的组合方式,
既可以采用离散方式,也可以来用中值方式,甚至可以把中值重组中的1/2改为[0,1]之间的任一权值。研究表明,进化策略采用重组后,
明显增加算法的收敛速度。Schwefel建议,对于目标变量X宜用离散重组,对于策略因子σ及α宜用中值重组或混杂中值重组。进化策
略的基本技术选择:进化策略的选择有两种:一为(μ+λ)选择,另一为(μ,λ)选择。(μ+λ)选择是从μ个父代个体及λ个子代新
个体中确定性地择优选出μ个个体组成下一代新群体。(μ,λ)选择是从λ个子代新个体中确定性地择优桃选μ个个体(要求λ>μ)组成下一
代群体,每个个体只存活一代,随即被新个体顶替。粗略地看,似乎(μ+λ)选择最好,它可以保证最优个体存活,使群体的进化过程呈单调上升
趋势。但是,深入分析后发现(μ+λ)选择具有下述缺点:进化策略的基本技术(1)(μ+λ)选择保留旧个体,它有时会是过时的可行
解,妨碍算法向最优方向发展。(μ,λ)选择全部舍弃旧个体,使算法始终从新的基础上全方位进化。(2)(μ+λ)选择保留旧个体,有
时是局部最优解,从而误导进化策略收敛于次优解而不是最优解。(μ,λ)选择舍弃旧的优良个体,容易进化至全局员优解。(3)(μ+λ
)选择在保留旧个体的同时,也将进化参数σ保留下来,不利于进化策略中的自适应调整机制。(μ,λ)选择则恰恰相反,可促进这种自适应调整
。实践也证明,(μ,λ)-ES优于(μ+λ)-ES,前者已成为当前进化策略的主流。进化策略的基本技术在(μ+λ)
-ES中,为了控制群体的多样性和选择的力度,比值μ/λ是一个重要参数,它对算法的收敛速度有很大影响。一方面,μ不能太小,否则群体
太单调(例如μ=1的极端情况);另一方面,μ也不能太大,否则计算工作量过大。通常,μ取15或更多一些。λ数值的大小,类似于μ
的作用,也要适当。某些研究表明.比值μ/λ宜取1/7左右。也就是说,若μ=15,则λ宜取100。8.3进化规划 进化规划(E
volutionaryProgramming)由Fogel在20世纪60年代所提出。Fogel将仿真进化方法用于由相互竞争的算法
所构成的种群,在一系列研究中探索了进化规划的可能性,目的是发展人工智能。Fogel认为,智能行为需要有如下的复合能力:(
1)预报它的环境;(2)把预报变成对于给定目标的适当响应。8.3进化规划标准进化规划进化规划用传统的十进制实数
表达问题。在标准进化规划(StandardEP)中,个体的表达形式为:式中:xi——旧个体目标变量X的第i个分量,
xi’——新个体目标变量X的第i个分量,f(X)——旧个体X的适应度;
N(0,1)——针对第i分量发生的随机数,它服从标准正态分布。8.3进化规划上式表明,新个体是在旧个体的基础上添加一
个随机数,添加值的大小与个体的适应度有关:适应度大的个体添加值也大,反之亦然。根据这种表达方式,进化规划首先产生μ个初始个体,这
也就是突变。接着从μ个旧个体及μ个新个体(2μ个个体)中根据适应度挑选出μ个个体组成新群体。如此反复迭代,直至得到满意结果。应
该指出,进化规划没有重组或交换这类算子,它的进化主要依赖突变。在标准进化规划中这种突变十分简单,它只需参照个体适应度添加一个随机数
。很明显,标准进化规划在进化过程中的自适应调整功能主要依靠适应度f(X)来实现。8.3进化规划StandardEP流程:
生成初始群体;WhileNot-EndDo突变;计算个体适应度;选择;组成新群体EndWhile8.3进化规
划元进化规划为了增加进化规划在进化过程中的自适应调整功能,人们在突变中添加方差的概念。类似于进化策略,在进化规划中个体的表达采
用下述方式:式中:σi——旧个体第i分量的标准差; σi’——新个体第i分量的标准差;
N(0,1)——针对第i分量发生的随机数,它服从标准正态分布。8.3进化规划从上式可以看出,新个体也是在旧个体
的基础上添加一个随机数,该添加量取决于个体的方差,而方差在每次进化中又有自适应调整。这种进化方式已成为进化规划的主要手段,因此在进
化规划前冠以“元”这个术语以表示它为基本方法。元进化规划(MetaEP)的突变尽管类似于进化策略,但是它们有下述差别:(1)
执行顺序不同。进化规划中首先计算新个体的目标变量xi’,计算中沿用旧个体的标准差σi;其次才计算新个体的标准差σi’,新的标
准差留待下次进化时才用。与之相反,进化策略是先调整标准差σ,然后再用新的标准差σ’去更改个体的目标变量X。(2)计算式的不同。进
化规划的计算式比进化策略的计算式简单。8.3进化规划旋转进化规划旋转进化规划(RmetaEP)进一步扩展进化规划,在表达
个体时添加第三个因子——协方差,用三元组表示个体,即(X,σ,ρ),具体计算如下:X——旧个体的目标变量,其内含n个
分量;X’——新个体的目标变量,其内含n个分量;N(0,C)——遵从正态分布的随机数,其数学期望为0、其标准差与协方差有关;
ρj——相关系数,进化规划的基本技术表达方法采用十进制的实型数表达问题。 X=(x1,x2,…,xi,…,xn)
由X和σ组成的二元组(X,σ)是进化规划最常用的表达形式。有人建议将进化规划再增加一个控制因子ρ,构成三元表达式(X,σ,
ρ),其中 ρ=(ρ1,ρ2,…,ρj,…,ρn)ρj是相关系数的单下标表达,它表示xi和xj之间的协方差
:进化规划的基本技术产生初始群体进化规划中产生初始群体的方法类似于进化策略中随机选择μ个个体作为进化计算的出发点。计算适应
度进化规划采用十进制实数表达问题,计算适应度比较简单直观。突变突变是进化规划产生新群体的唯一方法,它不采用重组或交换算子。
进化规划的基本技术选择在进化规划中,新群体的个体数目λ等于旧群体的个体数目μ,选择便是在2μ个个体中选择μ个个体组成新群体。
进化规划的选择采用随机型的q—竞争选择法。在这种选择方法中,为了确定某一个体i的优劣,我们从新、旧群体的2μ个个体中任选q
个个体组成测试群体。然后将个体i的适应度与q个个体的适应度进行比较,记录个体i优于或等于q内各个体的次数,得到个体i的
得分Wi,即进化规划的基本技术上述得分测试分别对2μ个个体进行,每次铡试时重新选择q个个体组成新的测试群体。最后,按个体的得分
选择分值高的μ个个体组成下一代新群体。q—竞争选择法是一种随机选择,总体上讲,优良个体入选的可能性较大。但是由于测试群体q每次都
是随机选择的,当q个个体都不甚好时,有可能使较差的个体因得分高而入选。这正是随机选择的本意。q—竞争选择法中q的大小是一个重要参
数。若q很大,极端地设q=2μ,则选择变为确定性选择。反之,若q很小,则选择的随机性太大,不能保证优良个体入选。通常q在10以上,
可取0.9μ。进化规划的基本技术终止进化规划的终止准则与进化策略相同,即根据最大进化代次、最优个体与期望值的偏差、适应度的变
化趋势以及最优适应度与最差适应度之差等四个判据。进化规划的基本技术进化规划的算法算法流程:(1)确定问题的表达方式。(
2)随机产生初始群体,并计算其适应度。(3)用下述操作产生新群体: 1)突变。对旧个体添加随机量,产生新个体 2)计算新
个体适应度; 3)选择。挑选优良个体组成新群体。(4)反复执行(3),直至满足终止条件,选择最佳个体作为进化规划的最优解。
遗传规划遗传算法的局限性:(1)不能描述层次化的问题。(2)不能描述计算机程序。(3)缺乏动态可变性。1992年、美国J
ohnR.Koza正式提出遗传规划(GeneticProgramming),用层次化的结构性语言表达问题。遗传规划的最大特
点,是采用层次化的结构表达问题,它类似于计算机程序分行或分段地描述问题。这种广义的计算机程序能够根据环境状态自动改变程序的结构及大
小。遗传规划的工作步骤可归纳如下:(1)确定个体的表达方式,包括函数集F及终止符集T。(2)随机产生初始群体。(3)计算各
个体的适应度。(4)根据遗传参数,用下述操作产生新个体: 1)复制。将已有的优良个体复制,加入新群体中,并相应删除劣质个体
2)交换。将选出的两个个体进行交换,所产生的两个新个体插入新群体中。 3)突变。随机改变个体某一部分,将新个体插入新群体中。(
5)反复执行(3)及(4).直至取得满意结果。遗传规划的基本技术问题的表达遗传规划是用层次结构可变的形式表达问题,在表达中主
要用函数和终止符两类组分。简单地说,终止符表示问题的值,函数表示对值的处理。综合在一起,遗传规划的个体表示对各种值(终止符)的处理
过程(函数)。在函数集F={f1,f2,…,fn}中,函数fi可以是运算符、函数、说明等,具体有:(1)算术运
算符,如+,-,,/等。其中除号为防止计算机溢出,规定不允许用零作分母,称保护性除法(ProtectedDivision
),用%标记。一旦遇到分母为零时,最简单的处理方法是令其商为1、或是重新选择算术运算符。遗传规划的基本技术(2)超越函数,如s
in,cos,tan,log,exp等。其中log要防止处理小于或等于零的数值,称保护性对数,记为Rlog其处理方法类似于
%。(3)布尔运算符,如AND、OR或NOT等。(4)条件表达式,如If-then-else,Switch-Case等。(
5)循环表达式.如Do-until,while-do,For-do等。(6)控制转移说明,如Goto,Call,Jum
p等。(7)变量赋值函数.如a:=1,Read,Write等。(8)其他定义的函数。遗传规划的基本技术终止符集T={t
1,t2,…,tn}包括各种常数、输入、变量等,具体有:(1)常数,如π、180o等,(2)变量,如x,y,z等。
(3)输入,如a,b,c等。顾名思义,终止符是个体表达的终点。遗传规划的基本技术将函数集和终止符集综合在一起,便可形成层
次状个体。例如,有下列函数集: F={AND,OR,NOT}和终止符集: T={D0,D1}式中,D0,D1为布尔变
量。上述函数集和终止符集的并集C为: C={AND,OR,NOT,D0,D1}遗传规划的基本技术C中终止符D0及D1可视为具有0个变量的函数。于是并集C中各函数的变量个数分别为:2,2,l,0,0。从并集C中任选一个函数(假设是OR),根据该函数的变量数目再从C集选取相应数目的函数(OR要选两个函数)。如此重复,直至选出0个变量的函数,它也就是终止符。为了形象地表达遗传规划的层次结构,通常采用算法树的形式。现用一个有两个变量的奇-偶判断函数为例。若该函数的变量数目为偶数。则该函数返回T(真);否则,该函数返回F(假)。这种布尔型函数的符号表达式为: (NOT(D0)ANDNOT(D1))OR(D0ANDD1)遗传规划的基本技术5个内结点为函数集F中的函数元素(OR、AND、AND、NOT、NOT),4个外结点(叶子)为终止符集T中的布尔变量(D0、D1、D0、D1),根为函数集F中的一个函数。即OR。该树即为数据结构中的算法树。这种算法树常用于表达遗传规划中的个体。算法树的大小视问题而异。对于复杂的问题可含256个结点,其中函数结点约占56个,其余200个为终止符。初始群体的生成
献花(0)
+1
(本文系成为亨特首藏)