6.5.7 Set-Covering Problems
Another subproblem that often arises in connection with solving
requirements problems is known as the set-covering problem. It can be
described as follows.
Consider a set Yn = {y1, y2, . . .,
yn} of n points on a network G (for instance, Yn
could be the set of demand-generating nodes on G) and another set
Xm = {x1, x2, . . ., xn} of
m points on G which are candidates for the location of a set of facilities
(some of the points in Xm may coincide with points in
Yn). Let us now assume that an unambiguous threshold of
performance (e.g., a maximum distance ) has been specified
so that any
location xj Xmm
can be viewed as either satisfying
or falling short of achieving that level of performance with respect to any
point y1 Yn. Then
we say that a point xj
Xm "covers" ("does not cover") a point yi
Ynif the point xj satisfies (does not satisfy) the
threshold of performance with respect to point yi. For instance,
when the threshold of performance is a maximum distance , then
xj covers yj if d(xj, yi,)
and does not cover it if d(xj, yi) > . The
similarity with the concepts of coverage in Section 3.6 is obvious.
The set-covering problem then consists of finding the minimum number,
say k*, of points from the set Xm such that all
points in Yn are covered.
Example 19: Sef-Covering Problem
Consider seven urban locations A through G and five distinct points V
through Z in the same urban area. All 12 points lie on an urban road network.
We shall call the points A through G the "demand set" of this problem and
points Vthrough Z the "facilities set." We wish to find the smallest number
of points in the facilities set needed to cover the demand set of points if
it is specified that each point in the demand set must be within 20 minutes
of travel distance from a point in the facilities set. The 5 x 7 matrix of
minimum distances (in minutes) on the network is given in Table 6-11.
The minimum distance matrix [d(i, j)] can immediately be translated into
the coverage matrix, tC(i, j)], by setting each matrix element c(i, j) to
The coverage matrix for our problem is shown in Table 6-12. Potential
facility point W. for example, can cover demand points C, D, and G.
The set-covering problem (SCP) can now be stated simply as follows.
Reduce the coverage matrix [c(i, j)] to the minimum number of rows required
so that each column in the reduced matrix has at least a single element
equal to 1. The problem in this form can be readily formulated as an integer
programming 0-1 problem, and indeed the best-known approaches to it
[GARF 72, TORE 71] begin with such a formulation and develop general
algorithms for the solution of SCP's.
Here we shall not describe these general algorithms. We shall outline
instead a very simple matrix-reduction algorithm which may be used to reduce
the computational size of SCP's. In many cases, especially those involving
facility location problems on urban or rural roadway networks, this
matrix-reduction algorithm simplifies SCP's so much that a solution can
e obtained by inspection upon completion of the reduction process.
Matrix Reduction for Set Covering (Algorithm 6.14)
STEP: | 1
| (Feasibility Check): If there is at least one column in the
coverage matrix that consists entirely of zeroes, stop. No feasible
solution exists (i.e., the performance standards for coverage must be relaxed
or more points must be added to the facilities set).
| STEP: | 2
| If any columns have only one nonzero element, say in
row i*, then the point corresponding to row i* must
receive a facility. Include that point in the list of those that must
receive a facility and eliminate row i* and all columns having
a 1 in row i* from the matrix.
| STEP: | 3 | If
any row(s) i" is such that all its entries are less than or equal to the
corresponding entries of another row i' [i.e., if c(i", j) c(i',j) for
all j], then eliminate row i".
| STEP: | 4
| If any column(s) j" is such that all its entries are
greater than or equal to the corresponding entries of another column j'
[i.e., if c(i,j") c(i,j') for all i], then eliminate column j".
| STEP: | 5
| Repeat Steps 2-4 until either (a) the coverage matrix
becomes completely empty or (b) no columns or rows are eliminated during a
complete pass through Steps 2-4. In case (a), a complete solution (minimum
number of facilities and their locations) has been obtained on termination.
In case (b), a solution may be obtainable by inspection on termination, or
application of a more sophisticated SCP algorithm to the reduced matrix may
be necessary.
|
The rationale for each one of Steps 1-5 is rather obvious. The following
example may also be helpful in understanding Algorithm 6.14.
Example l9(continued)
Let us apply Algorithm 6.14 to the set-covering problem already described.
The initial coverage matrix [c(i, j)] is given in Table 6-12. By inspection
we can determine that a feasible solution does exist, since all columns of
[c(i,j)] contain at least a single nonzero entry (Step 1).
In Step 2, we find that column F has only one nonzero element at row X.
It follows that a facility must be located at X to serve, at the
least, demand point F. We eliminate from the coverage matrix row X and
columns A, D, and F [since c(X, A) = c(X, D) = c(X, F) = 1] and obtain the
reduced matrix shown in Table 6-13a.
At Step 3, rows W and Z are eliminated (Table 6-13b). All entries of row
W are less than or equal to the corresponding entries of row Y. and
therefore all points covered by a facility at W are also covered by a
facility at Y. The same is true with respect to rows Z and V, respectively.
Next, at Step 4, columns B and C are eliminated since their entries are all
greater than or equal to the corresponding entries of column E (or, for that
matter, G)--hence any facility location that covers demand point Ewill also
cover demand points B and C. The reduced matrix on completion of Step 4 is
shown in Table 6-13c. Finally, on return to Step 2, facilities must be
located at both points Band Y. and the algorithm terminates since upon
elimination of these two rows, the coverage matrix is empty.
Thus, the minimum set of locations consists of points V, X, and Y. We
may now, if we wish, return to the original minimum distance matrix
[d(i, j)] (see Table 6-11) and assign each demand point to its nearest
facility. This would assure, in addition to coverage within less than 20
minutes, minimization of average travel distance, as well. In this way,
we assign demands from A and E to V, from D and F to X, and from B. C, and
G to Y.
|