Wie funktioniert eine nicht deterministische Turingmaschine?


11

Was sind Unterschiede zwischen deterministischen und nichtdeterministischen Turingmaschinen? Verschiedene, aber gleichwertige Modelle von NDTM. Was ist dieser häufig verwendete Ausdruck "nicht deterministisch raten"? Wie man es richtig benutzt und Beispiele für falsche Verwendung. Mein Ziel ist es, eine Referenzfrage zu erstellen.


1
Was suchen Sie über das hinaus, was Wikipedia zu diesem Thema zu sagen hat?
David Richerby

1
Meine Beiträge zu diesem Thema: eins , zwei .
Raphael

Ich bin mir nicht sicher, ob ich der Form dieses Versuchs einer Referenzfrage zustimme (ziemlich weit gefasst). Außerdem ist mir nicht klar, was hier über die Definition hinaus erwartet wird. (Wenn mehr Leute die Definition lesen würden, würde es weniger Verwirrung geben.)
Raphael

Antworten:


8

Hier sind verschiedene Denkweisen über Nichtdeterminismus (kopiert aus dieser Antwort ).

Das Genie. Wann immer die Maschine eine Wahl hat, sagt ein Geist ihr, welchen Weg sie gehen soll. Wenn die Eingabe in der Sprache erfolgt, kann der Geist die Maschine so steuern, dass sie schließlich akzeptiert. Umgekehrt wird die Eingabe immer abgelehnt, wenn sie nicht in der Sprache vorliegt, was auch immer der Geist der Maschine vorschreibt.

Hinweise. Die Maschine berechnet eine bivariate Funktion. Die erste Eingabe ist ein Wort und die zweite Eingabe ist ein "Hinweis" . Immer wenn die Maschine vor einer nicht deterministischen Auswahl steht, konsultiert sie das nächste Hinweissymbol und arbeitet entsprechend. Uns wird Folgendes versprochen:xwx

  • Vollständigkeit: Wenn ist, gibt es einen Hinweis der bewirkt, dass die Maschine akzeptiert.xwLx
  • Solidität: Wenn ist, lehnt das Gerät alle Hinweise ab.wL

Berechnungen akzeptieren. Eine akzeptierende Berechnung ist eine legale Berechnung (eine, bei der die Maschine immer nach einer der Entscheidungen arbeitet, mit denen sie konfrontiert ist), die mit einem akzeptierenden Zustand endet. Ein Wort ist in der Sprache, wenn es eine akzeptierende Berechnung hat.

