Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.