TECNOLÓGICO NACIONAL DE MÉXICO Instituto Tecnológico de La Paz INSTITUTO TECNOLÓGICO DE LA PAZ DIVISIÓN DE ESTUDIOS DE POSGRADO E INVESTIGACIÓN MAESTRÍA EN SISTEMAS COMPUTACIONALES UN ALGORITMO MEMÉTICO PARA LA OPTIMIZACIÓN EN PARALELO DEL TSP TE SI S QUE PARA OBTENER EL GRADO DE MAESTRO EN SISTEMAS COMPUTACIONALES PRESENTA: JOEL ARTEMIO MORALES VISCAYA DIRECTOR DE TESIS: DR. MARCO ANTONIO CASTRO LIERA LA PAZ, BAJA CALIFORNIA SUR, MÉXICO, JUNIO 2016 Blvd. Forjadores de B.C.S. #4720, Col. 8 de Oct. 1era. Sección C.P. 23080 La Paz, B.C.S. Conmutador (612) 121-04-24, Fax: (612) 121-12-95 www.itlp.edu.mx Resumen En este trabajo convergen el problema del agente viajero, el aprovechamiento del cómputo paralelo y la aplicación de algoritmos heurísticos. El problema del agente viajero, más conocido como TSP (Traveling Salesman Problem), es uno de los más estudiados en el área de optimización combinatoria. La resolución de instancias de este problema es de fundamental importancia en áreas de la ingeniería, tan diversas como: logística, fabricación de circuitos integrados, tableros de circuitos perforados, medición de rayos X, data clustering, mira de telescopios, conexión de antenas, entre otros. Los algoritmos heurísticos se han venido utilizando para resolver problemas de optimización y búsqueda en los que no existen métodos eficientes para resolver todas sus instancias, cómo es el caso de TSP. Los algoritmos heurísticos, aunque no pueden garantizar encontrar la mejor solución, nos proporcionan soluciones razonablemente buenas en tiempos cortos. El uso eficiente de los recursos computacionales es un aspecto importante en el desarrollo de algoritmos de optimización, particularmente en lo que respecta al aprovechamiento de arquitecturas de cómputo paralelo, ya que, prácticamente todos los modelos de computadoras modernas cuentan con más de una unidad de procesamiento. El punto central de esta tesis es la propuesta de un nuevo algoritmo memético aplicado al problema del agente viajero, con una estrategia de búsqueda local que mezcla características de 3-OPT y Lin- Kernighan. El algoritmo se implementó en un cluster de computadoras. Se incluyen resultados estadísticos de su desempeño al aplicarlo en diferentes instancias obtenidas de la TSPLIB, con tamaños de entre 100 y 500 ciudades. Además se demuestra el rendimiento superior del algoritmo propuesto al de otras heurísticas como ACO, AG, 2-OPT y 3-OPT. Abstract The present work deals with the traveling salesman problem, the use of parallel computing, and the application of heuristic algorithms. The traveling salesman problem or TSP, is one of the most intensively studied problems in combinatorial optimization, it has applications in several areas such as: logistics, electronic boards manufacturing, X-ray measuring, data clustering, astronomy, antenna connections, among others. Heuristic algorithms are used for producing good solutions to optimization and search problems in a reasonable time frame, but the found solutions may not be optimal. Usually, heuristic algorithms are used for hard problems that cannot be solved by classical means or when there are not efficient algorithms for solving all their instances, that's the case of TSP. When we are dealing with hard optimization problems like TSP, where the search space grows exponentially, we need to use the computational resources available as efficiently as possible, particularly it is of great importance to harness the power of parallel computing, because most modern computers have multiple processing units. The central matter of this work, is the design and implementation of a new memetic algorithm applied to TSP. The algorithm uses a local search inspired on 3-OPT and the Lin-Kerninghan strategy. The algorithm was implemented in a computer cluster and the results were compared with those produced by other widely-used algorithms for TSP solving (ACO, AG, 2-OPT and 3-OPT). The instances of the problem used for experimentation where taken from TSPLIB with sizes of 100 to 500 cities. ´ Indice general ´Indice de figuras III ´Indice de tablas IV 1. Introducci´on 1 1.1. Motivaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2. Definicio´n del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3. Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4. Objetivos espec´ıficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.5. Justificaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. El problema del agente viajero 6 2.1. Optimizaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.1. Optimizaci´on combinatoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2. El problema del agente viajero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.1. Formulaci´on formal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.2. TSPLIB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3. Complejidad computacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3.1. Problemas clase P y NP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.3.2. Complejidad de TSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3. C´omputo paralelo 14 3.1. Memoria distribuida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.1.1. MPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4. Algoritmos existentes para TSP 17 4.1. Introducci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.2. Algoritmos de aproximaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2.1. Algoritmo de Christofides . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.3. Programaci´on lineal y cotas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.4. Algoritmos heur´ısticos para el TSP . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.4.1. Algoritmos de mejoras iterativas . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.4.2. Algoritmos poblacionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.4.3. Algoritmos gen´eticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.4.3.1. Selecci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.4.3.2. Cruza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.4.3.3. Mutaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 i ´ INDICE GENERAL 4.4.3.4. Caracter´ısticas de un AG . . . . . . . . . . . . . . . . . . . . . . . 31 4.4.4. Algoritmos gen´eticos paralelos . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.4.5. Algoritmos mem´eticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5. Estrategia propuesta 37 5.1. Algoritmo de bu´squeda local propuesto . . . . . . . . . . . . . . . . . . . . . . . . . 40 6. Pruebas y Resultados 43 7. Conclusiones y trabajo futuro 47 7.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 7.2. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 8. Bibliograf´ıa 49 Anexo: C´odigo fuente 54 8.1. C´odigo principal (viajero.c) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 8.2. Cabeceras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 8.2.1. Cabecera con la implementacio´n de la bu´squeda local . . . . . . . . . . . . . 63 8.2.2. Cabecera con los par´ametros del programa, params.h . . . . . . . . . . . . . 71 8.2.3. Cabecera para la generaci´on de aleatorios, alea.h . . . . . . . . . . . . . . . . 71 ii ´ Indice de figuras 2.1. Problema de optimizaci´on con varios m´ınimos locales y un m´ınimo global. . . . . . . 7 2.2. Grafo completo con ocho v´ertices . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.1. Ejemplo del algoritmo de Christofides . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.2. Radios de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.3. Peor caso, radios de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.4. Moats para rellenar espacios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.5. a. Heur´ıstica basada en trayectorias, b. poblacional . . . . . . . . . . . . . . . . . . 25 4.6. Intercambio de las aristas (b,e) y (f,c) por las aristas (b,c) y (f,e) . . . . . . . . . . . 27 4.7. Cruza para cadenas binarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 5.1. Diagrama de flujo de un AG con migraci´on . . . . . . . . . . . . . . . . . . . . . . . 38 5.2. Diagrama de flujo del algoritmo mem´etico propuesto . . . . . . . . . . . . . . . . . 39 5.3. Ejemplo de un cambio double bridge . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 5.4. Ejemplo de iteraci´on posible con reemplazo de tres aristas . . . . . . . . . . . . . . 41 iii ´ Indice de tablas 6.1. Comparaci´on de algoritmos de bu´squeda local . . . . . . . . . . . . . . . . . . . . . 44 6.2. Comparaci´on de Heur´ısticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 6.3. Par´ametros del Sistema de Hormigas Paralelo . . . . . . . . . . . . . . . . . . . . . 45 6.4. Par´ametros del AG Distribuido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 6.5. Par´ametros del algoritmo mem´etico . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 6.6. Resultados experimentales instancias Churritz y Reinelt (TSP225). . . . . . . . . . 45 6.7. Resultados experimentales instancias Krolak/Felts/Nelson. . . . . . . . . . . . . . . 46 6.8. Resultados experimentales instancias Padberg/Rinaldi. . . . . . . . . . . . . . . . . 46 iv Cap´ıtulo 1 Introducci´on 1.1. Motivaci´on La optimizaci´on se puede definir como la ciencia encargada de encontrar las mejores soluciones a los problemas, que generalmente modelan una realidad f´ısica. En el d´ıa a d´ıa tratamos con decenas de problemas de optimizaci´on, los cuales resolvemos muchas veces sin percatarnos de que lo estamos haciendo; son problemas simples que pueden ser resueltosde maneraanal´ıticaoconsimple observaci´on, sinembargo, entre m´asgrandeeselabanico de posibilidades y mayor la cantidad de variables a considerar, los problemas se van volviendo m´as complejos y es entonces que necesitamos algoritmos y herramientas que nos ayuden a solucionarlos. El uso eficiente de los recursos computacionales es un aspecto cada vez m´as importante en el desarrollo de algoritmos de optimizaci´on, particularmente en lo que respecta al aprovechamiento de arquitecturas de c´omputo paralelo, ya que en la actualidad pr´acticamente todos los modelos de computadoras personales cuentan con procesadores multi-nu´cleo o con m´as de un procesador, por lo que el desarrollo de aplicaciones en paralelo ya no est´a restringido a grandes y costosos equipos especializados. Existen adem´as una gran cantidad de programas o librer´ıas que facilitan la conexi´on de varios equipos en una red, que se comportan como una sola computadora en paralelo, lo que se conoce como cluster, as´ı como tecnolog´ıas que permiten el desarrollo de aplicaciones de prop´osito general en paralelo utilizando los procesadores de las tarjetas gr´aficas. La optimizaci´on num´erica ha sido ampliamente usada para resolver problemas en ´areas como la econom´ıa, ingenier´ıa de control, arquitectura, investigaci´on de operaciones y mecatr´onica, por 1
Description: