Presentation is loading. Please wait.

Presentation is loading. Please wait.

Part II General Integer Programming

Similar presentations


Presentation on theme: "Part II General Integer Programming"β€” Presentation transcript:

1 Part II General Integer Programming
II.1 The Theory of Valid Inequalities

2 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

3 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

4 ⟹ 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

5 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

6 Β½ ο‚΄ ( π‘’βˆˆπ›Ώ(𝑖) π‘₯ 𝑒 ≀1 ), π‘–βˆˆπ‘ˆ, and add up
How to generate (1.4)? Β½ ο‚΄ ( π‘’βˆˆπ›Ώ(𝑖) π‘₯ 𝑒 ≀1 ), π‘–βˆˆπ‘ˆ, and add up ⟹ π‘’βˆˆπΈ(π‘ˆ) π‘₯ 𝑒 π‘’βˆˆπ›Ώ(π‘ˆ) π‘₯ 𝑒 ≀ π‘ˆ βˆ’ π‘₯ 𝑒 ≀0 for all π‘’βˆˆπ›Ώ(π‘ˆ) Add up (weakening in this step) π‘’βˆˆπΈ(π‘ˆ) π‘₯ 𝑒 ≀ π‘ˆ Since π‘₯ 𝑒 ∈{0, 1}, left-hand side is integral. Therefore, we can replace the right-hand side by  . If π‘ˆ is odd, π‘’βˆˆπΈ(π‘ˆ) π‘₯ 𝑒 ≀ π‘ˆ is a valid inequality for 𝑆. (strengthening) Integer Programming 2017

7 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

8 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

9 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

10 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

11 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 π‘₯ π‘₯ 3 + π‘₯ 4 =141, π‘₯∈ 𝑍 + 4 d = 12 ⟹ π‘₯ 1 +4 π‘₯ 2 +6 π‘₯ 3 + π‘₯ 4 ο‚³ 9, 𝑑=1 ⟹ π‘—βˆˆπ‘ π‘Ž 𝑗 βˆ’ π‘Ž 𝑗 π‘₯ 𝑗 β‰₯ π‘Ž 0 βˆ’ π‘Ž 0 : Gomory cutting plane ex) π‘₯ 0 = βˆ’ π‘₯ π‘₯ 2 βˆ’ π‘₯ 3 , π‘₯ 𝑖 ∈ 𝑍 for all i. 1 2 π‘₯ π‘₯ π‘₯ 3 β‰₯ 3 4 Integer Programming 2017

12 Disjunctive Constraints
Prop 1.3: If π‘—βˆˆπ‘ πœ‹ 𝑗 1 π‘₯ 𝑗 ≀ πœ‹ valid for 𝑆 1 βŠ‚ 𝑅 + 𝑛 , π‘—βˆˆπ‘ πœ‹ 𝑗 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

13 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} 1st ineq ⟹ βˆ’ π‘₯ 1 + π‘₯ 2 βˆ’ π‘₯ ≀ 1 2 2nd ineq ⟹ βˆ’ π‘₯ 1 + π‘₯ 2 βˆ’ (1βˆ’π‘₯ 1 )≀ 1 2 Using the disjunction π‘₯ 1 ≀0 or π‘₯ 1 β‰₯1 leads to valid inequality βˆ’ π‘₯ 1 + π‘₯ 2 ≀ for 𝑆=𝑃⋂ 𝑍 2 . Integer Programming 2017

14 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

15 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

16 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 π‘₯ π‘₯ 5 ≀1 Multiply Β½ on both sides and add ⟹ π‘₯ 1 + π‘₯ 2 + π‘₯ 3 + π‘₯ 4 + π‘₯ 5 ≀ =2 Integer Programming 2017


Download ppt "Part II General Integer Programming"

Similar presentations


Ads by Google