Matlab与遗传算法.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
遗传算法理论 遗传算法的概要 问题的提出 对于一个求函数最大的优化问题一般可以描述为下述数学规划模型 式中, 为决策变量,f(x)为目标函数,式(1-2),(1-3)为约束条件,U为基本空间,R是U的一个子集,称为可行集。 总的来讲,求最优解或近似最优的方法主要有三种:枚举法,启发式算法和搜索算法,随着问题种类的不同和规模的扩大,上述方法都不理想,遗传算法却提供了这类问题一个有效方法,开创了一种新的全局优化搜索算法。 遗传算法中,将N维决策向量 用n个记号Xi(i=1,2,...n)所组成的符号串X来表示: 把每个Xi看成一个遗传基因,它的所有可能取值称为等位基因,这样,X就可看做是由n个遗传基因所组成的一个染色体。 遗传算法中,决策变量X组成了问题的解空间。对问题最优的搜索是通过染色体X的搜索过程来进行的,从而由所有染色体X就组成了问题的搜索空间。 遗传算法的基本概念和术语 与生物界的进化过程相类比,遗传算法中有以下几个非常重要的概念和术语: 种群(population) 染色体带有特征的个体的集合称为种群。该集合内个体数称为群体的大小。有时个体的集合也称为个体群。 适应度(fitness)度量某个物种对于生存环境的适应程度。对生存环境适应程度较高的物种将获得更多的繁殖机会。 选择(selection) 指决定以一定的概率从种群中选择若干个体的操作。一般而言,选择的过程是一种基于适应度的优胜劣汰的过程。 交叉(crossover) 将群体内的各个个体随机搭配成对,对每个个体以某个概率(交叉概率,交换它们之间的部分染色体, 变异(mutation) 对群体中的每个个体以某一概率(变异概率)改变某一个或某些基因座上的基因值为其它的等位基因。 编码(coding) DNA中遗传信息在一个长链上按一定的模式排列,也即进行了遗传编码。遗传编码可以看作从表现型到遗传子型的映射。 解码(decoding) 从遗传子型到表现型的映射。 遗传算法的手工模拟计算示例 GA的流程 遗传算法的特点 遗传算法以决策变量的编码作为运算对象。传统的优化算法往往直接利用决策变量的实际值本身来进行优化计算,而遗传算法是一决策变量的某种形式的编码为运算对象。 遗传算法直接以目标函数值作为搜索信息。传统算法不仅需要利用目标函数值,而且往往还需要目标函数的到数值等其它辅助信息。因而遗传算法避开了求导的障碍。 遗传算法同时使用多个搜索点的搜索信息。传统的优化算法往往从解空间中的一个初始点开始迭代搜索过程。 遗传算法使用了概率搜索技术 这优于传统算法的确定性搜索,因为从一个点到另一个点的确定性有可能使搜索永远达不到最优点 遗传算法的基本实现技术 BY朱诗颖 1.编码方法 2.适应度函数 3.选择算子 4.交叉算子 5.变异算子 6.遗传算法的运行参数 编码方法 在遗传算法中,把一个问题的可行解从其解空间转换到遗传算法所能处理的搜索空间的转换方法称为编码。 编码是遗传算法在首要解决的问题,它会影响到交叉算子,变异算子等运算方法,决定了运算的效率。 DeJong提出了两条操作性较强的实用编码原则: 一:应使用能易于产生与所求问题相关的且低阶,短定义长度模式的编码方案。 二:应使用能使问题得到自然表示或描述的具体有最少编码字符集的编码方案。 目前主要的编码方法: 1.二进制编码方法 2.浮点数编码方法 3.符号编码方法 二进制编码 遗传算法中最常用的一种编码方法,符号集是由二进制符号0和1所组成。符号串长度与问题所要求的解精度有关。 取值范围是 ,假设用长度为二进制编码符号来表示,则能产生 种不同的的编码。 若使编码对应关系如下: 格雷编码 格雷码的连续两个整数所对应的编码之间仅仅只有一个码位是不相同的。假设有一个二进制编码为B= ,其对应的格雷码为G= , 由二进制到格雷码的转换公式: 遗传算法的局部搜索能力差,变异操作一个基因座的差异,对应的参数值却很大,格雷码则克服了这个弱点。 例如:对于区间[0,1023]中的两个邻近的整数x1=175和x2=176,若使用长度为10位的二进制编码为:x1=0010101111,

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档