You are on page 1of 12

UNIVERSIDAD NACIONAL DE SAN AGUSTN

FACULTAD DE INGENIERIA DE PRODUCCION Y SERVICIOS


ESCUELA PROFESIONAL INGENIERA DE SISTEMAS

THE TRAVELING-SALESMAN
PROBLEM

PROYECTO FINAL

CURSO: ANLISIS Y DISEO DE ALGORITMOS


DOCENTE: Carlo Corrales

Alumnos:

Ximena Katherine, Chambi Pacompia


Panibra Cayo Raul
Macedo Valencia Jonathan

Arequipa-Per
THE TRAVELING-SALESMAN PROBLEM

I. INTRODUCCIN

Orgenes del problema

Hay tres aspectos importantes en la historia de cualquier problema matemtico: cmo


surge, cmo influye su investigacin en el desarrollo de las matemticas y cmo finalmente
es resuelto. Para esto en el siguiente informe se dedicara al estudio del siguiente problema:

Un viajante quiere visitar n ciudades una y solo una vez cada una, empezando por
cualquiera de ellas y regresando al mismo lugar del que partio.
Supongamos que conoce la distancia entre cualquier par de ciudades.
De qu forma debe hacer el recorrido si pretende minimizar la distancia total?

Historia

Primeras referencias datan del 1832, para vendedores viajeros.

Karl Menger, 1930, (Shortest Hamiltonian Path).

J.B. Robinson, On the Hamiltonian game (a traveling-salesman problem), 1949.


Esta es la primera referencia del problema como es conocido hoy en dia.

G. Dantzig, R. Fulkerson, and S. Johnson, "Solution of a large-scale


traveling-salesman problem", 1954. Solucin de una instancia de 49 ciudades (capitales de los
estados de USA), introduccin de cortes y branching.

M. Held and R.M. Karp, .A dynamic programming approach to sequencing problems",


1962. introduccin de heuristicas basadas en programmacin dinmica .
Record TSP en el Tiempo

Ao Autores Nmero ciudades

1954 Dantzig, Fulkerson, and Johnson 49

1971 Held and Karp 64

1975 Camerini, Fratta, and Maffioli 67

1977 Grtschel 120

1980 Crowder and Padberg 318

1987 Padberg and Rinaldi 532

1987 Grtschel and Holland 666

1987 Padberg and Rinaldi 2,392

1994 Applegate, Bixby, Chvtal, and Cook 7,397

1998 Applegate, Bixby, Chvtal, and Cook 13,509

2001 Applegate, Bixby, Chvtal, and Cook 15,112

2004 Applegate, Bixby, Chvtal, Cook, and Helsgaun 24,978

2005 Cook, Espinoza and Goycoolea 33,810

II. MARCO conceptual

Caractersticas de TSP

TSP se encuentra clasificado como Problema de optimizacin Combinatoria, es decir, es un


problema donde intervienen cierto nmero de variables donde cada variable puede tener N
diferentes valores y cuyo nmero de combinaciones es de carcter exponencial, lo que da
lugar a mltiples soluciones ptimas (soluciones que se calculan en un tiempo finito) para
una instancia.

TSP es un problema considerado difcil de resolver, denominndose en lenguaje


computacional NP-Completo, es decir, es un problema para el que no podemos garantizar
que se encontrar la mejor solucin en un tiempo de cmputo razonable. Para dar solucin
se emplean diferentes mtodos, entre los cuales, los principales se denominan heursticas
cuyo objetivo es generar soluciones de buena calidad en tiempos de cmputo mucho ms
pequeos (soluciones ptimas tiempo respuesta).
Las variables que han sido empleadas por la mayora de los investigadores que dan
solucin a TSP son:
Tiempo de recorrido entre ciudades: horas, minutos, das, semanas, etc.
Distancia de recorrido entre ciudades: metros, kilmetros, millas, milmetros, etc.
Costo de traslado: dinero, desgaste de las piezas, gasto de energa, etc.

