formal languages, automata and computability 15-453
TRANSCRIPT
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 thenL = { 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
If P = NP…
Cryptography as we know it would not be possible (e.g. RSA)
Mathematicians would be out of a job
AI program become perfect as exhaustive search is efficient
If P = NP…
Writing symphonies is as easy as listening to them.
Being a chef is as easy as eating.
Writing Shakespeare is as easy as recognizing Shakespeare.
Generation is as easy as recognition:
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.
PNP
SAT
Any thing in NP P 3SAT
You can think of -> as “easier than”. SAT is the hardest problem in NP.
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 = { | y such that y is a satisfying assigment to and is in 3cnf }
3SAT is NP Complete
How about 2SAT?
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 SATx1
x1 x2
x1 x2 x3
x1 x2 x3 x4
x1 x2 x3 x4 x5
Clauses in 3SATx1 x1 x1
x1 x1 x2
x1 x2 x3
(x1 x2 z1) ( z1 x3 x4)
(x1 x2 z1) ( z1 x3 z2)
( z2 x4 z3) ( z3 x4 x5)
K-CliquesA K-clique is a set of K nodes with all K(K-A K-clique is a set of K nodes with all K(K-1)/2 possible edges between them1)/2 possible edges between them
This graph contains a 4-clique
CLIQUE = { (G,k) | G is an undirected graph with a k-clique }
Theorem: CLIQUE is NP-Complete
(1) CLIQUE NP
(2) 3SAT P CLIQUE
Assume a reasonable encoding of graphs (example: the adjacency matrix is reasonable)
Brute Force Algorithm: Try out all {n choose k} possible locations for the Try out all {n choose k} possible locations for the k cliquek 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=mEach 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 x1
x1 x2
x2 x2
x2 x2
x1
k = #clauses
clause
#nodes = 3(# clauses)
This graph contains an independent set of size 3
Independent Set
An An independent set independent set is a set of nodes with no is a set of nodes with no edges between themedges between them
Complement of GGiven 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 G*
Key Observation
• For a graph G, vertex set S is an independent set if and only if S is clique in G*.
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?
Other NP-Complete Problems
• Travelling Salesman Problem
• Hamiltonian Path
• Max Cut
• Subset Sum
• Integer Programming
• ….