Problem jest co najmniej trudny NP, przez redukcję z 3-SAT.
Najpierw rozważ problem ze znalezieniem ścieżki od początku do wyjścia z następującego ukierunkowanego wykresu, z tym, że żadna ścieżka nie może odwiedzić wszystkich trzech (kwadratowych) węzłów klauzuli:
( X1 ∨ X2 ∨ X3 ) ∧ ( X1 ∨ ¬ X2 ∨ X4 )
Przekształcamy te wykresy w sieć przełączników. Do tego używamy trzech gadżetów:
- Każdy węzeł okręgu i krawędź dwukierunkowa staje się Drutem , tworząc połączenia między przełącznikami.
- Każda ukierunkowana krawędź staje się gadżetem Jednokierunkowym składającym się z jednego przełącznika (patrz poniżej).
- Każdy kwadratowy węzeł reprezentuje jeden z trzech przełączników, które są częścią gadżetu Klauzula (patrz poniżej).
Na poniższych ilustracjach przełączniki są rysowane jako dwie przychodzące strzałki, z których jedna jest przerywana (wyłączona). Kierunek docelowy jest rysowany za pomocą czarnego koła (tak, aby stała strzałka musiała ostatecznie znajdować się z boku koła).
Uwaga: Pogrubioną czcionką użyjemy do odróżnienia wyjścia wykresu od wyjść gadżetów.
ZAbbZAX1X2)X3)X1′X2)′X3)′ .
Przypomnijmy, że dla oryginalnego wykresu znalezienie ścieżki, która prowadziła do wyjścia i nie odwiedziła wszystkich trzech kwadratowych węzłów jakiejkolwiek klauzuli, była NP-zupełna. Teraz rozważ problem dotarcia do wyjścia z transformowanego wykresu bez martwienia się o docelowe pozycje przełączników.
Zauważ, że każda ścieżka, która jest rozwiązaniem pierwotnego problemu z grafem, jest również rozwiązaniem dla transformowanego wykresu. Załóżmy więc, że ścieżka dla przekształconego wykresu nie jest rozwiązaniem dla oryginalnego wykresu. Może się to zdarzyć w dwóch przypadkach:
- bZA
- Ścieżka przecina wszystkie trzy ścieżki jakiegoś gadżetu Klauzula .
W pierwszym przypadku gadżet jednokierunkowy musiał najpierw przejść w zamierzonym kierunku, w którym to przypadku równie dobrze można by uniknąć przejścia przez niego.
Rozważmy więc drugi przypadek, w którym ścieżka przemierza wszystkie trzy przełączniki jakiegoś gadżetu Klauzula . Wtedy ten gadżet będzie miał wszystkie trzy przełączniki odwrócone (patrz poniżej). Tutaj wykorzystujemy pozycje docelowe. Zauważ, że szary szkielet z klauzulą gadżet nie może zostać osiągnięty, co oznacza, że przełączniki nie mogą już być kierowane do ich położeń docelowych. W takim przypadku mówimy, że tego gadżetu Klauzuli nie można odzyskać.
Pozostaje pokazać, że dla dowolnego rozwiązania pierwotnego problemu graficznego przełączniki transformowanego wykresu można ustawić w ich położeniu docelowym. W tym celu wykorzystujemy fakt, że do drutu wyjściowego można dotrzeć tylko wtedy, gdy istnieje rozwiązanie, lub niektóre gadżety z klauzulami stają się niemożliwe do odzyskania.
Aby umieścić przełączniki w ich pozycji docelowej, możemy teraz dodać dodatkowe gadżety jednokierunkowe z drutu wyjściowego do wejścia każdego istniejącego gadżetu jednokierunkowego , a także do trzech drutów wyjściowych wszystkich gadżetów klauzuli . Następnie, gdy token dotrze do wyjścia , można przejść wszystkie dodatkowe gadżety jednokierunkowe (a tym samym umieścić je w pozycji docelowej), a także ustawić pozostałe przełączniki w pozycjach docelowych (chyba że istnieje klauzula niemożliwa do odzyskania). Wreszcie token może powrócić do wyjścia, a łamigłówka zostanie rozwiązana.
Należy zauważyć, że gadżety Klauzuli można odzyskać tylko wtedy, gdy zostaną wprowadzone z nienaprawionego wyjścia; a ze względu na gadżety jednokierunkowe umieszczone między gadżetami Klauzula a następną zmienną, nie może się to zdarzyć, dopóki nie zostanie osiągnięty drut wyjścia .
Stąd problem sieci przełączników jest trudny NP.
Nadal nie jest jasne, czy problem dotyczy NP, czy PSPACE. Redukcja twardości NP budująca planarną sieć przełączników będzie miała wielkie implikacje dla ograniczonych wariantów Sokoban, ponieważ wszystkie przełączniki są równoważne z gadżetem Sokoban poniżej.