Problema del viajante
El problema del viajante o problema del vendedor viajero[1] (en inglés T.S.P., Travelling Salesman Problem) es un ejemplo que muestra y analiza la problemática que subyace tras algunos tipos de problemas matemáticos que a priori parecen tener una solución relativamente sencilla, y que en la práctica presentan un gran problema. Es uno de los problemas más famosos en el campo de la optimización combinatoria computacional.
Se conoce la forma de resolverlo pero sólo en teoría, en la práctica la solución no es aplicable debido al tiempo que computacionalmente se precisa para obtener su resultado (Véase también NP-completo).
Índice |
Enunciado [editar]
Sean N ciudades de un territorio. El objetivo es encontrar una ruta que, comenzando y terminando en una ciudad concreta, pase una sola vez por cada una de las ciudades y minimice la distancia recorrida por el viajante. Es decir, encontrar una permutación
tal que
sea mínimo. La distancia entre cada ciudad viene dada por la matriz D: NxN, donde d[x, y] representa la distancia que hay entre la ciudad X y la ciudad Y.
La solución más directa es la que aplica la fuerza bruta: evaluar todas las posibles combinaciones de recorridos y quedarse con aquella cuyo trazado utiliza la menor distancia. El problema reside en el número de posibles combinaciones que viene dado por el factorial del número de ciudades (N!), y esto hace que la solución por fuerza bruta sea impracticable para valores de N incluso moderados, con los medios computacionales actualmente a nuestro alcance. Por ejemplo, si un ordenador fuese capaz de calcular la longitud de cada combinación en un microsegundo, tardaría algo más 3 segundos en resolver el problema para 10 ciudades, algo más de medio minuto en resolver el problema para 11 ciudades y 77 147 años en resolver el problema para sólo 20 ciudades.
Por ejemplo las rutas posibles entre 12 ciudades son 479 001 600 combinaciones, y el número de caminos individuales entre ciudades es la sumatoria desde 1 hasta 12-1, es decir, 66.
Se puede demostrar que el requerimiento de volver a la ciudad de partida no cambia la complejidad computacional del problema.
Situación actual respecto de su resolución [editar]
Desde el punto de vista práctico, el problema no está resuelto y desde el punto de vista teórico, las técnicas empleadas son sólo aproximaciones. No suponen una resolución real del TSP y sólo ofrecen soluciones aproximadas suficientemente aceptables.
Los algoritmos clásicos no son capaces de resolver el problema general, debido a la explosión combinatoria de las posibles soluciones. Por ello, a su solución se han aplicado distintas técnicas computacionales: heurísticas evolutivas, redes de Hopfield, etc.
Casuística [editar]
-
- Hay algoritmos que se basan en una configuración concreta del problema. Por ejemplo, algunos algoritmos de ramificación y consolidación se pueden utilizar para resolver problemas de entre 40 a 60 ciudades.
- Otros han mejorado a éstos con técnicas reminiscentes de la programación lineal que permiten resolver el TSP para valores de N entre 120 y 200 ciudades.
- En el año 2001 se utilizó una red de 110 ordenadores para resolver el TSP para las 15 112 poblaciones de Alemania y utilizando el equivalente computacional a 22,5 años de un PC.
- En mayo del 2004 se aplicaron algunas de estas técnicas para la resolución del problema aplicado a las 24 978 poblaciones suecas en un ciclo de unos 72 500 km (probándose además que no se podía encontrar un ciclo más corto).
Los algoritmos genéticos, basados en heurísticas no encuentran soluciones exactas, pero permiten encontrar aproximaciones suficientemente buenas (un 97% de optimización) y se pueden aplicar a conjuntos de ciudades muy grandes (redes con millones de nodos) con tiempos de ejecución razonables que en un superordenador durarían (semanas o meses).
Convergencia del problema [editar]
Una formulación equivalente en términos de la teoría de grafos es la de encontrar en un grafo completamente conexo y con arcos ponderados el ciclo hamiltoniano de menor coste. En esta formulación cada vértice del grafo representa una ciudad, cada arco representa una carretera y el peso asociado a cada arco representa la longitud de la carretera.
El TSP está entre los problemas denominados NP-completos, esto es, los problemas que no se pueden resolver en tiempo polinomial en función del tamaño de la entrada (en este caso el número N de ciudades que el viajante debe recorrer). Sin embargo, algunos casos concretos del problema sí han sido resueltos hasta su optimización, lo que le convierte en un excelente banco de pruebas para algoritmos de optimización que pertenezcan a la misma familia (lo que en jerga matemática se denominan problemas isomorfos).
Aplicaciones [editar]
El problema tiene considerables aplicaciones prácticas, aparte de las más evidentes en áreas de logística de transporte, que conoce cualquier negocio de reparto pequeño o grande. Por ejemplo, en robótica, permite resolver problemas de fabricación para minimizar el número de desplazamientos al realizar una serie de perforaciones en una plancha o en un circuito impreso. También puede ser utilizado en control y operativa optimizada de semáforos, etc.
Véase también [editar]
- Algoritmo de Christofides
- Teoría de la complejidad computacional
- NP-completo
- Problema de rutas de vehículos
Referencias [editar]
- ↑ Daniel Espinoza, El Problema del Vendedor Viajero (TSP) y Programación Entera (IP), Departamento de Ingeniería Industrial, Universidad de Chile, 2006.