1. Introduction
The Set Covering Problem (SCP) is a classical combinatorial optimization problem defined as follows. Let I be a set of m items and a collection of n subsets of I where each subset () is associated to a non-negative cost . The SCP amounts to find a minimum cost subcollection of J that covers all the elements of I at minimum cost, the cost being defined as the sum of subsets cost.
The SCP finds applications in many fields. One of the most important is Crew Scheduling, where SCP provides a minumum-cost set of crews in order to cover a given set of trips. These problems include Airline Crew Scheduling (see, e.g., Rubin [
1] and Marchiori [
2]) and Railway Crew Scheduling (see, e.g., Caprara [
3]). Other applications are the Winner Determination Problem in combinatorial auctions, a class of sales mechanisms (Abrache et al. [
4]) and Vehicle Routing (Foster et al. [
5], Cacchiani et al. [
6] and Bai et al. [
7]). The SCP is also relevant in a number of Production Planning Problems, as described by Vemuganti in [
8], where it has often to be solved in
real-time.
Garey and Johnson in [
9] have proven that the SCP is NP-hard in the strong sense. Exact algorithms are mostly based on branch-and-bound and branch-and-cut techniques. Etcheberry [
10] utilizes sub-gradient optimization in a branch-and-bound framework. Balas and Ho [
11] present a procedure based on cutting planes from
conditional bounds, i.e., valid lower bounds if the constraint set is amended by certain inequalities. Beasley [
12] introduces an algorithm which blends dual ascent, subgradient optimization and linear programming. In [
13], Beasley and Jornsten incorporate the [
12] algorithm into a Lagrangian heuristic. Fisher and Kedia [
14] use continuous heuristics applied to the dual of the linear programming relaxation, obtaining lower bounds for a branch and bound algorithm. Finally, we mention Balas and Carrera [
15] with their procedure based on a dynamic subgradient optimization and branch and bound. These algorithms were tested on instances involving up to 200 rows and 2000 columns in the case of Balas and Fisher’s algorithms and 400 rows and 4000 columns in [
12,
13,
15]. Among these algorithms the fastest one is the Balas and Carrera’s algorithm, with an average time in the order of 100 seconds on small instances and 1000 seconds on largest ones (on a Cray-1S computer). Caprara [
16] compared these methods with the general-purpose ILP solvers CPLEX 4.0.8 and MINTO 2.3, observing that the latter ones have execution times competitive with that of the best exact algorithms for the SCP in literature.
In most industrial applications it is important to rely on heuristic methods, in order to obtain “good” solutions quickly enough to meet the expectations of decision-makers. To this purpose, many heuristics have been presented in the literature. The classical greedy algorithm proposed by Chvatal [
17] sequentially inserts the set with a minimum
score in the solution. Chvatal proved that the worst case performance ratio does not exceed
, where
d is the size of the largest set. More recently Kordalewski [
18] described a new approximation heuristics for the SCP. His algorithm involves the same scheme of Chvatal’s procedure, but modifies the score by including a new parameter named
difficulty. Wang et al. [
19] presented the TS-IDS algorithm designed for deep web crawling and then Singhania [
20] tested it in a resource management application. Feo and Resende [
21] present a Greedy Randomized Adaptive Procedure (GRASP), in which they first construct an initial solution through an adaptive randomized greedy function and then apply a local search procedure. Haouari and Chaouachi [
22] introduce PROGRES, a probabilistic greedy search heuristic which uses diversification schemes along with a learning strategy.
Regarding Lagrangian heuristics, we mention the algorithm developed by Beasley [
23] and then improved by Haddadi [
24], which consists of a subgradient optimization procedure coupled with a greedy algorithm and Lagrangian cost fixing. A similar procedure is designed by Caprara et al. [
25], which includes three phases,
subgradient,
heuristic and
column fixing, followed by a refining procedure. Beasley and Chu [
26] propose a genetic algorithm in which a variable mutation rate and two new operators are defined. Similarly Aickelin [
27] describes an indirect genetic algorithm. In this procedure actual solutions are found by an external decoder function and then an another indirect optimization layer is used to improve the result. Lastly, we mention Meta-Raps, introduced by Lan et al. [
28], an iterative search procedure that uses randomness as a way to avoid local optima. All the mentioned heuristics present calculation times not compatible with real contexts. For example Caprara’s algorithm [
25] produces solutions with an average computing time of about 400 seconds (on a DECstation 5000/240 CPU), if executed on non-unicost instances from Beasley’s OR Library, with
and
as matrix sizes. Indeed, the difficulty of the problem leads to very high computational costs, which has led academics to research heuristics and meta-heuristics capable of obtaining good solutions, as close as possible to the optimal, in a very short time, in order to tackle real-time applications. To this respect, it is worth noting the paper by Grossman and Wool [
29] in which a comparative study of eight approximation algorithms for the unicost SCP is proposed. Among these there were several greedy variants, fractional relaxations and randomized algorithms. Other investigations have been carried out over the years are: Galinier et al. [
30], who study a variant of SCP, called the Large Set Covering Problem (LSCP), in which sets are possibly infinite; Lanza-Gutierrez et al. [
31], which are interested in the difficulty of applying metaheuristics designed for solving continuous optimization problem to the SCP; Sundar et al. [
32] who propose another algorithm to solve the SCP by combining an artificial bee colony (ABC) algorithm with local search.
In this paper, we exploit concepts from Information Theory (see Borda [
33]) to improve the Chvatal’s greedy algorithm. Our purpose is to devise a heuristic able to improve the quality of the solution while retaining similar execution times to those of Chvatal’s algorithm, making it suitable for real-time applications. In particular, our algorithm, named Surprisal-Based Greedy Heuristic (SBH), introduces a
surprisal measure, also known as
self-information, to account partly for the problem structure while constructing the solution. We compare the proposed heuristic with three other greedy algorithms, namely the Chvatal’s greedy procedure [
17], the Kordalewski’s algorithm [
18] and the Altgreedy procedure [
29] for unicost problems. We emphasize that SBH improves the classical Chvatal’s greedy algorithm [
17] in terms of objective function and has the same scalability in computation time while the Kordalewski’s algorithm produces slightly better solutions but its computation times are much higher than those of the SBH algorithm, making it impractical for real-time applications.
The reminder of the article is organized as follows: in the
Section 2 we describe the three algorithms involved in our analysis and illustrate SBH.
Section 3 presents an experimental campaign which compares the greedy algorithms mentioned above. Finally,
Section 4 reports some conclusions.
3. Experimental Results
The aim of our computational experiments has been to assess the performance of the SBH heuristic procedure with respect to the other greedy heuristics proposed in literature. We implemented the heuristics in
C++ and performed our experiments on a stand-alone Linux machine with 4 cores processor clocked at 3 GHz and equipped with 16 GB of RAM. The algorithm has been tested on 77 instances from Beasley’s OR Library [
34].
Table 1 describes the main features of the test instances and, in particular, the column density, i.e., the percentage of ones in matrix
a and column range, i.e., the minimum and maximum value of objective function coefficients. The remaining column headings are self-explanatory. Instances are divided into sets having sizes ranging from
to
. Set
E contains small unicost instances of size
. Sets 4, 5 and 6 were generated by Balas and Ho [
11] and consist of small instances with low density while sets
A to
E come from Beasley [
12]. The remaining instances (sets
to
) are from [
23]. Such instances are significantly larger and optimal solutions are not available. Similarly,
Table 2 reports features of seven large scale real-word instances derived from crew-scheduling problem [
25].
We compare SBH with the Chvatal’s procedure [
17] (CH) and the heuristic by Kordalewski [
18] (KORD).
Table 3,
Table 4 and
Table 5 report the computational results for each instance under the following headings:
Instance: the name of the instance where the string before “dot” refers to the set which the instance belongs to;
BS: objective function value of the best known solution;
SOL: the objective function value of the best solution determined by the heuristic;
TIME: the execution time in seconds;
GAP: percentage gap between BS and the SOL value, i.e.,
Columns “SBH vs CH” and “SBH vs KORD” report the percentage improvement of SBH w.r.t. CH and KORD, respectively. Regarding
Table 3 it is worth noting that our heuristic, compared to Chvatal’s greedy procedure, has a smaller gap ranging from
to
, with an average improvement of
. Among these instances, SBH provides a better solution than [
17] in 19 out of 24 instances problems. We point out that the best objective function value is given by the Kordalewski’s algorithm which is slightly better than our SBH procedure (by only
), but is slower.
Similar observations can be done for
Table 4. Here, SBH performs better even though it differs from the Kordalewski algorithm only by
. Comparing SBH with CH, it is worth noting that only in 4 instances out of 45 SBH obtained a worse solution. SBH comes close to the optimal solution with an average gap of
and is better than CH by
. Execution time of all these instances averages
seconds for CH,
seconds for the Kordalewski procedure and
seconds for SBH. Increasing the size of the instances (which is the case of the rail problems), the Kordalewski’s algorithm becomes much slower. Consequently, on these instances we compare only the CH and SBH heuristics. On these instances, our SBH algorithm provides an average objective function improvement of
with comparable execution times.
We now compare the algorithms on unicost instances, obtained by setting the cost of all columns equal to 1, like in Grossman and Wool’s paper [
29]. Results are showed in Tables
Table 6,
Table 7 and
Table 8, where the subdivision of instances is the same as before. The additional column “SBH vs ALTG” reports the percentage improvement of SBH w.r.t. ALTG algorithm. Looking at
Table 6, it worth noting that the heuristic which performs better is that of Kordalewski. Indeed, our heuristic SBH is worst than KORD of about
while it is better then the other two greedy procedures with a gap of
. Here, computation times are all comparable and range between
and
seconds. SBH improves its performance on larger instances, as shown in
Table 7 and
Table 8. In particular, it yields an average improvement of
on CH and ALTG ([
29]) on
instances, and respectively
and
on
instances. Comparing SBH and
on the
instances, we observe that they are very similar with a
improvement. On the largest instances (
Table 8) it emerges that the computational time of KORD makes it impractical for real-time applications.