Automaten, Formale Sprachen und Berechenbarkeit I
Automaten, Formale Sprachen und Berechenbarkeit I
Automaten, Formale Sprachen und Berechenbarkeit I
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
40 KAPITEL 2. REGULÄRE SPRACHEN<br />
Spiegelung<br />
Idee: Vertausche die Start- <strong>und</strong> Endzustände miteinander <strong>und</strong> drehe die Kanten der Übergangsrelation<br />
um. Aus einem <strong>Automaten</strong>:<br />
konstruiert wir also den <strong>Automaten</strong>:<br />
a<br />
q 1 0 a 2 . . . a n−1<br />
a n<br />
r<br />
q 0 . . .<br />
a 1<br />
a 2<br />
a n−1<br />
<br />
a n<br />
r<br />
Achtung: Bei nicht alphabetischen <strong>Automaten</strong> müssen die Wörter an den Kanten umgedreht<br />
werden. Wir können aber ohne Beschränkung der Allgemeinheit annehmen, dass der Automat<br />
alphabetisch ist.<br />
□<br />
Bemerkung: Alle Konstruktionen bis auf die Quotientenbildung sind effektiv. Wir werden in<br />
der Übung (Blatt 5, Aufgabe 1c.) beweisen, dass L 1 /L 2 effektiv existiert, wenn auch L 2 regulär<br />
ist.<br />
3.2.3 Anwendung der Abschlußeigenschaften<br />
Die Abschlußeigenschaften von regulären <strong>Sprachen</strong> können wir nun anwenden, um nachzuweisen,<br />
daß bestimmte <strong>Sprachen</strong> regulär sind. Dazu betrachten wir ein Beispiel.<br />
Beispiel 2.11<br />
Für jede reguläre Sprache L ist die Sprache L ′ , in der aus jedem Wort der Sprache L jeder<br />
zweite Buchstabe gestrichen wird, auch regulär.<br />
Beweis:<br />
Wir definieren ein Alphabet Σ ′ = {a ′ , b ′ , c ′ , . . . }, in dem jedes Zeichen aus Σ mit einem Strich<br />
versehen ist. Außerdem definieren wir h : Σ ∪ Σ ′ → Σ ∗ mit h(x) = x für x ∈ Σ <strong>und</strong> h(x ′ ) = x<br />
für x ′ ∈ Σ ′ .<br />
- Dann ist nach Satz 2.13 die Sprache h −1 (L) regulär. Die Sprache h −1 (L) enthält alle<br />
Wörter aus L, wobei die Buchstaben an beliebigen Stellen mit Strichen versehen werden<br />
können.<br />
- Dann ist nach Satz 2.6 die Sprache h −1 (L) ∩ ((ΣΣ ′ ) ∗ ∪ (ΣΣ ′ ) ∗ Σ) ebenfalls regulär. Diese<br />
Sprache enthält genau die Wörter aus L, wobei jedes zweite Zeichen mit einem Strich<br />
versehen ist.<br />
- Nun definieren wir g : Σ ∪ Σ ′ → Σ ∗ mit mit g(x) = x für x ∈ Σ <strong>und</strong> g(x ′ ) = ε für<br />
x ′ ∈ Σ ′ . Der Homomorphismus g löscht also genau die Buchstaben, die mit einem Strich<br />
versehen sind.<br />
- Dann ist nach Satz 2.13 die Sprache L ′ = g(h −1 (L) ∩ ((ΣΣ ′ ) ∗ ∪ (ΣΣ ′ ) ∗ Σ) regulär. Die<br />
Sprache L ′ enthält also genau alle Wörter aus L, wobei in jedem Wort jeder mit einem<br />
Strich versehene Buchstabe (d.h. jeder zweite Buchstabe) gelöscht wurde.<br />
□