0% found this document useful (0 votes)
3 views

lecture23

The document discusses NP-completeness, specifically focusing on the Hamiltonian Cycle Problem and 3-Coloring. It outlines the definitions of NP, NP-Complete, and NP-Hard, and presents theorems and proofs demonstrating the NP-completeness of various problems, including reductions from 3-SAT to Hamiltonian Cycle. Additionally, it describes the process of constructing graphs to establish these relationships and provides insights into graph coloring and its complexity.

Uploaded by

saeb2saeb
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

lecture23

The document discusses NP-completeness, specifically focusing on the Hamiltonian Cycle Problem and 3-Coloring. It outlines the definitions of NP, NP-Complete, and NP-Hard, and presents theorems and proofs demonstrating the NP-completeness of various problems, including reductions from 3-SAT to Hamiltonian Cycle. Additionally, it describes the process of constructing graphs to establish these relationships and provides insights into graph coloring and its complexity.

Uploaded by

saeb2saeb
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 89

CS 473: Algorithms

Chandra Chekuri
[email protected]
3228 Siebel Center
University of Illinois, Urbana-Champaign

Fall 2010

Chekuri CS473 1
Recap

NP: languages that have polynomial time certifiers/verifiers

Chekuri CS473 2
Recap

NP: languages that have polynomial time certifiers/verifiers

A language L is NP-Complete iff


L is in NP
for every L0 in NP, L0 ≤P L

Chekuri CS473 2
Recap

NP: languages that have polynomial time certifiers/verifiers

A language L is NP-Complete iff


L is in NP
for every L0 in NP, L0 ≤P L

L is NP-Hard if for every L0 in NP, L0 ≤P L.

Chekuri CS473 2
Recap

NP: languages that have polynomial time certifiers/verifiers

A language L is NP-Complete iff


L is in NP
for every L0 in NP, L0 ≤P L

L is NP-Hard if for every L0 in NP, L0 ≤P L.

Theorem (Cook-Levin)
Circuit-SAT and SAT are NP-Complete.

Chekuri CS473 2
Recap contd

Theorem (Cook-Levin)
Circuit-SAT and SAT are NP-Complete.

Establish NP-Completeness via reductions:


SAT ≤P 3-SAT and hence 3-SAT is NP-complete
3-SAT ≤P Independent Set (which is in NP) and hence
Independent Set is NP-complete
Vertex Cover is NP-complete
Clique is NP-complete
Set Cover is NP-Complete

Chekuri CS473 3
Today

Prove
Hamiltonian Cycle Problem is NP-Complete
3-Coloring is NP-Complete

Chekuri CS473 4
Directed Hamiltonian Cycle

Input Given a directed graph G = (V , E ) with n vertices


Goal Does G have a Hamiltonian cycle?

Chekuri CS473 5
Directed Hamiltonian Cycle

Input Given a directed graph G = (V , E ) with n vertices


Goal Does G have a Hamiltonian cycle?
A Hamiltonian cycle is a cycle in the graph that
visits every vertex in G exactly once

Chekuri CS473 5
Directed Hamiltonian Cycle

Input Given a directed graph G = (V , E ) with n vertices


Goal Does G have a Hamiltonian cycle?
A Hamiltonian cycle is a cycle in the graph that
visits every vertex in G exactly once

Chekuri CS473 5
Directed Hamiltonian Cycle is NP-complete

Directed Hamiltonian Cycle is in NP

Chekuri CS473 6
Directed Hamiltonian Cycle is NP-complete

Directed Hamiltonian Cycle is in NP


Certificate: Sequence of vertices

Chekuri CS473 6
Directed Hamiltonian Cycle is NP-complete

Directed Hamiltonian Cycle is in NP


Certificate: Sequence of vertices
Certifier: Check if every vertex (except the first) appears
exactly once, and that consecutive vertices are connected by a
directed edge

