遗传算法中的编码方法
生物背景:
染色体:所有生物体都由细胞组成。每个细胞中都有一组相同的染色体。染色体是字符串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 中,每条染色体都是字符串数字,每个数字代表一个要访问的城市。
- 值编码:用于使用复杂值(例如实数)并且二进制编码不够用的问题。对某些问题有好处,坚果通常需要为这些染色体开发一些特定的交叉和突变技术。