📜  证明哈密顿循环是 NP 完全的(1)

📅  最后修改于: 2023-12-03 15:12:09.051000             🧑  作者: Mango

证明哈密顿循环是 NP 完全的

NP 完全问题

NP 完全问题是指在多项式时间内无法解决的问题,但是可以在多项式时间内验证解的正确性。这类问题的一种特殊情况是哈密顿路径问题。

哈密顿路径问题

哈密顿路径问题是指在一个有向图中,是否存在一条路径,经过每一个节点恰好一次。哈密顿循环问题是哈密顿路径问题的特例,指寻找是否存在一个循环,恰好经过每一个节点一次。

哈密顿路径问题已经被证明是 NP 完全的问题,而哈密顿循环问题是哈密顿路径问题的特例,所以哈密顿循环问题也是 NP 完全的问题。

证明

下面介绍一种简单的证明方式。

我们可以通过将一个已知的 NP 完全问题约化到哈密顿循环问题上,从而证明哈密顿循环问题也是 NP 完全的问题。

假设我们有一个已知的 NP 完全问题 A,我们可以将其转化为一个哈密顿循环问题的实例 B:

  • 将问题 A 转换为一个有向图 G。
  • 在 G 中添加一个起点和终点。
  • 添加一条从起点到终点的边,使得 G 成为一个有向图。
  • 如果 G 中存在 A 的解,那么显然存在一个恰好经过所有节点的哈密顿循环。
  • 如果 G 中不存在 A 的解,那么无论如何存在的哈密顿循环都不包含从起点到终点的边。

由于问题 A 是 NP 完全的,所以问题 B 也是 NP 完全的。

结论

通过对哈密顿循环问题的证明,我们可以得知,哈密顿循环问题是 NP 完全的问题。这也意味着,我们无法在多项式时间内找到问题的解,但是我们可以在多项式时间内验证一个给定解的正确性。