ACTUALIZACIÓN: la respuesta a continuación no es correcta, porque supuse erróneamente que la ruta hamiltoniana está en un gráfico arbitrario, no en . Lo dejo sin borrar, tal vez pueda arreglarlo o dará algunas pistas para otra respuesta.Knorte
Creo que es NP-completo. Esta es una idea de reducción muy informal / rápida de 3SAT
Para todas las variables añadir un "artilugio variable" con:Xyo
- tres nodos Xyo, + Xyo, - Xyo
- dos aristas variables y ( X i , - X i )( Xyo, + Xyo)( Xyo, - Xyo)
Agregue un nodo de origen y conéctelo a todas las variables X i .SXyo
Para cada cláusula agregue un nodo C j y conéctelo a las variables correspondientes + X i o - X i que forman la cláusula.CjCj+ Xyo- Xyo
La siguiente imagen representa: ( + x1∨ - x2∨ - x3) ∧ ( - x2∨ x3∨ x4 4)
El conjunto (nodos que deben ser vinculados) contiene ( S , C 1 ) , ( S , C 2 ) , . . .R( S, C1) , ( S, C2) , . . .
La ruta simple debe incluir todos los bordes "AZUL" excepto los bordes variables ( X i , + X i ) y ( X i , - X i ) (en la imagen de arriba los bordes azules representan los bordes que incluimos en P ).PAG( Xyo, + Xyo)( Xyo, - Xyo)PAG
En este punto, la fórmula inicial es satisfactoria si y solo si la ruta más corta desde hasta cada nodo de la cláusula C j no es mayor que tres. De hecho, para alcanzar una cláusula desde S en tres pasos, debemos atravesar al menos una variable X i : S → X i → ± X i → C j . Por lo tanto, debemos atravesar uno de los dos bordes: X i → + X i o X i → - X i ) e incluirlo en CSCjSXyoS→ Xyo→ ± Xyo→ CjXyo→ + XyoXyo→ - Xyo)C(porque por construcción no es parte de ). Pero no se pueden incluir ambos, porque comparten un vértice.PAG
Pero no estamos seguros de poder construir una ruta simple que incluya todos los bordes azules porque algunos nodos tienen más de un borde azul incidente.PAG
Para solucionar esto, reemplazamos cada nodo con múltiples bordes azules incidentes, con un árbol que contiene solo pares de bordes azules incidentes que se incluirán en y bordes que los separan y que deberían incluirse en C para llegar a los nodos de la cláusula:PAGC
El gráfico original se convierte en:
KCjS
C
PAG