Está en la página 1de 14

Problema del Vendedor Viajero

En este problema se parte de un nodo de origen y se deben visitar todos los nodos de la red y luego volver a lugar de origen. Este viaje debe ser hecho de manera tal de minimizar la longitud total de este. Se busca determinar en que orden visitar a todos los nodos de la red y a su vez recorrer la mnima distancia total 1 F 5 2 4 3

Problema del Vendedor Viajero


Para solucionar este problema se debe encontrar un ciclo que pase por todos los nodos de la red de manera tal de recorrer la mnima distancia total. Dado que en definitiva se busca un circuito que pase por todos los nodos de la red, es indiferente el lugar que designemos como origen. En la prctica se puede utilizar para: Recoleccin de telfonos pblicos. Ruta de Camin repartidor. Circuitos integrados. Tiempo de setup en mquinas.

Heurstica de solucin
1.- Escoger una ruta que comience en un nodo y recorra todos los otros nodos tal que la distancia total del recorrido sea mnima. Para establecer esta ruta se puede utilizar Prim 2.- Seleccionar un nodo base y hacer un conjunto C que contendr todos los nodos de un ciclo que pase por todos los nodos de la red. (inicialmente C est vaco)

3.- Comenzar por el nodo base y recorrer todos los nodos por la ruta encontrada inicialmente formando un ciclo. Agregar al conjunto C cada nodo visitado, respetando la secuencia de visita.

Heurstica de solucin
4.- Construir un conjunto C a partir de los nodos del conjunto C, pero eliminando los nodos repetidos. De cada conjunto C se obtiene un nico conjunto C 5.- Repita los pasos 2-3-4 utilizando distintos ciclos y seleccione el de menor distancia total.

Consideremos el siguiente ejemplo:


2 A 3 C 4 5 9 E 6 7 B 3 D

Problema del Vendedor Viajero


Primero debemos encontrar una ruta que pase por todos los nodos, para ello utilizamos Prim.
2 A 3 C 7 B 3 5 9 E 6 D

Seleccionamos el nodo inicial y comenzamos a recorrer todos los nodos formando un ciclo y cada nodo por el que vayamos pasando lo incorporamos al conjunto C C={ A C A B E B D B A}

Problema del Vendedor Viajero


2 A 3 C 2 A 3 C 4 5 9 E 6 7 4 5 7

B
3

C = {A, C, A, B, E, B, D, B, A}
D 6

C = {A, C, B, E, D, A} Dist: 3 + 4 + 5 + 6 + 7 = 25

E B

C = {A, B, E, B, D, B, A, C, A}
D

C = {A, B, E, D, C, A} Dist: 2 + 5 + 6 + + 3 =

Problema del Vendedor Viajero


2 A 3 C 4 5 7 B 3

C = {A, B, D, B, E, B, A, C, A}
D 6

C = {A, B, D, E, C, A} Dist: 2 + 3 + 6 + 9 + 3 = 23

Si aumentamos el nmero de nodos a visitar el nmero de ciclos que se pueden generar crece considerablemente. Sin embargo, en un problema de 20 nodos el tratar de resolverlo por programacin lineal podra requerir de ms de 500.000 ecuaciones.

Ejemplo
Un tcnico de la empresa, debe verificar que las conexiones entre la casa matriz y las sucursales hayan quedado bien hechas, para lo cual debe realizar una visita a cada una de las sucursales y volver nuevamente a la casa matriz. En qu orden deben recorrerse las sucursales de modo de minimizar la distancia total recorrida?

Matriz Suc 1 Suc 2 Suc 3 Suc 4 Suc 5

Matriz Suc 1 Suc 2 Suc 3 Suc 4 Suc 5 0 10 2 34 18 12 10 0 20 9 11 3 2 20 0 12 4 11 34 9 12 0 21 5 18 11 4 21 0 10 12 3 11 5 10 0

Ejemplo
9 1 10 34 11 12 20 12 11 2 18 10 4 4 3 3 5

5 21

C1 = { M 2 4 2 M 1 5 3 5 1 M } C1={ M 2 4 1 5 3 M } = 59

C2 = { M 1 5 3 5 1 M 2 4 2 M }

C2={ M 1 5 3 2 4 M } = 52

Ejemplo
9 1 10 34 11 12 20 12 11 2 18 10 4 4 3 3 5

5 21

C3 = { M 2 4 5 1 5 3 5 4 2 M } C3={ M 2 4 5 1 3 M } = 62

C4 = { M 2 4 5 3 5 1 5 4 2 M }

C4={ M 2 4 5 3 1 M } = 40

Ejercicio
Un vendedor de seguro tiene programado visitar a 6 clientes durante el da. La tabla (simtrica) muestra el tiempo (en minutos) que se demora en ir de un punto a otro. Oficina 1 2 3 4 5 6

Oficina
1 2 3 4 5 6

30
-

20
29 -

18
40 11 -

39
16 23 25 -

24
10 31 15 33 -

12
20 14 22 12 27 -

El vendedor una vez que haya terminado de visitar a estos clientes debe recibir a un nuevo cliente en su oficina, suponiendo que sale de la oficina a las 8:30 y que se demora 30 minutos con cada cliente, cul es la hora ms temprana que podra citar al nuevo cliente?

Ejercicio
Obtener el PRIM para poder encontrar la(s) rutas posible(s) 3 5 OF 6 1

2 C1 = { OF 6 4 6 2 3 5 1 5 3 2 6 OF}

4 C2 = { OF 6 2 3 5 1 5 3 2 6 4 6 OF}

C1 = { OF 6 4 2 3 5 1 OF}
Tiempo: 113 minutos

C2 = { OF 6 2 3 5 1 4 OF}
Tiempo: 117 minutos

Ejercicio
Sale de la oficina a las 8:30, ocupa 113 minutos en ir de un lugar a otro y 3 horas en estar con los clientes, por lo que lo ms temprano que podra citar al cliente es a las 13:23

NOTA: como el mtodo del vendedor viajero es una heurstica, no nos asegura que el resultado sea el ptimo, pero si es una buena solucin
Ruta ptima: OF 6 4 1 5 3 2 OF Tiempo utilizado: 96 minutos
1 OF

5
6 2 4

Ejercicio
Supongamos ahora una nueva restriccin: El cliente 3 debe ser visitado antes que el cliente 2. Para poder cumplir con esta restriccin debemos analizar nuestro PRIM y cambiar el punto de partida a uno que nos acomode para poder cumplir con la restriccin. 1 OF 3

C1 = { 3 2 6 4 6 OF 6 2 3 5 1 5 3 } 5
6 C1 = { 3 2 6 4 OF 5 1 3} Ordenando queda: C1 = { OF 5 1 3 2 6 4 OF}

2 4

Tiempo: 150 minutos