np completeness
play

NP-Completeness Greg Plaxton Theory in Programming Practice, Spring - PowerPoint PPT Presentation

NP-Completeness Greg Plaxton Theory in Programming Practice, Spring 2004 Department of Computer Science University of Texas at Austin Decision Problems A decision problem is a computational problem where the answer to any given instance of


  1. NP-Completeness Greg Plaxton Theory in Programming Practice, Spring 2004 Department of Computer Science University of Texas at Austin

  2. Decision Problems • A decision problem is a computational problem where the answer to any given instance of the problem is either “yes” or “no” – Instances of the problem with a “yes” answer are called positive instances – Instances of the problem with a “no” answer are called negative instances • Here are some examples: – Given a text string t and a pattern string p , does p occur in t ? – Given an instance of an LP, and a real value B , is there a feasible solution to the LP for which the value of the objective function is at least B ? – Maximum Independent Set: Given an undirected graph G and a nonnegative integer k , does G contain a set U of at least k vertices such that no two vertices in U are connected by an edge? Theory in Programming Practice, Plaxton, Spring 2004

  3. Polynomial-Time Algorithms • A polynomial-time algorithm is an algorithm with worst-case complexity that is upper bounded by some polynomial in the input size • Virtually all of the algorithms studied in this course run in polynomial time – Can you think of an exception? Theory in Programming Practice, Plaxton, Spring 2004

  4. The Class P • The acronym “P” stands for “polynomial time” • A decision problem is in the class P if there is a polynomial-time algorithm to determine the answer (“yes” or “no”) for any given instance Theory in Programming Practice, Plaxton, Spring 2004

  5. The Class NP • The acronym “NP” stands for nondeterministic polynomial time • There are several equivalent ways to formally define the class NP • One approach involves the notion of nondeterministic computation, thereby justifying the choice of the acronym NP • We will instead define the class NP in terms of polynomial-time verifiability Theory in Programming Practice, Plaxton, Spring 2004

  6. The Class NP • A decision problem X is in NP if for every positive instance I of X , there is a short and polynomial-time verifiable certificate proving that I is a positive instance – The certificate is just a string (particular to the instance I ) – By “short” we mean that the size of the certificate is bounded by some polynomial in the size of the instance I – By “polynomial-time verifiable” we mean that there is a polynomial- time algorithm that can check whether any given string is indeed a certificate proving that I is a positive instance • We will discuss the notion of “polynomial-time verifiability” in greater detail momentarily • But first let’s look at a few examples of problems in NP Theory in Programming Practice, Plaxton, Spring 2004

  7. Examples of Problems in NP • All decision problems in P also belong to NP – We can use the empty string as the short certificate – The polynomial-time verifier can simply run the polynomial-time decision procedure for determining whether the given instance is a positive instance • Satisfiability: Given a propositional formula f (such as the input to the Davis-Putnam procedure discussed earlier in the course), is f satisfiable? • Clique: Given an undirected graph G , does G contain a clique (i.e., a completely interconnected set of vertices) of size at least k ? • Hamiltonian Cycle: Given an undirected graph G , does G contain a simple cycle visiting all the vertices? Theory in Programming Practice, Plaxton, Spring 2004

  8. Polynomial-Time Verification • Let X be a decision problem • We say that X is polynomial-time verifiable if there exists a polynomial- time algorithm A with the following properties – The input to A consists of an instance I of X and a string s such that the length of s is bounded by some polynomial in the size of I – The output of A is either “yes” or “no” – If I is a negative instance of X , then the output of A is “no”, regardless of the value of s – If I is a positive instance of X , then there is at least one choice of s for which A outputs “yes” • We think of A as the “verifier” and s as a purported “short proof” that the given instance I is a positive instance of X Theory in Programming Practice, Plaxton, Spring 2004

  9. The Complexity of Problems in NP • Since problems in P also belong to NP, some problems in NP are “easy” in the sense that they are known to be solvable by a polynomial-time algorithm • It is an open problem whether all problems in NP can be solved in polynomial time, i.e., whether NP is equal to P • It is widely conjectured that some problems in NP require exponential time, so that NP is not equal to P • Still, the theory of NP-completeness, to be discussed next, sheds considerable light on the structure of the class NP Theory in Programming Practice, Plaxton, Spring 2004

  10. NP-Completeness • A decision problem X in NP is defined to be NP-complete if existence of a polynomial-time algorithm for X implies that P equals NP, i.e., that every problem in NP admits a polynomial-time algorithm • Qualitatively, such an NP-complete problem is as hard to solve (up to polynomial factors) as any problem in NP • A priori, there is no particular reason to believe that NP-complete problems exist – An alternative hypothesis might be that there is no such “hardest” problem in NP – Instead, we might imagine that there are two or more problems in NP of incomparable hardness – In fact, NP-complete problems exist, as discussed on the next slide Theory in Programming Practice, Plaxton, Spring 2004

  11. The Cook-Levin Theorem • The satisfiability problem is NP-complete • The proof of this theorem is not outrageously long but is beyond the scope of the present course Theory in Programming Practice, Plaxton, Spring 2004

  12. Other NP-Complete Problems • Given that Cook-Levin have done the “heavy lifting” of establishing that satisfiability is NP-complete, we can now use the following simpler approach to establish the NP-completeness of a given problem X (that actually is NP-complete) – We still need to argue that X is in NP; Cook-Levin doesn’t help us here but in practice this step tends to be easy – We then prove that a polynomial-time algorithm for X could be used as a subroutine to obtain a polynomial-time algorithm for satisfiability (or some other known NP-complete problem) • The literature contains literally thousands of examples of problems that have been proven to be NP-complete in the above manner • The maximum independent set, maximum clique, and Hamiltonian cycle problems mentioned earlier in this lecture are all examples of NP-complete problems Theory in Programming Practice, Plaxton, Spring 2004

  13. NP-Hardness • Thus far we have restricted our discussion to decision problems • A problem X is said to be NP-hard if a polynomial-time algorithm for X implies that P equals NP – An NP-hard problem need not be a decision problem – An NP-hard decision problem need not be in NP • There is a significant body of literature devoted to the design and analysis of provably-good approximation algorithms for NP-hard problems – Interestingly, the approximation versions of NP-complete problems can differ dramatically in terms of approximability Theory in Programming Practice, Plaxton, Spring 2004

  14. Other Complexity Classes • Complexity theorists have defined a wide variety of complexity classes • Some of these classes properly contain NP, i.e., they include problems that are harder than NP-complete problems • Some of these classes refine the class P, i.e., they define problems that are in some sense easier than the hardest problems in P (the P-complete problems) • Still, the P versus NP question is considered the central problem in complexity theory – It is felt to best represent the boundary between “tractable” and “intractable” problems Theory in Programming Practice, Plaxton, Spring 2004

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend