MCS 312: NP Completeness and Approximation algorithms Instructor Neelima Gupta ngupta@cs.du.ac.in Table of Contents • Hamiltonian Cycle Hamiltonian Cycle Problem A Hamiltonian cycle in a graph is a cycle that visits each vertex exactly once Given Problem Statement A directed graph G = (V,E) To Find If the graph contains a Hamiltonian cycle Hamiltonian Cycle Problem Hamiltonian Cycle Problem is NP-Complete H a m i l t o n i a n C y c l e P r o b l e m i s i n N P. G i v e n a d i r e c t e d g r a p h G = ( V, E ) , a n d a certificate containing an ordered list of vertices on a Hamiltonian Cycle. It can be verified in polynomial time that the list contains each vertex exactly once and that each consecutive pair in the ordering is joined by an edge. Hamiltonian Cycle Problem Hamiltonian Cycle Problem is NP Hard 3-SAT ≤p Hamiltonian Cycle We begin with an arbitrary instance of 3SAT having variables x1,…….,xn and clauses C1,…….,Ck We model one by one, the 2 n different ways in which variables can assume assignments, and the constraints imposed by clauses. Hamiltonian Cycle Problem To correspond to the 2n truth assignments, we describe a graph containing 2n different Hamiltonian cycles. The graph is constructed as follows: Construct n paths P1,…….,Pn. • Each Pi consists of nodes vi1,….., vib, where b = 2k (k being the number of clauses) ………………. P1 ………………. P2 ………………. P3 Hamiltonian Cycle Problem • Draw edges from vij to vi,j+1 ………………. P1 ………………. P2 ………………. P3 Hamiltonian Cycle Problem • Draw edges from vi,j+1 to vi,j ………………. P1 ………………. P2 ………………. P3 Hamiltonian Cycle Problem • For each i = 1,2,……..,n-1, define edges from vi1 to vi+1,1 and to vi+1,b. • Also, define edges from vib to vi+1,1 and vi+1,b ………………. P1 ………………. P2 ………………. P3 Add two extra nodes s and t. Define edges from s to v11 and v1b, from vn1and vnb to t, and from t to s s ………………. P1 ………………. P2 ………………. P3 t Hamiltonian Cycle Problem Observations: Any Hamiltonian cycle must use the edge (t,s) Each Pi can either be traversed left to right or right to left. This gives rise to 2n Hamiltonian cycles. We have therefore modeled the n independent choices of how to set each variable; if Pi is traversed left to right, xi=1, else xi=0 Hamiltonian Cycle Problem We now add nodes to model the clauses Consider the clause C = (x1’ν x2 ν x3’) What is the interpretation of the clause? The path P1 should be traversed right to left, or P2 should be traversed left to right, or P3 right to left. We add a node that does this s C ………………. P1 ………………. P2 ………………. P3 t Hamiltonian Cycle Problem In general • We define a node cj for each clause Cj. • In each path Pi, positions 2j-1 and 2j are reserved for variables that participate in clause Cj • If Cj contains xi, add edges (vi,2j-1 , cj)and (cj , vi,2j) • If Cj contains xi’, add edges (vi,2j , cj)and (cj, vi,2j-1) Gadget constructed ! Hamiltonian Cycle Problem Co n si d e r a n i nstanc e o f 3 - SAT h av ing 4 variables : x1,x2 x3,x4 3 clauses C1 : (x1 v x2 v x3’) C2 : (x2’ v x3 v x4) C3 : (x1’ v x2 v x4’) Hamiltonian Cycle Problem We reduce the given instance as follows: n = 4 k = 3 b= 2*3 = 6 Construct 4 paths P1, P2, P3, P4 P1 consists of nodes v1,1, v1,2 ,…….., v1,6 P2 consists of nodes v2,1, v2,2 ,…….., v2,6 P3 consists of nodes v3,1, v3,2 ,…….., v3,6 P4 consists of nodes v4,1, v4,2 ,…….., v4,6 C1 s P1 1 2 3 4 5 6 1 2 3 4 5 6 P2 1 2 3 4 5 6 P3 1 2 3 4 5 6 P4 t C3 C2 Hamiltonian Cycle Problem Claim: 3-SAT instance is satisfiable if and only if G has a Hamiltonian cycle Proof: Part I Given A satisfying assignment for the 3-SAT instance If x i = 1, traverse P i left to right, else right to left. Since each clause C j is satisfied by the assignment, there has to be at least one path Pi that moves in the right direction to be able to cover node cj. This Pi can be spliced into the tour there via edges incident on vi,2j-1 and vi,2j Hamiltonian Cycle Problem Let us try to verify this with our example Given A satisfying assignment for 3-SAT, say x1 = 1 x2 = 0 x3 = 1 x4 = 0 Let us check out a corresponding Hamiltonian cycle C1 s P1 1 2 3 4 5 6 1 2 3 4 5 6 P2 1 2 3 4 5 6 P3 1 2 3 4 5 6 P4 t C3 C2 Hamiltonian Cycle Problem Part II Given A Hamiltonian cycle in G. Observe that if the cycle enters a node cj on an edge from vi,2j-1 it must depart on an edge to vi,2j. Why? Hamiltonian Cycle Problem Because otherwise, the tour will not be able to cover this node while still maintaining the Hamiltonian property Similarly, if the path enters from vi,2j, it has to depart immediately to vi,2j-1. Hamiltonian Cycle Problem However, in some situations it may so happen that the path enters cj from the first (or last) node of Pi and departs at the first (or last) node of Pi+1. In either case the following holds true: The nodes immediately before and after any c j in the cycle are joined by an edge in G, say e. Let us consider the following Hamiltonian cycle given on our graph C1 s P1 1 2 3 4 5 6 1 2 3 4 5 6 P2 1 2 3 4 5 6 P3 1 2 3 4 5 6 P4 t C3 C2 Hamiltonian Cycle Problem Obtain a Hamiltonian cycle on the subgraph G – {c1,……ck} by removing cj and adding ‘e’ as shown below C1 s P1 1 2 3 4 5 6 1 2 3 4 5 6 P2 1 2 3 4 5 6 P3 1 2 3 4 5 6 P4 t C3 C2 Hamiltonian Cycle Problem We now use this new cycle on the subgraph to obtain the truth assignments for the 3-SAT instance. If it traverses P i left to right, set x i =1, else set xi = 0. We therefore get the following assignments: x1 = 1 x2 = 0 x3 = 0 x4 = 1 Hamiltonian Cycle Problem Can we claim that the assignment thus d ete r m i n e d w o u l d s at i sf y a l l c l a u s e s . YES ! Since the larger cycle visited each clause node cj, at least one Pi was traversed in the right direction relative to the node cj Acknowledgements • BIG Thanks to Sonika Arora