📜  基因型表达

📅  最后修改于: 2020-11-24 07:09:45             🧑  作者: Mango


在实施遗传算法时要做出的最重要的决定之一就是确定我们将用来表示我们的解决方案的表示形式。已经观察到,不正确的表示会导致GA的效果不佳。

因此,选择适当的表述,对表型和基因型空间之间的映射进行适当定义对于GA的成功至关重要。

在本节中,我们介绍了遗传算法的一些最常用表示形式。但是,表示非常有针对性,读者可能会发现此处提到的另一种表示或这些表示的混合可能会更适合他/她的问题。

二进制表示

这是GA中最简单,使用最广泛的表示形式之一。在这种表示形式中,基因型由位字符串组成。

对于某些问题,当解决方案空间由布尔决策变量组成–是或否时,二进制表示法很自然。以0/1背包问题为例。如果有n个项目,我们可以用n个元素的二进制字符串表示一个解决方案,其中第x元素告诉是否选择了项目x(1)(0)。

二进制表示

对于其他问题,特别是那些处理数字的问题,我们可以用二进制表示形式来表示数字。这种编码的问题在于,不同的位具有不同的含义,因此,变异和交叉运算符会产生不良后果。通过使用格雷编码,可以在某种程度上解决此问题因为一位的更改不会对解决方案产生重大影响。

实值表示

对于需要使用连续变量而不是离散变量来定义基因的问题,最有价值的表示是最自然的。但是,这些实数值或浮点数的精度仅限于计算机。

实值表示

整数表示

对于离散值的基因,我们不能始终将求解空间限制为二进制“是”或“否”。例如,如果要编码四个距离(北,南,东和西),则可以将它们编码为{0,1,2,3} 。在这种情况下,整数表示是可取的。

整数表示

排列表示

在许多问题中,解决方案由元素顺序表示。在这种情况下,排列表示是最合适的。

这种表示法的经典示例是旅行商问题(TSP)。在这种情况下,推销员必须游览所有城市,只访问每个城市一次,然后返回起始城市。游览的总距离必须最小化。 TSP的解决方案自然是对所有城市进行排序或排列,因此使用排列表示法可以解决此问题。

排列表示