Você está na página 1de 5

Algoritmo Lucirnaga Binario para el Problema de

Cobertura de Conjuntos
Binary Firefly Algorithm for the Set Covering
Problem
Broderick Crawford 1,2, Ricardo Soto 1,3, Miguel Olivares Surez 1, Fernando Paredes 4 y Franklin Johnson 5
1

Pontificia Universidad Catlica de Valparaso, Valparaso, Chile


2
Universidad San Sebastin, Santiago, Chile
3
Universidad Autnoma de Chile, Santiago, Chile
4
Universidad Diego Portales, Santiago, Chile
5
Universidad de Playa Ancha, Valparaso, Chile

Resumen El problema de cobertura de conjunto, pertenece a la


rama de los problemas de combinatoria de optimizacin, cuya
complejidad exponencial se ha establecido tericamente como
problemas NP-complejos. Consiste en la bsqueda de un
subconjunto de columnas en una matriz de ceros y unos de tal
manera que cubran todas las filas de la matriz a un costo
mnimo. En este trabajo, se resuelve el problema con el algoritmo
de Lucirnaga binario, basado en el comportamiento
parpadeante de las lucirnagas, utilizando la representacin
binaria. Una lucirnaga produce una modificacin en la posicin
basado en el brillo entre las lucirnagas. La nueva posicin se
determina mediante la modificacin del valor de la vieja posicin
de la lucirnaga, pero el nmero de la nueva posicin es un
nmero real, podemos solucionar este problema con la funcin de
binarizacin tanh comparando con un nmero aleatorio
generado uniformemente distribuido entre 0 y 1. El algoritmo
propuesto ha sido probado en 65 instancias de referencia. Los
resultados muestran que es capaz de producir soluciones
competitivas.
Keywords: Problema de Cobertura de Conjuntos; Algoritmo
Lucirnaga Binario; Metaheurstica
Abstract The set cover problem, belongs to the branch of
combinatorial optimization problems, whose complexity is
exponential theoretically established as NP-complex problems.
Consists in finding a subset of columns in a matrix of zeros and
ones such that cover all rows of the matrix at a minimal cost. In
this work, the problem is solved by binary Firefly algorithm,
based on the flashing behavior of fireflies, using binary
representation. A firefly produces a change in brightness based
position between the fireflies. The new position is determined by
the change in the value of the old position of the firefly, but the
number of the new position is a real number, we can solve this
problem with the function tanh binarization compared with a
random number generated uniformly distributed between 0 and
1. The proposed algorithm has been tested on 65 benchmark
instances. The results show that it is capable of producing
solutions competitivas.virtualizacin; ultrasecuenciacin genetics.
Keywords: Coverage Problem Sets; Firefly Algorithm Binary;
Metaheuristic

I.
INTRODUCTION
El problema de cobertura de conjuntos, en ingls Set
Covering Problem (SCP), pertenece a la rama de los problemas
de combinatoria de optimizacin, y se ha aplicado en muchos
problemas del mundo real [1-3], tales como agendamiento de
tripulacin en aerolneas, problema de localizacin de
instalaciones, planificacin de la produccin en la industria. El
SCP es bien conocido como NP-complejo en el sentido fuerte
[4]. Muchos algoritmos se han desarrollado para solucionarlo y
se ha informado a la literatura. Algoritmos exactos se basan
principalmente en la ramificacin y poda y ramificacin y corte
[5-6]. Sin embargo, estos algoritmos consumen bastante
tiempo, y slo pueden resolver casos de tamao muy limitado.
Por esta razn, muchos de los esfuerzos de investigacin se han
centrado en el desarrollo de la heurstica para encontrar
soluciones buenas o casi ptimas dentro de un perodo tiempo
razonable. Algoritmos voraces son simples, rpidos y fcil de
codificar, pero rara vez producen soluciones de alta calidad
dada su naturaleza determinista [7]. Un algoritmo voraz
mejorado incorporando la aleatoriedad y memoria en l ha
obtenido resultados prometedores [8]. En comparacin con los
algoritmos voraces clsicos, las heursticas basadas en la
relajacin Lagrangiana con la optimizacin subgradiente son
mucho ms eficaces. Las ms eficaces son los propuestos en
[9-10]. Estrategias de bsqueda de alto nivel, las
metaheursticas se han aplicado tambin al SCP. Una lista
incompleta de este tipo de heursticas para el SCP se incluyen:
algoritmo gentico [11], optimizacin basada en colonias de
hormigas (ACO) [12-13], y algoritmos culturales [14]. Una
comprensin ms profunda de la mayora de los algoritmos
eficaces para el SCP se puede encontrar en [15].
En este trabajo, se presenta una nueva aproximacin basado
en el algoritmo lucirnaga binaria para el SCP. El algoritmo
lucirnaga ha sido desarrollado recientemente, como
metaheurstica basada en poblacin [16-17]. Hasta ahora, se ha
demostrado que el algoritmo de lucirnaga es muy eficiente en
el tratamiento de problemas de optimizacin global,

