Presentation is loading. Please wait.

Presentation is loading. Please wait.

Menkes van den Briel Member of Research Staff NICTA and ANU Combining Linear Programming Based Decomposition Techniques with Constraint.

Similar presentations


Presentation on theme: "Menkes van den Briel Member of Research Staff NICTA and ANU Combining Linear Programming Based Decomposition Techniques with Constraint."— Presentation transcript:

1 Menkes van den Briel Member of Research Staff NICTA and ANU Combining Linear Programming Based Decomposition Techniques with Constraint Programming

2 CP-based column generation ApplicationReference Urban transit crew management T.H. Yunes., A.V. Moura, C.C. de Souza. Solving very large crew scheduling problems to optimality. Proceedings of ACM symposium on Applied Computing, pages , T.H. Yunes., A.V. Moura, C.C. de Souza. Hybrid column generation approaches for urban transit crew management problems. Transportation Science 39(2): , Travelling tournament K. Easton, G.L. Nemhauser, and M.A. Trick. Solving the travelling tournament problem: A combined integer programming and constraint programming approach. Proceedings of Practice and Theory of Automated Timetabling, volume 2740 of Lecture Notes in Computer Science, pages Springer, Two-dimensional bin packing D. Pisinger, M. Sigurd. Using decomposition techniques and constraint programming for solving the two-dimensional bin-packing problem. Journal on Computing 19(1):36-51, Graph coloringS. Gualandi. Enhancing constraint programming-based column generation for integer programs. PhD thesis, Politechnico di Milano, Constrained cutting stock T. Fahle, M. Sellmann. Cost based filtering for the constrained knapsack problem. Annals of Operations Research 115(1):73-93, Employee timetabling S. Demassey, G. Pesant, L.M. Rousseau. A cost-regular based hybrid column generation approach. Constraints 11(4): , Wireless mesh networks A. Capone, G. Carello, I. Filippini, S. Gualandi, F. Malucelli. Solving a resource allocation problem in wireless mess networks: A comparison between a CP-based and a classical column generation. Networks 55(3): , Multi-machine scheduling R. Sadykov, L.A. Wolsey. Integer programming and constraint programming in solving a multimachine assignment scheduling problem with deadlines and release dates. Journal on Computing 18(2): , 2006.

3 CP-based column generation ApplicationReference Airline crew assignment U. Junker, S.E. Karisch, N. Kohl, B. Vaaben, T. Fahle, M. Sellmann. A framework for constraint programming based column generation. Proceedings of Principles and Practice of Constraint Programming, volume 1713 of Lecture Notes in Computer Science, pages , T. Fahle, U. Junker, S.E. Karisch, N. Kohl, M. Sellmann, B. Vaaben. Constraint programming based column generation for crew assignment. Journal of Hueristics 8(1):59-81, M. Sellmann, K. Zervoudakis, P. Stamatopoulos, T. Fahle. Crew assignment via constraint programming: integrating column generation and heuristic tree search. Annals of Operations Research 115(1): , Vehicle routing with time windows L.M. Rousseau. Stabilization issues for constraint programming based column generation. Proceedings of Integration of AI and OR techniques in CP for Combinatorial Optimization, volume 3011 of Lecture notes in Computer Science, pages Springer, L.M. Rousseau, M. Gendreau, G. Pesant, F. Focacci. Solving VRPTWs with constraint programming based column generation. Annals of Operations Research 130(1): , 2004.

4 CP-based Benders decomposition ApplicationReference Parallel machine scheduling V. Jain, I.E. Grossmann. Algorithms for hybrid MILP/CP models for a class of optimization problems. INFORMS Journal on Computing 13(4): , Polypropylene batch scheduling C. Timpe. Solving planning and scheduling problems with combined integer and constraint programming. OR Spectrum 24(4): , Call center scheduling T. Benoist, E. Gaudin, B. Rottembourg. Constraint programming contribution to Benders decomposition: A case study. Principles and Practice of Constraint Programming, volume 2470 of Lecture Notes in Computer Science, pages Springer, Multi-machine scheduling J.N. Hooker. A hybrid method for planning and scheduling. Principles and Practice of Constraint Programming, volume 3258 of Lecture Notes in Computer Science, pages Springer, J.N. Hooker. Planning and scheduling to minimize tardiness. Principles and Practice of Constraint Programming, volume 3709 of Lecture Notes in Computer Science, pages Springer, 2005.

5 CP versus IP CPIP VariablesFinite domainContinuous, Binary, Integer ConstraintsSymbolic: alldifferent cumulative Linear, algebraic: (+, –, *, =, ≤, ≥) InferenceConstraint propagation LP relaxation Global Optimal Local Feasible

6 CP versus IP “MILP is very efficient when the relaxation is tight and models have a structure that can be effectively exploited” “CP works better for highly constrained discrete optimization problems where expressiveness of MILP is a major limitation” “From the work that has been performed, it is not clear whether a general integration strategy will always perform better than either CP or an MILP approach by itself. This is especially true for the cases where one of these methods is a very good tool to solve the problem at hand. However, it is usually possible to enhance the performance of one approach by borrowing some ideas from the other” –Source: Jain and Grossmann, 2001

7 Outline Background Introduction Dantzig Wolfe decomposition Benders decomposition Conclusions

8 What is your background? Have implemented Benders and/or Dantzig Wolfe decomposition Have heard about Benders and/or Dantzig Wolfe decomposition Have seen Bender and/or Dances with Wolves

9 Things to take away A better understanding of how to combine linear programming based decomposition techniques with constraint programming A better understanding of column generation, Dantzig Wolfe decomposition and Benders decomposition A whole lot of Python code with example implementations

10 Helpful installations Python 2.6.x or 2.7.x –“Python is a programming language that lets you work more quickly and integrate your systems more effectively” –http://www.python.org/getit/http://www.python.org/getit/ Gurobi (Python interface) –“The state-of-the-art solver for linear programming (LP), quadratic and quadratically constrained programming (QP and QCP), and mixed-integer programming (MILP, MIQP, and MIQCP)” –http://www.gurobi.com/products/gurobi-optimizer/try-for-yourselfhttp://www.gurobi.com/products/gurobi-optimizer/try-for-yourself NetworkX –“NetworkX is a Python language software package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks” –http://networkx.lanl.gov/download.htmlhttp://networkx.lanl.gov/download.html

11 Abbreviations Artificial Intelligence (AI) Constraint Programming (CP) Constraint Satisfaction Problem (CSP) Integer Programming (IP) Linear Programming (LP) Mixed Integer Programming (MIP) Mixed Integer Linear Programming (MILP) Mathematical Programming (MP) Operations Research (OR)

12 Outline Background Introduction Dantzig Wolfe decomposition Benders decomposition Conclusions

13 What is decomposition? “Decomposition in computer science, also known as factoring, refers to the process by which a complex problem or system is broken down into parts that are easier to conceive, understand, program, and maintain” –Source: Decomposition in linear programming is a technique for solving linear programming problems where the constraints (or variables) of the problem can be divided into two groups, one group of “easy” constraints and another of “hard” constraints

14 “easy” versus “hard” constraints Referring to the constraints as “easy” and “hard” may be a bit misleading –The “hard” constraints need not be very difficult in themselves, but they can complicate the linear program making the overall problem more difficult to solve –When the “hard” constraints are removed from the problem, then more efficient techniques could be applied to solve the resulting linear program

15 Example Shortest path problem (P) Min  (i,j)  A c ij x ij s.t. 1 for i = s Source  j:(i,j)  A x ij –  j:(j,i)  A x ji = 0 for i  N – {s, t} Flow -1 for i = t Sink x ij  {0, 1} Resource constrained shortest path problem (NP-complete) Min  (i,j)  A c ij x ij s.t. 1 for i = s Source  j:(i,j)  A x ij –  j:(j,i)  A x ji = 0 for i  N – {s, t} Flow -1 for i = t Sink  (i,j)  A d ij x ij ≤ C Capacity x ij  {0, 1} G = (N, A), source s, sink t

16 Example Assignment problem (P) Max  i=1,…, m, j=1,…,n c ij x ij s.t.  j=1,…,n x ij = 1for 1 ≤ i ≤ m Job  i=1,…,m x ij = 1for 1 ≤ j ≤ n Machine x ij  {0, 1} Generalized assignment problem (NP-complete) Max  i=1,…, m, j=1,…,n c ij x ij s.t.  j=1,…,n x ij = 1for 1 ≤ i ≤ m Job  i=1,…,m d ij x ij ≤ C j for 1 ≤ j ≤ n Capacity x ij  {0, 1} m jobs, n machines

17 Example Consider developing a strategic corporate plan for several production facilities. Each facility has its own capacity and production constraints, but decisions are linked together at the corporate level by budgetary considerations Common constraints Facility 1 Facility 2 Facility n Independent constraints

