Part II General Integer Programming II.1 The Theory of Valid Inequalities
Let 𝑆={𝑥∈ 𝑍 + 𝑛 :𝐴𝑥≤𝑏} 𝑃={𝑥∈ 𝑅 + 𝑛 :𝐴𝑥≤𝑏} 𝑆=𝑃∩ 𝑍 𝑛 Have max 𝑐𝑥:𝑥∈𝑆 = max{𝑐𝑥:𝑥∈conv 𝑆 }. How can we construct inequalities describing conv(𝑆)? Use integrality and valid inequalities for 𝑃 to construct valid inequalities for 𝑆. Def: Valid inequalities 𝜋𝑥≤ 𝜋 0 and 𝛾𝑥≤ 𝛾 0 are said to be equivalent if 𝛾, 𝛾 0 =𝜆(𝜋, 𝜋 0 ) for some 𝜆>0. 𝛾𝑥≤ 𝛾 0 dominates or is stronger than 𝜋𝑥≤ 𝜋 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 𝑆 defines a nonempty face of conv(𝑆), but not conversely. Integer Programming 2017
Want valid inequalities for conv(𝑆), but start with 𝑃. Valid inequality for 𝑃={𝑥∈ 𝑅 + 𝑛 :𝐴𝑥≤𝑏} (not conv(𝑆)) For all 𝑢∈ 𝑅 + 𝑚 , 𝑣∈ 𝑅 + 𝑛 , and 𝛼∈ 𝑅 + 1 , 𝑢𝐴−𝑣 𝑥≤𝑢𝑏+𝛼 is valid for 𝑃 𝑢𝐴𝑥≤𝑢𝑏 is valid ⟹ 𝑢𝐴𝑥≤𝑢𝑏+𝛼 is valid −𝑥≤0 is valid ⟹ −𝑣𝑥≤0 is valid (weakening) ⟹ 𝑢𝐴−𝑣 𝑥≤𝑢𝑏+𝛼 is valid Prop 1.1: (𝜋, 𝜋 0 ) valid for 𝑃={𝑥∈ 𝑅 + 𝑛 :𝐴𝑥≤𝑏}. Then 𝜋𝑥≤ 𝜋 0 equivalent to or dominated by 𝑢𝐴𝑥≤𝑢𝑏, 𝑢∈ 𝑅 + 𝑚 , if any of the following conditions hold: 𝑃≠∅ (In this case, no more than min(𝑚,𝑛) components of 𝑢 need be positive) {𝑢∈ 𝑅 + 𝑚 :𝑢𝐴≥𝜋}≠∅ 𝐴= 𝐴′ 𝐼 Integer Programming 2017
⟹ Dual has optimal solution. Dual is min{𝑢𝑏:𝑢𝐴≥𝜋, 𝑢≥0} Pf) a) max{𝜋𝑥:𝑥∈𝑃}≤ 𝜋 0 ⟹ Dual has optimal solution. Dual is min{𝑢𝑏:𝑢𝐴≥𝜋, 𝑢≥0} Take basic dual optimal solution ⟹ 𝑢 0 𝐴≥𝜋, 𝑢 0 ≥0, 𝑢 0 𝑏≤ 𝜋 0 ⟹ min(𝑚, 𝑛) of components of 𝑢 0 is positive. {𝑢∈ 𝑅 + 𝑚 :𝑢𝐴≥𝜋}≠∅. Dual feasible. If 𝑃≠∅, case a) If 𝑃=∅, assume 𝑢 𝐴≥𝜋. If 𝑢 𝑏≤ 𝜋 0 , done Otherwise 𝑃=∅ ⟹ ∃ 𝑢 ∈ 𝑅 + 𝑚 such that 𝑢 𝐴≥0, 𝑢 𝑏<0. ⟹ for some 𝛽>0, ( 𝑢 +𝛽 𝑢 )𝐴≥𝜋, ( 𝑢 +𝛽 𝑢 )𝑏≤ 𝜋 0 . c) 𝐴= 𝐴′ 𝐼 . Clear that ∃ 𝑢∈ 𝑅 + 𝑚 such that 𝑢𝐴≥𝜋. Reduces to case b) Frequently assume 𝐴= 𝐴′ 𝐼 to avoid trouble when 𝑃=∅, 𝐷=∅. (see ex. 1.2 for the case with trouble) Integer Programming 2017
Integer Rounding Ex: Matching problem on 𝐺=(𝑉,𝐸) Constraints: (1.2) 𝑒∈𝛿(𝑖) 𝑥 𝑒 ≤1 for all 𝑖∈𝑉 (1.3) 𝑥∈ 𝑍 + |𝐸| , Can add constraints (1.4) 𝑒∈𝐸(𝑈) 𝑥 𝑒 ≤𝑘 , if 𝑈 =2𝑘+1, 𝑘≥1. Constraints (1.4) cannot be obtained by taking nonnegative linear combination of (1.2) Integer Programming 2017
½ ( 𝑒∈𝛿(𝑖) 𝑥 𝑒 ≤1 ), 𝑖∈𝑈, and add up How to generate (1.4)? ½ ( 𝑒∈𝛿(𝑖) 𝑥 𝑒 ≤1 ), 𝑖∈𝑈, and add up ⟹ 𝑒∈𝐸(𝑈) 𝑥 𝑒 + 1 2 𝑒∈𝛿(𝑈) 𝑥 𝑒 ≤ 1 2 𝑈 − 1 2 𝑥 𝑒 ≤0 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, 𝑒∈𝐸(𝑈) 𝑥 𝑒 ≤ 1 2 𝑈 is a valid inequality for 𝑆. (strengthening) Integer Programming 2017
Chvatal-Gomory (C-G) Rounding Method For the set 𝑆={𝑥∈ 𝑍 + 𝑛 : 𝐴𝑥≤𝑏}, 𝐴=( 𝑎 1 , …, 𝑎 𝑛 ) 1. 𝑗∈𝑁 (𝑢 𝑎 𝑗 )𝑥 𝑗 ≤𝑢𝑏 for all 𝑢≥0; 2. 𝑗∈𝑁 ( 𝑢 𝑎 𝑗 ) 𝑥 𝑗 ≤𝑢𝑏 , since 𝑥≥0 implies − 𝑗∈𝑁 𝑢 𝑎 𝑗 − 𝑢 𝑎 𝑗 𝑥 𝑗 ≤0 3. 𝑗∈𝑁 ( 𝑢 𝑎 𝑗 ) 𝑥 𝑗 ≤ 𝑢𝑏 , since 𝑥∈ 𝑍 𝑛 implies 𝑗∈𝑁 ( 𝑢 𝑎 𝑗 ) 𝑥 𝑗 is an integer. Step 2 is weakening and step 3 is strengthening The procedure can be used recursively Need at most 𝑛 inequalities in the procedure (Prop 1.1) Can generate all valid inequalities for 𝑆 using C-G procedure Integer Programming 2017
Optimizing over the First Chvátal closure Ref: B&W, p187 𝑃={𝑥∈ R+n: 𝐴𝑥≤𝑏} 𝑃 1 ={𝑥∈ R+n: 𝐴𝑥≤𝑏, 𝑗=1 𝑛 ( 𝑢′ 𝐴 𝑗 ) 𝑥 𝑗 ≤ 𝑢 ′ 𝑏 , ∀ 𝑢∈ 𝑅 + 𝑚 } Separation problem for 𝑃 1 : Given an 𝑥 ∗ ∈𝑃, we want to find a 𝑢∈ 𝑅 + 𝑚 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 𝑗∈𝐽(𝑥∗) 𝛼 𝑗 𝑥 j*− 𝛼 0 subject to 0≤ 𝑢 ′ 𝐴 𝑗 − 𝛼 𝑗 <1, 𝑗∈𝐽 𝑥 ∗ , 0≤ 𝑢 ′ 𝑏− 𝛼 0 <1, 0≤ 𝑢 𝑖 <1, 𝑖=1, …, 𝑚, 𝛼 𝑗 ∈𝑍, 𝑗∈𝐽 𝑥 ∗ ∪{0} Integer Programming 2017
maximize 𝑗∈𝐽(𝑥∗) 𝛼 𝑗 𝑥 j*− 𝛼 0 −𝑤 𝑖=1 𝑚 𝑢 𝑖 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 −𝑤 𝑖=1 𝑚 𝑢 𝑖 subject to 0≤ 𝑢 ′ 𝐴 𝑗 − 𝛼 𝑗 ≤1−𝛿, 𝑗∈𝐽 𝑥 ∗ , 0≤ 𝑢 ′ 𝑏− 𝛼 0 ≤1−𝛿, 0≤ 𝑢 𝑖 ≤1−𝛿, 𝑖=1, …, 𝑚, 𝛼 𝑗 ∈𝑍, 𝑗∈𝐽 𝑥 ∗ ∪{0} Integer Programming 2017
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 2017
Modular Arithmetic Valid inequality for the solutions of one linear equation. S = {𝑥∈ 𝑍 + 𝑛 : 𝑗∈𝑁 𝑎 𝑗 𝑥 𝑗 = 𝑎 0 }, 𝑎 𝑗 ∈ 𝑅 1 for all j. Sd = {𝑥∈ 𝑍 + 𝑛 : 𝑗∈𝑁 𝑎 𝑗 𝑥 𝑗 = 𝑎 0 +𝑘𝑑 for some 𝑘∈ 𝑍 1 }, 𝑑 is positive integer. Valid inequality for Sd ⟹ valid for S. Let 𝑎 𝑗 = 𝑏 𝑗 + 𝛼 𝑗 𝑑, 0≤ 𝑏 𝑗 <𝑑, 𝛼 𝑗 is integer ( 𝑏 𝑗 = remainder of 𝑎 𝑗 /𝑑) Sd = {𝑥∈ 𝑍 + 𝑛 : 𝑗∈𝑁 𝑏 𝑗 𝑥 𝑗 = 𝑏 0 +𝑘𝑑 for some 𝑘∈ 𝑍 1 }, ( 𝑗∈𝑁 𝑏 𝑗 𝑥 𝑗 0, 𝑏 0 <𝑑, 𝑘≥0) ⟹ 𝑗∈𝑁 𝑏 𝑗 𝑥 𝑗 𝑏 0 Ex: 37 𝑥 1 −68 𝑥 2 +78 𝑥 3 + 𝑥 4 =141, 𝑥∈ 𝑍 + 4 d = 12 ⟹ 𝑥 1 +4 𝑥 2 +6 𝑥 3 + 𝑥 4 9, 𝑑=1 ⟹ 𝑗∈𝑁 𝑎 𝑗 − 𝑎 𝑗 𝑥 𝑗 ≥ 𝑎 0 − 𝑎 0 : Gomory cutting plane ex) 𝑥 0 =3 3 4 − 1 2 𝑥 1 + 7 4 𝑥 2 − 11 4 𝑥 3 , 𝑥 𝑖 ∈ 𝑍 + 1 for all i. 1 2 𝑥 1 + 1 4 𝑥 2 + 3 4 𝑥 3 ≥ 3 4 Integer Programming 2017
Disjunctive Constraints Prop 1.3: If 𝑗∈𝑁 𝜋 𝑗 1 𝑥 𝑗 ≤ 𝜋 0 1 valid for 𝑆 1 ⊂ 𝑅 + 𝑛 , 𝑗∈𝑁 𝜋 𝑗 2 𝑥 𝑗 ≤ 𝜋 0 2 valid for 𝑆 2 ⊂ 𝑅 + 𝑛 , then, 𝑗∈𝑁 min( 𝜋 𝑗 1 , 𝜋 𝑗 2 ) 𝑥 𝑗 ≤ max( 𝜋 0 1 , 𝜋 0 2 ) is valid for 𝑆 1 ⋃ 𝑆 2 . Disjunctive procedure: 𝑆={𝑥∈ 𝑍 + 𝑛 :𝐴𝑥≤𝑏} (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 2017
a) 𝑗∈𝑁 𝜋 j 𝑥 𝑗 −(𝑥k )≤𝜋0 is valid for S 𝛼×( 𝑥 𝑘 ≤𝛿 ) 𝛼×( 𝑥 𝑘 ≤𝛿 ) ⟹ 𝑗∈𝑁 𝜋 j 𝑥 𝑗 ≤𝜋0 is valid for 𝑆 1 =𝑆⋂{𝑥∈ 𝑍 + 𝑛 : 𝑥 𝑘 ≤𝛿} b) 𝑗∈𝑁 𝜋 j 𝑥 𝑗 +(𝑥k 1)≤𝜋0 is valid for S 𝛽×( − 𝑥 𝑘 ≤− 𝛿+1 ) ⟹ 𝑗∈𝑁 𝜋 j 𝑥 𝑗 ≤𝜋0 is valid for 𝑆 2 =𝑆⋂{𝑥∈ 𝑍 + 𝑛 : 𝑥 𝑘 ≥𝛿+1} From Proposition 1.3, 𝑗∈𝑁 𝜋 j 𝑥 𝑗 ≤𝜋0 is valid for 𝑆 1 ⋃ 𝑆 2 . ⟹ 𝐷−inequalities Ex: Figure 1.5 P = {𝑥∈ 𝑅 + 2 : − 𝑥 1 + 𝑥 2 ≤ 1 2 , 1 2 𝑥 1 + 𝑥 2 ≤ 5 4 , 𝑥 1 ≤2} 1st ineq ⟹ − 1 4 𝑥 1 + 𝑥 2 − 3 4 𝑥 1 ≤ 1 2 2nd ineq ⟹ − 1 4 𝑥 1 + 𝑥 2 − 3 4 (1−𝑥 1 )≤ 1 2 Using the disjunction 𝑥 1 ≤0 or 𝑥 1 ≥1 leads to valid inequality − 1 4 𝑥 1 + 𝑥 2 ≤ 1 2 for 𝑆=𝑃⋂ 𝑍 2 . Integer Programming 2017
Prop 1.4: 𝑃={𝑥∈ 𝑅 + 𝑛 : 𝐴𝑥≤𝑏}, suppose 𝐴= 𝐴′ 𝐼 . Every valid inequality for disjunction on a single variable ⟹ 𝐷−inequality Prop 1.4: 𝑃={𝑥∈ 𝑅 + 𝑛 : 𝐴𝑥≤𝑏}, suppose 𝐴= 𝐴′ 𝐼 . 𝜋𝑥≤ 𝜋 0 valid for P’ = (𝑃∩ 𝑥: 𝑥 𝑘 ≤𝛿 )∪(𝑃∩ 𝑥: 𝑥 𝑘 ≥𝛿+1 ) ⟹ ∃ 𝛼,𝛽≥0 such that 𝑗∈𝑁 𝜋 j 𝑥 𝑗 −( 𝑥 𝑘 −𝛿)≤𝜋0, 𝑗∈𝑁 𝜋 j 𝑥 𝑗 +(𝑥k 1)≤𝜋0 valid for P. Pf) 𝜋𝑥≤ 𝜋 0 valid for 𝑃’ ⟹ 𝜋𝑥≤ 𝜋 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 𝑃 and are equal to or dominate 𝜋𝑥−𝛼( 𝑥 𝑘 −𝛿)≤ 𝜋 0 and 𝜋𝑥−𝛽(𝛿+1− 𝑥 𝑘 )≤ 𝜋 0 . Hence these are valid for P. Separation problem? Integer Programming 2017
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 ,𝑦∈ 𝑅 + 𝑛 : 𝑗∈𝑁 𝑦 𝑗 ≤𝑛𝑥, 𝑦 𝑗 ≤1, ∀𝑗∈𝑁} ⟹ 𝑦 𝑗 ≤𝑥, 𝑗∈𝑁 is valid for T. Integer Programming 2017
Geometric or Combinatorial Implication Node packing: 𝑥 𝑖 + 𝑥 𝑗 ≤1, ∀ 𝑖, 𝑗 ∈𝐸, 𝑥∈ 𝐵 |𝑉| 1 ⟹ 𝑥 4 + 𝑥 5 + 𝑥 6 + 𝑥 7 ≤1 (clique constraint) 𝑥 1 + 𝑥 2 + 𝑥 3 + 𝑥 4 + 𝑥 5 ≤2 (odd hole constraint) 2 5 6 7 3 4 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 ≤ 5 2 =2 Integer Programming 2017