CISTI2014Volume2pp339_34291.78 KB

Transcripción

CISTI2014Volume2pp339_34291.78 KB
Algoritmo Luciérnaga 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 Suárez 1, Fernando Paredes 4 y Franklin Johnson 5
1
Pontificia Universidad Católica de Valparaíso, Valparaíso, Chile
2
Universidad San Sebastián, Santiago, Chile
3
Universidad Autónoma de Chile, Santiago, Chile
4
Universidad Diego Portales, Santiago, Chile
5
Universidad de Playa Ancha, Valparaíso, Chile
Resumen—El problema de cobertura de conjunto, pertenece a la
rama de los problemas de combinatoria de optimización, cuya
complejidad exponencial se ha establecido teóricamente como
problemas NP-complejos. Consiste en la búsqueda 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
mínimo. En este trabajo, se resuelve el problema con el algoritmo
de Luciérnaga binario, basado en el comportamiento
parpadeante de las luciérnagas, utilizando la representación
binaria. Una luciérnaga produce una modificación en la posición
basado en el brillo entre las luciérnagas. La nueva posición se
determina mediante la modificación del valor de la vieja posición
de la luciérnaga, pero el número de la nueva posición es un
número real, podemos solucionar este problema con la función de
binarización tanh comparando con un número 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
Luciérnaga Binario; Metaheurística
I.
INTRODUCTION
El problema de cobertura de conjuntos, en inglés Set
Covering Problem (SCP), pertenece a la rama de los problemas
de combinatoria de optimización, y se ha aplicado en muchos
problemas del mundo real [1-3], tales como agendamiento de
tripulación en aerolíneas, problema de localización de
instalaciones, planificación de la producción 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 ramificación y poda y ramificación y corte
[5-6]. Sin embargo, estos algoritmos consumen bastante
tiempo, y sólo pueden resolver casos de tamaño muy limitado.
Por esta razón, muchos de los esfuerzos de investigación se han
centrado en el desarrollo de la heurística para encontrar
soluciones buenas o casi óptimas dentro de un período tiempo
razonable. Algoritmos voraces son simples, rápidos y fácil 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 comparación con los
algoritmos voraces clásicos, las heurísticas basadas en la
relajación Lagrangiana con la optimización subgradiente son
mucho más eficaces. Las más eficaces son los propuestos en
[9-10]. Estrategias de búsqueda de alto nivel, las
metaheurísticas se han aplicado también al SCP. Una lista
incompleta de este tipo de heurísticas para el SCP se incluyen:
algoritmo genético [11], optimización basada en colonias de
hormigas (ACO) [12-13], y algoritmos culturales [14]. Una
comprensión más profunda de la mayoría de los algoritmos
eficaces para el SCP se puede encontrar en [15].
En este trabajo, se presenta una nueva aproximación basado
en el algoritmo luciérnaga binaria para el SCP. El algoritmo
luciérnaga ha sido desarrollado recientemente, como
metaheurística basada en población [16-17]. Hasta ahora, se ha
demostrado que el algoritmo de luciérnaga es muy eficiente en
el tratamiento de problemas de optimización global,
multimodales. Para una comprensión más profunda de la
revisión de los avances y aplicaciones del algoritmo luciérnaga
consulte [18].
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 mínimo costo S Í J , de tal manera que cada
fila i Î I está cubierta por al menos una columna j Î S . El
modelo matemático del SCP es
CISTI 2014 | 339
n
Minimizar f (x) = å c j x j .
(1)
j =1
de asignación al azar y “rand” es un número aleatorio generado
uniformemente distribuido entre 0 y 1.
sujeto a
IV.
n
³ 1, "i Î I .
(2)
x j Î{0,1}, "j Î J .
(3)
åa x
ij
j
j =1
El objetivo es reducir al mínimo la suma de los costos de
las columnas seleccionadas, donde x j = 1 si la columna j está
en la solución, 0 en caso contrario. Las restricciones aseguran
que cada fila i está cubierta por al menos una columna.
III.
EL ALGORITMO LUCIÉRNAGA
El Algoritmo Luciérnaga, en inglés Firefly Algorithm (FA)
es un reciente algoritmo inspirado en la naturaleza [16-17]
precisamente en el comportamiento social de las luciérnagas.
El FA fue desarrollado utilizando estas tres reglas idealizadas:
i.
Todas las luciérnagas son unisexuales y se sienten
atraídas por otras luciérnagas, independientemente de
su sexo.
ii.
El grado de atracción de una luciérnaga es
proporcional a su brillo, y por lo tanto para cualquier
par de luciérnagas parpadeantes, la que es menos
brillante se moverá hacia la más brillante. Más brillo
significa menos distancia entre dos luciérnagas. Sin
embargo, si cualquiera de las dos luciérnagas
parpadeantes tienen el mismo brillo, éstas se mueven
aleatoriamente.
iii.
El brillo de una luciérnaga se determina por el valor
de la función objetivo. Para un problema de
maximización, el brillo de cada luciérnaga es
proporcional al valor de la función objetivo y
viceversa.
Como el atractivo de una luciérnaga es proporcional a la
intensidad de la luz vista por las luciérnagas adyacentes, ahora
se puede definir la variación de atractivo b con la distancia r
por
2
b = b 0 e -g r .
(4)
donde b 0 es el atractivo de r = 0 . La distancia rij entre dos
luciérnagas puede ser definida por la distancia Cartesiana. El
movimiento de una luciérnaga i se siente atraída por otra
luciérnaga j que es más atractiva (más brillante), se determina
por
xit +1 = xit + b0 e
-g rij2
1
( xtj - xit ) + a (rand - ) .
2
DESCRIPCIÓN DEL ENFOQUE PROPUESTO
En esta sección, se propone el FA para resolver el SCP
mediante representación binaria.
Paso 1. Inicializar los parámetros de la luciérnaga ( g , b 0 , el
tamaño de la población de luciérnaga y el número
máximo de generaciones, para el proceso de
finalización).
Paso 2. Inicialización de posiciones de las luciérnagas.
Inicializar aleatoriamente M = [X1 ;X2 ;...;Xn ] de m
soluciones o posiciones de luciérnaga en el espacio de
búsqueda multidimensional, donde m representa el
tamaño de la población de luciérnagas. Cada solución
de X está representado por un vector binario ddimensional.
Paso 3. Evaluación del fitness de la población. Para este caso
la función de fitness es igual a la función objetivo del
SCP (1).
Paso 4. Modificación de la posición de la luciérnaga. Una
luciérnaga produce una modificación en la posición
basada en el brillo entre las luciérnagas. La nueva
posición se determina mediante la modificación del
valor (posición de la luciérnaga de antigua) usando (5)
para cada dimensión de una luciérnaga. El resultado
del nuevo componente de la luciérnaga, es un número
real, para solucionar este problema, se compara con
un número aleatorio generado uniformemente
distribuido entre 0 y 1. Si es mayor que el número al
azar, se asigna un 1, de lo contrario se asigna un 0.
Con el fin de lograr esto, la función 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 solución se somete a una evaluación, si la
solución generada no es factible entonces se repara.
Para hacer una solución que sea factible se debe
determinar qué filas aún no han sido cubiertas y elegir
las columnas necesarias para la cobertura. La
búsqueda de estas columnas se basa en: el costo de
una columna / número de filas no cubiertas que cubre
la columna j. Una vez que la solución se ha convertido
en factible se aplica un paso de optimización para
eliminar esas columnas redundantes. Una columna
redundante es aquella que si se quita, la solución sigue
siendo factible.
(5)
Paso 6. Memorizar la mejor solución encontrada hasta ahora.
Incrementar el número de generaciones.
donde xit y x tj es la posición actual de las luciérnagas y xit +1 es
Paso 7. Detener el proceso y mostrar el resultado si los
criterios de finalización se cumplen. Criterios de
finalización utilizados en este trabajo son el número
máximo especificado de generaciones. De lo
contrario, ir al paso 3.
la iésima posición de la luciérnaga de la próxima generación. El
segundo término es debido a la atracción. El tercer término
introduce la asignación aleatoria, con a siendo el parámetro
CISTI 2014 | 340
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 información 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
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
Conjunto
Instancia
N° de
Instancia
Solución
Óptima
279
350
350.00
n
Densidad
%
5.9
m
5.10
265
321
321.00
4
10
200
1000
2
Conocida
6.1
138
173
173.03
5
10
200
2000
2
Conocida
6.2
146
180
180.07
6
5
200
1000
5
Conocida
6.3
145
160
160.00
A
5
300
3000
2
Conocida
6.4
131
161
161.00
B
5
300
3000
5
Conocida
6.5
161
186
186.00
C
5
400
4000
2
Conocida
A.1
253
285
285.00
D
5
400
4000
5
Conocida
A.2
252
285
285.07
NRE
5
500
5000
10
Desconocida
A.3
232
272
272.00
NRF
5
500
5000
20
Desconocida
A.4
234
297
297.00
NRG
5
1000
10000
2
Desconocida
A.5
236
262
262.00
NRH
5
1000
10000
5
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
C.1
227
279
279.00
C.2
219
272
272.00
C.3
243
288
288.00
C.4
219
262
262.00
En todos los experimentos, el FA binario fue ejecutado 50
generaciones, y 30 veces cada instancia. Este número se
determinó por la rápida convergencia a un óptimo local
cercano al óptimo global. Se utilizó una población de 25
luciérnagas. Los parámetros g , b 0 fueron inicializados en 1.
Estos parámetros se seleccionaron de forma empírica después
de un gran número 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.
C.5
215
262
262.07
4.1
429
481
481.03
D.1
60
71
71.00
4.2
512
580
580.00
D.2
66
75
75.00
4.3
516
619
619.03
D.3
72
88
88.00
4.4
494
537
537.00
D.4
62
71
71.00
4.5
512
609
609.00
D.5
61
71
71.00
4.6
560
653
653.00
NRE.1
29
32
32.03
4.7
430
491
491.07
NRE.2
30
36
36.00
4.8
492
565
565.00
NRE.3
27
35
35.00
4.9
641
749
749.03
NRE.4
28
34
34.00
CISTI 2014 | 341
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
NRH.3
59
76
76.00
NRH.4
58
75
75.00
NRH.5
55
68
68.00
es apoyado por CONICYT/FONDECYT/INICIACION/
11130459 y Fernando Paredes es apoyado por CONICYT/
FONDECYT/REGULAR/ 1130455.
REFERENCIAS
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
Las Tabla II muestra los resultados obtenidos de las 65
instancias. La columna “Opt.”, informa el óptimo o el valor de
la mejor solución 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.
[9]
[10]
[11]
[12]
CONCLUSIONES
Como se puede observar a partir de los resultados
obtenidos, la metaheurística 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 demás conjuntos
de instancias, el costo empieza a disminuir. El conjunto de
instancia NRF, el algoritmo se comporta muy bien llegando a
tener un costo de diferencia de 2 con respecto al valor de la
solución mejor conocida (NRF.2). En este trabajo se ha
demostrado que el FA binario es una alternativa válida para
resolver el SCP, siendo que su uso principal es para dominios
continuos.
Con respecto a la variabilidad en el tamaño de las pruebas,
el algoritmo se comporta bien independientemente de la escala
del problema.
Como trabajo futuro, se llevarán a cabo los experimentos
tomando las funciones de transferencia binarias en forma-V y
en forma-S, para la representación binaria [21].
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[20]
AGRADECIMIENTOS
[21]
El autor Broderick Crawford es apoyado por
CONICYT/FON-DECYT/REGULAR/1140897, Ricardo Soto
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.
X. S. Yang, Nature-Inspired Metaheuristic Algorithms, Luniver Press,
UK, 2008.
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.
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.
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.
J. E. Beasley, A Lagrangian heuristic for set covering problems. Naval
Research Logistics, 37(1), 1990, pp. 151-164.
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.
CISTI 2014 | 342

Documentos relacionados