Table Of ContentTECNOLÓ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:El algoritmo de Lin-Kernighan produce aproximaciones cercanas al óptimo para instancias de. TSP de .. plazo y se regresa al paso 1. 8. En caso