0% found this document useful (0 votes)
109 views9 pages

NP Complete

The document defines several NP-complete problems and provides proofs that they are NP-complete. It discusses the CLIQUE problem of finding a complete subgraph of size k in a graph G. It proves CLIQUE is NP-complete by showing that 3SAT reduces to it. It also discusses the VERTEX-COVER, HAMPATH, HAMCYCLE, and TSP problems and provides proofs that they are NP-complete often by reducing VERTEX-COVER or CLIQUE to them. It provides an example of reducing 3-COLOR to 3-COLOR-PLUS and SUB-ISO to CLIQUE. Throughout it defines the problems, provides certificates and algorithms for the NP parts of the proofs, and describes the reductions

Uploaded by

Cuong Tran
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
109 views9 pages

NP Complete

The document defines several NP-complete problems and provides proofs that they are NP-complete. It discusses the CLIQUE problem of finding a complete subgraph of size k in a graph G. It proves CLIQUE is NP-complete by showing that 3SAT reduces to it. It also discusses the VERTEX-COVER, HAMPATH, HAMCYCLE, and TSP problems and provides proofs that they are NP-complete often by reducing VERTEX-COVER or CLIQUE to them. It provides an example of reducing 3-COLOR to 3-COLOR-PLUS and SUB-ISO to CLIQUE. Throughout it defines the problems, provides certificates and algorithms for the NP parts of the proofs, and describes the reductions

Uploaded by

Cuong Tran
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

CS 5104 course notes

-1-

April 20, 2006

NP-Completeness
Definition SAT = { | is a satisfiable Boolean formula } Example ( ( x y ) x ) is satisfiable by the assignment x = 1 and y = 0. Theorem SAT is NP-complete [ proof next week ]

Definition 3SAT = { | is a satisfiable 3CNF formula } A 3CNF formula has the form (s11 s12 s13) (s21 s22 s23) where literals sij are Boolean variables or negated Boolean variables. Theorem 3CNF is NP-complete [ proof next week ]

Theorem L NPC Proof I. Show that L NP A. Certificate: [ Describe certificate ] B. Algorithm: [ Construct verification algorithm V ] C. Runtime: [ Argue that V runs in polynomial time ] Show that S P L [ Find a reduction from S to L, where S NPC ] A. Algorithm: [ Construct reduction algorithm M ] 1. Input: [ Give form of input ] 2. Output: [ Give form of output ] B. Reduction: [ Show that M is a reduction ] 1. (): [ x S M(x) L ] 2. (): [ x S M(x) L ] C. Runtime: [ Argue that M runs in polynomial time ]

II.

CS 5104 course notes

-2-

April 20, 2006

Clique
A clique is a complete subgraph of undirected graph G. CLIQUE = { G, k : G is a graph with a clique of size k } Theorem CLIQUE NPC Proof (1) CLIQUE NP Certificate: A subset V V[G] of vertices that forms a clique Verification algorithm V: V = On input G, V: for each pair of vertices u, v V check if u, v V[G] check if (u, v) E if both checks succeed then accept else reject Runtime: V runs in O(E[G]) time (2) CLIQUE is NP-hard ( Show 3-CNF-SAT P CLIQUE ) Let = C1 C2 Ck be a 3-CNF formula where Cr = ( s1r s2r s3r ). Reduction algorithm M: G, k Construct G as follows: for each clause Cr = ( s1r s2r s3r ) in add v1r, v2r, v3r to V[G] for each pair of vertices vir and vjs in G place an edge between them if both: (1) vir and vjs are in different triples (r s), and (2) their corresponding literals are consistent ( sir sis ) Halt with G on tape. Example = (x1 x1 x1) (x1 x2 x3) (x1 x3 x3)

CS 5104 course notes

-3-

April 20, 2006

[ change the middle clause to (x1 x1 x3) and you wont have a clique of size 3 ] Runtime: M runs in O(k) + O(k2) = O(k2) time. Correctness of M: 3-CNF-SAT G, k CLIQUE () has a satisfying assignment. Each clause Cr contains at least one true literal. Let S be a set containing one true literal from each clause. Claim: the set of vertices V in G that corresponds to S is a clique. Let u and v be arbitrary vertices in V We know that: (1) their corresponding literals come from different clauses, and (2) their corresponding literals are consistent since they both map to true Therefore, there must be an edge between the vertices Since u and v are arbitrary, for all u, v in V, (u, v) is in G V is a clique of size k for G () G has a clique V of size k Let S be the set of literals corresponding to V We know that: (1) S contains exactly one literal from each clause in (there are k clauses and k vertices, and there cannot be more than one vertex from the same triple) (2) All the literals in S are consistent. Therefore, we can safely assign true to all the literals in S The assignment makes all clauses true, which in turn makes true. has a satisfying assignment.

CS 5104 course notes

-4-

April 20, 2006

Vertex cover
Let G = (V, E) be an undirected graph. A vertex cover is a subset V V of vertices such that if (u, v) E then u V or v V (or both) Example

VERTEX-COVER = { G, k : graph G has a vertex cover of size k } Theorem VERTEX-COVER NPC Proof (1) VERTEX-COVER NP certificate: subset of V V of vertices algorithm: check of |V| = k for each edge (u, v) in E check if u V or v V poly-time: size check takes O(V); edge check takes O(E) (2) VERTEX-COVER is NP-hard ( we show CLIQUE P VERTEX-COVER ) (A) Algorithm F: G, k G, k construct G as G* = (V, E*), E* is the compliment of E [ set of all edges not in E ] k = |V| k (B) F runs in poly time O(V2) time to change 0 1 in adjacency matrix. (C) F computes a reduction G, k CLIQUE G*, |V| k VERTEX-COVER

