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.
turing-machines
nondeterminism
fade2black
quelle
quelle
Antworten:
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:xw x
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σ⊢σ′ σ,σ′ σ σ′ σ′ σ w w w , 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.σ ′ σ σ σ ′σ σ′ σ⊢σ′
quelle
Der Unterschied zwischen deterministischen und nicht deterministischen Turingmaschinen liegt in der Übergangsfunktion. In deterministischen Turingmaschinen die Übergangsfunktion eine Teilfunktion:δ
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
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
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 1w M1 M2 w q 0 1
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.
quelle
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 0 ⟶ c 1 ⟶ ⋯ ⟶ c k c i i c k xL x c0⟶c1⟶⋯⟶ck ci i ck x
Siehe das Bild unten zum besseren Verständnis:
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
quelle
Erweiterung mit einem Ratenmodul.
Ich fand dieses Modell in " Computers and Intractability " von MR Garey und DS Johnson.
Wie es funktioniert.
. . .
quelle