TSP遗传算法中的交叉运算
我正在尝试使用遗传算法解决旅行商问题(TSP)。我的基因组是图形中顶点的排列(推销员的路径)。
我应该如何在基因组上进行交叉操作?
在哪里可以找到C#中我的问题的实现?
回答:
您应查看Gokturk Ucoluk撰写的“
TSP避免特殊交叉和变异的遗传算法解决方案
”。它概述了用于排列的特殊交叉运算符,并提出了一种与标准交叉效果很好的排列的巧妙表示(即,对两个排列进行交叉总是产生两个排列)。
关键的见解是将置换表示为其反转序列,即对于每个元素i
,存储a[i]
比置换i
左边大的元素数i
。与直接表示不同,对的唯一约束a[i]
是局部约束,即a[i]
不能大于N
- i。这意味着两个有效反转序列的简单交叉总是产生两个有效反转序列-无需对重复元素进行特殊处理。
以上是 TSP遗传算法中的交叉运算 的全部内容, 来源链接: utcz.com/qa/419970.html