Techniques for Proving NP-Completeness Show that a special case of the problem you are interested in is NP- complete. For example: The problem of finding.

Slides:



Advertisements
Similar presentations
NP-Hard Nattee Niparnan.
Advertisements

1 NP-completeness Lecture 2: Jan P The class of problems that can be solved in polynomial time. e.g. gcd, shortest path, prime, etc. There are many.
NP-Completeness: Reductions
NP and NP Complete. Definitions A problem is in the class P if there is a polynomial time solution to the problem A problem is in the class NP if there.
The Theory of NP-Completeness
1 NP-Complete Problems. 2 We discuss some hard problems:  how hard? (computational complexity)  what makes them hard?  any solutions? Definitions 
CSC5160 Topics in Algorithms Tutorial 2 Introduction to NP-Complete Problems Feb Jerry Le
Complexity 11-1 Complexity Andrei Bulatov NP-Completeness.
Computability and Complexity 15-1 Computability and Complexity Andrei Bulatov NP-Completeness.
Techniques for Proving NP-Completeness
Reduction Techniques Restriction Local Replacement Component Design Examples.
NP-Complete Problems Reading Material: Chapter 10 Sections 1, 2, 3, and 4 only.
1 Polynomial Time Reductions Polynomial Computable function : For any computes in polynomial time.
The Theory of NP-Completeness
NP-Complete Problems Problems in Computer Science are classified into
1 CSE 417: Algorithms and Computational Complexity Winter 2001 Lecture 23 Instructor: Paul Beame.
Analysis of Algorithms CS 477/677
NP-Completeness (2) NP-Completeness Graphs 4/17/2017 6:25 AM x x x x x
CSE 421 Algorithms Richard Anderson Lecture 27 NP Completeness.
Odds and Ends HP ≤ p HC (again) –Turing reductions Strong NP-completeness versus Weak NP-completeness Vertex Cover to Hamiltonian Cycle.
Black-box (oracle) Feed me a weighted graph G and I will tell you the weight of the max-weight matching of G.
Complexity ©D.Moshkovitz 1 Paths On the Reasonability of Finding Paths in Graphs.
Clique Cover Cook’s Theorem 3SAT and Independent Set
The Theory of NP-Completeness 1. Nondeterministic algorithms A nondeterminstic algorithm consists of phase 1: guessing phase 2: checking If the checking.
1 The Theory of NP-Completeness 2012/11/6 P: the class of problems which can be solved by a deterministic polynomial algorithm. NP : the class of decision.
Nattee Niparnan. Easy & Hard Problem What is “difficulty” of problem? Difficult for computer scientist to derive algorithm for the problem? Difficult.
Tonga Institute of Higher Education Design and Analysis of Algorithms IT 254 Lecture 8: Complexity Theory.
Lecture 22 More NPC problems
Theory of Computation, Feodor F. Dragan, Kent State University 1 NP-Completeness P: is the set of decision problems (or languages) that are solvable in.
NP-complete Problems SAT 3SAT Independent Set Hamiltonian Cycle
1 3-COLOURING: Input: Graph G Question: Does there exist a way to 3-colour the vertices of G so that adjacent vertices are different colours? 1.What could.
Polynomial-time reductions We have seen several reductions:
Week 10Complexity of Algorithms1 Hard Computational Problems Some computational problems are hard Despite a numerous attempts we do not know any efficient.
CSE 024: Design & Analysis of Algorithms Chapter 9: NP Completeness Sedgewick Chp:40 David Luebke’s Course Notes / University of Virginia, Computer Science.
EMIS 8373: Integer Programming NP-Complete Problems updated 21 April 2009.
1 The Theory of NP-Completeness 2 Cook ’ s Theorem (1971) Prof. Cook Toronto U. Receiving Turing Award (1982) Discussing difficult problems: worst case.
NP-Complete Problems. Running Time v.s. Input Size Concern with problems whose complexity may be described by exponential functions. Tractable problems.
NP-COMPLETE PROBLEMS. Admin  Two more assignments…  No office hours on tomorrow.
NP-Completeness (Nondeterministic Polynomial Completeness) Sushanth Sivaram Vallath & Z. Joseph.
CSE 589 Part V One of the symptoms of an approaching nervous breakdown is the belief that one’s work is terribly important. Bertrand Russell.
1 Suppose I construct a TM M f which: 1. Preserves its input u. 2. Simulates a machine M b on input ε. 3. If M b hangs on input ε, force an infinite loop.
CS 461 – Nov. 30 Section 7.5 How to show a problem is NP-complete –Show it’s in NP. –Show that it corresponds to another problem already known to be NP-complete.
CS6045: Advanced Algorithms NP Completeness. NP-Completeness Some problems are intractable: as they grow large, we are unable to solve them in reasonable.
NPC.
CSC 413/513: Intro to Algorithms
CSE 421 Algorithms Richard Anderson Lecture 27 NP-Completeness Proofs.
The Theory of NP-Completeness 1. Nondeterministic algorithms A nondeterminstic algorithm consists of phase 1: guessing phase 2: checking If the checking.
Given this 3-SAT problem: (x1 or x2 or x3) AND (¬x1 or ¬x2 or ¬x2) AND (¬x3 or ¬x1 or x2) 1. Draw the graph that you would use if you want to solve this.
COSC 3101A - Design and Analysis of Algorithms 14 NP-Completeness.
COMPLEXITY. Satisfiability(SAT) problem Conjunctive normal form(CNF): Let S be a Boolean expression in CNF. That is, S is the product(and) of several.
1 The Theory of NP-Completeness 2 Review: Finding lower bound by problem transformation Problem X reduces to problem Y (X  Y ) iff X can be solved by.
Computability Examples. Reducibility. NP completeness. Homework: Find other examples of NP complete problems.
The NP class. NP-completeness Lecture2. The NP-class The NP class is a class that contains all the problems that can be decided by a Non-Deterministic.
CSE 332: NP Completeness, Part II Richard Anderson Spring 2016.
ICS 353: Design and Analysis of Algorithms NP-Complete Problems King Fahd University of Petroleum & Minerals Information & Computer Science Department.
The Theory of NP-Completeness
NP-Completeness (2) NP-Completeness Graphs 4/13/2018 5:22 AM x x x x x
More NP-Complete and NP-hard Problems
Richard Anderson Lecture 26 NP-Completeness
NP-Completeness (2) NP-Completeness Graphs 7/23/ :02 PM x x x x
NP-Completeness (2) NP-Completeness Graphs 7/23/ :02 PM x x x x
NP-Completeness Proofs
Richard Anderson Lecture 26 NP-Completeness
ICS 353: Design and Analysis of Algorithms
NP-Completeness (2) NP-Completeness Graphs 11/23/2018 2:12 PM x x x x
Richard Anderson Lecture 25 NP-Completeness
Richard Anderson Lecture 28 NP-Completeness
NP-Completeness Yin Tat Lee
The Theory of NP-Completeness
NP-Completeness (2) NP-Completeness Graphs 7/9/2019 6:12 AM x x x x x
Presentation transcript:

