基本遗传算法(GA)

上传人:ji****72 文档编号:50960846 上传时间:2018-08-11 格式:PPT 页数:55 大小:489.50KB
返回 下载 相关 举报
基本遗传算法(GA)_第1页
第1页 / 共55页
基本遗传算法(GA)_第2页
第2页 / 共55页
基本遗传算法(GA)_第3页
第3页 / 共55页
基本遗传算法(GA)_第4页
第4页 / 共55页
基本遗传算法(GA)_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《基本遗传算法(GA)》由会员分享,可在线阅读,更多相关《基本遗传算法(GA)(55页珍藏版)》请在金锄头文库上搜索。

1、第二章第二章 基本遗传算法(基本遗传算法(GAGA)2.1 2.1 基本遗传算法描述基本遗传算法描述遗传算法在自然与社会现象模拟、工程计算等方面得到了广泛的应用。在各个不同的应用领域,为了取得更好的结果,人们对GA进行了大量的改进,为了不至于混淆,我们把Holland提出的算法称为基本遗传算法,简称 GA、SGA(Simple Genetic Algorithm )、CGA(Canonical Genetic Algorithm),将其它的“GA类”算法称为GAs(Genetic Algorithms),可以把GA看作是GAs的一种特例。 2.1.1 2.1.1 基本遗传算法的构成要素基本遗传

2、算法的构成要素(1) (1) 染色体编码方法染色体编码方法基本遗传算法使用固定长度的二进制符号串固定长度的二进制符号串来表示群体中的个体,其等位基因由二值符号集0,1组成。初始群体中各个个体的基因值用均匀分布的随机数来生成。如:x;100111001000101101就可表示一个个体,该个体的染色体长度是 l18。(2) (2) 个体适应度评价个体适应度评价基本遗传算法按与个体适应度成正比的概率来决定当前群体中每个个体遗传按与个体适应度成正比的概率来决定当前群体中每个个体遗传到下一代群体中的机会多少。到下一代群体中的机会多少。为正确计算这个概率,这里要求所有个体的适应度必须为正数或零。这样,根

3、据不同种类的问题,必须预先确定好由目标函数值到个体适应度之间的转换规则,特别是要预先确定好当目标函数值为负数时的处理方法。(3) (3) 遗传算子遗传算子基本遗传算法使用下述三种遗传算子: 选择运算:使用比例选择算子比例选择算子; 交叉运算:使用单点交叉算子单点交叉算子; 变异运算:使用基本位变异算子基本位变异算子。(4) (4) 基本遗传算法的运行参数基本遗传算法的运行参数基本遗传算法有下述4个运行参数需要提前设定: MM:群体大小,即群体中所含个体的数量,一般取为20 100。 T T:遗传运算的终止进化代数,一般取为100 500 p pc c:交叉概率,一般取为0.4 0.99 p p

4、mm:变异概率,一般取为 0.0001 0.1 说明说明 这4个运行参数对遗传算法的求解结果和求解效率都有一定的影响,但目前尚无合理选择它们的理论依据。在遗传算法的实际应用中,往往需要经过多次试算后才能确定出这些参数合理的取值大小或取值范围。2.1.2 2.1.2 基本遗传算法的形式化定义基本遗传算法的形式化定义基本遗传算法可定义为一个7元组:GAGA (M, F, s, c, m, p(M, F, s, c, m, pc c, p, pmm) )M群体大小;F个体适应度评价函数;s选择操作算子;c交叉操作算子:m变异操作算子;pc交叉概率;pm变异概率;2.1.3 2.1.3 基本遗传算法描

5、述基本遗传算法描述Procedure GA Begininitialize P(0);t=0;while (t 00 if f(X)+Cmin 0F(X) =Cmax - f(X) if f(X) Cmax0 if f(X) Cmax 2.2.3 2.2.3 比例选择算子比例选择算子(1) (1) 选择算子或复制算子的作用:选择算子或复制算子的作用:从当前代群体中选择出一些比较优良的个体,并将其复制到下一代群体中。(2)(2) 最常用和最基本的选择算子最常用和最基本的选择算子: 比例选择算子。(3) (3) 比例选择算子:比例选择算子:指个体被选中并遗传到下一代群体中的概率与该个体的适应度大小

6、成正比。(4) (4) 执行比例选择的手段是轮盘选择。执行比例选择的手段是轮盘选择。轮盘法的基本精神是:个体被选中的概率取决于个体的相对适应度:pi = fi / fi ( i=1,2,M ) 式中 pi个体i被选中的概率;fi个体i的适应度;fi群体的累加适应度。显然,个体适应度愈高,被选中的概率愈大。但是,适应度小的个体也有可能被选中,以便增加下一代群体的多样性。轮盘选择的原理:轮盘选择的原理:图中指针固定不动,外圈的圆环可以自由转动, 圆环上的刻度代表各个个体的适应度。当圆环旋转若干圈后停止 ,指针指定的位置便是被选中的个体。从统计意义讲,适应度大的个体,其刻度长,被选中的可能性大;反之

7、,适应度小的个体被选中的可能性小,但有时也会被“破格”选中。上述轮盘选择过程,可描述如下:. 顺序累计群体内各个体的适应度,得相应的累计值Si,最后一个累计值为Sn ;. 在0, Sn区间内产生均匀分布的随机数r;. 依次用Si与r比较,第一个出现Si大于或等于r的个体j被选为复制对象;. 重复 、 项,直至新群体的个体数目等于父代群体的规模。论盘选择示例2.2.4 2.2.4 单点交叉算子单点交叉算子(1) (1) 交叉算子作用交叉算子作用 通过交叉,子代的基因值不同于父代。交换是遗传算法产生新个体的主要手段 。正是有了交换操作,群体的性态才多种多样。(2) (2) 最常用和最基本最常用和最

8、基本单点交叉算子。(3) (3) 单点交叉算子的具体计算过程如下:单点交叉算子的具体计算过程如下:. 对群体中的个体进行两两随机配对。若群体大小为M,则共有 M/2 对相互 配对的个体组。. 每一对相互配对的个体,随机设置某一基因座之后的位置为交叉点。 若染色体的长度为l ,则共有(l-1)个可能的交叉点位置。. 对对每一对对相互配对对的个体,依设设定的交叉概率pc在其交叉点处处相互交换换两个个 体的部分染色体,从而产产生出两个新的个体。单单点交叉运算的示例如下所示:单点交叉A;10110111 00 A:10110111 11B:00011100 11 B:00011100 00交叉概率交叉

9、概率 pc = Mc M式中 M群体中个体的数目;Mc群体中被交换个体的数目。交叉操作示例 交叉的个体是随机确定的,如下表所示。某群体有n个个体,每个个体含8个等位基因。针对每个个体产生一个0, 1 区间的均匀随机数。假设交叉概率 pc = 0.6,则随机数小于0.6的对应个体与其随机确定的另一个个体交叉,交叉点随机确定。个体编号个体随机数交叉操作新个体 1110110000.72811011000 2101010110.589101010 11101010 013001011000.67800101100 4100011010.801100011 01100011 11 2.2.5 2.2.

10、5 基本位变异算子基本位变异算子基本位变异算子是最简单和最基本的变异操作算子。基本位变异算子是最简单和最基本的变异操作算子。对于基本遗传算法中用二进制编码符号串所表示的个体,若需要进行变异操作的某一基因座上的原有基因值为0,则变异操作将该基因值变为1,反之,若原有基因值为1,则变异操作将其变为0。基本位变异因子的具体执行过程是:基本位变异因子的具体执行过程是:. 对个体的每一个基因座,依变异概率pm指定其为变异点。. 对每一个指定的变异点,对其基因值做取反运算或用其它等位基因值来代替, 从而产生出一个新的个体。基本位变异运算的示例如下所示:A:1010 1 01010 A:1010 0 010

11、10变异点基本位变异变异是针对个体的某一个或某一些基因座上的基因值执行的,因此变异概率pm也是针对基因而言,即:式中 B每代中变异的基因数目;M每代中群体拥有的个体数目l个体中基因串长度。Pm = B M l 变异概率变异概率变异操作示例 变异字符的位置是随机确定的,如下表所示。某群体有3个个体,每个体含4个基因。针对每个个体的每个基因产生一个0, 1 区间具有3位有效数字的均匀随机数。假设变异概率 pm = 0.01,则随机数小于0.01的对应基因值产生变异。表中3号个体的第4位的随机数为0.001,小于0.01,该基因产生变异,使3号个体由 0010 变为 0011 。其余基因的随机数均大

12、于0.01,不产生变异。开始Gen=0编码随机产生M个初始个体满足终止条件?计算群体中各个体适应度从左至右依次执行遗传算子j = 0j = 0j = 0根据适应度选择复制个体选择两个交叉个体选择个体变异点执行变异执行交叉执行复制将复制的个体添入 新群体中将交叉后的两个新个体 添入新群体中将变异后的个体添入 新群体中j = j+1j = j+2j = j+1j = M? j = pcM? j = pmLM?Gen=Gen+1输出结果终止YNYYYNNNpcpm2.2.6 2.2.6 算法流程图算法流程图2.3 2.3 基本遗传算法应用举例基本遗传算法应用举例 基本遗传算法在函数优化中的应用基本遗

13、传算法在函数优化中的应用。例 Rosenbrock函数的全局最大值计算。max f(x1,x2) = 100 (x12-x22)2 + (1-x1)2s.t. -2.048 xi 2.048 (xi=1,2)如图所示:该函数有两个局部极大点,分别是:f(2.048, -2048)=3897.7342和f(-2.048,-2.0048)=3905.9262其中后者为全局最大点。下面介绍求解该问题的遗传算法的构造过程:下面介绍求解该问题的遗传算法的构造过程:第一步第一步:确定决策变量及其约束条件。s.t. -2.048 xi 2.048 (xi=1,2)第二步:第二步:建立优化模型。max f(x

14、1,x2) = 100 (x12-x22)2 + (1-x1)2第三步;第三步;确定编码方法。用长度为l0位的二进制编码串来分别表示二个决策变量x1,x2。lO位二进制编码串可以表示从0到1023之间的1024个不同的数,故将x1,x2的定义域离散化为1023个均等的区域,包括两个端点在内共有1024个不同的离散点。从离散点-2.048到离散点2.048,依次让它们分别对应于从0000000000(0)到1111111111(1023)之间的二进制编码。再将分别表示x1和x2的二个10位长的二进制编码串连接在一起,组成一个20位长的二进制编码串,它就构成了这个函数优化问题的染色体编码方法。例如

15、X:0000110111 11011 10001 就表示一个个体的基因型。第四步:第四步:确定解码方法。解码时先将20位长的二进制编码串切断为二个10位长的二进制编码串,然后 分别将它们转换为对应的十进制整数代码,分别记为y1和y2。依据前述个体编码方法相对定义域的离散化方法可知,将代码yi转换为变量xi的解码公式为:例如,对前述个体X: 0000110111 11011 10001 它由这样的两个代码所组成:y1= 55y2 = 881经上式的解码处理后,得到:x1= -1.828x2= 1.476 xi = 4.096 yi 1023 2.048 ( i = 1,2)第五步:第五步:确定个体评价方法。由式 f(x1,x2) = 100 (x12-x22)2 + (1-x1)2 可知, Rosenbrock函数的值域总是

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号