Vendedor ambulante - Programación Lineal

Entonces hice esta pregunta y acepté una respuesta, pero me di cuenta de que todavía no entiendo esto y no puedo acceder a mi pregunta anterior. Tenemos el problema del viajante de comercio

Etiqueta las ciudades con los números 0 , . . . , norte y definir:

X i j = { 1 el camino va desde la ciudad  i  a la ciudad  j 0 de lo contrario

Para i = 0 , . . . , norte , dejar tu i ser una variable artificial, y finalmente tomar C i j ser la distancia de la ciudad i a la ciudad j . Entonces TSP se puede escribir como el siguiente problema de programación lineal entera:

min i = 0 norte j i , j = 0 norte C i j X i j 0 X i j 1 i , j = 0 , , norte tu i Z i = 0 , , norte i = 0 , i j norte X i j = 1 j = 0 , , norte j = 0 , j i norte X i j = 1 i = 0 , , norte tu i tu j + norte X i j norte 1 1 i j norte

La última restricción, tu i tu j + norte X i j norte 1 se asegura de que no haya subtours. Sin embargo, no veo qué es esto. Wikipedia dice lo siguiente:

Para demostrar que cada solución factible contiene solo una secuencia cerrada de ciudades, basta con mostrar que cada subtour en una solución factible pasa por la ciudad 0 (observando que las igualdades aseguran que solo puede haber un tour). Pues si sumamos todas las desigualdades correspondientes a X i j = 1 para cualquier subtour de k pasos que no pasan por la ciudad 0, obtenemos: norte k ( norte 1 ) k .

No entiendo esto en absoluto. Cómo es el norte k ( norte 1 ) k ¿obtenido? ¿Y cómo evita esto que haya subtours? No tengo ni idea.

En cuanto a las variables ficticias, ¿para qué sirven? Wikipedia dice:

Ahora debe demostrarse que para cada recorrido individual que cubre todas las ciudades, hay valores para las variables ficticias tu i que satisfacen las restricciones.

Pero no explica en absoluto por qué estas variables ficticias son necesarias y qué agregan a la desigualdad. Estoy perplejo.

Esta pregunta se ha hecho antes aquí (pero la respuesta no me ayuda en absoluto) y aquí (por mí, pensé que ayudó pero no fue así), pero ninguna de las respuestas ayuda y mi pregunta es ligeramente diferente, en su mayoría centrándose en cómo obtuvieron la expresión norte k ( norte 1 ) k y por qué esto evita que se formen subtours

Respuestas (1)

Para su primera pregunta: suponga que tiene una solución para el programa lineal que tiene subtour 1 2 3 1 . Por suposición, el último conjunto de desigualdades se cumple, por lo que si sumas lo siguiente,

tu 1 tu 2 + norte X 12 norte 1 tu 2 tu 3 + norte X 23 norte 1 tu 3 tu 1 + norte X 31 norte 1 ,
usted obtiene
3 norte 3 ( norte 1 ) .
Esto es una contradicción, por lo que este subtour 1 2 3 1 no existe.

En general para cualquier subtour de longitud k No incluído 0 , se aplica el mismo argumento: la suma de las desigualdades correspondientes a cada borde del subrecorrido dará k norte k ( norte 1 ) porque el tu i los términos se cancelarán.

Si algún subtour no puede existir, no significa que no puedan existir todos los subtours. Aunque podemos entender cómo esto se extiende a otros subtours, esto debe ser más riguroso.