【问题标题】:Outsmarting a Traveling Salesman Algorithm智取旅行推销员算法
【发布时间】:2016-02-11 04:29:07
【问题描述】:

我很难构建一个小的无向图 G,它的加权边比给定的算法更聪明,这意味着无论起点是什么,算法都不会选择最佳解决方案。每个节点都连接到每个其他节点。

给定一个起点,该算法迭代地选择图上最近的未使用点并访问它,直到它循环回到起点。该算法确实是蛮力的,以每个点为起点运行,并从所有输出的循环中选择最短的哈密顿循环。

我这辈子都无法弄清楚这一点,我画了无数的图,经历并解决了它们,但仍然无法提出算法无法找到最佳解决方案的图.

这完全是理论上的,没有代码。非常感谢任何关于我应该如何处理/思考这个问题的指导或指示。

【问题讨论】:

    标签: algorithm theory traveling-salesman


    【解决方案1】:

    考虑以下 4 顶点图:

    我们有长度为 2 的 AB 和 CD、长度为 1 的 BC、长度为 3 的 AC 和 BD 以及长度为无穷大(或任意大)的 AD。

    如果你从 A 开始并遵循贪婪的方法,你会去 B(长度 2),然后是 C(长度 1),然后是 D(长度 2),然后卡在 DA(长度无穷大)。通过图形的对称性,从 D 开始,你会得到相同的结果(你去 D -> C -> B -> A -> D,长度无穷大)。

    如果你从 B 开始并遵循贪婪的方法,你会去 C(长度 1),然后是 D(长度 2),然后是 A(长度无穷大——这是唯一可用的移动,因为我们已经访问过 B和 C),最后是 B(长度为 2)。通过图形的对称性,从 C 开始时,你会得到相同的结果(你去 C -> B -> A -> D -> C,长度无穷大)。

    简而言之,无论贪婪方法从哪里开始,最终都会得到长度无穷大。同时路径 A -> C -> D -> B -> A 的长度为 10。

    无论起点如何,蛮力算法不仅不是最优的,而且它的表现也非常糟糕。

    【讨论】:

      猜你喜欢
      • 2013-06-09
      • 2017-10-02
      • 1970-01-01
      • 1970-01-01
      • 2021-01-19
      • 2021-07-18
      • 1970-01-01
      • 1970-01-01
      • 2011-09-08
      相关资源
      最近更新 更多