美文网首页
遗传算法,第一部分:创建种群

遗传算法,第一部分:创建种群

作者: 大龙10 | 来源:发表于2022-08-08 12:52 被阅读0次

书名:代码本色:用编程模拟自然系统
作者:Daniel Shiffman
译者:周晗彬
ISBN:978-7-115-36947-5
第9章目录

9.4 遗传算法,第一部分:创建种群

继续猴子敲键盘的例子,我们将为此创建一个由句子构成的种群(“句子”指的是一个字符串)。

1、如何创建这个种群?

  • 种群可以用达尔文学说中的突变法则创建。
    举个简单的例子,假设我们要进化出“cat”这个单词,现在种群中有3个单
    词:hug、rid、won
    毫无疑问,这3个单词存在一定的多样性。但无论以何种方式组合它们,都无法得到“cat”单词,因为它们的多样性不足以进化出最优的答案
    但如果我们有1000个单词,每个短语都是随机生成的,那么至少存在几个单词的第一个、第二个或第三个字母分别为“c”“a”和“t”。也就是说,大样本容易产生足够的多样性,更容易生成目标短语。

  • 因此,我们可以把第一个步骤总结为:
    创建一个种群,用随机的方式生成种群内的个体。

2、个体是什么?

  • 前几章的种群个体是图像对象或小车对象,而本章却有所不同。
  • 本章的种群个体拥有虚拟的“DNA”,DNA是描述个体外形和行为的一系列属性(我们称为“基因”)。
  • 比如,在猴子敲键盘的例子中,DNA就是字符串。

3、遗传领域两个重要概念

1)概念

遗传领域有两个重要概念:基因型和表现型,两者之间有重要区别。

  • 基因型(genotype)就是遗传密码,也就是本例的字符串,它会从父代传给子代;
  • 表现型(phenotype)就是基因型的表达。

两者之间的区别关系着遗传算法的实现。

2)举例

  • 在图形编程中,我们一直在回答以下问题:
    你的世界是由什么对象组成的,以及如何设计这些对象的基因型(存储对象属性的数据结构)和表现型(你想用这些对象表达什么)。
  • 最简单例子就是颜色的显示:


在这里,基因型就是数字信息,每种颜色都是一个整型变量。但数据的表达方式可以是随意的,它们可以表达完全不同的信息,比如以下整数就表示线段的长度。除此之外,它还可以表示力的大小。


  • 在猴子敲键盘的例子中,基因型和表现型并没有区别。DNA是一个字符串,而DNA的表达也是这个字符串。

  • 第一部分的内容概括为:
    创建由N个个体组成的种群,每个个体都有随机的DNA。

相关文章

  • 遗传算法,第一部分:创建种群

    书名:代码本色:用编程模拟自然系统作者:Daniel Shiffman译者:周晗彬ISBN:978-7-115-3...

  • 2018-11-22 遗传算法

    遗传算法 遗传算法是根据生物学的种群进化规律推导出来的随机化搜索算法物竞天择 适者生存在种群的进化过程当中,基因型...

  • TSP问题—启发式遗传算法

    本章涉及知识点1、达尔文进化论2、遗传算法的思想3、遗传算法下的TSP模型4、染色体的编码5、种群的初始化6、适应...

  • 创建种群的代码1--种群

    书名:代码本色:用编程模拟自然系统作者:Daniel Shiffman译者:周晗彬ISBN:978-7-115-3...

  • CyclicBarrier实现并行遗传算法

    CyclicBarrier是一个循环栅栏,可以实现线程之间的相互等待,因此可以将其应用到遗传算法的并行化。设置种群...

  • 遗传算法

    姓名:李嘉蔚 学号16020520034 【嵌牛导读】:简单地说,遗传算法是一种解决问题的方法。它模拟大自然中种群...

  • 遗传算法

    遗传算法步骤:1、产生初始种群、编码染色体,基因2、利用适应度函数,计算每个个体的适应度3、选择适应度高的个体,留...

  • 求解一道人工智能遗传算法题,有奖励哦

    用遗传算法求f(x)=x3+1的极大值,xÎ[0,15]。设种群大小为6, 选择概率为100%,选择算法为轮盘赌算...

  • 遗传算法:创建自己的遗传算法

    书名:代码本色:用编程模拟自然系统作者:Daniel Shiffman译者:周晗彬ISBN:978-7-115-3...

  • 差分进化算法

    简述 个人感觉差分进化算法,是对遗传算法的一种优化,他详细定制了变异,交叉的算法,他的改进方向,是取决于种群内其他...

网友评论

      本文标题:遗传算法,第一部分:创建种群

      本文链接:https://www.haomeiwen.com/subject/xjaswrtx.html