Techniques for Proving NP-Completeness Show that a special case of the problem you are interested in is NP- complete. For example: The problem of finding a path of length k is a part of the Hamiltonian Path problem. Clique problem is a part of the problem of finding a subgraph of size j where each vertex is at least degree k In general, all we need to do is prove part of a problem hard for the entire problem to be classified NP-hard.

Guideline 1 Make your source problem as simple as possible. Never try to reduce the general Traveling Salesman Problem to prove hardness. Better, use Hamiltonian Cycle. Even better, don’t worry about closing the cycle, and use Hamiltonian Path. If you are aware of simpler NP-Complete problems, you should always use them instead of their more complex brethren. When reducing Hamiltonian Path, you could actually demand the graph to be planar or even 3-regular if any of these make an easier reduction [k-regular graph is a graph where each vertex has k neighbors].

Guideline 2 Make your target problem as hard as possible. Don’t be afraid to add extra constraints or freedoms in order to make your problem more general. Perhaps you are trying to prove a problem NP-Complete on an undirected graph. If you can prove it using a directed graph, do so, and then come back and try to simplify the target, modifying your proof. Once you have one working proof, it is often (but not always) much easier to produce a related one.

Guideline 3 Select the right source problem for the right reason. 3-SAT: The old reliable. When none of the other problems seem to work, this is the one to come back to. Integer Partition: This is the one and only choice for problems whose hardness requires using large numbers. Vertex Cover: This is the answer for any graph problems whose hardness depends upon selection. Hamiltonian Path: This is the proper choice for most problems whose answer depends upon ordering.

Guideline 4 Amplify the penalties for making the undesired selection. If you want to remove certain possibilities from being considered, it may always be possible to assign extreme values to them, such as zero or infinity. For example, we can show that the Traveling Salesman Problem is still hard on a complete graph by assigning a weight of infinity to those edges that we don’t want used.

Guideline 5 When you get stuck, alternate between looking for an algorithm or a reduction. Sometimes the reason you cannot prove hardness is that there exists an efficient algorithm that will solve your problem! Techniques such as dynamic programming or reducing to polynomial time graph problems sometimes yield surprising polynomial time algorithms. Whenever you can’t prove hardness, it likely pays to alter your opinion occasionally to keep yourself honest.

