Chapter 12 - University of Louisville

advertisement
Facilities Design
S.S. Heragu
Industrial Engineering Department
University of Louisville
Chapter 12:
Advanced Location
Models
Chapter 12: Advanced Location
Models
12.1
12.2
12.3
INTRODUCTION
LOCATION MODELS
12.2.1 Multiple-Facility Problems with
Rectilinear Distances
12.2.2 Multiple-Facility Problems with
Euclidean Distances
ALLOCATION MODELS
12.3.1 Network Flow Model
12.3.2 Two-Stage Transportation Model
12.3.3 Vehicle Routing Problem
Chapter 12: Advanced Location
Models
12.4
12.5
LOCATION-ALLOCATION MODELS
12.4.1 Set Covering Model
12.4.2 Uncapacitated Location-Allocation
Model
12.4.3 Comprehensive LocationAllocation Model
SUMMARY
Introduction
-
How many new facilities are to be located in
the distribution network consisting of
previously established facilities and
customers?
Where should they be located?
How large should each new facility be? In
other words, what is the capacity of the new
facility?
Introduction
-
How should customers be assigned to the
new and existing facilities? More
specifically, which facilities should be
serving each customer?
Can more than one facility serve a customer?
12.2
LOCATION
MODELS
12.2.1
Multiple-Facility Problems
with Rectilinear Distances
Model 1:
n
n
c
Minimize
ij
f ij [| x i  x j |  | y i  y j |]
i1 j 1
n

m
  d g [| x
ij ij
i1 j 1

i
 a j |  | y i  b j |]
Model 1:
Define
( xi  x j ) if xi  x j  0
x ij  
otherwise
0
( x j  xi ) if xi  x j  0

x ij  
otherwise
0
We can observe that, whether ( xi  x j )  0 or  0,

xi  x j  x  ij  x  ij and
( xi  x j )  x  ij  x  ij
Model 1:
A similar definition of y+ij, y-ij, xa+ij, xa-ij, yb+ij,
and yb-ij yields
|yi - yj| = y+ij + y-ij
yi - yj = y+ij - y-ij
|xi - aj| = xa+ij + xa-ij
xi - aj = xa+ij - xa-ij
|yi - bj| = yb+ij + yb-ij
yi - bj = yb+ij - yb-ij
Model 1:
Thus, the transformed linear model is:
n
Minimize

n




c
f
x

x

y

y
ij
ij
ij
ij
 ij ij

i 1 j 1

n
m





d
g
xa

xa

yb

yb
ij
ij
ij
 ij ij ij
i 1 j 1

Model 1:
Subject to:
(xi - xj) = x+ij - x-ij
yi - yj = y+ij - y-ij
xi - aj = xa+ij - xa-ij
yi - bj = yb+ij - yb-ij
x+ij, x-ij, y+ij , y-ij > 0, i, j = 1, 2, ...,n
xa+ij, xa-ij, yb+ij , yb-ij > 0, i = 1, 2, ...,n, j =1,2,...,m
xi, yi unrestricted in sign, i = 1,2,...,n
Model 1:
•
•
•
•
xij+ or xij-, but not both, can be greater than 0.
(If both are, then the values of xij+ and xij- do
not satisfy their definition in (2) and (3)).
Similarly, only one of (i) yij+, yij-, (ii) xij+, xaij-,
(iii) ybij+, ybij-, must be greater than 0.
Model 1 can be simplified by noting that:
xi can be substituted as ai + xij+ - xaijyi may also be substituted similarly, resulting
in a model with 2n fewer constraints and
variables than model 1.
Example 1:
•
Tires and Brakes, Inc., is an automobile
service company specializing in tire and
brake replacement. It has four service
centers in a metropolitan area and a
warehouse that supplies tires, brakes and
other components to the service centers.
The company manager has determined that
he needs to add two more warehouses so as
to improve component delivery service.
Example 1:
At the time, he wants to ensure that the location
of the two new warehouses is such that the cost
of delivery components from the new warehouse
to the existing facilities (four service centers and
existing warehouse) as well as between the new
warehouses is minimal. The four service centers
and warehouse are located at the following
coordinate locations - (8, 20), (8, 10), (10, 20), (16,
30), and (35, 20). It is anticipated that there will be
one trip per day between the new warehouses.
Example 1:
In addition, the number of trips between the new
warehouses and four service centers as well as
the existing warehouse is provided below.
W2
W3
SC1
SC2
SC3
SC4
W1
7
3
7
2
5
4
4
5
2
2
Develop a mode similar to the transformed Model
1 to minimize distribution cost and solve it using
LINGO, LINDO or the LP Solver in Excel
Example 1:
MIN XP12 + XN12 + YP12 + YN12 + XP21 + XN21 + YP21 + YN21 + 7
XAP11 + 7 XAN11 + 7 YBP11 + 7 YBN11 + 7 XAP12 + 7 XAN12 + 7 YBP12
+ 7 YBN12 + 5 XAP13 + 5 XAN13 + 5 YBP13 + 5 YBN13 + 4 XAP14 + 4
XAN14 + 4 YBP14 + 4 YBN14 + 2 XAP15 + 2 XAN15 + 2 YBP15 + 2
YBN15 + 3 XAP21 + 3 XAN21 + 3 YBP21 + 3 YBN21 + 2 XAP22 + 2
XAN22 + 2 YBP22 + 2 YBN22 + 4 XAP23 + 4 XAN23 + 4 YBP23 + 4
YBN23 + 5 XAP24 + 5 XAN24 + 5 YBP24 + 5 YBN24 + 2 XAP25 + 2
XAN25 + 2 YBP25 + 2 YBN25
•
•
•
•
•
•
•
•
•
•
•
•
•
•
SUBJECT TO
2) - XP12 + XN12 + X1 - X2 =
3) - XP21 + XN21 - X1 + X2 =
4) - YP12 + YN12 + Y1 - Y2 =
5) - YP21 + YN21 - Y1 + Y2 =
6) - XAP11 + XAN11 + X1 =
7) - XAP12 + XAN12 + X1 =
8) - XAP13 + XAN13 + X1 =
9) - XAP14 + XAN14 + X1 =
10) - XAP15 + XAN15 + X1 =
11) - XAP21 + XAN21 + X2 =
12) - XAP22 + XAN22 + X2 =
13) - XAP23 + XAN23 + X2 =
14) - XAP24 + XAN24 + X2 =
0
0
0
0
8
8
10
16
35
8
8
10
16
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
15) - XAP25 + XAN25 + X2 = 35
16) - YBP11 + YBN11 + Y1 =
17) - YBP12 + YBN12 + Y1 =
18) - YBP13 + YBN13 + Y1 =
19) - YBP14 + YBN14 + Y1 =
20) - YBP15 + YBN15 + Y1 =
21) - YBP21 + YBN21 + Y2 =
22) - YBP22 + YBN22 + Y2 =
23) - YBP23 + YBN23 + Y2 =
24) - YBP24 + YBN24 + Y2 =
25) - YBP25 + YBN25 + Y2 =
END
FREE
X1
FREE
X2
FREE
Y1
FREE
Y2
20
10
20
30
20
20
10
20
30
20
12.2.2
Multiple-Facility Problems
with Euclidean Distances
Consider the following objective for the
euclidean distance problem.
 (x  x )  ( y  y ) 
  d g  ( x  a )  ( y  b ) 
n
Minimize
n
 cij fij
2
i
i 1 j 1
n
2
j
i
j
m
2
i 1 j 1
ij
ij
i
j
2
i
j
Multiple-Facility Problems
with Euclidean Distances
Taking the partial derivatives, we get
n
cij f ij(xi  x j )
j 1
(xi  x j ) 2  (yi  y j ) 2


m
d ij g ij(xi  a j )
j 1
(xi  a j ) 2  (yi  b j ) 2

i  1,2,..., n
 0,
Multiple-Facility Problems
with Euclidean Distances
n
cij f ij(yi  y j )
j 1
(xi  x j ) 2  (yi  y j ) 2


m
d ij g ij(yi  b j )
j 1
(xi  a j ) 2  (yi  b j ) 2

i  1,2,..., n
 0,
Multiple-Facility Problems
with Euclidean Distances
To make sure the denominator is never 0, we add
 to it. We then get:
cij fij x j
n

j 1
xi' 
 xi  x j    yi  y j   
2

j 1
2
cij fij
n
x  x   y  y 
j

j 1
 xi  a j    yi  b j   
2
i
j
2


j 1
2
dij gij
m
2
i
dij gij a j
m
x  a   y b 
2
i
j
i
j
2

i  1, 2,...,
Multiple-Facility Problems
with Euclidean Distances
And …
cij fij y j
n

