300 likes | 314 Views
Explore location allocation problems, rectilinear distance optimization, and facility placement models using advanced solver methods for efficiency and cost-effectiveness.
E N D
Location Problems John H. Vande Vate Spring 2005 1
Rectilinear Location Problems Euclidean Location Problems Location - Allocation Problems Where to Locate Facilities 2
On the line, if the objective is to min … The maximum distance traveled The maximum distance left + right The distance traveled there and back to each customer The item-miles traveled Basic Intuition 1 4 0 3
Travel on the streets and avenues Distance = number of blocks East-West + number of blocks North-South Manhattan Metric Rectilinear Distance 4
Rectilinear Distance 9 5 4 5
To minimize the sum of rectilinear distances Intuition Where? Why? Locate a facility... 6
Locate a facility... • To minimize the max of rectilinear distances • Intuition • Where? • Why? 8
Set Customers; Param X{Customer}; Param Y{Customer}; Var Xloc; var Yloc; var Xdist{Customer}>= 0; var Ydist{Customer}>= 0; var dmax; min objective: dmax; s.t. DefineMaxDist{c in Custs}: dmax >= Xdist[c] + Ydist[c]; Min the Max 9
Min the Max Cont’d • DefineXdist1{c in Customer}: Xdist[c] >= X[c]-Xloc; • DefineXdist2{c in Customer}: Xdist[c] >= Xloc-X[c]; • DefineYdist1{c in Customer}: Ydist[c] >= Y[c]-Yloc; • DefineYdist2{c in Customer}: Ydist[c] >= Yloc-Y[c]; 10
Solver Model 11
Locate a facility... • To minimize the max of rectilinear distances • Intuition • Where? • Why? 12
Maximize the Minimum Distance Can’t say Xdist[c] <= X[c] - Xloc; Want to say that either Xdist[c] <= X[c] – Xloc OR Xdist[c] <= Xloc - X[c] Find a bound on the X distance between a customer and the facility, call it M Add a variable Left[c] = 1 if X[c] > Xloc and Left[c] = 0 otherwise Xdist[c] <= X[c] – Xloc + 2*Left[c]*M Xdist[c] <= Xloc – X[c] + 2*(1-Left[c])*M NIMBY 14
The Model 15
Rectilinear Location Problems Euclidean Location Problems Location - Allocation Problems Outline 16
Distance is not linear Distance is a convex function Local Minimum is a global Minimum Locating a single facility 17
Total Cost = S ckdk(x,y) = S ck(xk- x)2 + (yk- y)2 Total Cost/x = S ck (xk - x)/dk(x,y) Total Cost/x = 0 when x = [Sckxk/dk(x,y)]/[Sck/dk(x,y)] y = [Sckyk/dk(x,y)]/[Sck/dk(x,y)] But dk(x,y) changes with location... Where to Put the Facility 18
Start somewhere, e.g., x = [Sckxk]/[Sck] y = [Sckyk]/[Sck] as though dk= 1. Step 1: Calculate values of dk Step 2: Refine values of x and y x = [Sckxk/dk]/[Sck/dk] y = [Sckyk/dk]/[Sck/dk] Repeat Steps 1 and 2. ... Iterative Strategy 19
Solver Model 20
Call on Convex Minimization Tool Minos, Interior Point Methods, … Typically don’t support discrete variables too… Convex Minimization 21
Fixed Number of Facilities to Consider Single Sourcing Two Questions: Location: Where Allocation: Whom to serve Each is simple Together they are “harder” Locating Several Facilities 22
Put the facilities somewhere Step 1: Assign the Customers to the Facilities Step 2: Find the best location for each facility given the assignments (see previous method) Repeat Step 1 and Step 2 …. Iterative Approach 23
Uncapacitated (facilities can be any size) “Greedy”: Assign each customer to closest facility Capacitated Use Optimization Assign Customers to Facilities 24
Var x{Custs, Facs} binary; minimize AllocationCost: sum{c in Custs, f in Facs} C[c,f]*x[c,f]; s.t. AssignEachCust{c in Custs}: sum{f in Facs} x[c,f] = 1; s.t. FacilityCapacity{f in Facs}:sum{c in Custs}D[c]*c[c,f] <= Cap[f]; Allocation Model 27
WesternAir 29
If there is Value Added: E.g., BMW Assembly Plant High Value items: E.g., Intel EU distribution center If there is labor content… Competition… Service vs Cost... The Rest of the Story 30