📜  证明旅行商问题是 NP Hard

📅  最后修改于: 2021-10-25 05:03:35             🧑  作者: Mango

先决条件:旅行商问题,NP难

给定一组城市和每对城市之间的距离,旅行商问题找到这些城市之间的路径,使其成为最短路径,并遍历每个城市一次,返回起点。

问题 –给定一个图G(V, E) ,问题是确定该图是否具有最多由K组成的 TSP。
解释 –
为了证明旅行商问题是 NP-Hard 问题,我们必须将已知的 NP-Hard 问题简化为这个问题。我们将从哈密顿循环问题简化为旅行商问题。
哈密顿循环问题的每个实例都由图 G =(V, E) 组成,因为输入可以转换为由图 G’ = (V’, E’) 和最大成本 K 组成的旅行商问题。我们将按以下方式构造图 G’:
对于属于 E 的所有边 e,加上边 c(e)=1 的成本。连接原始图 G中不存在的属于 E’ 的剩余边 e’,每条边的成本为 c(e’)= 2。
并且,设置K = N .
只需将 G 转换为完整图 G’ 并添加相应的成本,就可以在多项式时间内构建新图 G’。这种减少可以通过以下两个声明来证明:

  • 让我们假设图G包含一个哈密顿环,遍历图的所有顶点 V。现在,这些顶点形成一个 TSP cost = N因为它使用了成本 c(e)=1 的原始图的所有边。并且,由于它是一个循环,因此,它返回到原始顶点。
  • 我们假设图 G’ 包含一个带有成本的 TSP, K = N . TSP 遍历图的所有顶点返回到原始顶点。现在,由于没有任何顶点被排除在图中,并且成本总和为 n,因此,它必然使用E 中存在的图的所有边,成本为 1,因此与图G形成哈密顿循环。

因此,如果图 G包含哈密顿环,我们可以说图G’包含一个 TSP。因此,旅行商问题的任何实例都可以简化为汉密尔顿循环问题的实例。因此,TSP 是 NP-Hard。

如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程学生竞争性编程现场课程。