将染色体中的基因翻译成组合函数的遗传算法会增加候选者的多样性吗?

Does translating the genes in a chromosome for a genetic algorithm for a combinatorial function increase the diversity of candidates?

我是遗传算法的新手,正在为旅行商问题编写代码。我正在使用循环交叉来生成新的后代,我发现这会导致一些后代保留与一个 parent 完全相同的表型,即使两个 parent 不同。翻译染色体会避免这种情况吗?

翻译我的意思是表型 ABCDE 的染色体从两个转变为 DEABC。它们将是等效的答案并且具有相同的适应性,但可能会产生更多不同的后代。

在漫长的 运行 中这样做是否值得,还是只是浪费计算时间?

循环交叉 (CX) 是基于这样的假设,即保持城市的绝对位置很重要(一个城市最好从任何一方继承它的位置)并且预防性 "translation" 违背了 CX 的精神.

无论如何,多项研究(例如 1)表明,对于 TSP,关键是要保留 相对位置城市和边缘。

所以它可以工作,但你必须进行试验。某种形式的突变是另一种可能性。

可能,如果 CX 的特性不令人满意,则不同的交叉运算符可能是更好的选择:使用简单的运算符,最成功的运算符之一是订单交叉(例如 2)。


  1. 升。 Darrell Whitley、Timothy Starkweather、D'Ann Fuquay - Scheduling problems and traveling salesmen: The genetic edge recombination operator - 1989.
  2. 巴勃罗莫斯卡托 - On Genetic Crossover Operators for Relative Order Preservation.