📜  证明旅行推销员问题是NP Hard(1)

📅  最后修改于: 2023-12-03 14:57:40.741000             🧑  作者: Mango

证明旅行推销员问题是NP Hard

介绍

旅行推销员问题(Traveling Salesman Problem,TSP),是一个著名的组合优化问题,也是一个NP难问题。问题描述为:给定一系列的城市和每对城市之间的距离,求解访问每一座城市一次并回到起始城市的最短回路。

该问题具有重大的实际意义,在许多领域得到广泛应用,如电路设计、货车调度、计算机制作、DNA测序等等。

NP Hard的含义

NP Hard是指不仅是NP问题,而且还是NP问题中最困难的那一类问题。换一种说法,就是所有NP问题都可以约化为NP Hard问题,即如果我们能在多项式时间内解决某个NP Hard问题,那么我们就可以在多项式时间内解决所有的NP问题。

证明

我们将证明旅行推销员问题是NP Hard,通过将其约化为图的哈密顿回路问题(Hamiltonian Circuit Problem,HCP)。

HCP指的是在无向图中存在一条包含所有顶点的简单回路,称为哈密顿回路。该问题也是一个NP难问题。我们可以将TSP转化为HCP,从而证明TSP是NP Hard。

具体来说,我们可以借助一个图的变换,将TSP的问题转化为HCP的问题。该变换方式称为Gadget方法:

  1. 对于每个城市,我们建立一条长度为0的线段作为出入点。我们将这样一组线段称为城市盒子。
  2. 对于所有城市盒子之间的距离,我们建立一条边。这些边构成了一个完全图。
  3. 对于上述完全图中的每个边,我们将其边权定为城市盒子之间的距离。
  4. 对于每个城市盒子,我们在其内部建立一个包含全部城市盒子的完全图。这个完全图称为城市盒子中的子图。
  5. 对于城市盒子中子图的每个边,我们将其边权设为无限大,这意味着连接城市盒子中子图上两个点的任何边都是无效的。

我们来看一个例子:

在这个例子中,我们有4个城市,分别为A、B、C、D。它们分别被画在4个盒子中(4个盒子放在了完全图的4个顶点上)。它们之间的距离用红色的线段表示。

城市盒子中的子图以绿色的虚线包围。每个子图是一个完全图,但是所有边的权值被设置为无限大,因此我们可以将它们看作是没有边的子图。

我们可以证明:

在这个新的图上,找出哈密顿回路的复杂度与长度为N的TSP问题是等价的。因此,如果我们能够解决这个新的问题,那么我们也可以解决TSP问题。由于这个新的问题是NP难问题,我们可以得出旅行推销员问题也是NP难问题。

结论

通过Gadget方法的转换,我们可以将旅行推销员问题TSP转换为图的哈密顿回路问题HCP,从而证明TSP是NP hard。这个证明方式说明了TSP是一个极其困难的问题,在实际使用时需要特别小心和谨慎。