Проблема, по крайней мере, NP-сложная, по сравнению с 3-SAT.
Сначала рассмотрим проблему поиска пути от начала до выхода следующего ориентированного графа с ограничением на то, что ни один путь не может посещать все три (квадратные) узла предложения:
( X1 ∨ X2 ∨ X3 ) ∧ ( X1 ∨ ¬ Х2 ∨ X4 )
Мы преобразуем эти графики в сеть коммутаторов. Для этого мы используем три гаджета:
- Каждый круговой узел и двунаправленный край становится проводом , образуя соединения между коммутаторами.
- Каждое направленное ребро становится односторонним гаджетом, состоящим из одного переключателя (см. Ниже).
- Каждый квадратный узел представляет собой один из трех переключателей, которые являются частью гаджета Clause (см. Ниже).
На следующих рисунках переключатели изображены в виде двух входящих стрелок, одна из которых пунктирная (отключена). Направление цели обозначается черным кружком (таким образом, сплошная стрелка должна в конце концов находиться на стороне круга).
Примечание. Мы будем использовать жирный шрифт, чтобы отличить выход графика от выходов гаджетов.
AВВAИкс1Икс2Икс3Икс1'Икс2'Икс3'
Напомним, что для исходного графа поиск пути, который вел к выходу и не посещал все три квадратных узла любого предложения, был NP-завершен. Теперь рассмотрим проблему достижения выхода преобразованного графа, не беспокоясь о целевых положениях переключателей.
Заметьте, что любой путь, который является решением исходной задачи о графе, также является решением для преобразованного графа. Итак, предположим, что путь для преобразованного графа не является решением для исходного графа. Это может произойти в двух случаях:
- ВA
- Путь пересекает все три пути гаджета Clause .
В первом случае односторонний гаджет должен быть сначала пройден в намеченном направлении, и в этом случае путь мог бы также избежать его прохождения в первую очередь.
Итак, рассмотрим второй случай, когда путь пересекает все три переключателя некоторого гаджета Clause . Тогда у этого гаджета будут переключены все три переключателя (см. Ниже). Здесь мы используем целевые позиции. Обратите внимание , что серый магистральная часть Пункта гаджета больше не может быть достигнуто, не означает , что коммутаторы больше не могут быть направлены на их целевых позиций. В этом случае мы говорим, что этот гаджет Clause не подлежит восстановлению.
Осталось показать, что для любого решения исходной задачи графа переключатели преобразованного графа могут быть помещены в их целевое положение. Для этого мы используем тот факт, что выходной провод может быть достигнут только тогда, когда есть решение, или какой-то гаджет Clause становится неисправимым.
Чтобы поместить переключатели в их целевое положение, теперь мы можем добавить дополнительные односторонние гаджеты из провода выхода к входу каждого существующего одностороннего гаджета, а также к трем выходным проводам всех гаджетов Clause . Затем, как только токен достигнет выхода , все дополнительные односторонние гаджеты могут быть пройдены (и, таким образом, помещены в их целевую позицию), а также поместить оставшиеся переключатели в их целевые позиции (если нет невыполнимого предложения). Наконец, жетон может вернуться к выходу, и головоломка решена.
Следует отметить, что гаджеты Clause могут быть восстановлены только при входе с неисследованного выхода; и в связи с односторонним движением гаджетов, которые размещены между Clause устройствами и следующим переменным, это не может произойти до тех пор , выход проволока не будет достигнута.
Следовательно, проблема сети коммутатора является NP-трудной.
До сих пор неясно, является ли проблема в NP или PSPACE-сложной. Снижение NP-твердости при построении плоской сети коммутаторов будет иметь большое значение для ограниченных вариантов Sokoban, а именно потому, что все коммутаторы эквивалентны гаджету Sokoban ниже.