Inhaltsverzeichnis - Automaten und Formale Sprachen
Inhaltsverzeichnis - Automaten und Formale Sprachen
Inhaltsverzeichnis - Automaten und Formale Sprachen
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>und</strong> füge B ′ in die Warteschlange ein.<br />
Ausgabe: B.<br />
Wie groß wird der von der Potenzmengenkonstruktion erzeugte DFA M ′ ? Gr<strong>und</strong>sätzlich<br />
gibt es nur die obere Schranke |Q ′ | = 2 |Q| . Lässt man überflüssige Zustände weg, wird<br />
Q ′ u. U. kleiner. Jedoch zeigt es sich, dass in manchen Fällen der exponentielle Blow-up<br />
unvermeidbar ist.<br />
1.2.8 Beispiel Sei n ≥ 1 fest, <strong>und</strong> sei L = {0, 1} ∗ {0}{0, 1} n−1 , die Menge aller<br />
Binärstrings der Länge mindestens n, die an der n-ten Stelle von rechts eine 0 haben. Ein<br />
NFA für L mit n + 1 Zuständen sieht aus wie folgt:<br />
0,1<br />
Start<br />
0 0,1 0,1...<br />
0 1 2 n-1<br />
0,1<br />
n<br />
Die pure Potenzmengenkonstruktion liefert einen DFA mit 2 n+1 Zuständen. Von diesen<br />
sind 2 n nicht erreichbar, nämlich die B mit 0 /∈ B, wie man sich leicht überlegt. Durch<br />
Weglassen dieser Zustände erhalten wir einen DFA mit 2 n Zuständen. Andererseits hat<br />
jeder DFA M = (Q, Σ, q 0 , F, δ) mit L = L M mindestens 2 n Zustände. Dies sieht man<br />
folgendermaßen ein: Angenommen, |Q| < 2 n . Dann existieren zwei verschiedene Wörter<br />
a 1 · · · a n , b 1 · · · b n ∈ {0, 1} n mit δ(q 0 , a 1 · · · a n ) = δ(q 0 , b 1 · · · b n ). Wähle ein i mit a i ≠ b i ,<br />
z. B. a i = 0 <strong>und</strong> b i = 1. Dann gilt a 1 · · · a i · · · a n 0 i−1 ∈ L <strong>und</strong> b 1 · · · b i · · · b n 0 i−1 ∉ L, also<br />
Andererseits ist nach 1.1.2<br />
ein Widerspruch.<br />
δ(q 0 , a 1 · · · a n 0 i−1 ) ∈ F <strong>und</strong> δ(q 0 , b 1 · · · b n 0 i−1 ) ∉ F.<br />
δ(q 0 , a 1 · · · a n 0 i−1 ) = δ(q 0 , b 1 · · · b n 0 i−1 ),<br />
1.3 Reguläre Ausdrücke<br />
Bisher haben wir <strong>Sprachen</strong> immer nur abstrakt oder durch zugehörige Maschinen beschrieben.<br />
Reguläre Ausdrücke stellen eine andere Art dar, <strong>Sprachen</strong> zu spezifizieren. Reguläre<br />
Ausdrücke formalisieren den folgenden induktiven Ansatz zur Konstruktion immer komplizierterer<br />
<strong>Sprachen</strong>:<br />
• Starte mit den ”<br />
trivialen <strong>Sprachen</strong>“ ∅, {ε}, {a}, für a ∈ Σ;<br />
• Wende die Operationen<br />
24