我对TSP否认重复城市的可能性感到奇怪。这个旅行推销员的目标是尽可能快地走访所有城市,对吗?那么,如果经过您曾经去过的城市旅行更快,该怎么办?
我对TSP否认重复城市的可能性感到奇怪。这个旅行推销员的目标是尽可能快地走访所有城市,对吗?那么,如果经过您曾经去过的城市旅行更快,该怎么办?
Answers:
定义它的方式并不重要,因为它只是对现实问题建模的一种方式。在TSP中,您只有一组城市以及每对城市之间的旅行费用。这并不排除在您正在建模的现实世界中,B和C之间的最佳路线可能会通过A的可能性。实际上,确实涉及从B到C的途中经过A额外的时间,但是这样的细节在TSP模型中被抽象掉了。
我同意约束看起来很奇怪,对于许多实际情况而言,它是不相关的。正如David在他的回答中所指出的那样,如果您可以自己更改建模,那么这并不重要。但是给定一个不可修改的实例,它将有所作为,因为具有此约束的常规TSP在任何恒定因子内都不是近似值,而放宽单次访问约束似乎使其在因子2内近似(即使它不是度量标准) )。除非我错过任何东西,否则按照标准的论点,您可以首先构建一个最小的生成树(成本为),然后使用欧拉游览技术访问该树。显然,您的旅行总费用为 (每个边的两倍)。矛盾的是,如果旅行成本小于2 c c c,那么此巡回测试可用于推断成本小于的MST ,这是一个矛盾。
给定任何重复的游览,您可以提出一个较短的游览,该游览不会重复任何城市。例如,请考虑以下形式的游览 其访问两次。您可以在第二次访问使用快捷方式,从到: A A X Y ⋯ → A → ⋯ → X → Y → ⋯ 。
从到的最短路径可能通过,但是已经封装在边。你能想到的一提的没有“通过”,而是“停在”。您可能只需要在停留一次,尽管您可能会经过次。Y A X → Y A A A A A A
除了“人不是愚蠢的”之外,对此没有一般性的答案。他们将应用适合其情况的解决方案。人们很少关心旅行业务员本身的问题。在经典情况下,伊夫布(Eveb),现实世界的销售人员将更加关注在特定限制条件下在给定时间段内最大化其收入的问题。在这种情况下,总行驶距离只是寻找最佳答案的众多不同因素之一。
如果允许重复,则只需检查所有连接X-> A-> Y,如果它短于X-> Y,则将X-> Y的长度替换为X-> A->的长度是,并使用标准算法解决由此产生的问题。我认为您必须重复替换过程,直到没有任何更改为止,因为如果您找到较短的连接X-> Y,则可能意味着现在X-> Y-> Z比X-> Y短。
跟踪更改的连接,遍历解决方案中的连接,如果解决方案包含X-> Y,则将其替换为X-> A->Y。
PS。我认为我的想法很棒,但是目前我不确定它是否正确。因为X-> A-> Y而不是X-> Y不仅是捷径,它还涵盖了城市A。