Leinwendige Sprachen werden unter den folgenden Operationen geschlossen:
1. Gewerkschaft: Wenn L1 und L2 lehbliche Sprachen sind, ist L1 ∪ L2 ebenfalls entzündbar.
* Erläuterung: Wir können eine Turing Machine (TM) erstellen, die L1 ∪ L2 entscheidet. Der TM auf Eingabe 'W' simuliert die TMS für L1 und L2 nacheinander.
* Simulieren Sie zunächst den TM für L1. Wenn es akzeptiert, akzeptieren Sie 'w'.
* Wenn der TM für L1 ablehnt, simulieren Sie den TM für L2. Wenn es akzeptiert, akzeptieren Sie 'w'.
* Wenn der TM für L2 ablehnt, lehnen Sie 'w' ab.
* Schlüsselpunkt: Da L1 und L2 lernbar sind, haltet ihr jeweiliger TMS * immer * an (entweder Akzeptieren oder Ablehnung). Dies stellt sicher, dass unser Gewerkschaftsentscheidung TM auch immer anhält.
2. Kreuzung: Wenn L1 und L2 lehbliche Sprachen sind, ist L1 ∩ L2 ebenfalls entzündbar.
* Erläuterung: Ähnlich wie bei Union können wir einen TM bauen, der L1 ∩ L2 entscheidet.
* Simulieren Sie den TM für L1. Wenn es ablehnt, lehnen Sie 'w' ab.
* Wenn der TM für L1 akzeptiert, simulieren Sie den TM für L2. Wenn es akzeptiert, akzeptieren Sie 'w'.
* Wenn der TM für L2 ablehnt, lehnen Sie 'w' ab.
3. Komplement: Wenn L eine lehbliche Sprache ist, ist L '(die Komplement von L) ebenfalls entzündbar.
* Erläuterung: Wir können einen TM für L 'erstellen, indem wir einfach die Akzeptanzzustände des TM tauschen und lehnen, die L.
* Erstellen Sie angesichts des TM für L ein neues TM, das identisch ist, außer:Wenn das ursprüngliche TM akzeptiert, lehnt der neue TM ab. Wenn der ursprüngliche TM ablehnt, akzeptiert der neue TM.
* Entscheidender Aspekt: Dies funktioniert * nur *, weil der ursprüngliche TM ein entschlossener und immer angehalten wird. Wenn der ursprüngliche TM schaufeln könnte, würde dieser Vorgang nicht zu einem Entschlossenheit für das Komplement führen.
4. Verkettung: Wenn L1 und L2 lehbliche Sprachen sind, ist L1L2 (die Verkettung von L1 und L2) ebenfalls entzündbar.
* Erläuterung:
* Versuchen Sie bei der Eingabe `w` alle möglichen Möglichkeiten," W` in zwei Teile "und" Y` "aufzuteilen, so dass" w =xy ".
* Simulieren Sie für jeden Split den TM für L1 auf `x` und den TM für L2 auf` y`.
* Wenn der TM für L1 `x` * und * der TM für L2 akzeptiert, akzeptieren Sie" W`.
* Wenn alle möglichen Spaltungen vor Gericht gestellt wurden und keiner die obige Bedingung erfüllt, lehnen Sie `w` ab.
* Wichtig: Da L1 und L2 lernbar sind, stehen diese Simulationen immer an. Da wir alle möglichen Spaltungen ausprobieren, hält der Gesamt -TM auch immer an.
5. Kleene Star: Wenn L eine lehbliche Sprache ist, ist auch L* (der Kleene -Stern von L) entzündbar.
* Erläuterung: Dies ähnelt der Verkettung, aber wir ermöglichen mehrere Verkettungen (einschließlich Null).
* Auf Eingabe `w`, für` i =0` to `| w |`:(wobei | w | `` die Länge von `w` ist)
* Versuchen Sie alle möglichen Möglichkeiten, `w` in` I 'Teile, `x1, x2, ..., xi`, so dass` w =x1x2 ... xi`.
* Simulieren Sie für jede Spaltung den TM für L auf jedem `xj`.
* Wenn der TM für L jedes `xj` (für alle` j` von 1 zu `I'''''Annotiert), dann akzeptieren Sie` w`.
* Wenn alle möglichen Werte von "Ich" und alle möglichen Spaltungen vor Gericht gestellt wurden und keine die obige Bedingung erfüllt, lehnen Sie "W` ab.
* Key Insight: Da die Länge einer Zeichenfolge in L* nicht größer sein kann als die Länge des Eingangs `w`, können wir die Anzahl der Spaltungen einschränken, die wir ausprobieren müssen. Die Simulation hält nach Betrachtung aller möglichen Spaltungen an.
6. Umkehrung: Wenn L eine lehbliche Sprache ist, dann l
r
(Die Umkehrung von L) ist ebenfalls entzündbar.
* Erläuterung: Konstruieren Sie ein TM, das Folgendes macht:
* Umkehren die Eingangszeichenfolge `w` um` w
r
zu erhalten `.
* Simulieren Sie das TM für L auf `w
r
`.
* Wenn der TM für L `W
r
akzeptiert `, dann akzeptiere` w`. Ansonsten ablehnen Sie `w`.
7. Differenz: Wenn L1 und L2 lichtbare Sprachen sind, ist L1 - L2 ebenfalls entzündbar. (L1 - L2 enthält alle Zeichenfolgen in L1, die * nicht * in L2 sind).
* Erläuterung: L1 - L2 =L1 ∩ L2 '. Da die lehenden Sprachen unter Komplement und Kreuzung geschlossen sind, sind sie auch unter Differenz geschlossen.
8. Präfix: Wenn L eine lehnte Sprache ist, dann Präfix (l) ={x | Für einige y ist xy ∈ L} lichtdurchschnittlich.
* Erläuterung:
* Auf Eingabe `x`, für alle möglichen` y`, so dass `| xy | <=| x | bis
* Simulieren Sie das TM für L auf `xy`
* Wenn der TM akzeptiert, akzeptieren Sie `x`
* Lehnen Sie ab, wenn keine der oben genannten Simulationen akzeptiert.
Warum ist der Verschluss wichtig?
Verschlusseigenschaften sind grundlegend für das Verständnis der Macht und der Grenzen formaler Sprachklassen. Zu wissen, dass eine Klasse von Sprachen unter bestimmten Operationen geschlossen ist, ermöglicht es uns:
* komplexere Sprachen konstruieren: Wir können einfachere lichtbare Sprachen unter Verwendung dieser Operationen kombinieren und sicher sein, dass die resultierende Sprache ebenfalls entscheidbar ist.
* Beweisen Sie Spracheigenschaften: Verschlusseigenschaften können in induktiven Beweisen verwendet werden, um zu zeigen, dass eine bestimmte Sprache zu einer bestimmten Klasse gehört.
* Designalgorithmen: Die Algorithmen, die den Abschluss zeigen, dienen als Blaupausen für die Implementierung von Parsers und Erkenntnissen für komplexe Sprachen.
* Verstehen Sie die Dekidabilitätshierarchie: Sie helfen dabei, die Beziehung zwischen verschiedenen Sprachklassen zu klären (z. B. regelmäßig, kontextfrei, lehbar, tureröglichkeit).
Zusammenfassend sind die Verschlusseigenschaften von lehenden Sprachen ein Eckpfeiler der Computerbarkeitstheorie. Sie zeigen, dass lehnte Sprachen eine robuste und gut erzogene Klasse von Sprachen sind.