Las variables que se pueden adoptar dependen de cada problema, por ejemplo:
Circuitos electrnicos: cantidad de soldadura utilizada, menor espacio entre los
puntos de soldadura de los circuitos, evitar el cruce entre las lneas de soldadura,
tiempo de fabricacin, distribucin de los circuitos, entre otras.
Control de semforos: Nmero de semforos (nodos), tiempo de traslado entre
semforos, cantidad de autos que pasan por un punto, entre otras variables.
Previsin del trnsito terrestre: puntos en una ciudad, cantidad de vehculos, tiempo
de traslado, tipos de vehculos, horas pico, correlacin entre variables, regresin
lineal, etc.
Entrega de productos: Peso de las entregas, nmero de entregas, nodos (domicilios)
a visitar, recorridos, tiempos de traslado, tipo de vehculo, etc.
Estaciones de trabajo: secuencia de actividades, lugar de las herramientas (nodos),
Tipo de herramientas, tiempo de uso, etc.
Edificacin: puntos de edificacin (construcciones), distancia entre las
construcciones y los insumos, vehculos (gras, camiones de volteo, etc.), cantidad
de combustible que emplean, etc.

Formulacin del El Problema del Agente Viajero (PAV) o Traveling Salesman Problem
(TSP)

El TSP presenta una gran facilidad para formularse, pero a medida que crece el nmero de
ciudades, el tiempo para obtener una solucin ptima crece ms. Para formular el TSP
como un problema de programacin entera se usa la variable Xij que toma el valor de 1 si el
arco (i,j) es usado, y el valor de 0 en cualquier otro caso.

La formulacin de este problema es la siguiente:


III. PLANTEAMIENTO DEL PROBLEMA

Si bien se puede resolver una gran cantidad de problemas prcticos, tales como el diseo
de la ruta de entrega de mercadera, problemas en el trnsito, el problema de la
programacin de la produccin, la comunicacin y red informtica, circuitos integrados de
enrutamiento,problema de tuberas; es importante mencionar que junto con el nmero de
ciudades o puntos vrtice, el nmero de camino posible presenta crecimiento exponencial
[3] [4][5].

Se plantea poder encontrar un algoritmo igual o ms eficiente de los vistos usando


algoritmos genticos para tal propsito.

IV. ANTECEDENTES DE LA INVESTIGACIN

Siendo un tpico problema de optimizacin combinatoria existen trabajos relacionados de las


cuales se menciona algunos:

INVESTIGACIN SOBRE TSP USANDO ALGORITMO TAB

En esta investigacin se implementa un algoritmo correspondiente al mtodo Bsqueda


Tab, llamado Era Determinstico, experimentado con el algoritmo bsico que explora el
espacio de bsqueda e incorporando la diversificacin como estrategia para explorar
nuevas regiones. El algoritmo se desarrolla en el ambiente de programacin Visual Basic
6.0 y la implementacin se orienta a encontrar soluciones cercanas a la ptima del
problema NPCompleto del Agente Viajero Simtrico (AVS). Para probar la funcionalidad, el
mo-
delo se compara con algunas instancias de la Travel Salesman Problem Li-
brary (TSPLIB), algunas instancias aleatorias y se aplica a tres situaciones reales [1].

UN ALGORITMO MTRICO PARA EL PROBLEMA DEL VENDEDOR VIAJERO

En este trabajo se ha diseado un algoritmo hbrido para resolver el problema del vendedor
ambulante, que figura entre los NP-completos y que ha recibido mucha atencin en las
ltimas dcadas. Como estrategia de solucin, se propuso un algoritmo memtico; Que se
basa en la combinacin de un algoritmo evolutivo y la bsqueda local (2-opt), mientras que
el primero analiza varios espacios de bsqueda, el segundo explota (mejora) cada una de
las soluciones encontradas por el algoritmo evolutivo. En el artculo se realiza un anlisis
individual de la heurstica principal utilizada [2].

UNA MEJORA DEL ALGORITMO PARTENOGENTICO PARA RESOLVER MLTIPLES


PROBLEMAS DE VENDEDOR VIAJERO
El objetivo de este trabajo es utilizar un algoritmo partenogentico ms eficaz para resolver
el problema del TSP, demostrar sus ventajas y desventajas, y proporcionar ideas para una
mayor mejora del algoritmo gentico. Se propone especficamente un algoritmo
partenogentico convencional, PGA1, que puede resolver un problema de mltiples
vendedores ambulantes con la limitacin de la duracin mnima del recorrido para
cualquiera de los vendedores, tambin propone una mejora hacia los operadores genticos
de PGA1, lo que hace que el algoritmo sea ms estable y eficaz, se presenta una prueba de
comparacin entre el algoritmo partenogentico mejorado y el algoritmo partenogentico
convencional [3].

