Concorde TSP解算器 - 非对称实例

时间:2015-10-07 20:32:58

标签: traveling-salesman

我正在尝试使用Concorde来解决TSP的一些不对称实例。虽然官方网站说Concorde确实解决了这种情况,但我看到有人说它不是(https://cs.stackexchange.com/a/16336http://www.math.uwaterloo.ca/tsp/road/austria.html)。我只怀疑官方网站,因为我有以下测试实例:

NAME:  test   
TYPE: ATSP  
DIMENSION:  4  
EDGE_WEIGHT_TYPE: EXPLICIT  
EDGE_WEIGHT_FORMAT: FULL_MATRIX   
EDGE_WEIGHT_SECTION  
 999 | 2 | 2 | 2  
   2 |999| 2 | 2   
   2 | 2 |999| 2  
   2 | 2 | 2 |999    
EOF

协和飞机按照预期给了我:
最优解:8.00
在.sol文件中,路由:0 1 3 2.

但如果我将矩阵更改为:

EDGE_WEIGHT_SECTION  
 999 |100| 3 |100  
   2 |999| 2 | 2   
   2 | 2 |999| 2  
   2 | 2 | 2 |999    
EOF

现在给出的解是106,序列为0 3 1 2。 无论我在第一排放的是什么数字,协和式飞机都不会选择第三个城市(索引2,价值3)。

有人知道为什么会这样吗?我读错了输入吗?

- 的修改 -
实际上,ATSP问题的实例并非来自官方网站。它来自这个: http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/

因为这个库的名称是TSPLIB(与Concorde的官方问题相同),我引起了这种混乱。我不确定这个TSPLIB95如何与Concorde Solver相关(或者它是否与之相关)。

1 个答案:

答案 0 :(得分:2)

Concorde仅适用于对称TSP。您必须执行标准技巧将ATSP转换为对称TSP(带有其他节点)。