18 “easy” versus “hard” variables Referring to the variables as “easy” and “hard” may be a bit misleading –The “hard” variables need not be very difficult in themselves, but they can complicate the linear program making the overall problem more difficult to solve –When the “hard” variables are removed from the problem, then more efficient techniques could be applied to solve the resulting linear program

19 Example Capacitated facility location problem (NP-complete) Min  i=1,…,n,j=1,…,m c ij x ij +  j=1,…,m f j y j s.t.  i=1,…,m x ij ≥ 1 for j = 1,…, n Demand  j=1,…,n d i x ij ≤ C i y i for i = 1,…, m Roll x ij ≤ y i for i = 1,…, m j = 1,…, n Flow impl. x ij ≥ 0 y i  {0, 1} m facilities, n customers

20 Example Consider solving a multi period scheduling problem. Each period has its own set of variables but is linked together through resource consumption variables Independent variables Common variables Period 1 Period 2 Period n

21 Outline Background Introduction Dantzig Wolfe decomposition Benders decomposition Conclusions

22 Primal Min cx s.t.Ax ≥ b[y] x ≥ 0 Dual Max y T b s.t.y T A ≤ c[x] y ≥ 0 Background

23 Primal Min cx s.t.Ax ≥ b[y] x ≥ 0 Dual Max b T y s.t.A T y ≤ c T [x] y ≥ 0 Background cxc A x Axb bTybTybTbT ATAT cTcT ATyATy y

24 Travelling salesman G = (N, A), cost c ij xy

25 Travelling salesman G = (N, A), cost c ij xy Cost 60.78

26 Travelling salesman Variables x ij is 1 if arc (i, j) is on the shortest tour, 0 otherwise Formulation Min  (i,j)  A c ij x ij s.t.  i:(i,j)  A x ij = 1for j  N Inflow  j:(i,j)  A x ij = 1for i  N Outflow  i,j  S:(i,j)  A x ij ≤ |S| – 1for S  N Subtour x ij  {0, 1}

27 Travelling salesman Variables x ij is 1 if arc (i, j) is on the shortest tour, 0 otherwise Formulation Min  (i,j)  A c ij x ij s.t.  i:(i,j)  A x ij = 1for j  N Inflow  j:(i,j)  A x ij = 1for i  N Outflow x ij  {0, 1}

28 Example code

29 Travelling salesman G = (N, A), cost c ij xy Subtour 0, 2, 7

30 Travelling salesman G = (N, A), cost c ij xy Subtour 0, 8, 1, 9

31 Travelling salesman G = (N, A), cost c ij xy Subtour 0, 8, 2, 7

32 Travelling salesman G = (N, A), cost c ij xy Cost 79.98

33 Travelling salesman G = (N, A), cost c ij xy Cost 60.78

34 LPs with many constraints The number of constraints that are tight (or active) is at most equal to the number of variables, so even with many constraints (possibly exponential many) only a small subset will be tight in the optimal solution Active Non-active A

35 AAxb Row generation in the primal… cxc x

36 y bTbT ATAT … is column generation in the dual bTybTy cTcT ATyATy

37 …and vice versa x c A cx bAxAx ATAT ATyATycTcT bTybTybTbT y Column generation in the primal Row generation in the dual =

38 Resource constrained shortest path G = (N, A), source s, sink t, for each (i, j)  A, cost c ij, resource demand d ij, and resource capacity C ,10 10,3 1,7 2,2 1,210,1 1,1 12,3 2,3 5,7 ij c ij, d ij Capacity = 14 Source: Desrosiers and Lübbecke, 2005

39 Resource constrained shortest path G = (N, A), source s, sink t, for each (i, j)  A, cost c ij, resource demand d ij, and resource capacity C 1 6 1,10 10,3 1,7 2,2 1,210,1 1,1 12,3 2,3 5,7 ij c ij, d ij Cost 13 Demand 13 Capacity =

40 Resource constrained shortest path Variables x ij is 1 if arc (i, j) is on the shortest path, 0 otherwise Formulation Min  (i,j)  A c ij x ij s.t. 1 for i = s Source  j:(i,j)  A x ij –  j:(j,i)  A x ji = 0 for i  N – {s, t} Flow -1 for i = t Sink  (i,j)  A d ij x ij ≤ C Capacity x ij  {0, 1}

41 Example code