HIPER-HEURSTICA DE LA COLONIA DE LA HORMIGA PARA EL PROBLEMA DEL


VENDEDOR VIAJERO
En este trabajo, se desarroll un mtodo heurstico generalizado (hiper-heursticas) basadas
en algoritmos de colonia de hormigas, con el fin de producir un enfoque generalizado, los
valores de feromonas y visibilidad consideran un conocimiento no especfico del dominio. La
hiper heurstica de la colonia de hormigas aplica la misma metodologa que los algoritmos
de colonia de hormigas donde involucra dos procedimientos de actualizacin de feromonas;
La actualizacin local y global. La actualizacin global usar la mejor solucin encontrada
en la iteracin actual para actualizar el rastro de la feromona y la actualizacin local se
realiza despus de que cada hormiga realice un recorrido. Lo aplica en un problema de
enrutamiento; El Problema del Vendedor Viajero (TSP). El TSP es un problema de
encontrar el viaje ms corto posible para visitar cada ciudad exactamente una vez y se sabe
que est en la clase de problemas NP-hard. Se afirma que los resultados presentados en
este documento son capaces de superar a otros mtodos populares [4].

SIMULACIN DE LA RECOLECCIN DE ORGANISMOS SIMBITICOS ALGORITMO DE


OPTIMIZACIN DE BSQUEDA PARA EL PROBLEMA DE VENDEDOR VIAJERO

Este artculo presenta un estudio sobre la aplicacin de SOS con Simulated Annealing (SA)
para resolver los conocidos problemas de los vendedores ambulantes (TSP), la intencin
del mtodo hbrido propuesto es evaluar el comportamiento de convergencia y la
escalabilidad de la bsqueda del organismo simbitico con el recocido simulado para
resolver tanto los problemas de los vendedores ambulantes pequeos como los de gran
escala. La implementacin del algoritmo SOS (SOS-SA) basado en SA. La prueba de
Friedman se utiliz adems para comparar la diferencia significativa en el rendimiento entre
SOS-SA y los otros algoritmos seleccionados del estado de la tcnica. Los resultados de
SOS-SA y SOS se evalan en diferentes conjuntos de patrones de TSP obtenidos de
TSPLIB (una biblioteca que contiene muestras de instancias de TSP). Los resultados del
anlisis emprico muestran que la calidad de los resultados finales, as como la tasa de
convergencia del nuevo algoritmo, en algunos casos produjeron soluciones an ms
superiores que los mejores resultados conocidos de TSP comparados [5].
V. tcnicas usadas para resolver el problema del
agente viajero.

A. Fuerza Bruta
Suponiendo que el nodo con el nmero 1 es el origen, un procedimiento o algoritmo
consiste en listar todos los posibles ciclos hamiltonianos de este grafo y observar cual de
estos tiene el menor costo y ese ciclo sera la solucin al problema. Entonces necesitamos
encontrar todas las posibles opciones que comiencen en el nodo 1 (origen) y cuales son sus
destinos, lo cual es muy sencillo ya que el segundo lugar posible puede ser cualquiera de
los cuatro restantes. Para el tercer nodo a visitar se tienen tres posibilidades distintas, ya
que hay dos lugares ya visitados que se descartan, de tal forma que fcilmente se puede
deducir que hay 4x3x2x1 = 24 posibles rutas o ciclos que comienzan en el nodo 1 y
terminan en el nodo 1. Es decir, existen 24 ciclos hamiltonianos que representan las
posibles soluciones al problema. Aplicando este mtodo se puede observar que el recorrido
mnimo con secuencia de nodos 1-4-2-3-5-1 arroja una suma de distancias de
304+300+242+240+266=1352. Como el PAV(Problema del Agente Viajero) en este caso es
simtrico, se obtiene el mismo resultado si se recorre el ciclo de manera inversa con la
siguiente secuencia de nodos: 1-5-3-2-4-1. Por lo tanto, en el caso de un PAV simtrico
tenemos que el nmero de ciclos es igual a (n-1)!/2. De esta frmula se intuye que para
valores grandes de n se genera una explosin combinatoria.

Anlisis de Complejidad
Para realizar las permutaciones con el algoritmo de Jhonson Trotter se necesita un tiempo
de O(n!), ms el tiempo que se necesite para recuperar la distancia de cada posible ruta,
necesita recorrer todas las permutaciones, esto es O(n!), En general el agente viajero
resuelto por esta tcnica necesita un tiempo de O(n!).

B. Programacin Dinmica
En este tipo de programacin utiliza un mtodo para reducir el tiempo de ejecucin de un
algoritmo mediante la divisin en subproblemas y resolver recordando todas las soluciones
por si en las siguientes iteraciones fuera necesarias nuevamente.
TSP con algoritmo HeldKarp, resuelve el problema en (^2 2^) necesita ^2 2^
espacio para almacenar operaciones

Anlisis de Complejidad
Clculo de g(j,): n-1 consultas a una tabla, para llenar la primera iteracin.
Clculo de los g(j,S) tales que 1 S=k n-2 : (^2 2^)
Costo en espacio (para conservar g y J): ^2 2^
Complejidad en tiempo: (^2 2^)
C. Algoritmos Voraces
El algoritmo de ir seleccionando el prximo ms cercano es conocido como un algoritmo
voraz o ambicioso, de hecho a este mtodo se le conoce el vecino ms cercano y es un
mtodo heurstico de tipo constructivo, y sera una buena solucin de acuerdo a un criterio
deductivo.

Anlisis de Complejidad
El algoritmo toma un nodo y visita a sus vecinos para calcular las distancias, elige el
costo menor y repite el proceso.
En un grafo totalmente conectado y calcular todos los vecinos que no hayan sido
visitados antes, eligiendo al menor costo. El problema es ms pequeo en cada
iteracin hasta llegar al destino. Por lo tanto: ( log), donde n son las ciudades.

D. Algoritmos Genticos
Los algoritmos genticos son mtodos de bsqueda que recorren el espacio de
posibilidades en forma paralela y aleatoria, obedecen a una analoga con la evolucin de las
especies de Darwin. En cada etapa, se tiene una poblacin de soluciones posibles para el
problema, a partir de sta, se genera una nueva poblacin de soluciones mediante
operadores que emulan la seleccin entre las especies del cruzamiento y la mutacin. El
mtodo trabaja, generacin tras generacin, mejorando la calidad de la mejor solucin de
cada poblacin hasta que algn criterio de deteccin se cumpla, por ejemplo, que el
esfuerzo computacional que se ha invertido en la solucin del problema ha superado el
lmite predefinido.

Aplicando Algoritmo Gentico a un conjunto dado de ciudades:


1. Crear un estado inicial aleatorio: El conjunto de ciudades se combina en un orden
aleatorio para crear una recorrido inicial y este recorrido se codifica para poder
calcular el recorrido conveniente.
2. Evaluar el ajuste de recorrido conveniente: El ajuste del recorrido codificado se
calcula alternando la distancia del recorrido.
3. Crear una poblacin: Ahora tenemos la poblacin de todas las visitas candidatas
para la generacin futura de los descendientes
4. Evolucionar las soluciones de las poblaciones: Evolucionar una generacin
implica el proceso natural de cruce y mutacin. En nuestro GA se utiliz el cruce
ordenado y la mutacin swap. Porque nos permiten evitar la duplicacin de ciudades
en una gira ya que violara la declaracin del problema de visitar cada ciudad.
Tambin podramos controlar la tasa de mutacin y el tamao de las ciudades
participantes.
5. Prxima Generacin: El uso de la poblacin evolucionada producir la prxima
generacin. El nmero de generaciones tambin se puede establecer segn la
precisin requerida. Entre ms sea el nmero de generaciones ms ser el tiempo
requerido.
TSP problema es un problema de valor mnimo, deseamos que la distancia total puede ser
lo ms pequeo posible donde el valor de la aptitud es el recproco de la distancia total.
Cuanto menor sea la distancia total mayor es el recproco de la distancia total, es decir,
mayor es el valor de la aptitud, tambin sugiere que el mejor camino.

