先决条件:旅行商问题,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。
并且,设置 .
只需将 G 转换为完整图 G’ 并添加相应的成本,就可以在多项式时间内构建新图 G’。这种减少可以通过以下两个声明来证明:
- 让我们假设图G包含一个哈密顿环,遍历图的所有顶点 V。现在,这些顶点形成一个 TSP 因为它使用了成本 c(e)=1 的原始图的所有边。并且,由于它是一个循环,因此,它返回到原始顶点。
- 我们假设图 G’ 包含一个带有成本的 TSP, . TSP 遍历图的所有顶点返回到原始顶点。现在,由于没有任何顶点被排除在图中,并且成本总和为 n,因此,它必然使用E 中存在的图的所有边,成本为 1,因此与图G形成哈密顿循环。
因此,如果图 G包含哈密顿环,我们可以说图G’包含一个 TSP。因此,旅行商问题的任何实例都可以简化为汉密尔顿循环问题的实例。因此,TSP 是 NP-Hard。
如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程和学生竞争性编程现场课程。