Nicht deterministische Turing-Maschine, die an mindestens einem Rechenzweig anhält


7

Ich schaue mir hier mein Lehrbuch von Michael Sipser an und er sagt, dass eine nicht deterministische Turing-Maschine ein Entscheider ist, wenn alle ihre Berechnungszweige bei allen Eingaben anhalten. Ich denke, ich erinnere mich, dass ich irgendwo etwas gesehen habe, was man als nicht deterministische Turing-Maschine bezeichnen würde, die auf mindestens einem Zweig für alle Eingaben anhält, auf anderen aber möglicherweise eine Schleife ausführt. Gibt es einen Namen für so etwas? Ich sehe später in diesem Kapitel das Wort Verifizierer , aber das scheint nicht zu passen ... Ich denke, das bezieht sich auf einen Algorithmus.

Ein Prüfer für eine Sprache ist ein Algorithmus , wobei A = \ {w \ mid V \ text {akzeptiert} \ langle w, c \ rangle \ text {für eine Zeichenfolge c} \}. Wir messen die Zeit eines Verifizierers nur anhand der Länge von w , daher läuft ein Polynomzeitverifizierer in Polynomzeit in der Länge von w . Eine Sprache A ist polynomiell überprüfbar, wenn sie einen polynomiellen Zeitprüfer hat.AV

A={wV accepts w,c for some string c}.
wwA

Vielleicht nur in der Definition der von einem NTM erkannten Sprache ? Ein NTM akzeptiert eine Zeichenfolge w wenn mindestens ein Berechnungspfad vorhanden ist, der im akzeptierenden Zustand endet. Dies ist jedoch nicht unbedingt für alle Eingabezeichenfolgen der Fall (andernfalls ist L (NTM) = \ Sigma ^ *)
Vor dem

Ich glaube, Sie würden sagen, dass die Maschine die Sprache "akzeptiert".

Ein TM "akzeptiert" keine Sprache, sondern Zeichenfolgen. Der von einem TM akzeptierte Satz von Zeichenfolgen ist die Sprache dieses TM, notiert mit L (M). Sie können jedoch sagen, dass A TM die Zeichenfolgendarstellung einer Sprache akzeptiert.
Kent Munthe Caspersen

@ KentMuntheCaspersen Nein. Die von einer Turing-Maschine akzeptierte Sprache ist der Satz von Eingabezeichenfolgen, für die sie einen akzeptierenden Zustand erreicht. Wenn die Maschine außerdem für alle Zeichenfolgen anhält, die sie nicht akzeptiert, entscheidet sie über die Sprache.
David Richerby

@ DavidRicherby Nein zu was?
Kent Munthe Caspersen

Antworten:


2

Die Idee ist, dass ein deterministisches TM immer in endlicher Zeit mit Ja / Nein antwortet (sonst macht die ganze Idee keinen Sinn). Und um dies zu erreichen, kann die deterministische Simulation des NTM nicht einfach auf einigen Zweigen ins Lala-Land gehen, dh jeder Zweig muss in einer endlichen Tiefe mit Ja / Nein enden. Es entscheidet (gibt Ihnen eine eindeutige Antwort). Wenn nicht alle Zweige anhalten, kann dies überprüft werden (dh bei einem Wort in der Sprache wird garantiert mit Ja geantwortet; wenn nicht, wird möglicherweise Nein beantwortet, möglicherweise wird eine Schleife ausgeführt).


1
Nun, klar, ein NTM kann tatsächlich Zweige haben, die unendlich tief sind, nur weil versucht wird, ein unentscheidbares Problem zu lösen. Was meinst du dann zu sagen, dass es nicht kann? Oder verstehe ich etwas falsch?
Mirrana

