An Algorithm For Set Covering Problem
An Algorithm For Set Covering Problem
North-Holland
Abstract: In this paper we present an algorithm for the set covering problem that combines problem
reduction tests with dual ascent, subgradient optimisation and linear programming. Computational results
are presented for problems involving up to 400 rows and 4000 columns.
Keywords: Set covering, optimisation
1. Introduction
In this paper we consider the set covering problem (SCP) which is the problem of covering the
rows of a m-row, n-column, zero-one matrix ( aij)
by a subset of the columns at m inimum cost.
Formally the problem can be defined as follows:
Let
xj = 1 if column j (cost cj) is in the solution,
= 0 otherwise,
then the program is
m inimise
,~~
subject to
CjXj)
E (O> l>>
i = 1,. . . , m,
(2)
j=l
(3)
,**-, n.
aij=l,
j=l,...,
111
. (7)
Ui
Ui
+ min
Cj
- C
UkU,j
1 aij
1,
k-l
j=l
,.*-, n .
I
i- 1
,I,
c uiaij G cj,
j = 1,. . . ,.n,
(5)
i=l
(6)
i-l
ui 2 03
Letting ui (> 0, i = 1,. , . , m) be the dual variables associated with equation (2) then the dual of
the linear programming relaxation of the SCP
(DLSCP) is given by
,,I
maximise
C ui,
(4)
subject to
,...,m.
( cj-
j-l
subject to
: siaij)4+
f si,
i-l
i-l
xi E (0, l),
j = 1,. . . , n.
(9)
00)
C qXj+
j-1
Csi*
i-l
(11)
aijXj,
i=l
,...,m.
02)
j-l
ifsi=OandGi<O,
i=l,...,m.
(13)
T=f(Z,,
where 0 gf<
pliers by
q=max(O,
(14)
ZL,)/
i=l,...,
m.
(15)
i=l,...,
n],
i=l,...,
m.
(16)
Cj > C diaij
i-l
(17)
88
J. E. Beusky
/ AII ulgorith
z,, +
cj>
zU*,
q20,
(18)
q-a
proMenu
k cjxj,
(20)
j-1
subject to
,gi aijxj 2 1,
iZk,
i=l,...,
m,
(21)
2 akjxj = 0,
(22)
j-1
XjE(O,l),
j=l,...,
n.
(23)
90
problen~s
(1) Reduction
We first reduced the problem using the column
domination test.
(2) Upper bound
We found an initial feasible solution Z,,, corresponding to an upper bound on the problem, by
using the Balas and Ho [3] greedy heuristic.
(3) Dual ascent
In forward branching we first chose the (uncovered) row i with the maximum si value for
non-unicost problems and the (uncovered) row i
with the minimum ] M,. ] value for unicost problems (as suggested by Paixao [15]).
We then branched by choosing the column j
(from Mi) with the minimum Cj value. Intuitively
this corresponds to choosing the columri thXt is
most likely to cover row i in the optimal completion of the current tree node.
(3) Backtracking
results
The algorithm presented in this paper was programmed in FORTRAN and run on a Cray-1S using
the CFT compiler (with maximum optirnisation)
for a number of test problems drawn from the
literature and some randomly generated problems.
The Cray-1S is an example of what is called a
supercomputer in that, for certain calculations, it
Table 2
Results lor problems not requiring branching
Table 1
Test problem details
Problem
set
4
5
6
A
B
C
D
E
Number
of
rows
(m)
200
200
200
300
300
400
400
50
Number of
columns
(n)
Density
1000
2000
1000
3000
3000
4000
4000
500
2%
2%
5%
2%
5%
2%
5%
20%
100
100
100
loo
loo
100
100
1 (unicost)
Number
of problems
in problem set
10
10
5
5
5
5
5
5
Problem
number
Number of
subgradient
iterations
Optimal
value
Total time
Cray-1S
seconds
4.1
4.2
4.3
4.5
4.7
4.9
4.10
5.3
5.5
5.6
5.8
5.9
5.10
206
169
149
107
172
385
131
126
145
116
466
169
142
429
512
516
512
430
641
514
226
211
213
288
279
265
2.3
2.7
2.5
1.9
2.2
6.3
1.8
2.7
2.5
2.4
5.9
2.9
2.9
4.4
4.6
4.8
5.1
5.2
5.4
5.7
6.1
6.2
6.3
6.4
6.5
A.1
A.2
A.3
A.4
A.5
B.1
B.2
B.3
B.4
B.5
Cl
c.2
c.3
c.4
c.5
D.l
D.2
D.3
D.4
D.5
E.1
E.2
E.3
E.4
E.5
Problem
number
300
392
452
426
460
289
411
401
362
380
331
350
382
404
403
432
382
457
394
388
428
429
348
388
492
381
371
375
366
479
415
423
376
351
353
358
290
Number of
, subgradient
iterations
Setup/initial
43
87
122
170
193
119
63
200
200
175
96
199
300
298
300
275
250
300
300
300
300
300
400
400
400
400
400
400
400
400
400
400
50
50
50
50
50
Rows
42
74
99
161
248
121
62
173
194
95
61
205
381
344
372
218
221
267
370
254
429
234
503
545
557
542
422
465
482
529
524
226
221
374
457
306
375
columns
493.82
557.04
488.56
251.14
299.56
240.48
291.67
133.04
140.34
139.56
128.86
152.85
246.49
247.23
227.81
231.11
234.82
64.27
69.10
73.93
70.96
67.57
22340
212.52
234.31
213.48
211.36
55.09
59.02
64.88
55.55
58.49
3.46
3.37
3.28
3.43
3.37
Maximum
lower
bound
(K-m)
subgradient ascent/reduction
Table 3
Results for problems requiring branching
496
561
495
257
313
245
294
145
157
145
131
170
273
259
245
236
240
72
80
81
85
74
242
231
252
233
220
66
70
77
68
63
5
5
5
5
5
(zUB)
Best
upper
bound
3.5
5.3
5.7
9.2
11.9
6.5
5.3
12.7
13.2
8.0
5.5
15.2
22.0
26.8
28.9
19.5
17.4
34.3
43.3
30.7
57.9
29.5
44.2
49.2
62.2
48.2
J3.8
81.7
82.8
106.4
94.6
42.5
18.3
21.9
23.5
19.5
19.9
Tie
Cray-1s
seconds
494.00
558.50
488.67
251.23
299.76
240.50
292.11
133.14
140.46
141.72
129.00
153.35
246.84
247.50
228.00
231.40
234.89
64.54
69.30
74.16
71.22
67.67
223.80
212.85
234.58
213.85
211.63
55.31
59.35
65.07
55.84
58.62
3.48
3.38
3.30
3.45
3.39
43
43
122
169
193
115
48
200
200
149
78
199
300
298
300
274
250
300
300
300
300
300
400
400
400
400
399
400
400
400
400
400
50
50
50
50
50
Rows
42
38
98
159
248
117
44
173
192
75
53
201
381
340
372
209
219
263
367
248
428
233
503
545
555
542
415
460
469
523
518
223
200
365
451
297
357
Columns
Liiear program/reduction
DLSCP
solution
value
0.2
0.5
1.6
3.3
4.6
1.4
0.4
3.9
5.9
2.6
0.7
6.5
12.3
14.4
11.4
8.3
7.0
16.0
23.7
14.1
28.5
13.0
20.5
22.4
33.6
23.6
23.4
45.4
48.3
56.2
55.7
20.7
4.8
10.1
13.6
7.6
11.0
Time
Cray-1s
seconds
494
560
492
253
302
242
293
138
146
145
131
161
253
252
232
234
236
69
76
80
79
72
227
219
243
219
215
60
66
72
62
61
5
5
5
5
5
Optimal
value
9
5
11
21
95
19
7
195
171
15
3
271
515
809
857
63
79
411
3273
1383
4381
661
1265
275
15757
493
375
3393
6739
19707
12389
147
69
145
231
129
167
Number
of tree
nodes
2042.5
130.0
107.6
587.0
1056.2
2971.4
1947.9
76.1
28.1
46.5
62.9
38.7
47.8
564.0
90.5
203.4
113.1
149.6
110.8
31.1
28.4
82.1
396.8
25.4
27.6
11.1
6.2
35.7
77.6
104.9
3.8
5.9
7.6
13.3
21.1
8.4
5.8
Total
time
Cray-1s
seconds
2
*a
g
z
8
5
a
z
2.
$
$
\
h:
%
%
5
.P
J. E. Beaslq~ / An ulgorithm
References
93
Research
Quarter(v
27, 367-384.
Integer
Operations
Research
22, 275-277.