8
EFFICIENT HEURISTIC ALGORITHMS FOR THE WEIGHTED SET COVERING PROBLEM EDWARD K. BAKER: Department of Management Science, University of Miami, Coral Gables. FL 33131. U.S.A. Scope and Purpose-This paper is concerned with the efficient solution of large set covering problems. The set covering problem is based upon a set theoretic model that involves a selection from among known subsets of a known set of elements. The selection of subsets must be such that each element of the set is included, or covered. An optimal solution is one which minimizes the sum of the weights assigned to each of the selected subsets. The set covering model has many applications. It is used world-wide as the base for airline crew scheduling, a problem of great economic importance and the motivation of this research. Other ap- plications, as noted in a recent survey by Balas and Padberg[Sj. include truck delivery. stock cutting, facility location, capital investment, information retrieval, marketing, and political districting. Unfortunately, optimal solutions to large set covering models are difficult to obtain. Rarp[lZ] has shown the set covering problem to be NP-hard. To date, no algorithm has been discovered that will find an optimal covering solution in polynomial time. As a result, the optimal solution of large set covering models, e.g. determining optimal crew schedules for 1000 aircraft flights, would require several hours of computation time. In many dynamic, operational environments this may not be tolerable. The purpose of this paper is to present efficient heuristic algorithms for the set covering model. The algorithms are simple, polynomially bounded procedures that may be used to construct and improve covering solutions. Computational results are provided which demonstrate the ability of the algorithms to produce near optimal and operational quality results for very large airline crew scheduling problems. The algorithms are presented in such a form, however, as to be applicable to a general set covering model. Abstract-In this paper two heuristic algorithms are presented for the weighted set covering problem. The first algorithm uses a simple, polynomial procedure to construct feasible covering solutions. The procedure is shown to possess a worst case performance bound that is a function of the size of the problem. The second algorithm is a solution improvement procedure that attempts to form reduced cost composite solutions from available feasible covering solutions. Computational results are presented for both al- gorithms on several large set covering problems generated from airline crew scheduling data. I. INTRODUCTION The set covering problem obtains its name from the following set theoretic model. Consider a set of elements F = {I, 2,3,. . . , m} and a set P = {P,, Pz, PJ,. . . , P,} where Pj is a subset of the set F. A subset of the set P, say P*, is defined to be a cover of the set F if the union of the subsets Pi contained in P* is equal to the set F. Let J* be the index set of P*, then P* = U Pi = F. The set covering problem is to determine the cover of the set F which requires jEJ' the fewest elements from P. Mathematically, the set covering problem may be written as minimize 2 xi j=l S.t. 2 Oi$j 2 I i=1,2,3,...m j=l where Xj = I if Pj is part of the cover = 0 otherwise clij = 1 if element i from F is also an element of Pi = 0 otherwise. tEdward Baker is an Assistant Professor of Management Science in the School of Business Administration at the University of Miami. He received B.E.S. and M.S. degrees from Johns Hopkins University and a DBA from the University of Maryland. His research interests include integer programming. networks, and applications of operations research to problems in transportation and finance. 303

Efficient heuristic algorithms for the weighted set covering problem

Embed Size (px)

Citation preview

Page 1: Efficient heuristic algorithms for the weighted set covering problem

EFFICIENT HEURISTIC ALGORITHMS FOR THE WEIGHTED SET COVERING PROBLEM

EDWARD K. BAKER:

Department of Management Science, University of Miami, Coral Gables. FL 33131. U.S.A.

Scope and Purpose-This paper is concerned with the efficient solution of large set covering problems. The set covering problem is based upon a set theoretic model that involves a selection from among known subsets of a known set of elements. The selection of subsets must be such that each element of the set is included, or covered. An optimal solution is one which minimizes the sum of the weights assigned to each

of the selected subsets. The set covering model has many applications. It is used world-wide as the base for airline crew

scheduling, a problem of great economic importance and the motivation of this research. Other ap- plications, as noted in a recent survey by Balas and Padberg[Sj. include truck delivery. stock cutting, facility location, capital investment, information retrieval, marketing, and political districting.

Unfortunately, optimal solutions to large set covering models are difficult to obtain. Rarp[lZ] has shown the set covering problem to be NP-hard. To date, no algorithm has been discovered that will find an optimal covering solution in polynomial time. As a result, the optimal solution of large set covering models, e.g. determining optimal crew schedules for 1000 aircraft flights, would require several hours of computation time. In many dynamic, operational environments this may not be tolerable.

The purpose of this paper is to present efficient heuristic algorithms for the set covering model. The algorithms are simple, polynomially bounded procedures that may be used to construct and improve covering solutions. Computational results are provided which demonstrate the ability of the algorithms to produce near optimal and operational quality results for very large airline crew scheduling problems. The algorithms are presented in such a form, however, as to be applicable to a general set covering model.

Abstract-In this paper two heuristic algorithms are presented for the weighted set covering problem. The first algorithm uses a simple, polynomial procedure to construct feasible covering solutions. The procedure is shown to possess a worst case performance bound that is a function of the size of the problem. The second algorithm is a solution improvement procedure that attempts to form reduced cost composite solutions from available feasible covering solutions. Computational results are presented for both al- gorithms on several large set covering problems generated from airline crew scheduling data.

I. INTRODUCTION

The set covering problem obtains its name from the following set theoretic model. Consider a set of elements F = {I, 2,3,. . . , m} and a set P = {P,, Pz, PJ,. . . , P,} where Pj is a subset of the set F. A subset of the set P, say P*, is defined to be a cover of the set F if the union of the subsets Pi contained in P* is equal to the set F. Let J* be the index set of P*, then P* = U Pi = F. The set covering problem is to determine the cover of the set F which requires

jEJ'

the fewest elements from P. Mathematically, the set covering problem may be written as

minimize 2 xi j=l

S.t. 2 Oi$j 2 I i=1,2,3,...m j=l

where

Xj = I if Pj is part of the cover

= 0 otherwise

clij = 1 if element i from F is also an element of Pi

= 0 otherwise.

tEdward Baker is an Assistant Professor of Management Science in the School of Business Administration at the University of Miami. He received B.E.S. and M.S. degrees from Johns Hopkins University and a DBA from the University of Maryland. His research interests include integer programming. networks, and applications of operations research to problems in transportation and finance.

303

Page 2: Efficient heuristic algorithms for the weighted set covering problem

3.M E. K. BAKER

If each subset Pi is assigned a non-negative cost, c,, then the selection of the minimum cost cover is termed the weighted set covering problem. If the constraint inequalities are strcngth- ened to equalities, the problem is then termed the set partitioning problem.

The set covering model and the related set partitioning model have enjoyed wide ap- plication. The models have been applied to such diverse areas as vehicle routing. political districting, information storage and retrieval. and crew scheduling. An applications bibliography for these models may be found in the survey article of Balas and Padberg[S].

Unfortunately, the set covering problem is not easy to solve. KarpflZ] has shown the set covering problem to be NP-hard. This implies that it is very unlikely that the problem may be solved optimally by an algorithm which requires a number of steps bounded by a polynomial function of the size of the problem. Algorithms which have been designed to solve the set covering probIem, or the related partitioning problem, typically rely on branch and bound. implicit enumeration, or other integer pro~amming procedures. Many such procedures require solutions to the linear programming relaxation of the set covering problem to provide initial bounding information. A survey of exact solution procedures may be found in Garfinkel and Nemhauser[8] or Balas and Padberg[S]. Recent computational experience with exact algorithms may be found in Balas and Ho[4], Gerbracht[9] and in Marsten and Shepardson[ 161.

In this paper, the computational effectiveness of heuristic algorithms for the weighted set covering problem is examined. The motivation for this investigation is the airline crew scheduling problem. In the airline crew scheduling problem, a flight crew must be assigned to each aircraft flight segment operated by the airline. If we let the aircraft flight segments form the elements of the set F, then we may let each feasible crew schedule define a subset Pb Given a cost, ci, associated with each feasible crew schedule, the minimum cost airline crew schedule may be obtained by solving the weighted set covering problem. Further details of this formulation may be found in Arabeyre et a/.[ I].

The use of heuristics to solve the set covering model associated with the airline crew scheduling problem is motivated by several factors. First, the problem is often of a size which may be described as massive. For major airlines, a problem with 3,000 aircraft flight segments and 15,000 feasible crew schedules would not be unusual. The solution of set covering models of this size by optimal integer programming algorithms would require an excessive amount of computation time. Second, since each crew schedule generally includes several aircraft flight segments and since each flight segment requires only one crew, the solutions to airline crew scheduling problems are usually degenerate. The presence of severe primal and dual degeneracy in airline crew scheduling problems inhibits the efIicient progress of simplex based codes toward both feasible and, once feasible, optimal sotutions. Finally, the use of minimum pay guarantees for crew compensation throughout the airline industry causes many different crew schedules to have the same, or approximately the same, total cost. The presence of many alternative optimal, or near-optimal, solutions suggests that an efficient heuristic procedure may produce operational quality results in a reasonable amount of computation time.

2.A HEURISTIC ALGORITHM FOR WEIGHTED SETCOVERISG

In this section a heuristic algorithm is presented for the weighted set covering problem. The algorithm presented here is an extension of the work of Johnson[ll] who presents heuristic algorithms for the set covering (all cotumn weights cj = 1) problem and the exact covering (partitioning) problem. Johnson’s work is extended here to include the objective function cosf coefficient, cj, in the augmenting column selection process. The heuristic algorithm for the weighted set covering problem, henceforth termed Algorithm A, is a simple approximation procedure that requires a number of computations bounded by a polynomial function of the problem size. In addition, the algorithm is shown to possess a worst case performance bound that is a function of the number of rows in the set covering model.

Algorithm A attempts to ;Ind a near-optimal solution to the weighted set covering problem by starting with the empty set as an initial solution and successively adding to the solution the subset Pi of P (column of the model) which covers previously uncovered elements of F (rows of the model) at a minimum average cost per new cover. The process continues until all elements of F are covered by the solution set P”.

Page 3: Efficient heuristic algorithms for the weighted set covering problem

Aigo~ir~m A

Efficient heuristic algorithms for the weighted set covering problem 305

Step 1. Initialize: The solution set is empty. No rows are covered, Step 2. Select an Augmenting Column: Choose the column that has the minimum average

cost per uncovered row. Call this column j’. Step 3. Update the Solution: Add column j* to the solution. Update row coverage. If all

rows are covered, STOP. Otherwise, GO TO STEP 2. The present implementation of Algorithm A requires at most O(m’N) calculations. Theorem 1. For m 2 I and N > 0, the ratio of the solution produced by algorithm A, SOLN

A, to the optimal solution to the weighted set covering problem, OPT. is less than or equal to

? (l/K) which is less than or equal to In (ml+ I. K=l

That is.

(SOLNAiOPT)~~~,(l/K)~In(m)+ 1.

Proof. In the proof we first show that the bound is approachable and in the process also show that the bound cannot be exceeded. Consider a weighted set covering problem in which the optimal solution is a single subset, PoPT, with cost C oPTI and average cost per element C,,,fm. At each iteration, Algorithm A searches all subsets to determine the minimum cost per uncovered element. In order to approach a worst case bound we wish to cover as few new elements as possible at each step, i.e. one new element at each iteration, at as large a cost as possible.

Suppose we arbitrarily order the elements in F, element 1 through element m. At iteration 1 we wish to cover only element 1 at as large a cost as possible. Since at this time no elements are covered the largest cost which can be assigned to cover element 1 so that Algorithm A selects this cover rather than the optimal cover is something less than (C&/m), say (C&m) - E. At iteration2 we wish to cover only element 2, however, this cover may cost just less than( C,,,/m - I), say (C,,,,/m - I) - E. Hence at iteration k (k = I, 2,. . , . m) the maximum cost value which may be selected by Algorithm A over the optimal cover is (CopT/m - k t I) - e. The total cost of the worst case solution is then the sum over all m elements.

which as E -+O equals Co,, 2 (l/K). Hence, E=l

SOLN A 5 CopT 2 4 K=l

or

SOLNA m 1 --‘z,, OPT

From classical calculus we find

Chvatal[6] notes that the above worst case bound can be improved to

SOLNA D 1 OPTI =,X &

Q.E.D.

where I) is the largest number of elements of F included in any subset Pk In airline crew scheduling. D is typically much less than m. For the test problems to be considered here, a

CAOR Voi R. No. LE

Page 4: Efficient heuristic algorithms for the weighted set covering problem

306 E. K. BIKER

typical vatue of I> would be 6. Hence, even for air crew scheduling problems with several thousand rows, the set covering heuristic should prove an effective solution procedure.

The heuristic Algorithm A described above was tested on several weighted set covering problems generated from airline crew scheduling data supplied by the Federal Express Corporation of Memphis, Tennessee. Each problem was solved ten times using the heuristic algorithm. The best solution value and the total processor time of the ten trials were recorded. In addition, each problem was solved to its continuous optimum using the dual simplex feature available on the Burroughs TEMPO math programming system. (The dual simplex was used to circumvent the primal degeneracy typically found in airline crew scheduling problems and because it is the lirst step in the exact solution algorithm proposed by Marsten[i4], and others.) The first six problems considered, I-l-I-6, had an integer dual simplex terminations The last three problems, F-l-F-3, had a fractional dual simplex termination. The results of these tests are reported in Table I.

Additional computational results of a recent implementation of the weighted set covering heuristic on an IBM 3033 mainframe are presented in Table 2. The six problems in Table 2 are results obtained from an operational crew scheduling system at the Federal Express Cor- poration. In the operational model, the weighted set covering heuristic is used to obtain two candidate solutions. These two solutions are then merged by the solution improvement technique discussed in the next section to form a single crew schedule. Although results of a simplex based algorithm are unavailable for comparison, the weighted set covering heuristic is shown to produce remarkably consistent resutts for these very large problems. The processor times shown in Table 2 are in minutes and seconds on an IBM 3033 mainframe and are totaf times required for two heuristic sotutions, The IBM 3033 is approximately seven times faster than the Burroughs 6700 for the particular FORTRAN coding of this algorithm.

Table I. Comparison of computational results of dual simplex and weighted set covering heuristic algorithms

PMbh &a-s colums

I-l 36 506

I-2 180 4,534

I-3 200 3,208

1-3 335 5,290

I-5 376 1,245

I-6 425 2,iao

F-l rao 2,275

F-2 130 3,431

F-3 376 ;,a02

Lual Simplex Prooevnr

;01ution Value Iterations Tin&z (lni.ns.

4,424 31 .44

27,803 1,229 24.51

30,110 1,317 26.54

48,089 1,856 99.23

74,679 228 2.82

35,974 311 6.89

28,759.S 231 6.90

27.936.35 565 25.58

72,935.14 1,667 78.40

I DcvLttin Eauri*tic Rlxxssx of wurlmtic

iolution Vduc Tine frni.ns.) Rm Simplex

4,424 .53 0

28,564 5.34 2..7

32,095 6.36 6.5

51,344 8.76 6.7

74,679 2.15 0

36,550 5.60 1.6

29.876 4.85 3.8

33,217 6.30 18.8

81,979 8.42 12.4

Table 2. Computational results of the weighted set covering heuristic on an IBbf 3033 mainframe

Problem Rows Columns

P-l 4lfll 4. m,

P-2 648 1,607

P-3 1.450 7.789

P-h 1.512 5.204

P-5 2.575 29.057

P-6 J,lbi 15,410

Objective

ll,Mi 72,541

Y6.413 97.510

220,404

219,725

221.886 221.8M6

415.030 4 J5.041

~71,920

378.566

l’rocessor

The

:06

:03

:21

:15

2:OL

l:L3

Page 5: Efficient heuristic algorithms for the weighted set covering problem

Efficient heuristic algorithms for the weighted set covering problem

3. SOLUTION MERGING

307

Once several heuristic solutions have been obtained for a set covering, or set partitioning problem, it may be possible to merge two or more solutions into a reduced cost composite solution. The solution merging algorithm presented here considers two candidate solutions at a time. From the two candidate solutions, the algorithm identifies sets of columns (subsets Pi) that cover mutually exclusive subsets of the rows (elements in F). When all of the columns have been assigned to a set, the costs of the corresponding sets of each solution are compared and the lowest cost subsets are used to form the composite solution.

In a more formal statement of the algorithm, consider two candidate solutions P’ = {P,,, P,?, . . P,,} and P’ = {P:,, Plz,. . . P?,}. Let Ri = { row indices covered by column sets i} and K/ = {columns from solution j that include rows of Ri}. Let Zii be the cost of all columns in K},‘. The solution merging algorithm may then be stated as:

Step I. (Initialize) All columns are unassigned. i = 0 all Ri = r#~ and Zii = 0. Step 2. (Identify a new row set) Find a column from solution 1 such that

Pli n Ri = c#~ for all row sets i

call this column j*, let i = i+ 1 then

Ri = {i/icP,i.}

Ki’ = { Plj*}

Zi, = C,j*.

If no such column j* exists GO TO STEP 6. Step 3. (Augment row set i from solution 2) Find all columns from solution 2 such that

call this column j*, then

Ri = Ri U {i/i E Pzp}

K; = K; U {P2,.}

Zi:2 = Zit + Czj*.

Step 4. (Augment row set i from solution 1) Find all columns from solution 1 such that

call this column j*, then

Ri = R; U {i/i E Plj.}

K/ = Ki’ U {PI,*}

Zi, = Zi, + Cij.

Step 5. (Iterate) Repeat STEPS 3 & 4 until neither step yields an augmenting column for row set i, Then GO TO STEP 2.

Step 6. (Output the solution) Let TOTAL COST = 0 and SOLN = 4. For each row set i compare the column set costs Zi, and Ziz. If Zi, _ < ZizT then TOTAL COST = TOTAL COST + Zi, and SOLN = SOLN U {Ki}.

If Zi, < Zi,, then TOTAL COST = TOTAL COST + Zi, and SOLN = SOLN U {Kf}

Example. Consider the following two solutions for a set convering, or set partitioning, problem:

Page 6: Efficient heuristic algorithms for the weighted set covering problem

3x3 E. K. BARER

Solution 1 Solution 2

Roct’ d I 2 3 I 7 3

I Sj8 I 0 0 Row 1 a I 0 5 0 5

Row 2 0 1 0 Row 2 I 0 0 Row 3 0 0 1 Row 3 0 1 0 Row 4 0 0 1 Row 4 0 0 1

Applying the solution merging algorithm yields the following row sets: R, = (I, 2). RI =

and their respective costs: Z,, = IO, .Z,? = 8, Z, = 8 and Zzz = 10. Combining the lower cost column

sets yields a composite solution X1’ il KI’ = with a total cost equal to 16.

Given an original set covering problem with nr rows and n columns, all irredundant covering solutions will have at most m rows and m columns. The pairwise comparison of any heuristically generated solutions has computational complexity of 0(m2).

The worst case performance of the solution merging algorithm differs for set covering and set partitioning applications. When applied to set partitioning applications, the solution merging procedure solves the two candidate solution partitioning problem optimally. This is easily seen since the combined set partitioning problem formed by two partitioning solutions will have exactly two nonzero entries in each row. The dual of this problem may be interpreted as a maximum flow problem. The minimal cut set in this maximum flow network corresponds to the minimum cost partition. The solution merging algorithm exploits the mutually exclusive property of the arcs forming the cut sets and finds the minimal cut set by a direct cost comparison.

When set covering solutions are to be merged, however, each row in the combined set covering problem may be covered more than twice. In this case, the problem lacks a simple network interpretation. In addition, the over covering of rows increases the possibility of overlap in defining the column sets and may cause obvious composite solutions to be overlooked by the solution merging algorithm.

Computational experience with the solution merging algorithm has shown the method to be effective for both set partitioning and set covering applications. Hinson and Mulherkar[lO] have applied the algorithm to several large traveling salesman problems. Baker et a/.[31 found similar results for set partitioning solutions associated with airline crew scheduhng problems.

The implementation of the merging algorithm for these airline crew scheduling problems was made using the original code of Hinson and ~~ulherkar[lO]. In this version of the aIgor~thm each initial solution is compared to, merged with, the incumbent best composite solution. TO

initialize the procedure, the first initial solution is chosen as the incumbent. The pairwise merging of initial solutions is repeated until none of the solutions produces an improvement when merged with the incumbent solution. At this point the incumbent is output as the final result. It is noted that this particular implementation of the procedure, although efficient, allows the final result of the merging to become a function of the order of presentation of the initial solutions.

The computational results presented in Table 3 fall into three distinct classes. The first group. problems PI-P5, are set partitioning solutions to a large airline crew scheduling problem. These sohttions have been constructed by various set partitioning heuristics described in[3] and improved by an extended 2-OPT procedure. As a result, the improvement produced by the merging algorithm is modest. The processor times reported are in minutes and seconds

Page 7: Efficient heuristic algorithms for the weighted set covering problem

Efficient heuristic algorithms for the weighted set covering problem

Table 3. ~ompu~tio~l results for the solution merging technique

309

r q ber

?l

?2

PI

P4

PS

964

964

96b

964

964

Init 1 S41ufion+

aber umrgu

12 109,753-103,482

12 108,745-102.876

12 112,980-104.862

12 102,952- 99,245

12 103,745-101,064

103.162 .I1 I:281

102,186 .(r7 2~47

lflL.lOh .7I 2~29

99.245 .oo 1:3i

lOl,O!U .OS i:53

426 20 38,377- 37,037 36,892 .3?

426 20 37.968- 36.511 36,Sl I .oo

1.90 20 34,959- 27.404 27.404 .oo

335 20 52.217- 50.927 50.767 .31

3267 4 409,320-377,928 356.179 6.10

648 6 9?.530- 93.133 92.425 .7h

2575 2 435,041-435,030 421.711 3.15

1450 2 219.72%220,484 216,OIiIr 2.07

I

i

6:&L

I:21

1:41

3:3?

i:Ih’

:06

:2h

: 10

1 - minutes and seconds on a Burrouphs 6700

2 - minutes and seconds on an IRH 3013

on a Burroughs 6700 mainframe. The second group of problems, Cl-C4, are set covering solutions to somewhat smaller air crew scheduling problems. These solutions were produced using the greedy set covering heuristic described earlier as Algorithm A. These solutions were also improved by an extended 2-OPT procedure and again the merging improvements were very small. The processor time for these problems is reported in minutes and seconds on a Burroughs 6700. The final set of problems, C5-C8, are set covering solutions to some very large airline crew scheduling problems. The special structure of problems C5 and C6 allowed two initial solutions to be generated using the set partitioning heuristic of problems PI-95 as well as two initial solutions obtained from the set covering heuristic. For the largest problem, CS, each column in a solution covered approximately five rows, hence each solution contained approximately 600 columns. In this case, the merging algorithm was particularly effective yielding a 6.1% improvement. The processor time for this, and all problems in the final group is reported in minutes and seconds on an IBM 3033 mainframe. The more general structure of problems C7 and C8 only allowed solutions using the set covering heuristic. The solutions were not improved by an extended 2-OPT procedure. Improvements of 3.15 and 2.07% were obtained in 24 and 10 seconds respectively on an IBM 3033 mainframe.

Ac~~ow~e~gemenrs-l would like to thank Prof. Lawrence D. 3odin for his guidance in the completion of this work and Prof. Bruce L. Golden for his helpful comments and suggestions.

I would also like lo acknowledge several people at the Federal Express Corporation of Memphis. Tennessee who participated in this project. 1 would like to thank Dr. Ron Ponder and William Finnegan for their support of this work. I would also like to thank Joe Hinson for bringing to my attention the possibility of using the solution merging algorithm and Kelly Frey for providing me with a copy of his initial code. Finally, 1 would like to thank Yichael Fisher for supplying the computational results from the crew scheduling system currently implemented at Federal Express on the IBM 3033 mainframe.

REFERENCES

I. J. P. Arabeyre. J. Fearnley, F. C. Steiger, and W. Teather, The airline crew scheduling problem: a survey. Trunspotiation Sci. 3(t), MO-163 (1969).

2. E. K. Baker. Efficient heuristic solutions to airline crew scheduling problems. Doctoral Dissertation, College of Business and Management, University of Maryland (1979).

Page 8: Efficient heuristic algorithms for the weighted set covering problem

310 E. K. BAKER

3. E. K. Baker, L. D. Bodin. W. F. Finnegan and R. Ponder, Efficient heuristic solutions to an airline crew scheduling problem. AUE Trans. n(2). 7985 (1979).

4. E. Balas and A. Ho, Set covering algorithms using cutting planes, heuristics, and subgradient optimization: a computational study. Mafh. Prog. Sfudy 12, 37-60 (1980).

5. E. Balas and M. W. Padberg, Set partitioning: a survey. SIAM Ret,. lS(4). 710-760 (1976). 6. V. Chvatal, A greedy heuristic for the set-covering problem. Math. Ops. Rex. 4(3), 233-235 (1979). 7. G. Clarke and J. W. Wright. Scheduling of vehicles from a central depot to a number of delivery points, Open Res.

12f4). 568-581 (1964). 8. R. Garhnkei. and G. L. Nemhauser, Optimal set covering: a survey. Perspecticer on Optimization. (Ed. A. M.

Geoffrion), pp. 164-193. Addison-Wesley, Reading, Mass. (1972). 9. R. J. Gerbracht, A new algorithm for very large crew pairing problems. presented at the 18th AGIFORS Symp.

Vancouver, British Columbia, Canada (1978). IO. J. Hinson and S. Mulherkar, Improvements to the Clarke and Wright algorithm as applied to an aircraft scheduling

problem. Presented at the ORS&TMS Joint National Meeting, Miami (November 1976). I I. D. S. Johnson, Approximation algorithms for combinatorial problems. /. Comput. System Sci. 9. 256278 (1974). I?. R. Y. Karp, Reducibility among combinatorial problems. In Complexity of Computer Computations. pp. 85-103, (1972). 13. S. Lin, Computer solutions of the traveling salesman problem. BeI! System Tech. 1. X45-2269 (l%S). 14. Roy E. Marsten, An algorithm for large set partitioning problems. IMgmt. Sci. 20(S). 774-787 (197-t). 15. R. E. Marsten. M. R. Muller and C. L. Killion. Crew planning at flying tiger: a successful aoplication of integer

programming. MIS Technical Report No. 533, University’of Arizona (&t&r-1978). 16. R. E. Marsten, and F. Shepardson. Exact solution of crew scheduling problems using the set partitioning model: recent

successful applications. Networks (to be published) 1981. 17. Jerrold Rubin. A technique for the solution of massive set covering problems, with application to airline crew

scheduling. Transportation Sci. 7(l). 3M (1973).