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.