j 1
yi' 
 xi  x j    yi  y j   
2

j 1
2
cij fij
n
x  x   y  y 
j

j 1
 xi  a j    yi  b j   
2
i
j
2


j 1
2
dij gij
m
2
i
dij gij b j
m
x  a   y b 
2
i
j
i
j
2

i  1, 2,..., n
Example 2
Consider Example 1. Assuming the Euclidean
metric is more appropriate and that Tire and
Brakes, Inc. does not currently have a
warehouse, determine where the two new
warehouses are to be located.
12.3
ALLOCATION
MODEL
12.3.1
Network Flow Model
Network Flow Model:
Model 2
Consider this notation:
cij
cost of sending one unit of flow on arc (i, j)
Uij
upper bound on the flow that can be sent
on arc (i, j), i.e., capacity of arc (i,j)
Lij
lower bound on the flow that can be sent
on arc (i, j)
Di
net flow generated at node i
xij
number of units of flow on arc (i, j)
Model 2:
n
n
Minimize  cij xij
i 1 j 1
n
n
j 1
i 1
Subject to  xij  x ji  Di i  1, 2,..., n
Lij  xij  U ij i, j  1, 2,..., n
Network Simplex Algorithm:
Step 1: Construct a spanning tree for the n nodes. The
variables xij corresponding to the arcs (i,j) in the
spanning tree are basic variables and the remaining
are nonbasic. Find a basic feasible solution to the
problem so that:
(1) the basic variables satisfy Lij < xij < Uij , and
(2) the nonbasic variables take on a value of Lij or Uij
to satisfy constraint (22).
Step 2: Set u1 =0 and find uj, j=2,...,n using the formula ui - uj
= cij for all basic variables.
Step 3: If ui - uj - cij < 0 for all nonbasic variables xij with a
value of Lij , and ui - uj - cij > 0 for all nonbasic
variables xij with a value of Uij , then the current
basic feasible solution is optimal; stop. Otherwise,
go to step 4.
Network Simplex Algorithm:
Step 4: Select the variable xi*j* that violates the optimality
condition (in step 3) the most, i.e., the largest of the
ui - uj - cij for those nonbasic variables with xij = Lij,
and the smallest of the ui - uj - cij for those nonbasic
variables with xij = Uij,. Make the arc (i*,j*) a basic
variable and add arc (i*,j*) to the spanning tree. Make
one of the other basic variables in the loop of basic
variables [formed by including arc (i*,j*)], a nonbasic
variable such that:
(1) xi*j* takes on the largest possible value,
(2) constraint (21) is satisfied for all the n nodes, and
(3) constraint (22) is satisfied for all the arcs in the
loop.
Remove the arc corresponding to the nonbasic
variable just identified so that we have a spanning
tree once again. Go to step 2.
Example 3
The Fast Shipping Company manages the
distribution of lawnmowers from a company
that has two factories (F1 and F2) in the
Northeast to two large customer bases (C1 and
C2) in the Southwest. For cost and freight
consolidation reasons, Fast Shipping would like
to route the shipments via three intermediate
nodes (T1 - T3) located in the midwest. The
relevant data is provide in Tables 12.3-12.5.
Setup a model to determine how the shipment
is to take place from the two factories to the
two destinations via the three intermediate
shipment points.
Supply and Demand
Inbound and Outbound Transportation
Costs and Arc Capacities
T1
T2
T3
F1
8 (500)
11 (1500)
5 (350)
F2
12 (1200)
8 (750)
5 (450)
C1
6 (1000)
12 (750)
9 (1000)
C2
3 (150)
1 (200)
19 (1500)
Example 3:
MIN 8 X11 + 11 X12 + 5 X13 + 12 X21 + 8 X22 + 5 X23 + 6
Y11 + 12 Y21 + 9 Y31 + 3 Y12 + Y22 + 19 Y32
SUBJECT TO
2) X11 + X12 + X13 = 900
3) X21 + X22 + X23 = 600
4) - Y11 - Y21 - Y31 = - 750
5) - Y12 - Y22 - Y32 = - 750
6) X11 + X21 - Y11 - Y12 =
0
7) X12 + X22 - Y21 - Y22 =
0
8) X13 + X23 - Y31 - Y32 =
0
9) X11 <= 500
10) X12 <= 1500
11)
12)
13)
14)
15)
16)
17)
18)
19)
20)
END
X13 <=
X21 <=
X22 <=
X23 <=
Y11 <=
Y21 <=
Y31 <=
Y12 <=
Y22 <=
Y32 <=
350
1200
750
450
1000
750
1000
150
200
1500
12.3.2 Two-Stage Transportation
Model
1
1
1
2
2
2
3
3
4
q
p
r
Two-Stage Transportation Model:
Consider the following notation:
Si
capacity of supply source i, i = 1, 2, ..., p
Pj
capacity of plant j, j = 1, 2, ..., q
Dk
demand at customer k, k = 1, 2, ..., r
cij
cost of transporting one unit from supply
source i to plant j
The LP model is:
Model 3:
p
q
q
r
 c x   d
Minimize
i 1 j 1
ij ij
j 1 k 1
jk
y jk
q
Subject to  xij  Si i  1, 2,..., p
j 1
p
x
i 1
q
ij
y
j 1
jk
p
 Pj j  1, 2,..., q
 Dk k  1, 2,..., r
r
x y
i 1
ij
k 1
jk
j  1, 2,..., q
xij , y jk i  1, 2,..., p; j  1, 2,..., q; k  1, 2,..., r
Four cases arise:
(i)
Supply source capacity is unlimited and total plant
capacity is more than total demand
(ii) Supply source capacity is unlimited and total
demand exceeds total plant capacity
(iii)Plant capacity is unlimited and total supply source
capacity exceeds total demand
(iv)Plant capacity is unlimited and total demand
exceeds total supply source capacity
In the following discussion, the supply sources
are assumed to have unlimited capacities
and total plant capacity is more than total
demand (case (i))
Supply
Source
Plant
Case 1:
Customer
1
2
1
c111
c112
2
c121
c122
1
r
1
2

q
Excess
Plant
Capacity
c
11r
0
M

M
0
P1
c
12r
M
0

M
0
P2

Dummy Plant
   
q
c
c
c M
1q1
1q2
1
c211
c212
c
21r
0
M

2
c221
c222
c
22r
M
0

2
1qr
  
M
 0
    
q
c
c
c M
2q1
2q2
2qr

Capacity

0
Pq
M
0
P1
M
0
P2
  
M
 0


0
Pq

p
1
cp11
2
cp21
cp22
c
p1r
0
M

M
0
P1
c
p2r
M
0

M
0
P2
    
q
c
c
c M
Demand
pq1
pq2
D1
D2
pqr
D
r
(p1)P1

M
(p1)P2


0

0
Pq
 (p1)P  P   D
