NP-completeness slides

NP-Completeness
Note. Some illustrations are taken from
(KT) Kleinberg and Tardos. Algorithm Design
(DPV) Dasgupta, Papadimitriou, and Vazirani. Algorithms
Decision problems
Decision problem.
• X is a set of strings.
• Instance: string s.
• Algorithm A solves problem X: A(s) = yes iff s
 X.
Polynomial time. Algorithm A runs in poly-time if
for every string s, A(s) terminates in at most
p(|s|) "steps", where p() is some polynomial.
NP
Def. Algorithm C(s, t) is a certifier for problem X
if for every string s, s  X iff there exists a
string t such that C(s, t) = yes.
NP. Decision problems for which there exists a
poly-time certifier.
Remark. NP stands for nondeterministic
polynomial-time.
Polynomial transformations
Def. Problem X polynomial transforms to
problem Y if given any input x to X, we can
construct in polynomial time an input y to Y
such that x is a yes instance of X iff y is a yes
instance of Y.
x
Algorithm for X
y
Transf.
Algorithm for Y
yes
no
Notation. X ≤P Y
NP-completeness
Def. Problem Y is NP-complete if
• Y is in NP and
• for every problem X in NP, X P Y.
Theorem. Suppose Y is an NP-complete
problem. Then Y is solvable in
polynomial time iff P = NP.
Circuit satisfiability
output




yes: 1 0 1
1

0
hard-coded inputs

?
?
?
inputs
KT
Proving NP-completeness
Fact (Transitivity of  p). If X P Y and Y P Z,
then X P Z.
Theorem. Problem Y is NP-complete if
• Y is in NP and
• There exists some NP-complete problem X
such that X P Y.
Proof. By def. of NP and transitivity of P.
Map of reductions
CIRCUIT-SAT
3-SAT
INDEPENDENT SET
DIR-HAM-CYCLE
GRAPH 3-COLOR
SUBSET-SUM
VERTEX COVER
HAM-CYCLE
PLANAR 3-COLOR
SCHEDULING
SET COVER
TSP
KT
3-SAT P INDEPENDENT
SET

DPV
3-SAT P DIR-HAM-CYCLE
C1  x1 V x2 V x3
clause node
clause node
C2  x1 V x2 V x3
s
x1
x2
x3
t
3k + 3
KT
3-SAT P 3-COLOR
Variable gadgets. Ensure that
i. each literal is T or F and
ii. a literal and its negation are opposites.
true
false
T
F
B
x1


x2
x
1


x
2
base
x3


x
x
n
xn
3


KT
3-SAT P 3-COLOR
Clause gadgets. Ensure that at least one literal
in each clause is T.
B
x
2
x1

x3
Ci  x1 V x2 V x3
6-node gadget



true
T
F
false
KT
3-SAT P SUBSET SUM
C1  x  y  z
C2  x  y  z
C3  x  y  z

x
y
z
C1
C2
C3
x
1
0
0
0
1
0
x
1
0
0
1
0
1
y
0
1
0
1
0
0
y
0
1
0
0
1
1
z
0
0
1
1
1
0
z
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
2
0
0
0
0
0
0
1
0
0
0
0
0
2
0
0
0
0
0
0
1
0
0
0
0
0
2
1
1
1
4
4
4
dummies to get
clause columns
to sum to 4
W
KT
CIRCUIT SAT P SAT
• For each gate g in the circuit, create a variable g.
• Model g using a few clauses:
• If g is the output gate, we force it to be true by adding the
clause (g).
DPV
A  NP, A P CIRCUIT SAT
Since A  NP, there is an algorithm C(s,t) such that:
• C checks, given an instance s and a proposed
solution t, whether or not t is a solution of s.
• C runs in polynomial time.
In polynomial time, build a circuit D such that:
• Known inputs of D are the bits of s.
• Unknown inputs of D are the bits of t.
• C’s answer is given at the output gate of D.
• Size of D is polynomial in the number of inputs.
• D‘s output is true if and only if t is a solution of s.
Example: Does G have an
independent set of size 2?

independent set?
both endpoints of some edge have been chosen?
independent set of size 2?








u
v
w
G = (V, E), n = 3
set of size 2?



u-v
u-w
v-w
u
v
w
1
0
1
?
?
?
hard-coded inputs (graph description)
KT