15.09.2014 Aufrufe

Notizen

Notizen

Notizen

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.

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!