Question 10.17: Using the Shannon/Ignizio heuristic to solve a partial cover...

Using the Shannon/Ignizio heuristic to solve a partial cover problem

The Blue Check Mark means that this solution has been answered and checked by an expert. This guarantees that the final answer is accurate.
Learn more on how we answer questions.

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:

  1. First site selection. Let the cover matrix \boldsymbol{A} consist of n column vectors \boldsymbol{a}_{1}, \ldots, \boldsymbol{a}_{\boldsymbol{n}}. Calculate c_{j}=\sum_{i=1}^{m} a_{i j} for j=1, \ldots, n. Let t correspond to the site index having minimum c_{j}. Let \boldsymbol{a}^{*}=\boldsymbol{a}_{t}, set x_{t}=1, and place t in the ordered set \theta(x), where \theta(x)=\left\{t: x_{t}=1\right\} . If k=1, go to to step 7 ; otherwise, go to step 2( see Table 10.5 )
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\}
  1. Selection of next site. For each j \notin \theta(x), calculate
D T C_{j}=\sum_{i=1}^{m} \max \left(a^{*}{ }_{i}-a_{i j}, 0\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).

  1. Formation of best combination. Let \boldsymbol{a}^{*}=\left(a^{*}{ }_{i}\right), where, for i=1, \ldots, m, a_{i}^{*}=\min _{t \in \theta(x)} a_{i t}. If \sum_{t \in \theta(x)} x_{t}=2 and k=2, go to step 7 ; if \sum_{t \in \theta(x)} x_{t}=2 and k>2, go to step 2 ; otherwise, go to step 4 (see Table 10.7).
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
  1. Formation of current assignment. Let b=\sum_{t \in \theta(x)} x_{t}. Thus, \theta(x)=\left\{j_{1}, \ldots, j_{b}\right\}. Let R=\left(\boldsymbol{a}_{j_{1}}, \boldsymbol{a}_{j_{2}}, \ldots, \boldsymbol{a}_{j_{b}}\right) . If step 4 is entered directly from step 2, go to step 7 ; otherwise, go to step 5 .
  2. Combination improvement and elimination check. For each column of R, calculate
\Delta T C_{t}=\sum_{i=1}^{m} \underset{p \in \theta(x) \atop p \neq t}{\left(\min  a_{i p}-a_{i}^{*}\right)}

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).

  1. Check. If b=\sum_{t \in \theta(x)} x_{t}=k, go to step 7 ; otherwise, go to step 2 .
  2. Assignment. From matrix R, for each value of i i, find the index t having \min _{t \in \theta(x)} a_{i t}

    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.)

10-17
10-17+
10-17++

Related Answered Questions

A machine shop has 20 automatic machines that have...
A regional aircraft repair and refurbishing facili...
An entrepreneur is building a parking garage in a ...
In designing a new manufacturing plant, questions ...
Recall the example considered for the 1-median pro...
A parts replenishment station is to be located on ...