Hub and Spoke Network Design 1 Outline Motivation Problem Description Mathematical Model Solution Method Computational Analysis Extension Conclusion 2 Motivation 1 7 5 2 4 3 8 9 3 Motivation Spoke s σ = 0.25 Hubs Spoke and Hub Network 4 Motivation Hub and Spoke Network design: Cited as “seventh in the American Marketing Association series of ‘Great Ideas in the Decade of Marketing’ (Marketing News, June 20, 1986) Predominant architecture for airline route system since deregulation in 1978 Finds applications in telecommunication network, express cargo 5 Problem Description Given a network of nodes with given flows between each pair, determine: Which nodes are set as hubs Which hub is a node assigned to So that: Every flow is first routed through one or two hubs before being sent to its destination 6 Methodologies Enumeration heuristics - O’Kelly (1986) Meta-heuristics: Tabu Search – Klincewicz (1991); Kapov & Kapov (1994) Simulated Annealing – Ernst & Krishnamoorthy (1996) Lagrangian relaxation – Pirkul & Schilling (1998); Aykin (1994); Elhedhli & Hu (2005) 7 Mathematical Model 1 if spoke i assigned to hub Z ik 0, otherwise X ijkm k 1 if flow from i to j via hubs k and m in that order 0, otherwise m i k j 8 Mathematical Model Min Fijkm X ijkm i Subject to: Fijkm Wij (Cik Ckm Cmj ) (1) j k m Z ik 1 for all i (2) for all i, k (3) k Z ik Z kk Z kk p (4) k X ijkm Z ik m X ijkm Z jm for all i, j > i, k (5) for all i, j > i, m (6) k X ijkm , Z ik {0,1} (7) 9 Mathematical Model Problem size: For number of nodes = n: n3 (n 1) No. of binary var iables n2 2 That’s too large! No. of constraint s n3 1 For n = 15: No. of binary var iables 23850 No. of constraint s 3376 10 Solution Method Lagrangian Relaxation 31 different lagrangian relaxations possible Review on Lagrangian Relaxation: Fisher (1981, 2005); Geoffrion (1974) In current study, constriant sets (2), (5), (6) relaxed 11 Solution Method Min Fijkm X ijkm i Subject to: (1) j k m Z ik 1 for all i (2) for all i, k (3) αi k Z ik Z kk Z kk p (4) k X ijkm Z ik m X ijkm Z jm for all i, j > i, k (5) βijk for all i, j > i, m (6) Gijm k X ijkm , Z ik {0,1} (7) 12 Solution Method Min C ik Zik F ijkm X ijkm i i Subject to: i j i k m k Z ik Z kk i for all i, k Z kk p (7) (3) (4) k Where, C ik i ijk jik j i j i F ijkm Fijkm ijk ijm Sub problem 2 Sub problem 1 13 Solution Method Constrained added to improve bound [SUB2]: F ijkm X ijkm Min Subject to: i j i k m X ijkm 1 for all i, j > i k m X ijkm {0,1} [SUB1]: Min C ik Z ik Subject to: Z ik Z kk i k for all i, k Z kk p k Zik {0,1} 14 Solution Method [MASTER]: Max i 1 2 i h Subject to: 1 F ijkm X ijkm for h = 1,2,…. i j i k m 2 Cik Z h ik i for h = 1,2,…. k i ,1 , 2 free 15 Solution Algorithm [SUB1]: For each i, j: Find F hn Min ( F ijkm ) km Set X ijhn 1 16 Solution Algorithm [SUB2]: Let Z kk 1 for all k for all i, k, if C ik 0, set Zik 1 Set S k C ik Z ik i Sort Sk ' s in ascending order Place in a set the index k of the first smallest p Sk ' s For this set of indices, set each associated Zkk 1 if C ik 0, set each Z ik 1, for all i, and set all other Z ik variables to zero. 17 Solution Algorithm [Feasible Solution]: If Z ik 1, then k Set Z ik 0, for all k Find C in Min k (C ik | Z kk 1) Set Z in 1 If Zik 0, then k Find C in Min k (C ik | Z kk 1) Set Z in 1 For all i, j i, m, k, set X ijkm Z ik * Z jm 18 Solution Algorithm Issues: Slow convergence as master problem grows too large Could not converge in 30 minutes for 10 nodes How to resolve?? ? 19 Solution Algorithm Subgradient Optimization to find lagrang multipliers Initialize α, β, γ; Initialize step size Solve SUB1; SUB2 and obtain LB Construct a feasible solution and obtain UB If no improvement in LB since long, decrease step size No stop Is (UB-LB)/LB>ε? α, β, γ Yes Adjust α, β, γ by the amount of infeasibility 20 Computational Analysis Original Model (Cplex) # Nodes # Hubs 5 2 0.012 8 2 10 Lagrangean Relaxation Time (sec) Time (sec) % Gap Optimal ? 0.924 0.0 Y 0.112 5.048 0.0 Y 2 0.699 94.810 0.07 Y 12 3 353.76 202.928 0.84 Y 15 3 > 1 Hour 922.911 0.96 --- 21 Analysis Congested 22 Extended Model b Min Fijkm X ijkm i Subject to: j k m a WijWZijikXijkm k i jjii m Z ik 1 b (1) for all i (2) for all i, k (3) k Z ik Z kk Z kk p (4) k X ijkm Z ik m X ijkm Z im for all i, j > i, k (5) for all i, j > i, m (6) k X ijkm , Z ik {0,1} Fijkm Wij (Cik Ckm Cmj ) Congestion Cost function 23 Extended Model cont.. Min Fijkm X ijkm i j k m h ab Wij Z ik i j i Subject to: b max a1 b Wij Z ik h H k i j i b 1 (2) – (7) Wij Z ik i j i Linear Approximation using tanget planes for congestion cost function 24 Extended Model cont.. Min Fijkm X ijkm i j k m a wk k Subject to: wk b Wij Z ikh i j i (2) – (7) b 1 b Wij Z ik 1 b Wij Z ikh h H (8) k i j i i j i MIP with an infinite number of constraints 25 Solution Method (Langrangean Relaxation) Min C ik Zik aWk F ijkm X ijkm i i Subject to: k k i j i k m Z ik Z kk i for all i, k (3) Z kk p (4) k wk b Wij Z ikh i j i b 1 b Wij Z ik 1 b Wij Z ikh h H (8) k i j i i j i X ijkm , Z ik {0,1} Where, (7) C ik i ijk jik j i j i F ijkm Fijkm ijk ijm Sub Sub problem problem 12 26 Solution Method contd.. [SUB1]: Min C ik Z ik aWk i k k In absence of this constraint, problem separates into k smaller problems; each can be solved using cutting plane method Subject to: Z ik Z kk for all i, k (3) Z kk p (4) k h wk b Wij Z ik i j i b 1 b Wij Z ik 1 b Wij Z ikh h H (8) k i j i i j i X ijkm , Z ik {0,1} (7) 27 Solution Method contd.. Solution implemented in MATLAB 7.0 [SUB1-k] solved using CPLEX 10 CPLEX called from MATLAB 28 Computational Analysis # Nodes # Hubs Time (sec) Hubs % Gap 5 2 3.113 4,5 0.38 8 2 86.322 4,9 1.00 10 2 42.049 3,7 0.66 12 3 719.763 1,3,8 0.98 15 3 1800.00 2,14,15 2.81 29 Discussion Solution speed can be improved by using a compiled code (in C or Fortran). MATLAB is inefficient in executing loops as it is interpreted line by line. 30 Conclusion A model for Hub and Spoke Network Design solved using lagrangean relaxation Model extended to address the issue of congestion Good solutions obtained in reasonable time Solution speed can be further improved if implemented in a language that uses a compiler 31 32