Using the Shannon/Ignizio heuristic to solve a partial cover problem
Using the Shannon/Ignizio heuristic to solve a partial cover problem
Consider a facility location problem involving five customers and four potential sites for locating, at most, three facilities. The distances between customer locations and potential sites are given as follows:
Site | ||||
Customer | 1 | 2 | 3 | 4 |
1 | 1 | 9 | 17 | 24 |
2 | 10 | 2 | 8 | 15 |
3 | 16 | 8 | 2 | 11 |
4 | 20 | 12 | 4 | 5 |
5 | 24 | 16 | 10 | 1 |
The number of trips made monthly between facility j and customer i equals 75,171,153, 137 , and 805 for i=1, \ldots, 5, respectively. The objective is to assign facilities and customers to sites in order to minimize the total distance traveled in a month. Multiplying the distances and frequencies yields the following matrix of a_{i j} values for the partial cover problem:
Site | ||||
Customer | 1 | 2 | 3 | 4 |
1 | 75 | 675 | 1,275 | 1,800 |
2 | 1,710 | 342 | 1,368 | 2,565 |
3 | 2,448 | 1,224 | 306 | 1,683 |
4 | 2,740 | 1,644 | 548 | 685 |
5 | 19,320 | 12,880 | 8,050 | 805 |
The Shannon/Ignizio heuristic algorithm is as follows:
Table 10.5 Step 1 Calculations for Example 10.15 | ||||||
j | a_{i j} | |||||
i | 1 | 2 | 3 | 4 | a^{*} | |
1 | 75 | 675 | 1,275 | 1,800 | 1,800 | |
2 | 1,710 | 342 | 1,368 | 2,565 | 2,565 | |
3 | 2,448 | 1,224 | 306 | 1,683 | 1,683 | |
4 | 2,740 | 1,644 | 548 | 685 | 685 | |
5 | 19,320 | 12,880 | 8,050 | 805 | 805 | |
c_{j} | 26,293 | 16,765 | 11,547 | \frac{7,538}{min} | \theta \left(x\right) =\left\{4\right\} |
Table 10.6 Step 2 Calculations for Example 10.15 | |||||
j | a_{i j} | ||||
i | 1 | 2 | 3 | a^{*} | |
1 | 75 | 675 | 1,275 | 1,800 | |
2 | 1,710 | 342 | 1,368 | 2,565 | |
3 | 2,448 | 1,224 | 306 | 1,683 | |
4 | 2,740 | 1,644 | 548 | 685 | |
5 | 19,320 | 12,880 | 8,050 | 805 | |
DTC_{j} | 2,580 | \frac{3,807}{max} | 3,236 | \theta \left(x\right) =\left\{4,2\right\} |
Where \boldsymbol{a}^{*}=\left(a^{*}{ }_{i}\right) . If all D T C_{j}=0, go to step 4 ; otherwise, let t correspond to index j having maximum D T C_{j}. Set x_{t}=1, place t in the next position in \theta(x), and go to step 3 (see Table 10.6).
Table 10.7 Step 3 Calculations, Followed by Step 2 Repeated, for Example 10.15 | ||||
j | a_{i j} | |||
i | 1 | 3 | a^{*} | |
1 | 75 | 1,275 | 675 | |
2 | 1,710 | 1,368 | 342 | |
3 | 2,448 | 306 | 1,224 | |
4 | 2,740 | 548 | 685 | |
5 | 19,320 | 8,050 | 805 | |
DTC_{j} | 600 | \frac{1,055}{max} | \theta \left(x\right) =\left\{4,2,3\right\} |
Table 10.8 Step 5 Calculations for Example 10.15 | |||||
t | a_{i t} | ||||
i | 4 | 2 | 3 | a^{*} | |
1 | 1,800 | 675 | 1,275 | 675 | |
2 | 2,565 | 342 | 1,368 | 342 | |
3 | 1,683 | 1,224 | 306 | 306 | |
4 | 685 | 1,644 | 548 | 548 | |
5 | 805 | 12,880 | 8,050 | 805 | |
\Delta TC_{t} | 7,245 | 1,626 | \frac{1,055}{min} | ||
\min \Delta T C_{t}=\Delta T C_{t} ; b=k ; \text { go to step } 7 |
If \min \Delta T C_{t}=\Delta T C_{j_{k}}, go to step 6 ; otherwise, remove from R the \boldsymbol{a}_{t} having min \Delta T C_{t}, remove t from \theta(x), set x_{\mathrm{t}}=0, set a_{t}^{*}=\min _{t \in \theta(x)} a_{i t}, and go to step 2 (see Table 10.8).
Assign customer i to a facility at site t for those i and t corresponding to each min a_{i t} (see Table 10.9).
For the example, facilities are to be assigned to sites 2,3, and 4 ; customers 1 and 2 will be served by a facility at site 2 , customers 3 and 4 will be served by a facility at site 3 , and customer 5 will be served by a facility at site 4 .
Now, let’s use the \text { Excel }^{\circledR} SOLVER tool for this example. Figure 10.25 a depicts the setup of the partial cover problem for a SOLVER solution.
Because of the presence of the number 999,999 , an explanation of the entries in column F, rows 3 through 7 is in order. The entry in cell F 7 is shown. Notice, it consists of a MIN worksheet function, within which are embedded four IF worksheet functions. The IF function plays the same role as \theta(x) in the Shannon/Ignizio heuristic algorithm; namely, only those sites at which a facility has been located are included in the MIN function. The MIN function ensures that a customer is assigned to the closest facility; it contains the minimum a_{i j}
Table 10.9 Step 7 (Final Solution) for Example 10.15 | ||||
t | a_{i t} | |||
i | 4 | 2 | 3 | |
1 | 1,800 | \fbox{675} | 1,275 | |
2 | 2,565 | \fbox{342} | 1,368 | |
3 | 1,683 | 1,224 | \fbox{306} | |
4 | 685 | 1,644 | \fbox{548} | |
5 | \fbox{805} | 12,880 | 8,050 | |
\min \Delta T C_{t}=\Delta T C_{t} ; b=k ; \text { go to step } 7 |
value for each customer i. Since we do not want to assign a customer to a site at which no facility has been located, if the entry in row 8 for a particular site is 0, then a very large number is entered in the MIN function for that particular site; otherwise, the a_{i j} value is entered. Since we initialize the SOLVER search by assigning values of 0 for all x_{j} values, all entries in \boldsymbol{a}^{*}, the vector of weighted distances from customers to the nearest facility, have the value 999999. Column G contains the assignment of customers to sites; the entries consist of a number of embedded IF functions which compare the a_{i j} values to the entry in \boldsymbol{a}^{*} ; if a match occurs, the site number is entered; otherwise, the empty vector designation (\phi) is entered.
The target cell (F8) contains the sum of the entries in \boldsymbol{a}^{*}. The limitation on the number of new facilities, three for the example, is compared with the entry in B9, which is the sum of the decision variables. The SOLVER parameter box is shown in Figure 10.25 b.
The two constraints shown in the SOLVER box include a requirement that the decision variables be binary and a requirement that the number of facilities located at sites not exceed the capacity limit (three). As shown in Figure 10.25 c, the optimum locations for new facilities are sites 2,3, and 4 . (If a capacity limit of one is imposed, then the optimum location is site 4 ; if a capacity limit of two is imposed, then the optimum locations are sites 2 and 4-the same sequence of selections obtained using the Shannon/Ignizio heuristic algorithm.)