multimodales. Para una comprensin ms profunda de la


revisin de los avances y aplicaciones del algoritmo lucirnaga
consulte [18].

se puede definir la variacin de atractivo con la distancia r


por
2

II. PROBLEMA DE COBERTURA DE CONJUNTOS


El problema de cobertura de conjuntos (SCP) se puede
formular de la siguiente manera. Digamos que A = (aij ) sea
una matriz de ceros y unos de m-filas y n-columnas. Decimos
que una columna j cubre una fila i si aij = 1 . Cada columna j
est asociada con un costo real no negativo c j . Digamos que
I = {1,..., m} y J = {1,..., n} como el conjunto de filas y el
conjunto de columnas respectivamente. El SCP requiere un
subconjunto de mnimo costo S J , de tal manera que cada
fila i I est cubierta por al menos una columna j S . El
modelo matemtico del SCP es
n

Minimizar f (x) = c j x j .

(1)

j =1

sujeto a

= 0 e r .

donde 0 es el atractivo de r = 0 . La distancia rij entre dos


lucirnagas puede ser definida por la distancia Cartesiana. El
movimiento de una lucirnaga i se siente atrada por otra
lucirnaga j que es ms atractiva (ms brillante), se determina
por
xit +1 = xit + 0 e

a x

1
( xtj xit ) + (rand ) .
2

(5)

la isima posicin de la lucirnaga de la prxima generacin. El


segundo trmino es debido a la atraccin. El tercer trmino
introduce la asignacin aleatoria, con siendo el parmetro
de asignacin al azar y rand es un nmero aleatorio generado
uniformemente distribuido entre 0 y 1.
DESCRIPCIN DEL ENFOQUE PROPUESTO

1, i I .

(2)

En esta seccin, se propone el FA para resolver el SCP


mediante representacin binaria.

x j {0,1}, j J .

(3)

Paso 1. Inicializar los parmetros de la lucirnaga ( , 0 , el


tamao de la poblacin de lucirnaga y el nmero
mximo de generaciones, para el proceso de
finalizacin).

j =1

ij

El objetivo es reducir al mnimo la suma de los costos de


las columnas seleccionadas, donde x j = 1 si la columna j est
en la solucin, 0 en caso contrario. Las restricciones aseguran
que cada fila i est cubierta por al menos una columna.
III.

rij2

donde xit y xtj es la posicin actual de las lucirnagas y xit +1 es

IV.
n

(4)

EL ALGORITMO LUCIRNAGA

El Algoritmo Lucirnaga, en ingls Firefly Algorithm (FA)


es un reciente algoritmo inspirado en la naturaleza [16-17]
precisamente en el comportamiento social de las lucirnagas.
El FA fue desarrollado utilizando estas tres reglas idealizadas:
i.

Todas las lucirnagas son unisexuales y se sienten


atradas por otras lucirnagas, independientemente de
su sexo.

ii.

El grado de atraccin de una lucirnaga es


proporcional a su brillo, y por lo tanto para cualquier
par de lucirnagas parpadeantes, la que es menos
brillante se mover hacia la ms brillante. Ms brillo
significa menos distancia entre dos lucirnagas. Sin
embargo, si cualquiera de las dos lucirnagas
parpadeantes tienen el mismo brillo, stas se mueven
aleatoriamente.

