Professional Documents
Culture Documents
THE TRAVELING-SALESMAN
PROBLEM
PROYECTO FINAL
Alumnos:
Arequipa-Per
THE TRAVELING-SALESMAN PROBLEM
I. INTRODUCCIN
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
Caractersticas de TSP
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.
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].
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].
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.
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.
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
tiempo en nanosegundos
VI. CONCLUSIONES
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
6. Interfaz grfica de usuario para resolver el problema del vendedor ambulante usando
Algoritmo Gentico.- Sudhir Kumar Sharma (2014).