42 Resource constrained shortest path Variables k is 1 if path k is the shortest path, 0 otherwise Formulation Min  k  K c k k s.t.  k  K k = 1 Convex  k  K d k k ≤ C Capacity k ≥ 0

43 Arc variablesPath variables Arc versus path

44 Example code

45 Revised Simplex method Min cx s.t.Ax ≥ b x ≥ 0 Min z = cx s.t.Ax = b x ≥ 0 Let x be a basic feasible solution, such that x = (x B, x N ) where x B is the vector of basic variables and x N is the vector of non-basic variables Add slack variables

46 Revised Simplex method Min z = cx s.t.Ax = b x ≥ 0 Min z = c B x B + c N x N s.t.Bx B + A N x N = b x B, x N ≥ 0 Min z = c B x B + c N x N s.t.x B = B -1 b – B -1 A N x N x B, x N ≥ 0 Rearrange x = (x B, x N ), c = (c B, c N ), A = (B, A N )

47 Revised Simplex method Min z = c B x B + c N x N s.t.x B = B -1 b – B -1 A N x N x B, x N ≥ 0 Min z = c B B -1 b + (c N – c B B -1 A N )x N s.t.x B = B -1 b – B -1 A N x N x B, x N ≥ 0 Substitute

48 Revised Simplex method Min z = c B B -1 b + (c N – c B B -1 A N )x N s.t.x B = B -1 b – B -1 A N x N x B, x N ≥ 0 At the end of each iteration we have –Current value of non-basic variables x N = 0 –Current objective function value z = c B B -1 b –Current value of basic variables x B = B -1 b –Objective coefficients of basic variables 0 –Objective coefficients of non-basic variables (c N – c B B -1 A N ) are the so-called reduced costs –With a minimization objective we want non-basic variables with negative reduced costs

49 Revised Simplex method Simplex algorithm 1.Select new basic variable ( x N to enter the basis) 2.Select new non-basic variable ( x B to exit the basis) 3.Update data structures

50 Revised Simplex method Simplex algorithm x S = b (slack variables equal rhs) x \S = 0 (non-slack variables equal 0) while min j {(c j – c B B -1 A j )} < 0 1.Select new basic variable j : (c j – c B B -1 A j ) < 0 2.Select new non-basic variable j’ by increasing x j as much as possible 3.Update data structures by swapping columns between matrix B and matrix A N

51 Example Min z = – x 1 – 2x 2 s.t.– 2x 1 + x 2 ≥ 2 – x 1 + 2x 2 ≥ 7 x 1 ≥ 7 x 1, x 2 ≥ 0 Min z = – x 1 – 2x 2 s.t.– 2x 1 + x 2 + x 3 = 2 – x 1 + 2x 2 + x 4 = 7 x 1 + x 5 = 7 x 1, x 2, x 3, x 4, x 5 ≥ 0 Add slack variables

52 Simplex methodRevised Simplex method Example bscx1x2x3x4x5rhs -z x x x bscx1x2x3x4x5rhs -z x x x bscx3x4x5rhs -z0000 x31002 x40107 x50013 bscx3x4x5rhs -z2004 x31002 x x50013 x x

53 Simplex methodRevised Simplex method Example bscx1x2x3x4x5rhs -z00-3/45/309 x201-1/32/304 x110-2/31/301 x5002/3-1/312 bscx1x2x3x4x5rhs -z x20101/2 5 x x3001-1/23/23 bscx3x4x5rhs -z2009 x2-1/32/304 x1-2/31/301 x52/3-1/312 bscx3x4x5rhs -z00013 x201/2 5 x10013 x31-1/23/23 x3 -3/4 -1/3 -2/3 2/3

54 Column generation Simplex algorithm x S = b (slack variables equal rhs) x \S = 0 (non-slack variables equal 0) while min j {(c j – c B B -1 A j )} < 0 1.Select new basic variable j : (c j – c B B -1 A j ) < 0 2.Select new non-basic variable j’ by increasing x j as much as possible 3.Update data structures by swapping columns between matrix B and matrix A N In column generation, rather than checking the reduced cost for each variable, a subproblem is solved to find a variable with negative reduced cost

55 LPs with many variables The number of basic (non-zero) variables is at most equal to the number of constraints, so even with many variables (possibly exponential many) only a small subset will be in the optimal solution A xBxB xNxN

56 (c N – c B B -1 A N ) < 0 (c N – y T A N ) < 0 Column generation Substitute

