Automaten und formale Sprachen Notizen zu den Folien

Automaten und formale Sprachen Notizen zu den Folien 3 Endliche Automaten ¨ Uberf u ¨ hrungsfunction eines DFA (Folie 92) ¨ Wie sieht die Uberf¨ uh...
Author: Pia Armbruster
0 downloads 2 Views 178KB Size
Automaten und formale Sprachen Notizen zu den Folien

3

Endliche Automaten

¨ Uberf u ¨ hrungsfunction eines DFA (Folie 92) ¨ Wie sieht die Uberf¨ uhrungfunktion aus? δ: Z × Σ → Z Das heißt: Ein Paar aus Zustand und Alphabetsymbol wird auf einen Zustand abgebildet. Also, δ(z1 , a) = z2 heißt, dass ein mit a beschrifteter Pfeil von z1 zu z2 geht. Beispiel: der Automat auf Folie 89 wird wie folgt textuell“ dargestellt: ” M = ({z1 , z2 }, {a, b}, δ, z1 , {z2 }), wobei: δ(z1 , a) = z1

δ(z2 , a) = z2

δ(z1 , b) = z2

δ(z2 , b) = z1

Erweiterung von δ auf Wo ¨rter (Folie 93) Die Funktion δˆ ist die Erweiterung von δ von Symbolen auf W¨orter. Beispiel (siehe Automat auf Folie 89): ˆ 1 , ab) = δ(δ(z ˆ ˆ ˆ ˆ δ(z 1 , a), b) = δ(z1 , b) = δ(δ(z1 , b), ) = δ(z2 , ) = z2 Das bedeutet, dass das Einlesen des Wortes ab den Automaten vom Zustand z1 in den Zustand z2 f¨ uhrt.

Beispiel-DFAs (Folie 95) • Antwort der ersten Aufgabe: L = {x ∈ Σ∗ | x enth¨alt genau 1 b} • Antwort der zweiten Aufgabe: M = (Z, Σ, δ, z0 , E), mit Z = {1, 2, 3, 4}, Σ = {a, b}, z0 = 1, E = {4}:

1

a

b 2

4 a

b

a

b

3 a, b Die verschiedene Zust¨ ande eines DFA haben alle eine Bedeutung. In diesem Fall: 1. Wenn der Automat in Zustand 1 ist, hat sie gerade angefangen und noch kein Symbol eingelesen.

1

2. Wenn der Automat in Zustand 2 ist, war das erste eingelesene Symbol ein a, und war auch das zuletzt eingelesene Symbol ein a. 3. Wenn der Automat in Zustand 3 ist, war das erste eingelesene Symbol ein a, und war das zuletzt eingelesene Symbol ein b. (In diesem Zustand kann das Wort akzeptiert werden.) 4. Wenn der Automat in Zustand 4 ist, war das erste eingelesene Symbol kein a. Das heißt, dass das Wort nicht in der Sprache liegen kann. Deswegen kann aus diesem Zustand kein Endzustand mehr erreicht werden.

DFA → Regul¨ are Grammatik (Folie 96) Satz. Jede von einem endlichen Automaten akzeptierte Sprache ist regul¨ar. Beweis. Nach Definition, ist eine Sprache regul¨ar, wenn es eine regul¨are Grammatik gibt, die sie erzeugt. Sei ein endlicher Automat M = (Z, Σ, δ, z0 , E) gegeben. Wir m¨ ussen zeigen, dass es eine regul¨ are Grammatik G gibt, mit L(G) = T (M ). Wir konstruieren die Grammatik G = (V, Σ, P, S), wobei V = Z, S = z0 und P folgende Produktionen enth¨ alt: • Falls  ∈ T (M ), enth¨ alt P eine Produktion S → . (Es ist dann noch notwendig, die Grammatik noch weiter umzuwandeln, damit die -Sonderregel nicht verletzt wird.) • F¨ ur alle z1 ∈ Z und a ∈ Σ: – Falls δ(z1 , a) = z2 , dann gilt (z1 → az2 ) ∈ P . – Falls zus¨ atzlich gilt, dass z2 ∈ E, dann gilt auch (z1 → a) ∈ P . Jetzt m¨ ussen wir noch beweisen, dass T (M ) = L(G). Daf¨ ur gibt es zwei Richtungen. • Angenommen, a1 . . . an ∈ T (M ). Dann gibt es Zust¨ ande q0 , . . . , qn , so dass q0 = z0 , qn ∈ E und qi = δ(qi−1 , ai ), f¨ ur i ∈ {1, . . . , n}. Nach Konstruktion heißt das, dass (qi−1 → ai qi ) ∈ P , f¨ ur i ∈ {1, . . . , n}. Weil außerdem qn ∈ E, gilt auch (qn−1 → an ) ∈ P . Deswegen ist z0 ⇒ a1 q1 ⇒ a1 a2 q2 ⇒ · · · ⇒ a1 . . . an−1 qn−1 ⇒ a1 . . . an eine Ableitung von G, und es gilt a1 . . . an ∈ L(G). • Angenommen, a1 . . . an ∈ L(G). Nach Definition muss es eine Ableitung z0 ⇒ a1 q1 ⇒ a1 a2 q2 ⇒ · · · ⇒ a1 . . . an−1 qn−1 ⇒ a1 . . . an geben. Nach Konstruktion heißt das, dass (qi−1 → ai qi ) ∈ P , f¨ ur i ∈ {1, . . . , n}. Das heißt, dass (qi−1 → ai qi ) ∈ P , f¨ ur i ∈ {1, . . . , n}. Nach Konstruktion gilt qi = δ(qi−1 , ai ). Weil außerdem (qn−1 → an ) ∈ P , gibt es einen qn ∈ E so dass qn = δ(qn−1 , an ). Daraus folgt, dass a1 . . . an ∈ T (M ).  Bemerkung: Obiger Beweis ist konstruktiv. Das heißt, dass er ein Verfahren enth¨alt, das wir ben¨ utzen k¨ onnen, um eine zu einem DFA ¨aquivalente regul¨are Grammatik zu erzeugen. Beispiel zur Umwandlung 2

Wenn wir das Verfahren aus dem Beweis auf dem DFA der Folie 89 anwenden, ergibt sich folgende regul¨ are Grammatik: z1 → az1 | bz2 | b z2 → az2 | bz1 | a

Zu Folie 100 ¨ Wie sieht die Uberf¨ uhrungsfunktion aus? δ : Z × Σ → P(Z) Das heißt, jedem Paar aus Zustand und Alphabetsymbol wird eine Menge von Zust¨ anden zugeordnet. Beispiel: der Automat auf Folie 99 wird folgendermaßen textuell“ dargestellt: ” M = ({z0 , z1 , z2 , z3 }, {a, b}, δ, {z0 , z3 }, {z3 }), wobei: δ(z0 , a) = {z1 }

δ(z1 , a) = ∅

δ(z2 , a) = {z3 }

δ(z3 , a) = {z0 }

δ(z0 , b) = {z0 , z2 }

δ(z1 , b) = {z3 }

δ(z2 , b) = ∅

δ(z3 , b) = ∅

Zu Folie 101 Genauso wie bei DFAs, ist δˆ die Erweiterung von δ von Alphabetsymbolen auf W¨orter. Sei Z 0 = {z1 , . . . , zn }. Dann bedeutet [

ˆ δ(δ(z, a), x)

z∈Z 0

das gleiche wie: ˆ ˆ δ(δ(z 1 , a), x) ∪ · · · ∪ δ(δ(zn , a), x) Beispiel (siehe Automat auf Folie 99): ˆ 0 }, ba) δ({z = ˆ δ(δ(z , b), a) = 0 ˆ 0 , z2 }, a) δ({z = ˆ ˆ δ(δ(z 0 , a), ) ∪ δ(δ(z2 , a), ) = ˆ 1 }, ) ∪ δ({z ˆ 3 }, ) δ({z = {z1 } ∪ {z3 } = {z1 , z3 } Das heißt, dass das Einlesen des Wortes ba den Automaten vom Zustand z0 entweder in den Zustand z1 oder in den Zustand z3 f¨ uhrt.

NFA-Beispiele (Zu Folie 103) • Die vom NFA akzeptierten Sprache ist: L0 = {x | das 3-letzte Zeichen von x ist a} • Folgender NFA akzeptiert die Sprache L = {x | x f¨angt mit a an und endet mit b}:

z0

a

z1 a, b

3

b

z2

Potenzmengenkonstruktion (Folie 106) Wir wenden die Potenzmengenkonstruktion an, um den folgenden NFA (¨ uber das Alphabet Σ = {a, b}) in einen DFA umzuwandeln: a z2 a z1

a z4

a a

b z3 b

Manchmal ist es hilfreich, eine Tabelle zu erstellen. Wir fangen an mit der Menge von Anfangszust¨ anden ({z1 , z4 }), und gucken welche Mengen von Zust¨anden daraus nach dem Einlesen eines Symbols erreicht werden. Die erreichten Zust¨ande werden wieder in die Tabelle eingef¨ ugt:

{z1 , z3 } {z2 , z3 } {z3 }

a {z2 , z3 }

b {z3 }

F¨ ur alle Mengen von Zust¨ anden, die in die Tabelle aufgenommen werden, gucken wir welche Mengen von Zust¨ anden nach dem Einlesen einzelner Alphabetsymbole erreicht werden, und f¨ ugen diese in die Tabelle ein (falls sie noch nicht vorhanden sind). Im Beispiel sieht die Tabelle am Ende folgendermaßen aus:

→ →

{z1 , z4 } {z2 , z3 } {z3 } ∅

a {z2 , z3 } {z2 , z3 } ∅ ∅

b {z3 } {z3 } {z3 } ∅

Auf diese Weise nehmen wir nur die erreichbare Zust¨ande des DFA in die Tabelle auf. (Es sei angemerkt, dass der vollst¨ andige Potenzmengenautomat 24 = 16 Zust¨ande hat, von denen wir nur 4 angegeben haben.) Die Zust¨ande {z2 , z3 } und {z3 } sind Endzust¨ande des NFA, denn sie enthalten einen Endzustand des NFA. Der DFA, der dieser Tabelle enspricht, ist:

4

a a

{z1 , z4 }

{z2 , z3 }

b

b

a

{z3 }

∅ a, b

b

Hier sei angemerkt, dass Zust¨ ande des konstruierten DFAs Mengen von Zust¨ anden des urspr¨ unglichen NFAs sind. Hinweis: Obwohl die Tabelle hilfreich sein kann, ist es nicht notwendig sie anzugeben. Man kann die Zust¨ ande auch sofort aufzeichnen anstatt sie in die Tabelle aufzunehmen. (Insbesondere darf man das auch in der Pr¨ ufung bzw. Klausur machen.) Mit Hilfe der Potenzmengenkonstruktion, wird der NFA von Seite 3 in den folgenden DFA umgewandelt (nicht erreichbare Zust¨ ande, wie z.B. {z2 , z3 }, sind nicht angegeben).

{z0 }

a

b {z1 }

{z1 , z2 } a

b

a

b

∅ a, b

Regul¨ are Grammatik → NFA (Folie 110) Gegeben Sei G = ({S, U }, {a, b}, P, S), wobei P wie folgt definiert ist: S → aS | bU | a U → aU | bS | b Wir wandeln diese Grammatik in einen NFA M = (Z, {a, b}, δ, S, E) um. Wir haben: Z = {S, U, X} E = {X}

und δ wie folgt:

5

a

S b

a X

b U

a

6

b