1.09k likes | 1.37k Views
知识发现(数据挖掘 ) 第十二章. 进化计算 Ev o lutionary Computation. 史忠植 中国科学院计算技术研究所. 内 容. 1 3.1 概述 1 3.2 进化系统理论的形式模型 1 3.3 达尔文进化算法 1 3.4 遗传算法 1 3.5 遗传算法的理论基础 1 3.6 遗传算法的改进 1 3.7 遗传机器学习—分类器系统 1 3.8 桶链算法 1 3.9 规则发现系统 1 3.10 进化策略 1 3.11 进化规划. 1 3.1 概 述.
E N D
知识发现(数据挖掘)第十二章 进化计算 Evolutionary Computation 史忠植 中国科学院计算技术研究所
内 容 13.1 概述 13.2 进化系统理论的形式模型 13.3 达尔文进化算法 13.4 遗传算法 13.5 遗传算法的理论基础 13.6 遗传算法的改进 13.7 遗传机器学习—分类器系统 13.8 桶链算法 13.9 规则发现系统 13.10 进化策略 13.11 进化规划 史忠植 高级人工智能
13.1 概 述 进化计算是通过模拟自然界中生物进化机制进行搜索的一种算法。 史忠植 高级人工智能
发展历史 • 进化计算的研究起源于20世纪50年代。 • 1965年,Holland首次提出了人工遗传操作的重要性,并把这些应用于自然系统和人工系统中。 • 大约在同一时期: • Rechenberg和Schwefel提出了进化策略。 • Fogel提出了进化规划。 史忠植 高级人工智能
发展历史 • 1967年,Bagley在他的论文中首次提出了遗传算法这一术语,并讨论了遗传算法在自动博弈中的应用。 • 1970年,Cavicchio把遗传算法应用于模式识别中。第一个把遗传算法应用于函数优化的是Hollstien。 史忠植 高级人工智能
发展历史 • 1975年是遗传算法研究的历史上十分重要的一年。这一年,Holland出版了他的著名专著《自然系统和人工系统的适应性》该书系统地阐述了遗传算法的基本理论和方法,并提出了对遗传算法的理论研究和发展极为重要的模式理论(schemata theory),该理论首次确认了结构重组遗传操作对于获得隐并行性的重要性。 • 同年,DeJong完成了他的重要论文《遗传自适应系统的行为分析》。他在该论文中所做的研究工作可看作是遗传算法发展过程中的一个里程碑,这是因为他把Holland的模式理论与他的计算使用结合起来。 史忠植 高级人工智能
发展历史 • 1989 Goldberg对遗传算法从理论上,方法上和应用上作了系统的总结。 • 1990年,Koza提出了遗传规划(Genetic Programming)的概念。(用于搜索解决特定问题的最适计算机程序) 史忠植 高级人工智能
遗传算法与自然进化的比较 自然界 遗传算法 染色体 字符串 基因 字符,特征 等位基因(allele) 特征值 染色体位置(locus) 字符串位置 基因型(genotype) 结构 表型(phenotype) 参数集,译码结构 史忠植 高级人工智能
新达尔文进化理论的主要论点 • 个体是基本的选择目标; • 随机过程在进化中起重大作用, 遗传变异大部分是偶然现象; • 基因型变异大部分是重组的产物, 特别是突变; • 逐渐进化可能与表型不连续有关; • 不是所有表型变化都是自然选择的必然结果; • 进化是在适应中变化的, 形式多样, 不仅是基因的变化; • 选择是概率型的, 而不是决定型的。 史忠植 高级人工智能
进化计算的三大主流板块 • Holland提出的遗传算法(Genetic Algorithm)。 • Rechenberg和Schwefel提出的进化策略(Evolutionary Strategies)。 • Fogel提出的进化规划(Evolutionary Programming),又称为进化程序设计。 • 本章将着重介绍遗传算法,对进化策略和进化规划只作简单介绍。 史忠植 高级人工智能
13.2 进化系统理论的形式模型 进化在个体群体中起作用。瓦铤顿(Waddington)指出基因型和表型之间关系的重要性(Waddington 1974)。群体禁止异构环境。但是“后生环境”是多维空间。表型是基因型和环境的产物。然后表型通过异构“选择环境"发生作用。注意,这种多维选择环境与后生环境空间是不同的。现在,适应性是表型空间和选择环境空间的产物。它经常被取作一维,表示多少子孙对下一代作出贡献。 基于这种想法,莫楞贝(Muhlenbein) 和肯德曼 (Kindermann)提出了一种称为进化系统理论的形式模型(Muhlenbein 1989)。 史忠植 高级人工智能
进化系统理论的形式模型 进化的主要过程 遗传操作符 后生环境 选择环境 g p 史忠植 高级人工智能
进化系统理论的形式模型 其中,g 是基因型 p 是表型。 基因gi的可能值称为等位基因。 在门德尔(Mendel)遗传学中,假设每个基因有有限数的等位基因。 史忠植 高级人工智能
进化系统理论的形式模型 这个变换函数给出了模型,说明表型的发展是通过基 因与环境的交互作用。 变换过程是高度非线性的。 史忠植 高级人工智能
进化系统理论的形式模型 质量函数q给出了具体选择环境ESi下表型的质量, 其定义如下: 质量定义适应度,用于达尔文选择。至今已有三种具体范例的通用模型,即 门德尔遗传学 遗传生态学 进化配子 史忠植 高级人工智能
门德尔遗传学 在门德尔遗传学中,基因型被详细模型化,而表型和 环境几乎被忽略。在遗传生态学中恰好相反。 进化配子论是从社会生物学导出的模型。 首先让我们讨论门德尔遗传学的选择模型。为了简单起见,我们假设一个基因具有n 等位基因a1,…,an。 二倍基因型以元组(ai,aj)为特征。 我们定义 pi,j为总群体中基因型(ai,aj) 的频度。假设基因型与表型相等。质量函数给每个表型赋值。 q(ai,aj) = qi,j qi,j 可以被解释为出生率减去死亡率 史忠植 高级人工智能
门德尔遗传学 假设 p’i,j是下一代表型(ai,aj) 的频度。然后达尔文 选择根据选择方程调整表型的分布: 是群体的平均适应度。 史忠植 高级人工智能
门德尔遗传学 设pi是群体中等位基因的频率。如果 pi,j = pi pj 那么,我们得到在GS中的一个选择方程为 史忠植 高级人工智能
门德尔遗传学 这个离散的选择方程可以用连续方程近似: 如果 qi,j = qj,i, 那么 史忠植 高级人工智能
门德尔遗传学 这个方程很容易被证明: 这个结果称作菲希尔(Fisher)基本定理。它说明平均适应度随适应度的差别呈正比例增加。实际上,全部可能的基因型仅有一部分实现。这就是遗传操纵子探索基因型空间的任务,其个体数目相当小。这些操纵子是群体遗传变异性的来源。最重要的操纵子是突变和重组。 史忠植 高级人工智能
13.3 达尔文进化算法 根据定量遗传学,达尔文进化算法采用简单 的突变/选择动力学。 达尔文算法的一般形式可以描述如下: 是一代的双亲数目, 为子孙数目。 整数称作“混杂”数。 如果两个双亲混合他们的基因,则 = 2。仅 是最好的个体才允许产生子孙。 逗号表示双亲们没有选择,加号表示双亲有选择。 史忠植 高级人工智能
13.3 达尔文进化算法 • 建立原始种体。 • 通过突变建立子孙。 • 选择: • 返回到步骤(1)。 … 史忠植 高级人工智能
13.4 遗传算法 遗传算法思想来源于生物进化过程, 它是基于进化过程中的信息遗传机制和优胜劣汰的自然选择原则的搜索算法(以字符串表示状态空间)。遗传算法用概率搜索过程在该状态空间中搜索,产生新的样本。 史忠植 高级人工智能
遗传算法的特点 • 特点: • 通用 • 鲁棒 • 次优解、满意解 遗传算法能解决的问题: • 优化 • NP完全 • NP难 • 高度复杂的非线性问题 史忠植 高级人工智能
遗传算法 • 遗传算法先将搜索结构编码为字符串形式, 每个字符串结构被称为个体。 • 然后对一组字符串结构(被称为一个群体)进行循环操作。每次循环被称作一代,包括一个保存字符串中较优结构的过程和一个有结构的、随机的字符串间的信息交换过程。 • 类似于自然进化,遗传算法通过作用于染色体上的基因寻找好的染色体来求解问题。 史忠植 高级人工智能
遗传算法 • 与自然界相似,遗传算法对求解问题的本身一无所知,它所需要的仅是对算法所产生的每个染色体进行评价,并基于适应值来选择染色体,使适应性好的染色体有更多的繁殖机会。 • 在遗传算法中,位字符串扮演染色体的作用,单个位扮演了基因的作用,随机产生一个体字符串的初始群体,每个个体给予一个数值评价,称为适应度,取消低适应度的个体,选择高适应度的个体参加操作。 • 常用的遗传算子有复制、杂交、变异和反转。 史忠植 高级人工智能
遗传算法与传统优化算法的主要不同 遗传算法不是直接作用在参变量集上, 而是利用参变量集的某种编码; 遗传算法不是从单个点, 而是在群体中从一个点开始搜索; 遗传算法利用适应值信息, 无需导数或其它辅助信息; 遗传算法利用概率转移规则, 而非确定性规则。 史忠植 高级人工智能
遗传算法的准备工作 确定表示方案; 确定适应值的度量; 确定控制该算法的参数和变量; 确定怎样指定结果及程序运行结束的标准。 史忠植 高级人工智能
基本遗传算法 基本遗传算法(Simple Genetic Algorithm:SGA)又称为简单遗传算法,只使用选择算子、交叉算子和变异算子这三种基本的遗传算子。其遗传操作简单、容易理解,是其它遗传算法的雏形和基础。 基本遗传算法的构成要素: 1、染色体编码方法:首先必须对问题的解空间进行编码,使之能用遗传算法进行操作。较常用的是二进制编码方法,现在使用非二进制编码的也逐渐增多。 2、适应度函数(fitness function,又称为适应值/适值函数)用来评价一个染色体的好坏。 史忠植 高级人工智能
基本遗传算法的构成要素 3、遗传算子 • 选择算子(selection) :又称为复制算子。按照某种策略从父代中挑选个体进入下一代,如使用比例选择、轮盘式选择。 • 交叉算子(crossover):又称为杂交算子。将从群体中选择的两个个体,按照某种策略使两个个体相互交换部分染色体,从而形成两个新的个体。如使用单点一致交叉。 • 变异算子(mutation):按照一定的概率(一般较小),改变染色体中某些基因的值。 史忠植 高级人工智能
Pt. of interchange [Crossover] [Parents] [No Offspring] [Offspring] 1110###0# 1 1110##11# 6 1##0111## 0 0001###0# 0001##11# 2 0001##11# 010##1000 0 #00####11 #00####11 2 #00####11 17 0#01##10# 2 0#01##10# ###100100 0 000##0111 1 100##0111 1 1#01##10# 杂交操作举例 史忠植 高级人工智能
变异操作 简单的变异操作过程如下: • 每个位置的字符变量都有一个变异概率, 各位置互相独立。通过随机过程选择发生变异的位置: • 产生一个新结构 , 其中 是从对应位置 的字符变量的值域中随机选择的一个取值。 可以同样得到。 史忠植 高级人工智能
反转操作 简单反转操作的步骤如下: • 从当前群体中随机选择一个结构 • 从中随机选择两个数i’和j’, 并定义 i = min{i',j'}, j=max{i',j'}; • 颠倒a中位置i、j之间的部分, 产生新的结构 史忠植 高级人工智能
基本遗传算法的构成要素 4、运行参数 N:群体大小,即群体中包含的个体的数量。 T:遗传算法终止的进化代数。 Pc:交叉概率,一般取为 0.4~0.99。 Pm:变异概率,一般取为 0.0001~0.1 。 史忠植 高级人工智能
基本遗传算法 • 随机产生一个由固定长度字符串组成的初始群体; • 对于字符串群体,迭代地执行下述步骤,直到选种标准被满足为止: • 计算群体中的每个个体字符串的适应值; • 应用下述三种操作(至少前两种)来产生新的群体: • 复制: 把现有的个体字符串复制到新的群体中。 • 杂交: 通过遗传重组随机选择两个现有的子字符串, 产生新的字符串。 • 变异: 将现有字符串中某一位的字符随机变异。 • 把在后代中出现的最高适应值的个体字符串指定为遗传算法运行的结果。这一结果可以是问题的解(或近似解)。 史忠植 高级人工智能
GEN=0 随机创建初始群体 是 GEN=M? 显示结果 否 计算群体中每个个体的适应值 结束 i:=0 是 1 GEN:=GEN+1 i=N? (转下页) 概率地选择遗传操作 基本遗传算法流程图 史忠植 高级人工智能
(接上页) 概率地选择遗传操作 p(r)选择 p(c)交叉 变异p(m) 根据适应值选 择一个个体 基于适应值选 择两个个体 根据适应值选 择一个个体 复制个体 i:=i+1 完成变异 把新的孩子加 入到群体中 完成交叉 把变异后个体 加入到群体中 把新的两个孩 子加到群体中 i:=i+1 1 史忠植 高级人工智能
. p1 . . p2 . . pi . r 轮盘式选择 • 首先计算每个个体 i 被选中的概率 • 然后根据概率的大小将将圆盘分为 n个扇形,每个扇形的大小为 。选择时转动轮盘,参考点r落到扇形i则选择个体i 。 史忠植 高级人工智能
单点一致交叉 • 首先以概率pc从种群中随机地选择两个个体p1、p2。在{1, 2, . . . ,l}内随机选择一个数i,作为交叉的位置,称为交叉点。然后将两个个体交叉点后面的部分交换。 • 例如: 0110 101100 0110 011001 1100 011001 1100 101100 史忠植 高级人工智能
一致变异 • 以概率pm对种群中所有个体的每一位进行变异。 • 对于个体pi的第j位,在[0,1]的范围内随机地生成一个数r, 如果 r < pm , 则对第j位取反,否则保持第j位不变。 史忠植 高级人工智能
遗传算法举例 问题:求 (1)编码: 此时取均长为5,每个染色体 (2)初始群体生成:群体大小视情况而定,此处设置为4,随机产生四个个体: 编码: 01101,11000,01000,10011 解码: 13 24 8 19 适应度: 169 576 64 361 (3)适应度评价: 史忠植 高级人工智能
遗传算法举例 (4)选择:选择概率 个体: 01101,11000,01000,10011 适应度: 169 576 64 361 选择概率:0.14 0.49 0.06 0.31 选择结果:01101,11000,11000,10011 (5)交叉操作:发生交叉的概率较大 哪两个个体配对交叉是随机的 交叉点位置的选取是随机的(单点交叉) 0110 1 01100 11 000 11 011 1100 0 11001 10 011 10 000 史忠植 高级人工智能
遗传算法举例 (6)变异:发生变异的概率很小 (7)新群体的产生: 保留上一代最优个体,一般为10%左右,至少1个 用新个体取代旧个体,随机取代或择优取代。 11000,11011,11001,10011 (8)重复上述操作: 说明:GA的终止条件一般人为设置; GA只能求次优解或满意解。 分析:按第二代新群体进行遗传操作,若无变异,永远也找不到最优解——择优取代有问题。 若随机的将个体01101选入新群体中,有可能找到最优解。 史忠植 高级人工智能
13.5 遗传算法的理论基础 13.5.1 模式的定义 遗传算法的理论基础是遗传算法的二进制表达式及模式的含义。模式是能对染色体之间的相似性进行解释的模板。 [定义1] 设GA的个体 ,记集合 则称 为一个模式,其中*是通配符。 即模式(schema)是含有通配符(*)的一类字符串的通式表达。每个“*”可以取“1”或者“0”。 史忠植 高级人工智能
模式举例 • 模式 *10101110 与以下两个字符串匹配: 010101110 110101110 • 而模式 *1010*110 与以下四个字符串匹配: 010100110 010101110 110100110 110101110 史忠植 高级人工智能
模式的定义 • [定义2] 一个模式s的阶是出现在模式中的“0”和“1”的数目,记为o(s)。 如:模式“0****”的阶为1,模式“10*1*”的阶为3。 • [定义3] 一个模式s的长度是出现在模式中第一个确定位置和最后一个确定位置之间的距离,记为 。 如:模式“01***”的长度为1,模式“0***1”的长度为3。 史忠植 高级人工智能
模式定理 • 假定在给定的时间步t,一个特定的模式s在群体P(t)中包含由m个代表串,记为m=m(s,t)。首先,我们暂不考虑交叉和变异操作。每个串根据适应值的大小获得不同的复制概率。串i的复制概率为: (1) 史忠植 高级人工智能
模式定理 • 则在群体P(t+1)中,模式s的代表串的数量的期望值为: (2) • 其中, 表示模式s在t时刻的所有代表串的适应值的均值,称为模式s的适应值。 史忠植 高级人工智能
模式定理 • 若记P(t)中所有个体的适应值的平均值为: • 则(2)式可以表示为: (3) 史忠植 高级人工智能
模式定理 • (3)式表明,模式s的代表串的数目随时间增长的幅度正比于模式s的适应值与群体平均适应值的比值。即:适应值高于群体平均值的模式在下一代的代表串数目将会增加,而适应值低于群体平均值的模式在下一代的代表串数目将会减少。 • 假设模式的适应值为 ,其中c是一个常数,则 (3)式可写为: 史忠植 高级人工智能