Notizen
Notizen
Notizen
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Automaten und formale Sprachen<br />
<strong>Notizen</strong> zu den Folien<br />
2 Sprachen und Grammatiken<br />
Beispielableitung in einer Grammatik (Zu Folie 68)<br />
Eine Ableitung des Wortes aabbcc in der Grammatik der Folie 64:<br />
S ⇒ aSBC ⇒ aaBCBC ⇒ aaBBCC ⇒ aabBCC ⇒ aabbCC ⇒ aabbcC ⇒ aabbcc<br />
Das heißt, aabbcc ∈ L(G).<br />
Bemerkung zur Chomsky-Hierarchie für Grammatiken (Folie 78)<br />
Alle genannten Bedingungen gelten zusätzlich zu den vorher genannten Bedingungen. Das heißt,<br />
eine reguläre Grammatik G = (Σ, V, P, S) muss die folgenden Bedingungen erfüllen: für alle Regeln<br />
l → r gilt:<br />
• |l| ≤ |r|;<br />
• l ∈ V (l ist eine einzelne Variable);<br />
• r = a oder r = aB, für a ∈ Σ und B ∈ V .<br />
Die Chomsky-Hierarchie für Grammatiken ist eine Hierarchie. Das heißt, jede Chomsky-i-Grammatik<br />
ist auch eine Chomsky-(i − 1)-Grammatik (für i ∈ {1, 2, 3}).<br />
Es ist möglich, dass die gleiche Sprache von zwei verschiedenen Grammatiken erzeugt wird. Die<br />
zwei verschiedenen Grammatiken können auch vom verschiedenen Chomsky-Typ sein.<br />
Grammatiken in Chomsky-Hierarchie einordnen (Folien 78, 79 und 82)<br />
Beispiele<br />
• Sei G 0 = ({S}, {a, b}, S, P 1 ), wobei P die folgende Produktionen enthält:<br />
S → aaSbb | ɛ<br />
aa → a<br />
bb → b<br />
aaa → ɛ<br />
bbb → ɛ<br />
Die Grammatik G 0 ist vom Typ 0, aber nicht vom Typ 1, denn es gibt Produktionen l → r<br />
mit |l| > |r|.<br />
• Sei G 1 = ({S, A, B}, {a, b}, S, P ), wobei P die folgende Produktionen enthält:<br />
S → XT | a | b | ɛ<br />
T → BT | T A | B | A<br />
BA → AB<br />
XA → aX<br />
XB → bb<br />
B → b<br />
1
Die Grammatik G 1 ist kontextsensitiv (Typ 1), denn für alle Produktionen l → r gilt, dass<br />
|l| ≤ |r| (S → ɛ is erlaubt wegen der ɛ-Sonderregel.)<br />
Sie ist aber nicht kontextfrei, denn drei Produktionen enthalten nicht eine einzelne Variable<br />
als linke Seite.<br />
• Sei G 2 = ({S}, {a, b}, S, P ), wobei P die folgende Produktionen enthält:<br />
S → T | ɛ<br />
T → aT | T b | a | b<br />
Die Grammatik G 2 ist kontextfrei (Typ 2), denn sie ist kontextsensitiv und alle linke Seiten<br />
bestehen aus einer einzelnen Variable. (Die Produktion S → ɛ ist erlaubt wegen der ɛ-<br />
Sonderregel.)<br />
Sie ist aber nicht regulär (Typ 3), denn die rechte Seite der Produktion T → T b ist nicht<br />
von der richtigen Form.<br />
• Sei G 3 = ({S}, {a, b}, S, P ), wobei P die folgende Produktionen enthält:<br />
S → aA | aB | a | bB | B | ɛ<br />
A → aA | aB | a<br />
B → bB | b<br />
Die Grammatik G 3 ist regulär, denn sie ist konstextsensitiv, kontextfrei, und alle Regeln<br />
haben die richtige Form. (S → ɛ is wieder erlaubt wegen der ɛ-Sonderregel.)<br />
Übrigens gilt: L(G 0 ) = L(G 1 ) = L(G 2 ) = L(G 3 ) = {a k b n | n, m ≥ 0}. Die von allen Grammatiken<br />
erzeugte Sprache ist also regulär, denn es gibt eine reguläre Grammatik, die die Sprache erzeugt<br />
(in diesem Fall: G 3 ). (Die Sprache ist natürlich auch kontextfrei und kontextsensitiv.)<br />
Bemerkung zur Chomsky-Hierarchie für Sprachen (Folie 82)<br />
Es gilt folgendes:<br />
• Die Sprachklassen sind in einander enthalten. Jede Typ i-Sprache ist auch eine Typ-(i − 1)-<br />
Sprache (für i ∈ {1, 2, 3}).<br />
• Die Sprachklassen sind echt in einander enthalten. Für jede Sprachklasse Typ i (wobei i ∈<br />
{0, 1, 2}), gibt es eine Sprache die vom Typ i ist, aber nicht vom Typ (i + 1).<br />
• Es gibt auch Sprachen, die gar nicht von einer Grammatik erzeugt werden! (Dazu mehr in<br />
der Vorlesung Berechenbarkeit und Komplexität.)<br />
Wortproblem-Algorithmus für Typ-1-Grammatiken (Folie 86)<br />
Wortproblem für das Wort aabbc und die Beispiel-Grammatik von Folie 70.<br />
Anfang: T = {S}<br />
1. Schritt: T = {S, aSBC, aBC}<br />
2. Schritt: T = {S, aSBC, aBC,✭✭✭✭✭<br />
aaBCBC,✭✭✭✭✭<br />
aaSBCBC, abC}<br />
3. Schritt: T = {S, aSBC, aBC, abC, abc}<br />
4. Schritt: T = {S, aSBC, aBC, abC, abc}<br />
Keine Änderungen mehr, also terminiert der Algorithmus. Weil aabbc /∈ T , gilt aabbc /∈ L(G).<br />
2
3 Endliche Automaten<br />
Überführungsfunction eines DFA (Folie 92)<br />
Wie sieht die Überführungfunktion aus?<br />
δ : Z × Σ → Z<br />
Das heißt: Ein Paar aus Zustand und Alphabetsymbol wird auf einen Zustand abgebildet. Also,<br />
δ(z 1 , a) = z 2 heißt, dass ein mit a beschrifteter Pfeil von z 1 zu z 2 geht.<br />
Beispiel: der Automat auf Folie 89 wird wie folgt ”<br />
textuell“ dargestellt:<br />
M = ({z 1 , z 2 }, {a, b}, δ, z 1 , {z 2 }), wobei:<br />
δ(z 1 , a) = z 1 δ(z 2 , a) = z 2<br />
δ(z 1 , b) = z 2 δ(z 2 , b) = z 1<br />
Erweiterung von δ auf Wörter (Folie 93)<br />
Die Funktion ˆδ ist die Erweiterung von δ von Symbolen auf Wörter. Beispiel (siehe Automat auf<br />
Folie 89):<br />
ˆδ(z 1 , ab) = ˆδ(δ(z 1 , a), b) = ˆδ(z 1 , b) = ˆδ(δ(z 1 , b), ɛ) = ˆδ(z 2 , ɛ) = z 2<br />
Das bedeutet, dass das Einlesen des Wortes ab den Automaten vom Zustand z 1 in den Zustand<br />
z 2 führt.<br />
Beispiel-DFAs (Folie 95)<br />
• Antwort der ersten Aufgabe:<br />
L = {x ∈ Σ ∗ | x enthält genau 1 b}<br />
• Antwort der zweiten Aufgabe:<br />
M = (Z, Σ, δ, z 0 , E), mit Z = {1, 2, 3, 4}, Σ = {a, b}, z 0 = 1, E = {4}:<br />
a<br />
b<br />
1 2 3<br />
a<br />
b<br />
a b<br />
4<br />
a, b<br />
Die verschiedene Zustände eines DFA haben alle eine Bedeutung. In diesem Fall:<br />
1. Wenn der Automat in Zustand 1 ist, hat sie gerade angefangen und noch kein Symbol<br />
eingelesen.<br />
2. Wenn der Automat in Zustand 2 ist, war das erste eingelesene Symbol ein a, und war<br />
auch das zuletzt eingelesene Symbol ein a.<br />
3. Wenn der Automat in Zustand 3 ist, war das erste eingelesene Symbol ein a, und war<br />
das zuletzt eingelesene Symbol ein b. (In diesem Zustand kann das Wort akzeptiert<br />
werden.)<br />
4. Wenn der Automat in Zustand 4 ist, war das erste eingelesene Symbol kein a. Das heißt,<br />
dass das Wort nicht in der Sprache liegen kann. Deswegen kann aus diesem Zustand<br />
kein Endzustand mehr erreicht werden.<br />
3