A heuristic preprocessor supported algorithm for the capacitated plant location problem
Department
of Management,
Middle
East Technical
University,
Ankara,
Turkey
The capacitated plant location problem is an example of a binary problem that is a special case of the mixed integer programming problem. General solution methods, which can be used to solve any mixed integer programming problem, prove to be inefficient when applied to the capacitated plant location problem. Heuristic procedures, on the other hund, are qflective means to obtain good, possibly optimal, solutions, but their optimality cannot be guaranteed. In this paper we developed an exact algorithm for solving the capacitated plant location problem bused on the “generalized search origin concept,” which uses a starting solution obtained by an ejjjcient heuristic procedure. The algorithm is tested on problems found in the literature and computational results are presented. Keywords: capacitated
plant location,
heuristic
preprocessor,
Introduction The capacitated plant location problem, Problem I, is formulated as follows: Minimize 7 2 c&j + c fiY, I
.i
subject to
CXvP dj
x
Xjj
(2) all i
9 Sjyi
Xij p
Yi =
0
all i, j
(4)
(0, 1)
all i
(5)
where cii = unit variable cost at plant i plus the unit cost of transportation from plant i to customer j xij = quantity supplied to customer j by plant i f; = fixed cost associated with plant i s; = quantity available at plant i dj = quantity required by customer j Yi = a zero-one variable that is 1 if plant i is open (yi = 1) and 0 if plant i is closed (Yi = O)
The terms “open,”
“closed,”
and “free” will mean
Address reprint requests to Dr. Ya&z at the Department agement, key.
Middle
Received
18 August
114
Appl.
East Technical
University
1988; accepted
Math. Modelling,
(ODTU),
31 August
of ManAnkara, Tur-
1990
1991, Vol. 15, March
generalized
search
origin
a potential plant assigned to be established, a potential plant assigned not to be established, and a potential plant not yet assigned either open or closed, respectively. Also note that the throughput from plant i, CX~, can be positive only if potential plant i is open. Recall that for a given vector y of open and closed plants, Problem I reduces to a standard transportation problem. Owing to the plant capacity constraints (3), the above problem is more complex in comparison to the simple (uncapacitated) plant location problem where si = ~0for all i, thus posing an additional computational burden. Previous research on finding efficient solution procedures for solving the capacitated plant location Problem I consists mainly of exact and heuristic procedures. The exact procedures proposed in the literature mainly employ several variations of the branch-andbound technique or the Balas-type implicit enumeration methods. Sa’ considers the capacitated plant location problem in the form of Problem I and uses the branch-and-bound technique. Davis and Ray2 pose Problem I in a slightly different form and solve the dual of the problem as a relaxed problem by using a decomposition approach. Akinc and Khumawala3 use the branch-and-bound technique by employing various rules for obtaining tighter lower bounds. Schrage,4 Geoffrion and McBride,5 Nauss,6 Guignard and Spielberg, and Christofides and Beasley8 followed the approach taken by Davis and Ray and proposed Lagrangian relaxation and decomposition in order to obtain tight lower bounds. More recently, Van Roy’ proposed a method that unifies Benders decomposition and Lagrangian relaxation into a single framework that involves obtaining successive solutions to a transportation problem and an uncapacitated plant location problem. Computational results presented by Van Roy indicate that his algo-
0 1991 Butterworth-Heinemann
Capacitated plant location problem:
rithm is superior to several others, but he points out that the capacitated plant location problem is essentially np-hard and cautions that the method might not be efficient for a particular problem. Another approach that has been pursued by various researchers is the use of an implicit enumeration scheme to obtain an optimal solution to Problem I. Ellwein’” proposed a modified implicit enumeration scheme of the single-branch type, which is a more flexible version of the Balas-type algorithm. In a bid to overcome the computational inefficiency of single-branch search alproblem, gorithms vis-a-vis the plant location Spielberg”,‘* proposed the “generalized search origin” concept, which involves dynamic relocation of the search origin to achieve computational efficacy. Following up on his generalized search origin approach, Spielberg’” also proposed dynamic or adaptive algorithms for solving the capacitated plant location problem with a single-branch search scheme and obtained promising results. Spielberg’s approach has provided the main impetus for our work, to be discussed in subsequent sections of this article. Motivated by the computational inefficiency of exact algorithms such as branch-and-bound and singlebranch search schemes, Khumawala14 successfully developed and tested a heuristic procedure for solving the capacitated plant location Problem I. His procedure, an extension of an earlier heuristic procedure for the uncapacitated plant location problem, I5 employs the concept of a “preferred path” by fixing free plants “open” or “closed” along the preferred path by using six branching decision rules. At each node, two bounds (termed delta and omega) are used to fix “open” or “closed” additional free plants in order to speed up convergence. A terminal node reached at the end of a preferred path will have all plants either fixed open or fixed closed. Hence the value of the objective function (I) at the terminal node of a path represents a solution (an upper bound) to Problem I. Thus application of different branching decision rules (BDR’s) may lead to different solutions to Problem I. Khumawala’s solution procedure consists of traversing different preferred paths through the application of different BDR’s. The minimum solution obtained through this process is then selected as the heuristic solution to the problem. Khumawala has tested his heuristic procedure on a number of problems used earlier by Kuehn and Hamburger,‘” Sa, and Ellwein. He reports quite encouraging results from the standpoint of both the quality of the solution and the computational effort. In this paper a solution procedure is presented for the capacitated plant location problem consisting of a preprocessor that employs the heuristic procedure of Khumawala14 and an exact algorithm based on the single-branch search scheme developed by Balas” and modified by Spielberg.“-” The solution procedure The procedure proposed in this paper for solving the capacitated plant location Problem I consists of two
6. Yaglz
phases. In Phase I an efficient heuristic procedure by Khumawala is used to obtain a good, possibly optimal, initial solution. Then Phase II of our solution procedure, based on a Balas-type single-branch search technique proposed by Spielberg, starts with the heuristic solution and verifies its optimality if in fact it is optimal; otherwise, it obtains the optimal solution. For the details of the heuristic procedure used in Phase I, the reader is referred to Khumawala.14 An important feature of the enumerative procedure employed in Phase II of our algorithm is the search technique that is used to generate a set of open and closed plants (vector y referred to earlier). As was stated above, for a given vector y, Problem I reduces to a standard transportation problem that can be solved by any one of numerous available solution procedures. The solution vector y, obtained by the Phase I heuristic procedure, has some components as 1, and some 0, corresponding to open and closed plants, respectively. Before starting the search with Phase II it is convenient to define a new vector y, where yi=
I -y;
= Yi
for yj = 1 for yi = 0
Also let
1, = {YilYi = 1 f-f'
= {YilYi = 1
Yi E
3
at the initial step of the heuristic procedure}
Hence HI
CII
I, is the set of plants that are “open” in the heuristic solution. HI is the set of plants that are fixed open at the initial step of the heuristic procedure of Khumawala. Similarly, 12 = {y;Jy; = 0 Hz = {y;(y; = 0
YiEFl
at the initial step of the heuristic procedure}
Thus H2 C Z2. Also, I = I’ U t2, which is the set of all plants, whether closed or open in the heuristic solution. In his heuristic solution procedure for the capacitated plant location problem, Khumawala14 employs a lower bound and an upper bound, which are used to open or close “free” plants. At the initial node of his procedure, all plants are considered to be “free,” and on the basis of these bounds, some are opened and some are closed. These plants keep their “open” and “closed” status in the heuristic solution and the optimal solution to the problem. In the capacitated solution procedure (Phase II) these plants are considered as elements of sets HI and H2, respectively, so that they can be fixed open or closed during the preliminary cancellation cycle, which will be explained in subsequent sections. The starting origin for Phase II, y = 0, henceforth referred to as simply y, is a vector that is already fea-
Appl. Math. Modelling,
1991, Vol. 15, March
115
Capacitated
plant location problem:
sible for Problem I. The components belong to two classes:
6. Ya@z
of vector y = 0
1. Class 1 plants, i E II: plants that are open in the heuristic solution. 2. Class 2 plants, i E Z2: plants that are closed in the heuristic solution. At the initial node of the Phase II algorithm, all components (plants) of y are set “free” but are distinguished as 1. Class 1 free plants, i E F1, where F, = {iii E I,}:
Class 1 free plants are considered “tentatively open” but free to be closed on forward steps of the algorithm. 2. Class 2 free plants, i E F2, where F2 = {iii E I,}: Class 2 free plants are considered “tentatively closed” but free to be opened on forward steps of the algorithm. The complete set of free plants (both Class I and Class 2) is given by F = F, U F2. The Phase II search starts at the origin y = 0 with F = F, U F2 and proceeds by opening and closing plants. A forward step from any node u to node (u + 1) consists of the closing of a Class 1 free plant or the opening of a Class 2 free plant. Similarly, a backward step from any node u to node (u - 1) consists of the opening of a Class 1 free plant or the closing of a Class 2 free plant. The “cancellation” of a plant i at a node u consists of a forward step followed immediately by a backward step involving the same plant. Whenever a backward step is taken from node u to node (u - I), all plants i that were fixed open or closed at node u due to cancellation or forward steps from node u revert back to their “free” status. This is necessary to generate further nonredundant solution vectors to make sure that all possible solution vectors are evaluated either implicitly or explicitly. Thus at any node u of the search tree, six types of components (plants) exist and are differentiated by the following sets: Fy = plants that are “tentatively open” but free to be closed F; = plants that are “tentatively closed” but free to be opened Qy = Class 1 plants that are open LRy= Class 2 plants that are open C’; = Class 1 plants that are closed C; = Class 2 plants that are closed Also note that F” = FYUF;; 0” = flyUR;; and C” = C’;UCy where free sets of Class 1 and Class 2 form the complete set (F”) of all free plants. R” is the set of plants that are open at node u. Some of these (0~) were opened and some (a;) were closed in the starting (Phase I) solution (that is, the heuristic solution). C” is the set of plants that are closed at node u. Some of these (C’;) were opened and some (C;) were closed in the starting solution (that is, the heuristic solution). Each node of the search tree has associated with it
116
Appl. Math. Modelling,
1991, Vol. 15, March
the sets F’;, F:, CR”,and C” defined earlier. In addition, a level k is associated with each node. This level reflects the number of plants that are either fixed open or fixed closed on the forward steps of the algorithm up to the current node. Also, to keep track of the status of the plants during the search, a state vector vk is carried and updated at each level k. This state vector has the form nk = (771,772,.
. . 5 77,)
k = level number
where nj = 0 7; = 4
if
iEF,
if
iEF,
Ti = k
if
iEC
qj= -k
if
iER
The use of the values (0, 1, k, -k) is simply a convenient way to designate the status of the plants at each node. A bookkeeping scheme to differentiate between plants is needed; this is just one of the many ways in which it can be achieved. Also identified with each node is a sequence vector s’, which contains in sequence the index numbers of the k - I plants that have been fixed open or closed on forward steps. This serves as another bookkeeping device to keep track of the search from node to node. In addition, the procedure carries along, from node to node, the solution to Problem I, which is obtained in two steps. The solution to the capacitated problem The Phase II algorithm requires the solution of the capacitated Problem I for a specification of the y-vector at each node, which is equivalent to solving a transportation problem (TP). This is done only at nodes that are reached by forward steps, since solutions at previous nodes reached by backward steps are already stored in the computer. Problem I is solved in two steps. First, a transportation problem (TP) is solved for the particular set of “tentatively open” and “fixed open” plants i E F, U iI. This TP solution yields the total variable cost ZTP
=
z
x
cijxij
iEF,UCl
(6)
1 .i
The total cost Zc, is then obtained by adding the total fixed cost CiEFIUo fiyi to expression (6). Provision is made in our procedure so that CP is always feasible, provided that at least one feasible solution exists for the problem. Specifically, only those free plants i (i E F,) such that
are allowed to be fixed closed on the forward steps of the algorithm. Infeasibility may also arise owing to the presence of prohibitive routes. If in the cost matrix [ cJ, cij = ~0 for all plants i (i E F1 U iI> for some customer j, the problem becomes infeasible. Should this occur when a “tentatively open” plant i (i E F,)
Capacitated
plant location problem:
0. Ya&z
where
Table 1.
Subset
(i)
Ru
(ii)
R U F -
Index vector
Corresponding cost vector
i, = i,
%
F, {iI}
i3
CO/
is temporarily closed on the forward step, it is cancelled (fixed open), and another free plant, if any, is considered for the forward step. This feature is similar to the CMIN test of Ellwein’s procedure. Cancellation and backup tests The algorithm uses various cancellation and backup tests to eliminate as many solution vectors y as possible from explicit evaluation. These tests are derived by exploiting the special structure of the capacitated plant location problem. For the execution of cancellation and backup tests, the algorithm requires, for each customerj, determining that plant i, over certain subsets of I (set of all plants) for which C;,/ is a minimum. These latter subsets and the corresponding plant indices i, are given in Table I, employing the same notation as Spielberg. The algorithm requires that two different index sets and their corresponding minimal cost vectors be stored and updated as changes take place during the search procedure. In (i), iI is the set of open plants (tentatively open and fixed open) that are the “best” (least costly) suppliers of all customers. Hence the plants that are in the set i, constitute the current solution to the capacitated Problem I. In (ii), i3 is the set of free (both Class 1 and Class 2) and open plants that are the “best” suppliers of all customers over all successor nodes of the current node if plant i E F, were to be fixed closed. It is still possible that all Class 2 free plants i E F, may yet be opened at successor nodes, so the largest set over which c;,j may be obtained is R U F. Accordingly, c;J is obtained over the set R U F - {i,}. The index sets and the cost vectors discussed above are used in the computation of gain functions and cancellation tests, which are discussed next. Calculation of gains For the calculation of gains, certain additional sets are needed. For i E F, U F2, define the index set J’ = fjkjrij > 0; rij, 2 rij, 2 . . . 2 rti,,> where r, = max (c;,,. - cij, 0) Also, for i E F, U Fz and j, E J’, let di, di”:= si i 0
ajq-,
ifa,Ssj ifa,_, Ssi5aq otherwise
(8)
ay= %d$ p=l
q= 1,2,...,n
Here, as denotes the portion of the capacity of plant i accounted for up to the j, customer’s demand in the rank-ordered sequence of customers. The ranks are in descending order of the per-unit contributions r,, which result from the opening or the closing of a free plant. Three gain functions, one local and two global, are employed by the capacitated GSO algorithm: Local gain (Type 2). The type 2 local gain w’ is given by the following. For i E Fz and j, E J’, compute pi = c
r,dz
(9)
j&J'
where rij = max (c;,j - cij, 0) for all j. Then w;=
-.fj+/3;
(10)
pi measures the maximum decrease in the objective function value Z,, if the free plant i E F2 were to be fixed open on a forward step to the next node. The type 2 local gain will be positive if this maximum decrease in variable costs more than offsets the increase of fj due to the opening of an additional plant i. Global gains (types I and 2). Global gains measure the maximum improvement in the current objective function value Zc, over all successor nodes to the current node owing to a forward step on plant i. If plant i E F,, the global gain is of type I; if i E F2, the global gain is of type 2. The type 1 global gain, qj, is given by the following. For i E F, and j, E J’, compute Ai = 2
r,d;*y
(1 I)
j&J'
where rij = max (cid - c
(12)
Ai simply measures the minimum increase in the objective function value Z,, of the transportation problem TP at the current node if a plant i E F U R were to be fixed closed owing to a forward step on i. In this case the variable cost comparison is made over the set F U 1R, since all free plants i E F2 may be fixed open at successor nodes of u. The method for calculating the type 2 global gain qf is now explained. Let t be the number of plants in the set F, U R. Recall that plants i E F, U R constitute the current solution vector for the capacitated problem CP (Problem I) and the transportation problem TP. A free plant, say, i’ E F2, is now considered to be fixed open. One can think of this plant as the (t + I)st plant in the set F, U fi U {i’}. The motivation for considering i’ to be open is to investigate whether or not the addition of this (t + 1)st plant will result in an improvement in
Appl.
Math. Modelling,
1991, Vol. 15, March
117
Capacitated
plant location problem:
6. Ya#z
the objective function value Z,,. Recall that the transportation problem TP for a given y-vector is the same as the capacitated problem CP with the fixed costs fi all being equal to zero. The duality properties of the transportation problem TP lead to the following results. The per-unit cost improvement hi3 resulting from supplying the requirements of customerj from plant i’ is given by hi? =
c;~ -
(13)
ziy
where ciy is the variable cost per unit of supplying the jth customer’s requirement from the i’th (t + 1)st plant and where ui, = dual with Uj = dual with
variable associated plant (t + 1) variable associated customerj
(14)
CRY +
V,+l
-
(15)
where v,+ 1 is the dual variable associated with the dummy customer (n + 1). Expression (12) is used in the calculation of type 2 global gains. For i’ E F2 we now define the following index set. p5n
Now let free plant i E F2 be the i’th plant ((t + 1)st plant). The maximum improvement in the objective function value ZTp due to the opening of plant i is given by
(16) k=l
where d$ is determined as in (9). Thus for i E F2 the maximum net improvement in the objective function value Zc, is given by q!=
-fi+
‘yj
(17)
where fi is the fixed cost associated with plant i. Thus the type 2 global gain measures the maximum net improvement in Zc, if a free plant i E F2 is fixed open at the current node. If the maximum net improvement exceeds the fixed cost f; on plant i, then qf > 0. The gains introduced above are used in cancellation tests and branching rules for selecting the next plant to temporarily open or close on the forward step of the algorithm. The cancellation tests are discussed in the next section, which is then followed by a discussion of the branching rules. Cancellation tests The capacitated algorithm employs five different cancellation tests, which are as follows:
118
Appl. Math. Modelling,
for
iEF,
then plant i is cancelled, that is, fixed open. If the maximum improvement in Zc, due to the closing of a plant i E F, is nonpositive, then this plant should be fixed open. 3. Cancellation test 3. If at node u, and
prob-
Vj
K = {j,lhi, < 0; hi,, ~ h;~z~ . . . I hi,j~}
qf 50
F2 = 0
Thus to maintain feasibility of the transportation lem, Ui is replaced by (- v, + i) to obtain hi> =
1. Cancellation test 1. At the initial node, if i E HI or i E Hz, then plant i is cancelled. Specifically, if i E HI, then plant i is fixed open; if i E H2, then it is fixed closed. As a result of this test, all plants that were fixed open or closed at the initial step of Phase I are cancelled. At the initial step of Khumawala’s capacitated heuristic procedure, all cancellations are performed with the closed plant set C = 0. This permits our procedure to cancel the same plants at the initial node of the procedure. 2. Cancellation test 2. If at a node u,
1991, Vol. 15, March
si ’ Jg”r,
St - X dj j for
iEF,
then plant i is cancelled, that is, tixed open. This test is performed after cancellation test 1 and only ifthe set F2 is empty. The rationale behind it is that if closing a free plant i E F, renders the capacitated problem CP infeasible owing to lack of available capacity and if F = 0, then plant i should be fixed open. Cancellations due to tests 2 and 3 are referred to as Type I cancellations. 4. Cancellation test 4. This test, which is performed only ifF, = 0, is derived from the following property: Let t be any successor node to the current node u at which F, = 0; then clearly, z$-, 5 z;,
(18)
Therefore at node u if F, = 0 and qf 5 0 for i E F,, then plant i is cancelled, that is, fixed closed. The reason is that if the maximum improvement in the objective function value Zc, due to the opening of a plant i E F2 on a forward step from node u is nonpositive, then this plant should be fixed closed. By property (18) the maximum improvement due to the opening of this plant at any successor node t will not exceed the maximum improvement for the same plant at node u if F, = 0. 5. Cancellation test 5. This test, like the pre$ous one, is performed only llfthe set F, = 0. Let Z,, be the objective function value of the transportation problem TP with all plants open and all fixed costs assumed to be zero. This, of course, constitutes a lower bound on the total variable cost. Then, at any node the upper bound on the total fixed cost is given by F* = Z& - gTP
(19)
Also let TFC = ~i~f-,vnfi; now if for plant i E F2, fi> FX - TFC
(20)
then plant i is cancelled, that is, it is fixed closed because opening this plant cannot possibly lead to
Capacitated
an improvement in the current upper bound Z&, since its fixed cost exceeds its savings in the total variable cost. Cancellations due to tests 4 and 5 will be called Type II cancellations. The backup test
The backup test is performed only when F, = 0. This test is derived from property (18) discussed in the previous section. Let Z& be the best (minimum) value of the objective function found thus far in the search; and let Z& be the value of the objective function at the current node u. If
then a backward step is taken from node u to the node (u - 1). The reason for a backward step due to the backup test is that even if all free plants i E Fz with positive net maximum gains are fixed open at the successor nodes of the current node u, the total improvement in Z& will not further improve Z&, the best value found thus far in the search. The cancellations and the backup test are cyclic. Whenever there are changes in the sets F, O, and C due to cancellations, the appropriate gains are recomputed, and the backup test is performed. One cycles through the cancellations until no more changes take place in the sets mentioned above, at which time the next step in the procedure is executed. Branching
rules
The selection of the free plant i* to be temporarily fixed open or closed on the forward step has an important bearing on the computational efficiency of the procedure. Various possibilities exist for branching rules: 1. Since cancellation tests 4 and 5 and the backup test can be performed only when F, = 0, one possibility is to employ a rule that aims at rapidly making the set F, empty. One then hopes that more solution vectors will be eliminated without explicit evaluation due to the operation of additional tests. This rule can be stated as follows: Select i* such that A,* = max Ai, where A;
=
qf W’
if if
iEF, iEF,
and and
F, 20 F,#0
However, this rule has the inherent danger that the number of levels on the search tree may become quite large, thus requiring a great deal of computation time. 2. Another rule which can be used is the following: Select i* such that AT = max A;, where Ai
=
qf
4’
if if
~EF, iEF,
This rule selects the plant i that has the largest global gain. As was noted earlier, qj is the maximum improvement in Z. if plant i were to be closed. Sim-
plant location problem:
6
Yagu
ilarly qf is the maximum improvement in Z,, if plant i were to be opened. Hence this rule is based on the reasoning that a plant with the largest global gain qi is more likely to be closed (if i E F,) or open (if i E Fr) in the optimal solution. 3. A third rule for branching could be the following: Select i* such that A,+ = max A;, where Ai
=
qf Wf
if if
iEF, iEF,
This rule selects the plant i that has the greatest global gain qj or local gain w’. The rationale of this rule is similar to that of rule 2 except that local, instead of global, gains are used for i E F2. In the next section we present a flowchart for the capacitated GSO algorithm and give a step-by-step description of the algorithm. The capacitated
GSO algorithm
As was noted earlier, the heuristic procedure of Khumawala14 for the capacitated plant location problem constitutes Phase I of the complete solution procedure. Thus in Phase I, Khumawala’s capacitated procedure is executed from which the heuristic solution is obtained. In Phase II this solution is then fed into the capacitated GSO program, which yields the optimal solution. The steps of the GSO algorithm are outlined in the flowcharts given in Figures 1 and 2. The flow chart in Figure 1 describes the step-by-step iterative procedure of the algorithm. Each step in this flowchart is labelled with the prefix M. An important part of the algorithm is the “cancellation and backup test” cycle, which is cycled through at each node of the search tree. This is therefore described separately in greater detail in the flowchart in Figure 2. Each step in this flowchart is labelled with the prefix C. The cancellation and backup test cycle is executed at three different steps of the main flowchart in Figure I. These are the initial step, the iterative step, and the forward step. The points at which this cycle returns to the main flowchart are labelled A’, B’, and C’. The corresponding entry numbers in the main flowchart are given in the box in Figure 2. The capacitated GSO algorithm searches for the solution vector of open and closed plants that minimizes the objective function value Zcp by means of interchanging elements (that is, the indices of plants) among the sets F,, F,, R, and C. At each node the solution vector consists of the indices of the plants in the set F, U fl. By means of various checks, feasibility of the CP is always maintained. The minimum value of Z,, at the end of the search is the optimal solution to the capacitated problem. The step-by-step description of the algorithm is now given. The steps are sequential unless otherwise noted. M-l: Initialize. At initial node, set F,, Fz, H,, H2. R = C = 0. State vector entries are 77: = 4 for iEF,and$=Ofori~F~. M-2: Preliminary cancellations. Plants i E H, and
Appl. Math. Modelling,
1991, Vol. 15. March
119
Capacitated plant location problem:
Figure 1.
Flowchart of the capacitated
0. YaQlz
algorithm
i E H2 are cancelled, that is, fixed open and closed, respectively. M-3, M-4: Check CP for feasibility. If infeasible, terminate. M-5, M-6: Solve CP for plants i E F, U R. Record solution as current upper bound Z&. Obtain fixed cost upper bound F* for use during the cancellation cycle. M-7: Obtain index sets i, and minimal cost vectors cw for use in calculation of local and global gains. M-8: Compute w’ and 4). M-9: Enter cancellation and backup test cycle. Cycle through cancellations until no more exchanges take place between F,, Fz, Cl, and C. (For details refer to Figure 2.) M-10: Update iteration, level, and node counters for bookkeeping purposes. M-l 1: Compute available capacity CSi for i E FI U R.
M-12: Check whether F = 0. If F = 0, go to M-19 to execute a backward step. M-13: Check to determine whether an attempt has
120
Appl.
Math.
Modelling,
1991,
Vol.
15, March
been made earlier to make a forward step from the current node. If yes, go to M-15. M-14: Place current data (iy and CJ in temporary storage and go to M-24. M-15: Place current data in temporary storage. M- 16: Compute w’ and q! . M-17: Cancellation and backup test cycle (iterative step). M-18: If no backward step is indicated in M-17, update current data. M-23: Check whether F = 0. If yes, go to M-10. If F # 0, go to M-24. step (from node Y to node v - 1): M-19, M-22: If initial node, current upper bound is optimal. Terminate. M-20: Free all plants that were tixed open or closed by cancellations or forward steps from node V. M-21: Cancel plant i* that was fixed open or closed on the forward step from node v - 1 and make necessary changes and updating of the current data. Go to M-10 to evaluate node u - 1.
Backward
Capacitated
plant location problem:
6.
Ya&z
Cancellation and backup test cycle: C- 1: Compute type 2 global gains qf. C-2: If F, = 0, go to C-3 for backup test. Otherwise,
c
FOl.Od
II<9
1
-6
I
Figure 2.
Flowchart of the cancellation
and backup test cycle
Forward step (from node v to node v + I):
M-24: Obtain set of eligible Class 1 free plants. Those plants i E F, that would render the CP infeasible if closed on the forward step are screened out. M-25: Select free plant i* to be “temporarily” closed or opened on the forward step by using branching rule. M-26, M-27, M-33: If selected plant i* E F,, temporarily close plant i*. Update data in temporary storage. If i* E F2, temporarily open i*, update data in temporary storage, and go to M-34. M-28: Check for infeasibility due to prohibitive routes (that is, c, = 00). If the problem is feasible, go to M-34. M-29, M-30, M-31, M-32: Cancel i* selected in step M-25. Update C, 1R, i3, and Ci,. GO to M-l 1. M-34, M-35, M-36, M-37: Solve the new capacitated problem CP. If Z,-, < Zzp, record Z,, as the new upper bound and update the upper bound on the fixed cost F*. M-38: Compute w’ and q,!. M-39: Cancellation and backup test cycle (forward step). If a backward step is indicated, go to M-29. M-40: Transfer data from temporary to permanent storage and go to M-10 to start the evaluation of the node reached with the just completed forward step.
go to c-4. C-3: Perform backup test. If a backward step is indicated, return to M-19 (initial step or iterative step) or M-29 (forward step). If a backward step is not indicated, go to C-8 to check whether F2 = 0. C-4, C-5: Fix any plant i E F, open for which qi’ 5 0 (cancellation test 2). Update appropriate sets and vectors. Otherwise, go to C-8. C-6: If F = 0, return to M-10 (initial step) or M-18 (iterative or forward step). C-7: If F, = 0, go to C-3. C-8, C-9, C-10: If F2 = 0, check whether closing any plant i E F, will render the CP infeasible. Cancel (that is, fix open) such plants, if any, and update appropriate sets and vectors (cancellation test 3). Otherwise, go to C-12. C- 1I : If F = 0 due to recent cancellations, return to M- 10 (initial step) or M- 18 (iterative or forward step). C-12: If F, # 0, return to M-10 (initial step) or M-18 (iterative step) or M-40 (forward step). C-13: Perform backup test. If a backward step is indicated, return to M-19 (initial or iterative step) or M-29 (forward step). C-14: Check whether there are any plants i E F2 for which fi > F* - TFC or qf 5 0. If there are none, return to M-10 (initial step) or M-18 (iterative step) or M-40 (forward step). C-15: Cancel (fix closed) plant i and update appropriate sets and vectors. C-16: Perform backup test. If a backward step is indicated, return to M-19 (initial or iterative step) or M-29 (forward step). C-17: Recompute global gains qf due to changes in the free plant. Set F stemming from recent cancellations. Return to C-4 to start another cycle.
Illustrative
problem
The capacitated GSO algorithm is now applied to a small capacitated plant location problem employed by Khumawala. This problem is used here to further illustrate the procedure rather than to test the efficiency of the procedure. This is done on larger problems, and the results are discussed in the next section. The cti matrix for this problem is given in Tuble 2. Also given are the capacities and the fixed costs for each plant and the demands for each customer. In accordance with our complete solution procedure the heuristic solution is first obtained (Phase I) by using Khumawala’s heuristic procedure. This phase is not explained here, since it appears in the work of Khumawala.14 This heuristic solution, which, as will be verified by the GSO algorithm, is optimal, appears below: YI
Appl.
= Y2 = Y4 = Ys =
Math.
Modelling,
1
Plants 1,2,4, and 5 are open
1991,
Vol.
15, March
121
Capacitated plant location problem: Y3
6
Ya#z
Plant 3 is closed
=o
M-8
objective function value Z,, = 1567.5
F2 = (31,
4; = 100 - 85 = 15 q: = 80 - 75 = 5 M-9 (Initial cancellation cycle). cycle the steps are: C-l Computation of 4;:
HI = {2,41
No cancellation or backward step is indicated, since q1 $ 0, q: $ 0, and neither set F, nor Fz is empty. M-24 (Screening for infeasibility)
M-3
R = {2,4}
Fz = (31,
(Feasibility
sg = 35 but
check):
YFuo si - C dj = 3o .i
Cdj = 100 i
C S; = 130 iEF,UR
Since ss > 30, plant 5 cannot be fixed closed on the forward step because this would lead to infeasibility due to insufficient capacity. M-25, M-26, M-27 (Selection of i*). Plant 1 gets selected by branching rule 3 to be temporarily fixed closed on the forward step. The sets and vectors are updated as follows:
Since available capacity exceeds total demand, the CP at this stage is feasible. M-5 (Solution of TP). TP is solved with all plants assumed to be open. lower bound on total variable cost = &, = 1200 M-6
(Solution of CP) ZCP
=
ZTP
+
2 iEF,
F, = 151, F2 = (31, i, = (5,5,5,5,2,4,2,4)
fi UIL
Cilj = (18, 19, 11, 1835, 19.5, 16, 16.5)
Thus the current upper bound is Zzp = 1567.5. The fixed cost upper bound is F* = Z;p - Z,,
M-34
= 1597.5 Recall that the current upper bound is still 1567.5. M-38 (Computation of gains w: and qf)
(Index sets and minimal cost vectors)
w; = -60 +2.5 = -57.5
i, = (1,5,1,5,2,4,2,4) i3 = (5, 1,3,4,3,5,4,2)
Illustrative
q:=80-95=
problem Customers Variable cost/unit ($)
Plant fixed cost ($) 100
70 60 110 80 Customer (units)
Capacity,
Plant
1
2
3
4
5
6
7
8
S
1 2 3 4 5
12 21 18 21 17
18 L 19 19 15
10 15 11 15 11
L 24 19.5 18 15
6 5.5 5 6.5 7
L 21 L 12 19.5
18 11 L 16 20
L 16.5 19.5 12 L
25 20 20 50 35
15
10
10
15
15
20
10
demands
L indicates a prohibitive
122
Appl.
Math.
-15
M-39 (Forward step cancellation cycle) C-l q: = -60 + 50 = - 10 C-4 q: = - 15 < 0; therefore plant 5 is cancelled, that is, fixed open. The sets are updated as follows:
(12,153 10~15~5.5~12~11~12)
citi = (17, 18, 11, 18,5, 19.5, 16, 16.5) Table 2.
(Solution of CP)
Z,, = 1337.5 + 260
= 1567.5 - 1200.0 = 367.5
=
c = (1)
i3 = (3,3,3,4,3,5,4,2)
= 1567.5
Ci,j
fi = {2,41,
(17,157 11~15~5*5~12~11~12)
C;,j=
Z,, = 1207.5 + 360
M-7
In the cancellation
q; = -60 + 7.5 = - 52.5
M-2 (Preliminary cancellations). Plants 2 and 4 are fixed open. Sets are updated as follows: F, = {1,51, C=H,=H*=0
of gains)
w: = -60 + 2.5 = -57.5
The use of this solution as the starting solution for the capacitated GSO algorithm requires the following computational steps. At node 1: M-Z (Initialization). The initial plant sets are Fl = {1,5), H,=R=C=0
(Computation
route.
Modelling,
1991,
Vol.
15,
March
5
Capacitated plant location problem: F, = 0,
R = {2,4,5},
Fz = 131,
C = {I}
C-7 1597.5 - 0 > 1567.5; therefore steps M-29, M-30, and M-32 are executed next. M-29, M-30, M-32 (Cancellation of i*). Plant 1 is fixed open. New sets are F, = 0,
fi = {1,2,4,51,
Fz = (31,
c=0
Now we go to step M-l 1 to make another forward step from node 1 (the initial node). A forward step by temporarily opening plant 3 cannot be completed because of the backup test. Therefore plant 3 is cancelled, that is, fixed closed. This leaves the free set F empty. The procedure terminates because we are at the initial node. The optimal solution is therefore y, =
y2
=
y,
=
ys
Y3 = 0
=
1
Plants I, 2,4, and 5 are open Plant 3 is closed
Z& = 1567.5 As can be seen from this small-sized sample problem, the capacitated GSO procedure converges rapidly when the starting solution is optimal, but of course this is not guaranteed. The computational performance of the procedure is next tested on larger problems and explored further to include nonoptimal heuristic solutions as the starting point.
Table 3.
results
The Phase II algorithm for solving the capacitated plant location problem was programmed in Fortran IV for the IBM 370/165 machine. To test the performance of the solution procedure vis-a-vis different starting solutions obtained by the Phase 1 heuristic procedure developed by Khumawala, we decided to use the 16 x 50 test problems derived by Sa from the original Kuehn and Hamburger problems and subsequently modified and used by Gray, Ellwein, Khumawala, Akinc and Khumawala, and Van Roy. These test problems are detailed in Table 3. The seven capacitated plant location problems were first solved by using the heuristic procedure of Khumawala, which employs six heuristic rules derived from the branching decision rules of his procedure. Consequently, for each problem, six heuristic solutions were obtained in Phase I of the solution procedure. With the exception of Problem 1 the Phase I heuristic procedure yielded optimum solutions. These heuristic solutions were then used as starting solutions for the capacitated GSO algorithm. The results are summarized in Table 4. The heuristic solutions in this case were all optimal with the exception of Problem 1. Because nonoptimal solutions except for Problem 1 were unavailable to us, we made some changes in the solution vector entries of the heuristic solutions and obtained nonoptimal inferior solutions. Table 5 summarizes the computational results when the capacitated GSO algorithm was started with these inferior solutions. Two additional results,
of test problems
Problem
Capacity, S,
Fixed cost, f, ($)
1 2 3 4 5 6 7
5,000 5,000 5,000 15,000 15,000 15,000 15,000
7,500 12,500 17,500 7,500 12,500 17,500 25,000
the total number of transportation problems solved (ntp) and the total computer time taken for their solution (TP time), are also presented. The following notation, formerly employed by Spielberg, are used in the tables: nit, nitop, ncfs, nifs, nitv, ntp, time,
Computational
Summary
6. Yagilz
total number of iterations; iteration number at which the optimal solution is found; number of projective forward steps that are completed; number of projective steps that are not completed: number of iterations required to verify the optimality of the solution; total number of transportation problems solved; CPU time in seconds on IBM 370/165.
On inspecting Tables 4 and 5 we find that a great percentage of the total computer time is due to the solution of transportation problems. It is also noted that the solution of the TP’s with tighter capacity constraints generally requires more computer time. For example, the percentages of total time spent in solving the TP’s for the first three problems in Table 5--which have plant capacities of 5000 units each-are generally higher than those for the last four problems, all of which have capacities of 15,000 units. Also, as was expected, starting the GSO algorithm with an inferior heuristic solution results in a greater total number of iterations and hence higher computer times. The exceptions to this are Problems 1 and 4. The explanation for these exceptions is quite simple. For Problem 1 the inferior solution required fewer changes (from closed to open and vice versa) in the solution vector than for the best heuristic solution. For Problem 4 the optimal solution is found immediately after starting with the inferior solution; thus the number of iterations and the GSO computation time are equal in both cases for Problem 4. The average computation times for the “best” and “inferior” cases are given in Table 6. Note that the Phase I solutions for the inferior case were obtained arbitrarily; hence the average time is not given in that case. Table 6 shows that for the test problems that have been solved, using a good heuristic solution improves the efficiency of the capacitated GSO algorithm. The improvement is evident in both the TP and GSO times. It should be noted that being able to cancel as many plants as possible at the initial node,
Appl.
Math.
Modelling,
1991,
Vol.
15, March
123
Capacitated Table 4.
plant location problem:
d. YaQlz
Test results, best heuristic solution Time (sec.)
Problem
nit
nitop
ncfs
nifs
nitv
ntp
TP”
I
GSO
Totalb
Best heuristic solution
1
72 1 1 38 47 154 107
1 1 1 1 1 1 1
23 1 1 14 17 51 37
49 0 0 24 30 103 70
71 0 0 37 46 153 106
48 0 0 25 31 104 71
47.0 0.0 0.0 0.6 0.7 10.7 10.8
2.4 1.1 1.1 0.2 0.2 1.5 0.9
50.0 1.4 1.5 2.9 3.6 20.8 16.3
62.4 2.5 2.6 3.1 3.8 22.3 17.2
1.043.384 1.097,937 1 ,I 52,937 932,570 977,736 1,013,995 1,045,594
1,040,384 1,097,937 1 ,I 52,937 932,570 977,736 1,013,995 1,045,594
Optimal solution 1,040,384 1,097,937 1,152,937 932,570 977,736 1,013,995 1,045,594
Phase
2 3 4 5 6 7
Optimal solution
a Does not include time for the two TP’s solved initially. b Phase I plus GSO time.
Table 5.
Test results, inferior heuristic solution Time (sec.)
Problem
nit
nitop
ncfs
nifs
nitv
ntp
TPa
Phase I
1 2 3 4 5 6 7
71 10 12 38 50 419 240
53 3 2 1 37 367 198
21 1 1 14 17 152 71
50 9 11 24 33 267 169
18 7 10 37 13 52 42
51 11 13 25 34 268 170
47.3 7.9 9.7 0.6 0.7 25.8 22.3
2.4 1.5
a Does not include time for the two TP’s solved initially. b Phase I plus GSO time. c All inferior solutions except for Problems 1 and 7 were obtained problems.
Table 6.
Average
Heuristic solution used Best Inferior
computer
times for the test problems Average
time (set)
TP
Phase I
GSO
Total
10.0 16.3
1.05 -
13.8 25.1
14.9 -
owing to either preliminary or other cancellations, is of great significance computationally, since the cancellation of a single plant initially decreases the number of possible solution vectors by one half from 2” to 2”-‘. Therefore the entire solution procedure is expected to be more efficient if the heuristic algorithm used in Phase I fixed open or closed many plants rather than only a few at the initial step. The fixed cost bound, F*, has been effective for test problems with high fixed costs relative to the variable costs. This is because when the fixed costs are high, the solution is dominated by the fixed cost components rather than by variable costs. The execution of cancellation tests 1 and 2 is not contingent upon the status of F1 or F2 sets and seems to perform quite well in eliminating possible solution vectors. As for cancellation tests 3, 4, and 5, these cannot be performed unless F, or F2 is empty. The infeasibility cancellation (test 3) is more effective when the plant capacities are tight. Test 5, which employs
124
Appl.
Math. Modelling,
1991, Vol. 15, March
arbitrarily.
GSO
Totalb
Best heuristic solutionC
50.1 9.7 11.5 2.9 4.9 59.1 37.1
52.5 38.6
1,043,384 1,106,006 1,165,014 940,007 979,025 1,014,025 1,053,133
Hence no Phase I and total times are given for these
the fixed cost bound mentioned earlier, obviously works better when the fixed costs are higher. Test 4, which closes plants, is performed only if F1 = 0. It uses an upper bound on the maximum improvement of the objective function value Zc, for making these cancellations. At the initial stage of our work we solved some test problems with and without this test. Its inclusion in the procedure has significantly reduced computation time. Our experimenting with the dynamic relocation of the search origin, which was the main impetus behind Spielberg’s work, did not prove beneficial from a computational standpoint. Specifically, the result has been an increase in the total number of iterations (nit) and the number of forward steps completed (ncfs). This is due to the following: The heuristic solutions for the test problems obtained in Phase I are all either optimal or very close to optimal. Thus the number of completed forward steps (or the number of levels) is very small in most cases. The primary motivation for restarting the search is to eliminate the necessity of backtracking along various levels or branches all the way to the initial node to either verify optimality or change the status of a plant and reconstruct the search tree. Since for most of the test problems solved, the number of levels is extremely small, the advantages gained by a restart are greatly offset by the redundancy of enumeration introduced in the process. Thus the test problems reported in Tables 4 and 5 were solved without any restarts.
Capacitated plant location problem:
General comments The size and nature of the data are two important factors that affect the computation time required to solve a problem. The size of the combinatorial problem increases at an exponential rate with the number of potential locations. On the other hand, increasing the number of customers does not increase the size of the combinatorial problem, and hence the increase in computation time and storage is minimal. The computing time is increased only to the extent that more time is now required to update the various vectors and to compute the gains. The nature of the problem data is an important factor because of the data dependency of integer programming algorithms in general. Some algorithms, including ours, are expected to perform more efficiently with certain kinds of data than with others. In most cases the higher the fixed costs, the easier the problem is to solve. Also, if the fixed costs are large or small in relation to the variable costs, this again renders the problem relatively easy. The most difticult problems are those with fixed costs that are equal or within a narrow range and of magnitude similar to variable costs. The Kuehn and Hamburger problems solved in this paper fall in this category. The capacity constraints reduce the set of feasible solutions to the capacitated problem especially if the constraints are tight. This, of course, tends to reduce the computation time. On the other hand, the transportation problems at each new node take much longer to solve when the capacities are tight. The net effect of this on any problem is difficult to determine. A great deal of computation time is taken by forward steps that are not completed because of projective cancellation and/or backup tests. Any decrease in this time that can be achieved by the use of more effective gain functions, backup tests, or similar devices should increase the computational efficiency of the procedure. Also, the possibility of using the solution to a problem that is less constrained than the capacitated problem CP as a lower bound merits further investigation. It is hoped that a good lower bound would result in more effective curtailment of the search. Another possibility for improvement in the procedure is the use of cancellation or backup tests that are not contingent upon the status of the various free plant sets. The solution procedure can also be extended to han-
6. Yaglz
dle configuration constraints that are upper and lower limits on the number of plants that must be open in the optimal solution. Since configuration constraints are often present in actual practice, the addition of these constraints would bring the formulation and solution of the capacitated plant location problem one step closer to the real-world situation.
References 1
2
3
4
5
6 7
8
9 10
II 12 13
14
15
Sa, G. Branch and bound and approximate solutions to the capacitated plant location problem. Oper. Res. 1969, 17, 1005-1016 Davis, P. S. and Ray, T. L. A branch-bound algorithm for the capacitated facilities location problem. Nuvrrl Res. Logist. 1969. 16, 33 I-343 Akinc, U. and Khumawala, B. An efficient branch and bound algorithm for the capacitated warehouse location problem. Management Sci. 1977, 23, 585-594 Schrage, L. Implicit representation of variable upper bounds in linear programming. Muth. ProRrumming Stud. 1975, 4, 118-132 Geoffrion, A. M. and McBride, R. Lagrangean relaxation applied to capacitated facility location problems. AlEE Truns. 1978, 10, 40-47 Nauss, R. M. An improved algorithm for the capacitated facility location problem. Oper. Res. 1978. 29, 1195-1202 Guignard, M. and Spielberg, K. A direct dual method for the mixed plant location problem with some side constraints. Math. Programming 1979, 17, 198-228 Christofides, N. and Beasley. J. E. Extensions to a Lagrangean relaxation approach for the capacitated warehouse location problem. European J. Oper. Rrs. 1983, 12, 19-28 Van Roy, T. J. A cross decomposition algorithm for capacitated facility location. Oper. Res. 1986, 34, 145-163 Ellwein. L. B. Fixed charge location allocation problems with capacity and configuration constraints. Tech. Rept. No. 70-2, Dept. Industrial Engrg., Stanford Univ.. Aug. 1970 Spielberg, K. AIgot%ms for the simple plant-location problem with some side conditions. Oper. Rrs. 1969, 17, 85-l I1 Spielberg, K. Plant location with generalized search origin. Management Sci. 1969, 16, 165-178 Spielberg, K. On solving plant location problems. Applicution of Mathematical Programming Techniques, ed. E. M. L. Beale. The English Universities Press Ltd.. London, 1970, pp. 216-233 Khumawala, B. M. An efficient heuristic procedure for the capacitated warehouse location problem. Nuvrrl Res. Logist. 1974, 21, 609-623 Khumawala, B. M. An efficient heuristic procedure for the uncapacitated warehouse location problem. Noral Reseurch
Logist. 16 17
Appl.
1973, 20, 109-121
Kuehn, A. A. and Hamburger, M. J. A heuristic program for locating warehouses. Management Sci. 1963. 9, 643-666 Balas, E. An additive algorithm for solving linear programs with zero-one variables. Oper. Res. 1965, 13, 517-546
Math.
Modelling,
1991,
Vol.
15, March
125