Title: Complexity class NP
1Complexity class NP
Is the class of languages that can be verified by
a polynomial-time algorithm. L x in 0,1
there exists a certificate y with y O(x
c) The algorithm A verifies language L in
polynomial time. HAM-CYCLE ? NP
2If L ? P then L ? NP, since if there is a
polynomial time algorithm to decide L, the
algorithm can be easily converted to verification
algorithm to accept those inputs that it
detemines to be in L. Thus P ? NP
3Unknown NP is closed under complement? L ? NP
? /L ? NP ? Define complexity class co-NP
L such that /L ? NP NP co-NP ? P is closed
under complement P ? NP ? co-NP
4P NP ? co-NP ? Any language in NP ? co-NP
- NP ?
Four possible relationships between complexity
classes
5NP-Complete problems
If NP - P is nonempty, HAM-CYCLE ? NP -
P NP-Complete languages are, in a sense, the
hardest languages in NP. Compare the relative
hardness of languages by polynomial time
reducibility.
6Reducibility
Q is reduced to Q if any instance of Q can be
easily rephrased into an instance of Q. Then
Q is, in a sense, not harder to solve than
Q. L1 is polynomial time reducible to L2, L1 ?p
L2, if there exists a polynomial time computable
function f 0,1 ? 0,1 such that ? x ?
0,1 x ? L1 iff f(x) ? L2. f is called
reduction function
7Lemma 36.3 If L1, L2 ? 0,1 are languages
such that L1 ?p L2, then L2 ? P implies L1 ? P.
8NP-completeness
- A language L ? 0,1 is NP-complete if
- L ? NP and
- L ?p L for every L ? NP
- If 2 but not 1 L is NP-hard
9Theorem 36.4 If any NP-complete problem is
polynomial time solvable, then P NP. If any
problem in NP is not polynomial time solvable,
then all NP-complete problems are not polynomial
time solvable.
10Circuit satisfiability
A truth assignment for a boolean combinational
circuit is a set of boolean input values. A
one-output combinational circuit is satisfiable
if it has a truth assignment that causes the
output to be 1. CIRCUIT-SAT ltCgt C is a
satisfiable boolean combinational circuit k
inputs, 2k possible assignments
11Lemma 36.5 The circuit satisfiability problem
belongs to the class NP. Proof Provide a
polynomial time algorithm that can verify
CIRCUIT-SAT.
12Lemma 36.6 The circuit satisfiability is
NP-hard. Proof Provide a polynomial time
algorithm computing a reduction function f that
maps every binary string x to a circuit C f(x)
such that x ? L if and only if C ?CIRCUIT-SAT.
13L ? NP, A exists that verifies L in polynomial
time. The algorithm F that we shall construct
will use the two input algorithm A to compute the
reduction function f. Running time of A T(n)
O(nk) input string length n, certificate
length O(nk)
14Basic idea of proof Represent the computation A
as a sequence of configurations and M is a
combinational circuit that implement the mapping
of one configuration to another. Configuration
the program, the program counter, working
storage, machine states.
15input
c1
Program A PC machine state x y
memory
M
. . .
cT(n)
Program A PC machine state x y
memory
0/1 output
16Ci --M--gt C i1 If A run at most T(n) steps
the output appears in C T(n) Construct M that
computes all configurations. F given x computes
C f(x) that is satisfiable iff there exists a
certificate y such that A(x,y) 1. when F
obtains x , it first computes n x and
construct C consists of T(n) copies of M.
17- Proof
- F correctly computes f. C is satisfiable iff
there exists y such that A(x,y) 1. - F runs in polynomial time.
- Part 1 if part
- Suppose there exists y, length O(nk) such that
A(x,y) 1. Apply y to the input of C, the output
of C is C(y) A(x,y) 1. Thus if a certificate
exists then C is satisfiable.
18Part 1 only if Suppose C is satisfiable, hence
there exists an input y to C such that C(y) 1,
from which we conclude that A(x,y) 1 . Part 2
(A runs in polynomial time) The number of bits
required to represent a configuration is
polynomial in n (n x). Program A has constant
size
19The length of input x is n The length of the
certificate y is O(nk) The algorithm runs at most
O(nk) steps, the amount of working storage
required by A is polynomial of n. The length of a
configuration is polynomial in O(nk) M has the
size polynomial in the length of a configuration,
hence is polynomial in n.
20The circuit C consists of at most t O(nk)
copies of M, hence it has size in polynomial of
n. The construction of C from x can be
accomplished in polynomial time by the reduction
algorithm F, since each step of construction
takes polynomial time. Theorem 36.7 The
circuit-satisfiability problem is NP-complete