【问题标题】:How efficient is a common TSP algorithm compared to a random route?与随机路由相比,常见的 TSP 算法效率如何?
【发布时间】: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


【解决方案1】:

给你一个粗略的想象:1000 点的往返 (TSP) 的解空间,即可能路线的数量是 999! (假设旅行距离不对称)。比较一下,50!是一个有 63 位数字的数字。由于它是组合问题,因此解决方案空间随着位置数量的增加而迅速爆炸。因此,如果您生成一条随机路线,则达到最优解的概率为 1/999!。因此,在 1000 个案例中,我猜 Christophides 产生比您的随机方法更好的解决方案的概率是 1。为了给您的问题提供具体答案,与 Christophides 相比,您的随机方法效率极低。

【讨论】:

  • 我知道随机性非常低效,我只是在寻找另一种方法来对我的算法进行基准测试。我知道使用随机路线是行不通的。感谢您的回答!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-16
  • 1970-01-01
  • 1970-01-01
  • 2017-09-12
  • 2019-06-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多