¿Por qué TSP no requiere la repetición de ciudades?

9

Me parece extraño que el TSP niegue la posibilidad de ciudades repetidas. El objetivo de este vendedor ambulante es ir lo más rápido posible y visitar todas las ciudades, ¿verdad? Entonces, ¿qué pasa si es más rápido viajar por una ciudad en la que ya has estado?

danmcardle
fuente
2
Estoy seguro de que es arbitrario. Solo en casos raros, permitir ciudades repetidas haría alguna diferencia (nunca en TSP métrico). Entonces los problemas son apenas diferentes. La razón es probablemente histórica.
Karolis Juodelė
8
Escuché que el vendedor vende productos realmente malos y no sería prudente conocer a sus antiguos clientes :)
ssch

Respuestas:

3

No importa exactamente cómo lo defina porque es solo una forma de modelar un problema del mundo real. En TSP, solo tiene un conjunto de ciudades y el costo de viajar entre cada par de ellas. Eso no excluye la posibilidad de que, en la situación del mundo real que está modelando, la mejor ruta entre B y C podría pasar por A. Si ese fuera el caso, entonces, sí, la ruta que se modela como ABCA en TSP puede muy bien realmente implica conducir a través de A un tiempo extra en el camino de B a C, pero tales detalles se abstraen en el modelo TSP.

David Richerby
fuente
1
Un punto válido, pero me gustaría señalar que TSP se usa a menudo en situaciones del mundo real. ¿Se perdona el requisito de no repetición al implementar aplicaciones del mundo real?
danmcardle
@danmcardle Depende de la aplicación.
Tom van der Zanden
2

Estoy de acuerdo en que la restricción parece extraña, y para muchas situaciones prácticas, no es relevante. Como señaló David en su respuesta, si puede modificar el modelado usted mismo, entonces realmente no importa. Pero dada una instancia no modificable, hará una diferencia, porque el TSP general con esta restricción no es aproximable dentro de ningún factor constante, mientras que relajar la restricción de una sola visita parece hacerlo aproximable dentro del factor 2 (aunque no sea métrico ) A menos que me pierda algo, según los argumentos estándar, primero puede construir un árbol de expansión mínimo (de costo, digamos ), luego visitar este árbol con la técnica del recorrido euler. Claramente, el costo total de su recorrido es entonces (dos veces cada borde). Por contradicción, si existiera un recorrido de costo menor que2 c c cc2cc, entonces este recorrido podría usarse para inferir un MST de costo menor que , lo cual es una contradicción.c

Arnaud Casteigts
fuente
1

Dado cualquier recorrido con repeticiones, puede llegar a un recorrido más corto que no repita ninguna ciudad. Por ejemplo, considere un recorrido por la forma que visita dos veces. Puede tomar un atajo en su segunda visita a , yendo directamente de a : A A X Y A X Y .

AXAY,
AAXY
AXY.

Podría ser que el camino más corto desde a pasa a través de , pero que ya está encapsulada en el borde . Se puede pensar en una mención de no como "de paso" sino más bien "con parada en" . Solo necesita detenerse en una vez, aunque puede pasar por varias veces.Y A X Y A A A A AXYAXYAAAAA

Los algoritmos reales para TSP podrían tener este paso de "tomar atajos", por ejemplo, el algoritmo de Christofides. Vea, por ejemplo, esta descripción o esa cuenta más corta .

Yuval Filmus
fuente
44
Está asumiendo TSP métrico (es decir, que la desigualdad del triángulo se mantiene). Sin embargo, el TSP general no tiene la desigualdad del triángulo. Por ejemplo, usted podría tener ciudades , donde y para todo . El recorrido más corto con repeticiones es , con un costo de pero el recorrido más corto sin repeticiones es , con un costo de . d ( A , X i ) = 1 d ( x i , x j ) = 100 i , j A X 1 A X 2 A A X n A 2 n + 1 A X 1X n A 100 n - 98A,X1,,Xnd(A,Xi)=1d(xi,xj)=100i,jAX1AX2AAXnA2n+1AX1XnA100n98
David Richerby
Ciertamente, pero (1) el OP parece interesado en aplicaciones del mundo real de TSP, que son métricas, y (2) el TSP no métrico no es tan interesante (ya que es demasiado difícil).
Yuval Filmus
2
@YuvalFilmus TSP del mundo real no son métricas necesarias. Algunas veces viajar de A a B llevará más tiempo que AC + CB ya que hay tráfico en la carretera de A a B.
Ilya Gazman
1
(A,B)ABAB
0

No hay una respuesta general a esto, excepto que "las personas no son estúpidas". Aplicarán la solución adecuada a su situación. Raramente las personas se preocupan por el problema del vendedor ambulante. Eveb en la instancia clásica, un vendedor del mundo real estaría más preocupado con el problema de maximizar sus ingresos durante un período de tiempo dado dentro de un conjunto específico de restricciones. En este caso del problema, la distancia total recorrida es solo uno de los diferentes factores que intervienen en la búsqueda de la respuesta óptima.

J. Antonio Perez
fuente
0

Si se permiten repeticiones, entonces simplemente examine todas las conexiones X -> A -> Y, y si eso es más corto que X -> Y, entonces reemplaza la longitud de X -> Y con la longitud de X -> A -> Y, y resuelve el problema resultante con el algoritmo estándar. Creo que debe repetir el proceso de reemplazo hasta que no haya cambios, porque si encuentra una conexión más corta X -> Y esto podría significar que ahora X -> Y -> Z es más corto que X -> Y.

Mantenga un registro de las conexiones que cambió, revise las conexiones en la solución, y si la solución contiene X -> Y, entonces reemplace esto con X -> A -> Y.

PD. Creo que mi idea es genial, pero por el momento no estoy muy seguro de que sea correcta. Debido a que X -> A -> Y en lugar de X -> Y no es solo un atajo, también cubre la ciudad A.

gnasher729
fuente