通过减少3-SAT,问题至少在NP上很困难。
首先考虑在以下有向图的开始到出口之间寻找路径的问题,并限制没有路径可以访问子句的所有三个(正方形)节点:
对于此图,仅当满足公式,才存在这样的路径。我们可以为3-CNF中的任意公式构建此类图,并且找到这样的路径是NP完全的。(X1 ∨ X2 ∨ X3 )∧ (X1 ∨ ¬ X2 ∨ X4 )
我们将这些图转换为交换网络。为此,我们使用三个小工具:
- 每个圆形节点和双向边缘都变成导线,形成开关之间的连接。
- 每个有向边变成一个由单个开关组成的单向小工具(请参见下文)。
- 每个正方形节点代表属于Clause小工具的三个开关之一(请参见下文)。
在以下插图中,开关绘制为两个传入箭头,其中一个为虚线(禁用)。用黑色圆圈绘制目标方向(这样,实心箭头最终必须在圆圈的一侧)。
备注:我们将使用黑体字来区分该退出的图形和小工具的退出。
对于单向的小工具,进入无法从出口达到到已经从达到。对于Clause小工具,入口,和通往出口,和。乙乙甲X 1 X 2 X 3 X 1 ' X 2 ' X 3 '一种乙乙一种X1个X2X3X1个′X2′X3′
回想一下,对于原始图形,找到一条导致退出并且没有访问任何子句的所有三个正方形节点的路径都是NP完整的。现在考虑在不担心开关的目标位置的情况下到达变换后的图形的出口的问题。
请注意,任何解决原始图形问题的路径也都是转换图形的解决方案。因此,假设变换后的图的路径不是原始图的解决方案。在两种情况下可能会发生这种情况:
- 甲单向的小工具在非预期的方向(横穿至)。乙一种
- 路径横穿某个Clause小工具的所有三个路径。
在第一种情况下,单向小工具必须首先沿预期的方向移动,在这种情况下,该路径也应该首先避免横越它。
因此,请考虑第二种情况,即路径经过某个Clause小工具的所有三个开关。然后,该小工具将翻转其所有三个开关(请参见下文)。这是我们利用目标位置的地方。请注意,灰色骨干中的条款小工具再也无法达到,这意味着开关可以不再被定向到它们的目标位置。在这种情况下,我们说此子句小工具不可恢复。
仍然表明,对于原始图形问题的任何解决方案,都可以将变换后的图形的开关置于其目标位置。为此,我们利用了以下事实:只有在有解决方案或某些Clause小工具变得无法恢复时,才可以连接“ 出口”电线。
要发生在他们的目标位置开关,我们现在可以添加额外的单程从小玩意退出线的每一个现有的入口单向的小工具,以及所有的三个输出线条款的小玩意。然后,一旦令牌到达出口,就可以遍历所有其他单向小工具(从而将它们放置在其目标位置),并将其余的开关也放置在其目标位置(除非有不可恢复的子句)。最终,令牌可以返回到出口并解决难题。
我们应该指出,只有从未遍历的出口进入时,才能恢复Clause小工具。并且由于在子句小工具和下一个变量之间放置了单向小工具,因此只有在到达“ 出口”导线之前,这种情况才会发生。
因此,交换网络问题是NP难题。
目前尚不清楚问题出在NP还是PSPACE上。构造平面开关网络的NP硬度降低将对Sokoban的受限变体产生重大影响,即因为所有开关都等效于下面的Sokoban小工具。