CS 5104 course notes

-5-

April 20, 2006

() G has clique V' of size k Let (u, v) be an arbitrary edge in G* Since (u, v) is not an edge in G, at least one of u, v must be outside clique V' Therefore, at least one of u, v must be in V V' V V' covers (u, v) Since (u, v) is arbitrary, V V' covers all (u, v) in G* V V' is a vertex cover for G* it has size |V| k () G* has vertex cover V' with size |V| k Let both u and v be arbitrary vertices in V V' Suppose (u, v) is in G* Then at least one of u, v must be in vertex cover V' () So (u, v) is in G Since u and v are arbitrary, for all u, v in V V', (u, v) is in G Therefore, V V' is a clique of size k for G [ return to the picture the complement graph has a clique of size four ]

Hamiltonian paths and cycles


HAMPATH = { G, s, t : G has a Hamiltonian path from s to t } Theorem HAMPATH NPC [ see the text for a reduction VERTEX-COVER P HAMPATH ] HAMCYCLE = { G : G has a Hamiltonian cycle } Theorem HAMCYCLE NPC HAMCYCLE NP [ certificate is a Hamiltonian cycle, similar to proof for HAMPATH NP ] HAMCYCLE is NP-hard ( Show HAMPATH P HAMCYCLE ) [ try adding an edge from t to s doesnt work: You can have G, s, t HAMPATH and G HAMCYCLE ]

CS 5104 course notes

-6-

April 20, 2006

[ try adding an edge and eliminating edges that are not part of the Hamiltonian path; doesnt work: you need to know which edges are in the path which may take exponential time ] [ Add a vertex k, add edge (t, k), and add edge (k, s). this works! ]

Traveling salesman problem (TSP)


G = (V, E) is a complete graph. [ all vertices have edges between them ] All edges have an integer cost. Problem: Find a min-cost tour (ham-cycle) TSP = { G, c, k : G = (V, E) is a complete graph, c is a cost function V V Z k Z, and G has a tour with cost k } Theorem TSP NPC Proof (1) TSP NP certificate: sequence of |V| vertices algorithm: check that vertices dont occur more than once sum up edge cost and check that it is less than k poly time: O(V) to check dup vertices O(V) to get edge costs (2) TSP is NP-hard ( we show HAM-CYCLE P TSP ) (A) algorithm F: G G, c, k 1. construct G = (V, E) where G is a complete graph. 2. c(i, j) = 0 if (i, j) E; c(i, j) = 1 if (i, j) E 3. k = 0 (B) F runs in poly time constructing G takes O(V2) time constructing c takes O(V2) time (C) F computes a reduction G HAM-CYCLE G, c, 0 TSP ()

CS 5104 course notes

-7-

April 20, 2006

G has hamiltonian cycle h All edges in the cycle are also in G These edges will all have cost 0 in G' Therefore G' has a tour with cost 0 () G' has a tour with cost 0. All edges in G' have cost 0 or 1 Therefore, all edges in the tour must have cost 0 So all edges in the tour must also be edges in G G has a hamiltonian cycle

Example Show that 3-COLOR P 3-COLOR-PLUS. 3-COLOR = { G : G is 3-colorable (vertices can be colored with 3 colors; no two adjacent vertices have the same color) } 3-COLOR-PLUS = { G : G is 3-colorable and every vertex is adjacent to at least one vertex colored with each of the other two colors } Reduction algorithm M: G G M = On input G: G = G for each v in V[G] add two new vertices u and w to V[G] add three new edges (v, u), (v, w), and (u, w) to E[G] output G Runtime M takes time O(V) Reduction: (G 3-COLOR M(G) 3-COLOR-PLUS) () Assume G 3-COLOR any vertex v in G must be colored with one of three colors. the corresponding vertex v in G can be colored with the same color as v the two neighbors of v added in algorithm F can be colored with the two other colors. G is 3-colorable and each vertex is adjacent to a vertex of each of the other 2 colors. G 3-COLOR-PLUS () Assume G 3-COLOR-PLUS G is a subgraph of G, so if G is 3-colorable, G must also be 3-colorable

CS 5104 course notes

-8-

April 20, 2006

Example Show that the subgraph isomorphism problem in NP-complete. SUB-ISO = { G1, G2 | G1 is isomorphic to a subgraph of G2 } Step 1. Show SUB-ISO NP certificate: An isomorphic mapping m from the vertices of G1 to a subset of the vertices of G2. Verification algorithm V V = On input G1, G2, y: for each vertex v in G1 for each vertex u in G1 if (u, v) is in G1 and (f(u), f(v)) is not in G2 then return false if (u, v) is not in G1 and (f(u), f(v)) is in G2 then return true return true Runtime: V takes O(V2) time Step II. Show CLIQUE P SUB-ISO Reduction algorithm M: G, k G1, G2 M = On input G, k: Construct G2 = G Construct G1 = complete graph with k vertices Runtime of M: Polynomial in E + V Correctness of M: G, k CLIQUE G1, G2 SUB-ISO Assume G, k CLIQUE G has a clique of size k G has a subgraph of size k G2 has a subgraph of size k isomorphic to G1 G1, G2 SUB-ISO

Definition CLIQUE = { G, k | G is an undirected graph with a clique (a complete subgraph) of k nodes }

Definition VERTEX-COVER = { G, k | G is an undirected graph with a vertex cover (a set of nodes that touches every edge of G) of k nodes }

CS 5104 course notes

-9-

April 20, 2006

Definition HAMPATH = { G, s, t | G has a path from s to t that goes through each node exactly once }

Definition HAMCYCLE = { G | G contains a cycle that goes through each node exactly once }

Assume 3SAT is NP-Complete

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy