Ich bin mir ziemlich sicher, dass ich nicht der erste bin, der die Idee aufgreift, die ich präsentieren werde. Es wäre jedoch hilfreich, wenn ich Literatur zu dieser Idee finden könnte.
Die Idee ist, eine Turing-Maschine M mit der Eigenschaft zu konstruieren, dass wenn P = NP, dann M 3-SAT in der Polynomzeit auflöst. (Die Wahl von 3-SAT ist willkürlich. Es könnte wirklich jedes Problem in NP sein).
Nur um klar zu sein, ist dies keine Behauptung, dass P = NP ist. Tatsächlich glaube ich das Gegenteil. Ich sage nur, wenn P = NP, dann liefert M eine Lösung in Polynomzeit. Wenn Sie nach einer effizienten Lösung suchen, sollte ich Sie warnen, dass dies alles andere als effizient ist.
M ist wie folgt aufgebaut: Nehmen Sie zunächst eine kanonische Codierung für alle Turing-Maschinen an und weisen Sie diesen Maschinen eine Nummerierung zu. Es gibt also eine Turing-Maschine mit der Nummer 1, eine mit der Nummer 2 usw. Die Idee einer Universal-Turing-Maschine, die das Format für eine bereitgestellte Maschine liest und dann simuliert, dass diese Maschine auf einer separaten Eingabe läuft, ist ziemlich bekannt. M wird eine Universal Turing Machine einsetzen, um jede Turing Machine nacheinander zu konstruieren und zu simulieren.
Es simuliert zunächst den Betrieb von Turing Machine 1 für einen einzelnen Schritt.
Anschließend wird die Ausgabe von Turing Machine 1 betrachtet. Anschließend wird
der Ablauf von Turing Machine 1 in zwei Schritten simuliert und die Ausgabe überprüft. Anschließend wird Turing Machine 2 in zwei Schritten simuliert. Es fährt fort und schleift auf diese Weise, indem es Turing Machine 1 für k Schritte, dann 2 für k Schritte ... und schließlich Machine k für k Schritte ausführt.
Nach jedem Simulationslauf wird die Ausgabe des Laufs untersucht. Wenn die Ausgabe eine Zuweisung von Variablen ist, die die 3-SAT-Probleminstanz erfüllen, wird M in einem Akzeptanzzustand angehalten. Wenn andererseits die Ausgabe eine Proofzeichenfolge in einer überprüfbaren Proofsprache ist, mit dem nachgewiesenen Ergebnis, dass die Probleminstanz nicht befriedigend ist, wird M in einem Ablehnungszustand angehalten. (Als Beweissprache könnten wir zum Beispiel die Peano-Axiome mit Logik zweiter Ordnung und die grundlegenden logischen Axiome nach Hilbert verwenden. Ich überlasse es dem Leser als Übung, herauszufinden, ob P = NP gilt Proof-Sprache existiert und ist zur Polynomzeit überprüfbar).
Ich werde hier behaupten, dass M 3-SAT in der Polynomzeit genau dann löst, wenn P = NP ist. Irgendwann wird der Algorithmus eine magische Turing-Maschine mit der Nummer K finden, die zufällig ein effizienter Löser für das 3-SAT-Problem ist und in der Lage ist, die Ergebnisse für Erfolg oder Misserfolg nachzuweisen. K wird schließlich simuliert, indem für ein Polynom poly (strlen (input)) Schritte ausgeführt werden. Das Polynom für M ist ungefähr das Quadrat des Polynoms für k im größten Faktor, aber mit einigen schrecklichen Konstanten im Polynom.
Um hier meine Frage zu wiederholen: Ich möchte wissen, ob es eine Literaturquelle gibt, die diese Idee verwendet. Ich bin etwas weniger daran interessiert, die Idee selbst zu diskutieren.
quelle
Die Idee, alle möglichen Turing-Maschinen diagonal laufen zu lassen, wurde zuvor von Leonid Levin in der Levins Universal Search verwendet. Leider und entgegen dem weit verbreiteten Missverständnis können meines Wissens Variationen der universellen Levins-Suche KEINEN expliziten Algorithmus liefern, der SAT (Entscheidungsproblem) in Polynomzeit löst, vorausgesetzt, dass P = NP - und Ihr Algorithmus auch nicht .
Die Einschränkung der vorgeschlagenen Argumentation liegt (wie so oft) in der "einfachen Übung, die dem Leser überlassen wurde" - ich konnte die Übung nicht selbst beweisen und glaube nicht, dass ihre Aussage wahr ist, nämlich:
Unter der Annahme von P = NP gibt es ZFC-Polynomgrößen, die beweisen, dass eine gegebene Boolesche Formel nicht erfüllt werden kann.
Übrigens: Ich kann nicht nachweisen, wie die Existenz eines polynomiell kurzen ZFC unter der (stärkeren) Annahme, dass "P = NP in ZFC nachweisbar ist" als Beweis für die Unzufriedenheit angesehen werden kann. Es wird jedoch unter noch stärkeren Voraussetzungen einfach, nämlich:
(*) Es gibt Maschine M, die in Polynomzeit läuft und SAT nachweislich löst.
Und dies ist, glaube ich, die richtige Annahme, unter der Ihr Algorithmus SAT in Polynomialzeit löst. Oben mit "löst SAT nachweislich" meine ich: Es gibt eine Maschine M und einen ZFC-Beweis, dass M SAT löst.
Beachten Sie, dass diese Annahme noch etwas schwächer ist als die folgende: (**) Es gibt eine Maschine M, die nachweislich in Polynomzeit läuft und nachweislich SAT löst.
Unter (**) kann man eine explizite Konstruktion haben, die dasselbe Ziel erreicht, was noch einfacher ist: Zählen Sie alle ZFC-Beweise auf, bis Sie die richtige Maschine M finden (die konstante Zeit verbringt), und führen Sie dann M für eine bestimmte Instanz aus.
Es ist jedoch wahr, dass unter der Annahme von P = NP ein polynomisch verifizierbares Beweissystem mit kurzen Beweisen für die Unbefriedigbarkeit einer gegebenen Formel existiert. Leider kennen wir weder das Proofsystem noch den Prüfer aus der Hand und es ist in dieser Einstellung nicht hilfreich.
Beachten Sie, dass dieses Schema beispielsweise für das FACTORING-Problem gilt. Hier ist f nur Multiplikation (definiert nur für andere Faktoren als \ pm 1) und B ist Primaritätsprüfung. Daher wäre Levins universelle Suche (bis auf einen konstanten Faktor) ein optimaler Algorithmus für FACTORING. Vorausgesetzt, der optimale Algorithmus ist langsamer als der bekannte Algorithmus für die Primaritätsprüfung - im anderen Fall wird die Primaritätsprüfung dominant.
Darüber hinaus kann mit der Levins - Methode unter der Annahme P = NP ein expliziter Algorithmus zur Lösung eines Entscheidungsproblems in bereitgestellt werdenNP∩ c o - NP
quelle