Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sumario:
1. Descripción del Problema del Agente Viajero (PAV).
2. Aplicaciones del Problema del Agente Viajero (PAV).
3. Modelo de programación lineal para el problema del agente viajero (PAV).
Objetivos:
El problema del agente viajero (PAV o TSP, este último del inglés Traveling Salesperson Problem)
se puede formular como: “Dado un conjunto de n ciudades, de las cuales se conoce para cada
par de ellas, la distancia que las separa, un agente viajero ha de partir de una ciudad de origen
y debe visitar exactamente una vez cada ciudad del conjunto, y retornar al punto de partida1. El
problema consiste en encontrar el ciclo para el cual la distancia total recorrida (o el costo o el
tiempo u otra medida de efectividad) sea mínima [1]. El modelo del PAV asociado se define por
medio de dos datos:
• El número de ciudades, N.
• Las distancias (o el costo o el tiempo) dij entre las ciudades i y j [2].
Ejemplo 1.1: Un agente distribuidor debe visitar a 5 clientes. La Figura 1 (a) muestra la red o
grafo resultante de las posibles conexiones entre las ciudades y la Figura 1 (b) muestra las
posibles combinaciones de rutas resultantes de este problema para un total de 24 rutas posibles.
Figura 1: PAV de 5 ciudades (Ejemplo 1.1). a) Red o grafo resultante. b) Árbol de opciones de rutas.
Fuente: Colectivo de autores.
El Ejemplo 1.1, Figura 1 (a), permite ilustrar como el PAV puede ser enunciado formalmente
como una red G = [N, A, C] definida por un conjunto de nodos N = [2...,n] (ciudades), A el
conjunto de arcos o aristas (caminos que conectan las ciudades entre sí), y C = [Cij] la matriz de
costos, donde Cij es el costo de moverse desde el nodo i al nodo j. Los nodos i = [2, 3, 4, …, n] se
corresponden con los nodos a visitar y el 1 es el nodo de origen y destino. A cada arco (i, j) se le
asocia un valor no negativo Cij, que representa el coste de viajar del nodo i al j [1, 3].
1 Un recorrido donde cada nodo i se visita una sola vez es llamado ciclo hamiltoniano o tour.
punto que se visite se regresará al origen. De esta forma al analizar las combinaciones para un
PAV con 5 ciudades se obtienen un total de 24 rutas posibles, o lo que es lo mismo (N – 1)!
alternativas. Para un PAV con 10 puntos a visitar, se obtendrían (N - 1)! = (10 – 1)! = 9! = 362 880
combinaciones, para 11 puntos (tan solo 1 más) serían 3 628 800 variantes. Esta característica
hace que, aun cuando existen algoritmos exactos para darle solución a este tipo de problemas,
en la medida que el número N de ciudades a visitar en el PAV crece, la complejidad
computacional lo hace también, hasta un punto en el cual sería necesario esperar demasiado
tiempo para obtener un resultado [1, 3].
Ejemplo 1.2: Considere las distancias entre las ciudades del Ejemplo 1.1 que se muestran en la
Tabla 1 y confecciones la matriz de distancias.
Tabla 1: Tabla de distancias entre los puntos del Tabla 2: Matriz de cotos para el Ejemplo 1.1.
Ejemplo 1.1 [3].
Ciudades 1 2 3 4 5
Ciudades 2 3 4 5 1 M 132 217 164 58
1 132 217 164 58 2 132 M 290 201 79
2 - 290 201 79 3 217 290 M 113 303
3 - - 113 303 4 164 201 113 M 196
4 - - - 196 5 58 79 303 196 M
La Tabla 2 muestra la matriz de costos resultante a partir de la Tabla 1 para el Ejemplo 1.1. Para
su confección se tuvo en cuenta que:
• La matriz debe tener N cantidad de filas y columnas – La tabla de datos tiene una fila y
una columna menos porque es simétrica (falta la columna 1 y la fila 5), aunque es la
tabla es cuadra (número de fila = número de columnas) es 4x4 y no 5x5 dada la cantidad
de ciudades N a visitar.
• La Tabla 1 muestra que la matriz es simétrica, o lo que es lo mismo la distancia de i a j
es igual que la de j a i para todos los puntos de la matriz, pudiéndose completar de esta
forma los espacios en blanco por debajo de la diagonal.
• Las distancias del punto i al j, donde i = j, fueron penalizadas por M (un número muy
grande) pues en la practicas no son caminos lógicos, ir de un punto a sí mismo y podrían
generar bucles durante la búsqueda de soluciones.
Ejemplo 1.3: Considere las siguientes restricciones para el traslado entre las ciudades del
Ejemplo 1.1 y realice las modificaciones correspondientes a la matriz de distancias obtenida en
el Ejemplo 1.2.
a) Para viajar entre los puntos 4 y 5 hay que cruzar un puente, el cual tiene cerrada la senda
de ida de 4 a 5 no así el de regreso.
b) El punto 1 es realmente la piquera de la empresa de vehículos desde donde estos salen
en las mañanas a trabajar y regresan en la tarde al finalizar la distribución en la última
ciudad.
c) El punto 2 es el almacén desde donde cargan la mercancía los distribuidores para
entregar en las ciudades 3, 4 y 5.
Tabla 3: Matriz de cotos para el Ejemplo 1.1 modificada por restricciones del Ejemplo 1.3.
Ciudades 1 2 3 4 5
1 M 132 M M M
2 M M 290 201 79
3 217 M M 113 303
4 164 M 113 M M
5 58 M 303 196 M
La Tabla 3 muestra la matriz de costos resultante de las restricciones que se dan para el Ejemplo
1.1 de 5 ciudades en el Ejemplo 1.3. Para su confección se tuvo en cuenta que:
a) La distancia de viajar de 4 a 5 fue penalizada (C45 = M), ya que ese camino no puede ser
usado en la construcción de la ruta por inaccesibilidad.
b) La distancia de viajar de 1 a 3, a 4 o a 5 se penaliza con M (C13 = M, C14 = M y C15 = M),
pues salir de la piquera cada mañana los vehículos siempre pasarán por el almacén
(Punto 2) a buscar la mercancía que trasladarán a los clientes. Nunca irán de la piquera
directo a ningún cliente pues irían vacíos.
c) La distancia de viajar desde 3, 4 o 5 al punto 2 (almacén) se penaliza con M (C32 = M,
C42= M y C52 = M) pues al punto 2 (almacén) solo se llega desde el punto 1 (piquera).
d) La distancia de viajar de 2 a 1 se penaliza con M (C21 = M) pues del almacén nunca el
vehículo va a regresar a la piquera, de este deberá comenzar a distribuir las mercancías
a los clientes 3, 4 o 5.
Resumen
• El PAV consiste en visitar N puntos en un solo recorrido, teniendo en cuenta las conexiones
entre dichos puntos y las distancias que los separan.
• En el PAV cada punto debe ser visitado una sola vez.
• El PAV puede formularse como un grafo o red G = [N, A, C]; donde N son los nodos o puntos
a visitar, A las aristas o caminos y C la matriz de distancia entre los puntos.
• La cantidad máxima de rutas posibles en un PAV se determina como: (N – 1)!.
• La matriz de costos C es cuadrada (N x N).
• La matriz de costos C es simétrica si Cij = Cji para todas las i y j, de lo contrario, el modelo
PAV es asimétrico.
• En la matriz de costos C para los pares de puntos que no puedan relacionarse entre sí, se
penalizarán los costos Cij, Cij = M (Ejemplo: Cij = M, para todo i = j).
Las aplicaciones del PAV van más allá de la definición clásica de visitar ciudades por un agente
distribuidor. En esta sección se resumen otras aplicaciones que muestran cómo puede adaptarse
el modelo PAV clásico (“ciudades” conectadas por “rutas”) para representar otras situaciones.
Discusión: Para plantear este caso de estudio puede como un problema de agente viajero (PAV)
se analizarán los elementos que lo componen partiendo de la formulación como grafo o red que
se presentó en el punto anterior:
• Nodos o Puntos: N = 7, el equivalente a las ciudades del planteamiento tradicional del
PAV para esta situación son los pedidos, pues cada pedido está conformado por un
producto, el cual tienen una ubicación especifica dentro del almacén y un punto de
entrega cercano desde donde se traslada la grúa al nuevo punto. Se incluye también el
punto de estado inactivo desde donde parte la grúa elevada a realizar sus operaciones
y al cual regresa una vez concluida estas.
• Aristas o caminos: teniendo en cuenta que cada vez que la grúa elevada recoge un
pedido deberá ir y entregarlo en el punto de entrega más cercano, las aristas en este
caso están dadas por la relación entre el punto de recogida y entrega del pedido y el
siguiente punto de recogida hasta donde se trasladará.
• Matriz de costos C: el equivalente a las distancias entre las ciudades del planteamiento
tradicional del PAV son los tiempos no productivos de la grúa, o sea el tiempo de
traslado desde el punto de entrega más cercano al punto de recogida y el nuevo punto
de recogida al cual se dirigirá, cuyo objetivo es minimizarlo.
Discusión: Para plantear este caso de estudio puede como un problema de agente viajero (PAV)
se analizarán los elementos que lo componen partiendo de la formulación como grafo o red que
se presentó en el punto anterior:
• Nodos o Puntos: N = 4, el equivalente a las ciudades del planteamiento tradicional del
PAV para esta situación son los colores, debiéndose determinar luego de fabricado un
lote de un color de qué color será el siguiente lote a fabricar (o sea partiendo de una
ciudad cuál será la siguiente ciudad a visitar).
• Aristas o caminos: en este caso están dadas por la secuencia u orden entre la fabricación
de un lote y el siguiente.
• Matriz de costos C: el equivalente a las distancias entre las ciudades del planteamiento
tradicional del PAV son los tiempos de limpieza de la línea. Estos tiempos varían en
función del lote que se acaba de producir y el que le sucederá y cuyo objetivo es
minimizarlo.
Discusión: Para plantear este caso de estudio puede como un problema de agente viajero (PAV)
se analizarán los elementos que lo componen partiendo de la formulación como grafo o red que
se presentó en el punto anterior:
• Nodos o Puntos: N = 7, el equivalente a las ciudades del planteamiento tradicional del
PAV para esta situación son los puntos donde se realizarán las perforaciones, los cuales
deberán ser visitados por el taladro con este fin. Se incluye también el punto de inicio
del taladro desde donde parte a realizar las perforaciones en la placa y al cual regresa
una vez concluida estas.
• Aristas o caminos: en este caso están dadas por la distancia entre un punto y otro de la
placa, incluyendo el punto de inicio.
• Matriz de costos C: El objetivo de la situación es disminuir el tiempo de operación del
taladro, por tanto, como el tiempo de perforación es fijo y la velocidad de
desplazamiento es lineal, estos no influyen en el tiempo de operación. Luego si se logra
disminuir la distancia de traslado entre los puntos se podrá disminuir el tiempo de
operación. En este problema el equivalente a las distancias entre las ciudades del
planteamiento tradicional del PAV son las distancias entre los puntos (incluyendo el
punto de inicio) o también dado que se conoce la velocidad con que se mueve el taladro,
se puede expresar en términos del tiempo de desplazamiento del taladro entre los
puntos.
Discusión: Para plantear este caso de estudio como un problema de agente viajero (PAV) se
analizarán los elementos que lo componen partiendo de la formulación como grafo o red que
se presentó en el punto anterior:
• Nodos o Puntos: N = 5, el equivalente a las ciudades del planteamiento tradicional del
PAV para esta situación son los puntos donde están ubicados los cajeros. Se incluye
también la sede de REDSA, desde donde parte el equipo a realizar los mantenimientos
y al cual regresa una vez concluido estos.
• Aristas o caminos: en este caso están dadas por la distancia entre los cajeros y entre
estos y la sede de REDSA.
• Matriz de costos C: El objetivo de la situación es disminuir el tiempo de mantenimiento,
como no se especifica nada de la duración del mantenimiento in situ este elemento se
considera despreciable y solo se considerará el tiempo de desplazamiento entre los
puntos a visitar. En este problema el equivalente a las distancias entre las ciudades del
planteamiento tradicional del PAV son las distancias entre los cajeros (incluyendo la
sede de REDSA) pues a menor distancia recorrida menor será el tiempo de traslado y
por tanto el de ejecución de todos os mantenimientos.
1.3. Modelo de programación lineal para el problema del agente viajero (PAV).
El objetivo del PAV es encontrar una ruta que, comenzando y terminando en una ciudad
determinada, en este caso denotada por la ciudad i, pase una sola vez por cada una de las
ciudades y minimice la distancia recorrida. Por ello se define Xij como variables de decisión
dicotómicas para todo arco (i, j) ∈ A (conjunto de arcos o caminos), de forma que tomen el valor
1 si el arco (i, j) forma parte de la solución y 0 en otro caso [1]. De esta forma la variable de
decisión y la función objetivo quedan enunciada como sigue:
Variable de Xij: Viajar o no del nodo i al nodo j. Xij = 1 si se viaja del punto i al punto j
decisión i,j = 1, 2, 3, 4, …, n Xij = 0 si no se viaja del punto i al punto j
𝑛 𝑛
Función
𝑀𝑖𝑛 𝑍 = ∑ ∑ 𝐶𝑖𝑗 ∗ 𝑋𝑖𝑗 (1)
objetivo
𝑖=0 𝑗=0
El PAV debe garantizar que una ciudad se visite una sola vez para lo cual deberá estar sujeto a
las restricciones siguientes:
La restricción (2) se garantiza que solo un arco puede salir de cada nodo (o sea, de una ciudad
solo puede salir un camino), mientras que la restricción (3) asegura que solo un arco puede
entrar en cada vértice (o sea, a una ciudad solo se llega por un camino). La restricción (4)
permitirá que los valores de Xij sean 0 o 1 [1, 3]. Estas restricciones definen al PAV como un
modelo de asignación donde se asigna para una ciudad desde cual se llegará y a donde se sale.
Estas restricciones son necesarias, pero no suficientes, pues pueden dar lugar a soluciones con
subciclos, lo cual, aunque garantice que solo se visite un punto una vez no asegura que la ruta
obtenida salga de un punto y regrese a este al finalizar el recorrido.
Con las restricciones del tipo (5) se impide la creación de subrutas para el resultado del PAV.
Como se explicó anteriormente, en el PAV a medida que el número N de ciudades a visitar crece,
el número máximo de rutas posible aumenta de forma factorial (N – 1)!, igualmente al plantearlo
como un problema de programación lineal se incrementan el número de variables y
restricciones. Todo ello incrementa la complejidad computacional hasta un punto en el cual sería
necesario esperar demasiado tiempo para obtener un resultado. Además, existen diferentes
variaciones a este tipo de problemas al ajustarlo a escenarios diversos como: restricciones de
capacidad, de tiempo, parque de vehículos heterogéneas, entre otras. Estas variaciones unido a
la complejidad computacional de resolverlo por métodos exactos ha propiciado la investigación,
desarrollo y aplicaciones de algoritmos heurístico, que permitan en obtener una buena solución
en un tiempo razonable.