110
1 第第第 第 第第

第五章遗传算法

Embed Size (px)

DESCRIPTION

第五章遗传算法. 第五章 遗传算法. 一 . 前言 二 . 基本算法 三 . 模板理论 四 . 算法变形 五 . 算法应用 六 . 学习遗传算法的几点体会. 一 . 前言. 遗传算法的产生与发展 早在 50 年代 ,一些生物学家开始研究运用数字计算机模拟生物的自然遗传与自然进化过程 1963 年 ,德国柏林技术大学的 I. Rechenberg 和 H. P. Schwefel 做风洞实验时,产生了 进化策略 的初步思想 - PowerPoint PPT Presentation

Citation preview

Page 1: 第五章遗传算法

1

第五章 遗传算法

Page 2: 第五章遗传算法

2

第五章 遗传算法

一 . 前言二 . 基本算法三 . 模板理论四 . 算法变形五 . 算法应用六 . 学习遗传算法的几点体会

Page 3: 第五章遗传算法

3

1. 遗传算法的产生与发展 早在 50 年代,一些生物学家开始研究运用数字

计算机模拟生物的自然遗传与自然进化过程 1963 年,德国柏林技术大学的 I. Rechenberg 和

H. P. Schwefel 做风洞实验时,产生了进化策略的初步思想

60 年代, L. J. Fogel 在设计有限态自动机时提出进化规划的思想。 1966 年, Fogel 等出版了《基于模拟进化的人工智能》,系统阐述了进化规划的思想

一 . 前言

Page 4: 第五章遗传算法

4

1. 遗传算法的产生与发展 60 年代中期,美国 Michigan 大学的 J. H.

Holland 教授提出借鉴生物自然遗传的基本原理用于自然和人工系统的自适应行为研究和串编码技术

1967 年,他的学生 J. D. Bagley 在博士论文中首次提出“遗传算法 (Genetic Algorithms)” 一词

1975 年, Holland 出版了著名的“ Adaptation in Natural and Artificial Systems” ,标

志遗传算法的诞生

一 . 前言

Page 5: 第五章遗传算法

5

1. 遗传算法的产生与发展 70 年代初, Holland 提出了“模式定

理”( Schema Theorem ),一般认为是“遗传算法的基本定理”,从而奠定了遗传算法研究的理论基础

1985 年,在美国召开了第一届遗传算法国际会议,并且成立了国际遗传算法学会( ISGA , International Society of Genetic Algorithms )

一 . 前言

Page 6: 第五章遗传算法

6

1. 遗传算法的产生与发展 1989 年, Holland 的学生 D. J. Goldherg 出版了

“ Genetic Algorithms in Search, Optimization, and Machine Learning” ,对遗传算法及其应用作了全面而系统的论述

1991 年, L. Davis 编辑出版了《遗传算法手册》,其中包括了遗传算法在工程技术和社会生活中大量的应用实例

2000 年,汪定伟教授翻译出版了《遗传算法与工程优化》

一 . 前言

Page 7: 第五章遗传算法

7

1. 遗传算法的产生与发展 几个名词

• 遗传算法 ( Genetic Algorithm, GA )• 进化算法( Evolutionary Algorithm, EA )• 计算智能( Computational Intelligence, CI )• 人工智能( Artificial Intelligence, AI )

一 . 前言

Page 8: 第五章遗传算法

8

1. 遗传算法的产生与发展 几个名词

• 进化算法 EA :由于遗传算法、进化规划和进化策略是不同领域的研究人员分别独立提出的,在相当长的时期里相互之间没有正式沟通。直到 90 年代,才有所交流。他们发现彼此的基本思想具有惊人的相似之处,于是提出将这类方法统称为“进化算法”。后来,遗传规划和差分进化也被归纳到 EA 范畴之内。

一 . 前言

Page 9: 第五章遗传算法

9

1. 遗传算法的产生与发展 几个名词

• 计算智能 CI :利用计算机实现的具有一定启发式特征的一类优化方法的统称。这些方法具备的要素:自适应的结构、随机产生的或指定的初始状态、适应度的评测函数、修改结构的操作、系统状态存储器、终止计算的条件、指示结果的方法、控制过程的参数。计算智能方法具有自学习、自组织、自适应的特征和简单、通用、鲁棒性强、适于并行处理的优点。

一 . 前言

Page 10: 第五章遗传算法

10

1. 遗传算法的产生与发展 几个名词

• 人工智能 AI :二十世纪七十年代以来被称为世界三大尖端技术之一(空间技术、能源技术、人工智能)。 AI 是研究人类智能活动的规律,构造具有一定智能的人工系统,研究如何让计算机去完成以往需要人的智力才能胜任的工作,也就是研究如何应用计算机的软硬件来模拟人类某些智能行为的基本理论、方法和技术。

一 . 前言

Page 11: 第五章遗传算法

11

2. GA 的生物学原理 达尔文的自然选择说

• 遗传:子代和父代具有相同或相似的性状,保证物种稳定性

• 变异:子代与父代,子代不同个体之间总有差异,是生命多样性的根源

• “ 自然选择、适者生存”:具有适应性变异的个体被保留,不具适应性变异的个体被淘汰,这是一个长期的、缓慢的、连续的过程

一 . 前言

Page 12: 第五章遗传算法

