1 / 12

CS 332: Algorithms

CS 332: Algorithms. NP Completeness Continued. Homework 5. Extension: due midnight Monday 22 April. Review: Tractibility. Some problems are undecidable : no computer can solve them E.g., Turing’s “Halting Problem” We don’t care about such problems here; take a theory class

saxon
Télécharger la présentation

CS 332: Algorithms

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. CS 332: Algorithms NP Completeness Continued David Luebke 13/11/2014

  2. Homework 5 • Extension: due midnight Monday 22 April David Luebke 23/11/2014

  3. Review: Tractibility • Some problems are undecidable: no computer can solve them • E.g., Turing’s “Halting Problem” • We don’t care about such problems here; take a theory class • Other problems are decidable, but intractable: as they grow large, we are unable to solve them in reasonable time • What constitutes “reasonable time”? David Luebke 33/11/2014

  4. Review: P • Some problems are provably decidable in polynomial time on an ordinary computer • We say such problems belong to the set P • Technically, a computer with unlimited memory • How do we typically prove a problem  P? David Luebke 43/11/2014

  5. Review: NP • Some problems are provably decidable in polynomial time on a nondeterministic computer • We say such problems belong to the set NP • Can think of a nondeterministic computer as a parallel machine that can freely spawn an infinite number of processes • How do we typically prove a problem  NP? • Is P  NP? Why or why not? David Luebke 53/11/2014

  6. Review: P And NP Summary • P = set of problems that can be solved in polynomial time • NP = set of problems for which a solution can be verified in polynomial time • PNP • The big question: Does P = NP? David Luebke 63/11/2014

  7. Review: NP-Complete Problems • The NP-Complete problems are an interesting class of problems whose status is unknown • No polynomial-time algorithm has been discovered for an NP-Complete problem • No suprapolynomial lower bound has been proved for any NP-Complete problem, either • Intuitively and informally, what does it mean for a problem to be NP-Complete? David Luebke 73/11/2014

  8. Review: Reduction • A problem P can be reduced to another problem Q if any instance of P can be rephrased to an instance of Q, the solution to which provides a solution to the instance of P • This rephrasing is called a transformation • Intuitively: If P reduces in polynomial time to Q, P is “no harder to solve” than Q David Luebke 83/11/2014

  9. An Aside: Terminology • What is the difference between a problem and an instance of that problem? • To formalize things, we will express instances of problems as strings • How can we express a instance of the hamiltonian cycle problem as a string? • To simplify things, we will worry only about decision problems with a yes/no answer • Many problems are optimization problems, but we can often re-cast those as decision problems David Luebke 93/11/2014

  10. NP-Hard and NP-Complete • If P is polynomial-time reducible to Q, we denote this P p Q • Definition of NP-Hard and NP-Complete: • If all problems R  NP are reducible to P, then P is NP-Hard • We say P is NP-Complete if P is NP-Hard and P  NP • Note: I got this slightly wrong Friday • If P p Q and P is NP-Complete, Q is alsoNP- Complete David Luebke 103/11/2014

  11. Why Prove NP-Completeness? • Though nobody has proven that P != NP, if you prove a problem NP-Complete, most people accept that it is probably intractable • Therefore it can be important to prove that a problem is NP-Complete • Don’t need to come up with an efficient algorithm • Can instead work on approximation algorithms David Luebke 113/11/2014

  12. Proving NP-Completeness • What steps do we have to take to prove a problem Pis NP-Complete? • Pick a known NP-Complete problem Q • Reduce Q to P • Describe a transformation that maps instances of Q to instances of P, s.t. “yes” for P = “yes” for Q • Prove the transformation works • Prove it runs in polynomial time • Oh yeah, prove P NP (What if you can’t?) David Luebke 123/11/2014

More Related