python graph-tool TSP导览问题

时间:2018-06-24 22:44:36

标签: graph-tool

我对汉密尔顿路径和旅行推销员问题(TSP)比较陌生。特别是对于我的应用程序,由于它内置的tsp_tour函数而吸引了我使用图工具,该函数“返回图的旅行推销员游览,在最坏的情况下,保证它是最优游览的两倍”。但是,正如我用屏幕快照3x3 grid-like graph using graph_draw中所示的示例网格状图进行测试时,在调用带有源和目标vertex_index 1的tsp_tour函数时,它仅返回[0 0]。这仅仅是意味着它找不到tsp_tour?

import graph_tool.all as gt
g = gt.Graph(directed=False)
g.add_edge_list([(1, 2), (1, 5), (2, 3), (2, 6), (3, 4), (3, 7), (4, 8), (5, 6), (5, 9), (6, 10), (6, 7), (7, 8), (7, 11), (8, 12), (9, 10), (9, 13), (10, 11), (10, 14), (11, 15), (11, 12), (12, 16), (13, 14), (14, 15), (15, 16)])
gt.graph_draw(g, vertex_text=g.vertex_index)
print gt.tsp_tour(g,g.vertex_index(1))

我也尝试过https://graph-tool.skewed.de/static/doc/topology.html#graph_tool.topology.tsp_tour上的示例,在我看来,该函数仅在起始索引为0时才能够计算tsp_tour,而其他任何索引都不能。最重要的是,计算出的tsp_tour会跳过并“忽略”所连接的边(例如[0 1 2 11 12 ....],顶点2和11之间没有边)。我可以知道这是预期的行为吗?如果有人可以帮助我,我将非常感谢。谢谢。

0 个答案:

没有答案