12

2. GA 的生物学原理 遗传学的基本术语

• 染色体( chromosome ):遗传物质的载体• 脱氧核糖核酸( DNA ):大分子有机聚合物,双螺旋结构

• 遗传因子( gene ): DNA 长链结构中占有一定位置的基本遗传单位

一 . 前言

Page 13: 第五章遗传算法

13

2. GA 的生物学原理 遗传学的基本术语

• 基因型( genotype ):遗传因子组合的模型• 表现型( phenotype ):由染色体决定性状

的外部表现

一 . 前言

1 1 1 1 1 1 1

1 1 1 0 1 1 1

Page 14: 第五章遗传算法

14

2. GA 的生物学原理 遗传学的基本术语

• 基因座( locus ):遗传基因在染色体中所占据的位置,同一基因座可能有的全部基因称为等位基因( allele )

• 个体( individual ):带有染色体特征的实体• 种群( population ):个体的集合

一 . 前言

Page 15: 第五章遗传算法

15

2. GA 的生物学原理 遗传学的基本术语

• 进化( evolution ):生物在其延续生存的过程中,逐渐适应其生存环境,使得其品质不断得到改良,这种生命现象称为进化

• 适应度( fitness ):度量某个物种对于生存环境的适应程度。对生存环境适应程度较高的物种将获得更多的繁殖机会,而对生存环境适应程度较低的物种,其繁殖机会就会相对较少,甚至逐渐灭绝

一 . 前言

Page 16: 第五章遗传算法

16

2. GA 的生物学原理 遗传学的基本术语

• 复制( reproduction ):细胞在分裂时,遗传物质 DNA 通过复制而转移到新产生的细胞中,新的细胞就继承了旧细胞的基因

• 交叉( crossover ):在两个染色体的某一相同位置处 DNA 被切断,其前后两串分别交叉组合形成两个新的染色体。又称基因重组,俗称“杂交”

一 . 前言

Page 17: 第五章遗传算法

17

2. GA 的生物学原理 遗传学的基本术语

• 变异( mutation ):在细胞进行复制时可能以很小的概率产生某些复制差错,从而使DNA 发生某种变异,产生出新的染色体,这些新的染色体表现出新的性状

• 编码( coding ):表现型到基因型的映射• 解码( decoding ):基因型到表现型的映射

一 . 前言

Page 18: 第五章遗传算法

18

2. GA 的生物学原理 1930~ 1947 年,达尔文进化论与遗传学走向融合, T. Dobzhansky 于 1937 年发表的《遗传学与物种起源》是融合进化论与遗传学的代表作

生物物种作为复杂系统,具有奇妙的自适应、自组织和自优化能力,这是一种生物在进化过程中体现的智能,显然在计算科学上具有直接的借鉴意义

一 . 前言

Page 19: 第五章遗传算法

19

3. GA 的基本思想 产生一个种群 根据问题的目标函数构造适值函数 根据适值函数的好坏,不断选择繁殖 若干代后得到适应值最大的个体即最优解

一 . 前言

遗传算法是一种基于种群的,迭代的元启发式优化算法

Page 20: 第五章遗传算法

20

1. GA 的基本流程

见下页

二 . 基本算法

Page 21: 第五章遗传算法

21

二 . 基本算法

评估 ( 在解空间做 )

向改进方向移动 ( 在编码空间做 )

产生初始种群

开始

判断停止条件 输出

计算适值函数

选择

遗传运算

更新种群

停止Y

N

Page 22: 第五章遗传算法

22

1. GA 的基本流程 解空间与编码空间的转换适值计算需要在解空间内进行,而遗传运算是对编码空间操作的,所以要进行两个空间的转换

二 . 基本算法

Page 23: 第五章遗传算法

23

1. GA 的基本流程

二 . 基本算法

解空间

编码

011001100

编码空间

011110011遗传运算

后代

011000000

011110001

解空间

更新

解码计算适值

评估

Page 24: 第五章遗传算法

24

2. GA 的构成要素 个体

• 编码方法:二进制、整数编码、顺序编码、实数编码等,问题依赖的

• 适值函数:根据目标函数设计(适值函数的标定, fitness scaling ),可以直接将目标函数作为适值函数

二 . 基本算法

Page 25: 第五章遗传算法

25

2. GA 的构成要素 种群

• 种群大小:依赖于计算机的计算能力和计算复杂度,通常设为常数

• 初始种群的产生:依赖于编码方法,随机或者依据一定的启发式产生

二 . 基本算法

Page 26: 第五章遗传算法

26

2. GA 的构成要素 选择

• 选择概率的计算方法:按比例的适应度函数( proportional fitness assignment )、基于排序的适应度计算( rank-based fitness assignment )等

• 选择算法:轮盘赌选择( roulette wheel selection )、随机遍历抽样( stochastic universal selection )、截断选择( truncation selection )、锦标赛选择( tournament selection )等

二 . 基本算法

Page 27: 第五章遗传算法

27

2. GA 的构成要素 交叉

• 交叉率:一对父代个体进行交叉的概率,用Pc表示,通常设为 0.8-0.9

• 二进制及整数编码:单切点交叉( single-point crossover )、双切点交叉( double-point crossover )、均匀交叉( uniform crossover )

• 顺序编码:部分映射交叉 ( partially mapped crossover) 、顺序交叉 (order crossover) 、循环交叉 (cycle crossover)

二 . 基本算法

Page 28: 第五章遗传算法

28

2. GA 的构成要素 交叉

• 实数编码:离散重组( discrete recombination )、中间重组( intermediate recombination )线性重组( linear recombination )

二 . 基本算法

Page 29: 第五章遗传算法

29

2. GA 的构成要素 变异

• 变异率:染色体上基因发生变异的概率,用Pm表示,一般设定得比较小,在 0.05以下

• 二进制及整数编码:位变异• 顺序编码: 2-opt 或者 k-opt• 实数编码:实值变异

二 . 基本算法

Page 30: 第五章遗传算法

30

3. 计算举例 产生初始种群

计算适值

二 . 基本算法

0001100000 0101111001 0000000101 1001110100 1010101010

1110010110 1001011011 1100000001 1001110100 0001010011

( 8 ) ( 5 ) ( 2 ) ( 10 ) ( 7 )

( 12 ) ( 5 ) ( 19 ) ( 10 ) ( 14 )

Page 31: 第五章遗传算法

31

3. 计算举例 选择

二 . 基本算法

个体 染色体 适值 选择概率 累积概率1 0001100000 8

2 0101111001 5

3 0000000101 2

4 1001110100 10

5 1010101010 7

6 1110010110 12

7 1001011011 5

8 1100000001 19

9 1001110100 10

10 0001010011 14

8

8 + 5 + 2 + 10 + 7 + 12 + 5 + 19 + 10+ 14

0.086957

5

8 + 5 + 2 + 10 + 7 + 12 + 5 + 19 + 10+ 14

0.054348

0.021739

0.108696

0.076087

0.130435

0.054348

0.206522

0.108696

0.152174

Page 32: 第五章遗传算法

32

3. 计算举例 选择

二 . 基本算法

个体 染色体 适值 选择概率 累积概率1 0001100000 8

2 0101111001 5

3 0000000101 2

4 1001110100 10

5 1010101010 7

6 1110010110 12

7 1001011011 5

8 1100000001 19

9 1001110100 10

10 0001010011 14

0.086957

0.054348

0.021739

0.108696

0.076087

0.130435

0.054348

0.206522

0.108696

0.152174

0.086957

0.141304

0.163043

0.271739

0.347826

0.478261

0.532609

0.739130

0.847826

1.000000

Page 33: 第五章遗传算法

33

3. 计算举例 选择

二 . 基本算法

在 0-1 之间产生随机数:

个体 染色体 适应度 选择概率 累积概率1 0001100000 8

2 0101111001 5

3 0000000101 2

4 1001110100 10

5 1010101010 7

6 1110010110 12

7 1001011011 5

8 1100000001 19

9 1001110100 10

10 0001010011 14

0.086957

0.054348

0.021739

0.108696

0.076087

0.130435

0.054348

0.206522

0.108696

0.152174

0.086957

0.141304

0.163043

0.271739

0.347826

0.478261

0.532609

0.739130

0.847826

1.000000

0.0702210.5459290.7845670.4469300.5078930.2911980.7163400.2709010.3714350.854641

淘汰!

淘汰!

Page 34: 第五章遗传算法

34

3. 计算举例 交叉( pc=0.9 )

在 0-1 之间产生随机数

二 . 基本算法

0001100000 1110010110 1100000001 1001110100 1010101010

1110010110 1001011011 1100000001 1001110100 0001010011

0001100000 1110010110 1100000001 1001110100 1010101010

1110010110 1001011011 1001110100 1100000001 0001010011

0001

1110100000

010110 111

100 0010110

1011011 110000

100111

0100

0001

1001110100

1100000001

1010101

0001010010

011

0.755361 0.321546 0.568922 0.925140 0.154232

Page 35: 第五章遗传算法

35

3. 计算举例 变异( pm=0.05 )

在 0-1 之间产生随机数

二 . 基本算法

0001010110 1111011011 1100000100 1001110100 1010101011

1110100000 1000010110 1001110001 1100000001 0001010010

0001010110 1111011011 1100000100 1001100100 1010101011

1110100000 1000010110 1001010001 1100000001 0101010000

Page 36: 第五章遗传算法

36

3. 计算举例 至下一代,适应度计算→选择→交叉→变异,

直至满足终止条件

二 . 基本算法

Page 37: 第五章遗传算法

37

1. 基本概念 模板: 若干位确定,若干位不确定的一类个体

的总称,用 S表示,如 0 或 1 模板的长度 l(s) :模板第一个确定位与最后一个确定位之间的长度

模板的阶数 K(s) :模板中确定位的个数

例如 若 S : 0 1 1 ,则 l(s)=4 , K(s)=3

三 . 模板理论

Page 38: 第五章遗传算法

38

1. 基本概念 常识

• n位编码总长 n-1• 阶数为 K(s) 的模板 S 中的个体总数为• 对于一个 n位二进制表达,染色体长度为

n ,则模板数 > 个体数 (3n>2n) ,即分类方法数 > 个体总数,因模板因子、个体因子分别为 (0,1,) 、 (0,1) 。

三 . 模板理论

2n K s

Page 39: 第五章遗传算法

39