Chekuri CS473 6
Directed Hamiltonian Cycle is NP-complete

Directed Hamiltonian Cycle is in NP


Certificate: Sequence of vertices
Certifier: Check if every vertex (except the first) appears
exactly once, and that consecutive vertices are connected by a
directed edge
Hardness: We will show
3-SAT ≤P Directed Hamiltonian Cycle

Chekuri CS473 6
Reduction

Given 3-SAT formula ϕ create a graph Gϕ such that


Gϕ has a Hamiltonian cycle if and only if ϕ is satisfiable
Gϕ should be constructible from ϕ by a polynomial time
algorithm A

Notation: ϕ has n variables x1 , x2 , . . . , xn and m clauses


C1 , C2 , . . . , Cm .

Chekuri CS473 7
Reduction: First Ideas

Viewing SAT: Assign values to n variables, and each clauses


has 3 ways in which it can be satisfied

Chekuri CS473 8
Reduction: First Ideas

Viewing SAT: Assign values to n variables, and each clauses


has 3 ways in which it can be satisfied
Construct graph with 2n Hamiltonian cycles, where each cycle
corresponds to some boolean assignment

Chekuri CS473 8
Reduction: First Ideas

Viewing SAT: Assign values to n variables, and each clauses


has 3 ways in which it can be satisfied
Construct graph with 2n Hamiltonian cycles, where each cycle
corresponds to some boolean assignment
Then add more graph structure to encode constraints on
assignments imposed by the clauses

Chekuri CS473 8
The Reduction: Phase I

Traverse path i from left to right iff xi is set to true


Each path has 3(m + 1) nodes where m is number of clauses
in ϕ; nodes numbered from left to right (1 to 3m + 3)

x1

x2

x3

Chekuri CS473 9
The Reduction: Phase II

Add vertex cj for clause Cj . cj has edge from vertex 3j and to


vertex 3j + 1 on path i if xi appears in clause Cj , and has
edge from vertex 3j + 1 and to vertex 3j if ¬xi appears in Cj .

x1 ∨ ¬x2 ∨ x3 ¬x1 ∨ ¬x2 ∨ ¬x3

x1

x2

x3

Chekuri CS473 10
Correctness Proof

Proposition
ϕ has a satisfying assignment iff Gϕ has a Hamiltonian cycle

Chekuri CS473 11
Correctness Proof

Proposition
ϕ has a satisfying assignment iff Gϕ has a Hamiltonian cycle

Proof.

Chekuri CS473 11
Correctness Proof

Proposition
ϕ has a satisfying assignment iff Gϕ has a Hamiltonian cycle

Proof.
⇒ Let a be the satisfying assignment for ϕ. Define Hamiltonian
cycle as follows

Chekuri CS473 11
Correctness Proof

Proposition
ϕ has a satisfying assignment iff Gϕ has a Hamiltonian cycle

Proof.
⇒ Let a be the satisfying assignment for ϕ. Define Hamiltonian
cycle as follows
If a(xi ) = 1 then traverse path i from left to right

Chekuri CS473 11
Correctness Proof

Proposition
ϕ has a satisfying assignment iff Gϕ has a Hamiltonian cycle

Proof.
⇒ Let a be the satisfying assignment for ϕ. Define Hamiltonian
cycle as follows
If a(xi ) = 1 then traverse path i from left to right
If a(xi ) = 0 then traverse path i from right to left

Chekuri CS473 11
Correctness Proof

Proposition
ϕ has a satisfying assignment iff Gϕ has a Hamiltonian cycle

Proof.
⇒ Let a be the satisfying assignment for ϕ. Define Hamiltonian
cycle as follows
If a(xi ) = 1 then traverse path i from left to right
If a(xi ) = 0 then traverse path i from right to left
For each clause, path of at least one variable is in the “right”
direction to splice in the node corresponding to clause

Chekuri CS473 11
Hamiltonian Cycle ⇒ Satisfying assignment

Suppose Π is a Hamiltonian cycle in Gϕ


If Π enters cj (vertex for clause Cj ) from vertex 3j on path i
then it must leave the clause vertex on edge to 3j + 1 on the
same path i

Chekuri CS473 12
Hamiltonian Cycle ⇒ Satisfying assignment

Suppose Π is a Hamiltonian cycle in Gϕ


If Π enters cj (vertex for clause Cj ) from vertex 3j on path i
then it must leave the clause vertex on edge to 3j + 1 on the
same path i
If not, then only unvisited neightbor of 3j + 1 on path i is
3j + 2

Chekuri CS473 12
Hamiltonian Cycle ⇒ Satisfying assignment

Suppose Π is a Hamiltonian cycle in Gϕ


If Π enters cj (vertex for clause Cj ) from vertex 3j on path i
then it must leave the clause vertex on edge to 3j + 1 on the
same path i
If not, then only unvisited neightbor of 3j + 1 on path i is
3j + 2
Thus, we don’t have two unvisited neighbors (one to enter
from, and the other to leave) to have a Hamiltonian Cycle

Chekuri CS473 12
Hamiltonian Cycle ⇒ Satisfying assignment

Suppose Π is a Hamiltonian cycle in Gϕ


If Π enters cj (vertex for clause Cj ) from vertex 3j on path i
then it must leave the clause vertex on edge to 3j + 1 on the
same path i
If not, then only unvisited neightbor of 3j + 1 on path i is
3j + 2
Thus, we don’t have two unvisited neighbors (one to enter
from, and the other to leave) to have a Hamiltonian Cycle
Similarly, if Π enters cj from vertex 3j + 1 on path i then it
must leave the clause vertex cj on edge to 3j on path i

Chekuri CS473 12
Example

x1 ∨ ¬x2 ∨ x3 ¬x1 ∨ ¬x2 ∨ ¬x3

x1

x2

x3

Chekuri CS473 13
Hamiltonian Cycle ⇒ Satisfying assignment (contd)

Thus, vertices visited immediately before and after Ci are


connected by an edge

Chekuri CS473 14
Hamiltonian Cycle ⇒ Satisfying assignment (contd)

Thus, vertices visited immediately before and after Ci are


connected by an edge
We can remove cj from cycle, and get Hamiltonian cyle in
G − cj

Chekuri CS473 14
Hamiltonian Cycle ⇒ Satisfying assignment (contd)

Thus, vertices visited immediately before and after Ci are


connected by an edge
We can remove cj from cycle, and get Hamiltonian cyle in
G − cj
Consider hamiltonian cycle in G − {c1 , . . . cm }; it traverses
each path in only one direction, which determines the truth
assignment

Chekuri CS473 14
Hamiltonian Cycle

Problem
Input Given undirected graph G = (V , E )
Goal Does G have a Hamiltonian cycle? That is, is there a
cycle that visits every vertex exactly one (except start
and end vertex)?

Chekuri CS473 15
NP-completeness

Theorem
Hamiltonian cycle problem for undirected graphs is NP-complete

Chekuri CS473 16
NP-completeness

Theorem
Hamiltonian cycle problem for undirected graphs is NP-complete

Proof.

Chekuri CS473 16
NP-completeness

Theorem
Hamiltonian cycle problem for undirected graphs is NP-complete

Proof.
The problem is in NP; proof left as exercise

Chekuri CS473 16
NP-completeness

Theorem
Hamiltonian cycle problem for undirected graphs is NP-complete

Proof.
The problem is in NP; proof left as exercise
Hardness proved by reducing Directed Hamiltonian Cycle to
this problem

Chekuri CS473 16
Reduction Sketch

Goal: Given directed graph G , need to construct undirected graph


G 0 such that G has Hamiltonian Path iff G 0 has Hamiltonian path
Reduction

a c
v
b d

Chekuri CS473 17
Reduction Sketch

Goal: Given directed graph G , need to construct undirected graph


G 0 such that G has Hamiltonian Path iff G 0 has Hamiltonian path
Reduction
Replace each vertex v by 3 vertices: vin , v , and vout

a c
v
b d

Chekuri CS473 17
Reduction Sketch

Goal: Given directed graph G , need to construct undirected graph


G 0 such that G has Hamiltonian Path iff G 0 has Hamiltonian path
Reduction
Replace each vertex v by 3 vertices: vin , v , and vout
A directed edge (a, b) is replaced by edge (aout , bin )

a c
v
b d

Chekuri CS473 17
Reduction Sketch

Goal: Given directed graph G , need to construct undirected graph


G 0 such that G has Hamiltonian Path iff G 0 has Hamiltonian path
Reduction
Replace each vertex v by 3 vertices: vin , v , and vout
A directed edge (a, b) is replaced by edge (aout , bin )

a c ao ci
v vi v vo
b d bo di

Chekuri CS473 17
Reduction: Wrapup

The reduction is polynomial time (exercise)


The reduction is correct (exercise)

Chekuri CS473 18
Graph Coloring

Input Given an undirected graph G = (V , E ) and integer k


Goal Can the vertices of the graph be colored using k
colors so that vertices connected by an edge do not
get the same color?

Chekuri CS473 19
Graph 3-Coloring

Input Given an undirected graph G = (V , E )


Goal Can the vertices of the graph be colored using 3
colors so that vertices connected by an edge do not
get the same color?

Chekuri CS473 20
Graph 3-Coloring

Input Given an undirected graph G = (V , E )


Goal Can the vertices of the graph be colored using 3
colors so that vertices connected by an edge do not
get the same color?

Chekuri CS473 20
Graph Coloring

Observation: If G is colored with k colors then each color class


(nodes of same color) form an independent set in G . Thus, G can
be partitioned into k independent sets iff G is k-colorable.

Chekuri CS473 21
Graph Coloring

Observation: If G is colored with k colors then each color class


(nodes of same color) form an independent set in G . Thus, G can
be partitioned into k independent sets iff G is k-colorable.

Graph 2-Coloring can be decided in polynomial time.

Chekuri CS473 21
Graph Coloring

Observation: If G is colored with k colors then each color class


(nodes of same color) form an independent set in G . Thus, G can
be partitioned into k independent sets iff G is k-colorable.

Graph 2-Coloring can be decided in polynomial time.

G is 2-colorable iff G is bipartite!

Chekuri CS473 21
Graph Coloring

Observation: If G is colored with k colors then each color class


(nodes of same color) form an independent set in G . Thus, G can
be partitioned into k independent sets iff G is k-colorable.

Graph 2-Coloring can be decided in polynomial time.

G is 2-colorable iff G is bipartite! There is a linear time algorithm


to check if G is bipartite using BFS (see Chapter 3 of
Kleiberg-Tardos book).

Chekuri CS473 21
Graph Coloring and Register Allocation

Register Allocation
Assign variables to (at most) k registers such that variables needed
at the same time are not assigned to the same register

Chekuri CS473 22
Graph Coloring and Register Allocation

Register Allocation
Assign variables to (at most) k registers such that variables needed
at the same time are not assigned to the same register

Interference Graph
Vertices are variables, and there is an edge between two vertices, if
the two variables are “live” at the same time.

Chekuri CS473 22
Graph Coloring and Register Allocation

Register Allocation
Assign variables to (at most) k registers such that variables needed
at the same time are not assigned to the same register

Interference Graph
Vertices are variables, and there is an edge between two vertices, if
the two variables are “live” at the same time.

Observations

Chekuri CS473 22
Graph Coloring and Register Allocation

Register Allocation
Assign variables to (at most) k registers such that variables needed
at the same time are not assigned to the same register

