You are on page 1of 119

第二章 遗传算法

2.1 遗传算法概述
2.1.1 生物学中的遗传概念
2.1.2 遗传算法的基本思想
2.1.3 遗传算法的一般流程
2.1.4 遗传算法的特点
2.2 遗传算法的理论基础
2.2.1 遗传算法的模式理论
2.2.2 遗传算法的收敛性分析

12/01/09 第二章 遗传算法2009 1


2.3 常用改进算法

2.4 计算机实现及应用示例
2.4.1 遗传算法实现中的一些基本问题
2.4.2 TSP
2.4.3 控制系统参数优化

12/01/09 第二章 遗传算法2009 2


一个优化问题

12/01/09 第二章 遗传算法2009 3


 遗传算法 (Genetic Algorithma, GA) 是一
种基于自然选择和基因遗传学原理的优化搜
索方法。
 遗传算法的创立有两个研究目的:一是抽象
和严谨地解释自然界的适应过程;二是为了
将自然生物系统的重要机理运用到工程系统
、计算机系统和商业系统等人工系统的设计
中。
 遗传算法在计算机上模拟生物的进化过程和
基因的操作,并不需要对象的特定知识,也
不需要对象的搜索空间是连续可微的,它具
有全局寻优的能力。
12/01/09 第二章 遗传算法2009 4
2.1.1 生物学中的遗传概念
 在生物细胞中,控制并决定生物遗传特性的物质是
脱氧核糖核酸,简称 DNA 。染色体是其载体。
 DNA 是由四种碱基按一定规则排列组成的长链。
四种碱基不同的排列决定了生物不同的表现性状。
例如,改变 DNA 长链中的特定一段(称为基因)
,即可改变人体的身高。
 细胞在分裂时, DNA 通过复制而转移到新产生的
细胞中,新的细胞就继承了旧细胞的基因。

12/01/09 第二章 遗传算法2009 5


 有性生殖生物在繁殖下一代时,两个同元染色体
之间通过交叉而重组,亦即在两个染色体的某一
相同位置处 DNA 被切断,其前后两串分别交叉
形成两个新的染色体。
 在细胞进行复制时可能以很小的概率产生某些复
制差错,从而使 DNA 发生某种变异,产生新的
染色体。
 这些新的染色体将决定新的个体(后代)的新的
性状。

12/01/09 第二章 遗传算法2009 6


 在一个群体中,并不是所有的个体都能得到相
同的繁殖机会,对生存环境适应度高的个体将
获得更多的繁殖机会;对生存环境适应度较低
的个体,其繁殖机会相对较少,即所谓自然选
择。而生存下来的个体组成的群体,其品质不
断得以改良,称为进化。

12/01/09 第二章 遗传算法2009 7


2.1.2 遗传算法的基本思想
 遗传算法从代表问题可能潜在解集得一个种群
开始,首先必须实现从性状到基因得映射,即
编码工作(如二进制编码)。
 初代种群(编码集合)产生后,按照优胜劣汰
的原则,根据个体适应度大小挑选(选择)个
体,进行复制、交叉、变异,产生出代表新的
解集的群体,再对其进行挑选以及一系列遗传
操作,如此往复,逐代演化产生出越来越好的
近似解。

12/01/09 第二章 遗传算法2009 8


挑选(选择):通过适应度的计算,淘汰不合
理的个体。类似于自然界的物竞天择 .
复制:编码的拷贝,类似于细胞分裂中染色
体的复制。
交叉:编码的交叉重组,类似于染色体的交
叉重组。
变异:编码按小概率扰动产生的变化,类似
于基因的突变。
 这个过程将导致种群像自然进化一样,后代种群
比前代更加适应环境,末代种群中得最优个体经
过解码(从基因到性状的映射),可以作为问题
近似最优解。

12/01/09 第二章 遗传算法2009 9


2.1.3 遗传算法的一般流程
a. 随机产生初始种群,个体数目一定,每个个体
表示为染色体的基因编码;
b. 计算个体的适应度,并判断是否符合优化准则
,若符合,输出最佳个体及其代表的最优解,
并结束计算,否则转第③步;
c. 依据适应度选择再生个体,适应度高的个体被
选中的概率高,适应度低的个体可能被淘汰;

12/01/09 第二章 遗传算法2009 10


d. 按照一定的交叉概率和交叉方法,生成新的个
体;
e. 按照一定的变异概率和变异方法,生成新的个
体;
f. 由交叉和变异产生新一代的种群,返回第②步

12/01/09 第二章 遗传算法2009 11


Y
产生初 计算 是否满足
最佳个体
始种群 适应度 优化准则
N
解码
编码 父 代
(基因到性状)
(性状到基因)
选择

开始 交叉


变异

12/01/09 第二章 遗传算法2009 12


2.1.4 遗传算法的特点

 常规优化算法:
 解析法:只能得到局部最优解,且要求目标函数连
续光滑及可微信息;
 枚举法:虽然克服了这些缺点,但计算效率太低,
且对于实际问题往往由于搜索空间大而不能将所有
的情况都搜索到;
 动态规划法:存在“指数爆炸”问题,它对于中等规
模和适度复杂性的问题,也常常无能为力。

12/01/09 第二章 遗传算法2009 13


 同常规算法相比,遗传算法有以下特点:
a. 遗传算法是对参数的编码进行操作,这样
提供的参数信息量大,优化效果好。
b. 遗传算法是从许多点开始并行操作,因而
可以有效地防止搜索过程收敛于局部最优
解。
c. 遗传算法通过目标函数来计算适配值,而
不需要其他推导和附加信息,从而对问题
的依赖性小。
d. 遗传算法的寻优规则是由概率决定的,而
非确定性的。

12/01/09 第二章 遗传算法2009 14


e. 遗传算法在解空间进行高效启发式搜索,而
非盲目地穷举或完全随机搜索。
f. 遗传算法对于待寻优的函数基本无限制,因
而应用范围较广。
g. 遗传算法具有并行计算的特点,因而可通过
大规模并行计算来提高计算速度。
h. 遗传算法更适合大规模复杂问题的优化。
i. 遗传算法计算简单,功能强。

12/01/09 第二章 遗传算法2009 15


2.1.5 遗传算法的发展
上世纪 60 年代,美国密植安大学的 Holland
教授及其学生们受到生物模拟技术的启发,
创造出了一种基于生物遗传和进化机制的适
合于复杂系统计算优化的自适应概率优化技
术 ----- 遗传算法。
下面是在遗传算法的发展进程中一些关键人
物所做出的一些主要贡献。

