The Theory of NP-Completeness NP = P X NPC P=NP ? NP: Non-deterministic Polynomial P: Polynomial NPC: Non-deterministic Polynomial Complete.

Download Report

Transcript The Theory of NP-Completeness NP = P X NPC P=NP ? NP: Non-deterministic Polynomial P: Polynomial NPC: Non-deterministic Polynomial Complete.

The Theory of
NP-Completeness
1
NP =
P
X
NPC
P=NP
?
NP: Non-deterministic Polynomial
P: Polynomial
NPC: Non-deterministic Polynomial Complete
2




P: the class of problems which can be solved
by a deterministic polynomial algorithm.
NP : the class of decision problem which can
be solved by a non-deterministic polynomial
algorithm.
NP-hard: the class of problems to which every
NP problem reduces.
NP-complete (NPC): the class of problems
which are NP-hard and belong to NP.
3
Decision problems



The solution is simply “Yes” or “No”.
Optimization problem : more difficult
Decision problem
E.g. the traveling salesperson problem


Optimization version:
Find the shortest tour
Decision version:
Is there a tour whose total length is less than or
equal to a constant C ?
4
Nondeterministic algorithms


A nondeterministic algorithm
is an algorithm consisting of
two phases: guessing and
checking.
Furthermore, it is assumed
that a nondeterministic
algorithm always makes a
correct guessing.
5
Nondeterministic algorithms


They do not exist and they
would never exist in reality.
They are useful only because
they will help us define a class
of problems: NP problems
6
NP algorithm

If the checking stage of a
nondeterministic algorithm is
of polynomial time-complexity,
then this algorithm is called an
NP (nondeterministic
polynomial) algorithm.
7
NP problem


If a decision problem can be solved by a
NP algorithm, this problem is called an
NP (nondeterministic polynomial)
problem.
NP problems : (must be decision
problems)
8
To express Nondeterministic Algorithm



