Computational Complexity Shirley Moore CS4390/5390 Fall 2013 August 27, 2013
Learning Outcomes After completing this lesson, you should be able to – Define the complexity classes P and NP – Define NP-complete – Discuss implications of computational complexity for cryptography – Apply logical proof techniques in the context of computational complexity
Agenda Preliminaries (15 min) Hamiltonian cycle problem (20 min) P vs. NP (15 min) In-class exercise (20 min) Wrapup and homework assignment (10 min)
Preliminaries Course website: Syllabus Pre-course survey
Hamiltonian Cycle Problem Input: A graph G = (V,E) Problem: Does an ordering of the vertices along edges in the graph exist such that each vertex is visited exactly once? In-class exercise (see handout)
P vs. NP Problem Major unsolved problem in computer science Problem statement: Can every problem whose solution can be verified in polynomial time by a deterministic algorithm also be solved in polynomial time by a deterministic algorithm? One of the seven Millennium Prize Problems selected by the Clay Mathematics Institute to give a $1,000,000 prize for the first correct solution (one already solved) – In-class reading and discussion questions (see handout)
NP-Complete Problems Definition: A problem L is NP-complete if and only if: – L is in NP – for every problem L’ in NP, there is a polynomial-time reduction from L’ to L Theorem: Let L be an NP-complete problem. Then P = NP if and only if L is in P. – Proof: In-class exercise What implication does the above theorem have for attacking the P vs. NP problem?
Homework Read “The Status of the P Versus NP Problem” by Lance Fortnow and come to class prepared to discuss – status-of-the-p-versus-np-problem/fulltext status-of-the-p-versus-np-problem/fulltext Read “An NP-complete set” and “More NP- Complete Problems” from heuristic/text/contents.html heuristic/text/contents.html – Attempt to prove that the Hamiltonian Cycle problem is NP-complete