0% found this document useful (0 votes)
49 views38 pages

Formal Languages, Automata and Computability

The document discusses NP-completeness and the complexity classes P and NP. It defines the class NP as problems verifiable in polynomial time and proves that SAT is NP-complete by giving a polynomial-time reduction from SAT to 3SAT. It then shows several other problems are NP-complete including k-Clique, Vertex Cover, and Independent Set by giving reductions from known NP-complete problems. This establishes that finding solutions to these problems is at least as hard as any problem in NP unless P=NP.

Uploaded by

prasath67
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
49 views38 pages

Formal Languages, Automata and Computability

The document discusses NP-completeness and the complexity classes P and NP. It defines the class NP as problems verifiable in polynomial time and proves that SAT is NP-complete by giving a polynomial-time reduction from SAT to 3SAT. It then shows several other problems are NP-complete including k-Clique, Vertex Cover, and Independent Set by giving reductions from known NP-complete problems. This establishes that finding solutions to these problems is at least as hard as any problem in NP unless P=NP.

Uploaded by

prasath67
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 38

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.

You might also like