57 (c N – y T A N ) < 0 Primal Min cx s.t.Ax ≥ b x ≥ 0 Dual Max y T b s.t.y T A ≤ c y ≥ 0 Column generation x c A cx bAxAx ATAT ATyATycTcT bTybTybTbT y Column with negative reduced cost Row with violated rhs

58 Resource constrained shortest path Variables k is 1 if path k is the shortest path, 0 otherwise Formulation Min  k  K c k k s.t.  k  K k = 1 Convex  k  K d k k ≤ C Capacity k  {0, 1}

59 Primal Min  k  K c k k s.t.  k  K k = 1 [  ]  k  K d k k ≤ C [  ] k ≥ 0 Dual Max  + C  s.t.  + d k  ≤ c k [ k ]  = free  ≤ 0 Resource constrained shortest path Need to find a path for which c k –  – d k  < 0 Implicitly search all paths by optimizing Min  (i,j)  A (c ij – d ij  ) s.t. Source, Flow, Sink

60 Resource constrained shortest path G = (N, A), source s, sink t, for each (i, j)  A, cost c ij, resource demand d ij, and resource capacity C ij (c ij – d ij  ) Capacity = 14

61 Resource constrained shortest path Master Min  k  K c k k s.t.  k  K k = 1 Convex  k  K d k k ≤ C Capacity k ≥ 0 Subproblem Min  (i,j)  A (c ij – d ij  )x ij s.t. 1 for i = s Source  j:(i,j)  A x ij –  j:(j,i)  A x ji = 0 for i  N – {s, t} Flow -1 for i = t Sink Add variable to master if  (i,j)  A (c ij – d ij  )x ij –  < 0

62 Example code

63 Roll width W, m orders of d i rolls of length l i, i = 1,…, m Cutting stock x 4 x 2 x lili didi 100

64 Roll width W, m orders of d i rolls of length l i, i = 1,…, m Cutting stock x 4 x 2 x lili didi Rolls

65 Cutting stock Variables x ik is the number of times order i is cut from roll k y k is 1 if roll k is used, 0 otherwise Formulation Min  k=1,…,K y k s.t.  k=1,…,K x ik ≥ d i for i = 1,…, n Demand  i=1,…,n l i x ik ≤ Wy k for k = 1,…, K Roll x ik ≥ 0 and integer y k  {0, 1}

66 Example code

67 Cutting stock Variables k is the number of times cutting pattern k is used Formulation Min  k  K k s.t.  k  K a ik k ≥ d i for i = 1,…, m Demand k ≥ 0 and integer

68 Cutting stock Cutting pattern variables k a ik [2, 0, 2, 0] x 4 x 2 x k a ik [2, 1, 0, 1]

69 Primal Min  k  K k s.t.  k  K a ik k ≥ d i [  i ] k ≥ 0 Dual Max  i=1,…,n d i  i s.t.  i=1,…,n a ik  i ≤ 1 [ k ]  i ≥ 0 Cutting stock Need to find a cutting pattern for which 1 –  i=1,…,n a ik  i < 0 Implicitly search all cutting patterns by optimizing Max  i=1,…,n a i  i s.t.  i=1,…,n l i a i ≤ W a i ≥ 0 and integer

70 m items with value  i and weight l i, i = 1,…, m, maximum allowed weight W Cutting stock $0.50, 45lbs $0.50, 36lbs $0.33, 31lbs $0.125, 12lbs lili ii lbs 12 36

71 Cutting stock Master Min  k  K k s.t.  k  K a ik k ≥ d i for i = 1,…, m Demand k ≥ 0 Subproblem Max  i=1,…,m a i  i s.t.  i=1,…,m l i a i ≤ W a i ≥ 0 and integer Add variable to master if 1 – a i  i < 0

72 Example code

73 Generalized assignment n jobs, m machines, cost c ij, demand d ij, capacity C i j i CjCj c ij, d ij Job12 117, 823, , 1516, 7 322, 1421, , 2316, , 817, 11

74 Generalized assignment n jobs, m machines, cost c ij, demand d ij, capacity C i Cost j i CjCj c ij, d ij Job12 117, 823, , 1516, 7 322, 1421, , 2316, , 817, 11

75 Generalized assignment Variables x ij is 1 if job j is assigned to machine i, 0 otherwise Formulation Max  i=1,…,m,j=1,…,n c ij x ij s.t.  i=1,…,m x ij = 1for 1 ≤ j ≤ n Job  j=1,…,n d ij x ij ≤ C i for 1 ≤ i ≤ m Capacity x ij  {0, 1}

