在哪里可以找到一组艰苦的旅行商问题(有已知的解决方案/近似值)?

时间:2013-03-09 08:30:17

标签: algorithm language-agnostic np-complete traveling-salesman np-hard

我想尝试找到解决旅行商问题的启发式/近似值,为了做到这一点,我正在寻找一些“硬”TSP实例(以及他们最着名的解决方案)以便我可以尝试解决它们,看看我能做得多好。

理想情况下,它们只是一个基于文本的邻接矩阵或邻接列表列表(我不想处理解析,只需处理算法)。
“硬”,我的意思是他们几乎不可能使用蛮力来解决或近似 (这是我可以合理地相信,如果我找到一个接近最着名答案的答案,那么我实际上做的是正确的,而不仅仅是幸运。)

是否有任何列表可用于此目的?我搜了一下但没找到任何东西。

3 个答案:

答案 0 :(得分:3)

Here is another question on SE partially answering your problem(它列出了问题,但其中大多数似乎都没有提供解决方案,但你最好还是检查链接 - 事情可能已经改变了。)

如果找不到它们,那么随机生成一组节点以及连接它们的路径,将路径长度保存为“最小”(确保两个节点之间的最长连接永远不会是X)然后添加一堆其他路径,确保这些都是> X?

这种方式(除非我遗漏了一些东西)你有一组连接的节点“你想要的复杂”,并且从开始就知道实际的最短连接路径......


附录 - 如果您真的想看看如何与现有工具进行比较,那么您必须根据生成的问题运行这些工具。一个免费且可访问的(但我不知道它有多“有效”)是TSP Library for R

维基百科有list of other free sw packages for this

也许你可以创建一个不同的SE问题,询问如何获得其他TSP工具。

答案 1 :(得分:1)

TSP门户网站似乎是TSP信息的规范网站。

以下是可用数据集的列表:http://www.tsp.gatech.edu/data/index.html

最佳解决方案适用于超过10,000个城市的一些数据集。并且有超过1 000 000个城市的数据集。

答案 2 :(得分:0)

有一种众所周知的算法可以找到最佳的TSP解决方案 - 它被称为蛮力。

因此,比较两种算法的唯一真正方法必须是解决方案的质量以及其他一些标准 - 通常是运行时间。

即使在这里你也遇到了问题。许多算法都是有效的搜索算法,搜索的时间越长,评估的解决方案就越多。算法已经牺牲了质量和运行时间。它们可能会或可能不会导致某些或所有图形的正确(最佳)答案。

你能够将算法与其他算法进行比较的唯一真正方法是实施其他算法,然后抛弃你的算法和他们同样的难题(正如其他人已经确定的那样,很容易制作至少一些类型困难的问题)。实现这些现有算法可能会提出改进您的算法的方法。 http://en.wikipedia.org/wiki/Travelling_salesman_problem有很多算法,至少有一些看起来非常容易编码。为什么不将它们作为算法的第一个基准来实现?