Was ist der Unterschied zwischen einem TM, der eine Sprache akzeptiert und entscheidet?

7

Ehrlich gesagt fühle ich mich gerade sehr unwohl mit dem Material. Es gibt einige Dinge, die ich verstehen kann, aber viele, die ich immer noch nicht verstehe.

Meine erste Aufgabe besteht darin, mich in einer Frage (die ich zu tun weiß) zu bitten, eine vollständige Beschreibung eines TM zu geben, das eine Sprache akzeptiert . Ich weiß, dass jede binäre Zeichenfolge, die mit endet, durch 4 teilbar ist. die Sprache, die dieses TM akzeptiert.L={x{0,1}x is divisible by 4}00{00,100,1100,1000,11100,11000,10100,10000,}

Aber zum Thema (Un-) Entscheidbarkeit: Ich weiß, dass eine Sprache entscheidbar ist, wenn es ein TM gibt, das alle Zeichenfolgen und nur Zeichenfolgen aus dieser Sprache akzeptiert - und dasselbe TM lehnt alle Zeichenfolgen und nur Zeichenfolgen ab, die nicht in dieser Sprache enthalten sind.

Was zu der Frage führt: Was ist der Unterschied zwischen einer Turing-Maschine , die eine Sprache akzeptiert und entscheidet ?

Mirrana
quelle
1
Normalerweise akzeptiert (oder lehnt ) eine Turing-Maschine eine Zeichenfolge in einer Sprache ab, während sie eine Sprache entscheidet . Mit anderen Worten, die Sprache, die eine Turing-Maschine entscheidet, ist genau die Menge von Zeichenfolgen, die sie akzeptiert . M
Pål GD

Antworten:

8

In Situationen wie diesen, in denen Sie sich über den Unterschied zwischen zwei Phrasen wundern, ist es richtig, einige Definitionen nachzuschlagen und darüber nachzudenken. Sie werden verschiedene Variationen entdecken, vielleicht so etwas:

  1. Eine Maschine "isst" eine Sprache wenn sie bei Eingabe anhält und ausgibt, wenn , und wenn dies nicht der Fall ist .Lx1xL0

  2. Eine Maschine "trinkt" eine Sprache wenn sie bei Eingabe in einem Zustand anhält, in dem und in einem Zustand, in dem .LxacceptxLrejectxL

  3. Eine Maschine „sniffs“ Sprache , wenn am Eingang in einem stoppt Zustand , wenn und niemals endet , wenn .LxacceptxLxL

  4. Eine Maschine "verschlingt" eine Sprache wenn sie bei Eingabe einen Zustand erreicht, wenn und sonst niemals in den Zustand eintritt .LxOKxLOK

  5. A machine „kaut“ eine Sprache , wenn am Eingang in Zustand hält , wenn und entweder nie beendet wird oder stoppt in dem Zustand , wenn .Lx0xL1xL

Diese sehen alle gleich aus, sind aber alle leicht unterschiedlich. Sie sollten erwarten, dass einige Definitionen leicht gebrochen sind (weil Sie sie aus Wikipedia oder den Notizen Ihres Klassenkameraden erhalten haben) oder auf eine seltsame Weise formuliert sind, die den Anforderungen eines bestimmten Texbooks usw. entspricht.

Das Wichtigste ist, herauszufinden, was die Definitionen wirklich zu vermitteln versuchen. Wenn es sich um grundlegende Definitionen handelt, auf die sich jeder bezieht, werden sie Ihnen wahrscheinlich etwas Wichtiges sagen. (In einem Forschungsbericht machen Menschen manchmal Definitionen, um das Gehirn der Leser zu betäuben.) Sobald die Konzepte klar sind, spielt es keine Rolle, wie sie genannt werden. Im Falle einer terminologischen Verwirrung können Sie mögliche Missverständnisse immer schnell beheben, da Sie bereits wissen, welche Konzepte zu erwarten sind.

Im vorliegenden Fall gibt es tatsächlich zwei mögliche Begriffe. Eine, bei der eine Maschine immer anhält und auf irgendeine Weise Akzeptanz / Nichtakzeptanz signalisiert, beispielsweise durch Anhalten in bestimmten Zuständen oder durch Ausgeben bestimmter Symbole. Das andere Konzept ist, wenn eine Maschine nicht immer anhält und das Anhalten verwendet, um die Akzeptanz anzuzeigen, und das Nicht-Anhalten, um die Nichtannahme anzuzeigen.

Eine schöne Übung besteht darin, herauszufinden, welche der fünf oben angegebenen Definitionen welchem ​​der beiden Konzepte entspricht (und welche Definition, falls vorhanden, etwas unklar ist). Aber schon vor der Übung müssen Sie wissen, warum dies zwei verschiedene Konzepte sind! Sie müssen sich einer Sprache bewusst sein, die unter das eine, aber nicht unter das andere Konzept fällt.

Das Problem beim Erlernen von Mathematik besteht darin, dass Sie gleichzeitig neue Sätze und deren Bedeutung lernen und herausfinden müssen, warum die Leute sie erfunden haben.

Andrej Bauer
quelle
1
+1 dafür, dass man sich nicht von manchmal uneinheitlich verwendetem CS-Vokabular beeindrucken lässt und sich das eigene zusammensetzt (sofern eine klare Definition
vorliegt
8

Es gibt einen großen Unterschied. Eine Turingmaschine "akzeptiert" eine Sprache, wenn sie für eine Eingabe aus der Sprache in einen akzeptierenden Zustand wechselt, während sie die Sprache "entscheidet", wenn sie sie "akzeptiert" und für jede Eingabe, die nicht in der Sprache enthalten ist, in einen Ablehnungsstatus wechselt.

Diese sind unterschiedlich, weil es eine dritte Sache gibt, die eine Turing-Maschine tun kann: niemals aufhören. Eine solche Turing-Maschine akzeptiert die Sprache, entscheidet sie aber nicht.

Siehe auch diese andere Frage und Definition der entscheidbaren Sprache in WP .

Jan Hudec
quelle
Ich weiß nicht, woher ich komme "akzeptieren und entscheiden" sind Synonyme, während die dritte Option "erkennen" ist.
Andrej Bauer
@AndrejBauer: In der Tat scheint die Terminologie nicht vollständig einheitlich zu sein. Aber ich habe die Definition auf WikiPedia verlinkt, die eindeutig sagt, dass "entscheidbar" bedeutet, dass die Ergänzung auch entscheidbar ist.
Jan Hudec
3

Sie werden normalerweise als Synonyme verwendet. In Ihrem Beispiel sollte die Turing-Maschine zuerst bis zum Ende der Eingabe gehen und dann überprüfen, ob die beiden Ziffern ganz rechts 0 sind, wie Sie vorschlagen.

Yuval Filmus
quelle
7
Nein, tatsächlich "entscheidet" bedeutet, dass es akzeptiert oder ablehnt, während es akzeptieren oder niemals aufhören kann.
Jan Hudec
Die Terminologie scheint hier nicht festgelegt zu sein. Ich bin mit Jan nicht einverstanden, aber es ist mir eigentlich egal, ich kann mich perfekt an Jan's Terminologie anpassen.
Andrej Bauer