Es ist NP-vollständig, selbst zu entscheiden, ob ein Pfad existiert.
Es ist eindeutig möglich, zu überprüfen, ob ein bestimmter Pfad in der angegebenen Grafik gültig ist. Somit liegt das Problem der begrenzten Länge in NP, und ebenso die Teilmenge, das Any-Path-Problem.
Um nun die NP-Härte des Any-Path-Problems (und damit des Bounded-Length-Problems) zu beweisen, reduzieren wir SAT-CNF auf dieses Problem:
Die globale Struktur ist ein Gitter von Drahtstücken, an das eine Spalte von Satzstücken anschließt. Die Logikformel ist erfüllbar, wenn ein sich nicht schneidender Pfad durch das Diagramm vorhanden ist.
Es ist unmöglich, zwei Teile des Pfades zu kreuzen, es ist jedoch erforderlich, zwei Logikdrähte zu kreuzen. Vielmehr ist der Pfadfluss streng gegeben: Ein Drahtpunkt wird durch zwei Knoten gegeben. Die Reihenfolge der Drahtpunkte, durch die der Pfad verläuft, wird durch die Reduzierung erzwungen. Die Logik wird durch den ausgewählten Knoten dargestellt. Jeder Pfad kann ausgewählt werden, solange er alle Drahtpunkte durchläuft.
In diesem Diagramm wird der Pfad durch die rote Kurve und der logische Ablauf durch die schwarzen Drähte dargestellt:
Lassen Sie uns nun jede Komponente erstellen.
Bei der Verdrahtung werden drei Kacheln verwendet: die Kreuzung, der Verzweigungspunkt und der vertikale Draht. Beginnen wir mit dem schwierigsten:
Die Grundidee hinter der Kreuzung besteht darin, einen Pfad für jedes Paar von Drahtpunkten zu erstellen und die möglichen Pfade so weit zu biegen, dass sich alle Paare mit Ausnahme derjenigen, die dieselbe Logik (kompatible Pfade) codieren, kreuzen. Natürlich können wir nicht einfach sagen, dass sich zwei parallele Kanten schneiden, sondern wir können zusätzliche Knoten der Ordnung 2 einführen, damit sich zwei Pfade schneiden.
Angenommen, die Pfade kommen von Norden nach Westen und von Süden nach Osten, dann können wir: jeden Pfad von Norden mit seinem kompatiblen Pfad von Osten auf einer Linie zusammenfassen (einige inkompatible Pfade kreuzen sich); Kreuzen Sie jedes Paar miteinander, indem Sie die Reihenfolge der Paare umkehren. Verteilen Sie die Pfade auf ihre Süd- und Westendpunkte. Dies lässt sich am besten anhand eines Diagramms erklären. Hier repräsentiert jedes Knotenpaar einen Drahtpunkt. Pfade mit dem gleichen Farbcode (mit der gleichen Logik) kreuzen sich nicht, Pfade mit einem anderen Farbcode tun dies:
Der Verzweigungspunkt und der vertikale Draht funktionieren gleich, es sind jedoch weniger Pfade zu korrelieren:
¬ A ∨ ¬ B
Es ist möglich, diese Reduktion zu verallgemeinern, um einen beliebigen Baum von UND- und ODER-Gattern zu codieren, indem der Lesedraht auf unterschiedliche Weise verzweigt wird. Insbesondere können sowohl SAT-CNF als auch SAT-DNF auf die oben beschriebene Art und Weise auf das Problem des nicht schneidenden Pfades reduziert werden.