Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Resumen Ejecutivo
Descripción del problema TSP (Travelling Saleman Problem)
El problema TSP o problema del vendedor viajero es el problema que surge al querer identificar
la distancia más corta entre, por ejemplo, una cantidad n de ciudades alrededor del mundo,
para posteriormente volver al punto de origen, es un problema NP-Hard en la optimización
combinatoria, relevante en la informática teórica y en la investigación de operaciones.
Página 1
extenso para aplicaciones prácticas donde se necesite conocer la distancia más corta en una
cantidad de ciudades n = 1000 o más, existen variadas heurísticas que permiten resolver por
completo situaciones con decenas de miles de ciudades con un GAP relativamente bajo.
Históricamente sus orígenes no están claros sin embargo fue considerado matemáticamente en
1930 por Merril M. Flood, donde buscaba resolver un problema de ruta de un autobús escolar.
La primera vez que se le conoció como problema del vendedor viajero fue en 1949 en el
informe de la Rand Corporation de Julia Robinson, llamada, “ On the Hamiltonian game (a
traveling salesman problem), o en español "Sobre el juego hamiltoniano (un problema del
vendedor viajero)"
Entre las décadas de los 50 y 60 George Dantzig, Derbert Ray Fulkerson y Selmer M. Johnson,
ofrecieron un método de solución para una instancia con 49 ciudades mediante un método de
programación lineal entera, demostrando además que ningún otro recorrido podía ser más
corto, además especularon que dada una condición casi óptima era posible agregar un
pequeño número de desigualdades adicionales para encontrar la solución óptima.
Poner formulas
Las ciudades sometidas a este estudio con sus respectivas coordenadas decimales son las
siguientes:
Página 2
Longitud 114,1667
Latitud 35,6895
2- Tokio
Longitud 139,69
Latitud 30,2538
3- Kiev
Longitud 50,45466
Latitud 26,21666
4- Naha
Longitud 127,68332
Latitud 48,8534
5- Paris
Longitud 2,3486
Latitud 48,13743
6- Múnich
Longitud 11,57549
Latitud 55,75222
7- Moscú
Longitud 37,61556
Latitud 40,195591
8- Bursa
Longitud 19,0601292
Latitud 59,9386292
9- San Petersburgo
Longitud 30,3141308
Latitud 50,08804
10- Praga
Longitud 14,42076
Tabla 1.1: Ciudades y sus respectivas coordenadas geográficas
Fuente: [ CITATION Ant20 \l 13322 ]
Procedimiento de cálculo
Para realizar el cálculo de la distancia entre dos ciudades se debe usar la Fórmula 1.1
Página 3
D=6378.338∗arccos ( cos ( la1 )∗cos ( la 2 )∗cos ( lo 2−lo 1) + Sen ( la 2 ) +Sen ( la 2 ) )
Fórmula 1.1: Cálculo de distancia geográfica entre dos ciudades dadas sus coordenadas
Fuente: [ CITATION Map19 \l 13322 ]
Como los datos de latitud y longitud son proporcionados en grados decimales y la formula los precisa en
Radianes en necesario usar la fórmula 1.2 para transformar los grados decimales en radianes.
Rad=Grd∗π /180
Donde: Rad = Latitud o Longitud en Radianes
Grad = Latitud o Longitud en Grados decimales
Posteriormente se procede a realizar el cálculo de las distancias entre cada una de las ciudades usando
como herramienta el software JuliaPro 1.0.5-2 donde se genera una matiz de 10 x 10 con dichas
distancias, el código se adjunta en el Anexo N°1, la matriz con las distancias se muestra en la Imagen
1.1, donde las filas y columnas tienen la numeración de 1 a 10 y corresponden a las ciudades expuestas
en la Tabla 1.1.
Seguido a esto se procede a modelar el problema y optimizar el problema usando JuMP, GLPK y
Combinatorics, además se grafica el resultado usando Plots
Página 4
El resultado de la optimización del modelo se muestra en la Imagen 1.2.
Interpretación de resultados
El programa empieza resolviendo la relajación lineal partiendo con la función objetivo donde
Z=0, encuentra que ese punto es infacible ya que las coordenadas donde x=y son 0.0 como se
muestra en la imagen posteriormente sigue pivoteando ya que se busca una solución entera por
lo que realiza un árbol de bransh ando bound logra redondear todo y encuentra la solución.
La solución óptima es un Z = 24.779, 726 lo que quiere decir que la menor distancia que puedo
recorrer para visitar las 10 ciudades y posteriormente regresar a la ciudad es de 24.779,726
Kilómetros.
El recorrido que se debe hacer para recorrer la menor distancia se muestra en el Gráfico 1.1,
Página 5
Gráfico 1.1: Recorrido Optimo para visitar las 10 ciudades recorriendo la menor distancia
Fuente: Elaboración propia
En definitiva, para visitar las 10 ciudades y luego volver al origen se debe recorrer como mínimo
24.779,726 Kilómetros y el orden debe ser el siguiente, Suponiendo que el punto de partida es
Hong Kong.
1.Hong Kong, 4.Naha, 2.Tokio, 7.Moscú, 9.San Petersburgo, 10.Praga, 6.Múnich, 5.Paris,
8.Bursa, 3.Kiev, para posteriormente volver a 1.Hong Kong
Página 6
A continuación se muestra un estudio realizado con el fin de comparar los tiempos de ejecución
de dos algoritmos, uno el MTZ (Miller-Tucker-Zemlin) y otro el DFJ (Dantzing-Fulkerson-
Johnson) además cada uno usando puntos generados de forma aleatoria y puntos generádos
en forma de clusters.
Las especificaciones del computador donde se corre el experimento son las siguientes:
Página 7