12/01/09 第二章 遗传算法2009 16


J.H.Holland

20 世纪 60 年代, Holland 认识到了生物的遗传


和自然进化现象与人工自适应系统的相似关系
,运用生物遗传和进化的思想来研究自然和人
工自适应系统的生成以及它们与环境的关系,
提出在研究和设计人工自适应系统时,可以借
鉴生物遗传的机制,以群体的方法进行自适应
搜索,并且充分认识到了交叉、变异等运算策
略在自适应系统中的重要性。

12/01/09 第二章 遗传算法2009 17


20 世纪 70 年代

Holland 提出了遗传算法的基本定理 --- 模式定理


(Schema Theorem), 奠定了遗传算法的理论基
础。 1975 年, Holland 出版了第一本系统论
述遗传算法和人工自适应系统的专著《自然系
统和人工系统的自适应性( Adaptation in
Natural and Artificial Systems )》。

12/01/09 第二章 遗传算法2009 18


20 世纪 80 年代

Holland 实现了第一个基于遗传算法的机器学习
系统 ---- 分类器系统,开创了基于遗传算法学
习的新概念,为分类器系统构造出了一个完整
的框架。

12/01/09 第二章 遗传算法2009 19


J.D.Bagley
1967 年, Holland 的学生 Bagley 在其博士论
文中首次提出了“遗传算法”一词,并发表了
遗传算法应用方面的第一篇论文。他发展了
复制、交叉、变异、显性、倒位等遗传算子
,在个体编码上使用了双倍体的编码方法。
这些都与目前遗传算法中所使用的算子和方
法类似。他还敏锐地意识到了在遗传算法执
行的不同阶段可以使用不同的选择率,这将
有利于防止遗传算法的早熟现象,从而创立
了自适应遗传算法的概念。

12/01/09 第二章 遗传算法2009 20


K.A.De Jong

1975 年, De Jong 在其博士论文中结合模式定


理进行了大量的纯数值函数优化计算实验,树
立了遗传算法的工作框架,得到了一些重要且
具有指导意义的结论。他推荐了在大多数优化
问题中都比较适用的遗传算法参数,还建立了
著名的 De Jong 五函数测试平台,定义了评
价遗传算法性能的在线指标和离线指标。

12/01/09 第二章 遗传算法2009 21


D.J.Goldberg

1989 年, Goldberg 出版了专著《搜索、优化


和机器学习中的遗传算法》。该书系统总结了
遗传算法的主要研究成果,全面而完整地论述
了遗传算法的基本原理及其应用。

12/01/09 第二章 遗传算法2009 22


L.Davis

1991 年, Davis 编辑出版了《遗传算法手册》


,书中包含了遗传算法在科学计算、工程技术
和社会经济中的大量应用实例,该书为推广和
普及遗传算法的应用起到了重要的指导作用。

12/01/09 第二章 遗传算法2009 23


J.R.Koza

1992 年, Koza 将遗传算法应用于计算机程序


的优化设计及自动生成,,提出了遗传编程的
概念。 Koza 成功地将提出的遗传编程方法应
用于人工智能、机器学习、符号处理等方面。

12/01/09 第二章 遗传算法2009 24


2.1.6 应用举例
例 1 :求最大值:
f(x)=x*sin(10*pi*x)+2.0 x∈[-1, 2].
( x=1.85 时,可取得该区间上的最大值 3.85 )
a. 编码:通常采用二进制编码,将某个变量值代
x' ⋅

表的个体表示为一个二进制串,串长取决于求
解的精度。本题取位串为 22 位,将一个二进
制串( b21b20…b0 )转化为区间 [-1, 2] 内对应的
实数值很简单,只需要采取以下两步:

12/01/09 第二章 遗传算法2009 25


12/01/09 第二章 遗传算法2009 26
I. 将一个二进制串( b21b20…b0 ) 2 代表的二
进制数化为十进制数 ;
21
(b21b20 b0 ) 2 = (∑ bi ⋅ 2 )10 = x′
i

i =0

II. x’ 对应的区间 [-1, 2] 内的实数:


2 − (−1)
x = −1.0 + x ⋅ 22
'

2 −1

12/01/09 第二章 遗传算法2009 27


例如,一个二进制串
s1=<1000101110110101000111> 表示实数 0.637197 。
算法如下 :
x’ = (1000101110110101000111)2=2288967
x = -1.0+2288967*3/(222 - 1)=0.637197
二进制位串 <0000000000000000000000> 与
<1111111111111111111111> ,则分别表示区
间的两个端点- 1 和 2 。

12/01/09 第二章 遗传算法2009 28


b. 产生初始种群:
一个个体由串长为 22 的随机产生的二进制串组成染
色体的基因码,我们可以产生一定数目的个体组成
种群,种群的大小(规模)就是指种群中的个体数
目。
例如产生初始种群如下:
s1=<1000101110110101000111>
→x1=0.637197
s2=<0000001110000000010000>
→x2=-0.958972
s3=<1110000000111111000101>
→x3=1.602466

12/01/09 第二章 遗传算法2009 29


c. 计算适应度:
对于个体的适应度计算,考虑到本例目标函数在定

域内均大于 0 ,而且是求函数最大值,所以直接引

目标函数作为适应度函数:
f (s)=f (x) (s :二进制串; x :实数变量 )
则:
f (s1)=f (x1)=2.586345
f (s2)=f (x2)=1.078878
f (s3)=f (x3)=3.250650
显然,三个个体中 S3 的适应度最大,为最佳个体。
12/01/09 第二章 遗传算法2009 30
d. 遗传操作
I. 选择
根据适配值大小进行选择、复制。

12/01/09 第二章 遗传算法2009 31


初始位串及适配值

编号 位串 (s) 十进制值 (x) 适配值 (f(x)) f(x)/∑f(x)

1 10001011101 0.637197 2.586345 37.4%


10101000111

2 00000011100 -0.958972 1.078878 15.6%


00000010000

3 11100000001 1.602466 3.250650 47.0%


11111000101

12/01/09 第二章 遗传算法2009 32


1(37. 4%)

2(15. 6%)

3(47. 0%)

12/01/09 第二章 遗传算法2009 33


 转动这个按权重划分的转盘 3 次,从而产生 3