Interference Graph
Vertices are variables, and there is an edge between two vertices, if
the two variables are “live” at the same time.

Observations
[Chaitin] Register allocation problem is equivalent to coloring
the interference graph with k colors

Chekuri CS473 22
Graph Coloring and Register Allocation

Register Allocation
Assign variables to (at most) k registers such that variables needed
at the same time are not assigned to the same register

Interference Graph
Vertices are variables, and there is an edge between two vertices, if
the two variables are “live” at the same time.

Observations
[Chaitin] Register allocation problem is equivalent to coloring
the interference graph with k colors
Moreover, 3-COLOR ≤P k − Register Allocation, for any
k ≥3

Chekuri CS473 22
Class Room Scheduling

Given n classes and their meeting times, are k rooms sufficient?

Chekuri CS473 23
Class Room Scheduling

Given n classes and their meeting times, are k rooms sufficient?

Reduce to Graph k-Coloring problem

Create graph G
a node vi for each class i
an edge between vi and vj if classes i and j conflict

Chekuri CS473 23
Class Room Scheduling

Given n classes and their meeting times, are k rooms sufficient?

Reduce to Graph k-Coloring problem

Create graph G
a node vi for each class i
an edge between vi and vj if classes i and j conflict

Exercise: G is k-colorable iff k rooms are sufficient

Chekuri CS473 23
Frequency Assignments in Cellular Networks

Cellular telephone systems that use Frequency Division Multiple


Access (FDMA) (example: GSM in Europe and Asia and AT&T in
USA)
Breakup a frequency range [a, b] into disjoint bands of
frequencies [a0 , b0 ], [a1 , b1 ], . . . , [ak , bk ]
Each cell phone tower (simplifying) gets one band
Constraint: nearby towers cannot be assigned same band,
otherwise signals will interference

Chekuri CS473 24
Frequency Assignments in Cellular Networks

Cellular telephone systems that use Frequency Division Multiple


Access (FDMA) (example: GSM in Europe and Asia and AT&T in
USA)
Breakup a frequency range [a, b] into disjoint bands of
frequencies [a0 , b0 ], [a1 , b1 ], . . . , [ak , bk ]
Each cell phone tower (simplifying) gets one band
Constraint: nearby towers cannot be assigned same band,
otherwise signals will interference
Problem: given k bands and some region with n towers, is there a
way to assign the bands to avoid interference?

Can reduce to k-coloring by creating intereference/conflict graph


on towers

Chekuri CS473 24
3-Coloring is NP-Complete

3-Coloring is in NP
Certificate: for each node a color from {1, 2, 3}
Certifier: Check if for each edge (u, v ), the color of u is
different from that of v
Hardness: We will show 3-SAT ≤P 3-Coloring

Chekuri CS473 25
Reduction Idea

Start with 3-SAT formula ϕ with n variables x1 , . . . , xn and m


clauses C1 , . . . , Cm . Create graph Gϕ such that Gϕ is 3-colorable
iff ϕ is satisfiable
need to establish truth assignment for x1 , . . . , xn via colors for
some nodes in Gϕ .

Chekuri CS473 26
Reduction Idea

Start with 3-SAT formula ϕ with n variables x1 , . . . , xn and m


clauses C1 , . . . , Cm . Create graph Gϕ such that Gϕ is 3-colorable
iff ϕ is satisfiable
need to establish truth assignment for x1 , . . . , xn via colors for
some nodes in Gϕ .
create triangle with node True, False, Base

Chekuri CS473 26
Reduction Idea

Start with 3-SAT formula ϕ with n variables x1 , . . . , xn and m


clauses C1 , . . . , Cm . Create graph Gϕ such that Gϕ is 3-colorable
iff ϕ is satisfiable
need to establish truth assignment for x1 , . . . , xn via colors for
some nodes in Gϕ .
create triangle with node True, False, Base
for each variable xi two nodes vi and v¯i connected in a
triangle with common Base

