上一节讲了遗传算法的基本概念和一些专有名词,这一节谈谈适应度地形和协同进化

1.适应度地形(fitness landscape)

1.1适应度地形的定义

适应度地形(fitness landscape)是由一系列基因型组成的三维的地形图(如图)。它包含三个基本元素
1. 基因型的集合
如果要生成一个适应度地形,则需要一个集合的基因型,即每个基因型在这个集合中都是独一无二的,这样才能保证整个地形是波动的
2. 邻居关系

邻居关系代表在空间中排列基因型的方式,这种排列方式是: 相似的基因型在空间上距离较近, 不同的基因型空间上距离较远, 临近的基因型一般只相差一个基因。
3. 地形高度
在适应度地形中,高度代表该基因型的适应度(fitness)
提到适应度地形就不得不提上位性(epistasis), 在遗传算法中,上位性指代着同一位点上的基因受别的位点基因抑制而不能表达。举个例子,设有两个基因位点,A和B代表显性基因,a和b代表隐形基因,A或a位于第一个基因位点,而B或b位于第二个。若F(ab)=1, F(Ab)=1.1, F(aB)=2, F(AB)=2.8 ,其中F代表这个基因组合的适应度,那么这就是发生了上位性这种情况。如果没有上位性的话,F(AB)应该等于2.1, 这样F(AB)-F(aB)=F(Ab)-F(ab),就没有抑制的情况发生。

1.2 合成地形

合成地形的地形有许多, 例如上位性网络,即用上位性基因构成的网络,如royal road 和royal staircase(我实在不知道怎么翻译),这两个概念是分别由Mitchell和van Nimwegen提出,其指代的是基因的模块化,我们将在下节讨论。除此之外,较为注明的就是NK 地形了

N指代的是一个基因序列中有多少个基因,而K指代的是每个基因对适应度的贡献度与其自身基因和另外K个基因有关,换句话说就是每个基因与其他K各基因有关。而K的大小决定了上位性的程度。如果k等于0,也就是说只与其自身有关,那么整个地形的形状就是一个整的山峰,而随着K的增大,则会出现越来越多其他的侧峰,当K较大时,整个地形如图所示

            (Leandro Nunes de Castro)
而K最大值即为N-1。

2.协同进化(竞争型)

协同进化有两种类型,一种是竞争型,一种是合作型,合作型将留到下节讲模块化的时候来讨论。

竞争型协同进化即为两个或多个种群或物种是有竞争关系,它们不断地相互竞争,然后不断地提高。

首先一点是,我们为什么需要竞争的协同进化呢,这有多方面的原因
1. 当我们没有很好的适应度函数时,我们可能需要一个隐含的适应度函数。也就是说如果我们只有一个种群,然后我们发现对于这个种群,我们没有或者没必要找出一个合适的可用于进化的适应度方程,在这种情况下,我们就需要协同进化了,因为协同进化只需要定义一个隐式的适应度方程
2.就算我们已经对一个种群定义了一个适应度函数,那么我们能保证这个函数始终能提供合适的梯度让这个种群不断进化吗。因为遗传算法的目的即将一个种群的基因进化为适应度最高的基因,那么这个适应度函数能不能源源不断提供这个梯度用来使种群进化呢,有的适应度函数会设置一些鞍点,或者盆地,那些只是局部最优值,而我们的目的是全局最优值,用单一的适应度函数可能会深陷局部最优而无法爬出来。那么竞争型协同进化就能解决这个问题,因为是竞争型能确保两个种群通过不断竞争而提高适应度,这么一来就提供了源源不断的梯度供两个种群进行进化

3.哪怕就算单一种群的适应度函数能提供合适的梯度,但竞争型协同进化是没有确定的终点的,也就是说不像普通的进化算法有一个固定的进化终点,竞争型协同进化没有一个明确地终点,只是不断地在提高
虽说如此,那么在有些情况下,竞争型协同进化也会失败
譬如:
梯度消失: 如果种群1中每个个体都能打败种群二中所有个体,那么种群1中每个个体所得到的分数都是一样的,种群1也就没法进化了。
过于细致: 如果种群1有着固定的行为模式,譬如两个人下棋,棋手A每次一上来第一步棋就架炮,那么很显然棋手B就会专门针对这第一步棋而研发一个独有的策略,对于遗传算法同理,在进化中种群2可能会根据种群1的固定行为模式而研发特定的策略 ,这样的策略并不具有普适性。
非传递性(Intransitivity): 如果是三个种群协同进化,A打败了B,B打败了C,C打败了A,就像剪刀石头布一样,很显然,这样一来我们并不知道该往哪个方向进化了,不断地在绕圈
红皇后(Red queen): 两个种群的得分都相差无几,也就是说都很平庸
下一章我们讨论一下模块化(Modularity)和积木(Building blocks)

