c# – 用于TSP的遗传算法中的Сrossover操作
发布时间:2020-12-15 06:36:12 所属栏目:百科 来源:网络整理
导读:我试图用 Genetic algorithm解决 Travelling Salesman Problem (TSP) 我的基因组是图中顶点的排列(Salesman的路径). 我应该如何在我的基因组上进行交叉操作? 在哪里可以找到C#中我的问题的实现? 解决方法 您应该检查Gokturk Ucoluk的“遗传算法解决TSP避免
我试图用
Genetic algorithm解决
Travelling Salesman Problem (TSP)
我的基因组是图中顶点的排列(Salesman的路径). 我应该如何在我的基因组上进行交叉操作? 在哪里可以找到C#中我的问题的实现? 解决方法
您应该检查Gokturk Ucoluk的“遗传算法解决TSP避免特殊交叉和突变”. PDF
here.它给出了用于排列的特殊交叉运算符的概述,并提出了一种在标准交叉中工作良好的排列的巧妙表示(即跨越两个排列总是产生两个排列).
关键的洞察是将排列表示为其反转序列,即,对于每个元素i,存储在[i]中,在排列中i比在i左侧多少个元素.与直接表示不同,对于[i]的唯一约束是局部的,即[i]不能大于N-i.这意味着两个有效反转序列的简单交叉总是产生两个有效的反转序列 – 不需要特殊处理重复元素. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |