Mathematical Problems in Engineering

Volume 2015, Article ID 578541, 8 pages

http://dx.doi.org/10.1155/2015/578541

## A Binary Cat Swarm Optimization Algorithm for the Non-Unicost Set Covering Problem

^{1}Pontificia Universidad Católica de Valparaíso, 2362807 Valparaíso, Chile^{2}Universidad San Sebastián, 8420524 Santiago, Chile^{3}Universidad Central de Chile, 8370178 Santiago, Chile^{4}Universidad Autónoma de Chile, 7500138 Santiago, Chile^{5}Universidad Cientifica del Sur, Lima 18 Lima, Peru^{6}Universidad de Playa Ancha, 2360003 Valparaíso, Chile^{7}Escuela de Ingeniería Industrial, Universidad Diego Portales, 8370109 Santiago, Chile^{8}Universidad Técnica Federico Santa María, 2390123 Valparaíso, Chile^{9}Facultad de Ingeniería, Universidad Santo Tomás, 2561694 Viña del Mar, Chile

Received 27 February 2015; Revised 27 May 2015; Accepted 22 June 2015

Academic Editor: Filippo Ubertini

Copyright © 2015 Broderick Crawford et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

#### Abstract

The Set Covering Problem consists in finding a subset of columns in a zero-one matrix such that they cover all the rows of the matrix at a minimum cost. To solve the Set Covering Problem we use a metaheuristic called Binary Cat Swarm Optimization. This metaheuristic is a recent swarm metaheuristic technique based on the cat behavior. Domestic cats show the ability to hunt and are curious about moving objects. Based on this, the cats have two modes of behavior: seeking mode and tracing mode. We are the first ones to use this metaheuristic to solve this problem; our algorithm solves a set of 65 Set Covering Problem instances from OR-Library.

#### 1. Introduction

The Set Covering Problem (SCP) [1–3] is a classic problem that consists in finding a set of solutions which allow to cover a set of needs at the lowest cost possible. There are many applications of these kinds of problems; the main ones are location of services, files selection in a data bank, simplification of boolean expressions, and balancing production lines, among others.

In the field of optimization, many algorithms have been developed to solve the SCP. Examples of these optimization algorithms include Genetic Algorithm (GA) [4–7], Ant Colony Optimization (ACO) [8, 9], and Particle Swarm Optimization (PSO) [10–13]. In this work we use a Cat Swarm Optimization (CSO) algorithm to solve the SCP.

By simulating the behavior of cats, CSO can solve optimization problems. It has been analysed that cats spend most of their time resting when they are awake. While they rest, they move from their position carefully and slowly. This behavioral mode is the one called seeking mode. In the tracing mode, a cat moves according to its own speed for all dimensions. This search method will be discussed in detail later in this paper.

The CSO was originally developed for continuous valued spaces. But there exist a number of optimization problems, as the SCP, in which the values are not continuous numbers but rather discrete binary integers. Sharafi et al. introduced a discrete binary version of CSO for discrete optimization problems: Binary Cat Swarm Optimization (BCSO) [14]. BCSO is based on CSO algorithm proposed by Chu et al. in 2006 [15]. The difference is that in BCSO the vector position consists of ones and zeros, instead of the real numbers of CSO.

In this paper we use a BCSO algorithm to solve the Set Covering Problem. Our proposal is tested in different instances of SCP.

To the best of our knowledge, this is the first work solving SCP with BCSO.

This paper is organized as follows. In Section 2, there is a brief description of what Set Covering Problem is. Section 3 is about what BCSO is and the explanation and algorithm of behaviors. In Section 4, there is an explanation of how BCSO was used for solving the SCP. Section 5 discusses an analysis and results table. Finally, Section 6 is the conclusions.

#### 2. Set Covering Problem

The SCP [16–18] can be formally defined as follows. Let be an -row, -column, zero-one matrix. We say that a column can cover a row if . Each column is associated with a nonnegative real cost . Let and be the row set and column set, respectively. The SCP calls for a minimum cost subset such that each row is covered by at least one column . A mathematical model for the SCP is

The objective is to minimize the sum of the costs of the selected columns, where if column is in the solution, otherwise. The constraints ensure that each row is covered by at least one column.

The SCP has been applied to many real world problems such as crew scheduling [19–21], location of emergency facilities [22, 23], production planning in industry [24–26], vehicle routing [27, 28], ship scheduling [29, 30], network attack or defense [31], assembly line balancing [32, 33], traffic assignment in satellite communication systems [34, 35], simplifying boolean expressions [36], the calculation of bounds in integer programs [37], information retrieval [38], political districting [39], stock cutting, crew scheduling problems in airlines [40], and other important real life situations. Because it has wide applicability, we deposit our interest in solving the SCP.

#### 3. Binary Cat Swarm Optimization

Among the known felines, there are about thirty different species, for example, lion, tiger, leopard, and cat [41]. Though many have different living environments, cats share similar behavior patterns [42].

For wild cats, the hunting skill ensures their food supply and survival of their species [43]. Feral cats are groups with a mission to hunt for their food and are very wild feline colonies, with a range of 2–15 individuals [44].

Domestic cats also show the same ability to hunt and are curious about moving objects [45–47]. Watching the cats, you would think that most of the time is spent resting, even when awake [48, 49]. In this state of alertness they do not leave; they may be listening or with wide eyes looking around [50]. Based on all these behaviors we formulate BCSO.

Binary Cat Swarm Optimization [14] is an optimization algorithm that imitates the natural behavior of cats [51, 52]. Cats have curiosity about objects in motion and have a great hunting ability. It might be thought that cats spend most of the time resting, but in fact they are constantly alert and moving slowly. This behavior corresponds to the seeking mode. Furthermore, when cats detect a prey, they spend lots of energy because of their fast movements. This behavior corresponds to the tracing mode. In BCSO, these two behaviors are modeled mathematically to solve complex optimization problems.

In BCSO, the first decision is the number of cats needed for each iteration. Each cat, represented by , where , has its own position consisting of dimensions, which are composed by ones and zeros. Besides, they have speed for each dimension , a flag for indicating if the cat is on seeking mode or tracing mode, and finally a fitness value that is calculated based on the SCP. The BCSO keeps searching for the best solution until the end of iterations.

In BCSO the bits of the cat positions are if column is in the solution, 0 otherwise (1). Cat position represents the solution of the SCP and the constraint matrix ensures that each row is covered by at least one column.

Next the BCSO general Algorithm 1 and diagram (Figure 1) are described where MR is a percentage that determines the number of cats that undertake the seeking mode.