2. 模板理论 引理 1 :在正比选择下,模板在第 t+1 代的期望

个体数为:

其中, f(s,t) 是第 t 代模板 S 中所有个体的适值均值与种群中所有个体的适值均值的比, N(s,t)是第 t 代 S 的个体数。

三 . 模板理论

( , 1) ( , ) ( , )E s t f s t N s t

Page 40: 第五章遗传算法

40

2. 模板理论 引理 1

证明:

三 . 模板理论

1 21 2

1 2

( , 1)

( , )( , )

( , )

( , ) ( , )

NSNS

NS

s

F F FE s t P P P NP NP

SumF F F

N s tfN s tN s t

Sum fNP

f s t N s t

Page 41: 第五章遗传算法

41

2. 模板理论 引理 1

注释种群的适值和 Sum 为: ,则选择概率 Pi 为:

三 . 模板理论

1

NP

ii

Sum F

1

/NP

i i ii

P F F

Page 42: 第五章遗传算法

42

2. 模板理论 引理 1

注释 为 S 模板中所有个体的适值均值, 为种群的适值均值只要均值 f(s,t) >1 ,则好模板的个体会越来越多

三 . 模板理论

sf f

以上证明没有考虑交叉变异,那么交叉变异会不会破坏种群模板 S?概率有多大?

Page 43: 第五章遗传算法

43

2. 模板理论 引理 2 :第 t 代以概率 pc 做交叉,对长度为 l(s)

的模板 S 中的个体,则在第 t+1 代中该个体仍在模板 S 中的概率下界为:

其中, P(s,t) 为第 t 代个体为 S 的概率。

三 . 模板理论

( , 1) 1 1 ,1

pc l sP s t P s t

n

Page 44: 第五章遗传算法

44

2. 模板理论 引理 2

证明: 交叉破坏 S 的条件做了交叉: pc

交叉点在 S 内: l(s)/(n-1)

配偶不在 S 中: 1-P(s,t)

则不被破坏的概率为:

三 . 模板理论

( , 1) 1 1 ,1

pc l sP s t P s t

n

若配偶不属于模板 S ,是否能产生后代为模板 S?

Page 45: 第五章遗传算法

45

2. 模板理论 引理 3 :若第 t 代以 pm 做变异,对于一个阶数

为 K(s) 的模板 S 中的个体,则在第 t+1 代仍在 S 中的概率下界为:

三 . 模板理论

, 1 1P s t pm K s

Page 46: 第五章遗传算法

46

2. 模板理论 引理 3

证明: 对于 S 来说 当 K(s)=1 时,不被破坏的概率为: 1-pm

当 K(s)>1 时,不被破坏的概率为取其泰勒展开式的第一项: 1-pmK(s)

三 . 模板理论

1

K spm

Page 47: 第五章遗传算法

47

2. 模板理论 主定理(模板定理):第 t 代以概率 pc 和 pm 做

交叉和变异时,长度为 l(s) ,阶数为 K(s) ,适值均值比为 f(s,t) 的模板 S 在第 t+1 代的期望个体数的下界为:

三 . 模板理论

( , 1)

1 1 , , ,1

E s t

pc l sP s t pm K s f s t N s t

n

交叉破坏 变异破坏

Page 48: 第五章遗传算法

48

2. 模板理论 主定理(模板定理):第 t 代以概率 pc 和 pm 做

交叉和变异时,长度为 l(s) ,阶数为 K(s) ,适值均值比为 f(s,t) 的模板 S 在第 t+1 代的期望个体数的下界为:

三 . 模板理论

( , 1)

1 1 , , ,1

E s t

pc l sP s t pm K s f s t N s t

n

交叉破坏 变异破坏

当 时,

E(s,t) 随代数增加而增加

1

, 1 1 ,1

pc l sf s t P s t pm K s

n

Page 49: 第五章遗传算法

49

1. 编码 编码原则

• 完备性( completeness ):问题空间的所有解都能表示为所设计的基因型

• 健全性( soundness ):任何一个基因型都对应于一个可能解;

• 非冗余性( non-redundancy ):问题空间和表达空间尽一一对应

四 . 算法变形

Page 50: 第五章遗传算法

50

1. 编码 编码方式

• 二进制编码:适用于背包问题、实优化、指派问题等

• 整数编码:适用于时间优化,伙伴挑选等• 顺序编码:适用于指派、旅行商问题,单机调度等,合法性问题

• 浮点数编码:适用于实优化等,简单运算方便

四 . 算法变形

Page 51: 第五章遗传算法

51

1. 编码 二进制编码与浮点数编码的比较

• 在交叉操作时,二进制编码比浮点数编码产生新个体的可能性多,而且产生的新个体不受父个体所构成的超体的限制

• 在变异操作时,二进制编码的种群稳定性比浮点数编码差

四 . 算法变形

Page 52: 第五章遗传算法

52

2. 适值函数的标定 适应度函数的重要性:适应度函数的选取直接影响遗传算法的收敛速度以及能否找到最优解;一般而言,适应度函数是由目标函数变换而成的,对目标函数值域的某种映射变换称为适应度的标定( fitness scaling )。

四 . 算法变形

Page 53: 第五章遗传算法

53

2. 适值函数的标定 标定的目的

四 . 算法变形

11

22

33

44

1001

1002

999

997

f f

f f

f f

f f

选择压力小,差别小,选优功能弱化了

0

2

5

4

444

433

422

411

fff

fff

fff

fff

选择压力大,差别放大,选优功能强化了

标定

Page 54: 第五章遗传算法

54

2. 适值函数的标定 标定方法

• 线性标定函数表达式F 为适值函数, f 为目标函数a. 对 max f(x) ,令

函数表达式 :b. 对 min f(x) ,令

函数表达式 :

四 . 算法变形

F af b

1a minb f

minF f f 1a maxb f

maxF f f

Page 55: 第五章遗传算法

55

2. 适值函数的标定 标定方法

• 动态线性标定(最常用)函数表达式 , k 为迭代指标优点:计算容易不占用时间a. 对 max f(x) ,令

函数表达式 :b. 对 min f(x) ,令

函数表达式 :

四 . 算法变形

k kF a f b

1ka mink k kb f

mink kF f f

1ka maxk k kb f

maxk kF f f

Page 56: 第五章遗传算法

56

2. 适值函数的标定 标定方法

• 动态线性标定(最常用) 的作用: 的加入使最坏个体仍有繁殖的可能,

随 k 的增大而减小 的取值:

调节M 和 r ,从而来调节

四 . 算法变形

k kkk

M0 rkk 1 999.0,9.0rk

Page 57: 第五章遗传算法

57

2. 适值函数的标定 标定方法

• 幂率标定函数表达式α 的取值, α >1 时加大差别

α <1 时减小差别• 对数标定函数表达式对数标定的作用:缩小差别

四 . 算法变形

F f

lnF a f b

Page 58: 第五章遗传算法

58

2. 适值函数的标定 标定方法

• 指数标定函数表达式指数标定的作用:扩大差别• 窗口技术函数表达式 为前 W 代中的最小目标值,它考虑了各代的波动,这样 具有记忆性

四 . 算法变形

bfF ae c

wF af f

wf minf

wf

Page 59: 第五章遗传算法

59

2. 适值函数的标定 标定方法

• 正规化技术函数表达式

正规化技术的作用:将 F映射到 (0,1)区间,抑制

超级染色体正规化技术的实质:特殊的动态标定

四 . 算法变形

min

max min

f f rF

f f r

k kF a f b

rffa k

minmax

1 min

max min

k f rb

f f r

Page 60: 第五章遗传算法

60

3. 遗传操作——选择 几个概念

• 选择压力( selection pressure ):最佳个体选中的概率与平均个体选中概率的比值

• 多样性损失( loss of diversity ):在选择阶段未选中个体数目占种群的比例

四 . 算法变形

Page 61: 第五章遗传算法

61

3. 遗传操作——选择 个体选择概率的计算方法

• 按比例的适应度分配某个体 i ,其适应度为 fi ,则其被选取的概率 Pi

四 . 算法变形

1

ii NP

ii

fP

f

Page 62: 第五章遗传算法

62

3. 遗传操作——选择 个体选择概率的计算方法

• 基于排序的适应度分配步骤:a. 从好到坏排序所有个体b. 定义最好个体的选择概率为 q ,则第 i 个个体的选

择概率为:c. 由于

四 . 算法变形

1(1 )iiP q q

1

1

11 1

1 1

iNPNP

i

q q qq

Page 63: 第五章遗传算法

63

3. 遗传操作——选择 个体选择概率的计算方法

• 基于排序的适应度分配步骤:c. NP 有限时要归一化,则有下面的两个公式:

四 . 算法变形

11 jj qqp NPq

qq

11

Page 64: 第五章遗传算法

64

3. 遗传操作——选择 常用选择方法

• 轮盘赌选择法

四 . 算法变形

个体 1 2 3 4 5 6 7 8 9 10

适应度 2.0 1.8 1.6 1.4 1.2 1.0 0.8 0.6 0.4 0.2

选择概率 0.18 0.16 0.15 0.13 0.11 0.09 0.07 0.06 0.03 0.02

累计概率 0.18 0.34 0.49 0.62 0.73 0.82 0.89 0.95 0.98 1.00

Page 65: 第五章遗传算法

65

3. 遗传操作——选择 常用选择方法

• 随机遍历抽样法

四 . 算法变形

个体 1 2 3 4 5 6 7 8 9 10

适应度 2.0 1.8 1.6 1.4 1.2 1.0 0.8 0.6 0.4 0.2

选择概率 0.18 0.16 0.15 0.13 0.11 0.09 0.07 0.06 0.03 0.02

累计概率 0.18 0.34 0.49 0.62 0.73 0.82 0.89 0.95 0.98 1.00

设定 n 为需要选择的个体数目,等距离选择个体,选择指针的距离为 1/ n 。第一个指针的位置由 [0 , l/ n]区间的均匀随机数决定。如图所示,需要选择 6 个个体,指针间的距离为 l/ 6= 0.167 ,第一个指针的随机位置为 0.1 ,按这种选择方法被选中作为交配集个体为: 1 , 2 , 3 , 4 , 6 ,8 。

Page 66: 第五章遗传算法

66

3. 遗传操作——选择 常用选择方法

• 截断选择法个体按适应度排列,只有优秀个体能够称为父个体,参数为截断阀值(被选作父个体的百分比)