Chekuri CS473 26
Reduction Idea

Start with 3-SAT formula ϕ with n variables x1 , . . . , xn and m


clauses C1 , . . . , Cm . Create graph Gϕ such that Gϕ is 3-colorable
iff ϕ is satisfiable
need to establish truth assignment for x1 , . . . , xn via colors for
some nodes in Gϕ .
create triangle with node True, False, Base
for each variable xi two nodes vi and v¯i connected in a
triangle with common Base
If graph is 3-colored, either vi or v¯i gets the same color as
True. Interpret this as a truth assignment to vi

Chekuri CS473 26
Reduction Idea

Start with 3-SAT formula ϕ with n variables x1 , . . . , xn and m


clauses C1 , . . . , Cm . Create graph Gϕ such that Gϕ is 3-colorable
iff ϕ is satisfiable
need to establish truth assignment for x1 , . . . , xn via colors for
some nodes in Gϕ .
create triangle with node True, False, Base
for each variable xi two nodes vi and v¯i connected in a
triangle with common Base
If graph is 3-colored, either vi or v¯i gets the same color as
True. Interpret this as a truth assignment to vi
Need to add constraints to ensure clauses are satisfied (next
phase)

Chekuri CS473 26
Figure

T F

v¯n
Base
v1
vn

v¯1
v¯2
v2

Chekuri CS473 27
Clause Satisfiability Gadget

For each cluase Cj = (a ∨ b ∨ c), create a small gadget graph


gadget graph connects to nodes corresponding to a, b, c
needs to implement OR

Chekuri CS473 28
Clause Satisfiability Gadget

For each cluase Cj = (a ∨ b ∨ c), create a small gadget graph


gadget graph connects to nodes corresponding to a, b, c
needs to implement OR

OR-gadget-graph:

a
a∨b

a∨b∨c
b

Chekuri CS473 28
OR-Gadget Graph

Property: if a, b, c are colored False in a 3-coloring then output


node of OR-gadget has to be colored False.

Property: if one of a, b, c is colored True then OR-gadget can be


3-colored such that output node of OR-gadget is colored True.

Chekuri CS473 29
Reduction

create triangle with nodes True, False, Base


for each variable xi two nodes vi and v¯i connected in a
triangle with common Base
for each clause Cj = (a ∨ b ∨ c), add OR-gadget graph with
input nodes a, b, c and connect output node of gadget to both
False and Base

a
a∨b
T
a∨b∨c
b
Base

c F

Chekuri CS473 30
Reduction

a
a∨b
T
a∨b∨c
b
Base

c F

Claim
No legal 3-coloring of above graph (with coloring of nodes T , F , B
fixed) in which a, b, c are colored False. If any of a, b, c are colored
True then there is a legal 3-coloring of above graph.

Chekuri CS473 31
Reduction Outline

Example
ϕ = (u ∨ ¬v ∨ w ) ∧ (v ∨ x ∨ ¬y )

Variable and negation


have complementary Palette
colours
T F
Literals get colour T or F

OR−gates

~u u

~v v

~w w

~x x

~y y

Chekuri CS473 32
Correctness of Reduction

ϕ is satisfiable implies Gϕ is 3-colorable


if xi is assigned True, color vi True and v¯i False

Chekuri CS473 33
Correctness of Reduction

ϕ is satisfiable implies Gϕ is 3-colorable


if xi is assigned True, color vi True and v¯i False
for each clause Cj = (a ∨ b ∨ c) at least one of a, b, c is
colored True. OR-gadget for Cj can be 3-colored such that
output is True.

Chekuri CS473 33
Correctness of Reduction

ϕ is satisfiable implies Gϕ is 3-colorable


if xi is assigned True, color vi True and v¯i False
for each clause Cj = (a ∨ b ∨ c) at least one of a, b, c is
colored True. OR-gadget for Cj can be 3-colored such that
output is True.