个下一代的种群。这 3 个位串是上一代种群的
复制,有的位串可能被复制一次或多次,有的
可能被淘汰。适配值最好的有较多的拷贝,平
均的折中,而最差的被淘汰了。

12/01/09 第二章 遗传算法2009 34


初始位串复制结果
编号 位串 (s) f(x)/∑f(x) 期望得到的复
制数
1 0110111010100 37.4% 1.12
101011111

2 0000001110000 15.6% 0.47


000010000

3 1101111000010 47.0% 1.41


011101111

12/01/09 第二章 遗传算法2009 35


II. 交叉
下面是经过选择操作的两个个体,首先执
行单点交叉,如
s2=<00000 | 01110000000010000>
s3=<11100 | 00000111111000101>
随机选择一个交叉点,例如第 5 位与第 6 位
之间,交叉后产生新的子个体。
s2’=< 00000 | 00000111111000101 >
s3’=< 11100 | 01110000000010000 >
这两个个体的适配值分别为:
12/01/09 第二章 遗传算法2009 36
f (s2’)=f (-0.998113)=1.940865
f (s3’)=f ( 1.666028)=3.459245
个体 s3’ 的适配值比其两个父体的适配值高。

12/01/09 第二章 遗传算法2009 37


III. 变异
假设已经以极小概率选择了 s3 的第 5 个遗
传因子 ( 即第 5 位 ) 变异,遗传因子由原来
的 0 变成 1 ,产生新的个体为
s3’=< 1110100000111111000101 >
( s3 =< 1110000000111111000101>)
计算该个体的适配值:
f (s3’)=f (1.721638)=0.917743
( 变异之前 f (s3)=f (1.602466)=3.250650)
发现 s3’ 的适配值比其父个体的适配值减少了

但……
12/01/09 第二章 遗传算法2009 38
但如果选择第 10 个遗传因子变异,产生新的个
体为 s3”=< 111000000 ‘1’ 111111000101 >
( s3 = < 111000000 0 111111000101>)
f (s3”)=f (1.630818)=3.343555)
(f (s3)=f (1.602466)=3.250650)
又发现个体 s3” 的适配值比其父个体改善了。
这说明了变异操作的“扰动”作用。

12/01/09 第二章 遗传算法2009 39


e. 重复以上操作,直至产生满足要求的个体。

以下为使用“基本遗传算法软件 SGA” 得到的


计算结果。
C:\GA\OUTPUT.TXT

12/01/09 第二章 遗传算法2009 40


示例 遗传算法求函数极值

例 2 : 利用遗传算法求 Rosenbrock 函数
的极大值

 f 2 ( x1 , x2 ) = 100( x12 − x2 ) 2 + (1 − x1 ) 2

− 2.048 ≤ xi ≤ 2.048 (i = 1,2)

12/01/09 第二章 遗传算法2009 41


示例 二进制编码遗传算法求函数极大值

求解该问题遗传算法的构造过程:

( 1 )确定决策变量和约束条件;
( 2 )建立优化模型;
( 3 )确定编码方法

12/01/09 第二章 遗传算法2009 42


用长度为 10 位的二进制编码串来分
别表示两个决策变量 x1,x2 。 10 位二进制
编码串可以表示从 0 到 1023 之间的 1024 个
不同的数,故将 x1,x2 的定义域离散化为
1023 个均等的区域,包括两个端点在内共
有 1024 个不同的离散点。
从离散点 -2.048 到离散点 2.048 ,
分别对应于从 0000000000(0) 到
1111111111(1023)
12/01/09 之间的二进制编码。
第二章 遗传算法2009 43
将 x1,x2 分别表示的两个 10 位长的二
进制编码串连接在一起,组成一个 20 位长的
二进制编码串,它就构成了这个函数优化问
题的染色体编码方法。使用这种编码方法,
解空间和遗传算法的搜索空间就具有一一对
应的关系。

x : 0000110111 1101110001
例如:
表示一个个体的基因型,其中前
12/01/09 第二章 遗传算法2009
10 位表示 44
( 4 )确定解码方法:解码时需要将 20 位
长的二进制编码串切断为两个 10 位长的二
进制编码串,然后分别将它们转换为对应
的十进制整数代码,分别记为 y1 和 y2 。
依据个体编码方法和对定义域的离散化
方法可知,将代码 y 转换为变量 x 的解码公
式为 y i
xi = 4.096 × − 2.048 (i = 1,2)
1023

x : 0000110111 1101110001
12/01/09 第二章 遗传算法2009 45
它由两个代码所组成
y1 = 55, y 2 = 881
上述两个代码经过解码后,可得到两
个实际的值 x = −1.828, x = 1.476
1 2

( 5 )确定个体评价方法:由于
Rosenbrock 函数的值域总是非负的,并且
优化目标是求函数的最大值,故可将个体
的适应度直接取为对应的目标函数值,即
F ( x) = f ( x1 , x2 )
12/01/09 第二章 遗传算法2009 46
选个体适应度的倒数作为目标函数
1
J ( x) =
F ( x)
( 6 )设计遗传算子: 选择运算使用比例选
择算子,交叉运算使用单点交叉算子,变异
运算使用基本位变异算子。
( 7 )确定遗传算法的运行参数:群体大小
M=80 ,终止进化代数 G=100 ,交叉概率
Pc=0.60 ,变异概率 Pm=0.10 。
上述七个步骤构成了用于求函数极大值
的优化计算基本遗传算法。
12/01/09 第二章 遗传算法2009 47
采用上述方法进行仿真,经过 100 步迭
代,最佳样本为

BestS = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

即当 x1 = −2.0480 ,x 2 = − 2.0480 时,
Rosenbrock 函数具有极大值,极大值为
3905.9 。

仿真程序: chap10_1.m
12/01/09 第二章 遗传算法2009 48
遗传算法的优化过程是目标函数 J 和
适应度函数 F 的变化过程。
由仿真结果可知,随着进化过程的进
行,群体中适应度较低的一些个体被逐渐
淘汰掉,而适应度较高的一些个体会越来
越多,并且它们都集中在所求问题的最优
点附近,从而搜索到问题的最优解。

12/01/09 第二章 遗传算法2009 49


示例 3 实数编码遗传算法求函数极大值

求解该问题遗传算法的构造过程:

( 1 )确定决策变量和约束条件;

( 2 )建立优化模型;

( 3 )确定编码方法:用 2 个实数分别表
示两个决策变量,分别将的定义域离散化
为从离散点 -2.048 到离散点 2.048 的
Size
12/01/09
个实数。 第二章 遗传算法2009 50
( 4 )确定个体评价方法:
个体的适应度直接取为对应的目标函
数值,即
F ( x ) = f ( x1 , x 2 )

选个体适应度的倒数作为目标函数

1
J ( x) =
F ( x)

12/01/09 第二章 遗传算法2009 51


( 5 )设计遗传算子:选择运算使用比例选
择算子,交叉运算使用单点交叉算子,变异
运算使用基本位变异算子。
( 6 )确定遗传算法的运行参数:群体大小
M=500 ,终止进化代数 G=200 ,交叉概
率 Pc=0.90 ,采用自适应变异概率
Pm = 0.10 - [1 : 1 : Size] × 0.01/Size

即变异概率与适应度有关,适应度越小,变
异概率越大。
12/01/09 第二章 遗传算法2009 52
4.2.1 遗传算法的模式理论

 从上一节简单遗传算法的操作中,我们可以
看到寻优问题的性能是朝着不断改进的方向发
展的。但是我们怎么能知道对某一特定问题使
用遗传算法会得到优化或接近优化的解呢?

12/01/09 第二章 遗传算法2009 53


2.2.1 遗传算法的模式理论

从上一节简单遗传算法的操作中,我们可以看到
寻优问题的性能是朝着不断改进的方向发展的。
但是我们怎么能知道对某一特定问题使用遗传
算法会得到优化或接近优化的解呢?

12/01/09 第二章 遗传算法2009 54


本节将进一步分析遗传算法的工作机理。
1. 模式;
2. 复制对模式的影响;
3. 交叉对模式的影响;
4. 变异对模式的影响;
5. 遗传算法有效处理的模式数量。

12/01/09 第二章 遗传算法2009 55


1. 模式
 一个模式 (Schemata) 就是一个描述种群中在
位串的某些确定位置上具有相似性的位串子集
的相似性模板 (Similarity Template) 。
 例如: ( 即取位串的十进制数值的平方 )
位串 适配值
x=01101 f(x)=x2 = 132 = 169
11000 576
01000 64
10011 361
在上列种群里的各位串之间,我们能发现具有某
种相似性和这种相似性与高适配值之间具有某种因果
关系。
12/01/09 第二章 遗传算法2009 56
位串 适配值
01101 169
11000 576
01000 64
10011 361
 这种因果关系例如:凡是以“ 1” 开始的位串,
其适配值就高;以“ 0” 开始的位串的适配值就低

 这种相似性正是遗传算法有效工作的因素。根
据对种群中高适配置位串之间的相似性的分析
, Holland 提出了遗传算法的模式理论 .

12/01/09 第二章 遗传算法2009 57


 为了描述一个模式,在用以表示位串的两个字
符的字母 {0,1} 中加入一个通配符“ *” ,就构成
了一个表示模式用的三个字符的字母表
{0 , 1 , *} 。
 因此用三元素字母表 {0 , 1 , *} 可以构造出任
意一种模式。
 一个模式与一个特定位串相匹配是指:该模式
中的 1 与位串中的 1 相匹配,模式中的 0 与位
串的 0 相匹配,模式中的“ *” 可以匹配位串中的
0或1。

12/01/09 第二章 遗传算法2009 58


例如:
•模式 00*00 匹配了两个位串
{00100,00000};
• 模式 *111* 可以和
{01110, 01111, 11110, 11111}
中的任何一个位串匹配,即与长度为 5 中
间三位为“ 1” 的四个位串匹配;
•模式 0*1** 则匹配了长度为 5 、第一
位为 0 、第三位为 1 的 8 个位串
{00100, 00101, 00110, 00111,
01100, 01101, 01110, 01111}
12/01/09 第二章 遗传算法2009 59
 模式的思路为我们提供了一种简单而有效的方
法,使能够在有限字母表的基础上讨论有限长
位串的严谨定义的相似性。
 应强调的是,“ *” 只是一个元符号,既是代表
其他符号的一个符号。它不能被遗传算法直接
处理,只不过是允许来描述特定长度和特定字
母表的位串的所有可能相似性的符号件。
 计算出所有可能的模式是一种非常有启迪性的
工作。

12/01/09 第二章 遗传算法2009 60


 一般地,假定字母表的基数是 k ,例如 {0,1} 的
基数是 2 ,则定义在该字母表上的长度为 l 的
位串中所有可能包含的最大模式数为( k+1)l ,
原因是在 l 个位置中的任何一个位置上都可以取
k 个字符中的任何一个及通配符“ *” ,即共有
k+1 个位置中的任何 一个位置的全排列数为
( k+1)l 。
 例如,对长度 l = 5 , k=2 则会有 3×3×3×3×3
= 35 = 243 = (k+1)l 中不同的相似模板,而位
串的数量仅为 kl =25=32 。可见,模式的数量要
大于位串的数量。

12/01/09 第二章 遗传算法2009 61


 对于任一长度为 l 的给定位串,其中所含模式数
为 2l 个。因为在 l 个位置中的任一位置除了取其
确定值外,还可以取“ *”, 即任一位置上都有两种不
同表示,故有 2l 个不同模式,因此,对于大小为 n
的种群,则包含有 2l ~ n×2l 种模式 .
 种群中位串之间的众多的相似性,可引导遗传算法
有效地搜索。因为既是是一个规模不大的种群,也
包含了丰富的 2l ~ n×2l 个有关这种相似性的信。
 这些相似性和适配值之间的相关性正是是遗传算法
能够进行有效搜索的根本所在 .

12/01/09 第二章 遗传算法2009 62


 为论述方便,首先定义一些名词术语。不失一般性,考
虑在二进制字母表 V={0 , 1} 上构造位串的表示。用大
写字母表示一个位串,如
A = a1a2 a3  al-1al ai ∈ V
这里的 ai (i = 1,2,  , l ) 代表一个二值特性 ai 又
可称为基因。相应地,一个模式是定义在
V += {0,1,* } 之上的,用大写字母 H 表示,如
H=10**11* 。
 在第 t 代的种群用 A(t ) 表示,种群中的个体位
串分别用 Aj ( j = 1 , 2 ,…, n )表示。

12/01/09 第二章 遗传算法2009 63


 为了区分不同类型的模式,对模式 H 定义两个
量:模式位数 (Order) 和模式的定义长度 (Defi-ning
δ 。
Length) 分别表示为 O(H) 和 (H)
• O(H) 是 H 中有定义的非“ *” 为的个数;
δ
• 模式的定义长度 (H) 是指 H 中最两端的有定义位置之间的距

如 H = 00*1*0 , 则 O(H)=4δ, (H)=6-1 = 5
H = **11*** ,则 O(H)=2 , (H) = 4-3 = 1
δ
H = ******* ,则 O(H)=0 , (H)=0
δ
 这两个量为分析位串的相似性及分析遗传操作对重
要模式 ( 称为建筑块 (Building Blocks) 的模式 ) 的影
响提供了基本的手段。

12/01/09 第二章 遗传算法2009 64


2. 复制对模式的影响
 设在给定时间 ( 代 )t ,种群 A(t) 包含有 m
个特定模式 H ,记为
m=m(H, t)
• 在复制过程中, A(t) 中的任何一个位串 Ai
以概率 Pi = f i /∑f i 被选中并进行复制。
• 假如选择是有放回地抽样,且两代种群之
间没有交叠 ( 即若 A(t) 的规模为 n ,则在
产生 A(t+1) 时,必须从 A(t) 选 n 个位串进
匹配池 ).

12/01/09 第二章 遗传算法2009 65


可以期望在复制完成后,在 t+1 时刻,特定
模式 H 的数量为
m( H , t + 1) = m( H , t ) ⋅ n f ( H ) ∑ f i
式中 f (H) 是在 t 时刻对应于模式 H 的位串的
平均配值,因为整个种群的平均适配值
f =∑ f n ,则上式又可写为
i

f (H )
m( H , t + 1) = m( H , t ) ⋅ (2 − 1)
f

12/01/09 第二章 遗传算法2009 66


 可见,经过复制操作后,下一代中特定模式的数量 H 正
比于所在位串的平均值与种群平均适配值的比值。
• f (H)>f 时, H 的数量将增加;
• f (H)< f 时, H 的数量将减少。

种群 A(t) 中的任一模式 H 在复制中都将式 (4-1) 的


规律变化,即
• 适配值高于种群平均值的模式在下一代中的数 量
增加;
• 而适配值低于种群平均值的模式在下一代的数量将减
少。
这种所有模式的增减在复制中是并行进行的 , 遗传
算法中隐含的并行机制就在于此。

12/01/09 第二章 遗传算法2009 67


 差分方程 m(H,t+1)=m(H,t) 即是复制操作对
模式 H 数量影响的定量描述。
 为了进一步分析高于平均适配值的模式数量的
增长,假设 f ( H ) − f = c f (c 是一个
大于零的常数 ) ,则式( 2-1 )可重写为

f +cf
m( H , t + 1) = m( H , t )
f
= (1 + c )m( H , t ) (2 − 2)

12/01/09 第二章 遗传算法2009 68


 从原始种群开始( t = 0 ),并假定是一个稳
定的值,则有
m( H , t + 1) = m( H ,0( t
) 1+c)
可见,对于高于平均适配值的模式的数量将呈
指数形式增长( c>0 )。
 从对复制的分析可以看到,虽然复制过程成功
地以并行方式控制着模式数量以指数形式增减
,但由于复制只是将某些高适配值个体全盘复
制,或是淘汰某些低适配值个体,而决不会产
生新的模式结构,因而性能的改进是有限的。

12/01/09 第二章 遗传算法2009 69


3. 交叉对模式的影响
 交叉过程是位串之间的有组织的而又是随
机的信息交换。
 交叉操作对一个模式 H 的影响和模式的定
义长度 δ(H) 有关。
 δ(H) 越大,模式 H 被分裂的可能性就越
大,因为交叉操作要随机选择出进行匹配
的一对位串上的某一随机位置进行交叉。
 δ(H) 越大, δ(H) 的跨度就大,随机交叉
点落入其中的可能性就越大,从而 H 的存
活率就越低。

12/01/09 第二章 遗传算法2009 70


 例如位串长度 l = 7 ,有如下的包含两个型式的位
串A
A=0111000
H1=*1****0 , δ(H1) = 5
H2=***10** , δ(H2) = 1
• 随机地产生的交叉位置在 3 和 4 之间:
A=011|1000
H1=*1*|***0 , P d = 5/6
H2=***|10** , P d = 1/6

12/01/09 第二章 遗传算法2009 71


• 模式 H1 比模式 H2 更容易被破坏,即 H1 将在交
叉中被破坏。显然被破坏的可能性正比于 δ(H1) 模式
H1 定义长度 δ(H1) = 5 ,如果交叉点始终是随机地从
l -1 = 7-1=6 个可能的位置选取,那么模式 H1 被破
坏的概率为
Pd = δ(H1)/(l -1) = 5/6
它的存活概率为
Ps = 1-Pd = 1/6

12/01/09 第二章 遗传算法2009 72


• 类似的,模式 H2 的定义长度 δ(H2) = 1 ,它被
破坏的概率为 Pd = 1/6 ,存活的概率为 Ps = 1-Pd =
5/6 。推广到一般情况,可以计算出任何模式的交叉存
活概率的下限为
δ(H)
Ps ≥ 1 −
l −1
• 在上面的讨论中,我们均假设交叉的概率为 1 。若交
叉的概率为 Pc( 即在选出进匹配池的一对位串上发生交
叉操作的概率 ) ,则存活率由下式表示:
δ(H)
Ps ≥ 1 − Pc
l −1
12/01/09 第二章 遗传算法2009 73
 结合式( 4-1 ),在复制、交叉操作之后,模式 H
的数量为
f (H )
m( H , t + 1) = m( H , t ) Ps
即 f
f (H ) δ(H)
m( H , t + 1) ≥ m( H , t ) [1 − Pc ]
f l −1
因此,在复制和交叉的综合作用之下,模式 H 的数量变
化取决于其平均适配值的高低 (f (H)> 或 f (H)< ) 和定
义长度 δ(H) 的长短, f (H) 越大, δ(H) 越小,则 H 的数
f
量就越多。
f

12/01/09 第二章 遗传算法2009 74


4. 变异对模式的影响
 变异是对位串中的单个位置以概率 Pm 进行随
机替换,因而它可能破坏特定的模式。
 一个模式 H 要存活,意味着它所有的确定位
置都存活。因此,由于单个位置的基因值存活
的概率为 1- Pm( 保持率 ) ,而且由于每个变异
的发生是统计独立的,因此,一个特定模式仅
当它的 O(H) 个确定位置都存活时才存活,即
( 1- Pm )自乘 O(H) 次,从而得到经变异后
,特定模式的存活率为
(1- Pm)O(H)

