Presentation on theme: "NP-Complete William Strickland COT4810 Spring 2008 February 7, 2008."— Presentation transcript:
NP-Complete William Strickland COT4810 Spring 2008 February 7, 2008
Overview Related Concepts and Terms Origins and Terminology of NP-C NP-C Facts Relations of NP NP Complete Proof Steps Working with NP-Complete Future of NP-Complete
Related Concepts and Terms Non-deterministic Machine Accelerates problem solution over deterministic machine. Branches computation at choice points. Machine can process infinite number of choices in parallel. Usually ‘implemented’ as Turing machine. Deterministic machine is non-deterministic without choices. Problem characteristics Problem complexity equals best known solution complexity. Intractable if no polynomial solution. Is complete if it is hardest member of its own class.
Origins and Terminology of NP-C Related Concepts and Terms Cook’s Contributions Karp’s Refinements Levin and modern terminology
Cook’s Contributions Concept of NP-complete originates with Steven Cook in 1971 Class P and NP defined: P defined as problem that can be solved in polynomial time on deterministic machine. NP defined as problems that have Polynomial solutions on non- deterministic machines. Proved Satisfiability problem to be hardest in NP class. Demonstrated reductions using polynomial time Turing machine.
Karp’s Refinements In 1972, Richard Karp defined NP-complete as we know it today Simplified reduction to polynomial transformation Many more NP-complete problems proven Created the “Polynomial Complete” class (now known as NP-C)
Levin and modern terminology In 1973, Leonid Levin provided showed alternate theorem similar to Cook’s. Largely due to efforts of Donald Knuth modern terms are accepted in 1974. NP-complete Coined. NP-hard coined to describe problems at least as hard as NP- Complete. In 1978, Strong NP-C coined by Michael Garey and Donald Johnson as problems still NP-C when using unary language.
NP-C Facts Hardest problems in NP class. Any NP problem can be reduced to NP-C problem in polynomial time. Any NP-Complete problem can be reduced to any other NP-C problem in polynomial time. If Polynomial solution found for one, there is polynomial solution to all NP problems and P=NP. If NP problem proven to be intractable then NP-C intractable and P≠NP.
Relations of NP P NP-CcoNP-C coNPNP *Assuming P≠NP and NP≠coNP Adapted from [Garey 157]
NP-Complete Proof Steps Four steps to prove is NP-C Show is NP. Select known NP-C. Transform known NP-C to NP-C in question. Prove transformation is polynomial. Typical proof if is by restriction; show known NP-C as special case.
Working with NP-Complete 5 methods to find solutions to NP-complete in reasonable time Special case – determine if special case, if so attempt to find polynomial solution to this case only. Dynamic programming and Branch-and-Bound – search intelligently for a solution in exponential set. Probabilistic – write the algorithm be written in such a way as the common case will have polynomial time even if other cases remain exponential. Approximation – find acceptable approximation of the answer be found in polynomial time. Heuristic – sacrifice provable accuracy for fast generation of a ‘good’ approximate solution.
Future of NP-Complete If proven intractable: NP-C based cryptography validated. Continued efforts on approximation algorithms. More approximation support in hardware. If polynomial solution found: All NP problems (most practical problems) are polynomial. One algorithm solves all solution to almost any problem. Hardware to accelerate algorithm. NP-C based cryptography no longer viable.
References Blum, Lenore, et al. Complexity and Real Computation. New York: Springer-Verlag, 1998 Dewdney, A.K.. The New Turing Omnibus. 1989. 1st. New York: Henry Holt and Company, 1993. Garey, Michael R., and Johnson, David S. Computers and Intractability. New York: W. H. Freeman and Company, 1979. Mehlhoun, Kurt. Data Structures and Algorithms. Graphing Algorithms and NP-Completeness 2. Berlin: Springer-Verlag, 1984. Rothe, Jörg. Complexity Theory and Cryptography. Berlin: Springer-Verlag, 2005. Smith, Carl H. A Recursive Introduction to Theory of Computation. New York: Springer-Verlag, 1994. Wilf, Herbert S. Algorithms and Complexity. Englewood Cliffs, New York: Prentice-Hall, 1986.
Questions: 1)The Selection sort algorithm solves the sequential sorting problem. True or False, This problem is a NP class problem. 2)Using what technique can an algorithm always produce the exact solution to a NP-C problem, yet average polynomial time.