76 Example code

77 Generalized assignment Variables ik is 1 if machine i has job assignment k, 0 otherwise Formulation Max  i=1,…,m,k=1,…,Ki c ik ik s.t.  i=1,…,m,k=1,…,Ki a ijk ik = 1for 1 ≤ j ≤ n Job  k=1,…,Ki ik = 1 for 1 ≤ i ≤ m Convexity ik  {0, 1}

78 Generalized assignment Job assignment variables ik a ijk [1, 0, 1, 0, 1] ik a ijk [0, 1, 0, 1, 0]

79 Generalized assignment Formulation Max  i=1,…,m,k=1,…,Ki c ik ik s.t.  i=1,…,m,k=1,…,Ki a ijk ik = 1for 1 ≤ j ≤ n Job  k=1,…,Ki ik = 1 for 1 ≤ i ≤ m Convexity ik  {0, 1} Common constraints Machine 1 Machine 2 Machine n Independent constraints

80 Primal Max  i=1,…,m,k=1,…,Ki c ik ik s.t.  i=1,…,m,k=1,…,Ki a ijk ik = 1  k=1,…,Ki ik = 1 ik ≥ 0 Dual Min  j=1,…,n  j +  i=1,…,m  i s.t.  j=1,…,n a ijk  j +  i ≥ c ik  j = free  i = free Generalized assignment Need to find a cutting pattern for which  j=1,…,n (c ik – a ijk  j ) –  i > 0for i = 1,…,m Implicitly search all cutting patterns by optimizing Max  j=1,…,n (c ij – a ij  j ) s.t.  j=1,…,n d ij a ij ≤ C i a ij ≥ 0 and integer

81 $55.00, 8lbs n items with value  j and weight d ij, j = 1,…, n, maximum allowed weight W Generalized assignment $52.00, 23lbs $51.00, 14lbs $55.00, 15lbs $44.00, 8lbs 36lbs Job1 144, 8 255, , , , 8 Job2 140, , 7 343, , ,

82 Generalized assignment Master Max  i=1,…,m,k=1,…,Ki c ik ik s.t.  i=1,…,m,k=1,…,Ki a ijk ik = 1for 1 ≤ j ≤ n Job  k=1,…,Ki ik = 1 for 1 ≤ i ≤ m Convexity ik  {0, 1} Subproblem (for each machine i ) Max  j=1,…,n (c ij – a ij  j ) s.t.  j=1,…,n d ij a ij ≤ C i a ij ≥ 0 and integer Add variable to master if  j=1,…,n (c ij – a ij  j ) –  i > 0

83 Example code

84 History of column generation 1961: A linear programming approach to the cutting-stock problem P.C. Gilmore and R.E. Gomory 1963: A linear programming approach to the cutting-stock problem–Part II P.C. Gilmore and R.E. Gomory 1960: Decomposition principle for linear programs G.B. Dantzig and P. Wolfe “Credit is due to Ford and Fulkerson for their proposal for solving multicommodity network problems as it served to inspire the present development.” 1958: A suggested computation for maximal multicommodity network flows L.R. Ford and D.R. Fulkerson 1969: A column generation algorithm for a ship scheduling problem L.E. Appelgren

85 Solving integer programs by column generation 2000: On Dantzig-Wolfe decomposition in integer programming and ways to perform branching in a branch-and-price algorithm F. Vanderbeck 2005: A primer in column generation J. Desrosiers and M.E. Lubbecke 1998: Branch-and-price: column generation for solving huge integer programs C. Barnhart, E.L. Johnson, G.L. Nemhauser, M.W.P. Savelsbergh and P.H. Vance 1984: Routing with time windows by column generation Y. Dumas, F. Soumis and M. Desrochers 2011: Branching in branch-and-price: a generic scheme F. Vanderbeck

86 CP-based column generation 2000: Solving very large crew scheduling problems to optimality T.H. Yunes, A.V. Moura and C.C. de Souza 1999: A framework for constraint programming based column generation U. Junker, S.E. Karisch, N. Kohl, B. Vaaben, T. Fahle and M. Sellmann

