1、智能控制系统,天津大学电气与自动化工程学院,二,天津大学自动化学院,第二章 遗传算法,天津大学自动化学院,1. 什么是遗传算法,1.1 遗传算法的生物学基础生物在自然界中的生存繁衍,显示出了其对自然环境的自适应能力。遗传算法(Genetic Algorithms,GA)就是这种生物行为的计算机模拟中令人瞩目的重要成果。遗传算法所借鉴的生物学基础就是生物的遗传和进化。1.1.1 遗传与变异 遗传(Heredity)生物从其父代继承特性或性状。,天津大学自动化学院,1. 什么是遗传算法,细胞(Ce11) :生物的基本结构和功能的单位。 染色体(Chromosome) :细胞核内有结构的线状体,是遗
2、传信息的载体。 基因(Gene): DNA长链结构中占有一定位置的基本遗传单位。 在细胞分裂的过程中,其遗传基因也同时被复制到下一代,从而其性状也被下一代所继承。,天津大学自动化学院,1. 什么是遗传算法,生物的遗传方式: 复制:遗传过程中,父代的遗传物质DNA被复制到子代。 交叉:细胞进行有性繁殖时,两个同源染色体之间通过交叉而重组。 变异:细胞进行复制时,DNA发生某种变异,产生出新的染色体。如此这般,遗传基因或染色体在遗传的过程中由于各种各样的原因而发生变化。,天津大学自动化学院,1. 什么是遗传算法,1.1.2 选择与进化达尔文的自然选择学说:适者生存,优胜劣汰“在繁殖过程中,大多数生
3、物通过遗传,使物种保持相似的后代;部分生物由于变异,后代具有明显差别,甚至形成新物种。”“生物在生存竞争中,根据对环境的适应能力,适者生存,不适者消亡。自然界中的生物,就是根据这种优胜劣汰的原则,不断地进行进化。”,天津大学自动化学院,1. 什么是遗传算法,1.2 遗传算法简介 优化问题,max f(x) (1-1)s.t. xR (1-2)RU (1-3) x为决策变量, f(x)为目标函数,式(1-2)、(1-3)为约束 条件,U是基本空间,R是U的一个子集。满足约束条件的解X称为可行解; 集合R表示由所有满足约束条件的解所组成的一个集合,叫做可行解集合。,天津大学自动化学院,1. 什么是
4、遗传算法,对于上述最优化问题,目标函数和约束条件种类繁多,求出其近似最优解或满意解是人们的主要着眼点之一。总的来说,求最优解或近似最优解的方法主要有三种:枚举法、解析法和随机搜索法。随着问题种类的不同,以及问题规模的扩大,要寻求到一种能以有限的代价来解决上述最优化问题的通用方法仍是个难题。而遗传算法却为我们解决这类问题提供了一个有效的途径和通用框架,开创了一种新的全局优化搜索算法。,天津大学自动化学院,1. 什么是遗传算法,遗传算法是模拟生物在自然环境下的遗传和进化过程而形成的一种自适应全局优化概率搜索方法。最早由美国密西根大学的H.Holland教授提出; 1967年,Bagley在其论文中
5、首次使用“遗传算法”;70年代 De Jong在计算机上进行了大量的纯数值函数优化计算实验; 1975年,Holland出版了Adaption in Natural Artificial System,天津大学自动化学院,1. 什么是遗传算法,1.2.1遗传算法的基本思想将优胜劣汰的思想引入待优化参数形成的编码串群体中,按照一定的适配值函数及一系列的遗传操作对个体进行筛选,从而使适配值高的个体被保留下来,组成新的群体。 Holland采用二进位串对解个体编码,每个串称为染色体,染色体上的每一位称为基因。 适应度较高的个体(最优)获得更大的生存和繁殖的机会 一对个体通过交换编码串来实现交叉 一个
6、个体通过改变编码串中的某一位实现变异,天津大学自动化学院,1. 什么是遗传算法,1.2.2遗传算法步骤群体初始化; 评价群体中每一个个体的性能(适配值); 选择下一代个体; 执行简单的操作算子(复制,交叉,变异); 评价下一代群体的性能; 判断终止条件满足否,若不满足,转第三步继续;若满足,退出,天津大学自动化学院,1. 什么是遗传算法,1.2.3遗传算法的操作算子编码机制解决如何将最优化问题中的变量用某种编码的形式构成一种遗传规则能够运算的字符串。 基本方法:使用二进制字符串小数整数二进制 01.280128 0000000010000000 缺点:字符串长,天津大学自动化学院,1. 什么是
7、遗传算法,适配值函数计算适配值的函数 基本方法:越好的个体对应的适配值应该越高。 可将目标函数的正规化。 选择机制适应能力强的个体将有更多的机会繁殖它们的后代。基本方法 :比例选择法记 为群体的平均适配值, 为第 个个体的适应度,则下一代群体中应有 个第 个个体的子代。,天津大学自动化学院,1. 什么是遗传算法,交叉算子用适应能力强的父辈个体进行繁殖以得到更优秀的下一代。基本方法 :提前设定交叉率 随机选择双方个体和交叉点和交叉率 。当时,双方个体从交叉点断裂互换,完成交叉。,天津大学自动化学院,1. 什么是遗传算法,5 变异算子模拟生物界中的变异现象。基本方法 :随机选择染色体中的某个基因进
8、行取反。 确定变异率为 ,则群体中有 个基因发生变异。 N为位串个数,L为位串长度,天津大学自动化学院,1. 什么是遗传算法,1.2.4 遗传算法的特点对参数的编码进行操作,而非参数本身。 从许多起始点并行操作,防止陷入局部最优解。 通过目标函数计算适配值,对问题本身依赖小。 寻优规则由概率决定,具有非确定性。 高效启发式搜索。 对待寻优的函数没有限制,适合复杂问题。 并行计算。 计算简单。,天津大学自动化学院,2. 遗传算法方法介绍,2.1遗传算法的基本操作例:求下述函数的最大值:max f(x)=x2s.t. x 1, 31个体编码因 为 x是 0 31之间的整数,所以分别用3位无符号二进
9、制整数来表示,将它们连接在一起所组成的5位无符号二进制数就形成了个体的染色体,表示一个可行解。例如, x31所对应的编码是 x11111 。,天津大学自动化学院,2. 遗传算法方法介绍,初始群体的产生遗传算法是对群体进行的进化操作,需要给其淮备一些表示起始搜索点的初始群体数据。本例中,群体规模的大小可取为4,即群体由4个个体组成,每个个体可通过随机方法产生。如:01101,11000,01000,10011,天津大学自动化学院,2. 遗传算法方法介绍,适配值汁算遗传算法中以个体适应度的大小来评定各个个体的优劣程度,从而决定其遗传机会的大小。本例中,目标函数总取非负值,并且是以求函数最大值为优化
10、目标,故可直利用目标函数值作为个体的适配值(适应度)。 f(x)=x2,天津大学自动化学院,2. 遗传算法方法介绍,天津大学自动化学院,2. 遗传算法方法介绍,复制运算复制运算把当前群体中适应度较高的个体按某种规则或模型遗传到下一代群体中。先计算出群体中所有个体的适应度的总和 fi ( i=1.2,M ); 计算出每个个体的相对适应度的大小 fi / fi , 即为每个个体被遗传到下一代群体中的概率。(全部概率值之和为1) 依据概率随机决定各个个体被选中的次数。,天津大学自动化学院,2. 遗传算法方法介绍,天津大学自动化学院,2. 遗传算法方法介绍,天津大学自动化学院,2. 遗传算法方法介绍,
11、交叉运算交叉运算是遗传算法中产生新个体的主要操作过程,它以某一概率相互交换某两个个体之间的部分染色体。本例采用单点交叉的方法,其具体操作过程是: 先对群体进行随机配对; 其次随机设置交叉点位置; 最后再相互交换配对染色体之间的部分基因。,天津大学自动化学院,2. 遗传算法方法介绍,天津大学自动化学院,2. 遗传算法方法介绍,变异运算变异运算是对个体的某一个的基因值按某一较小的概率进行改变,它也是产生新个体的一种操作方法。首先确定出各个个体的基因变异位置 然后依照某一概率将变异点的原有基因值取反。变异的概率一般取0.001,我们这个例子里面没有发生变异。,天津大学自动化学院,2. 遗传算法方法介
12、绍,从上表中可以看出,群体经过一代遗传以后,第二代的最大值、平均值都得到了很大的提高:均值: 293 437最大值: 576 729经过一次遗传算法步骤,问题便朝着最优解的方向前进了一步,最终走向全局最优解。每一步的操作非常的简单,对问题依赖性小。,天津大学自动化学院,2. 遗传算法方法介绍,天津大学自动化学院,2. 遗传算法方法介绍,基本遗传算法的运行参数有下述4个运行参数需要提前设定 M:种群大小,即群体中所含个体的数量,一般取20100。 G:遗传算法的终止进化代数,一般取100 500 。 Pc:交叉概率,一般取0.4 0.99 。 Pm:变异概率,一般取0.00010.1。,天津大学自动化学院,2. 遗传算法方法介绍,遗传算法的应用步骤对一个需要优化的实际问题,可按如下步骤: 1.确定决策变量及各种约束条件,即确定出个体的表现型X和问题的解空间; 2.建立优化模型,即确定出目标函数的类型及数学描述形式或量化方法; 3.确定表示可行解的染色体编码方法,即确定出个体的基因型x及遗传算法的搜索空间。 4.确定个体适应度的量化评价方法。 5.设计遗传算子,即确定复制,交叉,变异算子的具体操作方法; 6.确定遗传算法的4个运行参数; 7.确定解码方法,即确定出有个体表现性X到个体基因型x的对应关系或转换方法。,