190 likes | 295 Views
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
E N D
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 • 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)cfor 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,bsuch 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 Mif 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