Part II
General Integer Programming
II.1
The Theory of Valid Inequalities
1
Let S = {xZ+n: Ax b}
P = {xR+n: Ax b}
S = P Zn
Have max{cx: xS} = max{cx: xconv(S)}. How can we construct
inequalities describing conv(S)? Use integrality and valid inequalities for P to
construct valid inequalities for S.
Def: Valid inequalities x 0 and x 0 are said to be equivalent if (, 0) =
(, 0) for some > 0.
x 0 dominates or is stronger than x 0 if they are not equivalent and
there exists > 0 such that and 0 0.
A maximal valid inequality is one that is not dominated by any other
inequality.
A maximal inequality for S defines a nonempty face of conv(S), but not
conversely.
Integer Programming 2011
2
Valid inequality for P = {xR+n: Ax b} ( not conv(S))
For all uR+m, v R+n, and R+1,
(uA - v)x ub + is valid for P
uAx ub is valid uAx ub + is valid
-x 0 is valid -vx 0 is valid (weakening0
(uA - v)x ub + is valid
Prop 1.1: (, 0) valid for P = {xR+n: Ax b}. Then x 0 equivalent to or
dominated by uAx ub, uR+m, if any of the following conditions hold:
a. P (In this case, no more than min(m, n) components of u need be positive)
b. {uR+m: uA }
c. A = 𝐴′
𝐼
Integer Programming 2011
3
Pf) a) max{x: xP} 0
Dual has optimal solution. Dual is min{ub: uA , u 0}
Take basic dual optimal solution
u0A , u0 0, u0b 0
min(m, n) of components of u0 is positive.
b) {uR+m: uA } . Dual feasible.
If P , case a)
If P = , assume 𝑢A .
If 𝑢b 0, done
Otherwise P = 𝑢 R+m such that 𝑢A 0, 𝑢b < 0.
for some > 0, (𝑢 + 𝑢)A , (𝑢 + 𝑢)b 0.
c) A = 𝐴′ . Clear that u R+n such that uA . Reduces to case b)
𝐼
Frequently assume A = 𝐴′ to avoid trouble when P = , D = .
𝐼
Integer Programming 2011
4
Integer Rounding
Ex: Matching problem on G = (V, E)
Constraints:
𝑒∈𝛿(𝑖) 𝑥𝑒
(1.2)
(1.3)
≤ 1 for all 𝑖 ∈ 𝑉
𝑥 ∈ 𝑍+|E|,
Can add constraints
(1.4)
𝑒∈𝐸(𝑈) 𝑥𝑒
≤ 𝑘, if |U| = 2k+1, k 1.
Constraints (1.4) cannot be obtained by taking nonnegative linear combination
of (1.2)
Integer Programming 2011
5
How to generate (1.4)?
½ (
𝑒∈𝛿(𝑖) 𝑥𝑒
𝑒∈𝐸(𝑈) 𝑥𝑒
≤ 1 ), 𝑖 ∈ 𝑈, and add up
1
2
+
𝑒∈𝛿(𝑈) 𝑥𝑒
−12𝑥𝑒 ≤ 0
≤ 12 𝑈
for all 𝑒 ∈ 𝛿(𝑈)
Add up (weakening in this step)
1
𝑥
≤
𝑈
𝑒
𝑒∈𝐸(𝑈)
2
Since 𝑥𝑒 ∈ {0, 1}, left-hand side is integral.
Therefore, we can replace the right-hand side by .
If 𝑈 is odd,
𝑒∈𝐸(𝑈) 𝑥𝑒 ≤
Integer Programming 2011
1
2
𝑈
is a valid inequality for S. (strengthening)
6
Chvatal-Gomory (C-G) Rounding Method
For the set 𝑆 = {𝑥 ∈ Z+n: 𝐴𝑥 ≤ 𝑏},
𝐴 = (𝑎1 , … , 𝑎𝑛 )
1.
𝑗∈𝑁(𝑢𝑎𝑗 )𝑥𝑗
≤ 𝑢𝑏 for all 𝑢 ≥ 0;
2.
𝑗∈𝑁(
3.
𝑛
(
𝑢𝑎
)𝑥
≤
𝑢𝑏
,
since
𝑥
∈
𝑍
implies
𝑗
𝑗
𝑗∈𝑁
𝑢𝑎𝑗 )𝑥𝑗 ≤ 𝑢𝑏, since 𝑥 ≥ 0 implies −
𝑗∈𝑁
𝑗∈𝑁(
𝑢𝑎𝑗 − 𝑢𝑎𝑗 𝑥𝑗 ≤ 0
𝑢𝑎𝑗 )𝑥𝑗 is an integer.
Step 2 is weakening and step 3 is strengthening
The procedure can be used recursively
Need at most n inequalities in the procedure (Prop 1.1)
Can generate all valid inequalities for S using C-G procedure
Integer Programming 2011
7
Optimizing over the First Chvátal closure
Ref: B&W, p187
𝑃 = {𝑥 ∈ R+n: 𝐴𝑥 ≤ 𝑏}
𝑃1 = {𝑥 ∈ R+n: 𝐴𝑥 ≤ 𝑏,
𝑛
𝑗=1(
𝑢′𝐴𝑗 )𝑥𝑗 ≤ 𝑢′ 𝑏 , ∀ 𝑢 ∈ R+m}
Separation problem for 𝑃1 : Given an 𝑥 ∗ ∈ 𝑃, we want to find a 𝑢 ∈ 𝑅+m such
that 𝛼′𝑥 ∗ > 𝛼0 , where 𝛼 = 𝑢′ 𝐴 and 𝛼0 = 𝑢′ 𝑏 , or prove that no such u exists.
(Formulation as a mixed integer program)
We can assume that 𝑢𝑖 < 1 when 𝑎𝑖 ∈ 𝑍 𝑛 , 𝑏𝑖 ∈ 𝑍.
Given 𝑥 ∗ , let 𝐽 𝑥 ∗ = {𝑗: 𝑥 j* > 0}.
maximize
subject to
Integer Programming 2011
𝑗∈𝐽(𝑥∗) 𝛼𝑗 𝑥 j −𝛼0
0 ≤ 𝑢′ 𝐴𝑗 − 𝛼𝑗 < 1,
0 ≤ 𝑢′ 𝑏 − 𝛼0 < 1,
𝑗 ∈ 𝐽 𝑥∗ ,
0 ≤ 𝑢𝑖 < 1,
𝑖 = 1, … , 𝑚,
𝛼𝑗 ∈ 𝑍,
𝑗 ∈ 𝐽 𝑥 ∗ ∪ {0}
*
8
Practically, we replace the strict inequalities, e.g. 𝑢𝑖 < 1, with the inequality
𝑢𝑖 ≤ 1 − 𝛿 for a small 𝛿 > 0.
Also using small number of positive 𝑢𝑖 ’s usually finds much more effective
cuts. Hence we introduce the term −𝑤 𝑚
𝑖=1 𝑢𝑖 for a small 𝑤 > 0 in the
objective function.
maximize
*
𝑗∈𝐽(𝑥∗) 𝛼𝑗 𝑥 j −𝛼0 − 𝑤
subject to 0 ≤ 𝑢′ 𝐴𝑗 − 𝛼𝑗 ≤ 1 − 𝛿,
Integer Programming 2011
𝑚
𝑖=1 𝑢𝑖
𝑗 ∈ 𝐽 𝑥∗ ,
0 ≤ 𝑢′ 𝑏 − 𝛼0 ≤ 1 − 𝛿,
0 ≤ 𝑢𝑖 ≤ 1 − 𝛿,
𝑖 = 1, … , 𝑚,
𝛼𝑗 ∈ 𝑍,
𝑗 ∈ 𝐽 𝑥 ∗ ∪ {0}
9
If we find good but not necessarily optimal solutions to the MIP, we find very
effective valid inequalities. Also heuristic methods to find good feasible
solutions to the MIP are helpful.
MIP model may not be intended as computational tools to solve real problems.
But we can examine the strength of rank-1 C-G inequalities to describe the
convex hull of S for various problems.
For some structured problems, e.g. knapsack problem, the separation problem
for the first Chvatal closure may have some structure which enables us to
handle the problem more effectively.
Integer Programming 2011
10
Modular Arithmetic
Valid inequality for the solutions of one linear equation.
S = {𝑥 ∈ Z+n:
𝑗∈𝑁 𝑎𝑗 𝑥𝑗
Sd = {𝑥 ∈ Z+n:
𝑗∈𝑁 𝑎𝑗 𝑥𝑗
= 𝑎0 }, 𝑎𝑗 ∈ 𝑅1 for all j.
= 𝑎0 + 𝑘𝑑 for some 𝑘 ∈ 𝑍1 }, 𝑑 is positive integer.
Valid inequality for Sd valid for S.
Let 𝑎𝑗 = 𝑏𝑗 + 𝛼𝑗 𝑑, 0 ≤ 𝑏𝑗 < 𝑑, 𝛼𝑗 is integer (𝑏𝑗 = remainder of 𝑎𝑗 /𝑑)
Sd = {𝑥 ∈ Z+n:
𝑗∈𝑁 𝑏𝑗 𝑥𝑗
𝑗∈𝑁 𝑏𝑗 𝑥𝑗
(
= 𝑏0 + 𝑘𝑑 for some 𝑘 ∈ 𝑍1 },
0, 𝑏0 < 𝑑, 𝑘 ≥ 0)
𝑗∈𝑁 𝑏𝑗 𝑥𝑗
𝑏0
Ex: 37𝑥1 − 68𝑥2 + 78𝑥3 + 𝑥4 = 141, xZ+4
d = 12 𝑥1 + 4𝑥2 + 6𝑥3 + 𝑥4 9,
𝑑=1
𝑗∈𝑁
𝑎𝑗 − 𝑎𝑗 𝑥𝑗 ≥ 𝑎0 − 𝑎0 : Gomory cutting plane
ex) 𝑥0 = 334 − 12𝑥1 + 74𝑥2 − 11
𝑥 , 𝑥𝑖 ∈ Z+1 for all i.
4 3
1
2
𝑥1 + 14𝑥2 + 34𝑥3 ≥ 34
Integer Programming 2011
11
Disjunctive Constraints
Prop 1.3: If
then,
𝑗∈𝑁 𝜋j
1𝑥
≤ 𝜋01 valid for 𝑆1 ⊂ 𝑅+n,
𝑗∈𝑁 𝜋j
2𝑥
𝑗
≤ 𝜋02 valid for 𝑆2 ⊂ 𝑅+n,
𝑗
𝑗∈𝑁 min(𝜋j
1,
j2)xj max(01, 02) is valid for 𝑆1 ⋃𝑆2 .
Disjunctive procedure: S = {xZ+n: Ax b}
(1)
𝑗∈𝑁(𝑢𝑎𝑗 )𝑥𝑗
≤ 𝑢𝑏, 𝑢 ≥ 0
(2) Given 𝛿 ∈ 𝑍+1, if
a)
𝑗∈𝑁 𝜋 j𝑥𝑗
− (𝑥k ) ≤ 𝜋0 is valid for S for some 0, and
b)
𝑗∈𝑁 𝜋j𝑥𝑗
+ (𝑥 k 1) ≤ 𝜋0 is valid for S for some 0, then
c)
𝑗∈𝑁 𝜋 j𝑥𝑗
≤ 𝜋0 is valid for S.
Integer Programming 2011
12
a)
− (𝑥 k ) ≤ 𝜋0 is valid for S
𝑗∈𝑁 𝜋j𝑥𝑗
𝛼 × ( 𝑥𝑘 ≤ 𝛿 )
b)
𝑗∈𝑁 𝜋j𝑥𝑗
𝑗∈𝑁 𝜋 j𝑥𝑗
≤ 𝜋0 is valid for 𝑆1 = 𝑆⋂{𝑥 ∈ 𝑍 +n : 𝑥𝑘 ≤ 𝛿}
+ (𝑥k 1) ≤ 𝜋0 is valid for S
𝛽 × ( −𝑥𝑘 ≤ − 𝛿 + 1 )
𝑗∈𝑁 𝜋j𝑥𝑗
≤ 𝜋0 is valid for 𝑆2 = 𝑆⋂{𝑥 ∈ 𝑍+n : 𝑥𝑘 ≥ 𝛿 + 1}
From Proposition 1.3,
𝑗∈𝑁 𝜋j𝑥𝑗
≤ 𝜋0 is valid for 𝑆1 ⋃𝑆2 .
D-inequalities
Ex: Figure 1.5
P = {xR+2: −𝑥1 + 𝑥2 ≤ 12,
1
2
𝑥1 + 𝑥2 ≤ 54, 𝑥1 ≤ 2}
1st ineq −14𝑥1 + 𝑥2 − 34𝑥1
≤ 12
2nd ineq −14𝑥1 + 𝑥2 − 34(1 − 𝑥1 ) ≤ 12
Using the disjunction 𝑥1 ≤ 0 or 𝑥1 ≥ 1 leads to valid inequality
−14𝑥1 + 𝑥2 ≤ 12 for 𝑆 = 𝑃⋂𝑍 2 .
Integer Programming 2011
13
Every valid inequality for disjunction D-inequality
Prop 1.4: 𝑃 = {𝑥 ∈ R+n: 𝐴𝑥 ≤ 𝑏}, suppose 𝐴 = 𝐴′ .
𝐼
𝜋𝑥 ≤ 𝜋0 valid for P’ = (𝑃 ∩ 𝑥: 𝑥𝑘 ≤ 𝛿 ) ∪ (𝑃 ∩ 𝑥: 𝑥𝑘 ≥ 𝛿 + 1 )
∃𝛼, 𝛽 ≥ 0 such that
𝑗∈𝑁 𝜋j𝑥𝑗
− (𝑥k ) ≤ 𝜋0,
𝑗∈𝑁 𝜋 j𝑥𝑗
+ (𝑥k 1) ≤ 𝜋0 valid for P.
Pf) 𝜋𝑥 ≤ 𝜋0 valid for P’ 𝜋𝑥 ≤ 𝜋0 valid for 𝑃 ∩ {𝑥: 𝑥𝑘 ≤ 𝛿} and 𝑃 ∩
{𝑥: 𝑥𝑘 ≥ 𝛿 + 1}.
By Prop 1.1, ∃ 𝑢1 , 𝛼 , (𝑢2 , 𝛽) ≥ 0 such that
𝑢1 𝐴 + 𝛼𝑒𝑘 ≥ 𝜋, 𝑢1 𝑏 + 𝛼𝛿 ≤ 𝜋0 (𝑢1 𝐴 ≥ 𝜋 − 𝛼𝑒𝑘 , 𝑢1 𝑏 ≤ 𝜋0 − 𝛼𝛿)
𝑢2 𝐴 − 𝛽𝑒𝑘 ≥ 𝜋, 𝑢2 𝑏 − 𝛽(𝛿 + 1) ≤ 𝜋0 (𝑢2 𝐴 ≥ 𝜋 + 𝛽𝑒𝑘 , 𝑢2 𝑏 ≤ 𝜋0 +
𝛽(𝛿 + 1))
𝑢𝑖 𝐴𝑥 ≤ 𝑢𝑖 𝑏 are valid for P and are equal to or dominate
𝜋𝑥 − 𝛼(𝑥𝑘 − 𝛿) ≤ 𝜋0 and 𝜋𝑥 − 𝛽(𝛿 + 1 − 𝑥𝑘 ) ≤ 𝜋0 . Hence these are valid
for P.
Integer Programming 2011
14
Boolean Implications
𝑆 = {𝑥 ∈ 𝐵𝑛 :
𝑗∈𝑁 𝑎𝑗 𝑥𝑗
≤ 𝑏}, 𝑎𝑗′ 𝑠, 𝑏 are positive integers.
S is the feasible set for a 0-1 knapsack problem.
Let 𝐶 ⊂ 𝑁 be such that
𝑗∈𝐶 𝑥𝑗
𝑗∈𝐶 𝑎𝑗
>𝑏
≤ 𝐶 − 1 is valid for S. (important result)
𝑇 = {𝑥 ∈ 𝐵1 , 𝑦 ∈R+n:
𝑗∈𝑁 𝑦𝑗
≤ 𝑛𝑥, 𝑦𝑗 ≤ 1, ∀𝑗 ∈ 𝑁}
𝑦𝑗 ≤ 𝑥, 𝑗 ∈ 𝑁 is valid for T.
Integer Programming 2011
15
Geometric or Combinatorial Implication
Node packing: 𝑥𝑖 + 𝑥𝑗 ≤ 1, ∀ 𝑖, 𝑗 ∈ 𝐸, 𝑥 ∈ 𝐵|𝑉|
1
2
5
6
3
Integer Programming 2011
4
7
𝑥4 + 𝑥5 + 𝑥6 + 𝑥7 ≤ 1
(clique constraint)
𝑥1 + 𝑥2 + 𝑥3 + 𝑥4 + 𝑥5 ≤2
(odd hole constraint)
Using C-G to obtain odd hole constraint:
𝑥1 + 𝑥2 ≤ 1
𝑥2 + 𝑥3 ≤ 1
𝑥3 + 𝑥4 ≤ 1
𝑥4 + 𝑥5 ≤ 1
𝑥1
+ 𝑥5 ≤ 1
Multiply ½ on both sides and add
𝑥1 + 𝑥2 + 𝑥3 + 𝑥4 + 𝑥5 ≤ 52 = 2
16
© Copyright 2026 Paperzz