TSP [最近邻] - 给定距离矩阵

时间:2021-06-08 03:36:52

标签: python

朋友们,

我需要解决一个 TSP 问题,距离信息如下

enter image description here

我试图通过使用字典来解决它,但我无法弄清楚:

enter image description here

**实际上,甚至不知道如何在此处以文本形式发布代码(仅使用 Python 2 天)

任何建议/帮助都不仅仅是受欢迎。

谢谢!

2 个答案:

答案 0 :(得分:1)

你可以这样做:

import numpy as np

TT= np.array([[0,5,2,13,4],
              [3,0,6,3,14],
              [2,6,0,4,5],
              [2,3,7,0,8],
              [4,2,5,5,0]])

# assume we start in node 0
currentStop = 0
routeList = [0]
for _i in range(len(TT)-1):
    TT[:,currentStop] = 100000 # Set column of visited stop to very large number
    currentStop = np.argmin(TT[currentStop,:])
    routelist.append(currentStop)

print(routelist)

答案 1 :(得分:0)

TSP 是一个 NP-hard 问题,这意味着在计算上很难获得最佳结果。当数据量较小时可以尝试所有路由,但实际上我们有数千个节点(节点是 TSP 问题中的位置)。然后我们将使用不同的搜索算法在合理的时间内获得次优解。

由于您使用的是 Python,我建议您查看 ortools。您可以查看他们的简单示例以开始使用。它是用 C 语言编写的,带有 Python 包装器,因此比纯 Python 快得多。