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