Wir können den Begriff des Akzeptierens von Berechnungen mithilfe von Konfigurationen formalisieren . Eine Konfiguration ist eine sofortige Beschreibung des gesamten Zustands der Maschine. Wir können eine Beziehung , wobei Konfigurationen sind, die gilt, wenn in einem Schritt zu führen kann . In einer deterministischen Maschine gibt es höchstens ein pro , während es in einer nichtdeterministischen Maschine mehr als ein kann. Eine akzeptierende Berechnung für ein Wort beginnt bei der Anfangskonfiguration (das Band enthält , der Kopf zeigt am Anfang von σ , σ ' σ σ ' σ ' σ w w wσσσ,σσσσσwww, der Zustand ist der Anfangszustand) und endet mit einer akzeptierenden Konfiguration.

Eine andere äquivalente Beschreibung bezieht sich auf die Erreichbarkeit. Stellen Sie sich einen gerichteten Graphen vor, in dem Scheitelpunkte Konfigurationen sind und es eine Kante von zu if . Eine akzeptierende Berechnung ist ein Pfad von der Erstkonfiguration zu einer akzeptierenden Konfiguration.σ σ σ σ σσσσ


6

Der Unterschied zwischen deterministischen und nicht deterministischen Turingmaschinen liegt in der Übergangsfunktion. In deterministischen Turingmaschinen die Übergangsfunktion eine Teilfunktion:δ

δ:Q×BQ×B×{left,right}

Dies bedeutet, dass Sie bei einem bestimmten Status und einem Bandsymbol einen oder keinen Status haben, das Symbol rechts und die Bewegungsrichtung eingeben. In nicht deterministischen Turing-Maschinen sieht dies jedoch so aus (hier ist die Menge der Teilmengen einer Menge):P

δ:Q×BP(Q×B×{left,right})

Dies bedeutet, dass Sie keinen oder mehrere Zustände, Bandsymbole zum Schreiben oder Anweisungen zum Bewegen haben. Dies gibt Ihrer Maschine die Möglichkeit, in einem solchen Zustand und Bandsymbol effektiv zwischen den verschiedenen möglichen "Zweigen" der Berechnung zu wählen.

In der Praxis bedeutet dies, dass wir verschiedene Ausgaben für dieselbe Eingabe berechnen können. Daher ist die Sprache einer nicht deterministischen Turing-Maschine die Menge von Wörtern, für die wir in den definierten Übergängen eine Ableitung finden. Ein bestimmter Lauf findet möglicherweise keine solche Ableitung, aber das Wichtigste ist, dass sie auftreten kann. Wenn Sie also "raten", wählen Sie nur einen der möglichen Berechnungszweige aus.

Anwendungsbeispiel

L={(M1,M2):there exists at least one word accepted by both TM at the same time}

In diesem Fall könnte man nur ein Wort „erraten“ und führen und auf Überprüfung , dass , wenn beide akzeptiert, sie zugleich akzeptieren. Das Erraten könnte funktionieren, indem ein Zustand mit Übergängen eingeführt wird, die auf ein Band s und / oder s schreiben und das durch Lesen eines beliebigen Symbols auf der allgemeinen Maschine beendet wird.M 1 M 2 w q 0 1wM1M2wq01

Um ehrlich zu sein, habe ich kein Beispiel für eine schlechte Verwendung dieser "Vermutung" gefunden. Wenn Sie jedoch überprüfen, ob diese Phrase jedes Mal korrekt verwendet wird, wird reduziert, um zu überprüfen, ob Sie mit dieser Struktur Automaten erstellen können, die die Vermutung simulieren.


"In der Praxis bedeutet dies, dass wir verschiedene Ausgaben für dieselbe Eingabe berechnen können." - Dies scheint darauf hinzudeuten, dass wir tatsächlich eine nicht deterministische Maschine bauen könnten. Das ist falsch.
Raphael

@Raphael meinst du es ist nicht möglich eine nicht deterministische Maschine zu bauen? warum ist das so
Rodrigo

Weil Nichtdeterminismus ein mathematisches Konzept ist, das (soweit ich weiß) kein physikalisches Äquivalent hat.
Raphael

5

Akzeptanz der Eingabezeichenfolge in NTM

Lassen Sie mich mehr über deterministische und nicht deterministische Turing-Maschinen hinzufügen. Betrachten wir, dass wir für einige Sprachen eine deterministische bzw. eine nicht deterministische Turing-Maschine entwerfen. Bei einigen Eingaben gibt es im Fall einer deterministischen Turing-Maschine nur einen Konfigurationspfad, dh (wobei jedes eine Konfiguration im ten Schritt darstellt). Auf der Basis der Konfiguration können wir nun die Eingabezeichenfolge leicht akzeptieren und ablehnen .x c 0c 1c k c i i c k xLxc0c1ckciickx

Siehe das Bild unten zum besseren Verständnis: Geben Sie hier die Bildbeschreibung ein

Im Fall von NTM müssen wir vorsichtig sein, da es bei einigen Konfigurationspfaden vorkommen kann, dass wir in den Ablehnungsstatus geraten. Für nicht deterministische Turing-Maschinen wird eine Zeichenfolge akzeptiert, wenn mindestens einer der Konfigurationspfade zum Akzeptieren des Status führt . Wir werden die Eingabezeichenfolge ablehnen, wenn alle Konfigurationspfade zum Ablehnungsstatus führen.

Betrachten Sie beispielsweise den oben angegebenen Konfigurationsbaum für eine nicht deterministische Turing-Maschine für beispielsweise eine Eingabezeichenfolge . In diesem Fall akzeptieren wir die Eingabezeichenfolge, da es einen akzeptierenden Pfad gibt.x

Referenz : http://cs.umw.edu/~finlayson/class/fall14/cpsc326/notes/24-complexity2.html


4

Erweiterung mit einem Ratenmodul.

Ich fand dieses Modell in " Computers and Intractability " von MR Garey und DS Johnson.

Der NDTM hat genau die gleiche Struktur wie ein DTM, außer dass er durch ein Schätzmodul mit einem eigenen Nur-Schreib-Kopf ergänzt wird. Das Vermutungsmodul bietet die Möglichkeit, die "Vermutung" aufzuschreiben, und wird ausschließlich zu diesem Zweck verwendet.

Geben Sie hier die Bildbeschreibung ein

Wie es funktioniert.

Die erste Stufe ist die Vermutungsstufe. Zu Beginn wird die Eingabezeichenfolge in die Bandquadrate bis(während alle anderen Quadrate leer sind), scannt der Lese- / Schreibkopf Quadrat , der Nur-Schreibkopf scannt Quadrat und die Endlichkeitssteuerung ist "inaktiv". Das Ratenmodul weist dann den Nur-Schreib-Kopf Schritt für Schritt an, entweder ein Symbol aus dem Bandalphabet in das gescannte Bandquadrat zu schreiben und ein Quadrat nach links zu verschieben oder anzuhalten, an welchem ​​Punkt das Das Schätzmodul wird inaktiv und die Steuerung des endlichen Zustands wird im Zustand aktiviert1 | x | 1 - 1 Γ q 0 Γ Γ *x1|x|11Γq0. Die Wahl, ob aktiv bleiben soll und wenn ja, welches Symbol von geschrieben werden soll, trifft das Vermutungsmodul auf völlig willkürliche Weise. Somit kann das Ratenmodul eine beliebige Zeichenfolge aus schreiben, bevor sie angehalten wird, und muss in der Tat niemals anhalten.ΓΓ

Die "Überprüfungs" -Stufe beginnt, wenn die endliche Zustandssteuerung im Zustand aktiviert wird . Ab diesem Zeitpunkt erfolgt die Berechnung ausschließlich unter der Leitung des NDTM-Programms nach genau den gleichen Regeln wie bei einem DTM. Das Raten-Modul und sein Nur-Schreib-Kopf sind nicht mehr beteiligt, da sie ihre Rolle erfüllt haben, indem sie die erratene Zeichenfolge auf das Band geschrieben haben. Natürlich kann (und wird) die erratene Zeichenfolge während der Überprüfungsphase überprüft werden. Die Berechnung wird beendet, wenn und wenn die in einen von zwei (entweder oder ) und wird als Berechnung akzeptiert, wenn sie im Zustandq Y q N q Y M x Γ * M xq0qYqNqY. Alle anderen Berechnungen, ob angehalten oder nicht, werden einfach als nicht akzeptierende Berechnungen klassifiziert .
Beachten Sie, dass jedes NDTM-Programm eine unendliche Anzahl möglicher Berechnungen für eine gegebene Eingabezeichenfolge , eine für jede mögliche erratene Zeichenfolge aus . Wir sagen, dass das NDTM-Programm akzeptiert, wenn mindestens eines davon eine akzeptierende Berechnung ist.MxΓM x

Die Zeit, die ein NDTM-Programm , um die Zeichenfolge zu akzeptieren, ist definiert als das Minimum über alle akzeptierenden Berechnungen von für der Anzahl von Schritten, die in den Raten- und Überprüfungsstufen bis zum wird eingegeben.x L M M x q Y.MxLMMxqY

Der einzige Punkt, der besondere Erwähnung verdient, ist, dass, wenn wir uns normalerweise einen nichtdeterministischen Algorithmus als das Erraten einer Struktur vorstellen , die in irgendeiner Weise von der gegebenen [Problem] -Instanz abhängt , das Vermutungsmodul eines NDTM die gegebene Eingabe vollständig ignoriert. Da jedoch jeder String aus eine mögliche Vermutung ist, können wir unser NDTM-Programm immer so gestalten, dass die Überprüfungsphase damit beginnt, zu prüfen, ob der erratene String (unter der impliziten Interpretation, die unser Programm auf Strings platziert) nicht einem entspricht angemessene Vermutung für die gegebene Eingabe. Wenn nicht, kann das Programm sofort in den . I Γ * q NSIΓqN

. . .

Die Klasse wird informell als die Klasse aller Entscheidungsprobleme , die unter vernünftigen Codierungsschemata durch nichtdeterministische Polynomzeitalgorithmen gelöst werden können.ΠNPΠ

Die Verwendung des Begriffs "lösen" in dieser informellen Definition sollte natürlich mit einem Salzkorn genommen werden. Es sollte offensichtlich sein, dass ein "nichtdeterministischer Polynomzeitalgorithmus" im Grunde genommen ein Definitionsinstrument zur Erfassung des Begriffs der Überprüfbarkeit der Polynomzeit ist und keine realistische Methode zur Lösung von Entscheidungsproblemen. Anstatt nur eine mögliche Berechnung für eine bestimmte Eingabe zu haben, gibt es viele verschiedene, eine für jede mögliche Vermutung.

Es ist dieser Begriff der "Überprüfbarkeit" der Polynomzeit, den die Klasse isolieren soll. Beachten Sie, dass die Überprüfbarkeit der Polynomzeit keine Polynomlösbarkeit impliziert.NP

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.