第三章 进化算法之遗传算法及其应用

  • 3.1遗传算法的产生与发展
    • 3.1.1遗传算法的基本思想
    • 3.1.2遗传算法设计的基本内容
  • 3.2遗传算法的基本算法
    • 3.2.1编码
    • 3.2.2群体设定
    • 3.2.3适应度函数
    • 3.2.4选择
    • 3.2.5交叉
    • 3.2.6变异
    • 3.2.7遗传算法的一般步骤
  • 3.3遗传算法的应用
    • 3.3.1计算函数极值的遗传算法实现过程
    • 3.3.2遗传算法求解巡回旅行商的问题
  • 3.4遗传算法的改进算法
    • 3.4.1双倍体遗传算法
    • 3.4.2双种群遗传算法
    • 3.4.3自适应遗传算法
  • 练习

3.1遗传算法的产生与发展

遗传算法是一种仿生全局优化算法,模仿生物的遗传进化原理,通过选择、交叉和变异等操作机制,使种群中的个体的适应性不断提高。

3.1.1遗传算法的基本思想

生物遗传概念 遗传算法中的应用
适者生存 目标值比较大的解被选择的可能性大
个体(Individual)
染色体(Chromosome) 解的编码(字符串、向量等)
基因(Gene) 解的编码中每一分量
适应性(Fitness) 适应度函数值
群体(Population) 根据适应度值选定的一组解(解的个数为群体的规模)
婚配(Marry) 交叉(Crossover)选择两个染色体进行交叉产生一组新的染色体的过程
变异(Mutation) 编码的某一分量发生变化的过程

3.1.2遗传算法设计的基本内容

编码方案:怎样把优化问题的解进行编码。
适应度函数:怎样根据目标函数构建适应度函数。
选择策略:优胜劣汰。
控制参数:种群的规模、算法执行的最大代数、执行不同遗传操作的概率等。
遗传算子:选择、交叉、变异。
算法终止准则:规定一个最大的演化代数,或算法在连续多少代以后解的适应值没有改进。

遗传算法通常包括如下工作:

  1. 编码

遗传算法首先要用字符串表达所研究的问题,这
称作编码。表达问题的字符串相当于遗传学中的染
色体。每个字符串称作个体。每一遗传代次中个体
的组合称为群体。

  1. 形成初始群体

遗传算法中,常用随机的方法产生初始群体,
即随机生成一组任意排列的字符串。群体中个体
的数目通常也是固定的。

  1. 计算适应度

衡量字符串(染色体)好坏的指标是适应度
(Fitness),它通常也就是遗传算法中的目标函数。
适应度是今后优胜劣汰的主要判据。

  1. 复制

为了将已有的群体变为下一代群体,遗传算法仿
效进化论中“自然选择,适者生存”的原则,从旧群
体中选择优良个体予以复制,直接进入下一代群体。
选择的依据是个体适应度的大小,适应度大的个体接
受复制,使之繁殖;适应度小的个体则予删除,使之
死亡。

  1. 交叉

通过复制产生新群体,其总体性能得到改善,然而却不能产生新的个体。为了产生新的个体,遗传算法仿照生物学中交叉的方法,对染色体(字符串)的某些部分进行交叉换位。被交换的母体都选自经过复制产生的新一代个体(优胜者)。

  1. 变异

遗传算法模仿生物学中基因变异的方法,将个体字符
串某位符号进行逆变,即由1变为0或由0变为1。例如,下
式左侧的个体于第3位变异,得到新个体如下面所示:{10000}->{10100}

  1. 终止

反复执行上述(3)-(6)项工作,直至得出满意的最
优解。

总结:通过上述函数极值求解的例子可以看出,遗传算法仿效生物进化和遗传的过程,从随机生成的初始可行解出发,利用复制、交叉、变异等操作,遵循优胜劣汰的原则,不断循环执行,逐渐逼近全局最优解。

3.2遗传算法的基本算法

3.2.1编码

  1. 位串编码:一维染色体编码方法:将问题空间的参数编码为一维排列的染色体的方法。包括二进制编码和Gray编码。

二进制编码:用若干二进制数表示一个个体,将原问题
的解空间映射到位串空间 B={0,1}上,然后在位串空
间上进行遗传操作。

Gray编码:将二进制编码通过一个变换进行转换得到的编码。深入了解

  1. 实数编码:采用实数表达法不必进行数制转换,可直接在解的表现型上进行遗传操作。
  2. 多参数级联编码:把每个参数先进行二进制编码得到子串,再把这些子串连成一个完整的染色体。

3.2.2群体设定

  1. 初始种群的产生

(1)根据问题固有知识,把握最优解所占空间在整
个问题空间中的分布范围,然后,在此分布范围内设
定初始群体。
(2)随机产生一定数目的个体,从中挑选最好的个
体加到初始群体中。这种过程不断迭代,直到初始群
体中个体数目达到了预先确定的规模。

  1. 种群规模的确定

群体规模太小,遗传算法的优化性能不太好,易陷
入局部最优解。群体规模太大,计算复杂。一般种群规模设置为20-100

3.2.3适应度函数

  1. 将目标函数映射成适应度函数的方法

