📜  遗传算法中的编码方法

📅  最后修改于: 2022-05-13 01:58:06.868000             🧑  作者: Mango

遗传算法中的编码方法

生物背景:

染色体:所有生物体都由细胞组成。每个细胞中都有一组相同的染色体。染色体是字符串DNA,由基因、DNA 块组成。每个基因都编码一个特征,例如眼睛的颜色。
再现:在再现过程中,首先发生组合(或交叉)。来自父母的基因结合形成一个全新的染色体。然后可以对新创建的后代进行突变。这些变化主要是由于从父母那里复制基因的错误造成的。生物体的适应度是通过生物体在其生命中的成功来衡量的。

遗传算法的操作:
在将遗传算法用于解决方案之前,任何问题所需的两个重要元素是

  • 表示解法的方法例如:字符串位、数字、字符例如:测定总重量。
  • 使用适应度函数测量任何建议解决方案的质量的方法。

    基本原则 :

  • 一个人的特征是一组参数:基因
  • 基因连接成一个字符串:染色体
  • 染色体形成基因型
  • 基因型包含构建生物体的所有信息:表型
  • 繁殖基因型染色体上的“哑巴”过程
  • 适应度是在表型的现实世界(“为生活而奋斗”)中衡量的。

    算法阶段:

    Simple_Genetic_Algorithm()
    {
         Initialize the population;
         Calculate Fitness Function;
    
         while(Fitness Value != Optimal Value)
         {
              Selection;  //Natural Selection, survival of fittest
              Crossover;  //Reproduction, propagate favorable characteristics
              Mutation;
              Calculate Fitness Funtion;
          }
    }
    

    使用字符串编码:
    染色体编码是解决问题的第一步,它完全取决于问题。以传达必要信息的位字符串形式表示解决方案的过程。就像在染色体中一样,每个基因控制着个体的特定特征,类似地,字符串的每一位都代表解的一个特征。

    编码方法:

    • 二进制编码:最常见的编码方法。染色体是由 1 和 0 组成的字符串,染色体中的每个位置都代表问题的一个特定特征。
    • 排列编码:在诸如旅行商问题 (TSP) 之类的排序中很有用。在 TSP 中,每条染色体都是字符串数字,每个数字代表一个要访问的城市。
    • 值编码:用于使用复杂值(例如实数)并且二进制编码不够用的问题。对某些问题有好处,坚果通常需要为这些染色体开发一些特定的交叉和突变技术。