Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Formale Sprachen Rudolf FREUND, Marian KOGLER Reguläre Sprachen.

Ähnliche Präsentationen


Präsentation zum Thema: "Formale Sprachen Rudolf FREUND, Marian KOGLER Reguläre Sprachen."—  Präsentation transkript:

1 Formale Sprachen Rudolf FREUND, Marian KOGLER Reguläre Sprachen

2 2 Endliche Automaten - Kleene STEPHEN KLEENE ( ) 1956: Representation of events in nerve nets and finite automata. In: C.E. Shannon und J. McCarthy (eds.), Automata studies, Princeton Univ. Press, 3-42

3 3 Endliche Automaten 0 q1q1 q2q2 q3q ,1 Zustandsdiagramm: Drei Zustände: q 1, q 2, q 3 Startzustand : q 1 Endzustand : q 2 Transitionen (Übergänge): Pfeile Eingabe: Wort Ausgehend vom Startzustand liest der Automat M von links nach rechts Symbol für Symbol. Nach dem Lesen eines Symbols geht M in den nächsten Zustand über, indem er entlang der mit diesem Symbol markierten Kante geht. Nach dem Lesen des letzten Symbols wird der Output erzeugt: Befindet sich M in einem Endzustand, wird das Wort akzeptiert; ansonsten wird das Wort nicht akzeptiert.

4 4 Endliche Automaten: Beispiel 0 q1q1 q2q2 q3q ,1 Eingabewort: 1101 Starte in Zustand q 1.

5 5 Endliche Automaten: Beispiel 0 q1q1 q2q2 q3q ,1 Wort: 1101 Lies 1 und folge der mit 1 markierten Kante.

6 6 Endliche Automaten: Beispiel 0 q1q1 q2q2 q3q ,1 Wort: 1101 Lies 1 und folge der mit 1 markierten Kante zum Zustand q 2.

7 7 Endliche Automaten: Beispiel 0 q1q1 q2q2 q3q ,1 Wort: 1101 Lies 1 und folge der mit 1 markierten Kante.

8 8 Endliche Automaten: Beispiel 0 q1q1 q2q2 q3q ,1 Wort: 1101 Lies 1 und folge der mit 1 markierten Kante zum Zustand q 2.

9 9 Endliche Automaten: Beispiel 0 q1q1 q2q2 q3q ,1 Wort: 1101 Lies 0 und folge der mit 0 markierten Kante.

10 10 Endliche Automaten: Beispiel 0 q1q1 q2q2 q3q ,1 Wort: 1101 Lies 0 und folge der mit 0 markierten Kante zum Zustand q 3.

11 11 Endliche Automaten: Beispiel 0 q1q1 q2q2 q3q ,1 Wort: 1101 Lies 1 und folge der mit 1 markierten Kante.

12 12 Endliche Automaten: Beispiel 0 q1q1 q2q2 q3q ,1 Wort: 1101 Lies 1 und folge der mit 1 markierten Kante zum Zustand q 2.

13 13 Endliche Automaten: Beispiel 0 q1q1 q2q2 q3q ,1 Wort: 1101 Das Wort 1101 wird akzeptiert, da sich der Automat am Ende des Eingabewortes in einem Endzustand befindet.

14 14 Endliche Automaten: Beispiel 0 q1q1 q2q2 q3q ,1 Akzeptierte Wörter: 1, 01, 11, ,... Wörter, die mit 1 enden Aber auch: 100, 0100, ,... Wörter, die mit einer geraden Anzahl von 0en nach der letzten 1 enden. Nicht akzeptierte Wörter: 0, 10, ,... Akzeptierte Sprache: {0}*{1}({1}*{00,01})*{1}*

15 15 Endliche Automaten: formale Definition Ein deterministischer endlicher Automat (DEA) ist ein 5-Tupel (Q,,,q 0,F) wobei Q eine endliche Menge von Zuständen, das Alphabet, : Q Q die Transitionsfunktion, q 0 der Startzustand und F Q eine Menge von Endzuständen ist.

16 16 Endliche Automaten: Falle Sei M = (Q,,,q 0,F) ein DEA und q Q - F mit (q,a)=q für alle a ; dann heißt q Falle. Um die Übersichtlichkeit zu erhöhen, können Fallen bei der Beschreibung endlicher Automaten weggelassen werden (allerdings nur, wenn ausdrücklich erlaubt). q1q1 q2q2 q3q3 0,1 q4q4 Akzeptierte Sprache: {,00,01,10,11}

17 17 Endliche Automaten: formale Definition (2) Sei M = (Q,,, q 0, F) ein DEA. Dann definieren wir die erweiterte Übergangsfunktion *: Q * Q folgendermaßen: *(q, ) = q, *(q,aw) = *( (q,a),w) für alle q Q, w *, a. Um das Verhalten eines DEA auf einer Zeichenkette formal zu beschreiben, erweitern wir die Übergangsfunktion auf beliebige Wörter aus *: Eine Zeichenkette w * heißt vom DEA M = (Q,,,q 0,F) akzeptiert, falls *(q 0,w) = p für einen Zustand p F gilt. Die von M akzeptierte Sprache, bezeichnet mit L(M), ist die Menge { w * | *(q 0,w) F }.

