Rekursive und rekursiv aufzählbare Sprachdefinition für einen Laien

24

Ich bin auf viele Definitionen von rekursiven und rekursiv aufzählbaren Sprachen gestoßen. Aber ich konnte nicht ganz verstehen, was sie sind.

Kann mir bitte jemand sagen, was sie in einfachen Worten sind?

Sampath Surineni
quelle

Antworten:

17

Nicht wirklich. Sie sollten ein paar Bücher lesen. Vielleicht können wir einige empfehlen.

Allerdings ist eine Sprache rekursiv, wenn es eine Turing-Maschine gibt, die immer mit "Ja" oder "Nein" antworten kann, wenn ein bestimmter String Teil dieser Sprache ist. Wenn wir diese Anforderung aufheben, um nur "Ja" für Zeichenfolgen der Sprache zu sagen (es kann für immer laufen, wenn es nicht so ist), dann haben wir eine rekursiv aufzählbare Sprache. Es ist nicht schwer zu erkennen, dass eine rekursive Sprache von einer Turing-Maschine bestimmt werden kann, während die Zeichenfolgen einer rekursiv aufzählbaren Sprache aufgelistet werden können (z. B. indem eine unbegrenzte Anzahl von Turing-Maschinen gleichzeitig ausgeführt wird - ja, das ist möglich, siehe Dove-Tailing - Auf allen Zeichenfolgen des Alphabets und Ausgabe einer Zeichenfolge, wenn das entsprechende TM dies akzeptiert. Es gibt viele äquivalente Definitionen.


quelle
18

Ein Problem ist rekursiv oder entscheidbar, wenn eine Maschine die Antwort berechnen kann.

Ein Problem ist rekursiv aufzählbar oder teilentscheidbar, wenn eine Maschine davon überzeugt werden kann, dass die Antwort positiv ist.

Andrej Bauer
quelle
3

Eine Sprache ist nur eine Reihe von Zeichenfolgen. Möglicherweise von unendlicher Kardinalität.

Eine Sprache ist rekursiv aufzählbar, wenn ein TM vorhanden ist, das weiterhin Zeichenfolgen ausgibt, die zur Sprache gehören (und nur solche Zeichenfolgen), sodass schließlich jede Zeichenfolge in der Sprache ausgegeben wird.

Eine Sprache ist rekursiv, wenn das obige TM nicht nur alle Zeichenfolgen in der Sprache ausgibt, sondern dies auch in der richtigen Reihenfolge tut! (sagen wir lexikografisch).

Ich bin mir sicher, dass Sie sich leicht rekursive Sprachen vorstellen können (und ein TM erstellen können, das sie in der richtigen Reihenfolge ausgibt). Es ist ziemlich schwierig, rekursiv aufzählbare Sprachen zu finden (die nicht rekursiv sind), es sei denn, Sie lesen mehr über Unentscheidbarkeit und Diagonalisierung. Solche Sprachen existieren jedoch.

Ran G.
quelle
1
Für mich ist Ihre Definition bis auf ein Detail die beste: Die Reihenfolge muss berechenbar sein: Es muss möglich sein, zwei beliebige Zeichenfolgen mit einem abschließenden TM zu vergleichen. Viele der anderen Definitionen verwechseln Aufzählbarkeit und Entscheidbarkeit. Dies sind unterschiedliche Konzepte, obwohl sie für Sätze von endlichen Strings gleichwertig nachgewiesen werden (siehe zum Beispiel:. ? Can Sprachen mit unendlich Streicher rekursiv abzählbar sein .
babou
2

Rekursive Sprachen können von einigen Turing-Maschinen ausgewählt werden, dh es gibt ein TM, das bei einer beliebigen Eingabezeichenfolge (über dem entsprechenden Alphabet) richtig mit "Ja" antworten kann, wenn die Zeichenfolge in der Sprache vorliegt, oder mit "Nein", wenn nicht.

Rekursiv aufzählbare Sprachen werden nur erkannt, dh es gibt eine Turing-Maschine, die akzeptiert, wenn sich die Zeichenfolge in der Sprache befindet, aber möglicherweise eine Endlosschleife ausführt, wenn sich die Zeichenfolge nicht in der Sprache befindet.

ABHIJEET CHATARJEE
quelle
0

Ich glaube, der Hauptunterschied zwischen rekursiven und rekursiv aufzählbaren Sprachen besteht darin, dass die Rekursiv-Turing-Maschine im nicht endgültigen Zustand anhält, wenn sie keine Zeichenfolge akzeptiert

Rekursiv aufzählbare Turing-Maschine, die keine Zeichenfolge akzeptiert, hält möglicherweise im nicht endgültigen Zustand oder in einer Endlosschleife an, was bei rekursiven Sprachen nicht der Fall ist

Sampath Surineni
quelle
0

==> Eine Sprache ist rekursiv, wenn es eine Turing-Maschine gibt, die jede Zeichenfolge in der Sprache akzeptiert und ablehnt, wenn sie nicht in der Sprache ist. Nehmen wir zum Beispiel Turing-Maschine M und String w: Wenn String w ein Mitglied der Turing-Maschine M ist, wird M im Endzustand angehalten, andernfalls wird die Berechnung abgelehnt. ==> ==> Eine Sprache ist rekursiv aufzählbar, wenn es eine Turing-Maschine gibt, die jede Zeichenfolge in der Sprache akzeptiert und ablehnt, wenn sie nicht in der Sprache ist. Nehmen wir zum Beispiel Turing machine M und String w: Wenn der String w in der Sprache ist, bleibt M in seinem Endzustand stehen. Andernfalls lehnt es die Berechnung ab oder wird möglicherweise für immer ausgeführt.

Zewdu
quelle