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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend