人工智能-许建华--南京师范大学计算机科学系-4.5遗传算法_第1页
人工智能-许建华--南京师范大学计算机科学系-4.5遗传算法_第2页
人工智能-许建华--南京师范大学计算机科学系-4.5遗传算法_第3页
人工智能-许建华--南京师范大学计算机科学系-4.5遗传算法_第4页
人工智能-许建华--南京师范大学计算机科学系-4.5遗传算法_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2020/9/15,人 工 智 能 Artificial Intelligence (AI),许建华 南京师范大学计算机科学系 2006年9-12月,2020/9/15,4.5 遗传算法,生物群体的生存过程普遍遵循达尔文的物竞天择、适者生存的进化准则;生物通过个体间的选择、交叉、变异来适应大自然环境 。,2020/9/15,遗传算法是模仿生物遗传学和自然选择机理,通过人工方式构造的一类优化搜索算法,是对生物进化过程的一个数学仿真,属于进化计算中的一类方法。,2020/9/15,串码:表示染色体或者个体 适应度函数:表示一个染色体的适应能力,其最大值或者最小值就是最优化问题的解,2020/9/1

2、5,4.5.1 遗传算法的基本机理 4.5.2 遗传算法的求解步骤 4.5.3 遗传算法的收敛性(略),2020/9/15,4.5.1 遗传算法的基本机理 1 编码与解码 2 适应度函数 3 遗传操作,2020/9/15,1 编码与解码,在遗传算法中,为了模仿遗传学的遗传规律,必须对问题的解的结构进行编码,运行遗传算法后,再通过解码得到问题的解。,编码,解码,遗传算法,问题,2020/9/15,编码:将问题解的结构转换成位串形式编码的过程 解码:将位串形式编码转化成问题的解的过程 染色体(个体):位串形式编码,2020/9/15,编码与解码方法: 二进制码方法 浮点数方法 符号方法 格雷码方法

3、,2020/9/15,二进制码方法,编码方法:将参数的取值范围分成等长的 2l 1 部分,再用 l 个二进制来编码每一个等分,共有2l 种不同的编码。,2020/9/15,假设 x A, B, 每一个部分的长度为,l2,00A 01A+ 10A+2 11A+3=B,A,B,2020/9/15,解码方法:,如果某一个体的编码为: X=xl xl-1 x2 x1 解码公式为,2020/9/15,特点: 编码与解码简单 码串比较长 搜索空间是有限的,提高解的精度,必须加大码长 求解多个参数时,将所有的码拼接起来,2020/9/15,符号方法:个体编码中的基因值只取代码含义的符号集,例:TSP问题,按

4、照一个回路中城市的序号进行编码,相互之间不能相同,2020/9/15,2 适应度函数,适应度函数:度量染色体优劣程度的函数,体现自然进化中的优胜劣汰原则。对于优化问题,适应度函数就是目标函数。,2020/9/15,例:对于TSP问题,要求总路径长度为最小,适应度函数可以定义为,最小化,最大化,其中,wn+1=w1 d(wj,wj+1) :两个城市之间的距离,2020/9/15,3 遗传操作,三种简单的遗传操作: 选择(Selection) 交叉(Crossover) 变异(Mutation),2020/9/15,选择操作(复制操作):根据适应度函数值所度量的个体的优劣程度决定此个体在下一代是被

5、淘汰或是被遗。一般情况下,如果是求最大值,适应度函数值大的个体具有较大的生存机会。,2020/9/15,交叉操作:选出两个个体作为父母个体,将两种的部分码值进行交换。,例:,2020/9/15,变异操作:改变数码串上的某一个位置的数码。,例,2020/9/15,4.5.2 遗传算法的求解步骤,1 遗传算法的特点 通过编码使得解空间是有限的,所有遗传算法是一种基于空间搜索的求解技术,通过自然选择、交叉、变异等操作以及达尔文的适者生存的理论,模拟自然进化过程来寻找问题的解。,2020/9/15,现在将遗传算法看成为一种现代的优化技术,但是不一定能找到问题的全局最优解。通过一定的手段,可以将误差控制

6、在容许的范围内(以很大的概率找到全局最优解)。,最优解,2020/9/15,特点: 对参数集合的编码进行进化,不是参数本身进行进化 从问题解的编码组(群体)开始,不是从单个解开始搜索 只利用适应度函数(目标函数),不需要导数等信息 只利用选择、交叉、变异等操作,不需要利用确定性规则进行随机操作,2020/9/15,2 遗传算法的框图,遗传算法的基本思想:通过随机方式产生若干个个体,形成一个初始种群;利用适应度函数计算它们的适应度函数值,淘汰适应度小的个体,选择适应度高的个体参加遗传操作;经过遗传操作后的个体形成下一代种群,再对新的种群进行新的一轮进化。,2020/9/15,基本思想,简单的遗传

7、算法,基本的遗传算法,复杂的遗传算法,2020/9/15,简单遗传算法的步骤: 初始化种群 计算种群中每一个个体的适应度函数值 根据与适应度相关联的规则确定进入下一轮的个体,2020/9/15,按照某一个概率进行交叉操作 按照某一个概率进行变异操作 如果不满足终止条件,则转到(2),否则继续 将种群中适应度最优的个体作为问题的解,2020/9/15,开始,初始化种群,计算适应度值,选择操作,交叉操作,变异操作,终止条件?,选取适应度最优个体作为解,结束,是,2020/9/15,3 遗传算法例子,求最大值,2020/9/15,主要步骤: 编码:22位二进制数码串 种群初始化 适应度函数:函数本身

8、 遗传操作:选择、交叉、变异操作 算法的若干关键参数:种群大小、种群代数、选择交叉变异概率等,2020/9/15,结果: 最佳个体: 1111 0011 0100 0100 0001 01 对于自变量值:1.850773 函数值: 2.850227,2020/9/15,4 Matlab中的遗传算法函数,使用方式: 函数形式 ga 图形界面形式 gatool,包含在Matlab7.0版本的Genetic Algorithm and Direct Search 工具箱中,只能求最小值,2020/9/15,GA算法的函数形式: x , fval , reason=ga(fitnessfcn, num

9、, options) 其中: fitnessfcn: 求目标函数值的Matlab函数,用户自己编写 num: 变量的个数 options:算法参数的设置 (可缺省),2020/9/15,函数fitnessfcn的编写: 例:,Matlab函数 function y=simple_fitness(x) y=100*(x(1)2-x(2)2+(1-x(1)2,用simple_fitness代替ga中的fitnessfcn,2020/9/15,Options 的内容:,PopulationType: doubleVector PopInitRange: 2x1 double PopulationSi

10、ze: 20 EliteCount: 2 CrossoverFraction: 0.8000 MigrationDirection: forward MigrationInterval: 20 MigrationFraction: 0.2000 Generations: 100 TimeLimit: Inf FitnessLimit: -Inf StallLimitG: 50 StallLimitS: 20,InitialPopulation: InitialScores: PlotInterval: 1 CreationFcn: gacreationuniform FitnessScalin

11、gFcn: fitscalingrank SelectionFcn: selectionstochunif CrossoverFcn: crossoverscattered MutationFcn: mutationgaussian HybridFcn: Display: final PlotFcns: OutputFcns: Vectorized: off,2020/9/15,参数设置函数:gaoptimset 生成参数结构与设置参数值: options=gaoptimset(param1,val1,param2,val2,) 改变参数设置 options=gaoptimset(options, param1,val2,.),2020/9/15,参数获取函数 val = gaoptimget(options, param),2020/9/15,返回结果的含义: x , fval , reason,最优解,算法终止的原因,最优解对应的函数值,2020/9/15,终止算法的五个条件: Generations(代数,缺省值100) Time Limit(运行时间,无穷) Fitness Limit(适应度

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论