您好,欢迎访问三七文档
第四章遗传算法的基本原理4.1遗传算法的基本描述4.2遗传算法的模式理论4.3遗传算法与其他搜索算法的比较4.4遗传算法的高级实现4.1.1标准遗传算法流程:•1.编码•2.初始群体的生成•3.适应度评估检测•4.WHILE未满足迭代终止条件DO–1.选择–2.交叉–3.变异–4.适应度评估检测•5.ENDDO4.1遗传算法的基本描述选择交叉当前代中间代下一代4.1遗传算法的基本描述4.1.3遗传编码定义:由问题空间向GA编码空间的映射称为编码,而由编码空间向问题空间的映射成为译码。问题编码一般应满足以下三个原则:1)完备性(completeness):问题空间中的所有点都能能成为GA编码空间中的点的表现型2)健全性(soundness):GA编码空间中的染色体位串必须对应问题空间中的某一潜在解。3)非冗余性(non-redundancy):染色体和潜在解必须一一对应。4.1遗传算法的基本描述4.1.3遗传编码根据模式定理,DeJong进一步提出了较为客观明确的编码评估准则,称之为编码原理。具体可以概括为两条规则:1)有意义积木块编码规则:编码应易于生成与所求问题相关的短距和低阶的积木块。2)最小字符集编码规则:编码应采用最小字符集,以使问题得到自然、简单的表示和描述。4.1遗传算法的基本描述1.二进制编码1)连续实函数的二进制编码设一维连续实函数采用长度维L的二进制字符串进行定长编码,建立位串空间:k=1,2,…,K;l=1,2,…,L;K=2L表示精度为。将个体又从位串空间转换到问题空间的译码函数的公式定义为:],[),(vuxxfKLxxxS,,,21),,,(21kLkkkaaax1,0kla)12/()(Luvx],[}1,0{:vuL)2(12),,,(121LjjLkjLkLkkkauvuaaax4.1遗传算法的基本描述对于n维连续函数,各维变量的二进制编码位串的长度为li,那么x的编码从左到右依次构成总长度为的二进制编码位串。相应的GA编码空间为:,K=2L该空间上的个体位串结构为对于给定的二进制编码位串sk,位段译码函数的形式为,i=1,2,…,n),,2,1](,[),,,,(),(21nivuxxxxxxfiiinniilL1},,,{21KLxxxS}1,0{),,,,,,,,,,,,,,,,,,(2121222211121121iklnklnknkiklikikklkkklkkkaaaaaaaaaaaaaxninklnknkiklikikklkkklkkkniaaaaaaaaaaaax2121222211121121)2(12),,,(121iiiiljjlikjliiiiklikikiiauvuaaax4.1遗传算法的基本描述2.其他编码1)大字符集编码(相对于二进制编码)2)序列编码(TSP)3)实数编码4)树编码5)自适应编码6)乱序编码4.1遗传算法的基本描述4.1.4群体设定1。初始群体的设定一般来讲,初始群体的设定可以采用如下的策略:1)根据问题固有知识,设法把握最优解所占空间在整个问题空间中的分布范围,然后,在此分布范围内设定初始群体。2)先随机生成一定数目的个体,然后从中挑出最好的个体加入到初始群体中。这一过程不断重复,直到初始群体中个体数达到了预定的规模。4.1遗传算法的基本描述4.1.4群体设定2。群体规模的设定•根据模式定理,若群体规模为M,则遗传操作可从这M个个体中生成和检测O(M3)个模式,并在此基础上不断形成和优化积木块,直到找到最优解。•群体规模N,模式阶i,被采样的模式数量的期望Mi(i=1,2,…,)之间满足如下关系:•群体规模一般不随迭代而变化,但也不绝对。iiNM24.1遗传算法的基本描述4.1.5适应度函数(评价函数)1。目标函数映射成适应度函数2。适应度函数定标1)线性定标(linearscaling)f’=af+b2)截断(sigmatruncation)3)乘幂标f’=fK4)指数定标f’=exp(-bf))('cfff4.1遗传算法的基本描述4.1.6遗传算子包括三个基本遗传算子(geneticoperator):选择,交叉和变异。这三个遗传算子具有一些特点:(1)这三个算子的操作都是随机化操作,因此,群体中个体向最优解迁移的规则是随机的。需要强调的是,这种随机化操作和传统的随机搜索方法是有区别的。遗传操作进行的是高效有向的搜索,而不是如一般随机搜索方法所进行的无向搜索。(2)遗传操作的效果和所取的操作概率、编码方法、群体大小,以及适应度函数的设定密切相关。(3)三个基本算子的操作方法和操作策略随具体求解问题的不同而异。或者说,是和个体的编码方式直接相关。4.1.6遗传算子一、选择(selection)算子从群体中选择优胜个体,淘汰劣质个体的操作叫选择。选择算子有时又称为再生算子(reproductionoperator)。选择即从当前群体中选择适应度值高的个体以生成配对池(matingpool)的过程。4.1.6遗传算子一、选择(selection)算子1、适应度比例选择首先计算每个个体的适应度值,然后计算出此适应度值在群体适应度值总和中所占的比例,表示该个体在选择过程中被选中的概率。选择过程体现了生物进化过程中“适者生存,优胜劣汰”的思想。对于给定的规模为n的群体,个体的适应度值为,其选择概率为:问题:易出现未成熟收敛},,,{21naaaPPaj)(jafnjafafapniijjs,,2,1,)()()(14.1.6遗传算子一、选择(selection)算子2、Boltzmann选择在群体进化过程中,不同阶段需要不同地选择压力。早期阶段选择压力较小,我们希望较差地个体也又一定地生存机会,使得群体保持较高地多样性;后期阶段,选择压力较大,我们希望GA缩小搜索邻域,加快当前最优解的改善速度。为了动态调整群体进化过程中的选择压力,Goldberg设计了Boltzmann选择方法。个体选择概率为:njeeapniTafTafjsij,,2,1,)(1/)(/)(4.1.6遗传算子一、选择(selection)算子3、排序选择排序选择方法是将群体中个体按其适应度值由大到小的顺序排成一个序列,然后将事先设计好的序列概率分配给每个个体。排序选择不利用个体适应度值绝对值的信息,可以避免群体进化过程中的适应度标度变换。4.1.6遗传算子一、选择(selection)算子3、排序选择对于给定的规模为n的群体,并且满足个体适应度值降序排列。假设当前群体最佳个体a1在选择操作后的期望数量为,即;最差个体an在选择操作后的期望数量为。其它个体的期望数量按等差序列计算,,故现在排序选择概率为},,,{21naaaP)()()(21nafafaf1pnnpn11njj)1(1)()1(jnjjnjjnnapjs,,2,1)),1(1)((1)(4.1.6遗传算子一、选择(selection)算子4、联赛选择(tournamentselection)•基本思想:从当前群体中随机选择一定数量的个体(放回或者不放回),将其中适应值最大的个体放入配对池中。反复执行这一过程,直到配对池中的个体数量达到设定的值。•联赛规模用q表示,也称q-联赛选择。•联赛选择与个体的适应度值由间接关系,注重适应度值大小的比较。•联赛规模一般取q=2。4.1.6遗传算子一、选择(selection)算子5、精英选择•如果下一代群体的最佳个体适应度值小于当前群体最佳个体的适应度值,则将当前群体最佳个体或者适应度值大于下一代最佳个体适应度值的多个个体直接复制到下一代,随机替代和替代最差的下一代群体中的相应数量的个体。•精英选择是群体收敛到全局最优解的一种基本保障。4.1.6遗传算子一、选择(selection)算子6、稳态选择•稳态选择操作中,仅有少量个体按适应度值比例选择方法被选择,通过遗传操作生成新的个体。新个体放回到群体中时,随机替代等量的旧个体,或者替代等量的最差的旧个体。•Holland将稳态选择方法应用于分类器规则学习中,最大程度继承已获得的规则,实现增量学习。•DeJong将下一代群体中生成的与上一代不同的新个体所占的比例称为“代沟”(generationgap)。代沟越大,说明新个体的生成比例越高,群体搜索新的编码空间的能力(探索)越强。4.1.6遗传算子二、交叉(Crossover)算子•交叉算子是模仿自然界有性繁殖的基因重组过程,其作用在于将已有的优良基因遗传给下一代个体,并生成包含更复杂基因结构的新个体。•交叉操作一般分为以下几个步骤:1)从配对池中随机取出要交配的一对个体;2)根据位串长度L,对要交叉的一对个体,随机选取[1,L-1]中一个或多个整数k作为交叉位置;3)根据交叉概率实施交叉操作,配对个体在交叉位置处,相互交换各自的部分内容,从而形成新的一对个体。4.1.6遗传算子二、交叉(Crossover)算子1、一点交叉(one-pointcrossover)位串A:1101|1010位串B:1011|0101位串A’:1101|0101位串B’:1011|10104.1.6遗传算子二、交叉(Crossover)算子1、两点交叉(two-pointcrossover)位串A:11|011|010位串B:10|110|101位串A’:11|110|010位串B’:10|011|1014.1.6遗传算子二、交叉(Crossover)算子1、多点交叉(multi-pointcrossover)位串A:11|01|10|10位串B:10|11|01|01位串A’:11|11|10|01位串B’:10|01|01|104.1.6遗传算子二、交叉(Crossover)算子1、一致交叉一致交叉即染色体位串上的每一位按相同概率进行随机均匀交叉。一致交叉算子生成的新个体位:操作描述如下::,x是取值为[0,1]上符合均匀分布的随机变量。Laaas112111''''Laaas222212''''),(xpOc2/1,2/1,'211xaxaaiii2/1,2/1,'122xaxaaiii4.1.6遗传算子三、变异(Mutation)算子变异操作模拟自然界生物体进化中染色体上某位基因发生的突变现象,从而改变染色体的结构和物理性状。在标准遗传算法中,变异算子通过按变异概率pm随机反转某位等位基因的二进制字符值来实现。对于给定的染色体位串,具体如下:生成新的个体。其中,xi是对应于每一个基因位产生的均匀随机变量,。Laaas21:),(xpOm否则若,,1'imiiiapxaa},,2,1{LiLaaas''''21]0,1[ix4.1.6遗传算子四、逆转(InversionOperator)算子逆转操作首先在个体位串上随机地选择两个点,位串染色体被这两个点分成三段,将中间段的左右顺序倒转过来与另两段相连,形成新的个体位串。例如:长度为10的二进制位串,其中下划线标示的等位基因为重要基因:10^111011^01(^是倒位位置)经倒位后变为1011011101。新的位串中重要基因更为靠近,被单点交叉算子分离的可能性大大降低了。4.1.6遗传算子•四、换位(SwapOperator)算子换位操作首先在个体位串上随机地选择两个基因,将这两个基因的位置互换,形成新的个体位串。例如:长度为10的二进制位串,其中下划线标示的为随机选中的基因:1011101101经换位后变为11111011004.1.7迭代终止条件•一般采用设定最大代数的方法。•其次,可以根据群体的收敛程度来判断,通过计算种群中的基因多样性测度,即所有基因位的相似性程度来进行控制。•第三,根据
本文标题:遗传算法基本原理
链接地址:https://www.777doc.com/doc-2997312 .html