550 likes | 561 Views
Explore the various location problems faced in strategic planning and discover effective solutions to optimize warehouse locations and transportation logistics.
E N D
OST: Chapter 2 Strategic Planning Problems - Location
Content • 2.1 Location problems as strategic planning problems • 2.2 Continuous single location planning in the plane • 2.3 Median problem (single location) • 2.4 Center problem (single location) • 2.5 Warehouse location problem (WLP) • 2.6 ADD and DROP for WLP • 2.7 Branch and Bound (B&B) for WLB • 2.8 p-median problem • 2.9 Transportation problem • 2.10 Capacitated WLP
PS1 PS2 PS3 PS4 Production site … transport Full truck load (FTL) CW1 CW2 CW3 CW4 Central warehouses … transport FTL or tours RW1 RW2 RW3 RW4 Regional warehouses … transport LTL tours C1 C2 C3 C4 Customers … 2.1 Location Problems (Multi Stage)
More or less stages possible • Some stages (inventory holding and/or transportation) can be delegated to logistics service providers • Transportation „less than truck load“ (LTL) will be covered in course → Transportation Logistics • Location decisions: • Number of warehouses • Which warehouse locations? • Assignment of customers to warehouses
2.2 Continuous location in the plane • A single location in the plane (with beeline distance) can be determined by an analog model „Varignon frame“(Varignonscher Apparat) • Not very relevant in reality
2.3 Median Problem (Single Location) • Given: • Set of customers which must be serviced • Set of potential locations (often same as customer locations) • One of these locations must be selected • Define • bj… demand of customer j • dij … distance from location i to customer j • Total delivery cost if location i is built is • σ(i) = ∑dijbj→ min • Can be solved by complete enumeration
Example: Median • Example from Domschke und Drexl (Logistik: Standorte, 1990, Kapitel 3.3.1) • Numbers in table are already the cij = dijbj • Which location should be built (just one)
Example: Median (continued) • Total delivery cost if location i is built is ci(sum in row) • Minimum is c5=34 if location i=5 is built (median)
2.4 Center Problem (Single Location) • A related problem is the center problem – “Fairness” • cij is now interpreted as disutility of customer j visiting facility i • Set of customers which must be serviced • Set of potential locations • One of these locations must be selected • Minimize the maximum disutility! (not total cost!) • Can be solved by complete enumeration • Similar to with median • Replace „sum“ by „max“ operator
Example: Center • Example adapted from Domschke und Drexl (Logistik: Standorte, 1990, Kapitel 3.3.1) • Numbers in table are the disutilities cij • Which location should be built (just one)
Example: Center (continued) • Maximum disutility if i is built is i(sum in row) • Minimum is 5 =7 if location i=5 is built (center)
L1 L2 m K1 K2 K3 K4 n 2.5 Multiple Locations: Warehouse Location Problem (WLP) • Here only single layer WLP (facility location problem FLP) • Assume at the moment that the capacities are unlimited • Each location has a certain fixed cost • How many and which locations should be built? • Minimize Total cost = transportation cost + fixed cost
Example: from Domschke und Drexl (Logistik: Standorte, 1990, Kapitel 3.3.1) • Same example as before • Just fixed costs fi are introduced for each location i • As before, numbers cijin table are delivery cost, if customer j gets all his demand from location i • Which locations should be built (and how many)?
Example WLP (continued)two typical solutions Solution 2: just locations 1 and 3 are built Solution 1: all locations are built Fixed costs = 5+7+5+6+5 = 28 Transp. Cost = 1+2+0+2+3+2+3 = 13 Total Cost = 28 + 13 = 41 Fixed costs = 5+5 = 10 Transp. Cost = 1+2+1+5+3+7+3 = 22 Total Cost = 10 + 22 = 32 • Here, solution 2 isbetter. But whatisthe optimal solution?
Complete enumeration of all possible configurations< • 2 possibilities for each location exponential: • 2m-1 possble solutions (if m=10 → 1023 solutions) • Formulation as mixed integer LP-Model (MIP) • yi … binary variable für i = 1, …, m yi= 1 if a warehouse is built at potential location iyi= 0 otherwise • xij… real „assignment“ oder transportation variablefori = 1, …,mandj = 1, …, n: xij= fractionofdemandofcustomerjcomingfromlocationi.
MIP Formulation for the Uncapacitated WLP for i = 1, …, m and j = 1, …,n xij≤ yi for j = 1, …,n for i = 1, …, m for all i and j Transportation cost + fixed cost Only locations i which are built (yi=1) can be used for delivery (xij > 0) Total demand of customer j must be satisfied yiis binary and xij non-negative
Complexity problem: • m*n real variables und m binary variables → for about 100 and more potential locations exact solution extremely time consuming / impossible → heuristics • Different types of heuristics: • Construction heuristics (determine a feasible starting solution)e.g. ADD and DROP in what follows • Improvement heuristics (improve a starting solution using exchenges, etc.)
2.6 Heuristics for the WLPADD Heuristic • Notation used I:={1,…,m} set of all possible locations I0 set of finally closed locations (yi fixed to 0) Iovl set of preliminarily closed locations, „don‘t know“ I1 set of finally open locations (yi fixed to 1) reduction in transportation cost, if i is opened in addition to current ones Z total cost (objective)
Initialization: • Determine which location should be built first (best if just one location) • row sum ci:= ∑cijof cost matrix • determine location k with minimal total cost ck + fk • Set I1 = {k}, Iovl = I – {k} and Z = ck + fk • For all i in Iovl determine reduction in transp cost ωij = max {ckj – cij, 0} for all customers j and row sum ωi. • Example: first location k=5 with Z:= c5 + f5 = 39, I1 = {5}, Iovl = {1,2,3,4} similar to mewdian problem (just add fixed costs)
5 2 1 3 11 5 4 6 4 14 7 5 4 1 10 5 1 1 2 6 • matrix: ωijis the reduction in transportation / delivery cost for ciustomer j if location i is built in addition to the already open locations. • Row sum ωi is the total reduction in transportation / delivery cost , by additional location i.
Iovl = Iovl – {k} and Z = Z – ωk + fk Close all with ωi ≤ fi finally: • Iteration: • in each iteration exactly one location out of the „don‘t know“ set Iovl is finally built. It is the one with the maximam saving in total cost • Find potential location in Iovl, for which (reduction in transport cost minus additional fixed cost) ωk – fk is maximal • Furthermore, all those locations can be finally closed which where the reduction in transport cost is smaller than the additional fixed cost → • For all i in Iovl and all customers j compute the updated reduction in transport cost : ωij = max {ωij - ωkj, 0}
5 2 1 3 11 5 4 6 4 14 7 5 4 1 10 5 1 1 2 6 • Termination condition: • The procedure stops, as soon as all additional locations from Iovl would lead to a cost increase if built. i.e. Iovl = { }. • Bulid all locations from I1. • Total cost Z • Optimal assignment: xij = 1 if • Example: Iteration 1 Bild k = 2 Close i = 4 • Because ω4 < f4 location 4 can be finally closed. Location k=2 is finally open. • Now total cost Z=39 – 7 = 32 and Iovl = {1,3}, I1 = {2,5}, Io = {4}. • Determine new cost reductions ωij.
1 2 3 6 5 1 5 Build k = 1 Close i = 3 1 • Iteration 2: • the above table shows the max possible reduction in transportation cost for the don‘t know locations 1 und 3. • Location 1 is finally built. Location 3 is finally closed. • Final result: • The ADD algorithm stops with solution I1 = {1,2,5}, Io = {3,4}, Iovl = { },and Z = 32 – 1 = 31 • Locations 1, 2 and 5 are built • Customers {1,2,7} are assigned to location 1, {3,5} to location 2, and {4,6} to location 5. Total cost is Z = 31.
DROP Heuristic • The don‘t know set is now I1vl: • I1vl … set of preliminarily open locations (yi = 1 currently, but can still change) • The Drop Algorithm works the other way round compared to ADD, i.e. it starts with all alle potential locations to be open (preliminarily). • Initialisation: I1vl = I, I0= I1= { } • Iteration • In each iteration one location out of I1vl is finally closed. It is the one where the closing causes the highest cost reduction.. • If closing a location from I1vl would increase total cost, it can be finally built, i.e. move to set I1
5 build close 1 0 1 1 1 2 0 2 3 2 3 2 4 1 3 3 3 5 1 1 2 4 2 5 1 2 5 3 5 3 4 3 • In rows m+3 and m+4 we put the row numbers, where the smallest (h1) and second smallest (h2) cost elements occur. If location h1 (from I1vl) is closed, the transportation cost increase for customer j by ch2j - ch1j • For efficient implementation 4 additional lines are added to transp cost matrix C: • For each column j = 1, …, n, rows m+1 and m+2 of C hold the smallest (ch1j) and second smallest (ch2j) element of this column. Onlky rows which are not finally deleted are considered → • Example: Initialisation and Iteration 1: I1vl ={1,2,3,4,5}
For all i from I1vl compute increase in transportation cost δiif I is finally dropped. δi is sum of differences between smallest and second smallest cost element in rows where i = h1 contains the smallest element. • 2 examples: • δ1 = (c21 – c11) + (c52 – c12) + (c37 – c17) = 5 • δ2 = (c33 – c23) + (c35 – c25) = 1 • If fixed costs savings fi exceed additional transportation cost δi, finally drop i. In Iteration 1 location 1 is finally built. • Iteration 2: • I1vl = {3,4,5}, I1= {1}, I0= {2} • Omit row 2 because finally dropped. Update remaining 4 rows, where changes are only possible where smallest or second smallest element occurred • Keep row 1 since I1= {1}, but 1 is no candidate for dropping. Hence do not compute δi there.
- 8 build 1 close 1 1 2 1 2 3 2 3 6 4 6 3 6 3 5 3 1 1 4 3 5 1 4 5 5 5 1 4 3 Location 3 is finally built, location 4 finally dropped.
- - 7 1 2 1 3 3 2 3 6 4 6 5 6 7 5 1 1 3 5 3 5 1 5 5 5 3 1 1 3 • Iteration 3: • I1vl = {5}, I1 = {1,3}, I0 = {2,4} build Location 5 is finally built, since closing would only save fixed cost of f5 = 5 while transp cost would increase by δ5 = 7.
Result: • Build locations I1= {1,3,5} • Deliver customers {1,2,7} from 1, customers {3,5} from 3, and customers {4,6} from 5. • Total cost Z = 30 (slightly better than ADD – can be the other way round)
Improvement for WLP • In each iteration you can do: • Replace a built location (from I1) by a forbidden location (from I0). Choose first improvement of best improvement • Using rules of DROP-Algorithm delete 1 or more locations, so that cost decrease most (or increase least) and then apply ADD as long as cost savings are possible. • Using rules of ADD-Algorithm add 1 or more locations, so that cost decrease most (or increase least) and then apply DROP as long as cost savings are possible.
2.7 Branch and Bound for WLB • Branch and Bound is an exact solution procedure for (mixed) integer programming problems (MIPs) • It is e.g. used by general MIP solvers like XPRESS, CLPEX, GUROBI, GLPK, etc. to solve MIPs • For various combinatorial optimization problems (e.g. in logistics) tailored B&B algorithms are available (independent of MIP formulation) • Basic idea: • Starting from a root node construct a tree by branching • Constructing the whole tree would mean complete enumeration • Cutting away whole branches (bounding) is essential
Example Thonemann (2015) • A firm has to deliver to 4 customers and has 3 potential locations for warehouses • Given dij … unit cost i→j, bj … demand, fi … fixed cost • Multiply distance dij and demand bj demand cij =dij * bj
Example continued 1 • Table shows now the ciji.e. the distribution cost if customer j gets all his demand from location i • Determinewhichlocationstochoose
Example: Notation • xxx … state of the warehouses: possible values x=0/1/? • 111 … all are built • 01? … 1 is closed, 2 is built, 3 don’t know • 01? … would correspond to I1= {2}, I0= {1}, I1/0vl = {3}, • Root node ??? represents the whole set of possible solutions (no decisions yet) • In each branching step, • one chooses one node still having some ? • this node is split in two sub-nodes (children, subsets): • choose a ? • put 1 in one child and 0 in the other
00? 01? 111 001 101 011 010 0?? 10? 11? 1?? 110 100 ??? Example: B&B Tree • Complete enumeration of the 2n = 8 solutions gives complete tree • In each level one more decision is fixed (000 infeasible) • At the “leaves”, all decisions made complete solutions • B&B avoids building the whole tree bounding 000
Example: B&B Bounding • In each node a lower bound for the optimal total cost is computed: LB=LBfix +LBtr • LBfix =treat all ? locations as closed = 0, e.g. • LBfix(???) = LBfix(000) = 0, • LBfix(0??) = LBfix(000) = 0, • LBfix(1??) = LBfix(100) = 85, • LBfix(101) = 85 + 65 = 150 • LBtr =treat all ? locations as open = 1 • LBtr(???) = LBtr(111) = 26 + 31 + 25 + 15 = 97 LB= 97 LBtr(0??) = LBtr(011) = 26 + 45 + 25 + 24 = 120 LB= 120LBtr(1??) = LBtr(111) = 26 + 31 + 25 + 15 = 97 LB= 182LBtr(101) = 26 + 31 + 40 + 15 = 112 LB= 262
Example: B&B Bounding • If many ? LB looks promising (low value) but LB is poor approximation of real obj value (total cost) • The leaves contain just 1 solution and LB = real obj value • LB is computed for each node • A single upper bound UB for the optimal total cost of the complete problem is kept → best known solution e.g. from heuristic • E.g. choose solution 100 • Fixed cost = 85 • Transp cost = 134 • UB = 219
???97 10?197 01?180 00?210 1??182 0??120 Example: B&B • UB = 219 • Root ???, LB(???) = 97 • 1st branching:??? → 1??, 0??LB(1??) = 182 node alive (node can contain opt sol)LB(0??) = 120 node alive (node can contain opt sol)Both LB < UB nodes alive • 2nd branching on 1??LB(11?) = 242>UB deleteLB(10?) = 197 node alive • 3rd branching on 0?? 11?242
100219 010210 1??182 0??120 101262 01?180 00?210 011245 001275 10?197 ???97 Example: B&B continued • After 3 branchings: UB = 219 • 4th branching on 10?LB*(101) = 262deleteLB*(100) = 219delete • At leaves LB* is not only LBbut solution with this value • 5th branching on 01?LB*(011) = 245deleteLB*(010) = 210 < UB • New UB = 210 • 00? only contains 001LB*(001) = 275delete 11?242 000
UB by ADD • Heuristic ADD forupperbound: 010 withcost 210
101262 01?180 00?210 100219 010210 1??182 0??120 10?197 011245 ???97 B&B with UB from ADD • In case the better UB = 210 from ADD is used, the tree gets smaller: 00? can be fathomed • For B&B is important • good starting heuristic /UB • good LB for the nodes • rule where to branch • Branching rule • Here binary sorting • Heuristics useful • E.g. 2→3→1 from ADD 11?242
2.8 P-Median • Number of facilities is fixed … p • Typically fixed costs are not needed (but can be considered if not uniform) • Exact solution: • MIP with MIP solver or B&B • Heuristics • ADD, DROP • Lagrangean relaxation, …
MIP for p-Median i = 1, …, m j = 1, …,n xij ≤ yi j = 1, …,n i = 1, …, m For all i and j transportation cost+ fixed cost Delivery only from locations i that are built Satisfy total demand of customer j yi is binary xij non negative Exactly p facilities
2.9 Transportation Problem • In order to evaluate the transportation cost for a capacitated version of the WLP, the solution of the so called „transportation problem“ is needed. • A set of customers has to be serviced, i.e. their demand must be fulfilled • A set of locations (suppliers) is available, and all their supply must be used • Total demand = total supply • Transportation cost per unit from each location to each customer is given • Find the optimal delivery plan where the total transportation cost is minimized • Example with 3 locations and 4 customers:
i = 1, …, m j = 1, …, n i = 1, …, m; j = 1, …, n Demand = supply Otherwise contradiction • m suppliers with capacity/supply si, i = 1, …, m • n customers with demand dj, j = 1, …, n • Unit transportation cost cij from i to j,i = 1, …, m; j = 1, …, n • General formulation: • LP-Formulation • Define variables: xijtransported quantity from ito j Transport cost Supply Demand Non-negativity
K = (10x11+5x12+6x13+11x14) + (x21+2x22+7x23+4x24) + (9x31+x32+4x33+8x34) min • Supply constraints: • x11 + x12 + x13 + x14 = 25 (i=1) • x21 + x22 + x23 + x24 = 25 (i=2) • x31 + x3 2+ x33 + x34 = 50 (i=3) : • Transportation problem in the above example:: • Demand constraints : • x11 + x21 + x31 = 15 (j=1) • x12 + x22 + x32 = 20 (j=2) • x13 + x23 + x33 = 30 (j=3) • x14 + x24 + x34 = 35 (j=4) • Non-negativity: • xij 0 für i = 1, … , 3; j = 1, … , 4
General structure of coefficient matrix: • Solution: • Simplex-Method → not very efficient if the whole matrix is used • In each column exactly 2 of the m + n elemants are ≠ 0 2-phase (or big M) simplex method applicable but inefficient • Efficient solution (course Management 2): • Use starting heuristic such as Vogel approximation Use modi (stepping stone) to find optimal solution • Exactly same computations as simplex method but more efficient notation
2.10 Capacitated WLP • The capacitated (single stage) WLP is different from the uncapacitated WLP only in the following respect: • The potential locations i = 1, ..., m have a maximum capacity of s1, ..., sm quantity units (per unit time) • The transportation cost cij from i to j are now per unit cost • The demand quantities of the customers are explicitly given: d1, ..., dn • xij is now the quantity that is sent from location i to customer j(per unit time) • Because of capacity constraints, 2 things can/will happen, that were not possible for uncapacitated WLPs: • Some customers receive quantities from more than one supplier • Some customers are not (only) serviced from the closest supplier
LP – Formulation for i = 1,…,m for i = 1,…,m for all i and j Transportation cost + Fixed cost Only if location i is built, it can be used for delivery; Only supply quantity can be used for delivery for i = 1,…,m for j = 1,…,n The quantity that goes from i to j cannot exceed demand Total demand must be satisfied for j = 1,…,n yiis binary and xijis non-negative
ADD and DROP for the capacitated WLP • Basic idea same as for uncapacitated problems: • ADD → start with 1 location and iteratively add locations • DROP → start with all locations open and iteratively delete locations • Different • Each time a configuration (which locations are open/closed) is evaluated, a transportation problem has to be solved • In order to overcome imbalances between supply and demand a dummy node must be introduced: • If total demand < total supply, a dummy customer is introduced. His demand is set to (total supply) – (total demand). Quantities „transported to“ this dummy customer mean unused capacity • If total demand > total supply, a dummy supplyer is introduced. His supply is set to (total demand) – (total supply). Quantities „transported from“ this dummy supplyer mean unsatisfied demand penalize with M