Inhaltsverzeichnis - Automaten und Formale Sprachen
Inhaltsverzeichnis - Automaten und Formale Sprachen
Inhaltsverzeichnis - Automaten und Formale Sprachen
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
L(i, k, k)L(k, k, k) ∗ L(k, j, k). ⊇“: Es ist klar, dass L(i, j, k) ⊆ L(i, j, k + 1) gilt. Liegt<br />
”<br />
ein Wort w ∈ L(i, k, k)L(k, k, k) ∗ L(k, j, k) vor, so kann man w = xy 1 · · · y l z schreiben für<br />
ein l ≥ 0, x ∈ L(i, k, k), y 1 , . . . , y l ∈ L(k, k, k), z ∈ L(k, j, k). Diesen Wörtern entsprechen<br />
Wege von v i nach v k bzw. v k nach v k bzw. v k nach v j , die nur Zwischenknoten in<br />
{v 0 , . . . , v k−1 } benutzen. Hängen wir diese l + 2 Wege hintereinander, erhalten wir einen<br />
Weg von v i nach v j mit Zwischenknoten in {v 0 , . . . , v k }, der w als Kantenbeschriftung<br />
hat; also ist w ∈ L(i, j, k + 1). Damit ist (1.4) bewiesen.]<br />
Mit Hilfe der Aussagen (1.1), (1.2), (1.4) konstruieren wir (durch Induktion über k) reguläre<br />
Ausdrücke r i,j,k für L(i, j, k), 0 ≤ i, j < s, 0 ≤ k ≤ s.<br />
(1.1’) r i,j,0 := a 1 + · · · + a s + ∅, wo L(i, j, 0) = {a 1 , · · · , a s } ⊆ Σ, i ≠ j.<br />
(1.2’) r i,i,0 := a 1 + · · · + a s + ε, wo L(i, i, 0) = {a 1 , . . . , a s } ∪ {ε}.<br />
(1.4’) r i,j,k+1 := r i,j,k + r i,k,k (r ∗ k,k,k )r k,j,k, für 0 ≤ i, j < s, 0 ≤ k < s.<br />
Aus der Konstruktion <strong>und</strong> (1.1), (1.2), (1.4) folgt sofort (technisch: per Induktion über<br />
k), dass<br />
L(i, j, k) = L(r i,j,k ), für 0 ≤ i, j < s, 0 ≤ k ≤ s.<br />
Schließlich setzen wir<br />
es ist dann klar (mit (1.3)), dass<br />
r j := r 0,j,s , für 0 ≤ j < s;<br />
L(0, j) = L(0, j, s) = L(r 0,j,s ) = L(r j ).<br />
Damit kann die Konstruktion von r M beendet werden, wie ganz am Anfang des Beweises<br />
angegeben.<br />
□<br />
Der Beweis liefert auch eine konstruktive Methode, um r M zu erzeugen. Unglücklicherweise<br />
werden selbst für kleine <strong>Automaten</strong> die entstehenden Ausdrücke schnell unhandlich.<br />
Man achte daher auf Vereinfachungsmöglichkeiten (Ersetzen von Teilausdrücken durch<br />
äquivalente einfachere). Weiter kann es Arbeit sparen, wenn man nicht alle r i,j,k konstruiert,<br />
sondern nur die, die man zur Konstruktion von r 0,j,s , j ∈ F , wirklich braucht.<br />
Man kann beweisen, dass es eine Familie (M n ) n≥2 von DFS’s gibt, wo M n = (Q n , Σ n , . . . )<br />
mit |Q n | = n, |Σ n | = n 2 , <strong>und</strong> wo der kleinste reguläre Ausdruck r n für L Mn mindestens<br />
2 n−1 Symbole hat (vgl. Wegener-Buch, S. 132). Das bedeutet, dass im allgemeinen ein<br />
Explodieren der Größe des entstehenden regulären Ausdrucks unvermeidlich ist.<br />
1.3.4 Beispiel Wir wollen einen regulären Ausdruck für den NFA<br />
Start<br />
0<br />
0<br />
1<br />
1<br />
1<br />
konstruieren. Zur Übung erzeugen wir alle r i,j,k .<br />
29