初识遗传算法(二): 适应度地形与协同进化相关推荐

  1. 初识JavaScript(二)

    初识JavaScript(二) 我从上一篇<初识JavaScript(一)>知道和认识JavaScript的词法结构,也开始慢慢接触到了JavaScript的使用方法,是必须按照JavaS ...

  2. 初识react(二) 实现一个简版的html+redux.js的demo

    回顾 初识react(一) 揭开jsx语法和虚拟DOM面纱 初识react(二) 实现一个简版的html+redux.js的demo 初识react(三)在 react中使用redux来实现简版计数器 ...

  3. android模仿qq登录界面,初识Android二之小试牛刀模仿实现qq登陆界面

    初识Android二之小试牛刀模仿实现qq登陆界面.俗话说得好,老师踢开门,修行在自己.勉勉强强学完生命周期,然后悠悠闲闲听了两节课后,老师就布置了一个登陆界面的实现,于是,磕磕绊绊的修行之路开始了. ...

  4. RTKLIB专题学习(四)---单点定位实现初识(二)

    RTKLIB专题学习(四)-单点定位实现初识(二) 今天我们来继续学习RTKLIB中单点定位的调用情况,上一篇在这里:RTKLIB专题学习(四)-单点定位实现初识(一) 1.上篇说到了调用procpo ...

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

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

  6. Python正则表达式初识(二)

    前几天给大家分享了[Python正则表达式初识(一)],介绍了正则表达式中的三个特殊字符"^"."."和"*",感兴趣的伙伴可以戳进去看看, ...

  7. Nat. Commun | 结合二维深度神经网络和迁移学习 预测RNA二级结构

    研究背景 RNA分子是生物体内参与各种如细胞分化.代谢.记忆存储等重要生命活动的一类大分子,其常见的种类有rRNA.mRNA.tRNA.近年来越来越多的实验表明RNA似乎无处不在.无所不能,而事实上, ...

  8. 初识遗传算法 蚁群算法

    今天看这篇文章 Link 里面提到遗传算法.蚁群算法等. 遗传算法看这一篇: https://www.zealseeker.com/archives/python-genetic-algorithm/ ...

  9. python正则表达式初识(七)_Python正则表达式初识(二)

    前几天给大家分享了Python正则表达式初识(一),介绍了正则表达式中的三个特殊字符"^"."."和"*",感兴趣的伙伴可以戳进去看看,今天 ...

最新文章

  1. ubuntu12.04编译android4.0源代码Deug2
  2. iView 3.3.0 发布,基于 Vue.js 的企业级 UI 组件库
  3. C#接口-接口的继承
  4. Mysql 连接池session_Hibernate第十一篇【配置C3P0数据库连接池、线程Session】
  5. C#多线程和异步(二)——Task和async/await详解
  6. Mat的初始化以及Mat与数组的相互转化
  7. Linux查看网卡带宽
  8. gcc/g++ 使用 tricks
  9. python pymysql实例_Python使用pymysql模块操作mysql增删改查实例分析
  10. 适合户外显示中玩耍的游戏
  11. 凸优化第七章统计估计 7.1 参数分布估计
  12. cad填充图案乱理石_CAD实用填充图案129种下载_CAD实用填充图案129种官方下载-太平洋下载中心...
  13. python实现中文情感分析与可视化
  14. UGUI事件系统——事件接口
  15. 【英语】大学英语CET考试,口语部分1(考试介绍与备考,讲义笔记)
  16. 软件项目管理——人力资源管理
  17. 第5天-[21天学Python]-Python中自定义函数及调用的方法
  18. 武大的计算机博士,史上最牛武汉大学之博士招生黑幕
  19. DB2 HADR TSA切换
  20. Struts的体系结构(学习转发)

热门文章

  1. 2021年度训练联盟热身训练赛第五场(A B C E F G H I)
  2. 斯坦福大学吴恩达机器学习教程中文笔记——week2——多变量线性回归,octave教程
  3. 脉冲编码调制的简单介绍
  4. java 安全登陆系统设计,基于JAVA的安全管理信息系统设计
  5. 【Appium】使用模拟器实现有道云App的安装卸载
  6. uoj 48 核聚变反应强度 次小公因数
  7. 92. 递归实现指数型枚举
  8. nyoj-277-车牌号
  9. 公网IP + 蒲公英异地组网实现真正意义上的随时随地远控设备
  10. 计算机二级需要学什么语言吗,计算机二级学什么语言比较快一点