column generation dantzig wolfe branch price and cut
play

Column Generation, Dantzig-Wolfe, Branch-Price-and-Cut Marco L - PowerPoint PPT Presentation

Column Generation, Dantzig-Wolfe, Branch-Price-and-Cut Marco L ubbecke OR Group RWTH Aachen University, Germany @mluebbecke @mluebbecke CO@Work 2020 Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut 1/86


  1. Example: Cutting Stock: Pricing Problem � implicit enumeration : solve auxiliary optimization problem over P   a 1 p a 2 p     z = min p ∈ P ¯ c p = min p ∈ P 1 − ( π 1 , . . . , π n ) · .  .  .   a np @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 16/86

  2. Example: Cutting Stock: Pricing Problem � implicit enumeration : solve auxiliary optimization problem over P   a 1 p a 2 p     z = min p ∈ P ¯ c p = min p ∈ P 1 − ( π 1 , . . . , π n ) · .  .  .   a np n � = min 1 − π i x i i =1 n � s.t. � i x i ≤ L i =1 x i ∈ Z + i ∈ [ n ] @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 16/86

  3. Example: Cutting Stock: Pricing Problem � implicit enumeration : solve auxiliary optimization problem over P   a 1 p a 2 p     z = min p ∈ P ¯ c p = min p ∈ P 1 − ( π 1 , . . . , π n ) · .  .  .   a np n � = 1 − max π i x i i =1 n � s.t. � i x i ≤ L i =1 x i ∈ Z + i ∈ [ n ] � which is a knapsack problem! @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 16/86

  4. Example: Cutting Stock: Pricing Problem � two cases for the minimum reduced cost z = min p ∈ P ¯ c p : 1. z < 0 pricing variable values ( x i ) i ∈ [ n ] encode a feasible pattern p ∗ = ( a ip ∗ ) i ∈ [ n ] P � ← P � ∪ { p ∗ } ; repeat solving the RMP . 2. z ≥ 0 proves that there is no negative reduced cost (master variable that corresponds to a) feasible pattern @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 17/86

  5. Example: Cutting Stock: Adding the Priced Variables to the RMP � min λ p p ∈ P � � s.t. a 1 p λ p = d 1 p ∈ P � . . . � a np λ p = d n p ∈ P � p ∈ P � λ p ≥ 0 @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 18/86

  6. Example: Cutting Stock: Adding the Priced Variables to the RMP coef fi cients a ip obtained from pricing problem solution x i � min λ p + 1 λ p ∗ p ∈ P � � s.t. a 1 p λ p + a 1 p ∗ λ p ∗ = d 1 p ∈ P � . . . � a np λ p + a np ∗ λ p ∗ = d n p ∈ P � p ∈ P � λ p , λ p ∗ ≥ 0 @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 18/86

  7. Example: Cutting Stock: Adding the Priced Variables to the RMP coef fi cients a ip obtained from pricing problem solution x i � 1 λ p ∗ + min λ p + 1 λ p ∗∗ p ∈ P � � a 1 p ∗ λ p ∗ + s.t. a 1 p λ p + a 1 p ∗∗ λ p ∗∗ = d 1 p ∈ P � . . . � a np ∗ λ p ∗ + a np λ p + a np ∗∗ λ p ∗∗ = d n p ∈ P � p ∈ P � λ p ∗ , λ p , λ p ∗∗ ≥ 0 @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 18/86

  8. Example: Cutting Stock: Adding the Priced Variables to the RMP coef fi cients a ip obtained from pricing problem solution x i � 1 λ p ∗ + min λ p + 1 λ p ∗∗ + . . . p ∈ P � � a 1 p ∗ λ p ∗ + s.t. a 1 p λ p + a 1 p ∗∗ λ p ∗∗ + . . . = d 1 p ∈ P � . . . � a np ∗ λ p ∗ + a np λ p + a np ∗∗ λ p ∗∗ + . . . = d n p ∈ P � p ∈ P � λ p ∗ , λ p , λ p ∗∗ + . . . ≥ 0 � this dynamic addition of variables is called column generation � column generation is an algorithm to solve linear programs @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 18/86

  9. Why should this work? Motivation for Column Generation I � in a basic solution to the master problem, at most m � | J | variables are non-zero � empirically, run time of simplex method linearly depends on no. m of rows → possibly, many variables are never part of the basis Motivation for Column Generation II � the “pattern based” model can be stronger than the “assignment based” model � theory helps us proving this (via Dantzig-Wolfe reformulation) � the “pattern based” model is not symmetric @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 19/86

  10. Another Example: Vertex Coloring Data G = ( V, E ) undirected graph Goal color all vertices such that adjacent vertices receive different colors, minimizing the number of used colors @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 20/86

  11. Vertex Coloring: Textbook Model � notation: C set of available colors @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 21/86

  12. Vertex Coloring: Textbook Model � notation: C set of available colors x ic ∈ { 0 , 1 } i ∈ V, c ∈ C / / color i with c ? @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 21/86

  13. Vertex Coloring: Textbook Model � notation: C set of available colors � s.t. x ic = 1 i ∈ V / / color each vertex c ∈ C x ic ∈ { 0 , 1 } i ∈ V, c ∈ C / / color i with c ? @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 21/86

  14. Vertex Coloring: Textbook Model � notation: C set of available colors � s.t. x ic = 1 i ∈ V / / color each vertex c ∈ C x ic + x jc ≤ 1 ij ∈ E, c ∈ C / / avoid con fl icts x ic ∈ { 0 , 1 } i ∈ V, c ∈ C / / color i with c ? @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 21/86

  15. Vertex Coloring: Textbook Model � notation: C set of available colors � s.t. x ic = 1 i ∈ V / / color each vertex c ∈ C x ic + x jc ≤ 1 ij ∈ E, c ∈ C / / avoid con fl icts x ic ≤ y c i ∈ V, c ∈ C / / couple x and y x ic ∈ { 0 , 1 } i ∈ V, c ∈ C / / color i with c ? y c ∈ { 0 , 1 } c ∈ C / / do we use color c ? @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 21/86

  16. Vertex Coloring: Textbook Model � notation: C set of available colors � χ ( G ) = min y c / / minimize number of used colors c ∈ C � s.t. x ic = 1 i ∈ V / / color each vertex c ∈ C x ic + x jc ≤ 1 ij ∈ E, c ∈ C / / avoid con fl icts x ic ≤ y c i ∈ V, c ∈ C / / couple x and y x ic ∈ { 0 , 1 } i ∈ V, c ∈ C / / color i with c ? y c ∈ { 0 , 1 } c ∈ C / / do we use color c ? � χ ( G ) is called the chromatic number of G . @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 21/86

  17. Vertex Coloring: Master Problem � observation: each color class forms an independent set in G � denote by P the set of (encodings of) all independent sets in G � a ip ∈ { 0 , 1 } denotes whether vertex i is contained in independent set p λ p ∈ { 0 , 1 } p ∈ P / / do we use independent set p ? � The LP relaxation gives a master problem � solve it by column generation → dual variables π t = ( π 1 , . . . , π | V | ) , one per vertex @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 22/86

  18. Vertex Coloring: Master Problem � observation: each color class forms an independent set in G � denote by P the set of (encodings of) all independent sets in G � a ip ∈ { 0 , 1 } denotes whether vertex i is contained in independent set p � s.t. a ip λ p = 1 i ∈ V / / every vertex must be covered p ∈ P λ p ∈ { 0 , 1 } p ∈ P / / do we use independent set p ? � The LP relaxation gives a master problem � solve it by column generation → dual variables π t = ( π 1 , . . . , π | V | ) , one per vertex @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 22/86

  19. Vertex Coloring: Master Problem � observation: each color class forms an independent set in G � denote by P the set of (encodings of) all independent sets in G � a ip ∈ { 0 , 1 } denotes whether vertex i is contained in independent set p � min λ p / / minimimize no. of sets used p ∈ P � s.t. a ip λ p = 1 i ∈ V / / every vertex must be covered p ∈ P λ p ∈ { 0 , 1 } p ∈ P / / do we use independent set p ? � The LP relaxation gives a master problem � solve it by column generation → dual variables π t = ( π 1 , . . . , π | V | ) , one per vertex @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 22/86

  20. Do you know it? � how does the pricing problem look like? @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 23/86

  21. Vertex Coloring: Pricing Problem � the pricing problem looks like   a 1 p a 2 p   c ∗ = min   ¯ p ∈ P ¯ c p = min p ∈ P 1 − ( π 1 , . . . , π | V | ) · .   . .   a | V | p @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 24/86

  22. Vertex Coloring: Pricing Problem � the pricing problem looks like   a 1 p a 2 p   c ∗ = min   ¯ p ∈ P ¯ c p = min p ∈ P 1 − ( π 1 , . . . , π | V | ) · .   . .   a | V | p � = min 1 − π i x i i ∈ V s.t. x i + x j ≤ 1 ij ∈ E x i ∈ { 0 , 1 } i ∈ V . @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 24/86

  23. Vertex Coloring: Pricing Problem � the pricing problem looks like   a 1 p a 2 p   c ∗ = min   ¯ p ∈ P ¯ c p = min p ∈ P 1 − ( π 1 , . . . , π | V | ) · .   . .   a | V | p � = 1 − max π i x i i ∈ V s.t. x i + x j ≤ 1 ij ∈ E x i ∈ { 0 , 1 } i ∈ V . � which is a maximum weight independent set problem! @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 24/86

  24. Question � how do we arrive at such models like Gilmore & Gomory’s?

  25. Overview Column Generation 1 Dantzig-Wolfe Reformulation 2 2.1 Dantzig-Wolfe Reformulation 2.2 Column Generation 2.3 Example Branch-Price-and-Cut 3 Dual View 4

  26. Minkowski (1896) and Weyl (1935) Outer and Inner Representation of a Polyhedron For P ⊆ R n , the following are equivalent: 1. P is a polyhedron 2. There are fi nite sets Q, R ⊆ R n such that P = conv( Q ) + cone( R ) / / P is fi nitely generated � choose Q (resp. R ) as extreme points (resp. rays) of P @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 27/86

  27. Dantzig-Wolfe Reformulation for LPs (1960, 1961) � we use this to equivalently reformulate what we call the c t x original model min A x ≥ s.t. b D x ≥ d ≥ x 0 @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 28/86

  28. Dantzig-Wolfe Reformulation for LPs (1960, 1961) � we use this to equivalently reformulate what we call the c t x original model min A x ≥ s.t. b D x ≥ d ≥ x 0 � identify two sets of constraints, typically constraints we know how to deal (well) with (the “easy constraints”) and everything else (the “complicating constraints”). @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 28/86

  29. Dantzig-Wolfe Reformulation for LPs (1960, 1961) z ∗ c t x original formulation LP = min A x ≥ b s.t. D x ≥ d x ≥ 0 Idea: apply Minkowski-Weyl on the “easy constraints” X = { x ≥ 0 | D x ≥ d } vertices Q = { x 1 , . . . , x | Q | } , extreme rays R = { x 1 , . . . , x | R | } of X @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 29/86

  30. Dantzig-Wolfe Reformulation for LPs (1960, 1961) vertices Q = { x 1 , . . . , x | Q | } , extreme rays R = { x 1 , . . . , x | R | } of X express every x ∈ X as � � x = λ q x q + λ r x r q ∈ Q r ∈ R � λ q = 1 / / convexity constraint q ∈ Q ≥ 0 q ∈ Q λ q ≥ 0 r ∈ R λ r and substitute this x ∈ X in A x ≥ b and c t x . @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 30/86

  31. Dantzig-Wolfe Reformulation for LPs (1960, 1961) substitution of x ∈ X in A x ≥ b and c t x  � � � c t min λ q x q + λ r x r q ∈ Q r ∈ R  � � � A λ q x q + ≥ b s.t. λ r x r q ∈ Q r ∈ R � = 1 λ q q ∈ Q λ q ≥ 0 q ∈ Q λ r ≥ 0 r ∈ R @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 31/86

  32. Dantzig-Wolfe Reformulation for LPs (1960, 1961) substitution of x ∈ X in A x ≥ b and c t x and some rearranging � � λ q c t x q + λ r c t x r min q ∈ Q r ∈ R � � s.t. λ q A x q + λ r A x r ≥ b q ∈ Q r ∈ R � λ q = 1 q ∈ Q λ q ≥ 0 q ∈ Q λ r ≥ 0 r ∈ R @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 31/86

  33. Dantzig-Wolfe Reformulation for LPs (1960, 1961) substitution of x ∈ X in A x ≥ b and c t x and some rearranging � � λ q c t x q λ r c t x r min + ���� ���� q ∈ Q r ∈ R =: c r =: c q � � s.t. λ q A x q + λ r A x r ≥ b ���� ���� q ∈ Q r ∈ R =: a r =: a q � λ q = 1 q ∈ Q ≥ 0 q ∈ Q λ q ≥ 0 r ∈ R λ r @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 31/86

  34. Dantzig-Wolfe Reformulation for LPs (1960, 1961) leads to an extended LP which we call the master problem � � z ∗ MP = min c q λ q + c r λ r q ∈ Q r ∈ R � � s.t. a q λ q + a r λ r ≥ b q ∈ Q r ∈ R � λ q = 1 q ∈ Q ≥ 0 q ∈ Q λ q λ r ≥ 0 r ∈ R , i.e., z ∗ LP = z ∗ which is equivalent to the original LP MP @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 31/86

  35. The Dantzig-Wolfe Master Problem � the master problem has a huge number | Q | + | R | of variables � it needs to be solved by column generation � initialize the RMP with Q � ⊆ Q and R � ⊆ R � solve the RMP to obtain primal λ and dual π , π 0 @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 32/86

  36. The Dantzig-Wolfe Restricted Master Problem � � z ∗ RMP = min c q λ q + c r λ r q ∈ Q � r ∈ R � � � a q λ q + a r λ r ≥ b [ π ] s.t. q ∈ Q � r ∈ R � � = 1 [ π 0 ] λ q q ∈ Q � q ∈ Q � λ q ≥ 0 r ∈ R � λ r ≥ 0 @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 33/86

  37. Reduced Cost Computation � for the reduced cost formula we distinguish two cases → for λ q , q ∈ Q : / / variables corresponding to extreme points � a q � c q = c q − ( π t , π 0 ) c q − π t a q − π 0 ¯ = 1 c t x q − π t A x q − π 0 = → for λ r , r ∈ R : / / variables corresponding to extreme rays � � a r c r = c r − ( π t , π 0 ) c r − π t a r ¯ = 0 c t x r − π t A x r = c ∗ = min { min � we need to compute ¯ q ∈ Q ¯ c q , min r ∈ R ¯ c r } / / the smallest reduced cost @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 34/86

  38. Dantzig-Wolfe Pricing Problem � in words: fi nd an extreme point q ∈ Q with minimum ¯ c q and/or an extreme ray r ∈ R with minimum ¯ c r @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 35/86

  39. Dantzig-Wolfe Pricing Problem � in words: fi nd an extreme point q ∈ Q with minimum ¯ c q and/or an extreme ray r ∈ R with minimum ¯ c r � to this end, solve the Dantzig-Wolfe pricing problem z ∗ c t x j − π t A x j = min / / no π 0 here PP j ∈ Q ∪ R @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 35/86

  40. Dantzig-Wolfe Pricing Problem � in words: fi nd an extreme point q ∈ Q with minimum ¯ c q and/or an extreme ray r ∈ R with minimum ¯ c r � to this end, solve the Dantzig-Wolfe pricing problem z ∗ c t x j − π t A x j = min / / no π 0 here PP j ∈ Q ∪ R ( c t − π t A ) x = min D x ≥ s.t. d ≥ x 0 � Q and R contain the extreme points/extreme rays of { x ≥ 0 | D x ≥ d } ! � the pricing problem is again a linear program / / solve it e.g., with the simplex algorithm @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 35/86

  41. Dantzig-Wolfe Pricing Problem ( c t − π t A ) x | D x ≥ d � � three cases for z ∗ PP = min x ≥ 0 @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 36/86

  42. Dantzig-Wolfe Pricing Problem ( c t − π t A ) x | D x ≥ d � � three cases for z ∗ PP = min x ≥ 0 1. z ∗ PP = −∞ @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 36/86

  43. Dantzig-Wolfe Pricing Problem ( c t − π t A ) x | D x ≥ d � � three cases for z ∗ PP = min x ≥ 0 PP = −∞ ⇒ we identi fi ed an extreme ray r ∗ ∈ R with ¯ 1. z ∗ c r ∗ < 0 → add variable λ r ∗ to the RMP � A x r ∗ � with cost c t x r ∗ and column coef fi cients 0 @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 36/86

  44. Dantzig-Wolfe Pricing Problem ( c t − π t A ) x | D x ≥ d � � three cases for z ∗ PP = min x ≥ 0 PP = −∞ ⇒ we identi fi ed an extreme ray r ∗ ∈ R with ¯ 1. z ∗ c r ∗ < 0 → add variable λ r ∗ to the RMP � A x r ∗ � with cost c t x r ∗ and column coef fi cients 0 2. −∞ < z ∗ PP − π 0 < 0 @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 36/86

  45. Dantzig-Wolfe Pricing Problem ( c t − π t A ) x | D x ≥ d � � three cases for z ∗ PP = min x ≥ 0 PP = −∞ ⇒ we identi fi ed an extreme ray r ∗ ∈ R with ¯ 1. z ∗ c r ∗ < 0 → add variable λ r ∗ to the RMP � A x r ∗ � with cost c t x r ∗ and column coef fi cients 0 PP − π 0 < 0 ⇒ we identi fi ed an extreme point q ∗ ∈ Q with ¯ 2. −∞ < z ∗ c q ∗ < 0 → add variable λ q ∗ to the RMP � A x q ∗ � with cost c t x q ∗ and column coef fi cients 1 @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 36/86

  46. Dantzig-Wolfe Pricing Problem ( c t − π t A ) x | D x ≥ d � � three cases for z ∗ PP = min x ≥ 0 PP = −∞ ⇒ we identi fi ed an extreme ray r ∗ ∈ R with ¯ 1. z ∗ c r ∗ < 0 → add variable λ r ∗ to the RMP � A x r ∗ � with cost c t x r ∗ and column coef fi cients 0 PP − π 0 < 0 ⇒ we identi fi ed an extreme point q ∗ ∈ Q with ¯ 2. −∞ < z ∗ c q ∗ < 0 → add variable λ q ∗ to the RMP � A x q ∗ � with cost c t x q ∗ and column coef fi cients 1 3. 0 ≤ z ∗ PP − π 0 @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 36/86

  47. Dantzig-Wolfe Pricing Problem ( c t − π t A ) x | D x ≥ d � � three cases for z ∗ PP = min x ≥ 0 PP = −∞ ⇒ we identi fi ed an extreme ray r ∗ ∈ R with ¯ 1. z ∗ c r ∗ < 0 → add variable λ r ∗ to the RMP � A x r ∗ � with cost c t x r ∗ and column coef fi cients 0 PP − π 0 < 0 ⇒ we identi fi ed an extreme point q ∗ ∈ Q with ¯ 2. −∞ < z ∗ c q ∗ < 0 → add variable λ q ∗ to the RMP � A x q ∗ � with cost c t x q ∗ and column coef fi cients 1 3. 0 ≤ z ∗ PP − π 0 ⇒ there is no j ∈ Q ∪ R with ¯ c j < 0 . @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 36/86

  48. Projecting back to the Original Variables � by construction, we can always obtain an original x solution from a master λ solution via � � x = λ q x q + λ r x r q ∈ Q r ∈ R @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 37/86

  49. Brie fl y Pause � go back to the cutting stock and vertex coloring problems � you recognize original constraints in master and pricing problems � however, not exactly, the reformulation “forgot” about rolls and colors → this is common and called aggregation

  50. Block-Angular Matrices � the classical Dantzig-Wolfe situation is 1 x 1 + c t 2 x 2 + · · · + c t c t K x K min A 1 x 1 + A 2 x 2 + · · · + A K x K ≥ b s.t. D 1 x 1 ≥ d 1 D 2 x 2 ≥ d 2 . ... . . D K x K ≥ d K x 1 , x 2 , . . . , x K ≥ 0 � K rolls, K colors, K vehicles, K subproblems , . . . @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 39/86

  51. Block-Angular Matrices � the classical Dantzig-Wolfe situation is 0 500 1000 1500 2000 2500 0 500 1000 1500 2000 2500 @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 39/86

  52. Block-Angular Matrices � constraints/variables of each block are separately DW reformulated � yields K pricing problems � all must report non-negative reduced cost for RMP optimality � the blocks can be identical, in which case one can aggregate them / / loosely speaking, master and pricing problem use only one representative @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 40/86

  53. Dantzig-Wolfe Reformulation for LPs: Pictorially { x ∈ Q n | Dx ≥ d } ∩ { x ∈ Q n | Ax ≥ b } “pricing problem” “master problem” @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 41/86

  54. Dantzig-Wolfe Reformulation for LPs: Pictorially { x ∈ Q n | Dx ≥ d } ∩ { x ∈ Q n | Ax ≥ b } “pricing problem” “master problem” @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 41/86

  55. Dantzig-Wolfe Reformulation for LPs: Pictorially { x ∈ Q n | Dx ≥ d } ∩ { x ∈ Q n | Ax ≥ b } “pricing problem” “master problem” @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 41/86

  56. Dantzig-Wolfe Reformulation for LPs: Pictorially { x ∈ Q n | Dx ≥ d } ∩ { x ∈ Q n | Ax ≥ b } “pricing problem” “master problem” @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 41/86

  57. Dantzig-Wolfe Reformulation for LPs: Pictorially { x ∈ Q n | Dx ≥ d } ∩ { x ∈ Q n | Ax ≥ b } “pricing problem” “master problem” � not tighter than standard LP relaxation @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 41/86

  58. Brie fl y Pause � but the pricing problems we have seen were integer programs!

  59. Dantzig-Wolfe Reformulation for IPs: Pictorially { x ∈ Q n | Dx ≥ d } ∩ { x ∈ Q n | Ax ≥ b } “pricing problem” “master problem” � not tighter than standard LP relaxation @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 43/86

  60. Dantzig-Wolfe Reformulation for IPs: Pictorially { x ∈ Q n | Dx ≥ d } ∩ { x ∈ Q n | Ax ≥ b } “pricing problem” “master problem” � for integer programs: partial convexi fi cation conv { x ∈ Z n | Dx ≥ d } @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 43/86

  61. Dantzig-Wolfe Reformulation for IPs: Pictorially { x ∈ Q n | Dx ≥ d } ∩ { x ∈ Q n | Ax ≥ b } “pricing problem” “master problem” � for integer programs: partial convexi fi cation, possibly stronger @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 43/86

  62. Do you know it? � DW reformulating a linear program leads to an equivalent linear program → true → false → it depends � DW reformulating an integer program leads to a stronger relaxation than the LP relaxation → true → false → it depends @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 44/86

  63. Brie fl y Pause � column generation relies on our ability to optimize over conv { x ∈ Z n | Dx ≥ d } � how should we choose D x ≥ d ? → D x ≥ d should describe a structure over which we can (easily) optimize → convexifying D x ≥ d should improve the dual bound (well)

  64. Numerical Example: Taken from the “Primer” � fi nd: shortest path (RCSP) from 1 to 6 (1,1) 2 4 (1,7) (2,3) (1,10) 1 6 (1,2) (10,1) (10,3) (5,7) (2,2) 3 5 (12,3) time cost @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 46/86

  65. Numerical Example: Taken from the “Primer” � fi nd: resource constrained shortest path (RCSP) from 1 to 6 � total traversal time must not exceed 14 units (1,1) 2 4 (1,7) (2,3) (1,10) 1 6 (1,2) (10,1) (10,3) (5,7) (2,2) 3 5 (12,3) time cost @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 46/86

  66. Numerical Example: Taken from the “Primer” � fi nd: resource constrained shortest path (RCSP) from 1 to 6 � total traversal time must not exceed 14 units (1,1) 2 4 (1,7) (2,3) (1,10) 1 6 (1,2) (10,1) (10,3) (5,7) (2,2) 3 5 (12,3) time cost � path 1-3-5-6 is quick but expensive: cost 24, time 8 @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 46/86

  67. Numerical Example: Taken from the “Primer” � fi nd: resource constrained shortest path (RCSP) from 1 to 6 � total traversal time must not exceed 14 units (1,1) 2 4 (1,7) (2,3) (1,10) 1 6 (1,2) (10,1) (10,3) (5,7) (2,2) 3 5 (12,3) time cost � path 1-2-4-6 is cheap but too slow: cost 3, time 18 @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 46/86

  68. Numerical Example: Taken from the “Primer” � fi nd: resource constrained shortest path (RCSP) from 1 to 6 � total traversal time must not exceed 14 units (1,1) 2 4 (1,7) (2,3) (1,10) 1 6 (1,2) (10,1) (10,3) (5,7) (2,2) 3 5 (12,3) time cost � path 1-3-2-4-6 is optimal: cost 13, time 13 @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 46/86

  69. Integer Program for the RCSP Problem � c ij cost on arc ( i, j ) , t ij time to traverse ( i, j ) � z � := min c ij x ij ( i,j ) ∈ A � s.t. x 1 j = 1 j :(1 ,j ) ∈ A � � x ij − x ji = 0 i = 2 , 3 , 4 , 5 j :( i,j ) ∈ A j :( j,i ) ∈ A � x i 6 = 1 i :( i, 6) ∈ A � t ij x ij ≤ 14 ( i,j ) ∈ A x ij ∈ { 0 , 1 } ( i, j ) ∈ A @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 47/86

  70. Integer Program for the RCSP Problem � c ij cost on arc ( i, j ) , t ij time to traverse ( i, j ) � z � := min c ij x ij ( i,j ) ∈ A � s.t. x 1 j = 1 j :(1 ,j ) ∈ A � � x ij − x ji = 0 i = 2 , 3 , 4 , 5 j :( i,j ) ∈ A j :( j,i ) ∈ A � x i 6 = 1 i :( i, 6) ∈ A � t ij x ij ≤ 14 ( i,j ) ∈ A x ij ∈ { 0 , 1 } ( i, j ) ∈ A � could be solved by branch-and-bound (B&B) @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 47/86

  71. Integer Program for the RCSP Problem � c ij cost on arc ( i, j ) , t ij time to traverse ( i, j ) � z � := min c ij x ij ( i,j ) ∈ A � s.t. x 1 j = 1 j :(1 ,j ) ∈ A � � x ij − x ji = 0 i = 2 , 3 , 4 , 5 j :( i,j ) ∈ A j :( j,i ) ∈ A � x i 6 = 1 i :( i, 6) ∈ A � t ij x ij ≤ 14 ( i,j ) ∈ A x ij ∈ { 0 , 1 } ( i, j ) ∈ A � instead: exploit embedded shortest path problem structure @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 47/86

  72. Paths vs. Arcs Formulation � what remains / / these constraints go into the pricing problem � x 1 j = 1 j :(1 ,j ) ∈ A � � x ij − x ji = 0 i = 2 , 3 , 4 , 5 j :( i,j ) ∈ A j :( j,i ) ∈ A � x i 6 = 1 i :( i, 6) ∈ A x ij ∈ { 0 , 1 } ( i, j ) ∈ A de fi nes a (particular) network fl ow problem � fact: every fl ow de fi ned on arcs decomposes into fl ows on paths (and cycles) @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 48/86

  73. Paths vs. Arcs Formulation � the convex hull of � x 1 j = 1 j :(1 ,j ) ∈ A � � x ij − x ji = 0 i = 2 , 3 , 4 , 5 j :( i,j ) ∈ A j :( j,i ) ∈ A � x i 6 = 1 i :( i, 6) ∈ A x ij ∈ { 0 , 1 } ( i, j ) ∈ A de fi nes a polyhedron (in fact, a polytope) with integer vertices � fact: every arc fl ow can be represented as convex combination of path (and cycle) fl ows / / vertices of the above polytope are incidence vectors of 1-6-paths @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 48/86

  74. Paths vs. Arcs Formulation � fact: every arc fl ow can be represented as convex combination of path (and cycle) fl ows � x ij = x pij λ p ( i, j ) ∈ A p ∈ P � λ p = 1 / / convexity constraint p ∈ P λ p ≥ 0 p ∈ P � P denotes the set of all paths from node 1 to node 6 � notation: x pij = 1 iff arc ( i, j ) on path p , otherwise x pij = 0 @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 49/86

  75. Integer Master Problem � now substitute for x ij in our original IP � λ p = 1 p ∈ P λ p ≥ 0 p ∈ P � x pij λ p = x ij ( i, j ) ∈ A p ∈ P @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 50/86

  76. Integer Master Problem � now substitute for x ij in our original IP � � z � = min ( c ij x pij ) λ p p ∈ P ( i,j ) ∈ A � � s.t. ( t ij x pij ) λ p ≤ 14 p ∈ P ( i,j ) ∈ A � λ p = 1 p ∈ P λ p ≥ 0 p ∈ P � x pij λ p = x ij ( i, j ) ∈ A p ∈ P x ij ∈ { 0 , 1 } ( i, j ) ∈ A @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 50/86

  77. Master Problem � now substitute for x ij in our original IP and relax the integrality of x ij � � z � = min ( c ij x pij ) λ p p ∈ P ( i,j ) ∈ A � � s.t. ( t ij x pij ) λ p ≤ 14 p ∈ P ( i,j ) ∈ A � λ p = 1 p ∈ P λ p ≥ 0 p ∈ P � x pij λ p = x ij ( i, j ) ∈ A p ∈ P x ij ≥ 0 ( i, j ) ∈ A @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 50/86

  78. Master Problem � now substitute for x ij in our original IP and relax the integrality of x ij � � z � = min ¯ ( c ij x pij ) λ p p ∈ P ( i,j ) ∈ A � � s.t. ( t ij x pij ) λ p ≤ 14 p ∈ P ( i,j ) ∈ A � λ p = 1 p ∈ P λ p ≥ 0 p ∈ P � we can remove the link between x ij and λ p variables @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 50/86

  79. Master Problem � in general, this will have many more than 9 variables. . . min 3 λ 1246 +14 λ 12456 + 5 λ 1256 +13 λ 13246 +24 λ 132456 +15 λ 13256 +16 λ 1346 +27 λ 13456 +24 λ 1356 s.t. 18 λ 1246 +14 λ 12456 +15 λ 1256 +13 λ 13246 + 9 λ 132456 +10 λ 13256 +17 λ 1346 +13 λ 13456 + 8 λ 1356 ≤ 14 λ 1246 + λ 12456 + λ 1256 + λ 13246 + λ 132456 + λ 13256 + λ 1346 + λ 13456 + λ 1356 = 1 λ 1246 , λ 12456 , λ 1256 , λ 13246 , λ 132456 , λ 13256 , λ 1346 , λ 13456 , λ 1356 ≥ 0 @mluebbecke · CO@Work 2020 · Column Generation, Dantzig-Wolfe Reformulation , Branch-Price-and-Cut · 51/86

Recommend


More recommend