SlideShare una empresa de Scribd logo
1 de 48
Descargar para leer sin conexión
EL AGENTE VIAJERO
Análisis y diseño de algoritmos, MCC 2015
Luis Alfredo Moctezuma Pascual
BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA
FACULTAD DE CIENCIAS DE LA COMPUTACIÓN
INTRODUCCIÓN
 El problema del agente viajero(TSP) ha sido
estudiado desde hace mucho tiempo, debido a su
complejidad computacional y por la gran cantidad
de aplicaciones a la vida real
 La minimización de rutas de transporte, es decir
encontrar la ruta que nos cueste menos para ir de
un lugar a otro
 En la industria por ejemplo se ha usado para la
distribución de mercancía
 Logística en general
INTRODUCCIÓN
 En la computación es muy importante analizar
estos problemas ya que inicialmente se
propusieron soluciones que tardaban mucho
tiempo
 Lo que se busca es minimizar la complejidad
computacional que requiere un problema para
dar una solución
EL AGENTE VIAJERO
 El problema consta de un conjunto de ciudades
por las que se tiene que pasar exactamente una
vez y regresar al punto de origen con el menor
costo posible.
EL AGENTE VIAJERO
 Para esta tarea se han realizado distintos tipos
de algoritmos, como lo son:
 Fuerza bruta
 Divide y vencerás
 Decrece y conquista
 Programación dinámica
 Algoritmos voraces
 Algoritmos genéticos
 Entre otros
EL AGENTE VIAJERO
 Algunos de los métodos listados anteriormente
dan una solución parcial del problema, o también
llamadas soluciones locales. Cuando se resuelve
por fuerza bruta se asegura que se obtendrá la
mejor ruta, es decir la ruta que cuesta menos.
MÉTODOS
 Se presentan tres diferentes técnicas usadas para
resolver el problema del agente viajero, así como
su complejidad computacional.
 Con este análisis de cada uno de los métodos
usados se pueden mostrar las ventajas y
desventajas de usar cada uno de ellos.
1 FUERZA BRUTA
1 FUERZA BRUTA
 En el problema del agente viajero la solución más
directa puede ser, intentar todas las
permutaciones y ver cuál de estas es la menor.
 El tiempo de ejecución es un factor polinómico
del orden O(n!), el factorial del número de
ciudades, esta solución es impracticable para
dado solamente 20 ciudades por ejemplo.
2,432,902,008,000,000,000 permutaciones
1 FUERZA BRUTA
 En general, se pueden resolver problemas con
subestructuras óptimas siguiendo estos tres
pasos:
 Paso 1: Generar una permutación con cada vecino
hasta llegar al destino.
 Paso 2: Guardar la posible ruta y calcular el costo
 Repetir paso 1 y 2
 Comparar todas las iteraciones, la ruta mínima es el
resultado óptimo.
1 FUERZA BRUTA
 Es posible generar las permutaciones de todos los
nodos usando el algoritmo de Jhonson Trotter
para posteriormente usar como posible ruta cada
una de las permutaciones.
1 FUERZA BRUTA
 Para generar las permutaciones se usó una clase