3-Satisfiability Instance: A collection of clause C where each clause contains exactly 3 literals, boolean variable v. Question: Is there a truth assignment to v so that each clause is satisfied? Note: This is a more restricted problem than normal SAT. If 3-SAT is NP-complete, it implies that SAT is NP- complete but not visa-versa, perhaps longer clauses are what makes SAT difficult? 1-SAT is trivial. 2-SAT is in P

3-SAT Theorem: 3-SAT is NP-Complete Proof: 1) 3-SAT is NP. Given an assignment, we can just check that each clause is covered. 2) 3-SAT is hard. To prove this, a reduction from SAT to 3-SAT must be provided. We will transform each clause independently based on its length.

Reducing SAT to 3-SAT Suppose a clause contains k literals: if k = 1 (meaning C i = {z 1 } ), we can add in two new variables v 1 and v 2, and transform this into 4 clauses: {v 1, v 2, z 1 } {v 1,  v 2, z 1 } {  v 1, v 2, z 1 } {  v 1,  v 2, z 1 } if k = 2 ( C i = {z 1, z 2 } ), we can add in one variable v 1 and 2 new clauses: {v 1, z 1, z 2 } {  v 1, z 1, z 2 } if k = 3 ( C i = {z 1, z 2, z 3 } ), we move this clause as-is.

Continuing the Reduction…. if k > 3 ( C i = {z 1, z 2, …, z k } ) we can add in k - 3 new variables (v 1, …, v k-3 ) and k - 2 clauses: {z 1, z 2, v 1 } {  v 1, z 3, v 2 } {  v 2, z 4, v 3 } … {  v k-3, z k-1, z k } Thus, in the worst case, n clauses will be turned into n 2 clauses. This cannot move us from polynomial to exponential time. If a problem could be solved in O(n k ) time, squaring the number of inputs would make it take O(n 2k ) time.

The Independent Set Problem Problem: Given a graph G = (V, E) and an integer k, is there a subset S of at least k vertices such that no e  E connects two vertices that are both in S ? Theorem: Independent Set is NP-complete. Proof: Independent Set is in NP - given any subset of vertices, we can count them, and show that no vertices are connected. How can we prove that it is also a hard problem?

Reducing 3-SAT to Independent Set For each variable, we can create two vertices: … v 1  v 1 v 2  v 2 v 3  v 3 v n  v n If we connect a variable and its negation, we can be sure that only one of them is in the set. In all, we must have n vertices in S to be sure all variables are assigned. This will handle the binary true-false values; how can we also make sure that all of the clauses are fulfilled?

Including Clauses in the Reduction … v 1  v 1 v 2  v 2 v 3  v 3 v n  v n We can consider the clauses as triangles: v 3  v 7 v1v1  v 3  v 4 v2v2 v 5 v 6 v4v4 Each clause has at least one true value. On the other hand, at most one vertex in a triangle can be in the independent set. So how do we tie these together?

Tying it all together... v 1  v 1 v 2  v 2 v 3  v 3 v 5  v 5  v 1  v 3 v2 v2  v 2  v 4 v1 v1  v 4 v 5 v2v2 v 4  v 4 v 4 v 5 v3 v3 C ={  v 1, v 2,  v 3 }, {v 1,  v 2,  v 4 }, {  v 2,  v 4, v 5 }, {v 3, v 4, v 5 }

Hamiltonian Cycle Problem: Given a graph G, does it contain a cycle that includes all of the vertices in G? Theorem: Hamiltonian Cycle is NP-complete. Proof: Hamiltonian cycle is in NP - given an ordering on the vertices, we can show that and edge connecting each consecutive pair, and then the final vertex connecting back to the first We now have some graph problems to work with, but how can they really help us with this problem?

The Reduction For every edge in the Minimum Vertex Cover problem, we must reduce it to a “contraption” in the Hamiltonian Cycle Problem: v u u u v v

Observations…. u u v v u u v v u u v v There are only three possible ways that a cycle can include all of the vertices in this contraption.

u u u u Joining Contraptions u v v w w u x x All components that represent edges connected to u are strung together into a chain. If there are n vertices, then we will have n of these chains, all interwoven. The only other changes we need to make are at the ends of the chains. So what do we have?

u v v v u u u u w w u x x y y v v z z v vu yw xz

Tying the Chains Together If we want to know if its possible to cover the original graph using only k vertices, this would be the same as seeing if we can include all of the vertices using only k chains. How can we include exactly k chains in the Hamiltonian Cycle problem? We must add k extra vertices and connect each of them to the beginning and end of every chain. Since each vertex con only be included once, this allows k chains in the final cycle.

Beginning a Transform

The Final Transform