E N D
1. P vs NP:what is efficient computation?
2. A Graph Named “Gadget”
3. NODES or VERTICES
4. EDGES
5. K-COLORING We define a k-coloring of a graph:
Each node get colored with one color
At most k different colors are used
If two nodes have an edge between them, then they must have different colors
A graph is called k-colorable iff it has a k-coloring
Sometimes also called “proper” colorings.
6. A 2-CRAYOLA Question! Is Gadget 2-colorable?
7. A 2-CRAYOLA Question! Is Gadget 2-colorable?
8. Is Gadget 3-colorable?
A 3-CRAYOLA Question!
9. Is Gadget 3-colorable?
A 3-CRAYOLA Question!
10. Is Gadget 3-colorable?
A 3-CRAYOLA Question!
11. Is Gadget 3-colorable?
A 3-CRAYOLA Question!
12. A 3-CRAYOLA Question.
13. A 3-CRAYOLA Question.
14. 3-Coloring Is Decidable by brute force
Try out all 3n colorings until you determine if G has a 3-coloring.
Membership in 3COLOR is not undecidable.
But is it efficient to decide this?
15. What is an efficient algorithm? Is an O(n) time algorithm efficient?
How about O(n log n)?
O(n2) ?
O(n10) ?
O(nlog n) ?
O(2n) ?
O(n!) ?
O(222n) ?
20. The class P defined in the 50’s. Paths, Trees and Flowers, Jack Edmonds, 1965.
21. Paths, Trees and Flowers, Jack Edmonds, 1965.
An explanation is due on the use of the words "efficient algorithm"…I am not prepared to set up the machinery necessary to give it formal meaning, nor is the present context appropriate for doing this…For practical purposes the difference between algebraic and exponential order is more crucial than the difference between [computable and not computable]…
It would be unfortunate for any rigid criterion to inhibit the practical development of algorithms which are either not known or known not to conform nicely to the criterion… However, if only to motivate the search for good, practical algorithms, it is important to realize that it is mathematically sensible even to question their existence.
22. The Intrinsic Computational Difficulty of Functions, Alan Cobham, 1964.
For several reasons the class P seems a natural one to consider. For one thing, if we formalize the definition relative to various general classes of computing machines we seem always to end up with the same well-defined class of functions. Thus we can give a mathematical characterization of P having some confidence it characterizes correctly our informally defined class.
This class then turns out to have several natural closure properties, being closed in particular under explicit transformation, composition and limited recursion on notation (digit-by-digit recursion).
23. The class P Definition:
We say a language L µ S* is in P if there is a program A and
a polynomial p()
such that for any x in S*,
A (given x as input) runs for = p(|x|) time and answers question “is x in L?” correctly.
24. The class P Definition:
We say function F: S*?S* is in P if there is
a program A and
a polynomial p()
such that for any x in S*,
A (given x as input) runs for = p(|x|) time and A(x) = F(x).
25. The class P
The set of all languages L that can be recognized in polynomial time.
The set of functions that can be computed in polynomial time.
28. Languages/functions in P? Example 1:
CONN = {graph G: G is a connected graph}
Algorithm A1:
If G has n nodes, then run depth first search from any node, and count number of distinct nodes you see. If you see n nodes, G ? CONN, else not.
Time: p1(|x|) = T(|x|).
29. Languages/functions in P? Example 2:
2COLOR = {connected G : vertices of G can be 2-colored so
that adjacent nodes don’t have same color}
(Such colorings are called “proper colorings”.)
Program A2:
Pick a vertex and color it red.
Repeat { if uncolored node has both red and blue neighbors, abort. if uncolored node has some neighbors red, color it blue. if uncolored node has some neighbors blue, color it red. } If aborted, then G not 2-colorable, else have 2-coloring.
30. Languages/functions in P? Example 3:
3COLOR = {G : vertices of G can be 3-colored}
31. Languages/functions in P? And now a problem for Boolean circuits C:
32. Languages/functions in P? And, now a problem dealing with Combinational Circuits:
AND, OR, NOT, 0, 1 gates wired together with no feedback allowed.
34. CIRCUIT-SATISFIABILITY Given a circuit with n-inputs and one output, is there a way to assign 0-1 values to the input wires so that the output value is 1 (true)?
35. Example 4:
CIRCUIT-SATISFIABILITY
Given: A circuit with n-inputs and one output, is there a way to assign 0-1 values to the input wires so that the output value is 1 (true)?
“Brute force”: try all 2^n assignments. Exponential time… Languages/functions in P?
36. Onto the new class, NP
37. Recall the class P We say a language L µ S* is in P if there is a program A and
a polynomial p()
such that for any x in S*,
A (given x as input) runs for = p(|x|) time and answers question “is x in L?” correctly.
38. The new class NP We say a language L µ S* is in NP if there is a program A and a polynomial p()
such that for any x in S*,
If x ? L, there exists a “proof” y with |y| = p(|x|) A(x, y) runs for = p(|x|) time and answers question “x in L” correctly.
If x ? L, for all “proofs” y
A(x, y) answers “x not in L” correctly.
39. The class NP
The set of languages L for which there exist “short” proofs of membership (of polynomial length) that can “quickly” verified (in polynomial time).
Recall: A doesn’t have to find these proofs y; it just needs to be able to verify that y is a “correct” proof.
41. P ? NP
For any L in P, we can just take y to be the empty string and satisfy the requirements.
Hence, every language in P is also in NP.
$106 question: is NP ? P ?
42. Languages/functions in NP? Example 3:
3COLOR = {G : vertices of G can be 3-colored so}
Short proof y: a color Cv for each node v of G.
Verifier A: For each edge (u,v) in G, ensure Cu ? Cv Ensure only 3 colors were used.
Proof length: a list of n colors.
Verifier runs in time O(number of edges + number of nodes).
43. Languages/functions in NP? Example 4:
CIRCUIT-SAT
Given: A circuit with n-inputs and one output, is there a way to assign 0-1 values to the input wires so that the output value is 1 (true)?
Proof: satisfying assignment
Verifier just evaluates circuit.
44. Summary: P versus NP Language L is in P if membership in L can be decided in poly-time.
Language L is in NP if
each x in L has a short “proof of membership” that can be verified in poly-time.
Fact: P ? NP
Question: Does NP ? P ?
45. Hamilton Cycle
46. NP contains lots of problemswe don’t know to be in P
Classroom Scheduling
Packing objects into bins
Scheduling jobs on machines
Finding cheap tours visiting a subset of cities
Allocating variables to registers
Finding good packet routings in networks
Decryption
…
47. The $1,000,000 question
In order to celebrate mathematics in the new millennium, The Clay Mathematics Institute of Cambridge, Massachusetts (CMI) has named seven Prize Problems. The Scientific Advisory Board of CMI selected these problems, focusing on important classic questions that have resisted solution over the years. The Board of Directors of CMI designated a $7 million prize fund for the solution to these problems, with $1 million allocated to each.
Problem #4: The P vs NP problem.
50. The Magic Language: CIRCUITSAT
Example 6:
CSAT = {circuit C: C has at least 1 satisfying assignment}
If we can write a program A that
takes as input a circuit C
A(C) runs in time polynomial(|C|)
correctly decides if C is satisfiable
then
NP ? P
53. CIRCUIT-SAT and 3COLOR
Two problems that seem quite different, but are substantially the same
54. A Graph Named “Gadget”
63. You can quickly transform a method to decide 3-coloring into a method to decide circuit satifiability!
67. To show a language L is NP-complete To show L is NP-complete, we must
Show L is in NP
Reduce all problems in NP to L
or
Reduce some NP-complete language (e.g. C-SAT) to L
(by exhibiting a function F such that
C is satisfiable ? F(C) is in L)
68. NP-complete problems 3COLOR, SAT, bin-packing, classroom scheduling, many other problems NP-complete.
proofs follow above pattern.
NP-complete problems: “Hardest” problems in NP
(if any of these problems in P, then all NP in P.)
NP-complete problems come up all the time
Many problems of practical importance are NP-complete
If P ? NP, we will not have poly-time algorithms for them.
Right now, we don’t know.
69. Reference Computers and Intractablity:
A guide to the Theory of NP-completeness
by Mike Garey and David Johnson
70. References The NP-completeness Column: 1981-2005
by David Johnson
http://www.research.att.com/~dsj/columns/
The P versus NP problem
Official Description, Clay Institute
by Steve Cook
http://www.claymath.org/millennium/P_vs_NP/