遗传算法 - 旅行推销员

时间:2017-05-04 12:15:14

标签: genetic-algorithm traveling-salesman

我正在阅读过去的试卷,我试图理解以下问题:

  

假设您有N个城市。可以从每个城市前往任何其他城市。假设您以表格形式获得有关城市之间距离的完整信息。城市号码k和城市号码l之间的距离由d(k,l)给出;所以例如距离的距离   第三个城市到第九个城市由d(3,9)给出。注意d(k,l)= d(l,k)。

     

旅行商需要访问所有N个城市,并希望找到连接所有城市的最短路线。使用遗传算法来解决这个问题。

     

问题:为此问题定义适当的适应度函数            并说出高或低适应性是否更好。

有谁知道我需要为这个问题做些什么?我真的在努力从哪里开始,需要一些指导。

1 个答案:

答案 0 :(得分:0)

使用TSP,您希望最大限度地减少行进距离。 <div class="container-fluid"> <div class="row"> <div class="col-md-6 offset-3"> <h1>FFC Calculator</h1> </div> </div> </div> 城市有许多不同的旅行方式;确切地说n

因此,如果你有N! / 2,你需要一个整数数组N = 4,每个只出现一次。所以一些可能的选择是:

1-4

然后,您可以通过从列表中的城市[1,4,2,3] [4,1,2,3] [3,1,4,2] 转到i来计算距离,从而评估得分。对列表中的每个城市i+1执行此操作(但最后一个)并且您有总距离;这是你的分数!

因此,对于上面的例子,分数将是:

i

您希望最小化距离,从而最大限度地降低分数。

<小时/> 您可以通过创建交换列表中两个城市的变异函数来实现此目的,例如:

// Please note that the integers 1-4 represent cities
score([1,4,2,3]) = d(1,4) + d(4,2) + d(2,3)
score([4,1,2,3]) = d(4,1) + d(1,2) + d(2,3)
score([3,1,4,2]) = d(3,1) + d(1,4) + d(4,2)

This video显示了通过遗传算法优化距离的Javascript实现的一个很好的例子。