Choice(S) : arbitrarily chooses one of
the elements in set S
Failure : an unsuccessful completion
Success : a successful completion
9
Nondeterministic searching Algorithm :
j ← choice(1 : n) /* guess
if A(j) = x then success /* check
else failure



A nondeterministic algorithm terminates
unsuccessfully iff there exist no set of choices leading
to a success signal.
The time required for choice(1 : n) is O(1).
A deterministic interpretation of a non-deterministic
algorithm can be made by allowing unbounded
parallelism in computation.
10
Problem Reduction

Problem A reduces to problem B (AB)


iff A can be solved by using any algorithm which
solves B.
If AB, B is more difficult (B is at least as hard
as A)
instance
of A
T(A)
answer
of A


transformation
T(tr1)
instance of B
T(B)
transformation
T(tr2)
solver of B
answer of B
Note:
T(tr1) + T(tr2) < T(B)
T(A)  T(tr1) + T(tr2) + T(B)  O(T(B))
11
Polynomial-time Reductions
We want to solve a problem R; we
already have an algorithm for S
We have a transformation function T





Correct answer for R on x is “yes”, iff the
correct answer for S on T(x) is “yes”
Problem R is polynomially reducible to S
if such a transformation T can be
computed in polynomial time
The point of reducibility: S is at least as
hard to solve as R
12
Polynomial-time Reductions

We use reductions (or transformations) to
prove that a problem is NP-complete
x
T
T(x)
Algorithm for S
Yes or no
answer
Algorithm for R

x is an input for R; T(x) is an input for S

(R  S)
13
NPC and NP-hard
A problem A is NP-hard if every
NP problem reduces to A.
 A problem A is NP-complete
(NPC) if A∈NP and every NP
problem reduces to A.


Or we can say a problem A is NPC
if A∈NP and A is NP-hard.
14
NP-Completeness
“NP-complete problems”: the hardest
problems in NP
Interesting property




If any one NP-complete problem can be
solved in polynomial time, then every
problem in NP can also be solved similarly
(i.e., P=NP)
Many believe P≠NP
15
Importance of NP-Completeness



NP-complete problems: considered
“intractable”
Important for algorithm designers &
engineers
Suppose you have a problem to solve




Your colleagues have spent a lot of time to solve
it exactly but in vain
See whether you can prove that it is NP-complete
If yes, then spend your time developing an
approximation (heuristic) algorithm
Many natural problems can be NP-complete
16
Relationship Between NP and P
It is not known whether P=NP or
whether P is a proper subset of NP
It is believed NP is much larger than P





But no problem in NP has been proved as
not in P
No known deterministic algorithms that are
polynomially bounded for many problems in
NP
So, “does P = NP?” is still an open question!
17
Cook’s theorem (1971)
NP = P iff SATP
 SAT (the satisfiability problem) is
NP-complete
 It is the first NP-complete problem
 Every NP problem reduces to SAT
18
SAT is NP-complete





Every NP problem can be solved by an NP
algorithm
Every NP algorithm can be transformed in
polynomial time to an SAT problem (a
Boolean formula C)
Such that the SAT problem is satisfiable iff
the answer for the original NP problem is “yes”
That is, every NP problem  SAT
SAT is NP-complete
19




Definition of the satisfiability problem:
Given a Boolean formula, determine
whether this formula is satisfiable or not.
A literal: xi or -xi
A clause: x1 v x2 v -x3  Ci
A formula: conjunctive normal form
C1& C2 & … & Cm
20
The Satisfiability Problem

The satisfiability problem

A logical formula:
x1 v x2 v x3
& - x1
& - x2
the assignment :
x1 ← F , x2 ← F , x3 ← T
will make the above formula true.
(-x1, -x2 , x3) represents x1 ← F , x2 ← F , x3 ← T
21


If there is at least one assignment which
satisfies a formula, then we say that this
formula is satisfiable; otherwise, it is
unsatisfiable.
An unsatisfiable formula:
x1 v x2
& x1 v -x2
& -x1 v x2
& -x1 v -x2
22
The satisfiability problem

Resolution principle
c1 : -x1 v -x2 v x3
c2 : x1 v x4
 c3 : -x2 v x3 v x4 (resolvent)

If no new clauses can be deduced
 satisfiable
-x1 v -x2 v x3
x1
x2
(1) & (2)
-x2 v x3
(4) & (3)
x3
(1) & (3)
-x1 v x3
(1)
(2)
(3)
(4)
(5)
(6)
23
The satisfiability problem
If an empty clause is deduced
 unsatisfiable

- x1 v -x2 v x3
x1 v -x2
x2
- x3
 deduce
(1) & (2)
-x2 v x3
(4) & (5)
-x2
(6) & (3)
□
(1)
(2)
(3)
(4)
(5)
(6)
(7)
24
Nondeterministic SAT

Guessing
Checking
for i = 1 to n do
xi ← choice( true, false )
if E(x1, x2, … ,xn) is true
then success
else failure
25
Transforming Searching to SAT


Does there exist a number in { x(1),
x(2), …, x(n) }, which is equal to 7?
Assume n = 2
26
Transforming Search to SAT


Does there exist a number in { x(1),
x(2), …, x(n) }, which is equal to 7?
Assume n = 2.
nondeterministic algorithm:
i = choice(1,2)
if x(i)=7 then
SUCCESS
else
FAILURE
27
i=1 v i=2
& i=1 → i≠2
& i=2 → i≠1
& x(1)=7 & i=1
→ SUCCESS
& x(2)=7 & i=2
→ SUCCESS
& x(1)≠7 & i=1
→ FAILURE
& x(2)≠7 & i=2
→ FAILURE
& FAILURE → -SUCCESS
& SUCCESS (Guarantees a successful
termination)
& x(1)=7 (Input data)
& x(2)≠7
28

CNF (conjunctive normal form) :
i=1 v i=2
i≠1 v i≠2
x(1)≠7 v i≠1 v SUCCESS
x(2)≠7 v i≠2 v SUCCESS
x(1)=7 v i≠1 v FAILURE
x(2)=7 v i≠2 v FAILURE
-FAILURE v -SUCCESS
SUCCESS
x(1)=7
x(2)≠7
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
29

Satisfiable with the following
assignment:
i=1
i≠2
SUCCESS
-FAILURE
x(1)=7
x(2)≠7
satisfying
satisfying
satisfying
satisfying
satisfying
satisfying
(1)
(2), (4) and (6)
(3), (4) and (8)
(7)
(5) and (9)
(4) and (10)
30
Searching for 7, but x(1)7, x(2)7

CNF
(conjunctive normal form):
i=1
v
i=2
i1
v
i2
x(1)7
v i1
v
x(2)7
v i2
v
x(1)=7
v i1
v
x(2)=7
v i2
v
SUCCESS
-SUCCESS v -FAILURE
x(1)  7
x(2)  7
SUCCESS
SUCCESS
FAILURE
FAILURE
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
31

Apply resolution principle:
(9) & (5)
(10) & (6)
(7) & (8)
(13) & (11)
(13) & (12)
(14) & (1)
(15) & (16)
i1 v FAILURE
i2 v FAILURE
-FAILURE
i1
i2
i=2
□
(11)
(12)
(13)
(14)
(15)
(11)
(17)
We get an empty clause  unsatisfiable
 7 does not exit in x(1) or x(2).
32
Searching for 7, where x(1)=7, x(2)=7

CNF:
i=1
v
i=2
i1
v
i2
x(1)7
v i1
v
x(2)7
v i2
v
x(1)=7
v i1
v
x(2)=7
v i2
v
SUCCESS
-SUCCESS v -FAILURE
x(1)=7
x(2)=7
SUCCESS
SUCCESS
FA I L U R E
FA I L U R E
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
33
The Node Cover Problem

Def: Given a graph G = (V, E), S is the node
cover of G if S  V and for ever edge (u, v) 
E, (u,v) is incident to a node in S.
node cover:
{1, 3}
{5, 2, 4}

Decision problem:  S   S   K 
34
How to Prove a Problem S is
NP-Complete?
Show S is in NP
Select a known NP-complete problem R
1.
2.

Show how R can be poly. reducible to S
3.

4.
Since R is NP-complete, all problems in NP
are reducible to R
Then all problems in NP can be poly.
reducible to S (because polynomial
reduction is transitive)
Therefore S is NP-complete
35
Cook
Cook showed the first NPC
problem: SAT
 Cook received Turing Award
in 1982.

36
Karp
R. Karp showed several NPC
problems, such as 3-STA,
node (vertex) cover, and
Hamiltonian cycle, etc.
 Karp received Turing Award
in 1985

37
NP-Completeness Proof: Reduction
All NP
problems
SAT
Clique
Vertex
Cover
3-SAT
Chromatic Number
Dominating
Set
38
NPC Problems

CLIQUE(k): Does G=(V,E) contain a clique of
size k?
Definition:
 A clique in a graph is a set of vertices such
that any pair of vertices are joined by en
edge.
39
NPC Problems

Vertex Cover(k): Given a graph G=(V, E)
and an integer k, does G have a vertex
cover with k vertices?
Definition:
 A vertex cover of G=(V, E) is V’V such that
every edge in E is incident to some vV’.
40
NPC Problems
Dominating Set(k): Given an graph
G=(V, E) and an integer k, does G have
a dominating set of size k ?
Definition:
 A dominating set D of G=(V, E) is DV
such that every vV is either in D or
adjacent to at least one vertex of D.

41
NPC Problems
•
•
SAT: Give a Boolean expression
(formula) in DNF (conjunctive normal
form), determine if it is satisfiable.
3SAT: Give a Boolean expression in DNF
such that each clause has exactly 3
variables (literals), determine if it is
satisfiable.
42
NPC Problems
Chromatic Coloring(k): Given a graph
G=(V, E) and an integer k, does G have
a coloring for k
Definition
•

A coloring of a graph G=(V, E) is a function
f : V  { 1, 2, 3,…, k }  if (u, v)  E, then
f(u)f(v).
43
0/1 Knapsack problem
Value
P1
P2
P3
P4
P5
P6
P7
P8
10
5
1
9
3
4
11
17
3
3
10
1
9
22
15
Weight 7
M(weight limit)=14
best solution: P1, P2, P3, P5(optimal)
This problem is NP-complete.
44
Traveling salesperson problem


Given: A set of n planar points
Find: A closed tour which includes all
points exactly once such that its total
length is minimized.
This problem is NP-complete.
45
Partition problem


Given: A set of positive integers S
Find: S1 and S2 such that S1S2=, S1S2=S,
iS1i=iS2 i
(partition into S1 and S2 such that the sum of
S1 is equal to S2)
e.g. S={1, 7, 10, 9, 5, 8, 3, 13}



S1={1, 10, 9, 8}
S2={7, 5, 3, 13}
This problem is NP-complete.
46
Art gallery problem
NP-complete !!
47
3-Satisfiability Problem (3-SAT)



Def: Each clause contains exactly three
literals.
(I) 3-SAT is an NP problem (obviously)
(II) SAT  3-SAT
Proof:
(1) One literal L1 in a clause in SAT:
In 3-SAT:
L1 v y1 v y 2
L1 v -y1 v y2
L1 v y1 v -y2
L1 v -y1 v -y2
48
(2) Two literals L1, L2 in a clause in SAT:
In 3-SAT:
L1 v L2 v y1
L1 v L2 v -y1
(3) Three literals in a clause: remain unchanged.
(4) More than 3 literals L1, L2, …, Lk in a clause:
in 3-SAT:
L1 v L2 v y1
L3 v -y1 v y2

Lk-2 v -yk-4 v yk-3
Lk-1 v Lk v -yk-3
49
Example of Transforming a 3-SAT
Instance to an SAT Instance

An instance S in SAT:
x1 v x2
-x3
x1 v -x2 v x3 v -x4 v x5
SAT
S

The instance
x1
v
x1
v
-x3
v
-x3
v
-x3
v
-x3
v
x1
v
x3
v
-x4
v
transform
S in 3-SAT:
x2 v y1
x2 v -y1
y2 v y3
-y2 v y3
y2 v -y3
-y2 v -y3
-x2 v y4
-y4 v y5
x5 v -y5
3-SAT
S
50
Chromatic Number Decision
Problem (CN)


Def: A coloring of a graph G = (V, E) is a function f:
V  { 1, 2, 3,…, k } such that if (u, v)  E, then
f(u)f(v). The CN problem is to determine if G has a
coloring for k.
E.g.
3-colorable
f(a)=1, f(b)=2, f(c)=1
f(d)=2, f(e)=3
<Theorem> Satisfiability with at most 3 literals per
clause (SATY)  CN.
51
Set Cover Decision Problem

Def: F = { S1, S2, …, Sk }
 Si = { u1, u2, …, un }
T is a set cover of F if T  F and  Si =  Si
Si F
Si T
Si F
The set cover decision problem is to determine if F has
a cover T containing no more than c sets.
 Example: c=3.
F = {(a1, a3), (a2, a4), (a2, a3), (a4), (a1, a3 , a4)}
s1
s2
s3
s4
s5
T = { s1, s3, s4 } set cover
T = { s1, s2 } another set cover
52
Exact Cover Problem
Def: To determine if F has an exact cover T,
which is a cover of F and the sets in T are
pairwise disjoint.
<Theorem> CN  exact cover
53
Sum of Subsets Problem

Def: A set of positive numbers A = { a1,
a2, …, an }
a constant C
Determine if  A  A 

a i A 

ai = C
e.g. A = { 7, 5, 19, 1, 12, 8, 14 }


C = 21, A = { 7, 14 }
C = 11, no solution
<Theorem> Exact cover  sum of subsets.
54
Exact Cover  Sum of Subsets

Proof:
Instance of exact cover:
F = { S1, S2, …, Sn }
 S  u u
i
1, 2,
...,um 
Si F
Instance of sum of
subsets:
A = { a1, a2, …, an }
where
aj =

eji(n + 1)i1

(n + 1)i = ((n + 1)m  1) / n .
where eji = 1 if ui  Sj and eji = 0 otherwise.
1i  m
C=
0i  m
55
Partition Problem

Def: Given a set of positive numbers A =
{ a1,a2,…,an },
determine if  a partition P,  ai = ai
ip

ip
e.g. A = {3, 6, 1, 9, 4, 11}
partition: {3, 1, 9, 4} and {6, 11}
<Theorem> sum of subsets  partition
56
Bin Packing Problem


Def: n items, each of size ci , ci > 0, a
positive number k and bin capacity C,
determine if we can assign the items into k
bins such that the sum of ci’s assigned to
each bin does not exceed C.
<Theorem> partition  bin packing.
57
VLSI Discrete Layout Problem

Given: n rectangles, each with height hi (integer)
1.
2.
3.
4.
width wi and an area A, determine if there
is a placement of the n rectangles within A
according to the following rules:
Boundaries of rectangles are parallel to x axis or y
axis.
Corners of rectangles lie on integer points.
No two rectangles overlap.
Two rectangles are separated by at least a unit
distance.
(See the figure on the next page.)
58
A Successful Placement
<Theorem> bin packing  VLSI discrete layout.
59