Download - Theory of Computing
![Page 1: Theory of Computing](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813611550346895d9d89dd/html5/thumbnails/1.jpg)
Theory of Computing
Lecture 16MAS 714
Hartmut Klauck
![Page 2: Theory of Computing](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813611550346895d9d89dd/html5/thumbnails/2.jpg)
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
![Page 3: Theory of Computing](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813611550346895d9d89dd/html5/thumbnails/3.jpg)
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
![Page 4: Theory of Computing](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813611550346895d9d89dd/html5/thumbnails/4.jpg)
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
![Page 5: Theory of Computing](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813611550346895d9d89dd/html5/thumbnails/5.jpg)
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
![Page 6: Theory of Computing](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813611550346895d9d89dd/html5/thumbnails/6.jpg)
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
![Page 7: Theory of Computing](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813611550346895d9d89dd/html5/thumbnails/7.jpg)
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
![Page 8: Theory of Computing](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813611550346895d9d89dd/html5/thumbnails/8.jpg)
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
![Page 9: Theory of Computing](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813611550346895d9d89dd/html5/thumbnails/9.jpg)
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)
![Page 10: Theory of Computing](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813611550346895d9d89dd/html5/thumbnails/10.jpg)
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
![Page 11: Theory of Computing](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813611550346895d9d89dd/html5/thumbnails/11.jpg)
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
![Page 12: Theory of Computing](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813611550346895d9d89dd/html5/thumbnails/12.jpg)
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
![Page 13: Theory of Computing](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813611550346895d9d89dd/html5/thumbnails/13.jpg)
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
![Page 14: Theory of Computing](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813611550346895d9d89dd/html5/thumbnails/14.jpg)
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
![Page 15: Theory of Computing](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813611550346895d9d89dd/html5/thumbnails/15.jpg)
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
![Page 16: Theory of Computing](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813611550346895d9d89dd/html5/thumbnails/16.jpg)
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)
![Page 17: Theory of Computing](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813611550346895d9d89dd/html5/thumbnails/17.jpg)
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
![Page 18: Theory of Computing](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813611550346895d9d89dd/html5/thumbnails/18.jpg)
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
![Page 19: Theory of Computing](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813611550346895d9d89dd/html5/thumbnails/19.jpg)
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