87 CP-based column generation ApplicationReferenceCP used to solve subproblem CP used within Branch-and-Price Urban transit crew management T.H. Yunes., A.V. Moura, C.C. de Souza YY T.H. Yunes., A.V. Moura, C.C. de Souza YY Travelling tournament K. Easton, G.L. Nemhauser, and M.A. Trick YY Two-dimensional bin packing D. Pisinger, M. Sigurd YY Graph coloringS. Gualandi YY Constrained cutting stock T. Fahle, M. Sellmann YN Employee timetabling S. Demassey, G. Pesant, L.M. Rousseau YY Wireless mesh networks A. Capone, G. Carello, I. Filippini, S. Gualandi, F. Malucelli YN Multi-machine scheduling R. Sadykov, L.A. Wolsey YN Source: Gualandi and Malucelli, 2009

88 CP-based column generation ApplicationReferenceCP used to solve subproblem CP used within Branch-and-Price Airline crew assignment U. Junker, S.E. Karisch, N. Kohl, B. Vaaben, T. Fahle, M. Sellmann YN T. Fahle, U. Junker, S.E. Karisch, N. Kohl, M. Sellmann, B. Vaaben YN M. Sellmann, K. Zervoudakis, P. Stamatopoulos, T. Fahle YN Vehicle routing with time windows L.M. Rousseau YN L.M. Rousseau, M. Gendreau, G. Pesant, F. Focacci YY Source: Gualandi and Malucelli, 2009

89 CP-based column generation Typical implementation MasterSubproblem Linear programming Constraint programming Dual information New columns

90 Outline Background Introduction Dantzig Wolfe decomposition Benders decomposition Conclusions

91 Two-stage optimization Stage 1Stage 2 Solution values

92 Benders decomposition Stage 1Stage 2 Solution values Benders cuts

93 Benders decomposition  “Learn from ones mistakes”  Distinguish primary variables from secondary variables  Search over primary variables (master problem)  For each trial value of primary variables, solve problem over secondary variables (subproblem)  If solution is suboptimal/infeasible, find out why and design a constraint that rules out not only this solution but a large class of solutions that are suboptimal/infeasible for the same reason (Benders cut)  Add Benders cut to the master problem and resolve MasterSubproblem Solution values Benders cuts

94 Capacitated facility location m facilities, n customers, cost c ij, demand d j, capacity C i, fixed cost f i i j C i, f i c ij djdj 10, 3 10, Cust

95 Capacitated facility location m facilities, n customers, cost c ij, demand d j, capacity C i, fixed cost f i i j C i, f i c ij djdj 10, 3 10, Cust Cost 21.29

96 Capacitated facility location Variables x ij fraction of demand supplied by facility i to cusomter j y i is 1 if facility i is open, 0 otherwise Formulation Min  i=1,…,n,j=1,…,m c ij x ij +  j=1,…,m f j y j s.t.  i=1,…,m x ij ≥ 1 for j = 1,…, n Demand  j=1,…,n d i x ij ≤ C i y i for i = 1,…, m Roll x ij ≤ y i for i = 1,…, m j = 1,…, n Flow x ij ≥ 0 y i  {0, 1}

97 Example code

98 MasterSubproblem Solution values Benders cuts Min cx + dy s.t.Ax ≥ b Px + Qy ≥ r x ≥ 0 and integer y ≥ 0 Min cx +  s.t.Ax ≥ b x ≥ 0 and integer  ≥ 0 Min dy s.t.Qy ≥ r – Px y ≥ 0 Benders decomposition What if the subproblem is infeasible?

99 Benders decomposition Primal, dual possibilities OptimalUnboundedInfeasible OptimalYesNo UnboundedNo Yes InfeasibleNoYes Dual Primal

100 MasterSubproblem Solution values Benders cuts Min cx + dy s.t.Ax ≥ b Px + Qy ≥ r x ≥ 0 and integer y ≥ 0 Min cx +  s.t.Ax ≥ b optimality cuts feasibility cuts x ≥ 0 and integer  ≥ 0 Min dy s.t.Qy ≥ r – Px y ≥ 0 Benders decomposition

101 Min dy s.t.Qy ≥ r – Px[u] y ≥ 0 Optimal Infeasible Max u T (r – Px) s.t.u T Q ≤ d[y] u ≥ 0 Optimality cut  ≥ u k T (r – Px) Infeasibility cut v k T (r – Px) ≤ 0 Benders decomposition

102 MasterSubproblem Solution values Benders cuts Min cx + dy s.t.Ax ≥ b Px + Qy ≥ r x ≥ 0 and integer y ≥ 0 Min cx +  s.t.Ax ≥ b  ≥ u k T (r – Px) v k T (r – Px) ≤ 0 x ≥ 0 and integer  ≥ 0 Max dy s.t.Qy ≤ r – Px y ≥ 0 Benders decomposition

