Das Kefk Network Wiki befindet sich im Testbetrieb.


Orakel-Turingmaschine

Aus Kefk.

Wechseln zu: Navigation, Suche

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

Definition

Sei A\subseteq \Sigma^* 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 w\in\Sigma^* auf das Orakelband und geht in den Zustand q? über, so befragt M das Orakel: Der Nachfolgezustand von q? sei qj falls w\in A 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 Parser-Fehler (Unbekannter Fehler\text): L(M^A):=\{w|M \text{ akzeptiert } w \text{ 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}
  • P^K:=\bigcup_{A\in K}P^A
  • NP^K:=\bigcup_{A\in K}NP^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.

Eigenschaften

Es gilt offensichtlich PP = P, denn anstatt für Problem aus A\in P ein Orakel zu befragen, kann eine deterministische polynomiell beschränkte Turingmaschine das Problem selbst berechnen.

Weiterhin gilt NP\subseteq P^{NP} (Beweis: Sei L\in NP. 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).

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.

Literatur

Jeffrey D. Ullman: Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie. Oldenbourg, München/Wien 2000

Wikipedia
Dieses Dokument entstammt in seiner ersten oder einer späteren Version der deutschsprachigen Wikipedia. Es ist dort zu finden unter dem Stichwort Orakel-Turingmaschine, die Liste der bisherigen Autoren befindet sich in der Versionsliste; die Originalfassung kann dort auch bearbeitet werden. Alle Texte der Wikipedia und ihre Derivate stehen unter der GNU-Lizenz für freie Dokumentation.
, ISBN 3486254952.

Christos Papadimitriou: Computational Complexity. Addison-Wesley, 1994

Wikipedia
Dieses Dokument entstammt in seiner ersten oder einer späteren Version der deutschsprachigen Wikipedia. Es ist dort zu finden unter dem Stichwort Orakel-Turingmaschine, die Liste der bisherigen Autoren befindet sich in der Versionsliste; die Originalfassung kann dort auch bearbeitet werden. Alle Texte der Wikipedia und ihre Derivate stehen unter der GNU-Lizenz für freie Dokumentation.
.
Wikipedia
Dieses Dokument entstammt in seiner ersten oder einer späteren Version der deutschsprachigen Wikipedia. Es ist dort zu finden unter dem Stichwort Orakel-Turingmaschine, die Liste der bisherigen Autoren befindet sich in der Versionsliste; die Originalfassung kann dort auch bearbeitet werden. Alle Texte der Wikipedia und ihre Derivate stehen unter der GNU-Lizenz für freie Dokumentation.
Persönliche Werkzeuge