それも、かどうかを決定するためにNP完全である任意のパスが存在します。
特定のグラフで、特定のパスが有効なパスであることを検証することは明らかに可能です。したがって、長さの制限のある問題はNPにあり、そのサブセットであるany-path問題も同様です。
さて、any-path問題の(そして、その結果、有界長問題の)NP困難性を証明するために、SAT-CNFをこの問題に還元しましょう:
グローバル構造は、節の断片の列が隣接するワイヤーの断片のグリッドです。論理式は、グラフに交差しないパスが存在する場合に満たされます。
パスの2つの部分を横断することは不可能ですが、2つのロジックワイヤを横断する必要があります。むしろ、パスフローは厳密に指定されています。ワイヤポイントは2つのノードによって指定されます。パスが通過するワイヤポイントのシーケンスは、削減によって強制されます。ロジックは、選択されたノードによって表されます。すべてのワイヤポイントを通過する限り、任意のパスを選択できます。
この図では、パスは赤い曲線で表され、ロジックフローは黒い線で表されています。
それでは、各コンポーネントをビルドしましょう。
配線には、交差点、分岐点、垂直線の3つのタイルが使用されます。最も難しいものから始めましょう:
交差の背後にある基本的な考え方は、ワイヤポイントの各ペアにパスを準備し、同じロジック(互換性のあるパス)をエンコードするペアを除くすべてのペアが互いに交差するように、可能なパスを十分に曲げることです。もちろん、2つの平行なエッジが交差していると言うことはできませんが、2つのパスを交差させるために余分な次数2のノードを導入できます。
パスが北から西へ、南から東へ来ると仮定すると、次のことができます。北からの各パスを、東からの互換性のあるパスでライン上に収集します(互換性のないパスは互いに交差します)。ペアの順序を逆にすることにより、各ペアを互いに交差させます。パスを南および西のエンドポイントに配布します。これは図で最もよく説明されています。ここで、ノードの各ペアはワイヤポイントを表します。(同じロジックを実行する)同じ色コードのパスは交差しませんが、異なる色コードのパスは交差します:
分岐点と垂直ワイヤは同じように機能しますが、相関するパスが少なくなります。
¬ A ∨ ¬ B
読み取りワイヤを異なる方法で分岐させることにより、この削減を一般化して、ANDゲートとORゲートの任意のツリーをエンコードすることができます。特に、SAT-CNFとSAT-DNFは両方とも、上記の方法で非交差パスの問題を軽減することができます。