103 Solve master problem Is optimal? START Solve sub problem Terminate? END Add optimality cut Add feasibility cut yesno yes no

104 Capacitated facility location Variables x ij fraction of demand supplied by facility i to cusomter j y i is 1 if facility i is open, 0 otherwise Formulation Min  i=1,…,n,j=1,…,m c ij x ij +  j=1,…,m f j y j s.t.  i=1,…,m x ij ≥ 1 for j = 1,…, n Demand  j=1,…,n d i x ij ≤ C i y i for i = 1,…, m Roll x ij ≤ y i for i = 1,…, m j = 1,…, n Flow x ij ≥ 0 y i  {0, 1}

105 Capacitated facility location Master Min  j=1,…,m f j y j +  s.t.optimality cuts feasibility cuts y i  {0, 1}  ≥ 0 Subproblem Min  i=1,…,n,j=1,…,m c ij x ij s.t.  i=1,…,m x ij ≥ 1 for j = 1,…, n Demand  j=1,…,n d i x ij ≤ C i y i for i = 1,…, m Roll x ij ≤ y i for i = 1,…, m j = 1,…, n Flow x ij ≥ 0

106 Capacitated facility location Subproblem primal Min  i=1,…,n,j=1,…,m c ij x ij s.t.  i=1,…,m x ij ≥ 1 [  j ]  j=1,…,n d i x ij ≤ C i y i [  i ] x ij ≤ y i [  ij ] x ij ≥ 0 Subproblem dual Max  j=1,…,m  j +  i=1,…,n C i y i  i +  i=1,…,n,j=1,…,m y i  ij s.t.  j + d i  i +  ij ≥ 1 [x ij ]  j ≥ 0  i ≤ 0  ij ≤ 0

107 Capacitated facility location Master Min  j=1,…,m f j y j +  s.t.  ≥  j=1,…,m  j +  i=1,…,n C i  i y i +  i=1,…,n,j=1,…,m  ij y i  j=1,…,m  j +  i=1,…,n C i  i y i +  i=1,…,n,j=1,…,m  ij y i ≤ 0 y i  {0, 1}  ≥ 0

108 Example code

109 Benders decomposition for stochastic prog. MasterScenario 2 Scenario 1 Scenario 3

110 Capacitated facility location m facilities, n customers, cost c ij, demand d j, capacity C i, fixed cost f i i j C i, f i c ij djdj 10, 3 10, Cust

111 Example code

112 CP-based Benders decomposition Typical implementation(?) MasterSubproblem Constraint programming Linear programming Solution values Benders cuts

113 CP-based Benders decomposition Recent developments MasterSubproblem Integer programming Constraint programming Solution values Benders cuts

114 CP-based Benders decomposition ApplicationReferenceMaster problemSubproblem Parallel machine scheduling V. Jain, I.E. Grossmann MILPCP Polypropylene batch scheduling C. Timpe MILPCP Call center schedulingT. Benoist, E. Gaudin, B. Rottembourg CPLP Multi-machine scheduling J.N. Hooker MILPCP J.N. Hooker MILPCP Source: Hooker, 2006

115 Nested Benders decomposition –When the subproblem is decomposed into a master and subproblem MasterSub MasterSub MasterSub MasterSub Forward pass Solve master problems Backward pass Solve subproblems and add Benders cuts

116 Outline Introduction Background Dantzig Wolfe decomposition Benders decomposition Conclusions

117 Why use decomposition? Many real-world systems contain loosely connected components, and as a result, the corresponding mathematical models present a certain structure that can be exploited It may be your only choice when solving the model without decomposition is impossible, because it is too large (memory error or timeout)

118 When is decomposition likely most effective? When you have either complicating constraints or complicating variables Dantzig Wolfe decomposition Benders decomposition

119 Further reading Column Generation –Guy Desaulniers, Jacques Desrosiers, Marius M. Solomon Decomposition Techniques in Mathematical Programming –Antonio J. Conejo, Enrique Castillo, Roberto Minguez and Raquel Garcia-Bertrand Linear Programming and Network Flows –Mokhtar S. Bazaraa, John J. Jarvis, Hanif D. Sherali

120 From imagination to impact


Download ppt "Menkes van den Briel Member of Research Staff NICTA and ANU Combining Linear Programming Based Decomposition Techniques with Constraint."

Similar presentations


Ads by Google