《【人工智能_人工智能导论课件】第6章遗传算法及其应用导论.ppt》由会员分享,可在线阅读,更多相关《【人工智能_人工智能导论课件】第6章遗传算法及其应用导论.ppt(63页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第 6 章 遗传算法及其应用,教材: 王万良人工智能导论(第3版) 高等教育出版社,第6章 遗传算法及其应用,遗传算法(GA)是一类借鉴生物界自然选择和自然遗传机制的随机搜索算法,非常适用于处理传统搜索方法难以解决的复杂和非线性优化问题。遗传算法可广泛应用于组合优化、机器学习、自适应控制、规划设计和人工生命等领域,是21世纪有关智能计算中的重要技术之一。 本章首先详细介绍遗传算法的基本算法,然后介绍双倍体、双种群、自适应等比较典型的改进遗传算法,最后简单介绍了遗传算法在生产调度中的应用。在此基础上,读者可以进一步学习遗传算法以及其他进化算法的内容。,2,第6章 遗传算法及其应用,6.1 遗传算
2、法的产生与发展 6.2 遗传算法的基本算法 6.3 遗传算法的改进算法 6.4 遗传算法的应用,3,第6章 遗传算法及其应用,6.1 遗传算法的产生与发展 6.2 遗传算法的基本算法 6.3 遗传算法的改进算法 6.4 遗传算法的应用,4,6.1 遗传算法的产生与发展,遗传算法(genetic algorithms,GA):一类借鉴生物界自然选择和自然遗传机制的随机搜索算法,非常适用于处理传统搜索方法难以解决的复杂和非线性优化问题。 遗传算法可广泛应用于组合优化、机器学习、自适应控制、规划设计和人工生命等领域。,5,6.1 遗传算法的产生与发展,6.1.1 遗传算法的生物背景 6.1.2 遗产
3、算法的基本思想 6.1.3 遗产算法的发展历史 6.1.4 设计遗产算法的基本原则与内容,6,6.1.1 遗传算法的生物学背景,适者生存:最适合自然环境的群体往往产生了更大的后代群体。 生物进化的基本过程:,染色体(chromosome):生物的遗传物质的主要载体。 基因(gene):扩展生物性状的遗传物质的功能单元和结构单位。 基因座(locus):染色体中基因的位置。 等位基因(alleles):基因所取的值。,7,6.1.2 遗传算法的基本思想,8,6.1.2 遗传算法的基本思想,遗传算法的基本思想: 在求解问题时从多个解开始,然后通过一定的法则进行逐步迭代以产生新的解。,9,6.1.3
4、 遗传算法的发展历史,1962年,Fraser提出了自然遗传算法。 1965年,Holland首次提出了人工遗传操作的重要性。 1967年,Bagley首次提出了遗传算法这一术语。 1970年,Cavicchio把遗传算法应用于模式识别中。 1971年,Hollstien在论文计算机控制系统中人工遗传自适应方法中阐述了遗传算法用于数字反馈控制的方法。 1975年,美国J. Holland出版了自然系统和人工系统的适配;DeJong完成了重要论文遗传自适应系统的行为分析。 20世纪80年代以后,遗传算法进入兴盛发展时期。,10,6.1.4 遗传算法设计的基本内容,11,第6章 遗传算法及其应用,
5、6.1 遗传算法的产生与发展 6.2 遗传算法的基本算法 6.3 遗传算法的改进算法 6.4 遗传算法的应用,12,6.2 遗传算法的基本算法,遗传算法的五个基本要素: 参数编码 初始群体的设定 适应度函数的设计 遗传操作设计 控制参数设定,13,6.2 遗传算法的基本算法,6.2.1 编码 6.2.2 群体设定 6.2.3 适应度函数 6.2.4 选择 6.2.5 交叉 6.2.6 变异 6.2.7 遗传算法的一般步骤,14,6.2.1 编码,位串编码,一维染色体编码方法:将问题空间的参数编码为一维排列的染色体的方法。,二进制编码:用若干二进制数表示一个个体,将原问题的解空间映射到位串空间
6、B=0,1上,然后在位串空间上进行遗传操作。,(1) 二进制编码,15,6.2.1 编码,(1) 二进制编码(续),优点: 类似于生物染色体的组成,算法易于用生物遗传理论解释,遗传操作如交叉、变异等易实现;算法处理的模式数最多。,缺点: 相邻整数的二进制编码可能具有较大的Hamming距离,降低了遗传算子的搜索效率。 15:01111 16: 10000 要先给出求解的精度。 求解高维优化问题的二进制编码串长,算法的搜索效率低。,16,6.2.1 编码,位串编码 (2) Gray 编码,Gray编码:将二进制编码通过一个变换进行转换得到的编码。,17,6.2.1 编码,2. 实数编码,采用实数
7、表达法不必进行数制转换,可直接在解的表现型上进行遗传操作。 多参数映射编码的基本思想:把每个参数先进行二进制编码得到子串,再把这些子串连成一个完整的染色体。 多参数映射编码中的每个子串对应各自的编码参数,所以,可以有不同的串长度和参数的取值范围。,18,初始种群的产生,6.2.2 群体设定,(1)根据问题固有知识,把握最优解所占空间在整个问题空间中的分布范围,然后,在此分布范围内设定初始群体。 (2)随机产生一定数目的个体,从中挑选最好的个体加到初始群体中。这种过程不断迭代,直到初始群体中个体数目达到了预先确定的规模。,19,2. 种群规模的确定,6.2.2 群体设定,模式定理表明:若群体规模
8、为M,则遗传操作可从这M 个个体中生成和检测 个模式,并在此基础上能够不断形成和优化积木块,直到找到最优解。,群体规模太小,遗传算法的优化性能不太好,易陷入局部最优解。 群体规模太大,计算复杂。,20,将目标函数映射成适应度函数的方法,6.2.3 适应度函数,若目标函数为最大化问题,则 若目标函数为最小化问题,则,将目标函数转换为求最大值的形式,且保证函数值非负!,若目标函数为最大化问题,则 若目标函数为最小化问题,则,21,适应度函数的尺度变换,在遗传算法中,将所有妨碍适应度值高的个体产生,从而影响遗传算法正常工作的问题统称为欺骗问题(deceptive problem)。,6.2.3 适应
9、度函数,过早收敛:缩小这些个体的适应度,以降低这些超级个体的竞争力。,停滞现象:改变原始适应值的比例关系,以提高个体之间的竞争力。,适应度函数的尺度变换(fitness scaling)或者定标:对适应度函数值域的某种映射变换。,22,适应度函数的尺度变换(续),(1)线性变换:,6.2.3 适应度函数,满足,23,适应度函数的尺度变换(续),(2)幂函数变换法:,6.2.3 适应度函数,(3)指数变换法:,24,6.2.4 选择,个体选择概率分配方法 选择操作也称为复制(reproduction)操作:从当前群体中按照一定概率选出优良的个体,使它们有机会作为父代繁殖下一代子孙。 判断个体优良
10、与否的准则是各个个体的适应度值:个体适应度越高,其被选择的机会就越多。,25,6.2.4 选择,个体选择概率分配方法 (1)适应度比例方法(fitness proportional model)或蒙特卡罗法(Monte Carlo),各个个体被选择的概率和其适应度值成比例。,个体 被选择的概率为:,26,6.2.4 选择,1. 个体选择概率分配方法 (2) 排序方法 (rank-based model), 线性排序:J. E. Baker,群体成员按适应值大小从好到坏依次排列: 个体 按转盘式选择的方式选择父体,27,6.2.4 选择,1. 个体选择概率分配方法 (2) 排序方法 (rank-
11、based model), 非线性排序: Z. Michalewicz,将群体成员按适应值从好到坏依次排列,并按下式分配选择概率:,28,6.2.4 选择,1.个体选择概率分配方法 (2) 排序方法 (rank-based model),可用其他非线性函数来分配选择概率,只要满足以下条件:,29,6.2.4 选择,2. 选择个体方法 (1)转盘赌选择(roulette wheel selection),按个体的选择概率产生一个轮盘,轮盘每个区的角度与个体的选择概率成比例。 产生一个随机数,它落入转盘的哪个区域就选择相应的个体交叉。,第1轮产生一个随机数:0.81,第2轮产生一个随机数:0.32
12、,30,6.2.4 选择,2. 选择个体方法 (2)锦标赛选择方法(tournament selection model),锦标赛选择方法:从群体中随机选择个个体,将其中适应度最高的个体保存到下一代。这一过程反复执行,直到保存到下一代的个体数达到预先设定的数量为止。,随机竞争方法(stochastic tournament):每次按赌轮选择方法选取一对个体,然后让这两个个体进行竞争,适应度高者获胜。如此反复,直到选满为止。,31,6.2.4 选择,2. 选择个体方法,最佳个体(elitist model)保存方法:把群体中适应度最高的个体不进行交叉而直接复制到下一代中,保证遗传算法终止时得到的
13、最后结果一定是历代出现过的最高适应度的个体。,(3)最佳个体保存方法,32,6.2.5 交叉,1. 基本的交叉算子 (1)一点交叉(single-point crossover),一点交叉:在个体串中随机设定一个交叉点,实行交叉时,该点前或后的两个个体的部分结构进行互换,并生成两个新的个体。,二点交叉:随机设置两个交叉点,将两个交叉点之间的码串相互交换。,(2)二点交叉 (two-point crossover),33,6.2.5 交叉,2. 修正的交叉方法 部分匹配交叉PMX:Goldberg D. E.和R. Lingle(1985),34,6.2.6 变异,(1)位点变异:群体中的个体码
14、串,随机挑选一个或多个基因座,并对这些基因座的基因值以变异概率作变动。,(2)逆转变异:在个体码串中随机选择两点(逆转点),然后将两点之间的基因值以逆向排序插入到原位置中。,(3)插入变异:在个体码串中随机选择一个码,然后将此码插入随机选择的插入点中间。,(4)互换变异:随机选取染色体的两个基因进行简单互换。 (5)移动变异:随机选取一个基因,向左或者向右移动一个随机位数。,35,6.2.7 遗传算法的一般步骤,36,6.2.7 遗传算法的一般步骤,(1)使用随机方法或者其它方法,产生一个有N个染色 体的初始群体 pop(1), ;,(3)若满足停止条件,则算法停止;否则,以概率 从pop(t
15、)中随机选择一些染色体构成一个新种群,37,6.2.7 遗传算法的一般步骤,(4)以概率 进行交叉产生一些新的染色体,得到一个新的群体,(5)以一个较小的概率 使染色体的一个基因发生变异,形成 ; ,成为一个新的群体 返回 (2)。,38,6.2.8 遗传算法的特点,可直接对结构对象进行操作。 利用随机技术指导对一个被编码的参数空间进行高效率搜索。 采用群体搜索策略,易于并行化。 仅用适应度函数值来评估个体,并在此基础上进行遗传操作,使种群中个体之间进行信息交换。,39,第6章 遗传算法及其应用,6.1 遗传算法的产生与发展 6.2 遗传算法的基本算法 6.3 遗传算法的改进算法 6.4 遗传
16、算法的应用,40,6.3 遗传算法的改进算法,6.3.1 双倍体遗传算法 6.3.2 双种群遗传算法 6.3.3 自适应遗传算法,41,6.3.1 双倍体遗传算法,1. 基本思想 双倍体遗传算法采用显性和隐性两个染色体同时进行进化,提供了一种记忆以前有用的基因块的功能。 双倍体遗传算法采用显性遗传。,双倍体遗传延长了有用基因块的寿命,提高了算法的收敛能力,在变异概率低的情况下能保持一定水平的多样性。,42,6.3.1 双倍体遗传算法,2. 双倍体遗传算法的设计,(1)编码/解码:两个染色体(显性、隐性) (2)复制算子:计算显性染色体的适应度,按照显性染色体 的复制概率将个体复制到下一代群体中
17、。 (3)交叉算子:两个个体的显性染色体交叉、隐性染色体也同时交叉。 (4)变异算子:个体的显性染色体按正常的变异概率变异;隐性染色体按较大的变异概率变异。 (5)双倍体遗传算法显隐性重排算子:个体中适应值较大的染色体设为显性染色体,适应值较小的染色体设为隐性染色体。,43,双种群遗传算法程序流程图,44,6.3.2 双种群遗传算法,基本思想 在遗传算法中使用多种群同时进化,并交换种群之间优秀个体所携带的遗传信息,以打破种群内的平衡态达到更高的平衡态,有利于算法跳出局部最优。 多种群遗传算法:建立两个遗传算法群体,分别独立地运行复制、交叉、变异操作,同时当每一代运行结束以后,选择两个种群中的随
18、机个体及最优个体分别交换。,45,6.3.2 双种群遗传算法,2. 双种群遗传算法的设计 (1)编码/解码设计 (2)交叉算子、变异算子 (3)杂交算子,设种群A与种群B,当A与B种群都完成了选择、交叉、变异算子后,产生一个随机数num,随机选择A中num个个体与A中最优个体,随机选择B中num个个体与B中最优个体,交换两者,以打破平衡态。,46,双种群遗传算法程序流程图,47,6.3.3 自适应遗传算法,1. 基本思想,Srinvivas M.,Patnaik L. M.等在1994年提出一种自适应遗传算法(adaptive genetic algorithms,AGA): 能随适应度自动改
19、变。,AGA:当种群各个体适应度趋于一致或者趋于局部最优时,使 增加,以跳出局部最优;而当群体适应度比较分散时,使 减少,以利于优良个体的生存。,同时,对于适应度高于群体平均适应值的个体,选择较低的 ,使得该解得以保护进入下一代;对低于平均适应值的个体,选择较高的 值,使该解被淘汰。,48,6.3.3 自适应遗传算法,2. 自适应遗传算法的步骤 (1) 编码/解码设计。 (2) 初始种群产生:N(N 是偶数)个候选解,组成初始解集。 (3) 定义适应度函数为 ,计算适应度 。 (4) 按轮盘赌规则选择N 个个体,计算 。 (5)将群体中的各个个体随机搭配成对,共组成N/2对, 对每一对个体,按
20、照自适应公式计算自适应交叉概率 ,随机产生R(0,1),如果 则对该对染色体进行交叉操作。,49,2. 自适应遗传算法的步骤(续) (6)对于群体中的所有个体,共N个,按照自适应变异公式计算自适应变异概率 ,随机产生 R(0,1),如果 则对该染色体进行交叉操作。 (7)计算由交叉和变异生成新个体的适应度,新个体与父代一起构成新群体。 (8)判断是否达到预定的迭代次数,是则结束;否则转 (4)。,6.3.3 自适应遗传算法,50,3. 适应的交叉概率与变异概率,6.3.3 自适应遗传算法,普通自适应算法中,当个体适应度值越接近最大适应度值时,交叉概率与变异概率就越小;当等于最大适应度值时,交叉
21、概率和变异概率为零。,改进的思想:当前代的最优个体不被破坏,仍然保留(最优保存策略);但较优个体要对应于更高的交叉概率与变异概率。,51,第6章 遗传算法及其应用,6.1 遗传算法的产生与发展 6.2 遗传算法的基本算法 6.3 遗传算法的改进算法 6.4 遗传算法的应用,52,1. 流水车间调度问题,问题描述:n 个工件要在 m 台机器上加工,每个工件需要经过 m 道工序,每道工序要求不同的机器,n 个工件在 m 台机器上的加工顺序相同。工件在机器上的加工时间是给定的,设为,问题的目标:确定 n 个工件在每台机器上的最优加工顺序,使最大流程时间达到最小。,6.4 遗传算法的应用,53,1.
22、流水车间调度问题,假设: (1)每个工件在机器上的加工顺序是给定的。 (2)每台机器同时只能加工一个工件。 (3)一个工件不能同时在不同的机器上加工。 (4)工序不能预定。 (5)工序的准备时间与顺序无关,且包含在加工时间中。 (6) 工件在每台机器上的加工顺序相同,且是确定的。,6.4 遗传算法的应用,54,1. 流水车间调度问题,6.4 遗传算法的应用,问题的数学模型:,个工件、 台机器的流水车间调度问题的完工时间:,55,2. 求解流水车间调度问题的遗传算法设计,(1) FSP的编码方法 对于FSP,最自然的编码方式是用染色体表示工件的顺序。,6.4 遗传算法的应用,对于有四个工件的FS
23、P,第 个染色体 ,表示工件的加工顺序为: 。,56,2. 求解流水车间调度问题的遗传算法设计,(2)FSP的适应度函数,: 个染色体 的最大流程时间, FSP的适应度函数:,6.4 遗传算法的应用,57,求解FSP的遗传算法实例,例6.1 Ho 和 Chang(1991) 给出的5个工件、4台机器问题。,6.4 遗传算法的应用,58,用遗传算法求解。选择交叉概率 ,变异概 ,种群规模为20,迭代次数 。,表9.3 遗传算法运行的结果,6.4 遗传算法的应用,用穷举法求得最优解:4-2-5-1-3,加工时间:213; 最劣解:1-4-2-3-5,加工时间:294;平均解的加工时间:265。,遗传算法运行的结果,59,表9.3 遗传算法运行的结果,最优解收敛图,6.4 遗传算法的应用,60,平均值收敛图,6.4 遗传算法的应用,61,机器甘特图,6.4 遗传算法的应用,62,Introduction of Artificial Intelligence,THE END,63,