El problema del agente viajero consiste en encontrar la mejor ruta (más corta, más económica o más rápida) para llegar a todos los nodos de una red volviendo al punto inicial al terminar el recorrido. En el documento se describe el problema, se modela matemáticamente y se muestra un ejemplo.
Los avatares para el juego dramático en entornos virtuales
Problema del agente viajero (TSP)
1. INTRODUCCIÓN
Al hablar del problema del agente viajero (Traveling Salesperson Problem, TSP),
seguramente lo primero que se imagina es una persona (agente) que debe realizar
una actividad determinada que implica hacer un recorrido a través de diferentes
lugares por lo cual se debe escoger una opción de tal forma que la distancia
recorrida sea mínima. Si piensa de esta forma no está muy equivocado, pues la
estructura principal de este tipo de problemas es precisamente dirigirse a distintas
ciudades las cuales se encuentran ubicadas a diferentes distancias, en donde el
objetivo es llegar a cada una de ellas mediante la ruta más corta regresando al
punto inicial. Sin embargo, son muchas las aplicaciones del TSP en diferentes
campos de la vida real. Por esto se van a mostrar algunas formas de adaptar este
modelo a determinadas situaciones. Además, se explicará cómo se debe realizar
el modelo de programación lineal mediante ejemplos para minimizar las distancias,
costos, tiempo, entre otros.
2. OBJETIVOS
• Explicar en qué consiste el problema del agente viajero (TSP) de forma
general.
• Dar a conocer algunas aplicaciones del modelo TSP en la vida real
mediante comparaciones.
• Mostrar mediante ejemplos el uso del modelo TSP en la vida cotidiana.
3. PROBLEMA DEL AGENTE VIAJERO
El problema del agente viajero consiste en encontrar el recorrido más corto entre n
ciudades, teniendo en cuenta que cada ciudad puede ser visitada solo una vez
antes de llegar de nuevo al punto de partida. Se puede ampliar la definición del
problema para su aplicación en otras situaciones, entendiendo que siempre se
busca minimizar la distancia, el tiempo o el costo de realizar una secuencia entre
unos nodos que no necesariamente tienen que ser ciudades, sino que pueden ser
puntos, estaciones, entre otros.
Minimizar el tiempo usado para la configuración de una máquina para la
producción de varios artículos puede verse como un TSP, en el cual los nodos son
los distintos artículos y las distancias son el tiempo gastado en cambiar de una
configuración a otra. Se puede ver que los nodos no son lugares físicos así que la
aplicación del problema es aún más amplia.
En caso de que al recorrer las ciudades no se conozcan las distancias (y no
interesen estas ni el tiempo del viaje), se puede usar como referencia el costo del
recorrido que en ocasiones será conocido y más importante que otros factores.
A continuación, se mostrará el modelo de programación lineal del problema.
MODELO DEL PROBLEMA DEL AGENTE VIAJERO
Sea
=
1,
0,
=
El objetivo es
= , = ∞ ! =
Sujeto a
= 1, = 1,2, … ,
= 1, = 1,2, … ,
4. = $0,1% ! &
La primera restricción asegura que desde cada ciudad i solo se podrá llegar a una
ciudad j. La segunda asegura que a cada ciudad j solo se podrá llegar desde una
ciudad i. Si i = j se debe asignar un valor muy grande para la distancia de
manera que se asegure que esa no será una ruta viable. Este valor se representa
con una M en el modelo.
Otra forma de modelar el problema es la siguiente:
Sea una variable binaria que dice si el viajero va de la ciudad i a la ciudad j
(i = 1,2,…, n; j = 1,2,…, n+1; i≠j). La ciudad de origen es irrelevante. Se usa n + 1
por conveniencia de notación. Se etiqueta la ciudad origen como 0 y también
como n + 1. Se fija ', ( = 0. La distancia entre la ciudad i y la ciudad j es .
La función objetivo (a minimizar) es:
(
, )'
Ahora la restricciones. Para garantizar que se llega a cada ciudad exactamente
una vez:
', )
= 1, = 1,2, … , + 1
Para garantizar que se sale de cada ciudad exactamente una vez:
(
, )
= 1, = 1,2, … ,
TSP y programación de restricciones.
Una característica poderosa de la programación de restricciones es que las
variables se pueden usar como subíndices de los términos de la función objetivo.
Teniendo esto en cuenta se obtiene otra forma de modelar el TSP.
El agente de ventas necesita visitar cada una de las n ciudades (ciudad 1, 2,…, n)
solo una vez, si comienza en la ciudad 1 (su lugar de residencia) y regresa a la
ciudad 1 después de completar el viaje. Sea la distancia desde la ciudad i
hasta la ciudad j para i, j = 1, 2,…, n (i ≠ j). El objetivo es determinar cuál ruta debe
5. seguir el vendedor para minimizar la distancia total del viaje. Si la variable de
decisión (j = 1, 2,…, n, n + 1) denota la j-ésima ciudad visitada por el agente
viajero, donde = 1 y ( = 1, se puede escribir el objetivo como:
. = ,-,-./
EJEMPLO.
1. Ejemplo tomado de Taha, H. Investigación de Operaciones. 9ª. Ed.
El programa de producción diaria en la compañía Rainbow incluye lotes de
pintura blanca (W), amarilla (Y), roja (R), y negra (B). Las instalaciones de
producción se deben limpiar entre uno y otro lote. La tabla 3 resume en
minutos los tiempos de limpieza. El objetivo es determinar la secuencia de
los colores que minimice el tiempo de limpieza total.
Blanca Amarilla Negra Roja
Blanca 0 10 17 15
Amarilla 20 0 19 18
Negra 50 44 0 22
Roja 45 40 20 0
Tabla 3. Tiempos de limpieza entre lotes.
Modelación.
Sea
=
1, ! !
0,
= 1$0 %, 2$1 %, 3$3 %, 4$5 %
= 1$0 %, 2$1 %, 3$3 %, 4$5 %
El objetivo es
= + 10 6 + 17 8 + 15 : + 20 6 + 66 + 19 68 + 18 6:
+ 50 8 + 44 86 + 88 + 22 8: + 45 : + 40 :6 + 20 :8 + ::
Sujeto a
:
= 1, = 1,2,3,4