Saber
versión On-line ISSN 2343-6468
Saber vol.28 no.3 Cumaná set. 2016
Un algoritmo metaheurístico de recocido simulado Para el 3AP-axial
A metaheuristic algorithm of simulated annealing for the 3AP- axial
Manuel Centeno Romero1, Richard Velásquez2
1 Universidad de Oriente, Núcleo de Sucre, Escuela de Ciencias, Departamento de Matemáticas, Cumaná, Venezuela, 2 PDVSA, División Costa Afuera, Gerencia AIT, Cumaná, Venezuela
E-mail: manuelcenteno11@gmail.com
RESUMEN
En el presente trabajo se desarrolló una metaheurística de recocido simulado para la solución del problema de asignación 3-dimensional axial (3AP-axial). El 3AP-axial es un problema de optimización combinatoria perteneciente a la clase NP-difícil; es decir, no existe un algoritmo exacto que pueda resolverlo en un tiempo de cómputo razonable, en el peor de los casos. Es por ello, que se hace uso de metaheurísticas para la búsqueda de buenas soluciones. El algoritmo de recocido simulado es un método global de optimización muy hábil para escapar de óptimos locales, el cual efectúa una búsqueda estocástica sobre el espacio de soluciones. Los resultados obtenidos mejoran la calidad de las soluciones reportadas por otros métodos. Además, se lograron soluciones a problemas de mayor dimensión, en tiempo de cómputo menor o igual a un (1) minuto.
PALABRAS CLAVE: Problema de asignación, recocido simulado, metaheurística.
ABSTRACT
In this paper, we developed a simulated annealing metaheuristic to solve the 3-dimensional assignment problem axial (3AP-axial). The 3AP-axial is a combinatorial optimization problem belonging to the NP-hard class; that is, there are no exact algorithms that can solve it in a reasonable computating time, in the worst case. For this reason, metaheuristics was used in order to find "good" solutions. The simulated annealing algorithm is a global optimization method very clever to escape local optima, which performs a stochastic search on the solution space. The results improve the quality of the solutions reported by other methods. Furthermore, solutions were obtained to bigger size problems in a computing time of less or equal than one minute.
KEY WORDS: Assignment problem, simulated annealing, metaheuristic.
Recibido: noviembre 2013. Aprobado: marzo 2016. Versión final: junio 2016.
INTRODUCCIÓN
Al extenderse la aplicabilidad del problema de asignación (AP), surge el problema de asignación 3-dimensional (3AP), con el cual se pueden plantear problemas más complejos, como por ejemplo: la asignación de aulas a profesores en determinados horarios, la asignación de trabajos a hombres en determinadas máquinas y asignación de rutas a choferes en determinados horarios (Balas y Saltzman 1991).
Recientemente, se han desarrollado investigaciones para el problema de asignación multidimensional denominado problema de asignación m-dimensional (mAP), tales como: Centeno y Salazar (2008), Gutin y Karapetyan (2009a,b), Karapetyan y Gutin (2010) y Centeno y Salazar (2012), los cuales obtienen buenas soluciones haciendo uso de métodos distintos al utilizado en esta investigación.
El 3AP, por ser tan complejo y difícil de resolver, pertenece a la clase de problemas NP-difíciles (problemas que no pueden ser resueltos eficazmente a través de algoritmos de tiempo polinomial, en el peor de los casos (Brassard y Bratley 1997)). Cabe mencionar que el 3AP fue introducido, en el año 1968, por Pierskalla, presentándose novedades sobre su aplicación entre las que se destacan: un estudio del poliedro asociado al 3AP (Balas y Saltzman 1989), y el desarrollo de un algoritmo de ramificación y acotación para su solución (Balas y Saltzman 1991).
El problema de determinar el menor costo de asignación, con tres características, se denomina problema de asignación 3-dimensional (3AP), en el cual dados tres conjuntos de índice I, J y K; con |I| = |J| = |K| = n, I ∩ J = Ø = J ∩ K = I ∩ K, y dada la familia:
S = {(i,j,k):i Î I, j Î J, k Î K},
Se desea hallar la partición de S que cubra exactamente la unión de los tres conjuntos y además, que el costo de asignación sea mínimo. Este problema es también denominado 3AP-axial, para distinguirlo de otro problema de asignación 3-dimensional conocido como 3AP-planar, en el cual se desea hallar una colección de mínimos costos de n2 tripletas, formándose n conjuntos disjuntos de n tripletas disjuntas.
El modelo matemático asociado al 3AP-axial viene dado por:
sujeto a:
Debido a la dificultad que se presenta para resolver problemas NP-difíciles, se han diseñado métodos que dan como resultado buenas soluciones en tiempo computacional aceptable (Díaz et al. 1996, Burkard 1997). Estos métodos son denominados heurísticas, procedimientos simples, a menudo basado en el sentido común, que se supone ofrecerán una buena solución (aunque no necesariamente la óptima) a problemas difíciles, de un modo fácil y rápido (Díaz et al. 1996).
Con la finalidad de buscar soluciones a problemas NP-difíciles, en tiempos de cómputo reducidos, han surgido una serie de métodos bajo el nombre de metaheurísticas, con el propósito de obtener mejores resultados que los alcanzados por los heurísticos tradicionales. El término metaheurística fue introducido, en el año 1996, por Fred Glover. En la actualidad, suele utilizarse el término heurística para referirse a los métodos clásicos, en contraposición al de metaheurística, el cual hace referencia a los métodos heurísticos más complejos y eficientes (Reeves 1995).
El interés por los métodos metaheurísticos ha crecido imperiosamente, lo que ha llevado a muchos científicos a implementarlos para resolver una gran diversidad de problema, entre estos se tienen trabajos de investigación en los cuales se desarrollaron algoritmos utilizando técnicas metaheurísticas para resolver el problema 3AP-axial, tales como: Balas y Saltzman (1989), Balas y Saltzman (1991), Brassard y Bratley (1997), Burkard (1997), Centeno (2001), González y Centeno (2001), Centeno (2007), Centeno et al. (2010) y Centeno y Salazar (2012).
Entre las metaheurísticas que se pueden diseñar e implementar para la búsqueda de buenas soluciones del 3AP-axial, se encuentra el recocido simulado, el cual es un procedimiento metaheurístico utilizado para resolver problemas de optimización de gran escala, dicho procedimiento está basado en una analogía con el proceso de recocido de sólidos de la termodinámica estadística. El empleo de la distribución de Boltzmann para aceptar deterioros de la función de costo, permite guiar a otros métodos (o a procesos competentes) para escapar de la optimalidad local, por lo cual es considerada una metaheurística (Díaz et al. 1996).
Metropolis et al. (1953), determinaron que el proceso físico de recocido de sólido puede ser modelado satisfactoriamente usando métodos de simulación informática. Éstos desarrollaron un algoritmo simple para simular el proceso de enfriamiento de un sólido luego de ser sometido a un baño térmico (recocido), hasta alcanzar su equilibrio fundamental. El algoritmo ideado por estos autores se basa en técnicas de Monte Carlo. En este algoritmo, el equilibrio térmico a una temperatura determinada se consigue mediante la generación de un elevado número de transiciones, utilizando la distribución de Boltzman para describir el equilibrio térmico.
Kirkpatrick et al. (1983), propusieron un procedimiento para obtener soluciones aproximadas a problemas de optimización llamado Recocido Simulado. Este procedimiento se basa en una analogía con el comportamiento de un sistema físico, al someterlo a un baño térmico. Éstos consideraron implementar el recocido simulado en los problemas de optimización combinatoria, que surgen en el diseño de circuitos eléctricos (Pressman 1990). Por otro lado, pensaron que era posible establecer una analogía entre los parámetros que intervienen en la simulación termodinámica y los que aparecen en los métodos de optimización local, quedando relacionados de la siguiente manera: los estados del sistema se corresponden con las soluciones del problema de optimización combinatoria; la energía de los estados con el criterio de evaluación de la calidad de la solución (es decir, su costo); el estado fundamental con la de los óptimos locales. Por otra parte, el papel de la temperatura lo desempeñará un parámetro.
Implementaciones del recocido simulado manejan la cola de enfriamiento como una estructura de memoria. Es decir, la probabilidad de aceptar o rechazar un movimiento de no mejora, depende, no de la iteración (tiempo transcurrido), sino de lo sucedido en la búsqueda.
En este sentido, la probabilidad será función de algunas variables de estado del proceso. Se han diseñado algoritmos híbridos, donde la búsqueda local se realiza con un procedimiento basado en el recocido simulado en ocasiones combinado con búsqueda tabú (Gutiérrez 1991).
Hernández et al. (2011) resuelven el problema de muestra de Bomberger mediante la metaheurística recocido simulado; sus aportaciones consisten en la forma de obtener un espacio de búsqueda más restringido de las variables y una estrategia para controlar la exploración del espacio de soluciones que realiza el algoritmo, realizando una búsqueda eficiente.
En este trabajo de investigación, se desarrolla un algoritmo eficiente para la búsqueda de soluciones del 3AP-axial, utilizando la metaheurística recocido simulado.
MATERIALES Y MÉTODOS
El recocido tiene dos fases. La primera consiste en elevar la temperatura de la mezcla por encima del punto de fusión, a fin de tornarla líquida, perdiéndose toda su estructura anterior y aumentando la movilidad de sus partículas. En la segunda fase, se deja enfriar muy lentamente, para dar oportunidad a que las partículas vuelvan a configurarse de manera ordenada, antes de perder totalmente su movilidad, con el objetivo de que la estructura resultante se aproxime a la forma estable teórica. Este proceso y sus características son comunes a muchos otros fenómenos, tales como los sucesivos cambios de fase entre un gas y el sólido correspondiente. En particular, al crecimiento de un cristal por precipitación de una sustancia disuelta en agua (tal como la sal o el azúcar). La cristalización puede provocarse bien por un descenso de la temperatura o por evaporación del agua a temperatura constante. Ambos procesos son equivalentes y, si son muy lentos, conducen a un macrocristal en el que, salvo ocasionales defectos, el orden de la celda microscópica básica se reproduce sin interrupción y a larga distancia (Vásquez 1995).
En este trabajo de investigación, se desarrolló un programa basado en la metaheurística recocido simulado, para resolver el 3AP-axial, denominado RS3AP-axial. Se tomó como punto de partida el algoritmo general del 3AP-axial, cuyo pseudocódigo se presenta en la Figura 1, donde n representa el cardinal de cada conjunto I, J, K, así como el número de tripletas de cada solución. Además, de las características de los diferentes parámetros que maneja el recocido simulado. Se trata de un enfoque novedoso; ya que no se conocen trabajos en los que se utilice esta técnica heurística para resolver el problema planteado.
Posteriormente, se hicieron los ajustes necesarios al algoritmo general del recocido simulado, mostrando su diagrama de flujo en la Figura 2, donde se parte de una solución inicial x0 y de una cierta temperatura T0, y en cada etapa n se realizan L iteraciones. En cada iteración, se genera una solución xj perteneciente al espacio de soluciones vecinas de la solución actual xi y se acepta como nueva solución actual a través de la aplicación de la siguiente probabilidad de aceptación:
Donde T Î R+ denota el parámetro de control. Después de la última iteración, se disminuye la temperatura T(n). Posterior a este procedimiento, se hicieron los ajustes necesarios al algoritmo general del recocido simulado, mostrado en la Figura 2, para adaptarlo al 3AP, tal como se demuestra en la Figura 3.
La base fundamental de este algoritmo es que al principio se aceptan muchas soluciones malas, lo que le permite salir de un mínimo local, logrando explorar una buena parte del espacio de soluciones. Además, se pueden manipular lo diferentes parámetros, permitiendo al decisor manejar distintas opciones para obtener una solución que satisfaga el problema planteado.
Por tal motivo, resulta crucial para la implementación de la metaheurística recocido simulado, el diseño correcto de los criterios que determinan los valores de estos parámetros.
A continuación se describe el diseño de los criterios para los parámetros del RS3AP-axial:
(a) Espacio de soluciones: viene representado por un conjunto finito determinado por (n!)2, cada una de estas soluciones están compuestas por n tripletas. Estas tripletas están representadas por tres (3) conjuntos de tamaño n, las cuales están permutadas de manera disjuntas.
(b) Función de costo: servirá para evaluar qué tan buena es una solución. Con ésta se comparan dos soluciones y se decide cuál es la mejor, siendo sumamente sencilla; ya que se basa en una simple suma; es decir, el costo de una solución viene representado por la suma de los costos de las n tripletas.
(c) Criterio de generación: el mecanismo de generación permite seleccionar, de manera aleatoria, una solución del entorno de la solución actual. El criterio para generar las soluciones, en el RS3AP-axial, se basa en permutar las posiciones de un conjunto de elementos que forman las n tripletas de la solución actual. Esta forma de generar el entorno de una solución, hace que el algoritmo tenga un comportamiento no determinista.
(d) Temperatura inicial: la estrategia es tomar una temperatura inicial T0 lo suficientemente grande, de modo que en las primeras iteraciones se acepten prácticamente casi todas las soluciones generadas. En esta aplicación, se seleccionó el método propuesto por Kirkpatrick, et al. (1983), pero con ciertas modificaciones, generándose un nuevo método que consiste en lo siguiente: se parte de una solución inicial, luego se le asigna una fracción del costo de la solución actual a T0, en este caso la fracción es de 1/10 , posteriormente se halla el coeficiente de aceptación, el cual se define como cociente entre el número de transiciones aceptadas y el número de transiciones intentadas. Si dicho cociente es menor que cierta cantidad, entonces se incrementa el valor de T0 multiplicándolo por un factor, en este caso el factor es de 1,2, produciendo así sucesivamente hasta verificar la condición impuesta. Empíricamente, se ha determinado que con un coeficiente de aceptación superior al 20% se consiguen buenas soluciones, en algunos casos.
(e) Criterio de parada: la condición escogida para este algoritmo consiste en detenerlo si no ha cambiado la solución actual en 5 iteraciones sucesivas.
(f) Condición de equilibrio o longitud de la cadena de Markov: aquí es donde la temperatura permanece constante, esta condición es la que determina la forma de cómo se explora el espacio de soluciones. Debe ser compleja, ya que la idea es que explore una buena parte de este espacio y al mismo tiempo evite que el algoritmo se vuelva ineficiente. En este algoritmo, se establecen dos condiciones, la primera está determinada por el número de variables del problema, multiplicado por un factor, el cual es variado por el usuario. En el caso del 3AP-axial, el número de variables está dado por n3, cabe mencionar que el factor de multiplicación debe ser grande cuando el valor de n es pequeño y debe ser pequeño cuando n es grande, esto se debe a que el número de variables crece de forma exponencial, y se deben evitar cadenas de Markov excesivamente grandes. La segunda condición consiste en: si para una temperatura determinada se consigue un porcentaje de soluciones que mejoran la solución actual es conveniente pasar a otra temperatura para acelerar el proceso de búsqueda. En la práctica, parece bueno un porcentaje del 20%.
(g) Esquema de actualización de la temperatura: este esquema es importante en el sentido que afecta la propiedad del algoritmo de aceptar el empeoramiento de las soluciones.
Mientras la temperatura sea alta, habrá más probabilidad de escoger malas soluciones y por lo tanto, de salir de mínimos locales. El esquema propuesto en RS3AP-axial para la actualización de la temperatura, se basa en el decrecimiento geométrico en el cual la temperatura se multiplica por un factor α (factor de enfriamiento geométrico, α < 1, muy cercano a 1). Finalmente, el algoritmo fue codificado en Borland C++ Builder 5.
RESULTADOS Y DISCUSIÓN
Como esquema de trabajo, se procedió a realizar las pruebas del RS3AP-axial, utilizando instancias de problemas resueltos por otras metaheurísticas (González y Centeno 2000, Centeno et al 2010), cuyos resultados se muestran en la Tabla 1.
Se compararon los resultados obtenidos, con los generados por LINGO (lenguaje de modelos matemáticos en el que se pueden desarrollar, ejecutar y modificar dichos modelos) (Hiller y Lieberman 2002), para valores de n comprendidos entre 2 y 6; ya que para valores mayores no arroja resultados. Sin embargo, aparte de estas pruebas, se realizaron otras para valores de n entre 8 y 50.
La Tabla 2 muestra la comparación de los resultados obtenidos por el RS3AP-axial, para n = 5, 6, 8, 10, 12, 16, 20, 30, 40 y 50, conjuntamente con los obtenidos por el algoritmo exacto codificado en LINGO y las soluciones dadas por las metaheurísticas: algoritmo genético (González y Centeno 2001) y búsqueda tabú (Centeno et al. 2010). En ella son considerados los promedios de las soluciones de las instancias utilizadas. Los tiempos han sido calculados a través de un computador Pentium III, de 933 MHz, 256 MB de memoria RAM y DD de 20 GB.
En la Tabla 2 se observa que las soluciones obtenidas por el RS3AP-axial, para n = 5 y n = 6, corresponden a la solución óptima. Por otro lado, para 8 ≤ n ≤ 16, estas soluciones, en comparación con las dadas por las otras metaheurísticas, tienen un valor objetivo promedio menor. También se presentan soluciones para 20 ≤ n ≤ 50; es decir, se resuelven problemas de mayor magnitud que los mostrados en la literatura. Además, en general, los tiempos de cómputo para el RS3AP-axial son bastante pequeños; ya que los mismos son menores o iguales a un minuto, siendo para 8 ≤ n ≤ 16 menores a los reportados por el algoritmo genético.
CONCLUSIONES Y RECOMENDACIONES
El RS3AP-axial permite establecer un balance entre eficacia y eficiencia; ya que, se alcanza el efecto esperado, la obtención de buenas soluciones, haciendo uso racional de los medios para alcanzar el objetivo con el mínimo de recursos disponibles y tiempo, lo que hace que sea una buena alternativa para resolver otros problemas de optimización combinatoria.
El RS3AP-axial obtiene la solución óptima para valores de n ≤ 6, mientras que para valores mayores a 6, los resultados van difiriendo mayormente a medida que se aumenta el valor de n; ya que aumenta el número de costos generados y, por ende, de tripletas que conforman las soluciones.
El algoritmo desarrollado mejora los resultados mostrados en González y Centeno (2001) y Centeno et al (2010), con tiempos de cómputos menores a los obtenidos en este último.
El algoritmo recocido simulado tiene muchos parámetros que se pueden ajustar y dependen unos de los otros, con lo que es difícil probar todas las posibles combinaciones dentro del ámbito de esta investigación. Este estudio debería hacerse en un trabajo futuro.
REFERENCIAS BIBLIOGRÁFICAS
1. BALAS E, SALTZMAN MJ. 1989. Facets of the Three-Index Assignment polytope. Discrete Appl. Math. 23:201-229. [ Links ]
2. BALAS E, SALTZMAN MJ. 1991. An algorithm for three-index assignment problema. Oper. Res. 31(1):150-161. [ Links ]
3. BRASSARD G, BRATLEY T. 1997. Fundamentos de algoritmia. Editorial Prentice Hall, Madrid, España, pp. 579. [ Links ]
4. BURKARD R. 1997. Quadratic and Three Dimensional Assignments. J. Oper. Res. Stat. 31(3):355-372. [ Links ]
5. CENTENO MV. 2001. Búsqueda de soluciones para el problema de asignación 3-dimensional axial a través de heurísticas. Cumaná, Venezuela: Universidad de Oriente, Escuela de Ciencias, Departamento de Matemáticas [Trabajo de Ascenso a Profesor Asociado], pp. 70. [ Links ]
6. CENTENO MV. 2007. Búsqueda de soluciones para el 3AP-axial usando búsqueda por entornos. FARAUTE. 2(1): 20-27. [ Links ]
7. CENTENO MV, SALAZAR HA. 2008. Algoritmo para el 4AP haciendo uso de la metaheurística sistema hormiga. Rev. Ing. Ind. (2):73-84. [ Links ]
8. CENTENO MV, SALAZAR JJ. 2012. Un estudio metodológico y computacional del problema de asignación multidimensional. Universidad de La Laguna, Tenerife, España, pp. 175. [ Links ]
9. CENTENO MV, URBINA CJ, SALAZAR JJ. 2010. Un algoritmo de búsqueda tabú para resolver el problema de asignación 3-dimensional axial. ICHIO. 1(1):35-45. [ Links ]
10. DÍAZ A, GLOVER F, HASSAN M., GONZÁLEZ J, LAGUNA M, MOSCATO P. 1996. Optimización heurística y redes neuronales en dirección de operaciones e ingeniería. Primera Edición. Editorial Paraninfo, Madrid, España. [ Links ]
11. GONZÁLEZ J, CENTENO MV. 2001. Desarrollo de un programa para resolver el problema de asignación 3-dimensional a través de un algoritmo genético. Saber. 13(2):123-126. [ Links ]
12. GUTIÉRREZ M. 1991. La técnica del recocido simulado y sus aplicaciones. México: Universidad Nacional Autónoma de México [Tesis Doctoral Facultad de Ingeniería], pp. 140. [ Links ]
13. GUTIN G, KARAPETYAN D. 2009a. Local search heuristics for the multidimensional assignment problem. Lect. Notes Comput. Sci. 5420:100-115. [ Links ]
14. GUTIN G, KARAPETYAN D. 2009b. A memetic algorithm for the multidimensional assignment problem. Lect Notes Comput Sc. 5752: 125-129. [ Links ]
15. HERNÁNDEZ JO, HERNÁNDEZ S, FLORES I. 2011. Algoritmo recocido simulado para el problema de la programación del tamaño del lote económico bajo el enfoque de ciclo básico. Rev. Chil. Ing, 19(3):473-485. [ Links ]
16. HILLER F, LIEBERMAN G. 2002. Investigación de Operaciones. Séptima edición. Mac Graw Hill, México, México, pp. 1085. [ Links ]
17. KARAPETYAN D, GUTIN G. 2011. A new approach to population sizing for memetic algorithms: a case study for the multidimensional assignment problem. Evol. Comput. 19:345-371. [ Links ]
18. KIRKPATRICK S, GELATT CD, VECCHI MP. 1983. Optimization by Simulated Annealing. Science, New Series. 220(4598):671-680. [ Links ]
19. METROPOLIS N, ROSENBLUTH A, ROSENBLUTH M, TELLER A. 1953. Equations of state calculations by fast computing machines. J. Chem. Phys. 21(6):1091-1097. [ Links ]
20. PRESSMAN R. 1990. Ingeniería de software: un enfoque práctico. Segunda Edición. Editorial McGraw-Hill Interamericana, Madrid, España, pp. 642. [ Links ]
21. REEVES CR. 1995. Modern heurictic techniques for combinatorial problems. Editorial McGraw-Hill, Maidenhead, UK, pp. 276. [ Links ]
22. VÁSQUEZ M. 1995. Un nuevo algoritmo para la optimización de estructuras: el recocido simulado. Madrid, España: UPM, Departamento de Estructura de Edificaciones [Tesis Doctoral E.T.S Arquitectura] pp. 205. [ Links ]