• 锦标赛选择法随机从种群中挑选一定数目个体,其中最好的个体作为父个体,此过程重复进行完成个体的选择

四 . 算法变形

Page 67: 第五章遗传算法

67

3. 遗传操作——交叉或重组 二进制交叉

• 单切点交叉

四 . 算法变形

Page 68: 第五章遗传算法

68

3. 遗传操作——交叉或重组 二进制交叉

• 多切点交叉

四 . 算法变形

Page 69: 第五章遗传算法

69

3. 遗传操作——交叉或重组 二进制交叉

• 均匀交叉

四 . 算法变形

Page 70: 第五章遗传算法

70

3. 遗传操作——交叉或重组 顺序编码交叉在顺序编码遗传运算的过程中会遇见不合法的编码,应战的策略有二:拒绝或修复例如:经交叉后,后代编码不合法P1: 21 ¦ 345 ¦ 67 C1: 21 ¦ 125 ¦ 67

P2: 43 ¦ 125 ¦ 76 C2: 43 ¦ 345 ¦ 76

四 . 算法变形

Page 71: 第五章遗传算法

71

3. 遗传操作——交叉或重组 顺序编码交叉

• 部分映射交叉 (PMX)

步骤:a. 选切点 X,Y;b. 交换中间部分;c. 确定映射关系;d. 将未换部分按映射关系恢复合法性

四 . 算法变形

Page 72: 第五章遗传算法

72

3. 遗传操作——交叉或重组 顺序编码交叉

• 部分映射交叉 (PMX)

四 . 算法变形

P1: 2 1 ¦ 3 4 5 ¦ 6 7 ¦ 1 2 5 ¦ P2: 4 3 ¦ 1 2 5 ¦ 7 6 ¦ 3 4 5 ¦

映射关系: 3-1 , 4-2 , 5-5

C1: 4 3 ¦ 1 2 5 ¦ 6 7C2: 2 1 ¦ 3 4 5 ¦ 7 6

Page 73: 第五章遗传算法

73

3. 遗传操作——交叉或重组 顺序编码交叉

• 顺序交叉 (OX)

步骤:a. 选切点 X,Y;b. 交换中间部分;c. 从切点 Y 后第一个基因起列出原序,去掉已有基因;d. Y 后第一个位置起填入。

四 . 算法变形

Page 74: 第五章遗传算法

74

3. 遗传操作——交叉或重组 顺序编码交叉

• 顺序交叉 (OX)

四 . 算法变形

P1: 2 1 ¦ 3 4 5 ¦ 6 7 ¦ 1 2 5 ¦ P2: 4 3 ¦ 1 2 5 ¦ 7 6 ¦ 3 4 5 ¦

列出基因: 6 7 2 1 3 4 5 7 6 4 3 1 2 5

C1: 3 4 ¦ 1 2 5 ¦ 6 7C2: 1 2 ¦ 3 4 5 ¦ 7 6

Page 75: 第五章遗传算法

75

3. 遗传操作——交叉或重组 顺序编码交叉

• 循环交叉 (CX)

步骤:a. 选 P1 的第一个元素作为 C1 的第一位,选 P2

的第一个元素作为 C2 的第一位;b. 到 P1 中找 P2 的第一个元素赋给 C1 的相对位置…,重复此过程,直到 P2上得到 P1 的第一个元

素为止,称为一个循环;

四 . 算法变形

Page 76: 第五章遗传算法

76

3. 遗传操作——交叉或重组 顺序编码交叉

• 循环交叉 (CX)

步骤:c. 对最前的基因按 P1 、 P2 基因轮替原则重复以上

过程;d.重复以上过程,直到所有位都完成。

四 . 算法变形

Page 77: 第五章遗传算法

77

3. 遗传操作——交叉或重组 顺序编码交叉

• 循环交叉 (CX)

四 . 算法变形

P1: 2 4 5 3 8 9 6 1 7 2 3 6P2: 3 9 8 6 5 4 2 7 1 3 6 2

3 2 , 9 4 , 5 8 , 7 1

6

C1: 2 9 5 3 8 4 6 7 1C2: 3 4 8 6 5 9 2 1 7

Page 78: 第五章遗传算法

78

3. 遗传操作——交叉或重组 顺序编码交叉

• 循环交叉 (CX )

与 OX 的特点不同的是, CX较好的保留了位值特征,适合指派问题;而 OX较好的保留了相邻关系、先后关系满足了 TSP问题的需要。

四 . 算法变形

Page 79: 第五章遗传算法

79

作 业两个父代个体 P1 和 P2 如下:

P1 :[ 6 1 2 8 | 9 5 4 7 | 10 3 ]P2 :[ 10 7 4 1 | 3 6 2 8 | 5 9 ]

分别利用 PMX 、 OX 和 CX 产生子代个体 C1 和C2 ,要

求给出具体步骤。

Page 80: 第五章遗传算法

80

3. 遗传操作——交叉或重组 实数编码交叉

• 线性重组:子个体=父个体 1+ α× (父个体 2-父个体 1 ),其中, α 是比例因子,由 [-d,1+d]上均匀分布地

随机数产生d=0 时称为中间重组

四 . 算法变形

Page 81: 第五章遗传算法

81

3. 遗传操作——变异 二进制编码变异:位变异

顺序编码变异: 2-opt

实数编码变异• 位值变异:任选一位加 Δ , Δ服从均匀分布、

指数分布或者正态分布• 梯度方向变异

四 . 算法变形

Page 82: 第五章遗传算法

82

1. 背包问题

n 个物品,对物品 i ,价值为 pi ,体积为 wi ,背包容量

是 W 。如何选取物品装入背包,使背包中的价值最大。

五 . 算法应用

i 1 2 3 4 5 6 7

wi 40 50 30 10 10 40 30

pi 40 60 10 10 3 20 60

pi /wi 1 1.2 0.33 1 0.3 0.5 2

Page 83: 第五章遗传算法

83

1. 背包问题 模型

五 . 算法应用

1

1

max

. .

{0,1}

n

i ii

n

i ii

i

p x

s t w x W

x

Page 84: 第五章遗传算法

84

1. 背包问题 求解难点:如何处理约束来保持解的可行性

• 拒绝策略:可行解不易达到时,很难达到一个初始种群

• 修复策略:将不可行解修复为可行的,但将失去多样性

• 惩罚策略:设计惩罚函数,但设计不好会掩盖目标函数的优化

五 . 算法应用

下面,我们将分别采用惩罚策略、解码法、顺序编码的方法来解决上述难题

Page 85: 第五章遗传算法

85

1. 背包问题 惩罚函数法

将适值函数 标定为 ,其中 是目标函数

令 ,其中

五 . 算法应用

F x f x P x f x

11

n

i ii

w x W

P x

n

ii WwW

1

,max

注: 与 是 的两个端点W

n

ii Ww

1

n

iii Wxw

1

0,,0,0 x 1,,1,1 x

Page 86: 第五章遗传算法

86

1. 背包问题 惩罚函数法

• 函数式的意义a. 的作用是使 ,保证

b. 可行也罚,只有当 不罚

c.罚函数法目的是把解拉向边界,尽量装满

五 . 算法应用

n

iii Wxw

1

0 10 xP

P x 0 Wxw ii

Page 87: 第五章遗传算法

87

1. 背包问题 解码法—— FF Heuristic (优先适合启发式)解码法是修复程序(修复可行性的方法)

• 步骤a. 将选上物品按 pi /wi 降序排列

b. 选前 K 个物品,使

例: → 降序排列: 2 , 1 , 6 , 5

→ →

五 . 算法应用

1

11

k

iii

k

iii xwWxw

(1 1 0 0 1 1 0)x��������������

2 1 2 1 6w w W w w w (1 1 0 0 0 0 0)x��������������

Page 88: 第五章遗传算法

88

1. 背包问题 顺序编码法

• 步骤a. 随机产生一个项目顺序b.按照优先适合启发式来选择项目,即保留项目顺序的前 k位,使

五 . 算法应用

1 2, , , nx x x

1

11

k

iii

k

iii xwWxw

Page 89: 第五章遗传算法

89

1. 背包问题 顺序编码法

例: n=7

用顺序 ( 3 2 5 1 4 6 7 )表示选择物品的顺序,用优先适合启发式保留前 k位,使解可行

由于k=3 , (3 2 5)

五 . 算法应用

1

11

k

iii

k

iii xwWxw

1523523 wwwwWwww

编码长度是可变的,如何做交叉和变异 ?

Page 90: 第五章遗传算法

90

1. 背包问题 顺序编码法

• 插入式交叉a. 在 P1上选一个随机的断点b. 在 P2上随机选一个基因片断插入 P1 的断点

处c. 去掉 P1上的重复基因d. 按优先适合启发式得到可行解

五 . 算法应用

Page 91: 第五章遗传算法

91

1. 背包问题 顺序编码法

• 插入式交叉例:

五 . 算法应用

去掉重复基因: 3 2 ¦ 4 6 ¦ 1 5

可行吗?选 5 时背包装不下,去掉 5 ,则 3 2 4 6 1

P1 3 2 ¦ 1 5 4 3 2 ¦ 4 6 ¦ 1 5 4 P2 1 2 ¦ 4 6 ¦ 3 5

X

Page 92: 第五章遗传算法

92

1. 背包问题 顺序编码法

思考: a. 变长顺序编码如何进行变异? b. 二进制编码时,编码空间与解空间的对应关系如何? c. 变长顺序编码时,编码空间与解空间的对应关系如何?

五 . 算法应用

Page 93: 第五章遗传算法

93

2. 最小生成树 问题的提出

难点:对于下面的红色的图形,如何设计一个合适的编码方法?

五 . 算法应用

1

2 3

4

5 6

1

2

4

35

76

8

9

10

Page 94: 第五章遗传算法

94

2. 最小生成树 传统的编码方法

• 节点表示法{(1,2),(2,3),(2,5),(2,6),(4,6)}

无法避免回路

五 . 算法应用

1

2 3

4

5 6

1

2

4

35

76

8

9

10

Page 95: 第五章遗传算法

95

2. 最小生成树 传统的编码方法

• 边编码法{1,2,4,5,10}

无法保证是树,无法保证可行性

五 . 算法应用

1

2 3

4

5 6

1

2

4

35

76

8

9

10

传统编码缺点:麻烦,无法做遗传运算,无法保持合法性

