我正在阅读过去的试卷,我试图理解以下问题:
假设您有N个城市。可以从每个城市前往任何其他城市。假设您以表格形式获得有关城市之间距离的完整信息。城市号码k和城市号码l之间的距离由d(k,l)给出;所以例如距离的距离 第三个城市到第九个城市由d(3,9)给出。注意d(k,l)= d(l,k)。
旅行商需要访问所有N个城市,并希望找到连接所有城市的最短路线。使用遗传算法来解决这个问题。
问题:为此问题定义适当的适应度函数 并说出高或低适应性是否更好。
有谁知道我需要为这个问题做些什么?我真的在努力从哪里开始,需要一些指导。
答案 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实现的一个很好的例子。