遗传算法简介和代码详解.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
WORD格式可编辑 专业知识分享 遗传算法简述及代码详解 声明:本文内容整理自网络,认为原作者同意转载,如有冒犯请联系我。 遗传算法基本内容 遗传算法为群体优化算法,也就是从多个初始解开始进行优化,每个解称为一个染色体,各染色体之间通过竞争、合作、单独变异,不断进化。 遗传学与遗传算法中的基础术语比较 染色体(chromosome) 数据,数组,序列 基因(gene) 单个元素,位 等位基因(allele) 数据值,属性,值 基因座(locus) 位置,iterator位置 表现型(phenotype) 参数集,解码结构,候选解 染色体:又可以叫做基因型个体(individuals) 群体/种群(population):一定数量的个体组成,及一定数量的染色体组成,群体中个体的数 量叫做群体大小。 初始群体:若干染色体的集合,即解的规模,如30,50等,认为是随机选取的数据集合。 适应度(fitness):各个个体对环境的适应程度 优化时先要将实际问题转换到遗传空间,就是把实际问题的解用染色体表示,称为编码,反过程为解码/译码,因为优化后要进行评价(此时得到的解是否较之前解优越),所以要返回问题空间,故要进行解码。SGA采用二进制编码,染色体就是二进制位串,每一位可称为一个基因;如果直接生成二进制初始种群,则不必有编码过程,但要求解码时将染色体解码到问题可行域内。 遗传算法的准备工作: 数据转换操作,包括表现型到基因型的转换和基因型到表现型的转换。前者是把求解空间中的参数转化成遗传空间中的染色体或者个体(encoding),后者是它的逆操作(decoding) 2) 确定适应度计算函数,可以将个体值经过该函数转换为该个体的适应度,该适应度的高低要能充分反映该个体对于解得优秀程度。非常重要的过程。 遗传算法基本过程为: 1) 编码,创建初始群体 2) 群体中个体适应度计算 3) 评估适应度 4) 根据适应度选择个体 5) 被选择个体进行交叉繁殖 6) 在繁殖的过程中引入变异机制 7) 繁殖出新的群体,回到第二步 实例一:(建议先看实例二) 求 范围内的的最小值 1) 编码算法选择为将转化为2进制的串,串的长度为5位(串的长度根据解的精度设 定,串长度越长解得精度越高)。(等位基因的值为0 or 1)。 2) 计算适应度的方法是:先将个体串进行解码,转化为int型的x值,然后使用 作为其适应度计算合适(由于是最小值,所以结果越小,适应度也越好)。 需要说明,将原目标函数设置为适应度函数是一种选择,但未必是最贴切的方法。 3) 正式开始,先设置群体大小为4,然后初始化群体 = (在[0,31]范围内随机选取4个整 数就可以编码) 4) 计算适应度Fi(由于是求解最小值,可以选取一个大的基准线1000 ) 5) 计算每个个体的选择概率,选择概率要能够反映个体的优秀程度。这里用一个很简单的 方法来确定选择概率 6) 选择 根据所有个体的选择概率进行淘汰选择。这里使用的是一个赌轮的方式进行淘汰选择。先按照每个个体的选择概率创建一个赌轮,然后选取4次,每次先产生一个0-1的随机小数,然后判断该随机数落在那个段内就选取相对应的个体。这个过程中,选取概率高的个体将可能被多次选择,而概率低的就可能被淘汰。 下面是一个简单的赌轮的例子 13% 35% 15% 37% ----------|----------------------------|------------------|---------------------------------| 个体1 个体2 个体3 ^0.67 个体4 随机数为0.67落在了个体4的端内,本次选择了个体4。 被选中的个体将进入配对库(mating pool,配对群体)准备开始繁殖。 7) 简单交叉 先对配对库中的个体进行随机配对,然后在配对的2个个体中设置交叉点,交换2个个体的信息后产生下一代。 比如( | 代表简单串的交叉位置) ( 0110|1,1100|0 ) --交叉-- (01100,11001) ( 01|000,11|011 ) --交叉-- (01011,11000) 2个父代的个体在交叉后繁殖出了下一代的同样数量的个体. 复杂的交叉在交叉的位置,交叉的方法,双亲的数量上都可以选择.其目的都在于尽可能的培育出更优秀的后代 8) 变异

文档评论(0)

xiangxiang + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档