Upload
gemma-ware
View
34
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Theory of Computing. Lecture 16 MAS 714 Hartmut Klauck. Problems that are not in P. EXP: class of all L that can be decided by Turing machines that run in time at most exp (p(n)) for some polynomial p We will show later that EXP is not equal to P - PowerPoint PPT Presentation
Citation preview
Theory of Computing
Lecture 16MAS 714
Hartmut Klauck
Problems that are not in P
• EXP: class of all L that can be decided by Turing machines that run in time at most exp(p(n)) for some polynomial p
• We will show later that EXP is not equal to P– i.e., there are problems that can be solved in
exponential time, but not in polynomial time– These problems tend to be less interesting
Problems that are not in P?
• Definition:– Given an undirected graph, a clique is a set of vertices
Sµ V, such that all u,v2 S are connected– The language MaxClique is the set of all G,k, such that
G has a clique of size k (or more)• Simple Algorithm: enumerate all subsets of size k,
test if they form a clique• Time O(nk ¢ poly(k))• Since k is not constant this is not a polynomial time
algorithm
Clique
• MaxClique is in P if and only if thousands of other interesting problems are
• We don’t know an efficient algorithm for any of them
• Widely believed: there is no such algorithm
Fun Piece of Information
• A random graph is a graph generated by putting each possible edge into G with probability ½
• The largest clique in G has size dr(n)e or br(n)c for an explicit r(n) that is around (2+o(1)) log(n)
• With probability approaching 1• Hence on random graphs the max clique can be
found in sub-exponential time
The class NP
• NP: nondeterministic polynomial time
• NP is the class of problems where a `solution’ or proof can be verified in polynomial time
• Example: Given a set S of k vertices in G we can check in time O(k2) if S is a clique
NP
• Guess and check definition:• A language L is in NP, if there is a language R2P such that for all x: [There is a poly(|x|) length string y s.t. x#y2R] , x2 L
• y is called proof or witness
Example
• Max Flow:– Given a flow we can check that the flow is
maximal in linear time– But then we can find the max flow in polynomial
time anyway• Clique:– We can check a clique easily– Don’t know how to find a maximum clique fast
Example
• Non-Primality:– Given a natural number x, is it NOT a prime?– Any a,b such that ab=x prove that x is no prime
• as long as a,b are not 1
• How can we find a,b?– It is not known how to factor numbers efficiently
• Note: Checking primality/non-primality is even known to be in P (but not easy to see this)
Original definition of NP
• Definition: A nondeterministic Turing machine is defined like a Turing machine, but the transition function can now map to several successors– I.e., ±(q,a) is a subset of Q£¡£{left,stay,right}
• Interpretation: on input x there are many computations of the machine– At each step the computation can branch out– The machine accepts if there is at least one accepting
computation/branch– The machine `guesses’ a good computation
Nondeterministic TM
• The language LM accepted by a nondeterministic TM is the set of inputs x for which there is an accepting computation of M on x
• A language Lµ¡ * is accepted by a nondeterministic TM M if LM=L
Time
• The time used by an NTM M on x is the minimum number of steps M performs on x during any accepting computation on x– Time on inputs x not in L is not defined
• Time complexity of M: as before• Nondeterministic time complexity of L upper
bounded by g(n): as before
NP
• Definition: NP is the set of languages that are accepted by some nondeterministic Turing machine with polynomial time complexity
• Note: Both definitions [guess and check/NTM] are equivalent
Notes on NP
• Nondeterministic Turing machines are not a realistic model of computation
• They are interesting because NP contains many interesting problems
• Furthermore they formalize proof systems– NP is the set of languages L for which the statement x2L
can be verified efficiently– I.e., there is a powerful prover P, while the verifier V is a
polynomial time Turing machine. The prover provides a proof y
– x2 L iff there is a proof y such that x#y is accepted by V
P vs. NP
• Pµ NP by definition• Are there problems in NP that are not in P?
• 106 dollar reward from the Clay Math Institute
• Most researchers believe P NP• There is a large class of problems in NP that are
believed to be hard– NP-complete problems
P, NP, EXP
• P is a subset of NP by definition• NP is a subset of EXP:– Use guess and check definition– Enumerate all witnesses y and check– Time:• There are exp(poly(n)) many witnesses. Checking each
is time poly(n)
NP Completeness
• We will identify a class of problems that capture the hardness of NP
• P=NP if and only if one of these problems is in P– None are known to be in P
• These are the problems L in NP, such that every problem in NP can be solved by a deterministic polynomial time TM given a free subroutine that solves L
NP Completeness
• Informally, L reduces to S, if, given an `oracle’ that decides S for free, we can compute L in polynomial time (deterministically)
• NP-complete: L is in NP and all S in NP reduce to L (in polynomial time)– This means L is hardest in NP
Coping with hard problems
• Suppose we try to find an algorithm for a problem• Maybe it is NP-complete?– Reduce some known NP-complete problem to it– Then we know it’s hopeless
• If so, we can try– approximation– heuristics
• Don’t have to waste our time searching for an algorithm that (probably) does not exist