iii.

El brillo de una lucirnaga se determina por el valor


de la funcin objetivo. Para un problema de
maximizacin, el brillo de cada lucirnaga es
proporcional al valor de la funcin objetivo y
viceversa.

Como el atractivo de una lucirnaga es proporcional a la


intensidad de la luz vista por las lucirnagas adyacentes, ahora

Paso 2. Inicializacin de posiciones de las lucirnagas.


Inicializar aleatoriamente M = [X1 ; X 2 ;...; X n ] de m
soluciones o posiciones de lucirnaga en el espacio de
bsqueda multidimensional, donde m representa el
tamao de la poblacin de lucirnagas. Cada solucin
de X est representado por un vector binario ddimensional.
Paso 3. Evaluacin del fitness de la poblacin. Para este caso
la funcin de fitness es igual a la funcin objetivo del
SCP (1).
Paso 4. Modificacin de la posicin de la lucirnaga. Una
lucirnaga produce una modificacin en la posicin
basada en el brillo entre las lucirnagas. La nueva
posicin se determina mediante la modificacin del
valor (posicin de la lucirnaga de antigua) usando (5)
para cada dimensin de una lucirnaga. El resultado
del nuevo componente de la lucirnaga, es un nmero
real, para solucionar este problema, se compara con
un nmero aleatorio generado uniformemente
distribuido entre 0 y 1. Si es mayor que el nmero al
azar, se asigna un 1, de lo contrario se asigna un 0.
Con el fin de lograr esto, la funcin tanh se usa como
se indica en [19]
tanh(| x 'p |) =

exp(2 | x 'p | 1)
exp(2 | x 'p | +1)

(3)

Paso 5. La nueva solucin se somete a una evaluacin, si la


solucin generada no es factible entonces se repara.
Para hacer una solucin que sea factible se debe
determinar qu filas an no han sido cubiertas y elegir
las columnas necesarias para la cobertura. La
bsqueda de estas columnas se basa en: el costo de
una columna / nmero de filas no cubiertas que cubre
la columna j. Una vez que la solucin se ha convertido
en factible se aplica un paso de optimizacin para
eliminar esas columnas redundantes. Una columna
redundante es aquella que si se quita, la solucin sigue
siendo factible.

Estos parmetros se seleccionaron de forma emprica despus


de un gran nmero de pruebas y mostraron buenos resultados,
pero pueden no ser los ptimos para todas las instancias.
TABLE II.

RESULTADOS EN 65 INSTANCIAS DEL SCP

Instancia

Opt.

Mejor

Prom.

4.1

429

481

481.03

4.2

512

580

580.00

4.3

516

619

619.03

Paso 6. Memorizar la mejor solucin encontrada hasta ahora.


Incrementar el nmero de generaciones.

4.4

494

537

537.00

4.5

512

609

609.00

Paso 7. Detener el proceso y mostrar el resultado si los


criterios de finalizacin se cumplen. Criterios de
finalizacin utilizados en este trabajo son el nmero
mximo especificado de generaciones. De lo
contrario, ir al paso 3.

4.6

560

653

653.00

4.7

430

491

491.07

4.8

492

565

565.00

4.9

641

749

749.03

4.10

514

550

550.00

5.1

253

296

296.03

5.2

302

372

372.00

5.3

226

250

250.00

5.4

242

277

277.07

5.5

211

253

253.00

5.6

213

264

264.03

5.7

293

337

337.00

5.8

288

326

326.00

5.9

279

350

350.00

V.

EXPERIMENTOS Y RESULTADOS

El rendimiento del FA binario fue evaluado


experimentalmente utilizando 65 instancias de prueba SCP
desde la OR-Library de Beasley [20]. Estas instancias se
dividen en 11 grupos y cada grupo contiene 5 o 10 instancias.
La Tabla I muestra la informacin detallada donde Densidad
es el porcentaje de entradas distintas de cero en la matriz del
SCP. El algoritmo fue codificado en C en NetBeans IDE 7.3
con soporte para C/C++ y fue ejecutado en un PC con 1,8 GHz
Intel Core 2 Duo T5670 CPU y 3,0 GB de RAM bajo el
sistema Windows 8.
TABLE I.

DETALLES DE LAS INSTACIAS DE PRUEBAS

Conjunto
Instancia

N de
Instancia

Densidad
%

Solucin
ptima

5.10

265

321

321.00

10

200

1000

Conocida

6.1

138

173

173.03

10

200

2000

Conocida

6.2

146

180

180.07

200

1000

Conocida

6.3

145

160

160.00

300

3000

Conocida

6.4

131

161

161.00

300

3000

Conocida

6.5

161

186

186.00

400

4000

Conocida

A.1

253

285

285.00

400

4000

Conocida

A.2

252

285

285.07

NRE

500

5000

10

Desconocida

A.3

232

272

272.00

NRF

500

5000

20

Desconocida

A.4

234

297

297.00

NRG

1000

10000

Desconocida

A.5

236

262

262.00

NRH

1000

10000

Desconocida

B.1

69

80

80.03

B.2

76

92

92.00

B.3

80

93

93.00

B.4

79

98

98.03

B.5

72

87

87.00

En todos los experimentos, el FA binario fue ejecutado 50


generaciones, y 30 veces cada instancia. Este nmero se
determin por la rpida convergencia a un ptimo local
cercano al ptimo global. Se utiliz una poblacin de 25
lucirnagas. Los parmetros , 0 fueron inicializados en 1.

instancia NRF, el algoritmo se comporta muy bien llegando a


tener un costo de diferencia de 2 con respecto al valor de la
solucin mejor conocida (NRF.2). En este trabajo se ha
demostrado que el FA binario es una alternativa vlida para
resolver el SCP, siendo que su uso principal es para dominios
continuos.

C.1

227

279

279.00

C.2

219

272

272.00

C.3

243

288

288.00

C.4

219

262

262.00

C.5

215

262

262.07

D.1

60

71

71.00

D.2

66

75

75.00

D.3

72

88

88.00

D.4

62

71

71.00

D.5

61

71

71.00

NRE.1

29

32

32.03

NRE.2

30

36

36.00

NRE.3

27

35

35.00

NRE.4

28

34

34.00

NRE.5

28

34

34.00

NRF.1

14

17

17.03

NRF.2

15

17

17.00

NRF.3

14

21

21.00

NRF.4

14

19

19.00

NRF.5

13

16

16.00

NRG.1

176

230

230.03

NRG.2

154

191

191.00

NRG.3

166

198

198.00

NRG.4

168

214

214.00

NRG.5

168

223

223.00

NRH.1

63

85

85.07

NRH.2

63

81

81.03

[7]

NRH.3

59

76

76.00

[8]

NRH.4

58

75

75.00

NRH.5

55

68

68.00

Las Tabla II muestra los resultados obtenidos de las 65


instancias. La columna Opt., informa el ptimo o el valor de
la mejor solucin conocida de cada instancia. Las columnas
Mejor, y Prom. informan el menor costo y promedio de las
mejores soluciones obtenidas en las 30 ejecuciones
respectivamente.
VI.

CONCLUSIONES

Como se puede observar a partir de los resultados


obtenidos, la metaheurstica se comporta de buena manera en
casi todos los casos, con el conjunto de instancias 4, 5 y 6,
existe una diferencia de costo promedio de 54 entre el ptimo
global con el mejor ptimo obtenido. Para los dems conjuntos
de instancias, el costo empieza a disminuir. El conjunto de

Con respecto a la variabilidad en el tamao de las pruebas,


el algoritmo se comporta bien independientemente de la escala
del problema.
Como trabajo futuro, se llevarn a cabo los experimentos
tomando las funciones de transferencia binarias en forma-V y
en forma-S, para la representacin binaria [21].
AGRADECIMIENTOS
El autor Broderick Crawford es apoyado por
CONICYT/FON-DECYT/REGULAR/1140897, Ricardo Soto
es apoyado por CONICYT/FONDECYT/INICIACION/
11130459 y Fernando Paredes es apoyado por CONICYT/
FONDECYT/REGULAR/ 1130455.
REFERENCIAS
[1]
[2]

[3]
[4]

[5]

[6]

[9]

[10]
[11]

[12]

[13]

[14]

[15]

E. Housos, Elmoth, Automatic optimization of subproblems in


scheduling airlines crews. Interfaces. 27(5), 1997, pp. 68-77
F. J. Vasko, G. R. Wilson, Using a facility location algorithm to solve
large set covering problems. Operations Research Letters, 3(2), 1984,
pp. 85-90.
F. J. Vasko, F. E. Wolf, Optimal selection of ingot sizes via set covering.
Operations Research, 35(3), 1987, pp. 346-353.
M. R. Garey, D. S. Johnson. Computers and Intractability: A Guide to
the Theory of NP-Completeness. W. H. Freeman & Co., New York, NY,
USA, 1990.
E. Balas, M. C. Carrera. A dynamic subgradient-based branch-andbound procedure for set covering. Operations Research 44 (6), 1996, pp.
875-890.
M. L. Fisher, P. Kedia. Optimal solution of set covering/partitioning
problems using dual heuristics. Management Science 36 (6), 1990, pp.
674-688.
V. Chvatal. A greedy heuristic for the set-covering problem.
Mathematics of Operations Research 4 (3), 1979, pp. 233-235.
G. Lan, G. W. DePuy. On the effectiveness of incorporating randomness
and memory into a multi-start metaheuristic with application to the set
covering problem. Comput. Ind. Eng. 51 (3), 2006, pp. 362-374.
S. Ceria, P. Nobili, A. Sassano. A lagrangian-based heuristic for largescale set covering problems. Mathematical Programming 81 (2), 1998,
pp. 215-228.
A. Caprara, M. Fischetti, P. Toth. A heuristic method for the set
covering problem. Operations Research 47 (5), 1999, pp. 730-743.
J. E. Beasley, P. C. Chu: A genetic algorithm for the set covering
problem. European Journal of Operational Research, 94(2), 1996, pp.
392-404.
B. Crawford, R. Soto, E. Monfroy, C. Castro, W. Palma, F. Paredes. A
hybrid soft computing approach for subset problems. Mathematical
Problems in Engineering. Article ID 716069, 2013, pp. 1-12.
Z. G. Ren, Z. R. Feng, L. J. Ke, Z. J. Zhang, New ideas for applying ant
colony optimization to the set covering problem. Computers & Industrial
Engineering, 58(4), 2010, pp. 774-784.
B. Crawford, R. Soto, E. Monfroy, Cultural Algorithms for the Set
Covering Problem. International Conference on Swarm Intelligence,
2013, pp. 27-34.
A. Caprara, P. Toth, M. Fischetti, Algorithms for the set covering
problem. Annals of Operations Research, 98, 2000, pp. 353-371.

[16] X. S. Yang, Nature-Inspired Metaheuristic Algorithms, Luniver Press,


UK, 2008.
[17] X. S. Yang. Firefly algorithms for multimodal optimization. In:
Proceedings of the 5th International Conference on Stochastic
Algorithms: Foundations and Applications. SAGA'09. Springer-Verlag,
Berlin, Heidelberg, 2009, pp. 169-178.
[18] I. Fister, I. Fister Jr., X. S. Yang, J. Brest, A comprehensive review of
firefly algorithms. Swarm and Evolutionary Computation, 13(0), 2013,
pp. 34-46.

[19] K. Chandrasekaran, S. P. Sishaj, N. Prasad Padhy, Binary real coded


firefly algorithm for solving unit commitment problem. Information
Sciences, 249, 2013, pp. 67-84.
[20] J. E. Beasley, A Lagrangian heuristic for set covering problems. Naval
Research Logistics, 37(1), 1990, pp. 151-164.
[21] S. Mirjalili, A. Lewis, S-shaped versus V-shaped transfer functions for
binary Particle Swarm Optimization. Swarm and Evolutionary
Computation. 9, 2013, pp. 1-14.

Você também pode gostar