Page 96: 第五章遗传算法

96

2. 最小生成树 传统的编码方法

• 边编码法{1,2,4,5,10}

无法保证是树,无法保证可行性

五 . 算法应用

1

2 3

4

5 6

1

2

4

35

76

8

9

10

为解决以上问题,人们提出了 Prűfer 数编码方法

Page 97: 第五章遗传算法

97

2. 最小生成树 Prűfer 数的定义:用 n-2位自然数唯一的表达出

一棵 n 个节点的生成树,其中每个数字在 1 和 n之间,而且交叉变异仍是一棵生成树

叶子:树中度数为 1 的节点例: 1 , 3 , 4 , 5

五 . 算法应用

1

2 3

4

5 6

Page 98: 第五章遗传算法

98

2. 最小生成树 Prűfer 数满足生成树的要求

• 覆盖所有节点• 连通的• 没有回路

五 . 算法应用

1

2 3

4

5 6

Page 99: 第五章遗传算法

99

2. 最小生成树 编码步骤

a. 设节点 i 是标号最小的叶子b. 若 i 与 j 相连,令 j 是编码中的第一个数字c. 删去边 (i , j)

d. 转 a, 直到剩下一条边为止

五 . 算法应用

1

2 3

4

5 6

Page 100: 第五章遗传算法

100

图解: i=1, ( i , j )=(1,2), j=2;

i=3, ( i , j )=(3,2), j=2

i=4, ( i , j )=(4,6), j=6;

i=5, ( i , j )=(5,2), j=2

编码:( 2 2 6 2 )

1

2 3

4

5 6

2 3

4

5 6

2

4

5 6

2

5 6

2

6

Page 101: 第五章遗传算法

101

2. 最小生成树 解码步骤

a. 令 Prűfer 数中的节点集为 P , 不包含在 P 中的节

点集为 P’ ;b. 若 i 为 P’ 中最小标号的节点, j 为 P上最左边数

字连接边 (i , j) ,并从 P’ 中去掉 i ,从 P 中去掉j ,

若 j 不再在 P 中,将 j加入 P’ 中c. 重复 b ,直到 P 中没有节点 (即为空 ) , P’ 中剩下

(s,r)

d. 连接 (s,r)

五 . 算法应用

Page 102: 第五章遗传算法

102

图解: P= { 2, 2, 6, 2 } P’= { 1, 3, 4, 5 } (1,2) P= { 2, 6, 2 } P’= { 3, 4, 5 } (3,2) P= { 6, 2 } P’= { 4, 5 } (4,6) P= { 2 } P’= { 5, 6 } (5,2) P= { Ф } P’= { 6, 2 } (6,2)

1

2 3

4

5 6

1

2 3

4

5 6

1

2 3

4

5 6

1

2 3

4

5 6

1

2 3

4

5 6

1

2 3

4

5 6

Page 103: 第五章遗传算法

103

2. 最小生成树 最小生成树的的优点

• 对于一个 n 个节点的 Prűfer 数的个数为 , 生成树的个数也是

• 最小生成树实现了解空间和编码空间的一一对应,交叉变异不破坏合法性

五 . 算法应用

2nn

2nn

一个好的编码方法对遗传算法至关重要

Page 104: 第五章遗传算法

104

1

76

5

2 3

4

作 业

对上图中的生成树进行编码,要求给出完整编码过程

Page 105: 第五章遗传算法

105

1

7

5

P= { 6, 3, 2, 4, 4 } P’= { 1, 5, 7 }

4

2 3

6

作 业

对上面的 Prűfer 数编码进行解码,要求给出完整的解码过程

Page 106: 第五章遗传算法

106

1. 编码是成功的关键 (如最小树问题 )

① 最好能使编码空间与解空间一一对应② 减少编码冗余,编码应尽可能短③ 便于遗传运算——有利于保持合法性、可行性;实在没有办法保持,要设计合理的修复程序,尽可能保持父辈的特征。

六 . 学习遗传算法的几点体会

Page 107: 第五章遗传算法

107

2. 遗传算子的设计有最大的创新空间3. 选择压力的调整使多样性和收敛性得到合适

的分配。开始时多样性重要,重广域搜索;刚要结束时收敛性重要,重局域搜索。

调整方法:适值函数的构造;合适的标定方法

六 . 学习遗传算法的几点体会

Page 108: 第五章遗传算法

108

4. 在 GA 的研究中我们要做一些什么① 扩大 GA 的应用 , GA 应用面广,适应性最好

② 算法改进方向的研究③ 理论研究④ 算法开发中的几个技术 (见下页 )

六 . 学习遗传算法的几点体会

Page 109: 第五章遗传算法

109

I. 参数整定:经验加反复试验 (Tuning)

如: Pc , Pm , NG , NP 几种参数的选定II. 判断好坏算法的办法:⑴ 快⑵ 能解的问题大⑶ 达优率高,大问题 50% 的达优率

六 . 学习遗传算法的几点体会

Page 110: 第五章遗传算法

110

III. 算例的选择:⑴ 自己编的——没有说服力,但可以解释算法⑵ 随机产生的——适合没有前例的例子⑶ 文献的例子——面较大⑷ 网上的例子——典型问题 QAP,TSP

六 . 学习遗传算法的几点体会