Chekuri CS473 33
Correctness of Reduction

ϕ is satisfiable implies Gϕ is 3-colorable


if xi is assigned True, color vi True and v¯i False
for each clause Cj = (a ∨ b ∨ c) at least one of a, b, c is
colored True. OR-gadget for Cj can be 3-colored such that
output is True.

Gϕ is 3-colorable implies ϕ is satisfiable


if vi is colored True then set xi to be True, this is a legal truth
assignment

Chekuri CS473 33
Correctness of Reduction

ϕ is satisfiable implies Gϕ is 3-colorable


if xi is assigned True, color vi True and v¯i False
for each clause Cj = (a ∨ b ∨ c) at least one of a, b, c is
colored True. OR-gadget for Cj can be 3-colored such that
output is True.

Gϕ is 3-colorable implies ϕ is satisfiable


if vi is colored True then set xi to be True, this is a legal truth
assignment
consider any clause Cj = (a ∨ b ∨ c). it cannot be that all
a, b, c are False. If so, output of OR-gadget for Cj has to be
colored False but output is connected to Base and False!

Chekuri CS473 33
Other NP-Complete Problems

3-Dimensional Matching
Subset Sum
Read book.

Chekuri CS473 34
Need to Know NP-Complete Problems

3-SAT
Circuit-SAT
Independent Set
Vertex Cover
Clique
Set Cover
Hamiltonian Cycle in Directed/Undirected Graphs
3-Coloring
3-D Matching
Subset Sum

Chekuri CS473 35
Subset Sum and Knapsack

Subset Sum Problem: Given n integers a1 , a2 , . . . , an and a target


B, is there a subset of S of {a1 , . . . , an } such that the numbers in
S add up precisely to B?

Chekuri CS473 36
Subset Sum and Knapsack

Subset Sum Problem: Given n integers a1 , a2 , . . . , an and a target


B, is there a subset of S of {a1 , . . . , an } such that the numbers in
S add up precisely to B?

Subset Sum is NP-Complete — see book.

Chekuri CS473 36
Subset Sum and Knapsack

Subset Sum Problem: Given n integers a1 , a2 , . . . , an and a target


B, is there a subset of S of {a1 , . . . , an } such that the numbers in
S add up precisely to B?

Subset Sum is NP-Complete — see book.

Knapsack: Given n items with item i having size si and profit pi , a


knapsack of capacity B, and a target profit P, is there a subset S
of items that can be packed in the knapsack and the profit of S is
at least P?

Chekuri CS473 36
Subset Sum and Knapsack

Subset Sum Problem: Given n integers a1 , a2 , . . . , an and a target


B, is there a subset of S of {a1 , . . . , an } such that the numbers in
S add up precisely to B?

Subset Sum is NP-Complete — see book.

Knapsack: Given n items with item i having size si and profit pi , a


knapsack of capacity B, and a target profit P, is there a subset S
of items that can be packed in the knapsack and the profit of S is
at least P?

Show Knapsack problem is NP-Complete via reduction from


Subset Sum (exercise).

Chekuri CS473 36
Subset Sum and Knapsack

Subset Sum can be solved in O(nB) time using dynamic


programming (exercise).

Chekuri CS473 37
Subset Sum and Knapsack

Subset Sum can be solved in O(nB) time using dynamic


programming (exercise).

Implies that problem is hard only when numbers a1 , a2 , . . . , an are


exponentially large compared to n. That is, each ai requires
polynomial in n bits.

Chekuri CS473 37
Subset Sum and Knapsack

Subset Sum can be solved in O(nB) time using dynamic


programming (exercise).

Implies that problem is hard only when numbers a1 , a2 , . . . , an are


exponentially large compared to n. That is, each ai requires
polynomial in n bits.

Number problems of the above type are said to be weakly


NP-Complete.

Chekuri CS473 37

You might also like