18 18 Endliche Automaten: Beispiel 0 q1q1 q2q2 q3q ,1 M = (Q,,, q 1, F) mit Q = { q 1, q 2, q 3 }, = { 0,1 }, (gegeben durch die Übergangsmatrix), q 1 Startzustand, F = {q 2 }. 01 q1q1 q1q1 q2q2 q2q2 q3q3 q2q2 q3q3 q2q2 q2q2 *(q 1,1101) = *( (q 1,1),101) = *(q 2,101) = *( (q 2,1),01) = *(q 2,01) = *( (q 2,0),1) = *(q 3,1) = *(q 2, ) = q 2 L(M) = {0}*{1}({1}*{00,01})*{1}* Beispiel:

19 19 Nondeterminismus MICHAEL O. RABIN (*1931) 1959: Finite Automata and Their Decision Problem IBM J. Research and Development, 3: : Turing-Preis für Informatik DANA SCOTT (*1932)

20 20 Nondeterminismus 0 q1q1 q2q2 q3q ,1 DEA Von einem Zustand aus gibt es mit ein und demselben Eingabesymbol genau einen Folgezustand. NEA 0,1 q1q1 q2q2 q3q , 0,1 q4q4 Übergänge sind auch mit möglich ( - Übergänge ). Von einem Zustand aus kann es mit ein und demselben Eingabesymbol mehrere Folgezustände geben.

21 21 NEA Ein nichtdeterministischer endlicher Automat (NEA) ist ein 5-Tupel (Q,,,q 0,F) wobei Q eine endliche Menge von Zuständen, das Alphabet, : Q ( { } ) 2 Q die Transitionsfunktion q 0 der Startzustand und F Q eine Menge von Endzuständen ist.

22 22 Äquivalenz von NEA und DEA - Beweis Zu jedem nicht-deterministischen endlichen Automaten gibt es einen äquivalenten deterministischen endlichen Automaten. NEA: M = (Q,,, q 0, F) DEA: M = (Q,,, q 0, F) wobei {q Q | q F 0 } sonst {q Q | q F 0 } {q 0 } falls L(A) =F { q 0 }=q0q0 *(q,a) für alle q Q, a = (q,a) 2Q2Q =Q q

23 23 vom NEA zum DEA: Beispiel - Konstruktion L(M) = { waa | w {a,b}* } a,b q1q1 q2q2 q3q3 a a {q 1,q 2 } {q 1,q 2,q 3 } {q 1,q 2 } {q 1 } {q 1,q 2,q 3 }{q 1 } {q 1,q 2,q 3 }{q 1 } a b SZ EZ b {q 1 }{q 1,q 2 }{q 1,q 2,q 3 } aa b b a WICHTIG: Bei Beispielen nur die notwendigen Zustände einführen, nicht alle!! (für NEAs ohne -Übergänge)

24 24 NEA mit einem Endzustand Zu jedem NEA M gibt es einen äquivalenten NEA M mit card(F) = 1. M M

25 25 EA und reguläre Sprachen Zu jeder regulären Sprache R gibt einen endlichen Automaten M sodass R = L(M) L = { } L = {a} für a a

26 26 EA und reguläre Sprachen L = L 1 L 2 N1N1 N2N2 N

27 27 EA und reguläre Sprachen L = L 1 L 2 N1N1 N2N2 N (O.B.d.A. besitzt N 1 nur einen Endzustand !)

28 28 EA und reguläre Sprachen L = (L 1 )* N1N1 N (O.B.d.A. besitzt N 1 nur einen Endzustand !)

29 29 DEA und reguläre Grammatik Zu jedem DEA M gibt es eine reguläre Grammatik G sodass L(M) = L(G) und umgekehrt. M = (Q,,, q 0, F)G = (Q,, P, q 0 ) p,q Q und a (p,a) = q p q a p aq p p

30 30 Von DEA zu REG Wird eine Sprache von einem DEA akzeptiert, dann ist sie regulär. M = ({ q i | 1 i n},,, q 0, F) R k ij Menge aller Wörter, mit denen man von q i nach q j gelangt, ohne einen Zwischenzustand mit Index größer als k zu durchlaufen. R 0 ij = {a | (q i,a) = q j } für i j {a | (q i,a) = q j } { }für i = j R k ij = R k-1 ij R k-1 ik (R k-1 kk )* R k-1 kj für k > 0 L(M) = R n 1j q j F

31 31 Reguläre Sprachen: Zusammenfassung Beschreibungsmethoden für reguläre Sprachen: Reguläre Mengen Reguläre Grammatiken DEA NEA


Herunterladen ppt "Formale Sprachen Rudolf FREUND, Marian KOGLER Reguläre Sprachen."

Ähnliche Präsentationen


Google-Anzeigen