Orakel-Turingmaschine
aus Wikipedia, der freien Enzyklopädie
Eine Orakel-Turingmaschine ist eine Turingmaschine M, die mit einem Orakel verbunden ist. Bildhaft kann man sich ein Orakel als eine black box vorstellen, die von M befragt werden kann und ein Problem in einem Schritt löst. Dadurch sind Orakel-Turingmaschinen in der Lage, Probleme einer gegebenen Komplexitätsklasse in konstanter Zeit zu entscheiden.
Inhaltsverzeichnis |
[Bearbeiten] Definition
Sei eine Sprache über dem Alphabet Σ. Eine Orakel-Turingmaschine mit Orakel A ist eine Turingmaschine M mit einem zusätzlichen Eingabeband (Orakelband) und drei ausgezeichneten Zuständen: qj,qn,q?. Schreibt M ein Wort
auf das Orakelband und geht in den Zustand q? über, so befragt M das Orakel: Der Nachfolgezustand von q? sei qj falls
gilt und andernfalls qn. Anschließend wird das Orakelband gelöscht.
Die Sprache A kann natürlich eine höhere Komplexität haben als die Sprache, die M selbst berechnen kann, ohne das Orakel zu befragen.
Die Sprache, die M akzeptiert, ist L(MA): = {w | M akzeptiert w mit Orakel A}.
Sei K eine Komplexitätsklasse (wie NP) und A eine Sprache. Dann seien:
- PA: = {L(MA) | M ist eine deterministische, polynomiell zeitbeschränkte Orakel-Turingmaschine mit Orakel A}
- NPA: = {L(MA) | M ist eine nichtdeterministische, polynomiell zeitbeschränkte Orakel-Turingmaschine mit Orakel A}
Diese Komplexitätsklassen werden unter anderem dazu genutzt, um die Polynomialzeithierarchie zu definieren. Ähnlich lassen sich für andere Komplexitätsklassen C die Begriffe CA und CK definieren.
[Bearbeiten] Eigenschaften
Es gilt offensichtlich PP = P, denn anstatt für Problem aus ein Orakel zu befragen, kann eine deterministische polynomiell beschränkte Turingmaschine das Problem selbst berechnen.
Weiterhin gilt (Beweis: Sei
. Dann entscheidet die determinstische Turingmaschine, die bei Eingabe w das Wort w auf das Orakelband schreibt, in den Zustand q? übergeht und genau dann akzeptiert, wenn der Nachfolgezustand qj ist, in Linearzeit die Sprache L).
[Bearbeiten] Halteproblem
Die Definition der Orakel-Turingmaschine setzt nicht voraus, dass das Orakel A entscheidbar oder gar semi-entscheidbar ist. Also gibt es Orakel-Turingmaschinen, die das Halteproblem von Turingmaschinen (ohne Orakel) lösen können. Allerdings lassen sich für diese Maschinen wiederum nicht entscheidbare Halteprobleme konstruieren.
[Bearbeiten] Literatur
Jeffrey D. Ullman: Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie. Oldenbourg, München/Wien 2000, ISBN 3486254952.
Christos Papadimitriou: Computational Complexity. Addison-Wesley, 1994.