6. The Most Difficult NP Problems: The Class NPC
ο± Polynomial transformation:
Given ππ = π·π , πΉπ , π = 1,2
β function π: π·1 β π·2 such that π(π) β πΉ2 iff π β πΉ1 .
If the function π is computable in time that is polynomial in the length of the
encoding of π, then π1 is said to be polynomially transformable to π2.
(notation: π1 β π2 , πΏ1 β πΏ2 ( in language term))
ο± Note that π1 β π2 means that π2 is no easier than π1 in terms of polynomial
time solvability. If we can solve π2 in polynomial time (find βyesβ, βnoβ
answer using deterministic algorithm), then we can answer whether any given
instance of π1 is βyesβ or βnoβ in polynomial time. But, the converse may not
hold.
Integer Programming 2015
1
ο± Polynomial reduction:
π1 is polynomially reducible to π2 if β algorithm for π1 that uses algorithm
for π2 as a subroutine and runs in polynomial time assuming each call to the
subroutine takes unit time.
( recall Opt and Feas for 0-1 IP problem)
( transformation is a special case of reduction)
ο± Polynomial transformation also called Karp reduction, ο΅ (GJ).
Polynomial reduction called Turing reduction, ο΅π (GJ).
ο± Prop: If π1 is polynomially transformable (reducible) to π2, and π2 β π, then
π1 β π.
ο± Def: π1 is a special case of π2 if π·1 β π·2 and πΉ1 = π·1 β© πΉ2 .
( Use identity transformation π π = π.)
Integer Programming 2015
2
ο± Def: π β ππ is said to be ππ βcomplete if all problems in ππ can be
polynomially reduced (transformed) to π.
The set of ππ βcomplete problems is denoted by πππΆ.
ο± ππ βcomplete problem is the hardest problem in ππ since the existence of
a polynomial time algorithm for any ππ βcomplete problem implies that all
the problems in ππ can be solved in polynomial time.
ο± Prop 6.3: If π is ππ βcomplete, then π = ππ iff π β π.
( π β© πππΆ β β
βΉ π = ππ )
Pf) π β ππ and π = ππ βΉ π β π.
π β π β© πππΆ βΉ β poly time alg. for any problem in ππ.
Hence ππ β π. Also π β ππ. So π = ππ. ο
ο± Prop 6.4: If π1 is ππ βcomplete, π1 β π2 and π2 β ππ, then π2 is
ππ βcomplete.
( Be careful about the direction of the transformation.)
Integer Programming 2015
3
ο± Is πππΆ β β
?
ο± First ππ βcomplete problem found:
Satisfiability problem (Cook, 1971)
Given a set π of Boolean variables and a collection πΆ of clauses over π, is
there a satisfying truth assignment for πΆ?
π
π
( Is there a truth assignment to β§πβπΆ {β¨π=1
π’π ππ π’π }? )
( ο : and, ο : or )
ex) Given (π’1 β¨ π’3 ) β§ (π’1 β¨ π’2 β¨ π’3 ) β§ (π’2 β¨ π’3 ),
a truth assignment is π’1 = true, π’2 = false, π’3 = false
ο± Thm 6.5: (Cook) The satisfiability problem (SAT) is ππ βcomplete.
Pf) polynomial transformation of any NDTM into the satisfiability problem.
(GJ, pp.38-44)
Integer Programming 2015
4
ο± Prop 6.6: 0-1 IP feasibility problem is ππ βcomplete.
Pf) clearly in ππ.
Let each clause be πΆπ = (πΆπ+ , πΆπβ ). Then (SAT) is satisfiable iff
{π₯ β π΅π :
πβπΆπ+ π₯π
+
πβπΆπβ
1 β π₯π β₯ 1, π β πΆ is feasible.
We have a function that transforms any instance of (SAT) to an in stance of 01 IP feasibility. ο
ο± Note that we transform an arbitrary instance of (SAT) to a (specific) instance
of 0-1 IP feasibilty, which depends on the given instance of (SAT). The
rationale is that if there exists an efficient algorithm to solve any instance of 01 IP feasibility, we can apply the algorithm to the transformed instance to
solve any arbitrary instance of (SAT). So it is unlikely that such efficient
algorithm for 0-1 IP feasibility exists since the existence of such algorithm
implies that we can solve (SAT) easily and solve all problems in ππ easily.
Integer Programming 2015
5
ο± Boundary between π and πππΆ:
π₯ β π΅π : π΄π₯ β€ 1, ππ₯ β₯ π§ β β
? π΄: π × π 0-1 matrix.
οtwo 1βs in each column of π΄ (node-edge incidence matrix) :
matching problem β π
οThree 1βs in each column β πππΆ
οOne 1 in each row β π
οTwo 1βs in each row (edge-node incidence matrix) :
node packing problem β πππΆ
ο± Be careful about the distinction between the feasibility problem itself and the
0-1 IP formulation.
Integer Programming 2015
6
ο± Unweighted node packing problem (independent set, stable set):
Given a graph πΊ = π, πΈ , β π β π such that π β₯ π and π is a node
packing?
ο± Prop 6.7: The lower bound feasibility problem for unweighted node
packing is ππ βcomplete.
Pf) in ππ. transform from (SAT)
πΆπ+
ex)
1
2
3
4
{1, 2} {3}
{2, 3} {4}
{4} {1, 2}
{3}
β
ο£ clauses = π, ο£ vars = π
set π = π
{1, 3} = βtrueβ, {2, 4} = βfalseβ
Integer Programming 2015
(1, 1)
πΆπβ
(5, 3)
(2, 1)
(7, 1)
(6, 3)
(3, 4)
(3, 2)
(4, 3)
(8, 2)
(2, 2)
7
ο± Then the given instance of (SAT) has truth assignment iff β node packing of
size π.
ο± Note that π is set depending on the given instance of (SAT). It is not an
arbitrary number.
ο± If we want to claim that IP feasibility formulation of node packing lower
bound feasibility is ππ βcomplete, we need to transform the node packing to
the IP formulation.
Integer Programming 2015
8
ο± Clique: Given πΊ = π, πΈ , π β π is called a clique if π£, π€ β π βΉ (π£, π€) β
πΈ. (complete subgraph of G)
ο± Clique problem: Given πΊ = (π, πΈ) and positive integer π, β a clique of size
β₯ π?
ο± Prop: Clique problem is ππ βcomplete
Pf) in ππ. Independent set (node packing) β clique
Given an instance of node packing πΊ, π , construct πΊ π = π, πΈ , πΈ =
{ π, π : (π, π) β πΈ, π, π β π}. Set π = π.
Then π β π is an independent set for πΊ iff π is a clique for πΊ π .
Hence πΊ has an independent set of size π iff πΊ π has a clique of size π. ο
Integer Programming 2015
9
ο± Vertex cover: Given πΊ = π, πΈ , π β π is called a vertex cover if all
edges in πΊ are incident to at least one vertex in π.
ο± Vertex cover problem: Given πΊ = π, πΈ , β a vertex cover of size β€ π?
(ππ βcomplete)
Pf) in ππ. clique β vertex cover
Given an arbitrary instance of clique πΊ, π , construct an instance of
vertex cover. Construct πΊ π and set π = π β π.
Then π β π is a clique of size π in πΊ βΊ π β π is a vertex cover of
size π β π in πΊ π .
(βΉ) nodes in π not connected by edges in πΊ π .
βΉ edges in πΊ π incident to at least one node in π β π.
βΉ π β π vertex cover in πΊ π .
(βΈ) every edge in πΊ π is incident to at least one node in π β π
βΉ no edge in πΊ π connects nodes in π.
βΉ π clique in πΊ.
ο
Integer Programming 2015
10
ο± Relation between node packing (independent set), clique, vertex cover:
πΊ = π, πΈ , π β π
οπ is a vertex cover for πΊ.
οπ β π is a node packing for πΊ.
οπ β π is a clique in πΊ π .
Integer Programming 2015
11
Six Basic NP-complete Problems (GJ)
ο± 3-Satisfiability (3SAT)
Instance: Collection πΆ = {π1 , π2 , β¦ , ππ } of clauses on a finite set π of
variables such that ππ = 3 for 1 β€ π β€ π.
Question : Is there a truth assignment for π that satisfies all the clauses in πΆ?
ο± 3 βDimensional Matching (3DM)
Instance : A set π β π × π × π, where π, π, and π are disjoint sets having
the same number π of elements.
Question : Does π contain a matching, that is, a subset πβ² β π such that
πβ² = π and no two elements of πβ² agree in any coordinate ?
(generalization of marriage problem.)
Integer Programming 2015
12
ο± Vertex Cover
ο± Clique
ο± Hamiltonian Circuit:
Instance : A graph πΊ = (π, πΈ)
Question : Does πΊ contain a Hamiltonian circuit, that is, an ordering <
π£1 , π£2 , β¦ , π£π > of the vertices of πΊ, where π = π , such that {π£π , π£1 } β πΈ
and {π£π , π£π+1 } β πΈ for all π, 1 β€ π < π?
ο± Partition:
Instance : A finite set π΄ and a βsizeβ π (π) β π + for each π β π΄.
Question : Is there a subset π΄β² β π΄ such that
πβπ΄β² π (π) = πβπ΄βπ΄β² π (π) ?
Integer Programming 2015
13
Proving NP-completeness
ο± Set partitioning feasibility problem :
Given an π × π 0 β 1 matrix π΄, is π₯ β π΅π : π΄π₯ = 1 β β
?
ο± Prop 6. 8: Set partitioning feasibility problem is ππ βcomplete.
Pf) In ππ. Lower bound feasibility problem for unweighted node packing β
Set partitioning feasibility problem
Given an instance of node packing πΊ, π , let π΄ be ( πΈ + π) × ( πΈ + π π )
matrix defined as follows.
ο©I E
οͺ0
οͺ
Aο½οͺ 0
οͺο
οͺ
οͺο« 0
AG
1
ο
0
AG
1
ο
AG
0
1
ο
ο
ο
0
0
0
1 ο
0
ο
ο
1
ο
οΉ
οΊ
οΊ
οΊ
οΊ
οΊ
1οΊο»
= [π΅0 , π΅1 , π΅2 , β¦ , π΅π ]
( π΄πΊ is edge-node incidence matrix of πΊ.)
Integer Programming 2015
14
π΄π₯ = 1 feasible βΉ pick π distinct columns of π΄πΊ β²s βΉ node packing
of size π. Similarly, for converse.
Hence π node packing of πΊ βΊ set partitioning feasible with π columns
(variables) = 1
ο
ο± Prop 6. 9: The set partitioning feasibility problem in which matrix π΄ has,
at most, three 1βs per column is ππ βcomplete.
Integer Programming 2015
15
ο± Ex. of Prop 6.8 )
2
π1
π3
π4
1
3
π5
π2
4
1
ο©1
οͺ 1
1
οͺ
1
0
οͺ
π΄= οͺ
1
0
οͺ
οͺ
1 0
οͺ
οͺ0 0 0 0 0 1
οͺο«0 0 0 0 0
Integer Programming 2015
1 0 0 1 1 0 0οΉ
0 0 1 1 0 0 1οΊ
οΊ
1 1 0 0 1 1 0οΊ
1 0 1 0 1 0 1οΊοΊ
0 1 1 0 0 1 1οΊ
οΊ
1 1 1
οΊ
1 1 1 1οΊο»
16
ο± Subset sum problem:
Given an integer π, integral π βvector π1 , β¦ , ππ , and integer π, is
π₯ β π΅π : πβπ ππ π₯π = π β β
?
ο± Prop 6.10: The subset sum problem is ππ βcomplete.
Pf) in ππ. Set partitioning feasibility problem β subset sum.
Given an π × π 0-1 matrix π΄, construct an instance of subset sum as
follows.
1
( n ο« 1)
( n ο« 1)
2
ο
( n ο« 1) m ο1
ο©1
οͺ0
οͺ
οͺ1
οͺο
οͺ
οͺο«1
0οΉ
ο©1οΉ
οͺ1οΊ
1
1οΊ
οΊ
οͺοΊ
0 ο 0οΊ x ο½ οͺ1οΊ
οͺο οΊ
ο
ο οΊοΊ
οͺοΊ
οͺο«1οΊο»
0
1οΊο»
1
a1 a2 ο an
Integer Programming 2015
b
a j ο½ ο₯imο½1 (n ο« 1)i ο1 aij , for j ο½ 1,..., n
bο½
i ο1
ο₯imο½1 (n ο« 1)
ο½
( n ο«1) m ο1
n
( π βth column of π΄ is representation of
ππ using (π + 1) symbols.)
17
ο± 0-1 knapsack lower bound feasibility problem:
Given an integer π, integral π βvectors (π1 , β¦ ππ ) and π1 , β¦ , ππ , and
integers π and π§, is
π₯ β π΅π :
πβπ ππ π₯π
β€ π,
πβπ ππ π₯π
β₯ π§ β β
? (ππ βcomplete)
Pf) in ππ.
Subset sum problem can be reformulated as
{π₯ β π΅π :
πβπ ππ π₯π
β€ π,
πβπ ππ π₯π
β₯ π}.
Hence it is a special case of 0-1 knapsack lower bound feasibility. Since
special case is ππ βcomplete, more general case is ππ βcomplete. ( recall
the definition of special case. It is identity transformation ( or any obvious
one-to-one correspondence between the instances.)
(special case also called βrestrictionβ and one of the easiest and widely used
proving techniques.)
ο± Note that 0-1 knapsack is not a special case of integer knapsack.
Integer Programming 2015
18
More examples of Restriction
ο± Variants of Hamiltonian Circuit :
οHamiltonian Path: Same as HC except that we drop the requirement that the first
and the last vertices in the sequence be joined by an edge.
οHamiltonian Path between Two Points: same as HP except that two points π’, π£ are
given as input and the question is whether πΊ contains a HP beginning with π’ and
ending with π£.
ο± All three problems ππ βcomplete
ο± For directed graph?
transform each undirected problem to a directed problem by replacing each
edge of πΊ by two parallel arcs of opposite direction. Undirected version is a
special case of directed version.
Integer Programming 2015
19
ο± Bounded Degree Spanning Tree :
Instance : A graph πΊ = (π, πΈ) and a positive integer π β€ π β 1.
Question : Is there a spanning tree for πΊ in which no vertex has degree
exceeding π, that is, a subset πΈβ² β πΈ such that πΈ β² = π β 1, the graph πΊ β² =
(π, πΈ β² ) is connected, and no vertex in π is included in more than π edges from
Eβ²?
Restrict to Hamiltonian Path by allowing only instances in which π = 2. HP
is a special case of BDST with π = 2.
Integer Programming 2015
20
ο± Multiprocessor Scheduling:
Instance : A finite set π΄ of βtasksβ, a βlengthβ π(π) β π + for each π β π΄, a
number π β π + of βprocessorsβ, and a βdeadlineβ π· β π + .
Question : Is there a partition π΄ = π΄1 βͺ π΄2 βͺ β― βͺ π΄π of π΄ into π disjoint sets
such that
max
πβπ΄π π
π : 1 β€ π β€ π β€ π·?
Restrict to partition by allowing only instances in which π = 2 and π· =
1
2
πβπ΄ π(π).
Integer Programming 2015
21
ο± Longest Path:
Instance : Graph πΊ = π, πΈ , positive integer π β€ |π|
Question : Does πΊ contain a simple path (that is, a path encountering no vertex
more that once) with π or more edges ?
Restrict to Hamiltonian Path, i.e. set π = π β 1
ο± Set Packing:
Instance : Collection πΆ of finite sets, positive integer π β€ |πΆ|
Question : Does πΆ contain π disjoint sets ?
Restrict to Exact Cover by 3 βSets, i.e. restrict π = 3, for all π β πΆ and π =
π.
Integer Programming 2015
22
ο± Exact Cover by 3 βSets (X3C): (ππ βcomplete)
Instance : A finite set π with π = 3π and a collection πΆ of 3-element subsets
of π.
Question : Does πΆ contain an exact cover for π, that is, a subcollection of πΆβ² β
πΆ such that every element of π occurs in exactly one member of πΆ β² ?
Note that 3DM is a restricted version of X3C, hence X3C is ππ βcomplete.
Compare to NW p115, 117 in representing the problems.
Integer Programming 2015
23
ο± Proving Traveling Salesman Problem is ππ βcomplete.
Instance : Set πΆ of π cities, distance π(ππ , ππ ) β π + for each pair of cities
ππ , ππ β πΆ, a positive integer π΅.
Question : Is there a tour of πΆ having length π΅ or less, i.e., a permutation <
ππ(1) , ππ(2) , β¦ , ππ π > of πΆ such that
πβ1
πΌ=1 π
ππ π , ππ
π+1
+ π ππ
π
, ππ
1
β€ π΅?
Pf) In ππ. HC β TSP
Given πΊ = π, πΈ , construct an instance of TSP as follows.
Let ππ = π£π , π£π β π. Let π ππ , ππ = 1 if (π£π , π£π ) β πΈ and = 2 if (π£π , π£π ) β πΈ.
Set π΅ = |π|.
Then πΊ has a HC iff TSP has a tour with length β€ π΅.
ο
Integer Programming 2015
24
ο± If π β ππ, then πππΆ βͺ π β ππ. ( i.e. there are problems of intermediate
difficulty.)
ππ β (π βͺ πππΆ) is called πππΌ (Intermediate)
ο± Note
οMembers in πππΌ not equivalent in terms of polynomial transformation.
( infinite number of equivalent classes.)
οOnly artificial examples known. Have been looking for natural problems in
πππΌ.
οComposite number, LP regarded as candidates in πππΌ.
οComposite Number : Given positive integer π, are there integers π, π > 1
such that π = ππ?
Integer Programming 2015
25
οNote that composite number is in ππ and its complementary problem (Primes)
is to check the primality of a given prime number. There exists a short proof
to check primality. Hence Composite Number is in ππ β© πΆπππ. So it is
unlikely that composite number is ππ βcomplete by Prop 6.12.
Composite number was proven to be in π in 2002.
NPC
NP
NPI
P
Integer Programming 2015
26
NP
CoNP
NPC
P
ο± Prop 6. 12: If πππΆ β© πΆπππ β β
, then ππ = πΆπππ (It is unlikely that
any problem in ππ β© πΆπππ is ππ βcomplete)
Pf) If π β ππ βΉ there exists polynomial transformation π such that
π β π for π β πππΆ β© πΆπππ
Since π β πΆπππ, π β ππ. For an instance in π, π maintains βyesβ βnoβ
answer after the transformation.
If a βnoβ instance in π is given, we can apply π to it, and obtain an
instance in π which has βnoβ answer. Since π β ππ, we can verify the
βnoβ by polynomial time NDTM.
So βnoβ instance in π can be verified βΉ π β πΆπππ βΉ ππ β πΆπππ
Similarly, for the other direction.
ο
Integer Programming 2015
27
Status of Open Problems in GJ
ο± Source : Pulleyblank, MPS 2000 tutorial
ο± 1. Graph Isomorphism
2. Subgraph homeomorphism for a fixed graph
3. Graph genus
4. Chordal graph completion
5. Chromatic index
6. Spanning tree parity
7. Partial Order Dimension
8. Precedence constrained 3-processor schedu
9. Linear Programming
10. Total Unimodularity
11. Composite number
12. Minimum length triangulation
Integer Programming 2015
open
π
ππ βcomplete
ππ βcomplete
ππ βcomplete
π
ππ βcomplete
open
π
π
open (π)
open
28
NP-complete in the strong sense (strongly NPcomplete)
ο± Refer GJ. p90 ο± Recall that β π(ππ) algorithm for 0-1 knapsack problem (also subset sum).
Though 0-1 knapsack feasibility is ππ βcomplete, π(ππ) is less formidable
than π(2π ). If π is small (polynomial of π ), the algorithm runs in
polynomial time for the restricted case.
called pseudo-polynomial time algorithm.
ο± Q) β pseudo-polynomial time algorithms for other ππ βcomplete problems
involving numbers like π?
e.g.) TSP feasibility, Multiprocessor scheduling.
ο± Problems like clique, vertex cover do not have pseudo-polynomial time
algorithms.
ο± Some problems involving numbers do not have even pseudo-polynomial
time algorithms.
Integer Programming 2015
29
ο± For each instance πΌ β π·Ξ of decision problem Ξ , define the functions
Length[πΌ]: length of encoding of πΌ.
Max[πΌ]: magnitude of largest number in πΌ. (not the size of encoding)
ο± Def: An algorithm for Ξ is called a pseudo-polynomial time algorithm
for Ξ if its time complexity function is bounded above by a polynomial
function of Length[πΌ] and Max[πΌ].
(In NW, polynomial running time in unary encoding )
ο± Def: A problem Ξ is called a number problem if there exists no
polynomial π such that Max[πΌ] β€ π(Length[πΌ]) for all πΌ β π·Ξ
e.g) knapsack, partition
Integer Programming 2015
30
ο± Let Ξ π be subproblem of Ξ restricted to instances such that Max[πΌ] β€
π(Length[πΌ]) .
Then if β pseudo-polynomial time algorithm for Ξ βΉ Ξ π solvable in
polynomial time.
ο± Def: A decision problem Ξ is ππ βcomplete in the strong sense
(strongly ππ βcomplete) if Ξ is in ππ and there exists a polynomial
function π for which Ξ π is ππ βcomplete.
It is the problem class for which there might not exist even pseudopolynomial time algorithms.
If a problem is not a number problem and ππ βcomplete, then it is
automatically strongly ππ βcomplete.
ο± NW: Feasibility problem π is called strongly ππ βcomplete if the
existence of a pseudo-polynomial time algorithm for it implies π = ππ.
Integer Programming 2015
31
ο± Ex)
0-1 IP feasibility with coefficients 0, +1, -1
satisfiability, size of numbers in r.h.s. also small)
(transformation from
TSP: HC β TSP. Edge weights 1 or 2 π΅ = |π|.
Hence, all instances with this transformation satisfy Max[I]β€ π(Length[πΌ])
and ππ βcomplete. So TSP is strongly ππ βcomplete (Length[πΌ] =
π + log π + log π(π, π))
3-Partition:
Instance: A finite set π΄ of 3π elements, a bound π΅ β π + , and a βsizeβ
π΅
π΅
π (π) β π + for each π β π΄, such that π (π) satisfies < π π < and such
4
2
that πβπ΄ π (π) = ππ΅.
Question : Can π΄ be partitioned into π disjoint sets π1 , π2 , β¦ , ππ such
that, for 1 β€ π β€ π, πβππ π (π) = π΅?
Integer Programming 2015
32
Multiprocessor Scheduling
Sequencing within intervals:
Instance: A finite set π of βtasksβ and, for each π‘ β π, an integer βrelease timeβ
π(π‘) β₯ 0, a βdeadlineβ π π‘ β π + , and a βlengthβ π π‘ β π + .
Question: Does there exist a feasible schedule for π, that is, a function π: π β
π + such that, for each π‘ β π, π π‘ β₯ π π‘ , π π‘ + π π‘ β€ π π‘ , and, if π‘ β² β
π β π‘ , then either π π‘ β² + π(π‘ β² ) β€ π(π‘) or π π‘ β² β₯ π π‘ + π π‘ ?
Integer Programming 2015
33
ο± Proving strong ππ βcompleteness by considering restricted problem may
be tedious.
Use pseudo-polynomial transformation from a strongly
ππ βcomplete problem.
ο± Def: A pseudo-polynomial transformation from Ξ to Ξ β² is a function π :
π·Ξ β π·Ξ β² such that
ο For all πΌ β π·Ξ , πΌ β πΞ if and only if π πΌ β πΞ β² ,
ο π can be computed in time polynomial in the two variables Max[πΌ] and
Length[πΌ],
ο β a polynomial π1 such that, for all πΌ β π·Ξ ,
π1 (Lengthβ[π(πΌ)]) β₯ Length[πΌ]
( size of transformed length does not shrink too much.)
ο β a two variable polynomial π2 such that, for all πΌ β π·Ξ ,
Maxβ[π(πΌ)] β€ π2 (Max[πΌ], Length[πΌ])
( magnitude of the largest number does not blow up exponentially)
Integer Programming 2015
34
ο± Lemma: If Ξ is ππ βcomplete in the strong sense, Ξ β² β ππ, and there
exists a pseudo-polynomial transformation from Ξ to Ξ β² , then Ξ β² is
ππ βcomplete in the strong sense.
ο± Note that the transformation from set partitioning feasibility (which is
strongly ππ β complete) to subset sum is not a pseudo-polynomial
transformation.
Maxβ[ π(πΌ) ] ( π = π + 1 π β 1 /π) is not bounded by any poly
function of Length[πΌ] ( ππ ).
Hence the existence of pseudo-polynomial time algorithm for subset sum
cannot be ruled out.
Also, if π is ππ βcomplete and π β π, and if there exists a pseudopolynomial time algorithm for π, it does not necessarily imply the
existence of a pseudo-polynomial time algorithm for π.
Integer Programming 2015
35
NP-hard Problems
ο± GJ Chapter 5
ο± Search problem Ξ :
Given an instance πΌ β π·Ξ , return string π , such that π β πΞ [πΌ] or decide
no such string π exists. (πΞ [πΌ] : solutions of πΌ)
( Decision problem may be regarded as a special case of search problem
by defining πΞ πΌ = {βyesβ} if πΌ β πΞ and πΞ πΌ = β
if πΌ β πΞ )
ο± Def: A polynomial time Turing reduction (or simply Turing reduction)
from a search problem Ξ to a search problem Ξ β² is an algorithm π΄ that
solves Ξ by using a hypothetical subroutine π for solving Ξ β² such that, if
π were a polynomial time algorithm for Ξ β², then π΄ would be a polynomial
time algorithm for Ξ (the subroutine may be used many times and Ξ
and Ξ β² need not be feasibility problems)
Integer Programming 2015
36
ο± Def: A search problem Ξ is ππ βhard if there exists an ππ βcomplete
problem Ξ β² such that Ξ β² β π Ξ (Turing reducible)
(Ξ is at least as hard as ππ βcomplete problem Ξ β² and Ξ is search problem
(optimization problem))
ο± Recall (0-1 IP FEAS) β π (0-1 IP OPT)
ο± Def: A search problem Ξ is called ππ βeasy if there exists a Ξ β² β ππ such
that Ξ β π Ξ β²
( search problem Ξ is no harder than ππ βcomplete problems.
Recall (0-1 IP OPT) β π (0-1 IP FEAS) )
Integer Programming 2015
37
ο± A search problem Ξ is called ππ βequivalent if both ππ βhard and
ππ βeasy. (has the same degree of difficulty as an ππ βcomplete
problem in terms of polynomial time solvability.)
To show that an optimization problem is difficult to solve (ππ βhard), it
is enough to show that the corresponding feasibility problem is
ππ βcomplete and the optimization problem is Turing reducible from the
feasibility problem (usually trivial).
Some people use the term ππ βcomplete for optimization problems too.
Integer Programming 2015
38
Optimization and Separation
ο± Relates the complexity of a class of optimization problem over certain
polyhedra with the separation problem for the polyhedra.
ο± Optimization, separation trivial if π΄: π × π is given explicitly. But if
polyhedron is given as conv(π) where π is set of feasible solutions, the story
is different.
ex) π₯ β β conv π ? for node packing is nontrivial if π₯ β is fractional.
ο± Separation problem:
Given π₯ β β π
π , is π₯ β β conv π ? If not, find an inequality ππ₯ β€ π0 satisfied
by all points in π, but violated by the point π₯ β .
Integer Programming 2015
39
ο± Thm: Optimization problem over a class of polyhedra is polynomially
solvable if and only if the separation problem for the polyhedra is
polynomiallly solvable.
Integer Programming 2015
40
© Copyright 2026 Paperzz