Problema del viajante de comercio: ¿por qué visitar cada ciudad una sola vez?

Según wikipedia, el problema del viajante de comercio (TSP) es:

Dada una lista de ciudades y las distancias entre cada par de ciudades, ¿cuál es la ruta más corta posible que visita cada ciudad exactamente una vez y regresa a la ciudad de origen?

De acuerdo, ese es un problema genial, pero la parte de "visitar cada ciudad exactamente una vez" tiene poco sentido para mí. Si fuera un viajante de comercio, solo querría minimizar la duración (tiempo, costo, lo que sea) de mi ruta, y si visitara la misma ciudad 17 veces lo logra (digamos, porque esa ciudad tiene una posición especialmente "central" en el gráfico), entonces que así sea. Parece tener poco sentido restringir la atención a los ciclos hamiltonianos (es decir, ciclos en los que cada vértice aparece exactamente una vez); en particular, me imagino que esta restricción simultáneamente hace que el problema sea más difícil (computacionalmente) y también menos aplicable (por ejemplo, a problemas "del mundo real").

Wikipedia continúa diciendo que:

El problema se formuló por primera vez en 1930 y es uno de los problemas de optimización más intensamente estudiados.

A la luz de mis comentarios anteriores, encuentro esto sorprendente.

Pregunta. ¿Por qué se ha estudiado tan intensamente el TSP, mientras que la variante (que me parece más natural) aparentemente ha recibido mucha menos atención?

En términos simples: ¿por qué visitar cada ciudad solo una vez?

Permítanme agregar que, según wikipedia, el problema general no incluye la suposición de que se cumple la desigualdad del triángulo; ese caso especial se llama la métrica TSP . En este caso, la restricción a los ciclos hamiltonianos es, por supuesto, inocua.

Olvídate del "exactamente". A uno se le da una simetría ( norte × norte ) -matriz [ a i k ] dónde a i k representa la "distancia" entre ciudades i y k , y puede suponer que se cumple la desigualdad del triángulo.
Maridos enojados.
La misma sección del artículo de Wikipedia que cita en su último párrafo señala que si elimina la condición de todas las ciudades exactamente una vez, cualquier TSP no métrico puede reducirse a un TSP métrico reemplazando la distancia entre cualquier par de ciudades. con la longitud del camino más corto entre ellos. Entonces la desigualdad del triángulo se mantiene en el problema modificado y se aplica la respuesta de Michael.
comp.nus.edu.sg/~stevenha/cs4234/lectures/04.TSP.pdf allí se muestra que las versiones métricas son equivalentes y también son equivalentes a la versión repetida general. El genereal exactamente una versión sin embargo es NP-difícil de aproximar
@goblin En realidad, la variante que mencionaste tiene una solución con complejidad lineal, por eso no había necesidad de estudiar un problema resuelto ( encontrar el camino más corto ). Pero, para TSP no tenemos un buen algoritmo. Es por eso que la gente sigue estudiando el problema.
@taritgoswami, umm, esa no es la variante que describo...

Respuestas (4)

Veamos un ejemplo. Suponga que tiene cuatro ciudades, A, X, Y y Z, y A está a una distancia 1 de cada uno de los otros, mientras que la distancia entre dos cualesquiera de X, Y, Z es 100 . Entonces, por supuesto, una solución para TSP que comienza en A está dada por A a X a A a Y a A a Z a A; escribamos esto como AXAYAZA, que tiene una longitud 6 y visita A varias veces.

Ahora realicemos la construcción en el comentario de Rahul. Formamos un nuevo problema con las mismas ciudades pero con la distancia entre ciudades reemplazada por la longitud del camino más corto entre las dos ciudades. Entonces, en el nuevo problema, A todavía está a distancia. 1 de cada uno de los otros, pero la distancia entre dos cualesquiera de X, Y, Z es 2 . Ahora se satisface la desigualdad del tirangle (aunque la configuración sigue siendo irrealizable en cualquier espacio euclidiano), y AXYZA da una solución, longitud 6 , ninguna ciudad visitada dos veces (excepto por empezar y terminar en A).

Así que hemos tomado un problema donde la solución tiene múltiples visitas a una ciudad y lo hemos reemplazado con un problema equivalente que no las tiene. Espero que quede claro que puedes realizar esta construcción para cualquier conjunto (finito) de ciudades y distancias. Por lo tanto, siempre puede reemplazar un problema con un problema equivalente donde se cumple la desigualdad del triángulo y ninguna ciudad se visita más de una vez. Por lo tanto, no hay pérdida de generalidad al suponer que se cumple la desigualdad del triángulo y que ninguna ciudad se visita más de una vez. Es por eso que podemos restringir nuestra atención a lo que parece, pero en realidad no lo es, un caso especial.

Gracias. Ha demostrado que si quiero resolver el problema que permite múltiples visitas, puedo cambiarlo a un problema equivalente donde cada nodo se visita solo una vez. ¿Qué pasa con la dirección opuesta?
no sé, de improviso. Probablemente haya una manera de hacerlo (pero ¿por qué querrías hacerlo?).
Para asegurarse de que ambos problemas (con y sin la restricción "solo una vez") son realmente equivalentes...
¿Puede dar alguna actualización para abordar mi último comentario? Gracias :)
Te daré la recompensa de todos modos, muchas gracias :D

Supongamos que hay caminos que van directamente de cada ciudad a cualquier otra ciudad. Eso hace que el problema sea lo suficientemente simple y general como para elaborar alguna teoría a su alrededor.
El camino AC es más corto que AB+BC, (piensa en el triángulo ABC), a menos que estén en línea recta. Entonces, si ya visitó B anteriormente, visitar B nuevamente es un desvío que alarga el camino total.

Tenía la misma pregunta porque estaba considerando esto como un problema gráfico donde la distancia entre dos nodos puede ser cualquier número arbitrario. Pero creo que TSP realmente significa un problema físico geométrico. Por eso, si eliges dos nodos al azar, la distancia máxima entre ellos está limitada por la desigualdad del triángulo. Pero incluso entonces esto es asumir un plano perfecto. ¿Qué pasa si tengo esta ciudad rodeada de montañas y no puedes ir a ninguna otra ciudad directamente a menos que pases días subiendo y bajando la montaña, pero tienes un pasaje que llega a otra ciudad y estás conectado con el resto del gráfico? al respecto? Dado que debe detenerse donde comenzó, tendría que visitar una ciudad dos veces para obtener la mejor solución.

En otras palabras, si no he entendido nada mal, cada ciudad se visitaría naturalmente una vez si el mapa es plano y las distancias se determinan geométricamente. Pero si las distancias no están limitadas por tales reglas, en mi opinión, cualquier cosa puede suceder en la solución óptima.

El TSP (y los problemas relacionados, como la programación de vehículos capacitados) generalmente asume que se proporciona un gráfico completo como entrada. Es posible que este no sea el caso en la vida real, pero puede convertir el gráfico inicial en un gráfico completo con algoritmos de cálculo de distancia mínima (Floyd-Warshall, etc.).

En ese caso, no hay necesidad de visitar la misma ciudad una vez. Y la función objetivo obviamente lo desalienta a visitar la misma ciudad más veces, por lo que creo que es una restricción de "pista" en lugar de estricta.

Sin hacer la simplificación mencionada en la respuesta superior, es muy posible que sea necesario visitar la misma ciudad más de una vez. Considere un gráfico completo con vértices 1 , 2 , 3 , 4 y costos de borde (simétricos) C 12 = C 13 = C 14 = 1 y C 23 = C 24 = C 34 = 100 . Entonces, el recorrido más barato consiste en volver a visitar el vértice. 1 entre visitas a otros vértices, porque ir directamente entre otros vértices es mucho más costoso.