q
q
j 1
r
j
k 1
k
q
p Pj
j 1
Example 4:
2-Stage Distribution Problem: RIFIN Company
has recently developed a new method of
manufacturing a type of chemical. It involves
refining a certain raw material which can be
obtained from four overseas suppliers A, B, C,
D who have access to the four ports at
Vancouver, Boston, Miami, and San Francisco,
respectively. RIFIN wants to determine the
location of plants at which the chemical will be
refined. The chemical, once refined, will be
transported via trucks to five outlets located at
Dallas, Phoenix, Portland, Montreal and
Orlando.
Example 4:
After an initial study, the choice of location
for RIFIN’s refineries has narrowed down to
Denver, Atlanta and Pittsburgh. Assume that
one unit of raw material is required to make
one unit of chemical. The amount of raw
material from each potential refinery as well
as the cost of trucking the chemical to
outlets are also provided below. Determine
the location of RIFIN’s refining plants,
capacities at these plants and distribution
pattern for the raw material and processed
chemical.
Example 4:
Raw Material Source Supply
A
B
C
D
1000
800
800
700
Outlet
Dallas
Phoenix
Portland
Montreal
Orlando
Demand
900
800
600
500
500
Example 4:
Raw Material Transportation Cost
TO
FROM
Vancouver
Boston
Miami
San Francisco
Denver
Atlanta
4
8
12
11
13
8
2
11
Pittsburgh
9
5
9
12
Example 4:
Chemical Trucking Cost
TO Dallas Phoenix Portland Montreal Orlando
FROM
Den.
Atla.
Pitts.
28
10
18
26
22
21
12
23
23
30
29
18
30
8
21
Figure 12.3: Pictorial representation of
RIFIN Example
Da
V
D
Ph
B
A
Po
M
Mo
P
SF
Orl
Setup transportation tableau for
Example 4
Supply
Source
Vancouver
(A)
Boston (B)
Miami (C)
San
Francisco
(D)
Demand
Refinery
Customer
Dummy Source
Capacity
Dal
Ph
Port
Mont
Orl Van
Bos
Miami SanFr
Denver
32
30
16
34
34
0
M
M
M
1000
Atlanta
23
35
36
42
41
0
M
M
M
1000
Pittsburgh
47
30
32
27
30
0
M
M
M
1000
Denver
36
34
20
38
38
M
0
M
M
800
Atlanta
18
30
31
37
16
M
0
M
M
800
Pittsburgh
23
26
28
23
26
M
0
M
M
800
Denver
40
38
24
42
42
M
M
0
M
800
Atlanta
12
24
25
31
10
M
M
0
M
800
Pittsburgh
27
30
32
27
30
M
M
0
M
800
Denver
39
37
23
41
41
M
M
M
0
700
Atlanta
21
33
34
40
19
M
M
M
0
700
Pittsburgh
30
33
35
30
33
M
M
M
0
700
900
800 600
500
500 2000 1600 1600
1400
9900
Solution:
The transportation problem may be solved to
yield the solution indicated in the following
figure. Notice that the solution indicates that
refineries be built at all locations.
Figure 12.4:
V
900
1000
D
B
400
Ph
600
400
1000
Po
A
M
800
500
600
SF
Da
P
100
Mo
500
Orl
12.3.3 Vehicle Routing Problem
Determine the number of vehicles required to:
(1)serve its customers (pick-up or deliver
parcels) so that each customer is visited
once and only once per day
(2)the vehicle capacity is not exceeded, and
(3)the total travel time is minimized
Vehicle Routing Problem:
Tij
Di
Ck
time to travel from customer i to
customer j, i,j=1,2, …, n
demand at customer i, i=1,2, …, n
capacity of vehicle k, k=1,2, …, p
1 if truck k visits customer j after visiting customer i
xijk  
0 otherwise
Model 4:
p
n
n
Minimize  Tij xijk
k 1 i 1 j 1
p
Subject to
n
 x
k 1 i 1
p
n
 x
ijk
D x
i 1
n
x
i 1
ilk
j 1
 1 j  1, 2,..., n
 1 i  1, 2,..., n
k 1 j 1
n
n
i
ijk
ijk
 Ck k  1, 2,..., p
n
  xljk  0 l  1, 2,..., n; k  1, 2,..., p
