3

我有 12 个节点和每对节点之间的距离(以米为单位)。节点指的是一个城市的不同街道。我需要获得 TSP 的精确解(非启发式),所以我想用 Concorde 程序解决 TSP 问题,但我无法引入数据。Concorde 界面只是让我引入随机节点并解决该问题,但我想给它我的数据。

我试图创建一个具有以下结构的 .txt:

\#nodes \#edges
node1 node2 dist12
node1 node3 dist13
(etc)

并将扩展名更改为 .qs (我已经看到协和飞机接受了这一点),但我没有得到任何结果。我还设置了扩展名 .tsp ,什么都没有。

另外,我在谷歌地图中搜索了节点的坐标,并创建了文本文件:

12
45.609400, 8.874233
45.612743, 8.893011
45.610751, 8.898242
45.610617, 8.902134
45.609246, 8.905195
45.612339, 8.907780
45.617118, 8.903145
45.606889, 8.900597
45.601403, 8.878341
45.602539, 8.883501
45.604054, 8.879854
45.613369, 8.894035

但同样,协和飞机不接受我的文件。我究竟做错了什么?我应该如何在 Concorde 中引入我的数据?

此外,我尝试在 NEOS 服务器中为协和飞机引入最后一个坐标文件,结果不是预期的,如图所示: TSP

4

1 回答 1

2

我目前正在研究 qs 格式。在网上找不到任何信息,但通过检查,它似乎如下。没有逗号,当然要保持计数。另存为 *.qs 并打开它。

node_count edge_information_count
n1x n1y
n2x n2y
...
n(count)x n(count)y
n1 n2 edge_info
....
n1 n2 edge_info
...
n(count)1 n(count)2 edge_info

所以,我让这个(windows concorde ui 版本,Win 8.1,HP 笔记本电脑)与您的数据一起工作,删除逗号,修复标题行。这不是您想要的,但通过在边缘信息区域提供距离(并更新标题)它可能会起作用。

我的问题是,它是否使用边缘信息来得出解决方案?我不能说确实如此。我必须检查解决方案才能看到(我希望你同时处理它)。但我确实知道,如果你加载一个带有边缘信息的 qs,解决它,保存它,它会用解决方案替换边缘信息。

这是你的欧几里得解决方案,再次,不是你想要的:

12 0
45.609400 8.874233
45.612743 8.893011
45.610751 8.898242
45.610617 8.902134
45.609246 8.905195
45.612339 8.907780
45.617118 8.903145
45.606889 8.900597
45.601403 8.878341
45.602539 8.883501
45.604054 8.879854
45.613369 8.894035
于 2018-01-07T14:18:09.440 回答