2

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

理想情况下,它们只是基于文本的邻接矩阵列表或邻接列表(我不想处理解析,只是算法)。
通过“硬”,我的意思是它们实际上应该是不可能使用蛮力解决或近似的。
(这样我就可以有理由相信,如果我找到一个接近最知名答案的答案,那么我实际上是在做正确的事情,而不仅仅是走运。)

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

4

3 回答 3

3

这是关于 SE 部分回答您的问题的另一个问题(它列出了问题,但其中大多数似乎没有提供解决方案,但无论如何您最好检查链接 - 事情可能已经改变)。

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

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


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

维基百科为此提供了其他免费 sw 软件包的列表

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

于 2013-03-09T08:36:12.807 回答
1

TSP gatech 站点似乎是 TSP 信息的规范站点。

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

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

于 2013-03-10T09:45:40.583 回答
0

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

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

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

您能够将您的算法与其他算法进行比较的唯一真正方法是实现其他算法,然后将您的算法和它们抛出相同的难题(正如其他人所指出的那样,至少可以轻松解决某些类型的难题)。实施这些现有算法可能会提出改进您的算法的方法。http://en.wikipedia.org/wiki/Travelling_salesman_problem有很多算法,至少有几个看起来很容易编码。为什么不将它们作为您算法的第一个基准?

于 2013-03-09T09:49:23.753 回答