Es gibt bereits gute Antworten, aber ich möchte ein paar kleine Punkte hinzufügen.
Angenommen, wir haben eine Technik zur Lösung von Problemen, z . B. Diagonalisierung . Nehmen wir an , wir , dass die Technik zeigen wollen , nicht ein bestimmtes Problem lösen kann zB gegen N PPN P . Wie kann man das zeigen?
Bevor Sie fortfahren, beachten Sie, dass eine Technik wie die Diagonalisierung hier kein formales Konzept ist (obwohl wir es so machen können). Darüber hinaus bedeutet die Tatsache, dass die Technik das Problem nicht alleine lösen kann, nicht, dass sie bei der Lösung des Problems überhaupt nicht hilfreich ist. Möglicherweise können wir sie modifizieren und / oder mit anderen Techniken kombinieren, um das Problem zu lösen.
Kommen wir nun zu der Frage zurück. Ein Weg, um zu zeigen, dass eine Technik ein bestimmtes Problem nicht lösen kann, besteht darin, zu zeigen, dass sie, wenn sie könnte, auch in einem anderen Rahmen zur Lösung einer anderen Frage funktionieren würde, und die Antwort, die wir in diesem Fall erhalten würden, wäre falsch. Das passiert hier. Wenn die Diagonalisierung von P trennen könnte, könnte dasselbe Argument verwendet werden, um N P A von P A für alle A zu trennen . Aber wir wissen, dass es ein Orakel gibt, das falsch ist (nehmen Sie ein beliebiges P S p a c e -komplettes Problem als Orakel). Diagonalisierung kann also N nicht trennenN PPN PEINPEINEINP S p a c e von P .N PP
Der wesentliche Punkt in diesem Argument ist eine Art Übertragungsprinzip :
Wir können ein Diagonalisierungsargument für TMs ohne Orakel auf TMs mit Orakel übertragen.
Dies ist hier möglich, da Diagonalisierungsargumente auf der Simulation von Maschinen basieren und die Simulation nicht von den internen Daten der Maschinen abhängt, sondern nur von den endgültigen Antworten dieser Simulationen. Diese Art der Diagonalisierung wird als einfache Diagonalisierung bezeichnet . In einer Simulation spielt es keine Rolle, wie die Maschine funktioniert, wir kümmern uns nur um die endgültige Antwort der Maschine. Das Hinzufügen eines Orakels ändert dies nicht, sodass die Simulation und das Argument auch in dem Framework funktionieren, in dem wir Orakel haben.
PSA TSA T
N PP
PN P
MMMMdiese Instanz zu sein. Dies ist die Großbildansicht, wenn Sie die Details sehen möchten, überprüfen Sie Kozens Papier.
Sommerlich:
- PN PPN P
- NPP
- Der Grund, warum diese Übertragung von einem Orakel-freien Framework zu einem Orakel-Framework funktioniert, ist, dass die einfache Diagonalisierung auf der Black-Box-Simulation von TMs basiert und es keine Rolle spielt, wie Maschinen funktionieren, ob sie ein Orakel haben oder nicht.
Zwei gute Artikel, um mehr über die Diagonalisierung zu erfahren, sind:
- Lance Fortnows Übersichtsarbeit "Diagonalization", 2001, und
- Russell Impagliazzo, Valentine Kabanets und Antonina Kolokolovas Artikel "Ein axiomatischer Ansatz zur Algebrisierung", 2009. (Beachten Sie, dass Algebraisierung eine Erweiterung der einfachen Diagonalisierung ist .)
Warum ist das ein Problem? Als dieser Beweis herauskam, waren die meisten Techniken und Tricks, von denen wir wussten, dass sie Komplexitätsklassen "relativiert" trennen oder kollabieren, da sie in Bezug auf jedes Orakel funktionieren. Zum Beispiel „relativieren“ sich der Zeithierarchiesatz (sowie die räumlichen und nicht deterministischen Versionen davon): Sie beweisen Trennungen für Klassen, für die diese Trennung relativiert, und tatsächlich beweisen sie das stärkere Ergebnis, das die Trennung in Bezug auf hält irgendein Orakel.
quelle