El problema es al menos NP-duro, por una reducción de 3-SAT.
Primero considere el problema de encontrar una ruta desde el Inicio hasta la Salida del siguiente gráfico dirigido con la restricción de que ninguna ruta puede visitar los tres nodos (cuadrados) de una cláusula:
( X1 ∨ X2 ∨ X3 ) ∧ ( X1 ∨ ¬ X2 ∨ X4 )
Transformamos estos gráficos en una red de conmutación. Para esto utilizamos tres gadgets:
- Cada nodo circular y borde bidireccional se convierte en un alambre , formando las conexiones entre los interruptores.
- Cada borde dirigido se convierte en un dispositivo unidireccional que consiste en un solo interruptor (ver más abajo).
- Cada nodo cuadrado representa uno de los tres interruptores que forman parte de un gadget de Cláusula (ver más abajo).
En las siguientes ilustraciones, los interruptores se dibujan como dos flechas entrantes, una de las cuales está discontinua (deshabilitada). La dirección del objetivo se dibuja con un círculo negro (de modo que la flecha sólida eventualmente debe estar del lado del círculo).
Observación: Usaremos negrita para distinguir la Salida del gráfico de las salidas de los gadgets.
UNsisiUNX1X2X3X1′X2′X3′
Recuerde que para el gráfico original, encontrar un camino que conduzca a la Salida y no visitó los tres nodos cuadrados de ninguna cláusula fue NP-completo. Ahora considere el problema de alcanzar la Salida del gráfico transformado sin preocuparse por las posiciones de destino de los interruptores.
Observe que cualquier ruta que sea una solución para el problema gráfico original también es una solución para el gráfico transformado. Por lo tanto, suponga que una ruta para el gráfico transformado no es una solución para el gráfico original. Esto puede suceder en dos casos:
- siUN
- Una ruta atraviesa las tres rutas de algún gadget de Cláusula .
En el primer caso, el dispositivo unidireccional debe haber sido atravesado en la dirección prevista, en cuyo caso el camino podría haber evitado atravesarlo en primer lugar.
Considere el segundo caso en el que la ruta atraviesa los tres interruptores de algún dispositivo de la Cláusula . Entonces ese gadget tendrá todos sus tres interruptores invertidos (ver más abajo). Aquí es donde hacemos uso de las posiciones de destino. Tenga en cuenta que la columna vertebral gris del gadget Clause ya no se puede alcanzar, lo que significa que los interruptores ya no se pueden dirigir a sus posiciones de destino. En este caso, decimos que este gadget de Cláusula es irrecuperable.
Queda por demostrar que para cualquier solución del problema gráfico original, los interruptores del gráfico transformado se pueden colocar en su posición de destino. Para esto, hacemos uso del hecho de que el cable de salida solo se puede alcanzar cuando hay una solución, o algún gadget de Cláusula se vuelve irrecuperable.
Para colocar los interruptores en su posición de destino, ahora podemos agregar dispositivos unidireccionales adicionales desde el cable de salida a la entrada de cada dispositivo unidireccional existente , así como a los tres cables de salida de todos los dispositivos de la cláusula . Luego, una vez que el token llega a la Salida , todos los One-way adicionales aparatos pueden ser atravesados (y de este modo ponen en su posición de destino), y también ponen los interruptores restantes en sus posiciones de destino (a menos que haya una cláusula irrecuperable). Finalmente, el token puede volver a la Salida y se resuelve el rompecabezas.
Deberíamos comentar que los gadgets de Cláusula solo pueden recuperarse cuando se ingresa desde una salida sin recorrer; y debido a los gadgets unidireccionales que se colocan entre la cláusula gadgets de y la siguiente variable, esto no puede suceder hasta que se llegue al cable de salida .
Por lo tanto, el problema de la red de conmutación es NP-hard.
Todavía no está claro si el problema está en NP o PSPACE-hard. Una reducción de la dureza NP que construye una red de conmutadores planos tendrá grandes implicaciones para las variantes restringidas de Sokoban, principalmente porque todos los conmutadores son equivalentes al dispositivo Sokoban a continuación.