15-453
FORMAL LANGUAGES,
AUTOMATA AND
COMPUTABILITY
NP =
NTIME(n )
k
kN
Theorem: L NP if there exists a poly-time
Turing machine V(erifier) with
L = { x | y(witness) |y| = poly(|x|) and V(x,y) accepts }
Proof:
(1) If L = { x | y |y| = poly(|x|) and V(x,y) accepts }
then L NP
Because we can guess y and then run V
(2) If L NP then
L = { x | y |y| = poly(|x|) and V(x,y) accepts }
Let N be a non-deterministic poly-time TM
that decides L and define V(x,y) to accept if y
is an accepting computation history of N on x
A language is in NP if and only if there
exist polynomial-length certificates for
membership to the language
SAT is in NP because a satisfying
assignment is a polynomial-length
certificate that a formula is satisfiable
NP = all the problems for which
once you have the answer it is easy
(i.e. efficient) to verify
P = NP?
If P = NP
Mathematicians would be out of a job
Cryptography as we know it would
not be possible (e.g. RSA)
AI program become perfect as
exhaustive search is efficient
If P = NP
Generation is as easy as recognition:
Being a chef is as easy as eating.
Writing symphonies is as easy as
listening to them.
Writing Shakespeare is as easy as
recognizing Shakespeare.
POLY-TIME REDUCIBILITY
A language A is polynomial time reducible to
language B, written A P B, if there is a
polynomial time computable function
f : * *, where for every w,
w A f(w) B
f is called a polynomial time reduction of A to B
NP Complete Problem:
hardest problem in NP
Intuitively, L is harder than L if L is
polynomial reducible to L.
NP Complete Problem: If such a problem
has an efficient algorithm (in P), then every
other problem also has efficient algorithm.
Theorem (Cook-Levin): SAT is NP-complete
Corollary: SAT P if and only if P = NP
Any thing in NP P 3SAT
NP
SAT
You can think of -> as easier than.
SAT is the hardest problem in NP.
NP-Complete Problems
3SAT
k-Clique
Vertex Cover
Independent Set
3SAT
Problem: Given a CNF where each clause
has 3 variables, decide whether it is
satisfiable or not.
(x1 x1 x2) (x1 x2 x2) (x1
x2 x2)
3SAT is NP Complete
3SAT = { | y such that y is a satisfying
assigment to and is in 3cnf }
How about 2SAT?
What we want to prove?
3SAT
NP
SAT
How to prove?
1. We can convert (in polynomial time) a
given SAT instance S into a 3SAT
instance S such that
If S is satisfiable, then S is satisfiable.
If S is satisfiable, then S is satisfiable.
Key Observation
x1 x2 x3 x4 x5 is satisfiable
if and only if
(x1 x2 z1) ( z1 x3 z2 )
( z2 x4 z3) ( z3 x4 x5)
is satisfiable.
Polynomial Time Reduction
Clause in SAT
x1
x 1 x2
x 1 x2 x3
Clauses in 3SAT
x 1 x1 x1
x1 x1 x2
x 1 x2 x3
x 1 x2 x3 x4
(x1 x2 z1) ( z1 x3 x4)
x 1 x2 x3 x4 x 5
(x1 x2 z1) ( z1 x3 z2)
( z2 x4 z3) ( z3 x4 x5)
CLIQUE
a
k-clique = complete subgraph of k nodes
K-Cliques
A K-clique is a set of K nodes with all K(K1)/2 possible edges between them
This graph contains a 4-clique
Assume a reasonable encoding of graphs
(example: the adjacency matrix is reasonable)
CLIQUE = { (G,k) | G is an undirected graph
with a k-clique }
Theorem: CLIQUE is NP-Complete
(1) CLIQUE NP
(2) 3SAT P CLIQUE
Brute Force Algorithm:
Try out all {n choose k} possible locations for the
k clique
CLIQUE is NP-Complete
NP
3SAT
CLIQUE
3SAT P CLIQUE
We transform a 3-cnf formula into (G,k) such that
3SAT (G,k) CLIQUE
The transformation can be done in time
that is polynomial in the length of
3SAT P CLIQUE
We transform a 3-cnf formula into (G,k) such that
3SAT (G,k) CLIQUE
If has m clauses, we create a graph with m
clusters of 3 nodes each, and set k=m
Each cluster corresponds to a clause.
Each node in a cluster is labeled with a literal
from the clause.
We do not connect any nodes in the same cluster
We connect nodes in different clusters whenever
they are not contradictory
(x1 x1 x2) (x1 x2 x2) (x1 x2 x2)
x1
c
l
a
u
s
e
x2
x2
x1
x1
x1
x2
x2
x2
#nodes = 3(# clauses)
k = #clauses
(x1 x1 x1) (x1 x1 x2)
(x2 x2 x2) (x2 x2 x1)
x1
x1
x2
x1
x2
x1
x2
x1
x2
x2
x2
x1
Independent Set
An independent set is a set of nodes with no
edges between them
This graph
contains an
independent
set of size 3
Independent Set
G(V,E)
Problem: Given a graph G and k, is
there a size k independent set?
Complement of G
Given a graph G, let G*, the complement of G, be
the graph such that
two nodes are connected in G* if and only if the
corresponding nodes are not connected in G
G*
Key Observation
For a graph G, vertex set S is an
independent set if and only if S is clique in
G*.
Let G be an n-node graph
Is there size clique in G?
Is there size k
independent
set in G*?
VERTEX COVER
a
a
d
c
c
e
b
vertex cover = set of nodes that cover all edges
Vertex Cover is NP Complete
Given a Graph G(V,E), decide if there is k
vertex such that every edge is covered by
one of them?
K-Indep Set P Vertex Cover
Key Observation
For a graph G(V,E), S is a independent set if
and only if V-S is a vertex cover.
Other NP-Complete Problems
Travelling Salesman Problem
Hamiltonian Path
Max Cut
Subset Sum
Integer Programming
.
Other Problems in NP
Graph Isomorphism
Factoring Number
We dont know if they are NP Complete or
not.