【发布时间】:2016-02-04 18:35:00
【问题描述】:
前几天我只是在看一些 TSP 算法,想知道一个常见的 TSP 算法(如 Christofides 的算法)与一个随机路线相比有多有效,比如一千个点。
如果我知道答案,或者更好的是,知道一种计算方法,这将大大简化我自己的算法的测试。
有没有人可以帮我解决这个问题?
编辑:点的 x 和 y 坐标必须是整数,并且它们被放置在 1000*1000 的区域中。
【问题讨论】:
-
有效地计算总路线的长度。例如,Christofides 的算法输出一条长度为 1000 的路由,随机路由为 10000。高效我的意思是在这种情况下,Christofides 的算法输出的东西只有随机路由的 10%。
-
单位正方形中两个随机点之间的平均距离刚刚超过一半。所以对于 1000x1000 中的 n 个点,刚好超过 500*n。但这使用了一些鬼鬼祟祟的假设。
-
不过,通常质量的衡量标准是从最佳路线增加的百分比。
-
是的,我知道,但我想测试我的算法最多 2500 分。计算这么多点的最佳路线需要花费大量时间。
-
随机路由会很差。作为一个非常粗略的估计,正方形中均匀点之间的平均距离为 Θ(1),而平均最短距离将类似于 Θ(1/√N),即短几个数量级。你为什么不考虑一个贪婪的解决方案?
标签: algorithm traveling-salesman