12/01/09 第二章 遗传算法2009 75


 由于一般情况自下 Pm«1 , H 的存活率可以表示

(1 − Pm ) O( H )
≈ 1 − O( H ) Pm
综合考虑复制、交叉和变异操作的共同作用,
则模式 H 在经历了复制、交叉、变异操作之后
,在下一代中的数量可表示为
f (H ) δ (H )
m( H , t + 1) ≥ m( H , t ) [1 − Pc ][1 − O( H ) Pm ]
f l −1
上式也可近似表示为
f (H ) δ (H )
m( H , t + 1) ≥ m( H , t ) [1 − Pc − O( H ) Pm ]
f l −1
12/01/09 第二章 遗传算法2009 76
 由上述分析可以得出结论:定义长度短的、确
定位数少的、平均适配值高的模式数量将随着
代数的增加呈指数增长。
 这个结论称为模式理论 (Schema Theory) 或遗
传算法的基本定理 (The Fundamental of
Genetic Algorithms) 。
 根据模式理论,随着遗传算法的一代一代地进
行,那些定义长度短的、位数少的、高适配值
的模式将越来越多,因而可期望最后得到的位
串 ( 即这些模式的组合 ) 的性能越来越得到改善
,并最终趋向全局的最优。

12/01/09 第二章 遗传算法2009 77


5. 遗传算法有效处理的模式数
 根据前面的分析可知,当位串长度为 l 时
,一个包含 n 个位串的种群中含有的模式
个数在 2l ~ n•2l 之间。由于定义长度较长
,确定位数较多的模式存活率较低,那么
如何估计在新的一代的产生过程中经历了
复制、交叉和变异之后被有效处理的模式
的个数呢?

12/01/09 第二章 遗传算法2009 78


 例:计算在一个长度为 l 的位串中,模式长度≤ l s
的模式个数。
假设 l =10,l s=5, 有如下位串 :
1011100010
• 先计算确定位处在前 5 个位置上的模式:
10111 00010

%%%%%
即形如 *****
的模式个数,其中%表示该位置要么取
原位串的值 (0 或 1), 要么是 * 。
显然,共有 2l 个该模式。

12/01/09 第二章 遗传算法2009 79


• 然后将框架向后移一位,计算下 5 个位置上的
模式 :
1 01110 0010
即形如
* %%%%% * * * *
的模式,亦有2l s 个
如此一共计算 l-ls+1 次。故总的模式数为
2 (l − ls + 1) ,但是这些模式中,有近一半是
ls

重复的。

12/01/09 第二章 遗传算法2009 80


对于 n 个位串的种群,总模式数的上限为
l s −1
n⋅2 (l − ls + 1) ,但一般达不到这个数量。
确定位数少的模式在一个较大的种群中会有重
复。为了能教准确地估计,我们选取一个恰当
地种群规模 n-2ls/2 。之所以这样做,是因为我
们期望确定位数≥ l s /2 的模式不多于一个。在
一个长度为 ls 的模式中,确定位数 <l s /2 的模式
数和确定位数 >l s /2 的模式数是一样多的。

12/01/09 第二章 遗传算法2009 81


 若我们仅计算确定位数≥ l s /2 的模式数 ( 确定位
数少的模式重复的可能性大 ) ,且根据 n = l s /
2 的假设,可得总模式数的下限值 ns 为
l s −1
ns ≥ n ⋅ 2 (l − ls + 1) 2
即 ls − 2
ns ≥ n(l − ls + 1) ⋅ 2
将n =2 ls 2
代入,且取等号,有
l − ls + 1 3
ns = ⋅n
即 ns = cn
4
3

所以在产生新的一代的过程中,遗传算法处理
的模式数的数量级为 O(n3) ,这是遗传算法的一
个重要特征。
12/01/09 第二章 遗传算法2009 82
结论
 在产生新的一代的过程中,遗传算法处理的模式数
的数量级为 O(n3) ,这是遗传算法的一个重要特征

 尽管我们只完成了正比于种群规模 n 的计算量,
但处理的模式数却正比于种群规模的立方。这就
是遗传算法隐含的并行机制,或者说是遗传算法
在计算上的并行性。
 遗传算法是通过定义长度短、确定位数少、适配
值高的模式反复抽样、组合来寻找最佳点的。称
这些使遗传算法有效工作的模式为建筑块。

12/01/09 第二章 遗传算法2009 83


GA 的收敛性问题

12/01/09 第二章 遗传算法2009 84


2.2.2 遗传算法实现中的
一些基本问题
 在遗传算法的实现中,除了复制、交叉、变异
基本操作外,还必须考虑目标函数到个体适配
值的映射、适配值调整、编码原则和多参数编
码映射方法等基本问题。
1. 目标函数值到适配值形式的映射;
2. 适配值调整;
3. 编码原则;
4. 多参数级联定点映射编码

12/01/09 第二章 遗传算法2009 85


1. 目标函数值到适配值形式的映射;
 适配值是非负的,任何情况下总希望越大越好;
而目标函数值有正,有负,甚至可能是复数值,
并且目标函数和适配值之间的关系也是多种多样
的。
 如求最大值对应点时,目标函数和适配值变化
方向相同;
 求最小值对应点时,变化方向恰好相反;目标
函数值越小的点,适配值越大。
因此,存在目标函数值向适配值映射的问题
.

12/01/09 第二章 遗传算法2009 86


 首先应保证映射后的适配值时非负的,其次目
标函数的优化方向应对应于适配值的增大方向

• 对最小化问题,一般采用如下适配值函数

f (x) 和目标函数 g(x) 的映射关系:


cmax − g ( x), g ( x) < cmax
f ( x) = 
0, 其他
其中 cmax 可以是一个输入参数,或是理论上的
最大值,或是到目前所有代 ( 或最近的 k 代 )
之中见到的 g(x) 的最大值,此时 cmax 随着代数
会有变化。
12/01/09 第二章 遗传算法2009 87
• 对最大问题,一般采用下述方法:

 g ( x) − cmin, g ( x) − cmin > 0


f ( x) = 
0, 其他
其中 cmin 既可以是输入值,也可以是当前最小或最
近 k 代中最小值。
• 指数函数方法:
f ( x) = c y
y = g ( x)