Ein deterministisches TM antwortet nicht immer in endlicher Zeit mit Ja / Nein, es kann eine Schleife bilden und daher niemals anhalten. Ein DTM, der einen NTM simuliert, kann einen der Zweige des NTM durchlaufen, aber bei einer Breitensimulation werden die anderen Zweige trotzdem simuliert. Ein Verifizierer kann niemals eine Eingabe durchlaufen, da es sich um einen Entscheider handelt.
Kent Munthe Caspersen

3

Die Saiten von einer NTM akzeptiert Mist die Sprache M, stellte fest ,L(M)

Nehmen wir an, dass Mfür jede Eingabe nicht garantiert wird, dass sie in allen Zweigen angehalten wird. Dann Mkann eindeutig kein Entscheider sein und ist somit nur ein Erkenner. Merkennt die Sprache aller Zeichenfolgen, für die jeder Zweig von Min einem akzeptierenden Zustand endet.

Da Mes sich um einen Erkenner handelt, wird garantiert, dass eine Zeichenfolge nur akzeptiert wird, wenn die Zeichenfolge aktiviert ist L(M). Bei einer Zeichenfolge, die nicht vorhanden ist L(M), wird die Zeichenfolge möglicherweise abgelehnt oder für immer wiederholt. Jeder NTM kann von einem DTM simuliert werden. Wenn NTM jedoch nur eine Sprache erkennt L, erkennt auch der entsprechende DTM nur eine Sprache L.

Wenn der NTM in allen Zweigen für eine Eingabe anhält, ist er ein Entscheider, dann tut der entsprechende DTM dasselbe und ist somit auch ein Entscheider.

Ein Prüfer ist nicht das, wonach Sie suchen. In Sipsers Buch Einführung in die Theorie der Berechnung wird der Verifizierer vorgestellt, wenn über die Komplexität von Algorithmen und Komplexitätsklassen gesprochen wird, da jede Sprache Lgenau dann in NP ist, wenn sie einen Polynomzeitverifizierer hat.

Ein Verifizierer für eine Sprache Lwird als Eingabe einer Zeichenfolge win Lund ein Zertifikat c(man denke an das Zertifikat als Lösung des Problems w) und verifizieren , dass das Zertifikat in der Tat eine korrekte Lösung, wodurch win liegen L.

Beispiel:

Für die Sprache

L = { w | w is an integer for which the product of some of the digits equals 12000 }

Sie können einen Prüfer machen V, die einen String win Leinem Zertifikat c, und prüft , ob die win in der Tat Lmit dem Zertifikat c. ckönnte eine binäre Zeichenfolge sein, die die ganzen Zahlen angibt, wfür die das Produkt von 12000 entspricht.

VMuss zum Beispiel die Eingabe ablehnen 1923423343, 0010111011, weil2*4*2*3*4*3 = 576 != 12000

Für viele Probleme kennen wir nur einen Algorithmus, der sie lösen kann, wenn sie in exponentieller Zeit der Eingabegröße ausgeführt werden. Aus diesem Grund sind Verifizierer interessant, da es häufig der Fall ist, dass wir mit einer Lösung schnell feststellen können, ob diese Lösung richtig oder falsch ist.


Was bedeutet "eine ganze Zahl, für die das Produkt einiger Ziffern 12000 ergibt"?
David Richerby

1
Entschuldigung, diese Beschreibung war vage, ich habe die "Summe" in "gleich" geändert. Dies bedeutet nur, dass L alle Ganzzahlen enthält, die durch die Ziffern d1d2 ... dn gebildet werden, wobei ein Multiset A dieser Ziffern existiert, so dass das Produkt aller Zahlen in A gleich 12000 ist. Zum Beispiel ist w = 164245455 in L, weil 4 * 4 * 5 * 5 * 5 * 6 = 12000. Aber w = 999999999 ist nicht in L. Dies war nur ein willkürliches Entscheidungsproblem, das verwendet wurde, um zu zeigen, was ein Prüfer tut und dass es oft einfacher ist, eine Lösung zu verifizieren als zu einen finden.
Kent Munthe Caspersen
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.