1 / 11

Computability and Complexity

Computability and Complexity. 15-1. NP-Completeness. Computability and Complexity Andrei Bulatov. Computability and Complexity. 15-2. NP-Completeness Proofs. To prove that a language L is NP-complete we now just have to perform two steps:. Show that L belongs to NP

jcamarillo
Download Presentation

Computability and Complexity

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computability and Complexity 15-1 NP-Completeness Computability and Complexity Andrei Bulatov

  2. Computability and Complexity 15-2 NP-Completeness Proofs To prove that a language L is NP-complete we now just have to perform two steps: • Show that L belongs to NP • Find a known NP-complete problem (language) L and show L  L 100s of problems have now been shown to be NP-complete (for an earlier survey see Garey and Johnson) Note: If we can complete Step 2 but not Step 1, then we say that L is NP-hard

  3. Computability and Complexity Clique Instance: A graph G and a number k. Question: Does G contain a clique of size k? 15-3 NP-Completeness of Clique Theorem Clique is NP-complete Step 1: The problem Clique is in NP: the list of vertices in the clique is the certificate

  4. Computability and Complexity Given a formula  with clauses • For each literal X in clause create a graph vertex • Put an edge between every pair of vertices from distinct clauses, • unless they are incompatible (i.e. X and X) 15-4 Step 2: To show that Clique is NP-complete we shall reduce Satisfiability to Clique This construction can be carried out in polynomial time The resulting graph has a clique of size k if and only if  is satisfiable (assign the value true to every variable occurring in the clique)

  5. Computability and Complexity U X Y V Z Y  X  Z  U 15-5 Example Construction k 3

  6. Computability and Complexity Vertex Cover¹ Instance: A graph G = (N,E), and a natural number k. Question: Is there a set M N, with M k, such that for each edge (i,j)  E, {i,j}  M  ? ¹Sometimes called Node Cover 15-6 NP-Completeness of Vertex Cover Step 1: The problem Vertex Cover is in NP: the list of vertices in M is the certificate

  7. Computability and Complexity Given a formula  with clauses and n variables • For each variable X create two adjacent vertices and • to represent the literalsX and X • For each clause of size create a complete subgraph • with vertices connected to corresponding literals • Set 15-7 Step 2: To show that Vertex Cover is NP-complete we shall reduce Satisfiability to Vertex Cover This construction can be carried out in polynomial time

  8. Computability and Complexity Y Z U V 15-8 Example Construction X

  9. Computability and Complexity • At least one of each pair must be in the cover • At least vertices from each complete graph • must be in the cover • If the formula is satisfiable, then choose the cover by choosing • each literal assigned true plus all but one vertex in each • (Omit a vertex which is connected to a satisfied literal.) • Conversely, if a vertex cover exists, assign each Boolean variable • according to whether (true) or (false) is in M. (By the • choice of k, there must be one vertex in each clique which is not • in M. This vertex must be adjacent to a vertex in M, hence the • clause is satisfied.) 15-9

  10. Computability and Complexity 15-10 Alternative Reductions We have shown that Clique and Vertex Cover are both NP-complete This means it must be possible to reduce Clique to Vertex Cover and vice versa!

  11. Computability and Complexity • Replace every clause • with k > 3 by 15-11 NP-Completeness of 3-SAT To show that 3-Satisfiability is NP-complete we reduce Satisfiability to 3-Satisfiability • C is satisfiable if and only if C is, since at least one of the literals • other than ys must be true

More Related