Encontrar el camino más corto en presencia de ciclos negativos

13

Dado un gráfico cíclico dirigido donde el peso de cada borde puede ser negativo, el concepto de "camino más corto" solo tiene sentido si no hay ciclos negativos, y en ese caso puede aplicar el algoritmo Bellman-Ford.

Sin embargo, estoy interesado en encontrar el camino más corto entre dos vértices que no implique ciclismo (es decir, bajo la restricción de que no puede visitar el mismo vértice dos veces). ¿Este problema está bien estudiado? ¿Se puede emplear una variante del algoritmo Bellman-Ford y, de no ser así, hay otra solución?

También estoy interesado en el problema equivalente de todos los pares, para el que de lo contrario podría aplicar Floyd – Warshall.

jleahy
fuente

Respuestas:

23

Las rutas sin vértices repetidos se llaman rutas simples , por lo que está buscando la ruta simple más corta en un gráfico con ciclos negativos.

Esto puede reducirse del problema de la ruta más larga . Si hubiera un solucionador rápido para su problema, entonces se le daría un gráfico con solo pesos de borde positivos, negar todos los pesos de borde y ejecutar su solucionador le daría la ruta más larga en el gráfico original.

Por lo tanto, su problema es NP-Hard.

BlueRaja - Danny Pflughoeft
fuente
1
Esta es una hermosa respuesta. Le pregunté a varias personas este IRL sin ninguna solución y cuando les expliqué esto su reacción fue la misma que la mía: "por supuesto, me siento tan estúpido ahora".
Jleahy