predeterminada de java llamada
nextPermutation, que aplica el algoritmo de
Jhonson Trotter.
 Johnson Trotter(n)
 //Input: Un entero positive n
 initialize the first permutation with: <0, <1, <2
 //(Todos los elementos apuntando hacia la izquierda)
 while ( //La ultima permutacion tenga un element movil)
 // k ← el elemento movil k mas grande
 //Intercambiar K con el elemento que lo apunta
 //Invertir la direccion de todos los elementos > K
 //Agregar la permutacion a la lista
1 FUERZA BRUTA
 Al tener las iteraciones realizadas, podemos
tomar todas las rutas planteadas y calcular el
costo, después buscar la de menor costo y
proponer como la mejor.
Para cada permutación i
Para j=0 hasta permutacion.length
Costo[i] += path[j]+ path[j+1]
fin i++
fin
//Buscar el arreglo de menor costo.
mejorRuta=min(costo)
1 FUERZA BRUTA
 TSP con 4 ciudades:
Permutaciones
C0C1C2C3C0
C0C1C3C2C0
C0C3C1C2C0
C0C3C2C1C0
C0C2C3C1C0
C0C2C1C3C0
Total de permutaciones: 3! si se parte de una ciudad
especifica.
Ejemplo 1
C0 C1 C2 C3
C0 0 3 4 2
C1 3 0 1 5
C2 4 1 0 2
C3 2 5 2 0
1 FUERZA BRUTA
 TSP con 4 ciudades:
Permutaciones
C0C1C2C3C0 costo = 8
C0C1C3C2C0
C0C3C1C2C0
C0C3C2C1C0
C0C2C3C1C0
C0C2C1C3C0
C0 C1 C2 C3
C0 0 3 4 2
C1 3 0 1 5
C2 4 1 0 2
C3 2 5 2 0
1 FUERZA BRUTA
 TSP con 4 ciudades:
Permutaciones
C0C1C2C3C0 costo = 8
C0C1C3C2C0 costo = 14
C0C3C1C2C0
C0C3C2C1C0
C0C2C3C1C0
C0C2C1C3C0
C0 C1 C2 C3
C0 0 3 4 2
C1 3 0 1 5
C2 4 1 0 2
C3 2 5 2 0
1 FUERZA BRUTA
 TSP con 4 ciudades:
Permutaciones
C0C1C2C3C0 costo = 8
C0C1C3C2C0 costo = 14
C0C3C1C2C0 costo = 12
C0C3C2C1C0
C0C2C3C1C0
C0C2C1C3C0
C0 C1 C2 C3
C0 0 3 4 2
C1 3 0 1 5
C2 4 1 0 2
C3 2 5 2 0
1 FUERZA BRUTA
 TSP con 4 ciudades:
Permutaciones
C0C1C2C3C0 costo = 8
C0C1C3C2C0 costo = 14
C0C3C1C2C0 costo = 12
C0C3C2C1C0 costo = 8
C0C2C3C1C0
C0C2C1C3C0
C0 C1 C2 C3
C0 0 3 4 2
C1 3 0 1 5
C2 4 1 0 2
C3 2 5 2 0
1 FUERZA BRUTA
 TSP con 4 ciudades:
Permutaciones
C0C1C2C3C0 costo = 8
C0C1C3C2C0 costo = 14
C0C3C1C2C0 costo = 12
C0C3C2C1C0 costo = 8
C0C2C3C1C0 costo = 14
C0C2C1C3C0
C0 C1 C2 C3
C0 0 3 4 2
C1 3 0 1 5
C2 4 1 0 2
C3 2 5 2 0
1 FUERZA BRUTA
 TSP con 4 ciudades:
Permutaciones
C0C1C2C3C0 costo = 8
C0C1C3C2C0 costo = 14
C0C3C1C2C0 costo = 12
C0C3C2C1C0 costo = 8
C0C2C3C1C0 costo = 14
C0C2C1C3C0 costo = 12
C0 C1 C2 C3
C0 0 3 4 2
C1 3 0 1 5
C2 4 1 0 2
C3 2 5 2 0
1 FUERZA BRUTA
 TSP con 4 ciudades:
Mejor ruta
C0C1C2C3C0 costo = 8
C0C1C3C2C0 costo = 14
C0C3C1C2C0 costo = 12
C0C3C2C1C0 costo = 8
C0C2C3C1C0 costo = 14
C0C2C1C3C0 costo = 12
C0 C1 C2 C3
C0 0 3 4 2
C1 3 0 1 5
C2 4 1 0 2
C3 2 5 2 0
1 FUERZA BRUTA
 El problema se resolvió para 16 ciudades con las
distancias que se muestran en la siguiente tabla:
C0 C1 C2 C3 C4 C6 C10 C13 C8 C7 C15 C12
C9 C5C14C110 costo = 24 tiempo de ejecución 11,164 ms
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15
C0 0 3 4 2 5 3 1 1 4 4 2 2 3 2 5 4
C1 3 0 1 5 3 3 4 2 2 5 3 2 2 3 5 5
C2 4 1 0 2 5 3 3 5 5 5 5 5 4 1 4 1
C3 2 5 2 0 1 1 2 1 3 2 3 2 2 3 5 3
C4 5 3 5 1 0 3 3 2 2 1 1 5 2 2 5 5
C5 3 3 3 1 3 0 4 3 1 1 3 5 3 4 1 3
C6 1 4 3 2 3 4 0 3 2 2 1 2 3 3 5 5
C7 1 2 5 1 2 3 3 0 1 4 5 5 1 4 4 2
C8 4 2 5 3 2 1 2 1 0 2 4 4 3 1 1 3
C9 4 5 5 2 1 1 2 4 2 0 3 3 1 3 5 5
C10 2 3 5 3 1 3 1 5 4 3 0 2 3 1 2 4
C11 2 2 5 2 5 5 2 5 4 3 2 0 5 3 2 5
C12 3 2 3 2 2 3 3 1 2 1 3 5 0 5 5 1
C13 2 3 1 3 2 4 3 4 1 3 1 3 5 0 2 5
C14 5 5 4 5 5 1 5 4 1 5 2 2 5 2 0 5
C15 4 5 1 3 5 3 5 2 3 5 4 5 1 5 5 0
Ejemplo 2
1 FUERZA BRUTA
 Por fuerza bruta se ha logrado encontrar el
camino con un óptimo global, es decir el que
cuesta menos para recorrer el camino del agente
viajero.
Con 16 ciudades el algoritmo genera 16! 20, 922,
789, 888, 000 permutaciones, luego cada
permutación es usada para calcular el costo y
finalmente poder comparar cada ruta en busca de
la menor.
1 FUERZA BRUTA
Análisis de complejidad
Para realizar las permutaciones con el algoritmo de
Jhonson Trotter se necesita un tiempo de O(n!),
mas 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
técnica necesita un tiempo de O(n!).
2 PROGRAMACIÓN DINÁMICA
2 PROGRAMACIÓN DINÁMICA
 En este tipo de programación utiliza un método
para reducir el tiempo de ejecución de un
algoritmo mediante la división en subproblemas y
resolver recordando todas las soluciones por si en
las siguientes iteraciones fuera necesarias
nuevamente.
 TSP con algoritmo Held–Karp
 Resuelve el problema en 𝜃 𝑛2 2 𝑛
 Necesita 𝑛2 2 𝑛 espacio para almacenar operaciones
2 PROGRAMACIÓN DINÁMICA
 𝐷(𝑉𝑖 𝑆) Será la longitud del camino mínimo
partiendo del vértice Vi que pasa por todos los
vértices del conjunto S y vuelve al vértice 𝑉𝑖
En general la relación de recurrencia es la
siguiente:
𝑔 𝑖, { } = 𝐿𝑖1 Cuando S es { }
𝑔 𝑖, 𝑆 = 𝑀𝑖𝑛𝑗∈𝑆 𝐿𝑖𝑗 + 𝑔 𝑗, 𝑆 𝑗
𝒈(𝒊, 𝑺) Será la longitud del camino mínimo
partiendo del vértice i que pasa por todos los
vértices del conjunto S y vuelve al vértice 𝒊.
2 PROGRAMACIÓN DINÁMICA
 Aplicar la ecuación de recurrencia
𝑔 𝑖, { } = 𝐿𝑖1 Cuando S es { }
g(1,Ø) = 5 g(2,Ø) = 6 g(3,Ø) = 8
𝑔 𝑖, 𝑆 = 𝑀𝑖𝑛𝑗∈𝑆 𝐿𝑖𝑗 + 𝑔 𝑗, 𝑆 𝑗
𝑔(2, {3}) = 𝑀𝑖𝑛{ 𝐿23 + 𝑔(3, Ø) } = 9 + 6 = 15
𝑔(2, {4}) = 𝑀𝑖𝑛{ 𝐿24 + 𝑔(4, Ø) } = 10 + 8 = 18
𝑔(3, {2}) = 𝑀𝑖𝑛{𝐿32 + 𝑔(2, Ø) } = 13 + 5 = 18
𝑔(3, {4}) = 𝑀𝑖𝑛{𝐿34 + 𝑔(4, Ø) } = 12 + 8 = 20
𝑔(4, {2}) = 𝑀𝑖𝑛{𝐿42 + 𝑔(2, Ø) } = 8 + 5 = 13
𝑔(4, {3}) = 𝑀𝑖𝑛{𝐿43 + 𝑔(3, Ø) } = 9 + 6 = 15
L 
0 10 15 20
5 0 9 10
6 13 0 12
8 8 9 0








Ejemplo 1
2 PROGRAMACIÓN DINÁMICA
 Aplicar la ecuación de recurrencia
𝑔 𝑖, 𝑆 = 𝑀𝑖𝑛𝑗∈𝑆 𝐿𝑖𝑗 + 𝑔 𝑗, 𝑆 𝑗
 𝑔 2, 3,4 = 𝑀𝑖𝑛 𝐿23 + 𝑔 3, 4 , 𝐿24 +𝑔 4, 3 = 9 + 20, 10 +
15 = 29, 25 = 25
 g(3,{2,4}) =Min{ 𝐿32 + g(2,{4}) , 𝐿34 + g(4,{2})} = 13 +18, 12+13 =
31, 25= 25
 g(4,{2,3}) = Min{ 𝐿42 + g(2,{3}) , 𝐿43 + g(3,{2})} = 8 +15, 9+18 = 23,
27= 23
L 
0 10 15 20
5 0 9 10
6 13 0 12
8 8 9 0








2 PROGRAMACIÓN DINÁMICA
 Aplicar la ecuación de recurrencia
𝑔 𝑖, 𝑆 = 𝑀𝑖𝑛𝑗∈𝑆 𝐿𝑖𝑗 + 𝑔 𝑗, 𝑆 𝑗
 𝑔 (1, {2,3,4}) = 𝑀𝑖𝑛{𝐿12 + 𝑔(2, {3,4}) ,
𝐿13 + 𝑔(3, {2,4}) ,
𝐿14 + 𝑔(4, {2,3}) }
=10+25, 15+25, 20+23 = 35, 40,43 = 35 es la ruta de menor costo
𝐿12 + 𝑔(2, {3,4}) = 𝐿12 + ( 𝐿24 + 𝑔(4, {3}) )
= 𝐿12 + 𝐿24 + (𝐿43 + 𝑔(3, Ø)) = 𝐿12 + 𝐿24 + 𝐿43 + 𝐿31
= 10 + 10 + 9 + 6 = 35
La ruta de menor costo es seguir: 124 31
L 
0 10 15 20
5 0 9 10
6 13 0 12
8 8 9 0








2 PROGRAMACIÓN DINÁMICA
 La ruta de menor costo es seguir: 124 31
2 PROGRAMACIÓN DINÁMICA
.
C0 C1 C2 C3 C4 C5 C6 C7
C0 0 2 1 3 4 5 5 6
C1 1 0 4 4 2 5 5 6
C2 5 4 0 2 2 6 5 6
C3 5 2 2 0 3 2 5 6
C4 4 2 4 2 0 3 5 6
C5 4 2 4 2 3 0 5 6
C6 4 2 4 2 4 3 0 6
C7 4 2 4 2 8 3 5 0
0  2  4  7  3  5  6  1  0
Ejemplo 2
2 PROGRAMACIÓN DINÁMICA
Tiempo de ejecución en java 119 minutos 24 segundos
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9
C0 0 3 4 2 5 3 1 1 4 4
C1 3 0 1 5 3 3 4 2 2 5
C2 4 1 0 2 5 3 3 5 5 5
C3 2 5 2 0 1 1 2 1 3 2
C4 5 3 5 1 0 3 3 2 2 1
C5 3 3 3 1 3 0 4 3 1 1
C6 1 4 3 2 3 4 0 3 2 2
C7 1 2 5 1 2 3 3 0 1 4
C8 4 2 5 3 2 1 2 1 0 2
C9 4 5 5 2 1 1 2 4 2 0
07349581260
Ejemplo 3
07349581260
2 PROGRAMACIÓN DINÁMICA
 Análisis de complejidad
 Cálculo de g(j,Ø): n-1 consultas a una tabla, para
llenar la primera iteración.
 Cálculo de los g(j,S) tales que 1≤ S=k ≤ n-2 :
Tiempo de cálculo:
𝜃 𝑛 − 1 + 𝑛 − 1 𝐾
𝑛 − 2
𝑘
𝑛−2
𝑘=1 = 𝜃(𝑛2 2 𝑛)
 Costo en espacio (para conservar g y J): 𝑛2
2 𝑛
 Complejidad en tiempo: 𝜃(𝑛2
2 𝑛
)
(n 1) n  2
k




k sumas en total ,
3 ALGORITMO VORAZ
3 ALGORITMO VORAZ
 El vecino más cercano
 Permite al viajante elegir la ciudad no visitada más
cercana como próximo movimiento.
 En promedio, retorna un camino de un 25% más largo
que el menor camino posible.
 Revuelve el problema del agente viajero hasta con
14,900 ciudades rápidamente.
3 ALGORITMO VORAZ
 Para el caso del agente viajero no se asegura que la
solución dada sea la mejor. En general el proceso
seguido es el siguiente.
 Paso 1: Se inicia la distancia en 0 ”cero” y un arreglo de
vecinos vacía
 Paso 2: Se toma un nodo inicial, generalmente el primero
del grafo.
 Paso 3: Se calculan las distancias con todos sus vecinos que
no estén en la lista de visitados.
 Paso 4: Se elige el vecino más cercano al nodo inicial
 Paso 5: La distancia se actualiza con la distancia
acumulada más la distancia del vecino más próximo.
 Paso 6: El nodo inicial se guarda en la lista de visitados, el
vecino seleccionado ahora es el nodo inicial.
 Paso 7: Repetir desde el paso 2 mientras no se llegue al
destino.
3 ALGORITMO VORAZ
 Ejemplo 1
 C0  min(C1,C2,C3) = C0  C2
 C2  min(C1,C3) = C2  C3
 C3 min(C1) = C3  C1
 C1  C0
C0C2C3C1C0
costo= 1+2+2+1=6
C0 C1 C2 C3
C0 0 2 1 3
C1 1 0 4 4
C2 5 4 0 2
C3 5 2 2 0
3 ALGORITMO VORAZ
 Ejemplo 2
C0  min(C1,C2,C3,C4,C5) = C0  C2 costo=1
C2  min(C1,C3,C4,C5) = C2  C3 costo +=2
C3  min(C1,C4,C5) = C3  C1 costo += 2
C1  min(C4,C5) = C1  C4 costo +=2
C4  min(C5) = C4  C5 costo+=3
Regresar a C0 costo += 4
0231450 costo=1+2+2+2+3+4 = 14
C0 C1 C2 C3 C4 C5
C0 0 2 1 3 4 5
C1 1 0 4 4 2 5
C2 5 4 0 2 2 6
C3 5 2 2 0 3 2
C4 4 2 4 2 0 3
C5 4 2 4 2 3 0
3 ALGORITMO VORAZ
 Ejemplo 2
0231450 costo=1+2+2+2+3+4 = 14
C0 C1 C2 C3 C4 C5
C0 0 2 1 3 4 5
C1 1 0 4 4 2 5
C2 5 4 0 2 2 6
C3 5 2 2 0 3 2
C4 4 2 4 2 0 3
C5 4 2 4 2 3 0
3 ALGORITMO VORAZ
 Ejemplo 3
C0  min(C1,C3,C5) = C0  C2 costo +=1
C2  min(C1,C5) = C2  C1 costo +=4
C1 min(C4) = C1  C4 costo +=1
C4  min(C3,C5) = C4  C3 costo +=2
C3  min(C5) = C3  C5 costo +=2
Regresar a C0 costo +=4
0214350 costo= 14
C0 C1 C2 C3 C4 C5
C0 0 2 1 3
C1 1 0 2 5
C2 5 4 0 6
C3 5 2 0 3 2
C4 4 2 2 0 3
C5 4 2 0
3 ALGORITMO VORAZ
 Ejemplo 3
0214350 costo= 1+2+2+2+4= 11
3 ALGORITMO VORAZ
 Análisis 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 más pequeño
en cada iteración hasta llegar al destino. Por lo
tanto: 𝜃 𝑛 log 𝑛 , donde n son las ciudades.
COMPARACIÓN
 TSP con 5 ciudades
FB = C0C4C2C1C3C0 costo = 13 ms=33
PD = C0C4C2C1C3C0 costo = 13 ms=33
V = C0C2C1C3C4C0 costo = 14 ms=1
C0 C1 C2 C3 C4
C0 0 3 2 3 4
C1 3 0 1 3 3
C2 2 1 0 3 2
C3 3 3 3 0 4
C4 4 3 2 4 0
COMPARACIÓN
 TSP con 8 ciudades
FB = C0C6C7C5 C1C2C4C3C0
costo = 14 ms=47
PD = C0C6C7C5 C1C2C4C3C0
costo = 14 ms= 18,174
V = C0C6C7C5 C1C2C4C3 C0
costo = 14 ms=1
C
0
C
1
C
2
C
3
C
4
C
5
C
6
C
7
C0 0 3 4 2 3 1 1
C1 3 0 2 2 3 2 4
C2 4 2 0 3 3 4 2
C3 2 2 0 2 3
C4 3 3 2 0 3 3
C5 3 2 3 3 3 0 4 1
C6 1 4 3 4 0 1
C7 1 4 2 1 1 0
COMPARACIÓN
 TSP con 10 ciudades
FB = C0C7C4C5C9C8C1C3C2C6C0
costo = 15 ms=450
PD = C0C7C4C5C9C8C1C3C2C6C0
costo = 15 394 minutos ~6hrs
V = 06231894570
costo = 16 ms=1
C
0
C
1
C
2
C
3
C
4
C
5
C
6
C
7
C
8
C
9
C0 0 3 4 2 99 3 1 1 4 4
C1 3 0 3 2 99 4 4 99 1 99
C2 4 3 0 2 2 99 3 2 2 3
C3 2 2 2 0 2 2 99 3 3 99
C4 99 99 2 2 0 1 4 1 2 2
C5 3 4 99 2 1 0 3 2 3 2
C6 1 4 3 99 4 3 0 3 3 3
C7 1 99 2 3 1 2 3 0 99 99
C8 4 1 2 3 2 3 3 99 0 1
C9 4 99 3 99 2 2 3 99 1 0
CONCLUSIONES
 Rápido + No eficaz  voraz
 Eficaz + lento  fuerza bruta
 Eficaz + Alto uso de memoria  programación
dinámica

Más contenido relacionado

La actualidad más candente

Investigacion operativa-asignación
Investigacion  operativa-asignaciónInvestigacion  operativa-asignación
Investigacion operativa-asignaciónFranco Snipes
 
Investigación de Operaciones II : Simulación
Investigación de Operaciones II : Simulación Investigación de Operaciones II : Simulación
Investigación de Operaciones II : Simulación Jose
 
Ejercicios resueltos programacion lineal
Ejercicios resueltos programacion linealEjercicios resueltos programacion lineal
Ejercicios resueltos programacion linealJohana Rios Solano
 
Investigacion de Operaciones-Coste mínimo
Investigacion de Operaciones-Coste mínimoInvestigacion de Operaciones-Coste mínimo
Investigacion de Operaciones-Coste mínimoMari Cruz
 
Solución de problemas en programación lineal
Solución de problemas en programación linealSolución de problemas en programación lineal
Solución de problemas en programación linealARLO SOLIS
 
Ejercicios resueltos de maximización: de método simplex
Ejercicios resueltos de maximización: de método simplexEjercicios resueltos de maximización: de método simplex
Ejercicios resueltos de maximización: de método simplexJuanMiguelCustodioMo
 
Programacion dinamica final
Programacion dinamica finalProgramacion dinamica final
Programacion dinamica finalWalter Toledo
 
2 precio dual y costo reducido (1)
2 precio dual y costo reducido (1)2 precio dual y costo reducido (1)
2 precio dual y costo reducido (1)Pierina Diaz Meza
 

La actualidad más candente (20)

13 problema de redes
13 problema de redes13 problema de redes
13 problema de redes
 
Problemas rsueltos pl
Problemas rsueltos plProblemas rsueltos pl
Problemas rsueltos pl
 
Método gráfico
Método gráficoMétodo gráfico
Método gráfico
 
Optimizacion de redes
Optimizacion de redesOptimizacion de redes
Optimizacion de redes
 
Investigacion operativa-asignación
Investigacion  operativa-asignaciónInvestigacion  operativa-asignación
Investigacion operativa-asignación
 
20 arbol de_extension_minima
20 arbol de_extension_minima20 arbol de_extension_minima
20 arbol de_extension_minima
 
Investigación de Operaciones II : Simulación
Investigación de Operaciones II : Simulación Investigación de Operaciones II : Simulación
Investigación de Operaciones II : Simulación
 
Modelo de redes
Modelo de redesModelo de redes
Modelo de redes
 
Ejercicios resueltos programacion lineal
Ejercicios resueltos programacion linealEjercicios resueltos programacion lineal
Ejercicios resueltos programacion lineal
 
Algoritmo de kruskal
Algoritmo de kruskalAlgoritmo de kruskal
Algoritmo de kruskal
 
problemas de programacion lineal resueltos
problemas de programacion lineal resueltosproblemas de programacion lineal resueltos
problemas de programacion lineal resueltos
 
Modelo de redes
Modelo de redes Modelo de redes
Modelo de redes
 
Investigacion de Operaciones-Coste mínimo
Investigacion de Operaciones-Coste mínimoInvestigacion de Operaciones-Coste mínimo
Investigacion de Operaciones-Coste mínimo
 
Solución de problemas en programación lineal
Solución de problemas en programación linealSolución de problemas en programación lineal
Solución de problemas en programación lineal
 
Ejercicios resueltos de maximización: de método simplex
Ejercicios resueltos de maximización: de método simplexEjercicios resueltos de maximización: de método simplex
Ejercicios resueltos de maximización: de método simplex
 
Ejercicio 2
Ejercicio 2Ejercicio 2
Ejercicio 2
 
Programacion lineal 2014
Programacion lineal 2014Programacion lineal 2014
Programacion lineal 2014
 
Unidad 1. Programación entera
Unidad 1. Programación enteraUnidad 1. Programación entera
Unidad 1. Programación entera
 
Programacion dinamica final
Programacion dinamica finalProgramacion dinamica final
Programacion dinamica final
 
2 precio dual y costo reducido (1)
2 precio dual y costo reducido (1)2 precio dual y costo reducido (1)
2 precio dual y costo reducido (1)
 

Similar a El problema del agente viajero resuelto por fuerza, programación dinámica y voraz

Elprobdelarutamascortawpv1 121120102007-phpapp02
Elprobdelarutamascortawpv1 121120102007-phpapp02Elprobdelarutamascortawpv1 121120102007-phpapp02
Elprobdelarutamascortawpv1 121120102007-phpapp02Juan Yanqui Velasquez
 
Titulo informe de estadisticasan etes de ordenads
Titulo informe de estadisticasan etes de ordenadsTitulo informe de estadisticasan etes de ordenads
Titulo informe de estadisticasan etes de ordenadsjeremycristhian
 
Análisis de señales para una transmisión wlan
Análisis de señales para una transmisión wlanAnálisis de señales para una transmisión wlan
Análisis de señales para una transmisión wlanjhoansebastiancastillo
 
Examen de la nueva selectividad de Matemáticas, modelo B
Examen de la nueva selectividad de Matemáticas, modelo BExamen de la nueva selectividad de Matemáticas, modelo B
Examen de la nueva selectividad de Matemáticas, modelo B20minutos
 
Proyecto eléctrico completo
Proyecto eléctrico completoProyecto eléctrico completo
Proyecto eléctrico completoDaniel García
 
EXPOSICIÓN TRANSITO (1).pptx
EXPOSICIÓN TRANSITO (1).pptxEXPOSICIÓN TRANSITO (1).pptx
EXPOSICIÓN TRANSITO (1).pptxCamiloAndresLuna1
 
Problema del agente viajero (TSP)
Problema del agente viajero (TSP)Problema del agente viajero (TSP)
Problema del agente viajero (TSP)Juan Jose Durango
 
Algoritmo del viajero.
Algoritmo del viajero.Algoritmo del viajero.
Algoritmo del viajero.JXAlarcon
 
Ejercicios de teoria de colas io
Ejercicios de teoria de colas   ioEjercicios de teoria de colas   io
Ejercicios de teoria de colas ioRonald Maximiliano
 
ARDUINO GRAFCET - Metodología para la adaptación de automatismos simulado...
ARDUINO  GRAFCET  - Metodología para la adaptación  de automatismos  simulado...ARDUINO  GRAFCET  - Metodología para la adaptación  de automatismos  simulado...
ARDUINO GRAFCET - Metodología para la adaptación de automatismos simulado...Jovanny Duque
 

Similar a El problema del agente viajero resuelto por fuerza, programación dinámica y voraz (20)

Elprobdelarutamascortawpv1 121120102007-phpapp02
Elprobdelarutamascortawpv1 121120102007-phpapp02Elprobdelarutamascortawpv1 121120102007-phpapp02
Elprobdelarutamascortawpv1 121120102007-phpapp02
 
Unidad 3
Unidad  3Unidad  3
Unidad 3
 
Problemas resueltos
Problemas resueltosProblemas resueltos
Problemas resueltos
 
Problemas resueltos
Problemas resueltosProblemas resueltos
Problemas resueltos
 
Titulo informe de estadisticasan etes de ordenads
Titulo informe de estadisticasan etes de ordenadsTitulo informe de estadisticasan etes de ordenads
Titulo informe de estadisticasan etes de ordenads
 
Problema del agente viajero monografia
Problema del agente viajero monografiaProblema del agente viajero monografia
Problema del agente viajero monografia
 
Análisis de señales para una transmisión wlan
Análisis de señales para una transmisión wlanAnálisis de señales para una transmisión wlan
Análisis de señales para una transmisión wlan
 
Examen de la nueva selectividad de Matemáticas, modelo B
Examen de la nueva selectividad de Matemáticas, modelo BExamen de la nueva selectividad de Matemáticas, modelo B
Examen de la nueva selectividad de Matemáticas, modelo B
 
Proyecto eléctrico completo
Proyecto eléctrico completoProyecto eléctrico completo
Proyecto eléctrico completo
 
Ejercicio método venezolano
Ejercicio método venezolanoEjercicio método venezolano
Ejercicio método venezolano
 
Materia
MateriaMateria
Materia
 
Materia
MateriaMateria
Materia
 
Materia
MateriaMateria
Materia
 
EXPOSICIÓN TRANSITO (1).pptx
EXPOSICIÓN TRANSITO (1).pptxEXPOSICIÓN TRANSITO (1).pptx
EXPOSICIÓN TRANSITO (1).pptx
 
Problema del agente viajero (TSP)
Problema del agente viajero (TSP)Problema del agente viajero (TSP)
Problema del agente viajero (TSP)
 
Tema3
Tema3Tema3
Tema3
 
Tema 5 ejemplo 1
Tema 5 ejemplo 1Tema 5 ejemplo 1
Tema 5 ejemplo 1
 
Algoritmo del viajero.
Algoritmo del viajero.Algoritmo del viajero.
Algoritmo del viajero.
 
Ejercicios de teoria de colas io
Ejercicios de teoria de colas   ioEjercicios de teoria de colas   io
Ejercicios de teoria de colas io
 
ARDUINO GRAFCET - Metodología para la adaptación de automatismos simulado...
ARDUINO  GRAFCET  - Metodología para la adaptación  de automatismos  simulado...ARDUINO  GRAFCET  - Metodología para la adaptación  de automatismos  simulado...
ARDUINO GRAFCET - Metodología para la adaptación de automatismos simulado...
 

Más de Luis Alfredo Moctezuma Pascual

Hacia la clasificación de actividad e inactividad lingüística a partir de señ...
Hacia la clasificación de actividad e inactividad lingüística a partir de señ...Hacia la clasificación de actividad e inactividad lingüística a partir de señ...
Hacia la clasificación de actividad e inactividad lingüística a partir de señ...Luis Alfredo Moctezuma Pascual
 
Relación contextual de palabras en libros de Shakespeare usando mapas autoorg...
Relación contextual de palabras en libros de Shakespeare usando mapas autoorg...Relación contextual de palabras en libros de Shakespeare usando mapas autoorg...
Relación contextual de palabras en libros de Shakespeare usando mapas autoorg...Luis Alfredo Moctezuma Pascual
 

Más de Luis Alfredo Moctezuma Pascual (15)

Hacia la clasificación de actividad e inactividad lingüística a partir de señ...
Hacia la clasificación de actividad e inactividad lingüística a partir de señ...Hacia la clasificación de actividad e inactividad lingüística a partir de señ...
Hacia la clasificación de actividad e inactividad lingüística a partir de señ...
 
Robot angular en matlab
Robot angular en matlabRobot angular en matlab
Robot angular en matlab
 
Formulaciones variacionales y métodos variacionales
Formulaciones variacionales y métodos variacionalesFormulaciones variacionales y métodos variacionales
Formulaciones variacionales y métodos variacionales
 
Programacion lineal entera
Programacion lineal enteraProgramacion lineal entera
Programacion lineal entera
 
C space
C spaceC space
C space
 
Limites de tolerancia
Limites de toleranciaLimites de tolerancia
Limites de tolerancia
 
Distribuciones de muestreo
Distribuciones de muestreoDistribuciones de muestreo
Distribuciones de muestreo
 
Cubierta de vertices, busqueda ávida y exhaustiva
Cubierta de vertices, busqueda ávida y exhaustivaCubierta de vertices, busqueda ávida y exhaustiva
Cubierta de vertices, busqueda ávida y exhaustiva
 
Conjunto independiente máximo
Conjunto independiente máximoConjunto independiente máximo
Conjunto independiente máximo
 
Relación contextual de palabras en libros de Shakespeare usando mapas autoorg...
Relación contextual de palabras en libros de Shakespeare usando mapas autoorg...Relación contextual de palabras en libros de Shakespeare usando mapas autoorg...
Relación contextual de palabras en libros de Shakespeare usando mapas autoorg...
 
Locomoción triciclo
Locomoción tricicloLocomoción triciclo
Locomoción triciclo
 
Bug1 y bug2
Bug1 y bug2Bug1 y bug2
Bug1 y bug2
 
Varianza y covarianza
Varianza y covarianzaVarianza y covarianza
Varianza y covarianza
 
Distribución gamma y exponencial
Distribución gamma y exponencialDistribución gamma y exponencial
Distribución gamma y exponencial
 
Aproximacion normal a la binomial
Aproximacion normal a la binomialAproximacion normal a la binomial
Aproximacion normal a la binomial
 

Último

Carbohidratos, lipidos, acidos nucleicos, y principios del metabolismo.
Carbohidratos, lipidos, acidos nucleicos, y principios del metabolismo.Carbohidratos, lipidos, acidos nucleicos, y principios del metabolismo.
Carbohidratos, lipidos, acidos nucleicos, y principios del metabolismo.Ralvila5
 
Novena a la Medalla Milagrosa, es una devoción
Novena a la Medalla Milagrosa,  es una devociónNovena a la Medalla Milagrosa,  es una devoción
Novena a la Medalla Milagrosa, es una devociónandres2973
 
EXPOSICION NORMA TECNICA DE SALUD 2024 -
EXPOSICION NORMA TECNICA DE SALUD 2024 -EXPOSICION NORMA TECNICA DE SALUD 2024 -
EXPOSICION NORMA TECNICA DE SALUD 2024 -FridaDesiredMenesesF
 
Mapa conceptual de la Cristalografía .pdf
Mapa conceptual de la Cristalografía .pdfMapa conceptual de la Cristalografía .pdf
Mapa conceptual de la Cristalografía .pdfHeidyYamileth
 
Aprendamos el proceso de regeneración.pptx
Aprendamos el proceso de regeneración.pptxAprendamos el proceso de regeneración.pptx
Aprendamos el proceso de regeneración.pptxJuanaMLpez
 
NEMATODOS TISULARES-2020.pdf, DE LA UNAN MANAGUA
NEMATODOS TISULARES-2020.pdf, DE LA UNAN MANAGUANEMATODOS TISULARES-2020.pdf, DE LA UNAN MANAGUA
NEMATODOS TISULARES-2020.pdf, DE LA UNAN MANAGUAcelixfabiolacaleropa
 
Sistema Endocrino, rol de los receptores hormonales, hormonas circulantes y l...
Sistema Endocrino, rol de los receptores hormonales, hormonas circulantes y l...Sistema Endocrino, rol de los receptores hormonales, hormonas circulantes y l...
Sistema Endocrino, rol de los receptores hormonales, hormonas circulantes y l...GloriaMeza12
 
Descubrimiento de la Penicilina y su uso en la seguna guerra mundial.pdf
Descubrimiento de la Penicilina y su uso en la seguna guerra mundial.pdfDescubrimiento de la Penicilina y su uso en la seguna guerra mundial.pdf
Descubrimiento de la Penicilina y su uso en la seguna guerra mundial.pdfjavisoad
 
el lugar santo y santisimo final.pptx y sus partes
el lugar santo y santisimo final.pptx y sus partesel lugar santo y santisimo final.pptx y sus partes
el lugar santo y santisimo final.pptx y sus partesAsihleyyanguez
 
Presentación Laboratorio, métodos de separación
Presentación Laboratorio, métodos de separaciónPresentación Laboratorio, métodos de separación
Presentación Laboratorio, métodos de separaciónac3630500
 
FRACTURAS EXPUESTAS en niños y adolecentes.pdf
FRACTURAS EXPUESTAS en niños y adolecentes.pdfFRACTURAS EXPUESTAS en niños y adolecentes.pdf
FRACTURAS EXPUESTAS en niños y adolecentes.pdfhugohilasaca
 
Evangelismo los pasos para logar la sancion
Evangelismo los pasos para logar la sancionEvangelismo los pasos para logar la sancion
Evangelismo los pasos para logar la sancionniro13
 
ESQUELETO HUMANO ARTICULADO PARA PRIMARIA
ESQUELETO HUMANO ARTICULADO PARA PRIMARIAESQUELETO HUMANO ARTICULADO PARA PRIMARIA
ESQUELETO HUMANO ARTICULADO PARA PRIMARIAjuliocesartolucarami
 
PLAN DE TUTORÍA DEL AULA PARA SEGUNDO GRADO
PLAN DE TUTORÍA DEL AULA PARA  SEGUNDO GRADOPLAN DE TUTORÍA DEL AULA PARA  SEGUNDO GRADO
PLAN DE TUTORÍA DEL AULA PARA SEGUNDO GRADOunsaalfredo
 
Fritzsche, Peter. - Vida y muerte en el Tercer Reich [ocr] [2009].pdf
Fritzsche, Peter. - Vida y muerte en el Tercer Reich [ocr] [2009].pdfFritzsche, Peter. - Vida y muerte en el Tercer Reich [ocr] [2009].pdf
Fritzsche, Peter. - Vida y muerte en el Tercer Reich [ocr] [2009].pdffrank0071
 
Sujeción e inmobilización de perros y gatos (1).pdf
Sujeción e inmobilización de perros y gatos (1).pdfSujeción e inmobilización de perros y gatos (1).pdf
Sujeción e inmobilización de perros y gatos (1).pdfXIMENAESTEFANIAGARCI1
 
problemas_oscilaciones_amortiguadas.pdf aplicadas a la mecanica
problemas_oscilaciones_amortiguadas.pdf aplicadas a la mecanicaproblemas_oscilaciones_amortiguadas.pdf aplicadas a la mecanica
problemas_oscilaciones_amortiguadas.pdf aplicadas a la mecanicaArturoDavilaObando
 
Documento Técnico Base del Inventario de Especies Vegetales Nativas del Estad...
Documento Técnico Base del Inventario de Especies Vegetales Nativas del Estad...Documento Técnico Base del Inventario de Especies Vegetales Nativas del Estad...
Documento Técnico Base del Inventario de Especies Vegetales Nativas del Estad...Juan Carlos Fonseca Mata
 
Músculos de la pared abdominal.pdf que ayuda al cuerpo humano
Músculos de la pared abdominal.pdf que ayuda al cuerpo humanoMúsculos de la pared abdominal.pdf que ayuda al cuerpo humano
Músculos de la pared abdominal.pdf que ayuda al cuerpo humanoYEFERSONALBERTOGONZA
 
5.1 INCREMENTO Y DIFERENCIACIÓN (3).pptx
5.1 INCREMENTO Y DIFERENCIACIÓN (3).pptx5.1 INCREMENTO Y DIFERENCIACIÓN (3).pptx
5.1 INCREMENTO Y DIFERENCIACIÓN (3).pptxllacza2004
 

Último (20)

Carbohidratos, lipidos, acidos nucleicos, y principios del metabolismo.
Carbohidratos, lipidos, acidos nucleicos, y principios del metabolismo.Carbohidratos, lipidos, acidos nucleicos, y principios del metabolismo.
Carbohidratos, lipidos, acidos nucleicos, y principios del metabolismo.
 
Novena a la Medalla Milagrosa, es una devoción
Novena a la Medalla Milagrosa,  es una devociónNovena a la Medalla Milagrosa,  es una devoción
Novena a la Medalla Milagrosa, es una devoción
 
EXPOSICION NORMA TECNICA DE SALUD 2024 -
EXPOSICION NORMA TECNICA DE SALUD 2024 -EXPOSICION NORMA TECNICA DE SALUD 2024 -
EXPOSICION NORMA TECNICA DE SALUD 2024 -
 
Mapa conceptual de la Cristalografía .pdf
Mapa conceptual de la Cristalografía .pdfMapa conceptual de la Cristalografía .pdf
Mapa conceptual de la Cristalografía .pdf
 
Aprendamos el proceso de regeneración.pptx
Aprendamos el proceso de regeneración.pptxAprendamos el proceso de regeneración.pptx
Aprendamos el proceso de regeneración.pptx
 
NEMATODOS TISULARES-2020.pdf, DE LA UNAN MANAGUA
NEMATODOS TISULARES-2020.pdf, DE LA UNAN MANAGUANEMATODOS TISULARES-2020.pdf, DE LA UNAN MANAGUA
NEMATODOS TISULARES-2020.pdf, DE LA UNAN MANAGUA
 
Sistema Endocrino, rol de los receptores hormonales, hormonas circulantes y l...
Sistema Endocrino, rol de los receptores hormonales, hormonas circulantes y l...Sistema Endocrino, rol de los receptores hormonales, hormonas circulantes y l...
Sistema Endocrino, rol de los receptores hormonales, hormonas circulantes y l...
 
Descubrimiento de la Penicilina y su uso en la seguna guerra mundial.pdf
Descubrimiento de la Penicilina y su uso en la seguna guerra mundial.pdfDescubrimiento de la Penicilina y su uso en la seguna guerra mundial.pdf
Descubrimiento de la Penicilina y su uso en la seguna guerra mundial.pdf
 
el lugar santo y santisimo final.pptx y sus partes
el lugar santo y santisimo final.pptx y sus partesel lugar santo y santisimo final.pptx y sus partes
el lugar santo y santisimo final.pptx y sus partes
 
Presentación Laboratorio, métodos de separación
Presentación Laboratorio, métodos de separaciónPresentación Laboratorio, métodos de separación
Presentación Laboratorio, métodos de separación
 
FRACTURAS EXPUESTAS en niños y adolecentes.pdf
FRACTURAS EXPUESTAS en niños y adolecentes.pdfFRACTURAS EXPUESTAS en niños y adolecentes.pdf
FRACTURAS EXPUESTAS en niños y adolecentes.pdf
 
Evangelismo los pasos para logar la sancion
Evangelismo los pasos para logar la sancionEvangelismo los pasos para logar la sancion
Evangelismo los pasos para logar la sancion
 
ESQUELETO HUMANO ARTICULADO PARA PRIMARIA
ESQUELETO HUMANO ARTICULADO PARA PRIMARIAESQUELETO HUMANO ARTICULADO PARA PRIMARIA
ESQUELETO HUMANO ARTICULADO PARA PRIMARIA
 
PLAN DE TUTORÍA DEL AULA PARA SEGUNDO GRADO
PLAN DE TUTORÍA DEL AULA PARA  SEGUNDO GRADOPLAN DE TUTORÍA DEL AULA PARA  SEGUNDO GRADO
PLAN DE TUTORÍA DEL AULA PARA SEGUNDO GRADO
 
Fritzsche, Peter. - Vida y muerte en el Tercer Reich [ocr] [2009].pdf
Fritzsche, Peter. - Vida y muerte en el Tercer Reich [ocr] [2009].pdfFritzsche, Peter. - Vida y muerte en el Tercer Reich [ocr] [2009].pdf
Fritzsche, Peter. - Vida y muerte en el Tercer Reich [ocr] [2009].pdf
 
Sujeción e inmobilización de perros y gatos (1).pdf
Sujeción e inmobilización de perros y gatos (1).pdfSujeción e inmobilización de perros y gatos (1).pdf
Sujeción e inmobilización de perros y gatos (1).pdf
 
problemas_oscilaciones_amortiguadas.pdf aplicadas a la mecanica
problemas_oscilaciones_amortiguadas.pdf aplicadas a la mecanicaproblemas_oscilaciones_amortiguadas.pdf aplicadas a la mecanica
problemas_oscilaciones_amortiguadas.pdf aplicadas a la mecanica
 
Documento Técnico Base del Inventario de Especies Vegetales Nativas del Estad...
Documento Técnico Base del Inventario de Especies Vegetales Nativas del Estad...Documento Técnico Base del Inventario de Especies Vegetales Nativas del Estad...
Documento Técnico Base del Inventario de Especies Vegetales Nativas del Estad...
 
Músculos de la pared abdominal.pdf que ayuda al cuerpo humano
Músculos de la pared abdominal.pdf que ayuda al cuerpo humanoMúsculos de la pared abdominal.pdf que ayuda al cuerpo humano
Músculos de la pared abdominal.pdf que ayuda al cuerpo humano
 
5.1 INCREMENTO Y DIFERENCIACIÓN (3).pptx
5.1 INCREMENTO Y DIFERENCIACIÓN (3).pptx5.1 INCREMENTO Y DIFERENCIACIÓN (3).pptx
5.1 INCREMENTO Y DIFERENCIACIÓN (3).pptx
 

El problema del agente viajero resuelto por fuerza, programación dinámica y voraz

  • 1. EL AGENTE VIAJERO Análisis y diseño de algoritmos, MCC 2015 Luis Alfredo Moctezuma Pascual BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN
  • 2. INTRODUCCIÓN  El problema del agente viajero(TSP) ha sido estudiado desde hace mucho tiempo, debido a su complejidad computacional y por la gran cantidad de aplicaciones a la vida real  La minimización de rutas de transporte, es decir encontrar la ruta que nos cueste menos para ir de un lugar a otro  En la industria por ejemplo se ha usado para la distribución de mercancía  Logística en general
  • 3. INTRODUCCIÓN  En la computación es muy importante analizar estos problemas ya que inicialmente se propusieron soluciones que tardaban mucho tiempo  Lo que se busca es minimizar la complejidad computacional que requiere un problema para dar una solución
  • 4. EL AGENTE VIAJERO  El problema consta de un conjunto de ciudades por las que se tiene que pasar exactamente una vez y regresar al punto de origen con el menor costo posible.
  • 5. EL AGENTE VIAJERO  Para esta tarea se han realizado distintos tipos de algoritmos, como lo son:  Fuerza bruta  Divide y vencerás  Decrece y conquista  Programación dinámica  Algoritmos voraces  Algoritmos genéticos  Entre otros
  • 6. EL AGENTE VIAJERO  Algunos de los métodos listados anteriormente dan una solución parcial del problema, o también llamadas soluciones locales. Cuando se resuelve por fuerza bruta se asegura que se obtendrá la mejor ruta, es decir la ruta que cuesta menos.
  • 7. MÉTODOS  Se presentan tres diferentes técnicas usadas para resolver el problema del agente viajero, así como su complejidad computacional.  Con este análisis de cada uno de los métodos usados se pueden mostrar las ventajas y desventajas de usar cada uno de ellos.
  • 9. 1 FUERZA BRUTA  En el problema del agente viajero la solución más directa puede ser, intentar todas las permutaciones y ver cuál de estas es la menor.  El tiempo de ejecución es un factor polinómico del orden O(n!), el factorial del número de ciudades, esta solución es impracticable para dado solamente 20 ciudades por ejemplo. 2,432,902,008,000,000,000 permutaciones
  • 10. 1 FUERZA BRUTA  En general, se pueden resolver problemas con subestructuras óptimas siguiendo estos tres pasos:  Paso 1: Generar una permutación con cada vecino hasta llegar al destino.  Paso 2: Guardar la posible ruta y calcular el costo  Repetir paso 1 y 2  Comparar todas las iteraciones, la ruta mínima es el resultado óptimo.
  • 11. 1 FUERZA BRUTA  Es posible generar las permutaciones de todos los nodos usando el algoritmo de Jhonson Trotter para posteriormente usar como posible ruta cada una de las permutaciones.
  • 12. 1 FUERZA BRUTA  Para generar las permutaciones se usó una clase predeterminada de java llamada nextPermutation, que aplica el algoritmo de Jhonson Trotter.  Johnson Trotter(n)  //Input: Un entero positive n  initialize the first permutation with: <0, <1, <2  //(Todos los elementos apuntando hacia la izquierda)  while ( //La ultima permutacion tenga un element movil)  // k ← el elemento movil k mas grande  //Intercambiar K con el elemento que lo apunta  //Invertir la direccion de todos los elementos > K  //Agregar la permutacion a la lista
  • 13. 1 FUERZA BRUTA  Al tener las iteraciones realizadas, podemos tomar todas las rutas planteadas y calcular el costo, después buscar la de menor costo y proponer como la mejor. Para cada permutación i Para j=0 hasta permutacion.length Costo[i] += path[j]+ path[j+1] fin i++ fin //Buscar el arreglo de menor costo. mejorRuta=min(costo)
  • 14. 1 FUERZA BRUTA  TSP con 4 ciudades: Permutaciones C0C1C2C3C0 C0C1C3C2C0 C0C3C1C2C0 C0C3C2C1C0 C0C2C3C1C0 C0C2C1C3C0 Total de permutaciones: 3! si se parte de una ciudad especifica. Ejemplo 1 C0 C1 C2 C3 C0 0 3 4 2 C1 3 0 1 5 C2 4 1 0 2 C3 2 5 2 0
  • 15. 1 FUERZA BRUTA  TSP con 4 ciudades: Permutaciones C0C1C2C3C0 costo = 8 C0C1C3C2C0 C0C3C1C2C0 C0C3C2C1C0 C0C2C3C1C0 C0C2C1C3C0 C0 C1 C2 C3 C0 0 3 4 2 C1 3 0 1 5 C2 4 1 0 2 C3 2 5 2 0
  • 16. 1 FUERZA BRUTA  TSP con 4 ciudades: Permutaciones C0C1C2C3C0 costo = 8 C0C1C3C2C0 costo = 14 C0C3C1C2C0 C0C3C2C1C0 C0C2C3C1C0 C0C2C1C3C0 C0 C1 C2 C3 C0 0 3 4 2 C1 3 0 1 5 C2 4 1 0 2 C3 2 5 2 0
  • 17. 1 FUERZA BRUTA  TSP con 4 ciudades: Permutaciones C0C1C2C3C0 costo = 8 C0C1C3C2C0 costo = 14 C0C3C1C2C0 costo = 12 C0C3C2C1C0 C0C2C3C1C0 C0C2C1C3C0 C0 C1 C2 C3 C0 0 3 4 2 C1 3 0 1 5 C2 4 1 0 2 C3 2 5 2 0
  • 18. 1 FUERZA BRUTA  TSP con 4 ciudades: Permutaciones C0C1C2C3C0 costo = 8 C0C1C3C2C0 costo = 14 C0C3C1C2C0 costo = 12 C0C3C2C1C0 costo = 8 C0C2C3C1C0 C0C2C1C3C0 C0 C1 C2 C3 C0 0 3 4 2 C1 3 0 1 5 C2 4 1 0 2 C3 2 5 2 0
  • 19. 1 FUERZA BRUTA  TSP con 4 ciudades: Permutaciones C0C1C2C3C0 costo = 8 C0C1C3C2C0 costo = 14 C0C3C1C2C0 costo = 12 C0C3C2C1C0 costo = 8 C0C2C3C1C0 costo = 14 C0C2C1C3C0 C0 C1 C2 C3 C0 0 3 4 2 C1 3 0 1 5 C2 4 1 0 2 C3 2 5 2 0
  • 20. 1 FUERZA BRUTA  TSP con 4 ciudades: Permutaciones C0C1C2C3C0 costo = 8 C0C1C3C2C0 costo = 14 C0C3C1C2C0 costo = 12 C0C3C2C1C0 costo = 8 C0C2C3C1C0 costo = 14 C0C2C1C3C0 costo = 12 C0 C1 C2 C3 C0 0 3 4 2 C1 3 0 1 5 C2 4 1 0 2 C3 2 5 2 0
  • 21. 1 FUERZA BRUTA  TSP con 4 ciudades: Mejor ruta C0C1C2C3C0 costo = 8 C0C1C3C2C0 costo = 14 C0C3C1C2C0 costo = 12 C0C3C2C1C0 costo = 8 C0C2C3C1C0 costo = 14 C0C2C1C3C0 costo = 12 C0 C1 C2 C3 C0 0 3 4 2 C1 3 0 1 5 C2 4 1 0 2 C3 2 5 2 0
  • 22. 1 FUERZA BRUTA  El problema se resolvió para 16 ciudades con las distancias que se muestran en la siguiente tabla: C0 C1 C2 C3 C4 C6 C10 C13 C8 C7 C15 C12 C9 C5C14C110 costo = 24 tiempo de ejecución 11,164 ms C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C0 0 3 4 2 5 3 1 1 4 4 2 2 3 2 5 4 C1 3 0 1 5 3 3 4 2 2 5 3 2 2 3 5 5 C2 4 1 0 2 5 3 3 5 5 5 5 5 4 1 4 1 C3 2 5 2 0 1 1 2 1 3 2 3 2 2 3 5 3 C4 5 3 5 1 0 3 3 2 2 1 1 5 2 2 5 5 C5 3 3 3 1 3 0 4 3 1 1 3 5 3 4 1 3 C6 1 4 3 2 3 4 0 3 2 2 1 2 3 3 5 5 C7 1 2 5 1 2 3 3 0 1 4 5 5 1 4 4 2 C8 4 2 5 3 2 1 2 1 0 2 4 4 3 1 1 3 C9 4 5 5 2 1 1 2 4 2 0 3 3 1 3 5 5 C10 2 3 5 3 1 3 1 5 4 3 0 2 3 1 2 4 C11 2 2 5 2 5 5 2 5 4 3 2 0 5 3 2 5 C12 3 2 3 2 2 3 3 1 2 1 3 5 0 5 5 1 C13 2 3 1 3 2 4 3 4 1 3 1 3 5 0 2 5 C14 5 5 4 5 5 1 5 4 1 5 2 2 5 2 0 5 C15 4 5 1 3 5 3 5 2 3 5 4 5 1 5 5 0 Ejemplo 2
  • 23. 1 FUERZA BRUTA  Por fuerza bruta se ha logrado encontrar el camino con un óptimo global, es decir el que cuesta menos para recorrer el camino del agente viajero. Con 16 ciudades el algoritmo genera 16! 20, 922, 789, 888, 000 permutaciones, luego cada permutación es usada para calcular el costo y finalmente poder comparar cada ruta en busca de la menor.
  • 24. 1 FUERZA BRUTA Análisis de complejidad Para realizar las permutaciones con el algoritmo de Jhonson Trotter se necesita un tiempo de O(n!), mas 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 técnica necesita un tiempo de O(n!).
  • 26. 2 PROGRAMACIÓN DINÁMICA  En este tipo de programación utiliza un método para reducir el tiempo de ejecución de un algoritmo mediante la división en subproblemas y resolver recordando todas las soluciones por si en las siguientes iteraciones fuera necesarias nuevamente.  TSP con algoritmo Held–Karp  Resuelve el problema en 𝜃 𝑛2 2 𝑛  Necesita 𝑛2 2 𝑛 espacio para almacenar operaciones
  • 27. 2 PROGRAMACIÓN DINÁMICA  𝐷(𝑉𝑖 𝑆) Será la longitud del camino mínimo partiendo del vértice Vi que pasa por todos los vértices del conjunto S y vuelve al vértice 𝑉𝑖 En general la relación de recurrencia es la siguiente: 𝑔 𝑖, { } = 𝐿𝑖1 Cuando S es { } 𝑔 𝑖, 𝑆 = 𝑀𝑖𝑛𝑗∈𝑆 𝐿𝑖𝑗 + 𝑔 𝑗, 𝑆 𝑗 𝒈(𝒊, 𝑺) Será la longitud del camino mínimo partiendo del vértice i que pasa por todos los vértices del conjunto S y vuelve al vértice 𝒊.
  • 28. 2 PROGRAMACIÓN DINÁMICA  Aplicar la ecuación de recurrencia 𝑔 𝑖, { } = 𝐿𝑖1 Cuando S es { } g(1,Ø) = 5 g(2,Ø) = 6 g(3,Ø) = 8 𝑔 𝑖, 𝑆 = 𝑀𝑖𝑛𝑗∈𝑆 𝐿𝑖𝑗 + 𝑔 𝑗, 𝑆 𝑗 𝑔(2, {3}) = 𝑀𝑖𝑛{ 𝐿23 + 𝑔(3, Ø) } = 9 + 6 = 15 𝑔(2, {4}) = 𝑀𝑖𝑛{ 𝐿24 + 𝑔(4, Ø) } = 10 + 8 = 18 𝑔(3, {2}) = 𝑀𝑖𝑛{𝐿32 + 𝑔(2, Ø) } = 13 + 5 = 18 𝑔(3, {4}) = 𝑀𝑖𝑛{𝐿34 + 𝑔(4, Ø) } = 12 + 8 = 20 𝑔(4, {2}) = 𝑀𝑖𝑛{𝐿42 + 𝑔(2, Ø) } = 8 + 5 = 13 𝑔(4, {3}) = 𝑀𝑖𝑛{𝐿43 + 𝑔(3, Ø) } = 9 + 6 = 15 L  0 10 15 20 5 0 9 10 6 13 0 12 8 8 9 0         Ejemplo 1
  • 29. 2 PROGRAMACIÓN DINÁMICA  Aplicar la ecuación de recurrencia 𝑔 𝑖, 𝑆 = 𝑀𝑖𝑛𝑗∈𝑆 𝐿𝑖𝑗 + 𝑔 𝑗, 𝑆 𝑗  𝑔 2, 3,4 = 𝑀𝑖𝑛 𝐿23 + 𝑔 3, 4 , 𝐿24 +𝑔 4, 3 = 9 + 20, 10 + 15 = 29, 25 = 25  g(3,{2,4}) =Min{ 𝐿32 + g(2,{4}) , 𝐿34 + g(4,{2})} = 13 +18, 12+13 = 31, 25= 25  g(4,{2,3}) = Min{ 𝐿42 + g(2,{3}) , 𝐿43 + g(3,{2})} = 8 +15, 9+18 = 23, 27= 23 L  0 10 15 20 5 0 9 10 6 13 0 12 8 8 9 0        
  • 30. 2 PROGRAMACIÓN DINÁMICA  Aplicar la ecuación de recurrencia 𝑔 𝑖, 𝑆 = 𝑀𝑖𝑛𝑗∈𝑆 𝐿𝑖𝑗 + 𝑔 𝑗, 𝑆 𝑗  𝑔 (1, {2,3,4}) = 𝑀𝑖𝑛{𝐿12 + 𝑔(2, {3,4}) , 𝐿13 + 𝑔(3, {2,4}) , 𝐿14 + 𝑔(4, {2,3}) } =10+25, 15+25, 20+23 = 35, 40,43 = 35 es la ruta de menor costo 𝐿12 + 𝑔(2, {3,4}) = 𝐿12 + ( 𝐿24 + 𝑔(4, {3}) ) = 𝐿12 + 𝐿24 + (𝐿43 + 𝑔(3, Ø)) = 𝐿12 + 𝐿24 + 𝐿43 + 𝐿31 = 10 + 10 + 9 + 6 = 35 La ruta de menor costo es seguir: 124 31 L  0 10 15 20 5 0 9 10 6 13 0 12 8 8 9 0        
  • 31. 2 PROGRAMACIÓN DINÁMICA  La ruta de menor costo es seguir: 124 31
  • 32. 2 PROGRAMACIÓN DINÁMICA . C0 C1 C2 C3 C4 C5 C6 C7 C0 0 2 1 3 4 5 5 6 C1 1 0 4 4 2 5 5 6 C2 5 4 0 2 2 6 5 6 C3 5 2 2 0 3 2 5 6 C4 4 2 4 2 0 3 5 6 C5 4 2 4 2 3 0 5 6 C6 4 2 4 2 4 3 0 6 C7 4 2 4 2 8 3 5 0 0  2  4  7  3  5  6  1  0 Ejemplo 2
  • 33. 2 PROGRAMACIÓN DINÁMICA Tiempo de ejecución en java 119 minutos 24 segundos C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C0 0 3 4 2 5 3 1 1 4 4 C1 3 0 1 5 3 3 4 2 2 5 C2 4 1 0 2 5 3 3 5 5 5 C3 2 5 2 0 1 1 2 1 3 2 C4 5 3 5 1 0 3 3 2 2 1 C5 3 3 3 1 3 0 4 3 1 1 C6 1 4 3 2 3 4 0 3 2 2 C7 1 2 5 1 2 3 3 0 1 4 C8 4 2 5 3 2 1 2 1 0 2 C9 4 5 5 2 1 1 2 4 2 0 07349581260 Ejemplo 3
  • 35. 2 PROGRAMACIÓN DINÁMICA  Análisis de complejidad  Cálculo de g(j,Ø): n-1 consultas a una tabla, para llenar la primera iteración.  Cálculo de los g(j,S) tales que 1≤ S=k ≤ n-2 : Tiempo de cálculo: 𝜃 𝑛 − 1 + 𝑛 − 1 𝐾 𝑛 − 2 𝑘 𝑛−2 𝑘=1 = 𝜃(𝑛2 2 𝑛)  Costo en espacio (para conservar g y J): 𝑛2 2 𝑛  Complejidad en tiempo: 𝜃(𝑛2 2 𝑛 ) (n 1) n  2 k     k sumas en total ,
  • 37. 3 ALGORITMO VORAZ  El vecino más cercano  Permite al viajante elegir la ciudad no visitada más cercana como próximo movimiento.  En promedio, retorna un camino de un 25% más largo que el menor camino posible.  Revuelve el problema del agente viajero hasta con 14,900 ciudades rápidamente.
  • 38. 3 ALGORITMO VORAZ  Para el caso del agente viajero no se asegura que la solución dada sea la mejor. En general el proceso seguido es el siguiente.  Paso 1: Se inicia la distancia en 0 ”cero” y un arreglo de vecinos vacía  Paso 2: Se toma un nodo inicial, generalmente el primero del grafo.  Paso 3: Se calculan las distancias con todos sus vecinos que no estén en la lista de visitados.  Paso 4: Se elige el vecino más cercano al nodo inicial  Paso 5: La distancia se actualiza con la distancia acumulada más la distancia del vecino más próximo.  Paso 6: El nodo inicial se guarda en la lista de visitados, el vecino seleccionado ahora es el nodo inicial.  Paso 7: Repetir desde el paso 2 mientras no se llegue al destino.
  • 39. 3 ALGORITMO VORAZ  Ejemplo 1  C0  min(C1,C2,C3) = C0  C2  C2  min(C1,C3) = C2  C3  C3 min(C1) = C3  C1  C1  C0 C0C2C3C1C0 costo= 1+2+2+1=6 C0 C1 C2 C3 C0 0 2 1 3 C1 1 0 4 4 C2 5 4 0 2 C3 5 2 2 0
  • 40. 3 ALGORITMO VORAZ  Ejemplo 2 C0  min(C1,C2,C3,C4,C5) = C0  C2 costo=1 C2  min(C1,C3,C4,C5) = C2  C3 costo +=2 C3  min(C1,C4,C5) = C3  C1 costo += 2 C1  min(C4,C5) = C1  C4 costo +=2 C4  min(C5) = C4  C5 costo+=3 Regresar a C0 costo += 4 0231450 costo=1+2+2+2+3+4 = 14 C0 C1 C2 C3 C4 C5 C0 0 2 1 3 4 5 C1 1 0 4 4 2 5 C2 5 4 0 2 2 6 C3 5 2 2 0 3 2 C4 4 2 4 2 0 3 C5 4 2 4 2 3 0
  • 41. 3 ALGORITMO VORAZ  Ejemplo 2 0231450 costo=1+2+2+2+3+4 = 14 C0 C1 C2 C3 C4 C5 C0 0 2 1 3 4 5 C1 1 0 4 4 2 5 C2 5 4 0 2 2 6 C3 5 2 2 0 3 2 C4 4 2 4 2 0 3 C5 4 2 4 2 3 0
  • 42. 3 ALGORITMO VORAZ  Ejemplo 3 C0  min(C1,C3,C5) = C0  C2 costo +=1 C2  min(C1,C5) = C2  C1 costo +=4 C1 min(C4) = C1  C4 costo +=1 C4  min(C3,C5) = C4  C3 costo +=2 C3  min(C5) = C3  C5 costo +=2 Regresar a C0 costo +=4 0214350 costo= 14 C0 C1 C2 C3 C4 C5 C0 0 2 1 3 C1 1 0 2 5 C2 5 4 0 6 C3 5 2 0 3 2 C4 4 2 2 0 3 C5 4 2 0
  • 43. 3 ALGORITMO VORAZ  Ejemplo 3 0214350 costo= 1+2+2+2+4= 11
  • 44. 3 ALGORITMO VORAZ  Análisis 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 más pequeño en cada iteración hasta llegar al destino. Por lo tanto: 𝜃 𝑛 log 𝑛 , donde n son las ciudades.
  • 45. COMPARACIÓN  TSP con 5 ciudades FB = C0C4C2C1C3C0 costo = 13 ms=33 PD = C0C4C2C1C3C0 costo = 13 ms=33 V = C0C2C1C3C4C0 costo = 14 ms=1 C0 C1 C2 C3 C4 C0 0 3 2 3 4 C1 3 0 1 3 3 C2 2 1 0 3 2 C3 3 3 3 0 4 C4 4 3 2 4 0
  • 46. COMPARACIÓN  TSP con 8 ciudades FB = C0C6C7C5 C1C2C4C3C0 costo = 14 ms=47 PD = C0C6C7C5 C1C2C4C3C0 costo = 14 ms= 18,174 V = C0C6C7C5 C1C2C4C3 C0 costo = 14 ms=1 C 0 C 1 C 2 C 3 C 4 C 5 C 6 C 7 C0 0 3 4 2 3 1 1 C1 3 0 2 2 3 2 4 C2 4 2 0 3 3 4 2 C3 2 2 0 2 3 C4 3 3 2 0 3 3 C5 3 2 3 3 3 0 4 1 C6 1 4 3 4 0 1 C7 1 4 2 1 1 0
  • 47. COMPARACIÓN  TSP con 10 ciudades FB = C0C7C4C5C9C8C1C3C2C6C0 costo = 15 ms=450 PD = C0C7C4C5C9C8C1C3C2C6C0 costo = 15 394 minutos ~6hrs V = 06231894570 costo = 16 ms=1 C 0 C 1 C 2 C 3 C 4 C 5 C 6 C 7 C 8 C 9 C0 0 3 4 2 99 3 1 1 4 4 C1 3 0 3 2 99 4 4 99 1 99 C2 4 3 0 2 2 99 3 2 2 3 C3 2 2 2 0 2 2 99 3 3 99 C4 99 99 2 2 0 1 4 1 2 2 C5 3 4 99 2 1 0 3 2 3 2 C6 1 4 3 99 4 3 0 3 3 3 C7 1 99 2 3 1 2 3 0 99 99 C8 4 1 2 3 2 3 3 99 0 1 C9 4 99 3 99 2 2 3 99 1 0
  • 48. CONCLUSIONES  Rápido + No eficaz  voraz  Eficaz + lento  fuerza bruta  Eficaz + Alto uso de memoria  programación dinámica