27.11.2014 Aufrufe

Automaten, Formale Sprachen und Berechenbarkeit I

Automaten, Formale Sprachen und Berechenbarkeit I

Automaten, Formale Sprachen und Berechenbarkeit I

MEHR ANZEIGEN
WENIGER ANZEIGEN

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 />

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!