Title: The class NP
1The class NP
Giorgi Japaridze Theory of
Computability
Section 7.3
2The HAMPATH problem
7.3.a
Giorgi Japaridze Theory of Computability
A Hamiltonian path in a directed graph G is a
directed path that goes through each node
exactly once. We consider a special case of this
problem where the start node and target node are
fixed. HAMPATH ltG,s,tgt G is a directed
graph with a Hamiltonian path from s to t
1
5
3
? PATH?
s
t
? HAMPATH?
4
2
6
1
5
3
? HAMPATH?
s
t
4
2
6
3Polynomial verifiability
7.3.b
Giorgi Japaridze Theory of Computability
Does this graph have a Hamiltonian path?
s
t
4The COMPOSITES problem
7.3.c
Giorgi Japaridze Theory of Computability
COMPOSITES x xpq for some integers p,qgt1
15 ? COMPOSITES ? 17 ? COMPOSITES ? 77 ?
COMPOSITES ? 10403 ? COMPOSITES
? 997,111,111,911,111,119,131,119,871 ?
COMPOSITES ?
COMPOSITES is very easily seen to be verifiable
in polynomial time. But only a few years ago it
was proven that it is also decidable in
polynomial time. The same question, however,
remains open for HAMPATH --- one of the seven
1,000,000 questions!
5Definition of a verifier
7.3.d
Giorgi Japaridze Theory of Computability
Definition 7.18 A verifier for a language A is
an algorithm V, where
A w V accepts ltw,cgt for some string
c. We measure the time of a verifier only in
terms of the length of w, so a polynomial time
verifier runs in polynomial time in the length of
w. A language A is polynomially verifiable if it
has a polynomial time verifier. The above string
c, used as additional information to verify that
w?A, is called a certificate, or proof, of
membership in A.
Observe that, for polynomial verifiers, the
certificate has polynomial length (in the length
of w) because that is all the verifier can access
in its time bound.
What is a certificate for ltG,s,tgt ?
HAMPATH? What is a verifier for HAMPATH?
What is a certificate for x ?
COMPOSITES? What is a verifier for
COMPOSITES?
6Definition of NP
7.3.e
Giorgi Japaridze Theory of Computability
Definition 7.19 NP is the class of languages
that have polynomial time verifiers.
A very important class, because many
natural and important problems are in it!
NP stand for nondeterministic
polynomial. As it turns out (Theorem 7.20), an
alternative characterization of NP is to say
that this is the class of languages decidable by
polynomial-time nondeterministic Turing
machines. Here is such a machine for
HAMPATH
N1 On input ltG,s,tgt, where G is a directed
graph with nodes s and t 1.
Write a list on m members p1,,pm, where m is the
number of nodes of G. Each number
in the list is nondeterministically selected to
be between 1 and m. 2. Check
for repetitions in the list. If any are found,
reject. 3. Check whether sp1 and
tpm. If either fail, reject. 4. For
each i between 1 and m-1, check whether (pi,pi1)
is an edge of G. If any are not,
reject. Otherwise, all tests have been passed, so
accept.
7NP in terms of nondeterministic Turing machines
7.3.f
Giorgi Japaridze Theory of Computability
Theorem 7.20 A language is in NP iff it is
decided by some nondeterministic polynomial time
Turing machine.
Proof. The idea is to show how to convert a
polynomial time verifier into a polynomial time
NTM, and vice versa. The NTM simulates the
verifier by guessing the certificate. The
verifier simulates the NTM by using the accepting
branch as the certificate.
(?) Assume A?NP. Let V be a verifier for A with
V?TIME(nk), which, by the definition of NP,
exists. Construct N as follows N On
input w of length n 1.
Nondeterministically select a string c of length
at most nk. 2. Run V on input
ltw,cgt. 3. If V accepts, accept
otherwise reject.
(?) Assume A is decided by a polynomial time
NTM N. Construct a verifier V as follows
V On input ltw,cgt, where w and c are strings
Check whether c is (encodes) an
accepting computation branch of N on input w.
If yes, accept otherwise reject.
8Definition of NTIME(t(n))
7.3.g
Giorgi Japaridze Theory of Computability
Definition 7.21 Let t(n) be a function.
NTIME(t(n)) is defined as L L is
a language decided by some O(t(n)) time NTM.
Corollary 7.22 NP NTIME(n1) ? NTIME(n2) ?
NTIME(n3) ? NTIME(n4) ?
Just like P, the class NP is insensitive to the
choice of the reasonable underlying computational
model because all such models are polynomially
equivalent. So, when describing and analyzing
nondeterministic polynomial algorithms, we can
follow the preceding (lazy mans) conventions
for deterministic polynomial time algorithms.
9The CLIQUE problem
7.3.h
Giorgi Japaridze Theory of Computability
A k-clique in an undirected graph is a subgraph
with k nodes, wherein every two nodes are
connected by an edge. On the right we see a
5-clique
CLIQUE ltG,kgt G is an undirected graph with a
k-clique
Theorem 7.24 CLIQUE?NP.
Idea The clique is the certificate.
Proof. Here is a polynomial time verifier V for
CLIQUE V On input ltltG,kgt,cgt 1. Test
whether c is a set of k nodes in G. 2.
Test whether G contains all edges connecting
nodes in c. 3. If both pass, accept
otherwise reject.
Alternative proof. Here is a polynomial time NTM
N deciding CLIQUE N On input ltG,kgt
1. Nondeterministically select a subset c of k
nodes of G. 2. Test whether G contains
all edges connecting nodes in c. 3. If
yes, accept otherwise reject.
10The SUBSET-SUM problem
7.3.i
Giorgi Japaridze Theory of Computability
SUBSET-SUM ltS,tgt S is a multiset of integers
and, for some R?S, the sum of all elements of R
equals t
Theorem 7.25 SUBSET-SUM?NP.
Idea The subset is the certificate.
Proof. Here is a polynomial time verifier V for
SUBSET-SUM V On input ltltS,tgt,cgt 1.
Test whether c is a collection of numbers that
sum to t. 2. Test whether S contains all
the numbers in c. 3. If both pass,
accept otherwise reject.
Alternative proof. Here is a polynomial time NTM
N deciding SUBSET-SUM N On input ltS,tgt
1. Nondeterministically select a subset c of
S. 2. Test whether the elements of c sum
up to t. 3. If yes, accept otherwise
reject.
11P vs. NP vs. coNP vs. EXPTIME
7.3.j
Giorgi Japaridze Theory of Computability
Definitions coNP L
L is the complement of some language in NP
EXPTIME TIME(2n1) ? TIME(2n2) ? TIME(2n3) ?
P membership can be decided quickly NP
membership can be verified quickly coNP
membership can be refuted quickly EXPTIME none
of the above