其中 c 一般取 1.618 或 2( 最大化 ) , 0.618( 最小


化 ) 。这样,既保证了 f(x)≥0 ,又使 f (x) 的增大方
向和优化方向一致。
12/01/09 第二章 遗传算法2009 88
2. 适配值调整
 为了使遗传算法有效地工作,必须保证种群内位串
地多样性和位串之间地竞争机制。
 将遗传算法地运行分为开始、中间和结束三个阶段
:
 在开始阶段,若一个规模不太大的种群内有少数
非凡的个体 ( 适配值很高的位串 ) ,按通常的选
择方法 ( 选择复制的概率 f i /∑f i ,期望的复制数
) ,这些个体会被大量复制,在种群中占
fi fi
有大的比重,这样就会减少种群的多样性,导致
过早收敛,从而可能丢失一些有意义的搜索点或
最优点,而进入局部最优。

12/01/09 第二章 遗传算法2009 89


 在结束阶段,即使种群内保持了很大的多样性,但若
所有或大多数个体都有很高的适配值从而种群平均适
配值和最大适配值相差无几,那么平均适配值附近的
个体和具有最高适配值的个体,被选中的机会相同,
这样选择成了一个近乎随机的步骤,适配值的作用就
会消失,从而搜索性能就得不到明显改进。
因此有必要对种群内各位串的适配值进行有效调
整,既不能相差太大,又不要拉开档次,强化位
串之间的竞争性。

12/01/09 第二章 遗传算法2009 90


 适配值线性调整方法简介如下:
线性调整是一个有效的调整方法。设 f 是原适配值,
f ’ 是调整后的适配值,
f ’ =af +b (4-8)
系数 a , b 可以通过多种方法选取。
不过,我们要求无论在何种情况下, f ’avg 应与
f avg 相等,即应满足的条件为
f ’avg= f avg
f ’max=cmin· f avg (4-9)
其中, cmin 是最佳种群所要求的期望拷贝数,是一个
经验值,对于一个不大的种群 (n=50~100) 来说,可在
1.2~2 的范围内取值。
12/01/09 第二章 遗传算法2009 91
 正常条件下的线性调整方法如图 4-4 所示:

f '
2 favg
favg

fm in

0
fm in favg fm ax f
图 4-4 正常条件下的线性调整法
12/01/09 第二章 遗传算法2009 92
 线性调整法在遗传算法的后期可能产生的一个
问题是,一些个体的适配值远远小于平均适配
值与最大适配值,而往往平均适配值与最大适
配值又十分接近, cmin 的这种选择方法将原是适
配值函数伸展成负数,如图 4-5 所示,当无法
找到一个合适的 cmin 时,我们仍保持 f ’avg= f
avg ,而将 f min 映射到 f ’min=0

12/01/09 第二章 遗传算法2009 93


f '
2 f 'avg
f 'avg
f m in
0 f
f ' f avg f 'avg
m in

Í ¼ 4 - 5 Ï ß Ð ÔÓ ³ É ä · ½ · ¨ Ö ®Ò »

12/01/09 第二章 遗传算法2009 94


3. 编码原则
 遗传算法参数编码原则有两种:深层意义上
的建筑块原则和最小字母表原则。而后者识
一种应用广泛的使用原则。
 最小字母表原则则要求选择一个使问题得以
自然表达的最小字母表进行编码。

12/01/09 第二章 遗传算法2009 95


• 在前面的讨论中,我们都是使用二进制字母表
{0, 1} 进行编码,任何一个长度为 l 的位串都包
含在 {0, 1}l 中。
• 根据遗传算法的模式理论,遗传算法能有效工
作的根本原因,在于其能有效地处理种群中的
大量模式,尤其使那些定义长度短、确定位数
少、适配值高的模式 ( 即建筑快 ) 。
 因此,编码应使确定规模的种群中包含尽可能
多的模式。

12/01/09 第二章 遗传算法2009 96


 表 4-5 中给出了一个参数的二进制编码和非二
进制编码的对比情况,即将 [0, 31] 上的二进制
整数一一 二进制 非二进制
对应地映射到一 00000 A
个有 32 个字母的 00001 B
字母表中,这个 …… ……
字母表包含 26 11001 Z
各英文字母 11010 1
(A~Z) 和 6 个 11011 2
数字 (1~6) 。 …… ……
11111 6
表 4-5 二进制与非二进制编码
12/01/09 第二章 遗传算法2009 97
 在二进制编码中,通过代码表中小部分关键 代码可以
找到重要地相似性,而在非二进制编码中,只能看到
单一的字母表,看不出代码中的相似性。
 为了进一步了解二进制编码的数学意义,假设有一个
非二进制的包含 k 个字母编码的字母表 V’ 即二进制编
码的字母表 V ,即
V’={a1, a2, …ak}
V ={0, 1}
 为了表达同样多的点数,在各自的空间中,两种编码
的长度分别为 l’ 和 l ,即有

2 =k
l l'

12/01/09 第二章 遗传算法2009 98


 此时,在二进制编码中包含的模式数 ( 单个位
串 ) 为 3l 。在非二进制编码中,单个位串包含的
模式数为 (k+1)l ’ 。
可以证明,当 k>2 时, 3l>(k+1)l ’ ,下面举一个
例子:
取 V’={0, 1, 2, 3} ,则 l=6 时, l’ = 3 ,
有 3l =36=729( 二进制编码的模式数 )

(k+1)l ’=(4+1)l ’=53=125
( 非二进制编码的模式数 )
可见,二进制编码方案能取得最大的模式数 .
12/01/09 第二章 遗传算法2009 99
 在有 n 个长度为 l的位串的种群中,我们仅考虑存活
率大于 Ps( 一个给定的常数 ) 的模式,即死亡率 ε<1-
Ps 。若变异概率很小,可忽略变异操作 , 则经过交叉操
作,某一模式的死亡率 Pd=δ(H)/l -1.
为了保证其存活率大于 Ps ,有 Pd<ε ,即
δ (H )

或为 l −1
δ ( H ) < ε (l − 1)
所以模式 H 的长度 l s ( 为定一长度加 1, 即 δ(H) + 1)
应满足下式:
ls < ε (l − 1) + 1 < δ ( H ) + 1

12/01/09 第二章 遗传算法2009 100


4. 多参数级联定点映射编码
 对于具有多个实数参数的函数优化问题,一个实
用的多参数编码方案是:多参数级联定点映射编
码方法。
 前面我们已经考虑过无符号定点整数的编
