CSCI 2670 Introduction to Theory of Computing November 29, 2005.
-
Upload
reynold-tate -
Category
Documents
-
view
217 -
download
1
Transcript of CSCI 2670 Introduction to Theory of Computing November 29, 2005.
November 29, 2005
The class NP
Definition: A verifier for a language A is an algorithm V, whereA={w|V accepts <w,c> for some
string c}The string c is called a certificate of membership in A.
Definition: NP is the class of languages that have polynomial-time verifiers.
November 29, 2005
Who wants $1,000,000?
• In May, 2000, the Clay Mathematics Institute named seven open problems in mathematics the Millennium Problems– Anyone who solves any of these
problems will receive $1,000,000– Proving whether or not P equals NP is
one of these problems
November 29, 2005
Solving NP problems
• The best-known methods for solving problems in NP that are not known to be in P take exponential time– Brute force search
November 29, 2005
NP-completeness
• A problem C is NP-complete if finding a polynomial-time solution for C would imply P=NP
Definition: A language B is NP-complete if it satisfies two conditions:
1. B is in NP, and2. Every A in NP is polynomial time
reducible to B
November 29, 2005
An NP-complete problem
• A formula is Boolean if each of its variables can be assigned the values TRUE (1) or FALSE (0)
• A Boolean formula is satisfiable if there is some assignment of values that results in the formula evaluating to TRUE
SAT: Is a given Boolean formula satisfiable?
• SAT is NP-complete– We will go over the proof next week
November 29, 2005
Examples
• (x y) ( x y)– Satisfiable – e.g., x = y = 1
• ((xy) (xz)) ((xy) (yz))– Satisfiable – e.g., x = 0, y = z = 1
• ((xy) (xz)) ((xy) (yz))– Unsatisfiable
November 29, 2005
Proving a problem is NP-complete
• A problem C is NP-complete if finding a polynomial-time solution for C would imply P=NP
• If a polynomial-time solution is found for C, then that solution can be used to find a polynomial-time solution for any other problem in NP– What does this remind you of?– Reductions!
November 29, 2005
Reductions and NP-completeness
• If we can prove an NP-complete problem C can be polynomially reduced to a problem A, then we’ve shown A is NP-complete– A polynomial-time solution to A would
provide a polynomial-time solution to C, which would imply P=NP
November 29, 2005
Polynomial functions
Definition: A function f:Σ*Σ* is a polynomial time computable function if some polynomial time Turing machine M exists that halts with just f(w) on its tape, when started on any input w.
November 29, 2005
Polynomial reductions
Definition: Language A is polynomial-time reducible to language B, written A ≤P B, if a polynomial time computable function f:Σ*Σ* exists, where for every w
w A iff f(w) Bf
f
November 29, 2005
Reductions & NP-completeness
Theorem: If A ≤P B and BP, then AP.
Proof: Let M be the polynomial time algorithm that decides B and let f be the polynomial reduction from A to B. Consider the TM N
N = “On input w1. Compute f(w)2. Run M on f(w) and output M’s result”
Then N decides A in polynomial time.
November 29, 2005
Implications of NP-completeness
Theorem: If B is NP-complete and BP, then P = NP.
Theorem: If B is NP-complete and B≤PC for some C in NP, then C is NP-complete
November 29, 2005
Showing a problem in NP-complete
• Two steps to proving a problem L is NP-complete– Show the problem is in NP
• Demonstrate there is a polynomial time verifier for the problem
– Show some NP-complete problem can be polynomially reduced to L
November 29, 2005
NP-completeness proof
• LPATH = {<G, a, b, k> | G is a graph with nodes a and b and a simple path of length k from a to b}– A simple path has no repeated nodes
• We will use the fact that the following language is NP-complete– UHAMPATH = {<G,a,b> | G is a graph
with a Hamiltonian path from a to b}• A Hamiltonian path visits each node
exactly once
November 29, 2005
LPATH is NP-complete
• First show LPATH is in NP– Can we verify a solution to LPATH in
polynomial time?• Yes• Check the certificate is a simple length-k
path from a to b
November 29, 2005
Reduction from UHAMPATH
R = “On input <G,a,b>, where G = <V,E> is a graph with nodes a and b
1. If |V| ≤ 1 reject2. Check if <G,a,b,|V|-1> is in
LPATH”
November 29, 2005
Two questions
• Need to demonstrate that <Ga,b> is in UHAMPATH iff <G,a,b,|V|-1> is in LPATH– This is clear from the definitions of
UHAMPATH and LPATH
• Need to demonstrate that the reduction is in polynomial time– The reduction takes O(|V|) time (to
evaluate |V|
November 29, 2005
Insight
• We know (because I said so) that UHAMPATH is NP-complete– Therefore, a polynomial time solution
to UHAMPATH would imply P = NP• We showed that we can convert
UHAMPATH to LPATH in polynomial time– Therefore, a polynomial solution to
LPATH would provide a polynomial solution to UHAMPATH
• LPATH must be NP-complete
November 29, 2005
Summary
• To show a language L is NP-complete
1. Demonstrate L is in NP2. Find a language C that is known to
be NP-complete3. Create a function f from C to L4. Demonstrate that if x is in C then
f(x) is in L5. Demonstrate that if f(x) is in L then
x is in C6. Demonstrate f is computable in
polynomial time