📅  最后修改于: 2020-11-24 07:09:24             🧑  作者: Mango
本节介绍了解GA所需的基本术语。而且,GA的通用结构以伪代码和图形形式表示。建议读者正确理解本节中介绍的所有概念,并在阅读本教程的其他部分时牢记这些概念。
在开始讨论遗传算法之前,必须熟悉将在本教程中使用的一些基本术语。
总体-它是给定问题的所有可能(编码)解决方案的子集。 GA的人口与人类的人口相似,除了我们有代表人类的候选解决方案代替人类。
染色体-染色体就是解决给定问题的一种方法。
基因-基因是染色体的一个元素位置。
等位基因-基因是特定染色体的价值。
基因型-基因型是计算空间中的种群。在计算空间中,以易于使用计算系统理解和操纵的方式来表示解决方案。
表型-表型是实际现实世界解决方案空间中的总体,在其中,解决方案以在现实世界中的表示方式来表示。
解码和编码-对于简单的问题,表型和基因型空间相同。但是,在大多数情况下,表型和基因型空间是不同的。解码是将解决方案从基因型空间转换为表型空间的过程,而编码是从表型空间转换为表型空间的过程。解码应该快速,因为在适应度值计算过程中会在GA中反复进行解码。
例如,考虑0/1背包问题。表型空间由一些解决方案组成,这些解决方案仅包含要拣选项目的项目编号。
但是,在基因型空间中,它可以表示为长度为n的二进制字符串(其中n是项数)。 x位置的0表示选择了第x个项目,而1则表示相反。这是基因型和表型空间不同的情况。
适应度函数-简单地定义的适应度函数是一个函数,它接受的溶液,作为输入,并产生所述溶液作为输出的适用性。在某些情况下,适应度函数和目标函数可能相同,而在其他情况下,根据问题可能有所不同。
遗传算子-这些改变子代的遗传组成。这些包括交叉,突变,选择等。
GA的基本结构如下-
我们从初始种群开始(可能是随机产生的,也可能是其他启发式方法产生的),然后从该种群中选择父母进行交配。在父母身上应用交叉和变异运算符以产生新的后代。最后,这些后代取代了人口中现有的个体,这一过程不断重复。通过这种方式,遗传算法实际上试图在某种程度上模仿人类的进化。
本教程后面的单独步骤将涵盖以下每个步骤。
以下程序说明了GA的通用伪代码-
GA()
initialize population
find fitness of population
while (termination criteria is reached) do
parent selection
crossover with probability pc
mutation with probability pm
decode and fitness calculation
survivor selection
find best
return best