Some 15-251
Great Theoretical Ideas
in Computer Science
for
Complexity Theory:
The P vs NP question
Lecture 27 (Nov 23, 2010)
$$$
The $1M Questions
The Clay Mathematics Institute
Millenium Prize Problems
1. Birch and Swinnerton-Dyer Conjecture
2. Hodge Conjecture
3. Navier-Stokes Equations
4. P vs NP
5. Poincar Conjecture solved!
6. Riemann Hypothesis
7. Yang-Mills Theory
The P versus NP problem
Is perhaps the biggest open problem
in computer science (and mathematics!) today.
(Even featured in the TV show NUMB3RS)
But what is the P-NP problem?
Sudoku
3x3x3
Sudoku
3x3x3
Sudoku
4x4x4
Sudoku
4x4x4
Sudoku
Suppose it takes you S(n) to
solve n x n x n
V(n) time to verify the solution
Fact: V(n) = O(n2 x n2)
Question: is there some
...
constant c such that
S(n) nc ?
nxnxn
P vs NP problem
Does there exist an
algorithm for n x n x n
Sudoku that runs in
time p(n) for some
polynomial p( ) ?
...
nxnxn
The P versus NP problem
(informally)
Is proving a theorem much more difficult
than checking the proof of a theorem?
Lets start at the beginning
Hamilton Cycle
Given a graph G = (V,E), a cycle that visits all
the nodes exactly once
The Problem HAM
Input: Graph G = (V,E)
Output: YES if G has a Hamilton cycle
NO if G has no Hamilton cycle
The Set HAM
HAM = { graph G | G has a Hamilton cycle }
Circuit-Satisfiability
Input: A circuit C with one output
Output: YES if C is satisfiable
NO if C is not satisfiable
AND NOT
AND
The Set SAT
SAT = { all satisfiable circuits C }
Bipartite Matching
Input: A bipartite graph G = (U,V,E)
Output: YES if G has a perfect matching
NO if G does not
The Set BI-MATCH
BI-MATCH = { all bipartite graphs that have a
perfect matching }
Sudoku
Input: n x n x n sudoku instance
Output: YES if this sudoku has a solution
NO if it does not
The Set SUDOKU
SUDOKU = { All solvable sudoku instances }
Decision Versus Search Problems
Decision Problem Search Problem
YES/NO answers
Find a Hamilton cycle
Does G have a in G if one exists,
Hamilton cycle? else return NO
Find a 3-coloring of
Can G be
G if one exists, else
3-colored ?
return NO
Reducing Search to Decision
Given an algorithm for decision Sudoku,
devise an algorithm to find a solution
Idea:
Fill in one-by-one and
use decision algorithm
Reducing Search to Decision
Given an algorithm for decision HAM,
devise an algorithm to find a solution
Idea:
Find the edges of the
cycle one by one
Decision/Search Problems
Well study decision problems because
they are almost the same (asymptotically)
as their search counterparts
Polynomial Time and
The Class P of
Decision Problems
What is an efficient algorithm?
Is an O(n) algorithm efficient?
polynomial time
How about O(n log n)?
O(n2) ? O(nc) for some
constant c
O(n10) ?
O(nlog n) ?
non-polynomial
O(2n) ? time
O(n!) ?
Does an algorithm
running in O(n100) time
count as efficient?
We consider non-polynomial time
algorithms to be inefficient.
And hence a necessary condition for an
algorithm to be efficient is that it should
run in poly-time.
Asking for a poly-time algorithm for a
problem sets a (very) low bar when asking
for efficient algorithms.
The question is: can we achieve even this
for 3-coloring?
SAT?
Sudoku?
HAM?
The Class P
We say a set L * is in P if there is
a program A and
a polynomial p( )
such that for any x in *,
A(x) runs for at most p(|x|) time
and answers question is x in L? correctly.
The Class P
The class of all sets L that can be
recognized in polynomial time.
The class of all decision problems that
can be decided in polynomial time.
Why are we looking only at sets *?
What if we want to work with graphs or
boolean formulas?
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|) = (|x|).
Languages/Functions in P?
HAM, SUDOKU, SAT are not known to be in P
CO-HAM = { G | G does NOT have a
Hamilton cycle}
CO-HAM P if and only if HAM P
Onto the new class, NP
Verifying Membership
Is there a short proof I can give you for:
G HAM?
G BI-MATCH?
C SAT?
G CO-HAM?
NP
A set L NP
if there exists an algorithm A and a
polynomial p( )
For all x L For all x L
there exists y with For all y with
|y| p(|x|) |y| p(|x|)
such that A(x,y) = YES we have A(x,y) = NO
in p(|x|) time in p(|x|) time
Recall the Class P
We say a set L * is in P if there is
a program A and
a polynomial p()
such that for any x in *,
A(x) runs for at most p(|x|) time
and answers question is x in L? correctly.
can think of A as proving that x is in L
NP
A set L NP
if there exists an algorithm A and a
polynomial p( )
For all x L For all x L
there exists a y with For all y with
|y| p(|x|) |y| p(|x|)
such that A(x,y) = YES Such that A(x,y) = NO
in p(|x|) time in p(|x|) time
Example: HAM NP
Let A(x,y) be a program that takes two
strings x and y, and returns YES if the
following conditions hold otherwise it
returns NO.
y is a representation of a labeled graph
x is a representation of a cycle with the
same labeled vertices as y
every edge of the cycle x is in the graph y
(All of these conditions can be easily checked in linear time)
By our definition, this proves HAM NP
The Class NP
The class of sets L for which there exist
short proofs of membership
(of polynomial length)
that can be quickly verified
(in polynomial time).
Recall: A doesnt have to find these proofs y; it just needs to be
able to verify that y is a correct proof.
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.
Languages/Functions in NP?
G HAM? (Yes, already saw)
G BI-MATCH? (is in P)
G SAT? (Yes. explain it)
G CO-HAM? (not clear)
Proof that something is in NP is often trivial.
Summary: P versus NP
Set L is in P if membership in L can be
decided in poly-time.
Set 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: Is NP P ?
Why Care?
NP Contains Lots of Problems
We Dont 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
OK, OK, I care...
But where do I begin
if I want to reason about
the P=NP problem?
How can we prove that
NP P?
I would have to show that
every set in NP has a
polynomial time algorithm
How do I do that?
It may take a long time!
Also, what if I forgot one of
the sets in NP?
We can describe
just one problem L in NP,
such that
if this problem L is in P,
then NP P.
It is a problem that can
capture all other problems
in NP.
The Hardest Set in NP
Sudoku
Sudoku has a
polynomial time
algorithm
if and only if
P = NP
...
nxnxn
The Hardest Sets in NP
Sudoku Clique
SAT Independent-Set
3-Colorability HAM
These problems are all
polynomial-time equivalent.
I.e., each of these can be reduced to any
of the others in poly-time
Poly-time reducible to each other
Reducing problem Y to problem X in poly-time
F is poly-time
computable
Answer
Instance IY of Instance
IX = F(IY ) of
problem Y problem X
Answer
Oracle for Oracle for
problem Y problem X
How do you prove these
are the hardest?
Theorem [Cook/Levin]:
SAT is one language in NP, such that if we
can show SAT is in P, then we have shown
NP P.
SAT is a language in NP that can capture all
other languages in NP.
We say SAT is NP-complete.
Last lecture
3-colorability Circuit Satisfiability
AND NOT
AND
Last lecture
SAT and 3COLOR: Two problems that seem
quite different, but are substantially the
same.
Also substantially the same as CLIQUE and
INDEPENDENT SET.
If you get a polynomial-time algorithm for one,
you get a polynomial-time algorithm for ALL.
Proving a problem Q is NP-Complete
1. Prove that Q is in NP.
2. Give a reduction that allows an
instance of a known NP-complete
problem to be reduced to an instance
of Q.
Examples of such reductions were given
in the last lecture e.g. reducing SAT to
3-coloring.
Any language in NP
can be reduced
(in polytime to)
an instance of
SAT hence SAT is NP-complete
can be reduced
(in polytime to)
an instance of
3COLOR hence 3COLOR is NP-complete
Definition of P and NP
Definition of problems
SAT, 3-COLOR, HAM,
SUDOKU, BI-MATCH
SAT, 3-COLOR, HAM, SUDOKU
all essentially equivalent.
Heres What
Solve any one in poly-time
You Need to solve all of them in poly-time
Know