7

我正在解决这个问题:

TSP:
Input: A matrix of distances; a budget b
Output: A tour which passes through all the cities and has length <= b, 
if such a tour exists.

TSP-OPT
Input: A matrix of distances
Output: The shortest tour which passes through all the cities.

证明如果 TSP 可以在多项式时间内求解,那么 TSP-OPT 也可以。

现在,首先想到的是,如果我知道最佳解决方案的成本,我可以将 b 设置为那个,瞧。而且,你不知道吗,在我书中的其他地方,它包含了这个问题的提示:

我们如何找到最优成本?简单:通过二分查找。

我想我可能在这里误解了一些非常糟糕的事情。二进制搜索旨在查找给定项目在排序列表中的位置。这究竟如何帮助我找到最佳成本?我真的很困惑。不幸的是,作者没有进一步详细说明。

我可能想到的解决这个问题的唯一另一件事是证明它们都归结为另一个 NP 完全问题,我最终可能会这样做,但仍然......这让我很烦恼。

4

1 回答 1

4

假设您有一些下限 l(例如 0)和上限 u(例如所有边缘权重的总和)。首先,尝试找到总成本 <= (l+u)/2 的解决方案。如果成功,再尝试一个较低的值:(3l+u)/4;如果不是,请尝试更高的值:(l+3u)/4。

我将其称为二分法(维基百科)而不是二分搜索,但想法是一样的。我们想在某个范围内搜索最优值,所以我们从中间开始,如果太低则向上移动,如果太高则向下移动。

于 2010-12-08T06:43:11.077 回答