# NP-completeness Today: Proving -completeness have no

advertisement
```IN210 − lecture 6
NP-completeness
have no
feasible
solutions
have
feasible
solutions
solvable
problems
;
NP
P
NPcomplete
L ∈ N Pand
L ∈ N PC ⇔
L ∈ N P-hard
Today: Proving N P-completeness
• L ∈ N P: show that there is a “short”†
certificate of membership in L (“id card”).
• L ∈ N P-hard: show that there is an
“efficient”† reduction from a known
N P-hard problem Lnp to L.
† polynomial (length, time . . . )
L1
L
L np
L2
L3
Autumn 1999
1 of 15
IN210 − lecture 6
Skills to learn
• Transforming problems into each other.
Insight to gain
• Seeing unity in the midst of diversity: A
variety of graph-theoretical, numerical, set
&amp; other problems are just variants of one
another.
But before we can use reductions we need the
first N P-hard problem.
L0
L1
L2
Ln
NP
Strategy
As before:
• ’Cook up’ a complete Turing machine
problem
• Turn it into / reduce it to a natural/known
real-world problem (by using the familiar
techniques).
Autumn 1999
2 of 15
IN210 − lecture 6
B OUNDED H ALTING problem
LBH = (M, x, 1k ) | NTM M accepts string x
in k steps or less
Note: 1k means k written in unary, i.e. as a
sequence of k 1’s.
Theorem 1 LBH is N P-complete.
Proof:
• LBH ∈ N P
C 0 (initial config.)
1
2 3
4
1
k=4
3
2
1
1
2
accept
time
(steps)
Certificate: (4, 2, 1, 2). The certificate, which
consists of k numbers, is “short enough”
(polynomial) compared to the length of
the input because k is given in unary in the
input!
Autumn 1999
3 of 15
IN210 − lecture 6
• LBH ∈ N P-hard
x
MR
(M,x,1PM (|x|) )
YES
YES
NO
NO
M BH
ML
— For every L ∈ N P there exists by
definition a pair (M, PM ) such that NTM
M accepts every string x that is in L (and
only those strings) in PM (|x|) steps or
less.
— Given an instance x of L the reduction
module MR computes (M, x, 1PM (|x|)) and
feeds it to MBH . This can be done in
time polynomial to the length of x.
— If MBH says ’YES’, ML answers ’YES’. If
MBH says ’NO’, ML answers ’NO’.
Autumn 1999
4 of 15
IN210 − lecture 6
S ATISFIABILITY (SAT)
The first real-world problem shown to be
N P-complete.
Instance: A set C = {C1, . . . , Cm} of clauses. A
clause consists of a number of literals over a
finite set U of boolean variables. (If u is a
variable in U, then u and &not;u are literals over
U .)
Question: A clause is satisfied if at least one
of its literals is TRUE. Is there a truth
assignment T, T : U → {TRUE , FALSE }, which
satisfies all the clauses?
Example
I = C ∪ U
C = (x1 ∨ &not;x2), (&not;x1 ∨ &not;x2), (x1 ∨ x2)
U = {x1, x2}
T = x1 7→ TRUE , x2 7→ FALSE is a satisfying
truth assignment. Hence the given instance I
is satisfiable, i.e. I ∈ SAT.
(
0
C = (x1 ∨ x2), (x1 ∨ &not;x2), (&not;x1)
0
I =
U 0 = {x1, x2}
is not satisfiable.
Autumn 1999
5 of 15
IN210 − lecture 6
Theorem 2 (Cook 1971) S ATISFIABILITY is
N P-complete.
Proof – main ideas:
S ATISFIABILITY
B OUNDED H ALTING
“There is a
“There is a
7−→
computation”
truth assignment”
computation
;
(computation) matrix
Example: input (M, 010, 14)
b b b b b
k
b b b b b
b b b b b
b b b b b
h
b b Y b
q3
b b b b
q2
b 0 b b
q1
1 0 b b
s
b b b b 0 1 0 b b
k
k
Computation matrix A is polynomial-sized
(in length of input) because a TM moves only
one square per time step and k is given in
unary.
Autumn 1999
6 of 15
IN210 − lecture 6
tape squares 7−→ boolean variables
Ex. Square A(2, 6) gives variables B(2, 6, 0),
q
B(2, 6, b), B(2, 6, 00), etc. – but only
polynomially many.
input symbols 7−→ single-variable clauses
s
s
Ex. A(1, 5) = 0 gives clause B(1, 5, 0) ∈ C.
Note that any satisfying truth assignment
must map B(1, 5, 0s) to TRUE.
rules/templates 7−→ “if-then clauses”
d
Ex.
gives B(i − 1, j, a) ∧ B(i, j, b)
a b c
∧B(i + 1, j, c) ⇒ B(i, j + 1, d) ∈ C.
Note: (u ∧ v ∧ w) ⇒ z ≡ &not;u ∨ &not;v ∨ &not;w ∨ z
Since the tile can be anywhere in the matrix,
we must create clauses for all 2 ≤ i ≤ 2k and
1 ≤ j ≤ k, but only polynomially many.
Autumn 1999
7 of 15
IN210 − lecture 6
non-determinism 7−→ “choice” variables
Ex.
G(1)
G(2)
T
T
F
T
...
k=4
F
F
G(t) tells us what non-deterministic choice
was taken by the machine at step t. We extend
the “if-then clauses” with k choice variables:
G(t) ∧ “a” ∧ “b” ∧ “c” ⇒ “d” ∨ &not;G(t) ∧ &middot; &middot; &middot;
Note: We assume a canonical NTM which
• has exactly 2 choices for each
(state,scanned symbol)-pair.
• halts (if it does) after exactly k steps.
Autumn 1999
8 of 15
IN210 − lecture 6
Further (basic) reductions
BOUNDED HALTING
SATISFIABILITY (SAT)
3SAT
3-DIMENSIONAL
MATCHING (3DM)
VERTEX COVER (VC)
HAMILTONICITY CLIQUE
PARTITION
Polynomial-time reductions (review)
L1 ∝ L2 means that
P∗
P∗
•R:
→
such that
x ∈ L1 ⇒ fR(x) ∈ L2 and
x 6∈ L1 ⇒ fR(x) 6∈ L2
L1
L2
Σ*
Σ*
• R ∈ Pf , i.e. R(x) is polynomial computable
Autumn 1999
9 of 15
IN210 − lecture 6
S ATISFIABILITY ∝ 3- SATISFIABILITY
SAT
3SAT
Clauses with any 7−→ Clauses with
number of literals
exactly 3 literals
0
• Cj is the j’th SAT-clause, and Cj is the
corresponding 3SAT-clauses.
0
• yj are new, fresh variables, only used in Cj .
Cj
(x1 ∨ x2 ∨ x3) 7−→
0
Cj
(x1 ∨ x2 ∨ x3)
(x1 ∨ x2)
7−→
(x1 ∨ x2 ∨ yj ), (x1 ∨ x2 ∨ &not;yj )
(x1)
7−→
(x1 ∨ yj1 ∨ yj2), (x1 ∨ &not;yj1 ∨ yj2),
(x1 ∨ yj1 ∨ &not;yj2), (x1 ∨ &not;yj1 ∨ &not;yj2)
(x1 ∨ &middot; &middot; &middot; ∨ x8) 7−→ (x1 ∨ x2 ∨ yj1), (&not;yj1 ∨ x3 ∨ yj2),
(&not;yj2 ∨ x4 ∨ yj3), (&not;yj3 ∨ x5 ∨ yj4),
(&not;yj4 ∨ x6 ∨ yj5), (&not;yj5 ∨ x7 ∨ x8)
Question: Why is this a proper reduction?
Autumn 1999
10 of 15
IN210 − lecture 6
3- DIMENSIONAL MATCHING (3DM)
Instance: A set M of triples (a, b, c) such that
a ∈ A, b ∈ B, c ∈ C. All 3 sets have the same
size q (|A| = |B| = |C| = q).
Question: Is there a matching in M , i.e. a
subset M 0 ⊆ M such that every element of A,
B and C is part of exactly 1 triple in M 0?
Example
y1
x1
z1
y2
x2
z2
y3
x3
z3
M = (x1, y1, z1), (x1, y2, z2),
(x2, y2, z2), (x3, y3, z3), (x3, y2, z1)
We will use sets with 3 elements to visualize
triples:
y1
x1
Autumn 1999
z1
11 of 15
IN210 − lecture 6
Reductions are like translations from
one language to another. The same
properties must be expressed.
3SAT ∝ 3DM
3SAT
variables x1, &middot; &middot; &middot; , xn
literals
x1, &not;x1
clauses
Cj = (x1 ∨ &not;x2 ∨ &not;x3)
“There exists a sat.
truth assignment”
7−→
7−→
7−→
7−→
3DM
variables xj3, aj3, b2j , c1k
variables xj1, &not;xj1
triples
(xj1, b1j , b2j )
(&not;xj3, b1j , b2j )
”There is a
matching”
“There is a truth assignment T ”
• ∃T : {x1, &middot; &middot; &middot; , xn} → {TRUE, FALSE }
• T (xi) = TRUE ⇔ T (&not;xi) =
FALSE
The second property is easily translated to
the 3DM-world:
xi
&not;xi
ai
T (Xi) =
Autumn 1999
TRUE
7−→ x1is not “married”
12 of 15
IN210 − lecture 6
A literal xi can be used in many clauses. In
3DM we must have as many copies of xi as
there are clauses:
x1i
&not;x4i
&not;x1i
x4i
x2i
&not;x3i
&not;x2i
x3i
• Either all the black triples must be chosen
(“married”) or all the red ones!
• If T (xi) = TRUE then we choose all the red
triples, and the black copies of xi are free to
be used later in the reduction. And vice
versa.
• We make one such truth setting
component for each variable xi in 3SAT.
Autumn 1999
13 of 15
IN210 − lecture 6
“T is satisfying”
We translate each clause (example:
Cj = (x1 ∨ &not;x2 ∨ &not;x3)) into 3 triples:
xj1
&not;xj2
b1j
&not;xj3
b2j
• b1j and b2j can be married if and only if at
least one of the literals in Cj is not married
in the truth setting component.
• If we have a satisifiable 3SAT-instance ,
then all b1j and b2j -variables (1 ≤ j ≤ m) can
be married.
• If we have a negative 3SAT-instance , then
some b1j and b2j -variables will not be
married.
Autumn 1999
14 of 15
IN210 − lecture 6
Cleaning up (“Garbage collection”)
There are many xji who are neither married in
the truth settting components nor in the
“clause-satisfying” part. We introduce a
number of fresh c-variables who can marry
“everybody”:
x11
&not;x11
xm
n
&middot;&middot;&middot;
c1k
&not;xm
n
c2k
• There are m &times; n unmarried x-variables
after the truth setting part.
• If all m clauses are satisfiable then there
will remain (m &times; n) − m = m(n − 1)
unmarried x-variables.
• So we let 1 ≤ k ≤ m(n − 1).
Autumn 1999
15 of 15
```