Information Sciences 460–461 (2018) 172–189
Contents lists available at ScienceDirect
Information Sciences
journal homepage: www.elsevier.com/locate/ins
A greedy-metaheuristic 3-stage approach to construct
covering arrays
Idelfonso Izquierdo-Marquez
a
, Jose Torres-Jimenez
a,∗
, Brenda Acevedo-Juárez
b
,
Himer Avila-George
b
a
CINVESTAV-Tamaulipas, Cd. Victoria, Tamaulipas, Mexico
b
Centro Universitario de los Valles, Universidad de Guadalajara. Ameca, Jalisco 46600, Mexico
a r t i c l e i n f o
Article history:
Received 6 November 2017
Revised 12 April 2018
Accepted 21 May 2018
Available online 29 May 2018
Keywords:
Greedy algorithms
Metaheuristic algorithms
Covering arrays
3-stage approach
Covering perfect hash families
Simulated annealing
a b s t r a c t
Covering arrays are combinatorial designs used as test-suites in software and hardware
testing. Because of their practical applications, the construction of covering arrays with a
smaller number of rows is desirable. In this work we develop a greedy-metaheuristic 3-
stage approach to construct covering arrays that improve some of the best-known ones. In
the first stage, a covering perfect hash family is created using a metaheuristic approach;
this initial array may not be complete, and so the derived covering array may have miss-
ing tuples. In the second stage, the covering perfect hash family is converted to a covering
array and, in case there are missing tuples, a greedy approach completes the covering ar-
ray through the addition of some rows. The third stage is an iterative postoptimization
stage that combines two greedy algorithms and a metaheuristic algorithm; the greedy al-
gorithms detect and reduce redundancy in the covering array, and the metaheuristic al-
gorithm covers the tuples that may become uncovered after the reduction of redundancy.
The effectiveness of our greedy-metaheuristic 3-stage approach is assessed through the
construction of covering arrays of order four and strengths 3–6; the main results are the
improvement of 9473 covering arrays of strength three, 9303 of strength four, 2150 of
strength five, and 291 of strength six. To see how to apply covering arrays to real test-
ing scenarios, the final part of this work presents the use of covering arrays of order four
for setting up a composting process.
© 2018 Published by Elsevier Inc.
1. Introduction
A covering array CA(N; t, k, v) is a combinatorial design defined by four parameters N, t, k, and v, where N and k are
respectively the number of rows and columns of the array; v is the order or the number of distinct symbols in every column
of the array; and t is the strength, which indicates that every one of the
(
k
t
)
subarrays formed by t columns contain as a row
each t-tuple of order v at least once. Fig. 1 shows a CA(12; 2, 7, 3). This covering array has N = 12 rows and k = 7 columns;
the order is v = 3 because each column has elements from the alphabet Z
3
= {0, 1, 2}; and the strength is t = 2 because
every one of the
(
7
2
)
= 21 subarrays formed by two columns contains as a row the v
t
= 3
2
= 9 tuples of length two over Z
3
,
∗
Corresponding author.
E-mail addresses: iizquierdo@tamps.cinvestav.mx (I. Izquierdo-Marquez), jtj@cinvestav.mx (J. Torres-Jimenez), brenda.acevedo@academicos.udg.mx (B.
Acevedo-Juárez), himer.avila@academicos.udg.mx (H. Avila-George).
https://doi.org/10.1016/j.ins.2018.05.047
0020-0255/© 2018 Published by Elsevier Inc.