是否有计算距离排列的算法?
这与旅行商问题有关。首先需要生成所有排列,然后附加目的地(与起点相同)。 IE: 1) abcd ABC ....
2) ABCDA 阿卜杜卡 ....a
我有所有的距离,只需要一个算法来总结它们。我想知道是否有一种算法(最好是 C)可以用于此目的,或者是否有现成的解决方案。
This is related to travelling salesman problem. First all permutations need to be generated and then the destination (same as origin) attached. I.e.:
1)
abcd
abdc
....
2)
abcda
abdca
....a
I have all the distances and only need an algorithm to sum them up. I wonder if there is an algorithm (C preferable) I can use for this or if there is a ready-made solution somewhere.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这有点微不足道。
其中
distance
是一个二维数组(如果你愿意的话,可以是矩阵),它保存两个节点之间的距离。 group 应该是一个数组或向量或按顺序排列的节点。如果您还需要获取每个排列,请使用 next_permutation。
以下是距离可能是什么的简短示例:
请注意,这将是您问题的对称矩阵。
This is kinda trivial.
Where
distance
is a 2d array (matrix if you will) that holds the distance between the two nodes. group should be an array or vector or the nodes in order traveled.If you also need to get each permutation, use next_permutation.
Here's a brief example of what distance might be:
Note that this will be a symmetric matrix for your problem.