码, x∈[0, 2l] 。如果我们要求在参数空间编码,
一种改造这一区间的方法是将解码后的无符号这
个整数 [0, 2l] 线性映射到特定区间 [Umin, Umax] 上。
这样,我们可以仔细控制一些决定性变量的变化
范围和精度,这一映射代码的精度可以写成:

U max − U min
δ= (2 − 10)
2l − 1
12/01/09 第二章 遗传算法2009 101
 为了设计多参数编码,我们可以把互相关联的参
数按要求简化成若干单一参数代码。每一个代码
可以有它自己的“子长度” [Umin, Umax] ,如图
4-6 所示。单参数x (l = 4)
1 1

0 0 0 0 → U min
1 1 1 1 → U max
(中间值线性映射)
多参数编码(10个参数)
0 0 0 1 0 1 0 1  11 0 0 1111
x1 x2 x9 x10
图4 − 6 多参数级联定点映射编码
12/01/09 第二章 遗传算法2009 102
 假设有 n 个参数需要编码:

x1 ∈ [U (1)
min ,U (1)
max ]; x2 ∈ [U ( 2)
min ,U ( 2)
max ]

xn ∈ [U (n)
min ,U (n)
max ]
采用二进制编码,先对各参数分别编码:

12/01/09 第二章 遗传算法2009 103


U (1)
− U (1)
x1: l1位, U1 ∈ [0,2 ];δ1 = maxl1 min
l1

2 −1
U ( 2)
− U ( 2)
x2: l2 位, U 2 ∈ [0,2l1 ];δ 2 = maxl2 min
2 −1

U (n)
−U (n)
xn: ln 位, U n ∈ [0,2 ];δ n = l1 max min

2 −1
ln

建立映射
xi = U (i )
min + U iδ i (4 − 11)

12/01/09 第二章 遗传算法2009 104


级联各参数编码成为一个整体,即为
l1 l2  ln
| b11b12  b1l1 | b21b22  b2l2 |  bij  | bn1bn 2  bnln |
U1 U2  Un
其中, bij∈[0, 1] 。

12/01/09 第二章 遗传算法2009 105


图 4-7 是一种多参数交叉编码方法。
x1 x2

位串

x3 x4

12/01/09 第二章 遗传算法2009 106


遗传算法的计算机实现问题

1 。复制
复制操作可以通过随机方法来实现。首先产
生 0~1 之间均匀分布的随机数,若某串的
复制概率为 40% ,则当产生的随机数在
0.40~1.0 之间时,该串被复制,否则被淘
汰。

12/01/09 第二章 遗传算法2009 107


评价(计算适应度)
 Ji=1./F;
 %****** Step 1 : Evaluate BestJ ******
 BestJ(k)=min(Ji);

 fi=F; %Fitness Function


 [Oderfi,Indexfi]=sort(fi); %Arranging fi small to bigger
 Bestfi=Oderfi(Size); %Let Bestfi=max(fi)
 BestS=E(Indexfi(Size),:); %Let BestS=E(m), m is the
Indexfi belong to max(fi)
 bfi(k)=Bestfi;

12/01/09 第二章 遗传算法2009 108


%****** Step 2 : Select and Reproduct
Operation******
 fi_sum=sum(fi);
 fi_Size=(Oderfi/fi_sum)*Size;

 fi_S=floor(fi_Size); %Selecting Bigger fi value


 kk=1;
 for i=1:1:Size
 for j=1:1:fi_S(i) %Select and Reproduce
 TempE(kk,:)=E(Indexfi(i),:);
 kk=kk+1; %kk is used to reproduce
 end
 end

12/01/09 第二章 遗传算法2009 109


2 。交叉
 pc=0.60;
 n=ceil(20*rand);
 for i=1:2:(Size-1)
 temp=rand;
 if pc>temp %Crossover Condition
 for j=n:1:20
 TempE(i,j)=E(i+1,j);
 TempE(i+1,j)=E(i,j);
 end
 end
 end
 TempE(Size,:)=BestS;
 E=TempE;

12/01/09 第二章 遗传算法2009 110


3 。变异
 pm=0.1; %Big mutation

 for i=1:1:Size
 for j=1:1:2*CodeL
 temp=rand;
 if pm>temp %Mutation Condition
 if TempE(i,j)==0
 TempE(i,j)=1;
 else
 TempE(i,j)=0;
 end
 end
 end
 end

12/01/09 第二章 遗传算法2009 111


遗传算法的改进

1 。自适应变异,交叉因子
2 。实数编码

12/01/09 第二章 遗传算法2009 112


● 高级 GA 算法
1 )操作的改进

交换方法的改进:多点交换;重组运算
重组运算:解决染色体分布过于集中问题。把适应度函数做进
一步处理。
n
f s ( xi ) = f ( xi ) / ∑s(d ( xi , x j ))
j =1

s (d ) 是共享度函数
2 )算法的改进

微种群遗传算法( GA )

双种群遗传算法( DPGA )
12/01/09 第二章 遗传算法2009 113
µ GA 算法

终止条件: 1 )达到预定指标; 2 )达到预定代数。


12/01/09 第二章 遗传算法2009 114
双种群算法( DPGA )
基本思想:利用人类社会分工合作的机理

分成:全局种群——粗搜索,寻找可能存在的最优区域;
局部种群 ——精搜索在全局划定的区域内,寻
找最优点。

12/01/09 第二章 遗传算法2009 115


思考题
1 。试采用遗传算法 /PSO 算法训练 BP 神经网络,求解 XOR 问题
2 。对工业过程对象
G(s)=ke-ds /(1 + T1s ) (1 + T2s )
设 T1 = 50 , T2 = 100 , k=5,d=5
试采用遗传算法 /PSO 算法优化 PID 控制器
Gc(s)=U(s)/E(s)=kp+ki/s+kds
性能指标取 ITAE ,用 Matlab 仿真

T
J=t∫
() et d
t
0

12/01/09 第二章 遗传算法2009 116


12/01/09 第二章 遗传算法2009 117
12/01/09 第二章 遗传算法2009 118
复习

1 。遗传算法的基本原理
选择( selection ) , 复制 (reproduction ),
交叉 (crossover) ,变异 (mutation)
2 。模式定理

f (H ) δ( H )
m( H , t +1) ≥ m( H , t ) [1 −Pc −O ( H ) Pm ]
f l −1

12/01/09 第二章 遗传算法2009 119

You might also like