Anlisis de Complejidad
Parece intuitivo que las poblaciones pequeas corren el riesgo de no cubrir adecuadamente
el espacio de bsqueda, mientras que el trabajar con poblaciones de gran tamao puede
acarrear problemas relacionados con el excesivo costo computacional.

Se sabe que con este problema de TSP crece exponencialmente con el nmero de
ciudades
y aplicar Algoritmos Genticos en problemas reales sera muy limitada, ya que resultan no
competitivos con otros mtodos de optimizacin existentes.

Analizando no podramos establecer como O (P * G * O (Fitness) * ((Pc * O (crossover)) +


(Pm * O (mutacin)))

La complejidad es relativa al nmero de ciudades, el nmero de generaciones y el tiempo


de cmputo por generacin

Si P, G, Pc y Pm son constantes que realmente se simplifican a O (O (Fitness) * (O


(mutacin) + O (crossover))). Si el nmero de generaciones y el tamao de la poblacin es
constante, siempre y cuando su funcin de mutacin, funcin de crossover y funcin de
aptitud tomen una cantidad de tiempo conocida, el o grande es O (1) - toma una cantidad de
tiempo constante.

Ahora, si nos preguntamos cul sera el O grande para una poblacin de N y un nmero de
generaciones M, que es diferente, pero como se indica dnde se conocen todas las
variables de antemano, la cantidad de tiempo que se toma es constante con respecto a
su entrada.

vi. IMPLEMENTACIONES

1. Ejemplo 1: Con algoritmos genticos


Para este ejemplo se han implementado varias clases
taza de cruzamiento: 0.015
generaciones: 100
City: codifica las ciudades de gira
TourManager: Realiza todo nuestro destino
Cities: para nuestro tour
Tour: para codificar las rutas
Population: retener la poblacin de candidatos Excursiones
GA: para evolucionar nuestra poblacin de soluciones utiliza crossover y mutacin
TSP_GA: recibe los valores de la interfaz y evoluciona una ruta para nuestro TSP.
MAIN, DistMatrix, glob, SupplyChain: e stos Se utilizan para el diseo de interfaces
y desarrollo.

Otras caractersticas que se proporcionan por la interfaz son:


Botn AgregarNodos: para establecer el nmero de nodos
Botn Graficar: permite insertar los puntos en el mapa segn la cantidad de nodos
que hayamos establecido con el botn anterior, si no se ha determinado no se podr
graficar ningn nodo.
Botn calcular: permite calcular la la distancia mnima y el camino mas optimo

probando con 10 ciudades


obsrvese el tiempo de ejecucin

tiempo en nanosegundos

VI. CONCLUSIONES

La complejidad de tiempo del algoritmo aumentara rpidamente con la expansin de la


escala del problema, y es difcil encontrar la solucin ptima con precisin.

Es de gran importancia terica para encontrar el algoritmo de solucin aproximada eficaz


[6].

Dado que los algoritmos genticos se han propuesto, se ha sido ampliamente utilizado,
especialmente en la optimizacin de funciones, la produccin de programacin,
reconocimiento de patrones, red neuronal, previsiones econmicas , control adaptativo y
otros campos.
VII. BIBLIOGRAFA

1. EL PROBLEMA DEL AGENTE VIAJERO: UN ALGORITMO DETERMINSTICO


USANDO BSQUEDA TAB,-ERASMO LPEZ, SCAR SALAS, LEX MURILLO -
(2013).

2. Un Algoritmo Memtico para el Problema del Vendedor Viajero - M. D. Arango and


C. A. Serna-(2015).

3. Una mejora del algoritmo partenognico para resolver varios problemas de


vendedores ambulantes.- Honglu Zhou, Mingli Song - (2016).

4. Hiper-heurstica de la colonia de la hormiga para el problema vendedor del


vendedor-Zalilah Abd Aziza (2015).

5. Simulacin de recoleccin de organismos simbiticos algoritmo de optimizacin de


bsqueda para el problema de vendedor ambulante- El-Shamir Ezugwua, Aderemi
Oluyinka Adewumi, Marc Eduard Frncub-(2017).

6. Interfaz grfica de usuario para resolver el problema del vendedor ambulante usando
Algoritmo Gentico.- Sudhir Kumar Sharma (2014).

You might also like