哈密顿圈问题是NP完全的

【哈密顿圈问题】
对于一个有向图G=(V,E),如果G中的圈C恰好经过每一个顶点一次,则称圈C是一个哈密顿圈。即,哈密顿圈构成一条经过所有的顶点,没有重复的“路线”。如图6是一个含有哈密顿圈的图。
哈密顿圈问题是NP完全的
图6 一个含有哈密顿圈的有向图

证明哈密顿圈问题是NPC的,可以通过证明3-SATp\leq_p哈密顿圈来得到。
【3-SATp\leq_p哈密顿圈】
构造方法如下:
(1)对于每一个变量xix_i,创建3m+3个顶点。命名为vi,1,...,vi,3m+3v_{i,1},...,v_{i,3m+3},并且对相邻的顶点,添加边(vi,j,vi,j+1v_{i,j},v_{i,j+1})和(vi,j+1,vi,jv_{i,j+1},v_{i,j})。如图中7中红色的点和绿色的边。如果xix_i为1,则路径PiP_i从左到右。反之,如果xix_i为0,则路径PiP_i从右到左。
(2)对于每一个变量,添加边(vi,1,vi+1,1)(v_{i,1},v_{i+1,1}),(vi,1,vi+1,3m+3)(v_{i,1},v_{i+1,3m+3}),(vi,3m+3,vi+1,1)(v_{i,3m+3},v_{i+1,1}),(vi,3m+3,vi+1,3m+3)(v_{i,3m+3},v_{i+1,3m+3})
(3)添加两个节点s,t。添加边(s,v1,1)(s,v_{1,1}),(s,v1,3m+3)(s,v_{1,3m+3}),(v3m+3,1,t)(v_{3m+3,1},t),(v3m+3,3m+3,t)(v_{3m+3,3m+3},t)
(4)添加边(t,s)(t,s)
构造后的图如图7所示。
哈密顿圈问题是NP完全的
图7 3-SAT到哈密顿圈的归约,第1部分
在图7中,可以看到有哈密顿回路:从t出发到达s,s再经过PiP_{i},最后到达t,记为A。
之后对子句进行约束。
(5)对于每个子句CaC_a,假设子句为C1=x1x2x3C_1=x_1 \vee \overline x_2 \vee x_3,则这个子句表示哈密顿圈首先由左到右通过P1P_1,然后由右向左通过P2P_2,最后由左向右通过P3P_3。如图8所示,添加点和边。
哈密顿圈问题是NP完全的
图8 3-SAT到哈密顿圈的归约,第2部分
可以看到,图中有哈密顿圈当且仅当3-SAT实例有满足的赋值。
证明:假设3-SAT实例有满足的赋值,则给出的哈密顿圈中,如果在满足的赋值中xix_i为1,则由左到右通过PiP_{i},反之由右到左通过PiP_{i}。对于每一个子句,因为其是被满足的,所以至少有一条路径是按照与该项相关的“正确”的方向通过的。从而添加的子句顶点在哈密顿圈中能够被通过。反之,假设图G中有一个哈密顿圈,则所有添加的子句顶点(图8添加的点)都会被通过。即所有的子句都被满足。
因此,可以得到3-SAT实例是可满足的当且仅当G有哈密顿圈。证明了3-SATp\leq_p哈密顿圈。因此哈密顿圈问题是NPC的。

,.♥,.,.♥,.,.♥,.♥,.,.♥,.,.♥,.,.♥,.,.♥,.,.♥,.,.♥,.,.♥♥,.,.♥,.,.♥,.,.♥,.♥,.,.♥,.,.♥,.,.♥,.,.♥,.,.♥,.,.♥,.,.♥
广告时间:
本宝宝开通了一个公众号,记录日常的深度学习和强化学习笔记。希望大家可以共同进步,嘻嘻嘻!求关注,爱你呦!
哈密顿圈问题是NP完全的