j 1
xijk  0 or 1 i, j  1, 2,..., n; k  1, 2,..., p
12.4
LOCATION-ALLOCATION
MODELS
12.4.1
Set
Covering
Model
Set Covering Model
Define:
cj
cost of locating facility at site j
aij
xj
=
=
{
{
1 if facility located at site
j can cover customer i
0 Otherwise
1 if facility is located at site j
0 Otherwise
The set covering problem is to:
Model 5:
n
Minimize  c j x j
j 1
n
Subject to
a x
j 1
ij
j
1
i  1,2,..., m
x j  0 or 1 j  1, 2,..., n
Greedy Heuristic for Set Covering
Problem:
Step 1:
Step 2:
Step 3:
If cj = 0, for any j = 1, 2, ..., n, set xj = 1 and remove
all constraints in which xj appears with a
coefficient of +1.
If cj > 0, for any j = 1, 2, ..., n and xj
does
not appear with +1 coefficient in any of the
remaining constraints, set xj = 0.
For each of the remaining variables, determine
cj/dj, where dj is the number of constraints in
which xj appears with +1 coefficient. Select the
variable k for which ck/dk is minimum, set xk = 1
and remove all constraints in which xj appears
with +1 coefficient. Examine the resulting model.
Greedy Heuristic for Set Covering
Problem:
Step 4
If there are no more constraints, set all
the remaining variables to 0 and stop.
Otherwise go to step 1.
We illustrate the above greedy heuristic
with an example.
Example 5:
A rural country administration wants to locate
several medical emergency response units so
that it can respond to calls within the county
within eight minutes of the call. The county is
divided into seven population zones. The
distance between the centers of each pair of
zones is known and is given in the matrix
below.
Figure 12.5:
[dij] =
1
2
3
4
5
6
7
1
0
8
50
9
50
30
8
2
4
0
13
11
8
5
5
3
12
15
0
8
4
7
9
4
6
60
8
0
10
9
7
5
15
7
6
9
0
3
25
6
10
2
5
10
2
0
27
7
8
3
9
3
27
27
0
Example 5:
The response units can be located in the center
of population zones 1 through 7 at a cost (in
hundreds of thousands of dollars) of 100, 80,
120 110, 90, 90, and 110 respectively.
Assuming the average travel speed during an
emergency to be 60 miles per hour, formulate
an appropriate set covering model to determine
where the units are to be located and how the
population zones are to be covered and solve
the model using the greedy heuristic.
Solution:
Defining
aij =
{
1 if zone i’s center can be reached from
center of zone j within 8 minutes
0 otherwise
and noting that dij > 8, dij < 8 would yield aij
values of 0, 1, respectively the following [aij]
matrix can be set up.
Solution:
[aij] =
1
2
3
4
5
6
7
1
1
1
0
0
0
0
1
2
1
1
0
0
1
1
1
3
0
0
1
1
1
1
0
4
1
0
1
1
0
0
1
5
0
1
1
0
1
1
0
6
0
1
1
0
1
1
0
The corresponding set covering model is:
7
1
1
0
1
0
0
1
Solution:
Minimize 100x1+80x2+120x3+110x4+90x5+90x6+110x7
Subject to
x1 +
x2 +
x4 +
x7 > 1
x1 +
x2 +
x5 + x6 + x7 > 1
x3 + x4 + x5 + x6
>1
x3 + x4 +
x7 > 1
x2 +
x3 +
x5 + x6
>1
x2 +
x3 +
x5 + x6
>1
x1 +
x2 +
x4 +
x7 > 1
x1,
x2,
x3,
x4, x5, x6,
x7 > 0 or 1
Greedy Heuristic
Step 1: Since each cj > 0, j = 1, 2, ..., 7, go to
step 2.
Step 2: Since xj appears in each constraint with
+1 coefficient, go to step 3.
Step 3:
c 120
c
c1 100
c
c
80
110
90

 33.3; 2 
 16; 3 
 30; 4 
 27.5; 5 
 22.5;
d1
3
d2
5
d3
4
d4
4
d5
4
c6 90
c
110

 22.5; 7 
 27.5
d6
4
d7
4
Solution:
Since the minimum ck/dk occurs for k = 2, set x2 = 1 and
remove the first two and the last three constraints. The
resulting model is shown below.
Minimize 100x1+80x2+120x3+110x4+90x5+90x6+110x7
Subject to
x3 + x4 + x5 + x6
>1
x3 + x4 +
x7 > 1
x1,
x2,
x3,
x4, x5, x6,
x7 = 0 or 1
Greedy Heuristic:
Step 4: Since we have two constraints go to
step 1.
Step 1: Since c1 > 0, j = 1, 3, 4, ..., 7, go to step 2
Step 2: Since c1 > 0 and x1 does not appear in
any of the constraints with +1
coefficient, set x1 = 0.
Greedy Heuristic
Since the minimum ck/dk occurs for k = 4, set x4
= 1 and remove both constraints in the
above model since x4 has a +1 coefficient in
each. The resulting model is shown below.
Minimize:
120x3+90x5+90x6+110x7
Subject to
x3 , x5 , x6 , x7 > 0
Greedy Heuristic:
Step 4:
Since there are no constraints in the
above model, set x3 = x5 = x6 = x7 = 0
and stop.
The solution is x2 = x4 = 1; x1 = x3 = x5
= x6 = x7 = 0. Cost of locating
emergency response units to meet
the eight minute response service
level is $800,000 + $1,100,000 =
$1,900,000.
12.4.2
Uncapacitated
Location-Allocation
Model
Uncapacitated Location-Allocation
Model
Parameters
m number of potential facilities
n number of customers
cij cost of transporting one unit of product
from facility i to customer j
Fi fixed cost of opening and operating facility j
Dj number of units demanded at customer j
Decision Variables
xij number of units shipped from facility i to customer j
1 if facility i is opened
yi  
0 otherwise
Model 6
m
m
n
i 1
i 1 j 1
Minimize  Fi yi   cij xij
m
Subject to
x
i 1
n
x
j 1
ij
xij  0
ij
 D j j  1, 2,..., n
n
 yi  D j i  1, 2,..., m
j 1
i  1, 2,..., m; j  1, 2,..., n
yi  0 or 1 i  1, 2,..., m
Model 7
Modify Model 6 by transforming xij variables
and the cij parameter
xij' 
xij
Dj
cij'  cij D j
i  1, 2,..., m; j  1, 2,..., n
m
m
n
i 1
i 1 j 1
Minimize  Fi yi   cij' xij'
m
Subject to
x
i 1
'
ij
n
x
j 1
'
ij
 1 j  1, 2,..., n
 nyi i  1, 2,..., m
xij'  0 i  1, 2,..., m; j  1, 2,..., n
yi  0 or 1 i  1, 2,..., m
Is Model 7 equivalent to Model 6?
Substitute x’ij = xij/Dj, we get
n
x D
j 1
'
ij
n
j
 yi  D j i  1, 2,..., m
j 1
Divide LHS and RHS by ΣDj, we get
 n ' 
 xij D j   yi i  1, 2,..., m
n
 D j  j 1 
1
j 1
Because the sum of LHS terms is < yi, each term must
also be < yi
xij' D j
 yi i  1, 2,..., m
n
D
j 1
j
Because Dj/ΣDj is a positive fraction for each j:
x’ij < yi, j=1,2,…,n
n
Adding we get
 xij'  nyi i  1, 2,..., m
j 1
On solving Model 7
 Although a general purpose branch-andbound technique can be applied to solve
model 5, it is not very efficient since we have
to solve several subproblems, one at each
node, using the Simplex algorithm. In what
follows, we discuss a very efficient way of
solving the subproblems that does not use the
Simplex algorithm
 To facilitate its discussion, it is convenient to
refer to x’ij, the fraction of customer j’s
demand met by facility i in model 7, as simply
xij. Thus, xij in the remainder of this section
does not refer to the number of units, rather a
fraction. Similarly cij now refers to cij
On solving Model 7
 The central idea of the branch-and-bound algorithm is
based on the following result
 Suppose, at some stage of the branch-and-bound
solution process, we are at a node where some
facilities are closed (corresponding yi = 0), and
some are open (yi = 1) and the remaining are free,
i.e., a decision whether to open or close has not yet
been taken (0< yi <1). Let us define:
S0 as the set of facilities whose yi value is equal
to 0; {i: yi = 0}
S1 as the set of facilities whose yi value is equal
to 1; {i: yi = 1)
S2 as the set of facilities whose yi value is
greater than 0 but less than 1; {i: 0 < yi < 1}
Rewrite Model 7 as Model 8
Minimize  F   c x   F y   c x




n
i
i S1 j 1
i S1
m
Subject to
x
i 1
n
ij
x
j 1
ij
m
ij ij
i
i
i S2
n
i S2 j 1
ij ij
 1 j  1, 2,..., n
 nyi i  1, 2,..., m
xij  0
i  1, 2,..., m; j  1, 2,..., n
Note: The inequality in the second constraint above can be
converted to an equality because in the optimal solution LHS
will be equal to RHS. Thus,
1 n
yi   xij i  1, 2,..., m
n j 1
Because max {xij} is 1, max {yi} is also 1
Rewrite Model 8 as Model 9
n
n x
m n





ij
Minimize  Fi   cij xij   Fi   cij xij  
i S1

i S2 j 1 n i S2 j 1

 i S1 j 1

n
n


F

  Fi  Minimize  cij xij   Fi   cij  i
n
i S1
i S2 j 1 
 i S1 j 1
m
Subject to
x
i 1
n
ij
x
j 1
ij
 1 j  1, 2,..., n
 nyi , i  1,2,..., m
xij  0
i  1, 2,..., m; j  1, 2,..., n
  
 xij  
  
On solution of Model 9
•
•
•
Model 9 which is equivalent to model 6 without the
integer restrictions on the y variables, is a half
assignment problem. It can be proved (again, by
contradiction) that for each j = 1, 2, ..., n, only one of
x1j, x2j, ..., xmj will take on a value of 1, due to Σxij=1
In fact, for each j, the xij taking on a value of 1 will be
the one that has the smallest coefficient in the
objective function
Thus, to solve model 9, we only need to find for a
specific j, the smallest coefficient of xij in the objective
function, i=1,2,…,m, set the corresponding xij equal to
1 and all other xij 's to 0 as follows:
cij
if i  S1
Fi
cij 
if i  S2
n
On solution of Model 9
• Select the smallest cij from the list, set the
•
•
corresponding xij = 1 and all other xij’s to 0.
This is the minimum coefficient rule.
We do not include facility i  S2 in the min
coeff rule because these are closed
Moreover, a lower bound on the partial
solution of the node under consideration can
be obtained by adding
F


i
i S1
to the sum of the coefficients of the xij
variables which have taken a value of 1
Branch-and-Bound
Algorithm
for
Basic
Location-Allocation
Model
Branch-and-Bound
•
•
•
Step 1: Set best known upper bound UB =
infinity; node counter, p = 1; S0 = S1 = { };
S2 = {1, 2, ..., m}
Step 2: Construct a subproblem (node) p
with the current values of the y variables.
Step 3: Solve subproblem corresponding to
the node under consideration using the
minimum coefficient rule and
1 n
yi   xij i  1, 2,..., m
n j 1
Branch-and-Bound
Step 4: If the solution is such that all y
variables take on integer (0 or 1) values, go to
step 7. Otherwise go to step 5.
Step 5: Determine the lower bound of node p
using model 7. Arbitrarily select one of the
facilities, say k, which has taken on a
fractional value for yk, i.e., 0 < yk < 1 and
create two subproblems (nodes) p+1 and p+2
as follows.
Branch-and-Bound
Subproblem p+1
• Include facility k and others with a yk value of 0 in So;
facilities with yk value of 1 in S1; all other facilities in
S2
Subproblem p+2
• Include facility k and others with a yk value of 1 in S1;
facilities with yk value of 0 in S0; all other facilities in
S2. If xkj = 1 for j = 1, 2, ..., n, in the solution to
subproblem p, remove each such customer j from
consideration in subproblem p+2, and reduce n by the
number of j’s for which xkj = 1
Branch-and-Bound
•
Step 6: Solve subproblem p+1 using the minimum
coefficient rule and
1 n
yi   xij i  1, 2,..., m
n j 1
•
•
Set p = p+2. Go to step 4.
Step 7: Determine the lower bound of node p using
model 9. If it is greater than UB, set UB = lower bound
of node p. Prune node p as well as any other node
whose bound is greater than or equal to UB. If there
are no more nodes to be pruned, stop. Otherwise
consider any unpruned node and go to step 3.
Example 6
The nation’s leading retailer Sam-Mart wants to
establish its presence in the Northeast by opening five
department stores. In order to serve the stores
(whose locations have already been determined), the
retailer wants to have a maximum of three distribution
warehouses. The potential locations for these
warehouses have already been selected and there are
no practical limits on the size of the warehouses. The
fixed cost (in hundreds of thousands of dollars) of
building and operating the warehouse at each location
is 6, 5, and 3, respectively.
Example 6
The variable cost of serving each warehouse
from each of the potential warehouse locations
is given below (again in hundreds of thousands
of dollars). Determine how many warehouses
are to be built and in what locations. Also
determine how the customers (departmental
stores) are to be served.
Example 6
1
1 20
2 15
3 12
2
12
10
16
3
14
20
25
4
12
8
11
5
10
15
10
Fi
6
5
3
Solution:
Step 1: Set UB = infinity; node counter p = 1; S0 =
S1 = {}; S2 = {1, 2, 3}.
Step 2: Minimum coefficient rule: Determine the
xij coefficients as follows.
Solution:
6
1
5
3
3
c11=20+ =21 ; c21=15+ =16 ; c31=12+ = 12
5
5
5
5
5
Since the minimum occurs for cij = c31, set x31 = 1
and x11 = x21 = 0.
6
1
5
3
3
c12=12+ =13 ; c22=10+ =11; c32=16+ = 16
5
5
5
5
5
Since the minimum occurs for cij = c22, set x22 = 1
and x12 = x32 = 0.
Solution:
6
1
5
3
3
c13=14+ =15 ; c23=20+ =21; c32=25+ = 25
5
5
5
5
5
Since the minimum occurs for cij = c13, set x13 = 1
and x23 = x33 = 0.
6
1
5
3
3
c14=12+ =13 ; c24= 8+
= 9 ; c34=11+ = 11
5
5
5
5
5
Since the minimum occurs for cij = c24, set x24 = 1
and x14 = x34 = 0.
Solution:
6
1
5
3
3
c15=10+ =11 ; c25=15+ =16; c35=10+ = 10
5
5
5
5
5
Since the minimum occurs for cij = c35, set x35 = 1
and x15 = x25 = 0.
Solution:
1
1
1
y1= [x11+x12+x13+x14+x15]= [0+0+1+0+0]=
5
5
5
1
1
2
y2= [x21+x22+x23+x24+x25]= [0+1+0+1+0]=
5
5
5
1
1
2
y3= [x31+x32+x33+x34+x35]= [1+0+0+0+1]=
5
5
5
Solution:
Step 4: Since all three y variables have
fractional values, go to Step 5.
Solution:
Step 5: Lower bound of node 1 =
0 + 12
3
+ 11 + 15
1
+ 9 + 10
3
= 58
2
5
5
5
5
Arbitrarily select variable y1 to branch on.
Create subproblems 2 and 3 as follows
Subproblem 2: S0 = {1}; S1 = {}; S2 = {2, 3}.
Subproblem 3: S0 = {1}; S1 = {}; S2 = {2, 3}.
Solution:
Step 6: Solution of subproblem 2 using
minimum coefficient rule: Determine xij
coefficients as follows.
Solution:
5
3
3
c21=15+ =16 ; c31=12+ =12
5
5
5
Since the minimum occurs for cij = c31, set x31 = 1,
x21 = 0.
5
3
3
c22=10+ =11; c32=16+ =16
5
5
5
Since the minimum occurs for cij = c22, set x22 = 1,
x32 = 0.
Solution:
5
3
3
c23=20+ =21 ; c33=25+ =25
5
5
5
Since the minimum occurs for cij = c23, set x23 = 1,
x33 = 0.
5
3
3
c24=8 + = 9 ; c34=11+ =11
5
5
5
Since the minimum occurs for cij = c24, set x24 = 1,
x34 = 0.
Solution:
5
3
3
c24=15+ =16 ; c35=10+ =10
5
5
5
Since the minimum occurs for cij = c35, set x35 = 1,
x25 = 0.
Solution:
1
1
3
y2= [x21+x22+x23+x24+x25]= [0+1+1+1+0]=
5
5
5
1
1
2
y3= [x31+x32+x33+x34+x35]= [1+0+0+0+1]=
5
5
5
Solution:
Solution of subproblem 3 using minimum
coefficient rule: Determine xij coefficients as
follows:
Since x13 = 1 in the solution to subproblem 1,
remove store 1 from consideration in node 3 and
other nodes emanting from node 3. Reduce n by
1, n=5-1=4.
Solution:
5
1
3
3
c11=20; c21 =15+ =16 ; c31=12+ =12
4
4
4
4
Since the minimum occurs for cij = c31, set x31 = 1
and x11 = x21 = 0.
5
1
3
3
c12=12; c22 =10+ =11 ; c32=16+ =16
4
4
4
4
Since the minimum occurs for cij = c22, set x22 = 1
and x12 = x32 = 0.
Solution:
5
1
3
3
c14=12; c24 =8 + = 9 ; c34=11+ =11
4
4
4
4
Since the minimum occurs for cij = c24, set x24 = 1
and x24 = x34 = 0.
5
1
3
3
c15=10; c25 =15+ =16 ; c35=10+ =10
4
4
4
4
Since the minimum occurs for cij = c15, set x15 = 1
and x25 = x35 = 0.
Solution:
1
1
2
1
y2= [x21+x22+x24+x25]= [0+1+1+0]=
=
4
4
4
2
1
1
1
y2= [x31+x32+x34+x35]= [1+0+0+0]=
4
4
4
Set p=1+2=3
Solution:
Step 4: Since the solution for subproblem 2 is
not all integer, go to step 5.
We repeat steps 3, 4, 5, 6, and 7 until all the nodes
are pruned. We then have an optimal solution.
These steps are summarized in Table 2.
Figure 12.8
1
2
4
LB = 77
y3 = 1
Pruned
LB = 58.4
y1 = 0.2
y2 = y3 = 0.4
3
LB = 64.2
y2 = 0.6; y3 = 0.4
5
LB = 68
y2 = 1
y3 = 1
Pruned
6
LB = 63.25
y1 = 1; y2 = 0.5
y3 = 0.25
LB = 66.5
y2 = 1; y3 = 0.5
8
9
LB = 74
y1 = 1
Pruned
LB = 68
y1 = 1
y3 = 1
7
LB = 68
y1 = y2 = y3 = 1
12.5.3
Comprehensive LocationAllocation Model
Comprehensive Location-Allocation
Model
Parameters
Sij production capacity of product i at plant j
Dil demand for product i at customer zone l
Fk fixed cost of operating warehouse k
Vik unit variable cost of handling product i at warehouse k
Cijkl average unit cost of producing and transporting
product i from plant j via warehouse k to customer l
UCk
Upper bound on the capacity of warehouse k
LCk
Lower bound on the capacity of warehouse k
Comprehensive Location-Allocation
Model
Decision Variables
Xijkl number of units of product i transported
from plant j via warehouse k to customer l
1 if warehouse i serves customer area l
ykl  
0 otherwise
1 if warehouse is opened at location k
zk  
0 otherwise
Model 10
p
q
r
s
Minimize  cijkl xijkl 
i 1 j 1 k 1 l 1
r
Subject to
s
 x
k 1 l 1
q
x
j 1
ijkl
r
y
k 1
p
kl
s
r
r
 D V Y   F z
i 1 l 1
il
k 1
ik kl
k 1
Sij i  1, 2,..., p; j  1, 2,..., q
Dil ykl i  1, 2,..., p; k  1, 2,..., r; l  1, 2..., s
 1 l  1, 2..., s
s
 D
i 1 l 1
ijkl
p
il
ykl  LCk zk k  1, 2,..., r
k k
Model 10
p
s
 D
i 1 l 1
il
ykl  UCk zk k  1, 2,..., r
xijkl  0 i  1, 2,..., p; j  1, 2,..., q; k  1, 2,..., r; l  1, 2,..., s
ykl , zk =0 or 1 k  1, 2,..., r; l  1, 2,..., s
Comprehensive Location-Allocation
Model
We can easily add more linear constraints not involving
xijkl variables to model 10 to:
• Impose upper and lower limit on the number of
warehouses that can be opened;
• Enforce precedence relations among warehouses
(e.g., open warehouse at location 1 only if another is
opened at location 3)
• Enforce service constraints (e.g., if it is decided to
open a certain warehouse, then a specific customer
area must be served by it)
• Other constraints that can be added are discussed
further in Geoffrion and Graves (1974).
• Many of these constraints reduce the solution space,
so they allow quicker solution of the model while
giving the modeler much flexibility
Comprehensive Location-Allocation
Model
Suppose we fix the values of binary variables ykl and zk temporarily at 0
or 1 so that corresponding constraints are satisfied
Then, model 10 reduces to the following linear program which we will
refer to as TP
p
q
s
Minimize  cijk (l )l xijk (l )l  K
i 1 j 1 l 1
s
Subject to
x
 Sij i  1, 2,..., p; j  1, 2,..., q
x
Dil yk (l )l i  1, 2,..., p; l  1, 2..., s
l 1
q
j 1
ijk ( l ) l
ijk ( l ) l
xijk ( l )l  0 i  1, 2,..., p; j  1, 2,..., q; l  1, 2,..., s
p
s
r
K   DilVik (l ) yk (l )l   Fk zk
i 1 l 1
k 1
Comprehensive Location-Allocation
Model
TP can be decomposed into i separate transportation problems, TPi, as
follows because the variables pertaining to a specific product
appear only in the rows (constraints) corresponding to that product
and not elsewhere. (Notice that we have temporarily eliminated K
from TPi)
q
s
Minimize  cijk (l )l xijk (l )l
j 1 l 1
s
Subject to
x
l 1
q
ijk ( l ) l
x
j 1
ijk ( l ) l
 Sij j  1, 2,..., q
Dil yk (l )l l  1, 2..., s
xijk (l )l  0 j  1, 2,..., q; l  1, 2,..., s
Comprehensive Location-Allocation
Model
TP can be decomposed into i separate transportation problems, TPi, as
follows because the variables pertaining to a specific product
appear only in the rows (constraints) corresponding to that product
and not elsewhere. (Notice that we have temporarily eliminated K
from TPi)
q
s
Minimize  cijk (l )l xijk (l )l
j 1 l 1
s
Subject to
x
l 1
q
ijk ( l ) l
x
j 1
ijk ( l ) l
 Sij j  1, 2,..., q
Dil yk (l )l l  1, 2..., s
xijk (l )l  0 j  1, 2,..., q; l  1, 2,..., s
Comprehensive Location-Allocation
Model
Dual of TPi, designated as DTPi, follows.
q
s
j 1
l 1
Maximize - uij Sij   vil Dil yk (l )l
Subject to - uij  vil  cijk (l )l j  1, 2,..., q; l  1, 2,..., s
uij  0 i  1, 2,..., p; j  1, 2,..., q
vil  0 i  1, 2,..., p; l  1, 2,..., s
Comprehensive Location-Allocation
Model
Combine p dual problems into one master problem MP
Minimize
T
p
q
p
r
p
s
s
r
r
k 1
k 1
Subject to T   uij Sij   vil Dil ykl   Dil Vik ykl   Fk zk
i 1 j 1
q
x
r
y
k 1
p
kl
 1 l  1, 2..., s
s
 D
il
i 1 l 1
p
s
 D
i 1 l 1
i 1 l 1
Dil yk (l )l i  1, 2,..., p; l  1, 2..., s
ijk ( l ) l
j 1
i 1 k 1 l 1
il
ykl  UCk zk k  1, 2,..., r
ykl  LCk zk k  1, 2,..., r
ykl , zk =0 or 1 k  1, 2,..., r; l  1, 2,..., s
Modified Benders’ Decomposition
Algorithm for Comprehensive
Location-Allocation Model
Step 0: Set upper bound UB=infinity, and convergence
tolerance parameter ε to a desired small, positive value. Set
ykl, zk = 0 or 1, for k=1,2,…,r, l=1,2,…,s so that the resulting
values satisfy constraints with ykl, zk
Step 1: Set up TPi, i=1,2,…,p and determine K for the current
values of ykl, zk k=1,2,…,r, l=1,2,…,s. Set up corresponding
dual model DTPi for each i. Solve each DTPi and add K to the
sum of the optimal objective function value of each DTPi. If
this sum is less than or equal to UB, set UB = K + sum of
original OFVs of each DTPi
Step 2: Set up model MP for the current values of uij, vil,
i=1,2,…p; j=1,2,…,q, l=1,2,…,s. Find a feasible solution to MP
such that T<UB-ε. If there is no such feasible solution to the
current MP, stop. We have an ε-optimal solution. Otherwise,
go to step 1 with the current values of the ykl, and zk
variables
Example 7
The nation’s leading grocer, Myers, wants to
determine how to source the highest margin product,
and also determine the warehouses through which to
serve three of its largest stores in Louisville. In order
to serve the stores (whose locations have already
been determined), the grocer wants to utilize one or
two distribution warehouses which will receive the
product from one or more of four plants which
produce the product. The potential locations for these
warehouses have already been selected and there are
no practical limits on the size of the warehouses. The
fixed cost (in hundreds of thousands of dollars) of
building and operating the warehouse at each location
is 6, 5, and 3, respectively.
Example 7
The variable cost of serving each warehouse
from each of the potential warehouse locations
is given below (again in hundreds of thousands
of dollars). Determine how many warehouses
are to be built and in what locations. Also
determine how the customers (departmental
stores) are to be served.
Example 7
Plant
1
2
3
4
W/H
1
2
Capacity
200
100
50
500
FC
2000
1500
VC
10
15
Cust
1
2
3
UB
300
400
Demand
100
200
100
LB
0
0
1
2
1
2
3
1
20
10
W/H 1
5
8
3
2
15
12
2
6
9
10
3
8
16
4
10
14
Plant
Example 7 - MIP
MODEL:
[_1] MIN= 1000 * Y_1_1 + 2000 * Y_1_2 + 1000 * Y_1_3 + 1500 * Y_2_1 +
3000 * Y_2_2 + 1500 * Y_2_3 + 25 * X_1_1_1 + 28 * X_1_1_2 + 23 * X_1_1_3
+ 16 * X_1_2_1 + 19 * X_1_2_2 + 20 * X_1_2_3 + 20 * X_2_1_1 + 23 *
X_2_1_2 + 18 * X_2_1_3 + 18 * X_2_2_1 + 21 * X_2_2_2 + 22 * X_2_2_3 + 13
* X_3_1_1 + 16 * X_3_1_2 + 11 * X_3_1_3 + 22 * X_3_2_1 + 25 * X_3_2_2 +
26 * X_3_2_3 + 15 * X_4_1_1 + 18 * X_4_1_2 + 13 * X_4_1_3 + 20 * X_4_2_1
+ 23 * X_4_2_2 + 24 * X_4_2_3 + 2000 * Z_1 + 1500 * Z_2 ;
[_2] X_1_1_1 + X_1_1_2 + X_1_1_3 + X_1_2_1 + X_1_2_2 + X_1_2_3 <= 200 ;
[_3] X_2_1_1 + X_2_1_2 + X_2_1_3 + X_2_2_1 + X_2_2_2 + X_2_2_3 <= 100 ;
[_4] X_3_1_1 + X_3_1_2 + X_3_1_3 + X_3_2_1 + X_3_2_2 + X_3_2_3 <= 50 ;
[_5] X_4_1_1 + X_4_1_2 + X_4_1_3 + X_4_2_1 + X_4_2_2 + X_4_2_3 <= 500 ;
[_6] - 100 * Y_1_1 + X_1_1_1 + X_2_1_1 + X_3_1_1 + X_4_1_1 >= 0 ;
[_7] - 200 * Y_1_2 + X_1_1_2 + X_2_1_2 + X_3_1_2 + X_4_1_2 >= 0 ;
[_8] - 100 * Y_1_3 + X_1_1_3 + X_2_1_3 + X_3_1_3 + X_4_1_3 >= 0 ;
[_9] - 100 * Y_2_1 + X_1_2_1 + X_2_2_1 + X_3_2_1 + X_4_2_1 >= 0 ;
[_10] - 200 * Y_2_2 + X_1_2_2 + X_2_2_2 + X_3_2_2 + X_4_2_2 >= 0 ;
[_11] - 100 * Y_2_3 + X_1_2_3 + X_2_2_3 + X_3_2_3 + X_4_2_3 >= 0 ;
[_12] Y_1_1 + Y_2_1 = 1 ;
[_13] Y_1_2 + Y_2_2 = 1 ;
[_14] Y_1_3 + Y_2_3 = 1 ;
[_15] 100 * Y_1_1 + 200 * Y_1_2 + 100 * Y_1_3 - 3000 * Z_1 <= 0 ;
[_16] 100 * Y_2_1 + 200 * Y_2_2 + 100 * Y_2_3 - 4000 * Z_2 <= 0 ;
[_17] 100 * Y_1_1 + 200 * Y_1_2 + 100 * Y_1_3 >= 0 ;
[_18] 100 * Y_2_1 + 200 * Y_2_2 + 100 * Y_2_3 >= 0 ;
@BIN( Y_1_1); @BIN( Y_1_2); @BIN( Y_1_3); @BIN( Y_2_1);
@BIN( Y_2_2); @BIN( Y_2_3); @BIN( Z_1); @BIN( Z_2);
END
Example 7 – MIP Solution
Global optimal solution found.
Objective value:
Objective bound:
Infeasibilities:
Extended solver steps:
Total solver iterations:
Variable
Q
R
S
CAPACITY( 1)
CAPACITY( 2)
CAPACITY( 3)
CAPACITY( 4)
FIXEDCOST( 1)
FIXEDCOST( 2)
VARIABLECOST( 1)
VARIABLECOST( 2)
UPPERBOUND( 1)
UPPERBOUND( 2)
LOWERBOUND( 1)
LOWERBOUND( 2)
Z( 1)
Z( 2)
12300.00
12300.00
0.000000
0
13
Value
4.000000
2.000000
3.000000
200.0000
100.0000
50.00000
500.0000
2000.000
1500.000
10.00000
15.00000
3000.000
4000.000
0.000000
0.000000
1.000000
0.000000
Reduced Cost
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
2000.000
1500.000
Example 7 – LP
MODEL:
[_1] MIN= 25 * X_1_1_1 + 28 * X_1_1_2 + 23 * X_1_1_3 + 16 * X_1_2_1 + 19
* X_1_2_2 + 20 * X_1_2_3 + 20 * X_2_1_1 + 23 * X_2_1_2 + 18 * X_2_1_3 +
18 * X_2_2_1 + 21 * X_2_2_2 + 22 * X_2_2_3 + 13 * X_3_1_1 + 16 * X_3_1_2
+ 11 * X_3_1_3 + 22 * X_3_2_1 + 25 * X_3_2_2 + 26 * X_3_2_3 + 15 *
X_4_1_1 + 18 * X_4_1_2 + 13 * X_4_1_3 + 20 * X_4_2_1 + 23 * X_4_2_2 + 24
* X_4_2_3 + 7500 ;
[_2] X_1_1_1 + X_1_1_2 + X_1_1_3 + X_1_2_1 + X_1_2_2 + X_1_2_3 <= 200 ;
[_3] X_2_1_1 + X_2_1_2 + X_2_1_3 + X_2_2_1 + X_2_2_2 + X_2_2_3 <= 100 ;
[_4] X_3_1_1 + X_3_1_2 + X_3_1_3 + X_3_2_1 + X_3_2_2 + X_3_2_3 <= 50 ;
[_5] X_4_1_1 + X_4_1_2 + X_4_1_3 + X_4_2_1 + X_4_2_2 + X_4_2_3 <= 500 ;
[_6] X_1_1_1 + X_2_1_1 + X_3_1_1 + X_4_1_1 >= 0 ;
[_7] X_1_1_2 + X_2_1_2 + X_3_1_2 + X_4_1_2 >= 0 ;
[_8] X_1_1_3 + X_2_1_3 + X_3_1_3 + X_4_1_3 >= 0 ;
[_9] X_1_2_1 + X_2_2_1 + X_3_2_1 + X_4_2_1 >= 100 ;
[_10] X_1_2_2 + X_2_2_2 + X_3_2_2 + X_4_2_2 >= 200 ;
[_11] X_1_2_3 + X_2_2_3 + X_3_2_3 + X_4_2_3 >= 100 ;
[_12] 0 = 0 ;
[_13] 0 = 0 ;
[_14] 0 = 0 ;
[_15] 0 <= 0 ;
[_16] 0 <= 3600 ;
[_17] 0 >= 0 ;
[_18] 0 >= - 400 ;
END
Example 7 – LP Solution
Global optimal solution found.
Objective value:
Infeasibilities:
Total solver iterations:
Variable
Q
R
S
CAPACITY( 1)
CAPACITY( 2)
CAPACITY( 3)
CAPACITY( 4)
FIXEDCOST( 1)
FIXEDCOST( 2)
VARIABLECOST( 1)
VARIABLECOST( 2)
UPPERBOUND( 1)
UPPERBOUND( 2)
LOWERBOUND( 1)
LOWERBOUND( 2)
Z( 1)
Z( 2)
15500.00
0.000000
6
Value
4.000000
2.000000
3.000000
200.0000
100.0000
50.00000
500.0000
2000.000
1500.000
10.00000
15.00000
3000.000
4000.000
0.000000
0.000000
0.000000
1.000000
UPPER BOUND
Reduced Cost
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
Example 7 – Dual
MODEL:
MAX = 200 * U_1 + 100 * U_2 + 50 * U_3 + 500 * U_4 + 100 * V_4
+ 200 * V_5 + 100 * V_6 + 3600 * T_2 - 400 * T_4;
[ X_1_1_1] U_1 + V_1 <= 25;
[ X_1_1_2] U_1 + V_2 <= 28;
[ X_1_1_3] U_1 + V_3 <= 23;
[ X_1_2_1] U_1 + V_4 <= 16;
[ X_1_2_2] U_1 + V_5 <= 19;
[ X_1_2_3] U_1 + V_6 <= 20;
[ X_2_1_1] U_2 + V_1 <= 20;
[ X_2_1_2] U_2 + V_2 <= 23;
[ X_2_1_3] U_2 + V_3 <= 18;
[ X_2_2_1] U_2 + V_4 <= 18;
[ X_2_2_2] U_2 + V_5 <= 21;
[ X_2_2_3] U_2 + V_6 <= 22;
[ X_3_1_1] U_3 + V_1 <= 13;
[ X_3_1_2] U_3 + V_2 <= 16;
[ X_3_1_3] U_3 + V_3 <= 11;
[ X_3_2_1] U_3 + V_4 <= 22;
[ X_3_2_2] U_3 + V_5 <= 25;
[ X_3_2_3] U_3 + V_6 <= 26;
[ X_4_1_1] U_4 + V_1 <= 15;
[ X_4_1_2] U_4 + V_2 <= 18;
[ X_4_1_3] U_4 + V_3 <= 13;
[ X_4_2_1] U_4 + V_4 <= 20;
[ X_4_2_2] U_4 + V_5 <= 23;
[ X_4_2_3] U_4 + V_6 <= 24;
@BND( -0.1E+31, U_1, 0); @BND( -0.1E+31, U_2, 0);
@BND( -0.1E+31, U_3, 0); @BND( -0.1E+31, U_4, 0); @FREE( W_1);
@FREE( W_2); @FREE( W_3); @BND( -0.1E+31, T_1, 0);
@BND( -0.1E+31, T_2, 0);
END
Example 7 – Dual Solution
Global optimal solution found.
Objective value:
Infeasibilities:
Total solver iterations:
Variable
U_1
U_2
U_3
U_4
V_4
V_5
V_6
T_2
T_4
V_1
V_2
V_3
W_1
W_2
W_3
T_1
8000.000 + K=7500 =15,500 UPPER BOUND
0.000000
7
Value
-4.000000
-2.000000
0.000000
0.000000
20.00000
23.00000
24.00000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
Reduced Cost
0.000000
0.000000
-50.00000
-400.0000
0.000000
0.000000
0.000000
-3600.000
400.0000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
Example 7 – Master Problem
MODEL:
[_1] MIN= Z;
[_2] Z >= -1000 + 2000 * Y_2_1 + 4600 * Y_2_2 + 2400 * Y_2_3 + 2000 * Y_2_1 +
4600 * Y_2_2 + 2400 * Y_2_3 +
1000 * Y_1_1 + 2000 * Y_1_2 + 1000 * Y_1_3 + 1500 * Y_2_1 +
3000 * Y_2_2 + 1500 * Y_2_3 + 2000 * Z_1 + 1500 * Z_2 ;
[_4] - 100 * Y_1_1 + X_1_1_1 + X_2_1_1 + X_3_1_1 + X_4_1_1 >= 0 ;
[_5] - 200 * Y_1_2 + X_1_1_2 + X_2_1_2 + X_3_1_2 + X_4_1_2 >= 0 ;
[_6] - 100 * Y_1_3 + X_1_1_3 + X_2_1_3 + X_3_1_3 + X_4_1_3 >= 0 ;
[_7] - 100 * Y_2_1 + X_1_2_1 + X_2_2_1 + X_3_2_1 + X_4_2_1 >= 0 ;
[_8] - 200 * Y_2_2 + X_1_2_2 + X_2_2_2 + X_3_2_2 + X_4_2_2 >= 0 ;
[_9] - 100 * Y_2_3 + X_1_2_3 + X_2_2_3 + X_3_2_3 + X_4_2_3 >= 0 ;
[_10] Y_1_1 + Y_2_1 = 1 ;
[_11] Y_1_2 + Y_2_2 = 1 ;
[_12] Y_1_3 + Y_2_3 = 1 ;
[_13] 100 * Y_1_1 + 200 * Y_1_2 + 100 * Y_1_3 - 3000 * Z_1 <= 0 ;
[_14] 100 * Y_2_1 + 200 * Y_2_2 + 100 * Y_2_3 - 4000 * Z_2 <= 0 ;
[_15] 100 * Y_1_1 + 200 * Y_1_2 + 100 * Y_1_3 >= 0 ;
[_16] 100 * Y_2_1 + 200 * Y_2_2 + 100 * Y_2_3 >= 0 ;
@BIN( Y_1_1); @BIN( Y_1_2); @BIN( Y_1_3); @BIN( Y_2_1);
@BIN( Y_2_2); @BIN( Y_2_3); @BIN( Z_1); @BIN( Z_2);
END
Example 7 – Master Problem Solution
Global optimal solution found.
Objective value:
Objective bound:
Infeasibilities:
Extended solver steps:
Total solver iterations:
Variable
Z
Y_2_1
Y_2_2
Y_2_3
Y_1_1
Y_1_2
Y_1_3
Z_1
Z_2
5000.000
5000.000
0.000000
0
5
Value
5000.000
0.000000
0.000000
0.000000
1.000000
1.000000
1.000000
1.000000
0.000000
LOWER BOUND
Reduced Cost
0.000000
5500.000
12200.00
6300.000
1000.000
2000.000
1000.000
2000.000
1500.000
Example 7 – LP
MODEL:
[_1] MIN= 25 * X_1_1_1 + 28 * X_1_1_2 + 23 * X_1_1_3 + 16 * X_1_2_1 + 19
* X_1_2_2 + 20 * X_1_2_3 + 20 * X_2_1_1 + 23 * X_2_1_2 + 18 * X_2_1_3 +
18 * X_2_2_1 + 21 * X_2_2_2 + 22 * X_2_2_3 + 13 * X_3_1_1 + 16 * X_3_1_2
+ 11 * X_3_1_3 + 22 * X_3_2_1 + 25 * X_3_2_2 + 26 * X_3_2_3 + 15 *
X_4_1_1 + 18 * X_4_1_2 + 13 * X_4_1_3 + 20 * X_4_2_1 + 23 * X_4_2_2 + 24
* X_4_2_3 + 6000 ;
[_2] X_1_1_1 + X_1_1_2 + X_1_1_3 + X_1_2_1 + X_1_2_2 + X_1_2_3 <= 200 ;
[_3] X_2_1_1 + X_2_1_2 + X_2_1_3 + X_2_2_1 + X_2_2_2 + X_2_2_3 <= 100 ;
[_4] X_3_1_1 + X_3_1_2 + X_3_1_3 + X_3_2_1 + X_3_2_2 + X_3_2_3 <= 50 ;
[_5] X_4_1_1 + X_4_1_2 + X_4_1_3 + X_4_2_1 + X_4_2_2 + X_4_2_3 <= 500 ;
[_6] X_1_1_1 + X_2_1_1 + X_3_1_1 + X_4_1_1 >= 100 ;
[_7] X_1_1_2 + X_2_1_2 + X_3_1_2 + X_4_1_2 >= 200 ;
[_8] X_1_1_3 + X_2_1_3 + X_3_1_3 + X_4_1_3 >= 100 ;
[_9] X_1_2_1 + X_2_2_1 + X_3_2_1 + X_4_2_1 >= 0 ;
[_10] X_1_2_2 + X_2_2_2 + X_3_2_2 + X_4_2_2 >= 0 ;
[_11] X_1_2_3 + X_2_2_3 + X_3_2_3 + X_4_2_3 >= 0 ;
[_12] 0 = 0 ;
[_13] 0 = 0 ;
[_14] 0 = 0 ;
[_15] 0 <= 2600 ;
[_16] 0 <= 0 ;
[_17] 0 >= - 400 ;
[_18] 0 >= 0 ;
END
Example 7 – LP Solution
Global optimal solution found.
Objective value:
Infeasibilities:
Total solver iterations:
Variable
Q
R
S
CAPACITY( 1)
CAPACITY( 2)
CAPACITY( 3)
CAPACITY( 4)
FIXEDCOST( 1)
FIXEDCOST( 2)
VARIABLECOST( 1)
VARIABLECOST( 2)
UPPERBOUND( 1)
UPPERBOUND( 2)
LOWERBOUND( 1)
LOWERBOUND( 2)
Z( 1)
Z( 2)
12300.00
0.000000
6
Value
4.000000
2.000000
3.000000
200.0000
100.0000
50.00000
500.0000
2000.000
1500.000
10.00000
15.00000
3000.000
4000.000
0.000000
0.000000
1.000000
0.000000
UPPER BOUND
Reduced Cost
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
Example 7 – Dual
MODEL:
MAX = 200 * U_1 + 100 * U_2 + 50 * U_3 + 500 * U_4 + 100 * V_1
+ 200 * V_2 + 100 * V_3 + 2600 * T_1 - 400 * T_3;
[ X_1_1_1] U_1 + V_1 <= 25;
[ X_1_1_2] U_1 + V_2 <= 28;
[ X_1_1_3] U_1 + V_3 <= 23;
[ X_1_2_1] U_1 + V_4 <= 16;
[ X_1_2_2] U_1 + V_5 <= 19;
[ X_1_2_3] U_1 + V_6 <= 20;
[ X_2_1_1] U_2 + V_1 <= 20;
[ X_2_1_2] U_2 + V_2 <= 23;
[ X_2_1_3] U_2 + V_3 <= 18;
[ X_2_2_1] U_2 + V_4 <= 18;
[ X_2_2_2] U_2 + V_5 <= 21;
[ X_2_2_3] U_2 + V_6 <= 22;
[ X_3_1_1] U_3 + V_1 <= 13;
[ X_3_1_2] U_3 + V_2 <= 16;
[ X_3_1_3] U_3 + V_3 <= 11;
[ X_3_2_1] U_3 + V_4 <= 22;
[ X_3_2_2] U_3 + V_5 <= 25;
[ X_3_2_3] U_3 + V_6 <= 26;
[ X_4_1_1] U_4 + V_1 <= 15;
[ X_4_1_2] U_4 + V_2 <= 18;
[ X_4_1_3] U_4 + V_3 <= 13;
[ X_4_2_1] U_4 + V_4 <= 20;
[ X_4_2_2] U_4 + V_5 <= 23;
[ X_4_2_3] U_4 + V_6 <= 24;
@BND( -0.1E+31,U_1, 0); @BND( -0.1E+31,U_2, 0);
@BND( -0.1E+31,U_3, 0); @BND( -0.1E+31,U_4, 0); @FREE( W_1);
@FREE( W_2); @FREE( W_3); @BND( -0.1E+31, T_1, 0);
@BND( -0.1E+31, T_2, 0);
END
Example 7 – Dual Solution
Global optimal solution found.
Objective value:
Infeasibilities:
Total solver iterations:
Variable
U_1
U_2
U_3
U_4
V_1
V_2
V_3
T_1
T_3
V_4
V_5
V_6
W_1
W_2
W_3
T_2
6300.000 + K = 6000 = 12300 UPPPER BOUND
0.000000
10
Value
0.000000
0.000000
-2.000000
0.000000
15.00000
18.00000
13.00000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
Reduced Cost
-200.0000
-100.0000
0.000000
-150.0000
0.000000
0.000000
0.000000
-2600.000
400.0000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
Example 7 – Master Problem
MODEL:
[_1] MIN= Z;
[_2] Z >= -1000 + 2000 * Y_2_1 + 4600 * Y_2_2 + 2400 * Y_2_3 +
1000 * Y_1_1 + 2000 * Y_1_2 + 1000 * Y_1_3 + 1500 * Y_2_1 +
3000 * Y_2_2 + 1500 * Y_2_3 + 2000 * Z_1 + 1500 * Z_2 ;
[_3] Z >= -100 + 1500 * Y_1_1 + 3600 * Y_1_2 + 1300 * Y_1_3 +
1000 * Y_1_1 + 2000 * Y_1_2 + 1000 * Y_1_3 + 1500 * Y_2_1 +
3000 * Y_2_2 + 1500 * Y_2_3 + 2000 * Z_1 + 1500 * Z_2 ;
[_4] - 100 * Y_1_1 + X_1_1_1 + X_2_1_1 + X_3_1_1 + X_4_1_1 >= 0
[_5] - 200 * Y_1_2 + X_1_1_2 + X_2_1_2 + X_3_1_2 + X_4_1_2 >= 0
[_6] - 100 * Y_1_3 + X_1_1_3 + X_2_1_3 + X_3_1_3 + X_4_1_3 >= 0
[_7] - 100 * Y_2_1 + X_1_2_1 + X_2_2_1 + X_3_2_1 + X_4_2_1 >= 0
[_8] - 200 * Y_2_2 + X_1_2_2 + X_2_2_2 + X_3_2_2 + X_4_2_2 >= 0
[_9] - 100 * Y_2_3 + X_1_2_3 + X_2_2_3 + X_3_2_3 + X_4_2_3 >= 0
[_10] Y_1_1 + Y_2_1 = 1 ;
[_11] Y_1_2 + Y_2_2 = 1 ;
[_12] Y_1_3 + Y_2_3 = 1 ;
[_13] 100 * Y_1_1 + 200 * Y_1_2 + 100 * Y_1_3 - 3000 * Z_1 <= 0
[_14] 100 * Y_2_1 + 200 * Y_2_2 + 100 * Y_2_3 - 4000 * Z_2 <= 0
[_15] 100 * Y_1_1 + 200 * Y_1_2 + 100 * Y_1_3 >= 0 ;
[_16] 100 * Y_2_1 + 200 * Y_2_2 + 100 * Y_2_3 >= 0 ;
@BIN( Y_1_1); @BIN( Y_1_2); @BIN( Y_1_3); @BIN( Y_2_1);
@BIN( Y_2_2); @BIN( Y_2_3); @BIN( Z_1); @BIN( Z_2);
END
;
;
;
;
;
;
;
;
Example 7 – Master Problem Solution
Global optimal solution found.
Objective value:
Objective bound:
Infeasibilities:
Extended solver steps:
Total solver iterations:
Variable
Z
Y_2_1
Y_2_2
Y_2_3
Y_1_1
Y_1_2
Y_1_3
Z_1
Z_2
12000.00
12000.00
0.000000
0
43
Value
12000.00
1.000000
0.000000
1.000000
0.000000
1.000000
0.000000
1.000000
1.000000
LOWER BOUND
Reduced Cost
0.000000
1500.000
3000.000
1500.000
2500.000
5600.000
2300.000
2000.000
1500.000
Example 7
Lower Bound of 12,000 is close to Upper
Bound. So, optimal solution must be between
the two. The student is encouraged to carry
Benders’ decomposition algorithm one more
time to ensure LB=UB in the third iteration.
Download