若目标函数为最大化问题,则

第三章 进化算法之遗传算法及其应用相关推荐

  1. 进化算法与遗传算法的区别

    EA  (Evolutionary Algorithms):进化算法: GA  (Genetic Algorithm):遗传算法: 进化算法包括遗传算法.进化程序设计.进化规划和进化策略. 基于对生物 ...

  2. 差分进化算法和遗传算法的区别

    区别就在于变异操作 1 差分进化引入的意义 遗传算法的变异操作,就是对个体的某个或某段基因进行随机变换,得到新的个体,也就是新的一组解. 它的目的是通过生成新的解,来试图找到更优的选择. 但是,直观上 ...

  3. 进化算法_遗传算法相关资料

    Hyperopt中文文档导读:自动调参神器 Python 启发式算法的包 如何通俗易懂地解释遗传算法 一文读懂遗传算法工作原理(附 Python 实现) 遗传算法(python版) 遗传算法与其pyt ...

  4. 遗传算法 差分进化算法 粒子群优化算法区别

    一 遗传算法 遗传算法(GA)作为一种经典的进化算法,自 Holland提出之后在国际上已经形成了一个比较活跃的研究领域. 人们对 GA 进行了大量的研究,提出了各种改进算法用于提高算法的收敛速度和精 ...

  5. 机器学习中四类进化算法的详解(遗传算法、差分进化算法、协同进化算法、分布估计算法)

    1.遗传算法(Genetic Algorithm,GA) GA算法原理 首先我们来介绍进化算法的先驱遗传算法,遗传算法(Genetic Algorithm,简称GA)是一种最基本的进化算法,它是模拟达 ...

  6. 遗传进化算法与微生物遗传算法

    遗传进化算法 遗传进化算法,简称遗传算法或进化算法(Genetic Algorithm GA),GA的主要思想是通过模拟自然界生物的繁殖和自然选择来达到不断优化,从而得到较优解的过程.遗传算法的流程如 ...

  7. 大白话解析模拟退火算法、遗传算法入门

    优化算法入门系列文章目录(更新中): 1. 模拟退火算法 2. 遗传算法 一. 爬山算法 ( Hill Climbing ) 介绍模拟退火前,先介绍爬山算法.爬山算法是一种简单的贪心搜索算法,该算法每 ...

  8. Python优化算法02——遗传算法

    参考文档链接:scikit-opt 本章继续Python的优化算法系列. 优化算法,尤其是启发式的仿生智能算法在最近很火,它适用于解决管理学,运筹学,统计学里面的一些优化问题.比如线性规划,整数规划, ...

  9. 算法代码_Python进化算法之多目标优化与代码实战

    前言 自从上三篇博客详细讲解了Python遗传和进化算法工具箱及其在带约束的单目标函数值优化中的应用.利用遗传算法求解有向图的最短路径.利用进化算法优化SVM参数之后,这篇不再局限于单一的进化算法工具 ...

  10. 差分进化算法python_差分进化算法Python实现

    本文you清华大学硕士大神金天撰写,欢迎大家转载,不过请保留这段版权信息,对本文内容有疑问欢迎联系作者微信:jintianiloveu探讨,多谢合作~ 导语 差分进化算法是一种寻优算法,提出时间比遗传 ...

最新文章

  1. linux故障排除与修复(troubleshooting)
  2. 学习react心得及总结
  3. 去银行存款,银行打印错日期,到期之后才发现,利息该怎么算?
  4. switch类型模式
  5. 借助实时数据推送快速制作在线对战五子棋小游戏丨实战
  6. 如何保证代码的高质量?
  7. iOS The document “(null)” requires Xcode 8.0 or later.解决办法
  8. mysql regexp instr_MySQL 正则表达式:regexp_instr 函数
  9. StretchDIBits函数隐含的图像坐标系设置
  10. 局域网访问提示无法访问检查拼写_win10无法访问共享提示请检查名称的拼写怎么办...
  11. JS中事件的绑定和解绑
  12. 图片压缩 in Android
  13. C#之 十九 使用WinForm控件
  14. 《考取HCIA证书,看我就够了》第一篇:华为职业认证体系及HCIA介绍
  15. LOJ 6436 [PKUSC 2018] 神仙的游戏
  16. FFmpeg浅尝辄止(二)——YUV视频序列编码为视频 ~~ 新版修改版-调通
  17. 基于lamp框架搭建wordpress论坛
  18. AxureRP8实战手册-案例1(文本框:带图标文字提示)
  19. 站长工具seo综合查询-批量查询域名扫描域名查询收录排名蜘蛛
  20. PS精讲学习笔记(5)

热门文章

  1. 超星阅读器pdz文件打印转pdf文件
  2. alisql mysql_AliSQL · 特性介绍 · 动态加字段
  3. 极光IM即时通讯初探
  4. 2020MathorCup第一届大数据赛B题Paddle方案
  5. 遗传算法python简单示例
  6. 精选掘金后端小册及优惠购买链接
  7. linux中批量替换文本中字符串
  8. Matlab的语言概述
  9. 微软启动Menlo计划;英特尔手机处理器上市(每日关注20100505)
  10. 互联网面试八股文之Java基础