TSP遗传算法中的交叉运算

我正在尝试使用遗传算法解决旅行商问题(TSP)。我的基因组是图形中顶点的排列(推销员的路径)。

我应该如何在基因组上进行交叉操作?

在哪里可以找到C#中我的问题的实现?

回答:

您应查看Gokturk Ucoluk撰写的“

TSP避免特殊交叉和变异的遗传算法解决方案

”。它概述了用于排列的特殊交叉运算符,并提出了一种与标准交叉效果很好的排列的巧妙表示(即,对两个排列进行交叉总是产生两个排列)。

关键的见解是将置换表示为其反转序列,即对于每个元素i,存储a[i]比置换i左边大的元素数i。与直接表示不同,对的唯一约束a[i]是局部约束,即a[i]不能大于N

- i。这意味着两个有效反转序列的简单交叉总是产生两个有效反转序列-无需对重复元素进行特殊处理。

以上是 TSP遗传算法中的交叉运算 的全部内容, 来源链接: utcz.com/qa/419970.html

回到顶部