翻译染色体中的基因以进行组合功能的遗传算法是否会增加候选者的多样性?

时间:2016-06-05 23:04:43

标签: optimization combinatorics genetic-algorithm traveling-salesman evolutionary-algorithm

我是遗传算法的新手,正在编写旅行商问题的代码。我使用周期交叉产生新的后代,我发现这导致一些后代保留了与父母一样的确切表型,即使这两个父母不同。翻译染色体会避免这种情况吗?

通过翻译,我的意思是一个染色体,表型ABCDE从两个变为DEABC。它们将是相同的答案,具有相同的适应性,但可能会使后代更加多样化。

从长远来看这是否值得,还是只是在浪费计算时间?

1 个答案:

答案 0 :(得分:2)

周期交叉(CX)基于这样的假设:保持城市的绝对位置很重要(一个城市最好从父母任何一方继承其位置),预防性“翻译”违背CX的精神。

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

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

可能,如果CX的特性不令人满意,不同的交叉算子是更好的选择:保持简单的算子,其中最成功的是秩序交叉(例如2)。

  1. L, Darrell Whitley,Timothy Starkweather,D'Ann Fuquay - Scheduling problems and traveling salesmen: The genetic edge recombination operator - 1989。
  2. Pablo Moscato - On Genetic Crossover Operators for Relative Order Preservation