遗传算法入门最好的例子+Matlab源程序[汇编] .pdfVIP

遗传算法入门最好的例子+Matlab源程序[汇编] .pdf

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
精品文档 遗传算法入门最好的例子 +Matlab 源程序 例:求下述二元函数的最大值: (1) 个体编码 遗传算法的运算对象是表示个体的符号串,所以必须把变量 x1, x2 编码为一种符号 串。本题中,用无符号二进制整数来表示。 因 x1, x2 为 0 ~ 7 之间的整数,所以分别用 3 位无符号二进制整数来表示,将它们 连接在一起所组成的 6 位无符号二进制数就形成了个体的基因型,表示一个可行解。 例如,基因型 X =101110 所对应的表现型是: x =[ 5 ,6 ] 。 个体的表现型 x 和基因型 X 之间可通过编码和解码程序相互转换。 (2) 初始群体的产生 遗传算法是对群体进行的进化操作,需要给其淮备一些表示起始搜索点的初始群体数 据。 本例中, 群体规模的大小取为 4 ,即群体由 4 个个体组成, 每个个体可通过随机方法产 生。 如: 011101 , 101011 , 011100 , 111001 (3) 适应度汁算 遗传算法中以个体适应度的大小来评定各个个体的优劣程度, 从而决定其遗传机会的大 小。 本例中, 目标函数总取非负值, 并且是以求函数最大值为优化目标, 故可直接利用目标 函数值作为个体的适应度。 (4) 选择运算 选择运算 ( 或称为复制运算 ) 把当前群体中适应度较高的个体按某种规则或模型遗传到 下一代群体中。一般要求适应度较高的个体将有更多的机会遗传到下一代群体中。 . 精品文档 本例中,我们采用与适应度成正比的概率来确定各个个体复制到下一代群体中的数量。 其具体操作过程是: 先计算出群体中所有个体的适应度的总和 fi ( i=1.2, … ,M ); 其次计算出每个个体的相对适应度的大小 fi / fi ,它即为每个个体被遗传到下一代群 体中的概率; 每个概率值组成一个区域,全部概率值之和为 1 ; 最后再产生一个 0 到 1 之间的随机数,依据该随机数出现在上述哪一个概率区域内来 确定各个个体被选中的次数。 (5) 交叉运算 交叉运算是遗传算法中产生新个体的主要操作过程, 它以某一概率相互交换某两个个体 之间的部分染色体。 本例采用单点交叉的方法,其具体操作过程是: ? 先对群体进行随机配对; ? 其次随机设置交叉点位置; ? 最后再相互交换配对染色体之间的部分基因。 . 精品文档 (6) 变异运算 变异运算是对个体的某一个或某一些基因座上的基因值按某一较小的概率进行改变, 它 也是产生新个体的一种操作方法。 本例中,我们采用基本位变异的方法来进行变异运算,其具体操作过程是: ? 首先确定出各个个体的基因变异位置, 下表所示为随机产生的变异点位置, 其中的数字表 示变异点设置在该基因座处; ? 然后依照某一概率将变异点的原有基因值取反。 对群体 P(t) 进行一轮选择、交叉、变异运算之后可得到新一代的群体 p(t+1) 。 从上表中可以看出, 群体经过一代进化之后, 其适应度的最大值、 平均值都得到了明显的改 进。事实上,这里已经找到了最佳个体

您可能关注的文档

文档评论(0)

蔡氏壹贰 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档