Formale Sprachen Rudolf FREUND, Marian KOGLER Regul¤re Sprachen

download Formale Sprachen Rudolf FREUND, Marian KOGLER Regul¤re Sprachen

of 31

  • date post

    06-Apr-2015
  • Category

    Documents

  • view

    123
  • download

    0

Embed Size (px)

Transcript of Formale Sprachen Rudolf FREUND, Marian KOGLER Regul¤re Sprachen

  • Folie 1
  • Formale Sprachen Rudolf FREUND, Marian KOGLER Regulre Sprachen
  • Folie 2
  • 2 Endliche Automaten - Kleene STEPHEN KLEENE (1909 - 1994) 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
  • Folie 3
  • 3 Endliche Automaten 0 q1q1 q2q2 q3q3 1 1 0 0,1 Zustandsdiagramm: Drei Zustnde: q 1, q 2, q 3 Startzustand : q 1 Endzustand : q 2 Transitionen (bergnge): Pfeile Eingabe: Wort Ausgehend vom Startzustand liest der Automat M von links nach rechts Symbol fr Symbol. Nach dem Lesen eines Symbols geht M in den nchsten 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.
  • Folie 4
  • 4 Endliche Automaten: Beispiel 0 q1q1 q2q2 q3q3 1 1 0 0,1 Eingabewort: 1101 Starte in Zustand q 1.
  • Folie 5
  • 5 Endliche Automaten: Beispiel 0 q1q1 q2q2 q3q3 1 1 0 0,1 Wort: 1101 Lies 1 und folge der mit 1 markierten Kante.
  • Folie 6
  • 6 Endliche Automaten: Beispiel 0 q1q1 q2q2 q3q3 1 1 0 0,1 Wort: 1101 Lies 1 und folge der mit 1 markierten Kante zum Zustand q 2.
  • Folie 7
  • 7 Endliche Automaten: Beispiel 0 q1q1 q2q2 q3q3 1 1 0 0,1 Wort: 1101 Lies 1 und folge der mit 1 markierten Kante.
  • Folie 8
  • 8 Endliche Automaten: Beispiel 0 q1q1 q2q2 q3q3 1 1 0 0,1 Wort: 1101 Lies 1 und folge der mit 1 markierten Kante zum Zustand q 2.
  • Folie 9
  • 9 Endliche Automaten: Beispiel 0 q1q1 q2q2 q3q3 1 1 0 0,1 Wort: 1101 Lies 0 und folge der mit 0 markierten Kante.
  • Folie 10
  • 10 Endliche Automaten: Beispiel 0 q1q1 q2q2 q3q3 1 1 0 0,1 Wort: 1101 Lies 0 und folge der mit 0 markierten Kante zum Zustand q 3.
  • Folie 11
  • 11 Endliche Automaten: Beispiel 0 q1q1 q2q2 q3q3 1 1 0 0,1 Wort: 1101 Lies 1 und folge der mit 1 markierten Kante.
  • Folie 12
  • 12 Endliche Automaten: Beispiel 0 q1q1 q2q2 q3q3 1 1 0 0,1 Wort: 1101 Lies 1 und folge der mit 1 markierten Kante zum Zustand q 2.
  • Folie 13
  • 13 Endliche Automaten: Beispiel 0 q1q1 q2q2 q3q3 1 1 0 0,1 Wort: 1101 Das Wort 1101 wird akzeptiert, da sich der Automat am Ende des Eingabewortes in einem Endzustand befindet.
  • Folie 14
  • 14 Endliche Automaten: Beispiel 0 q1q1 q2q2 q3q3 1 1 0 0,1 Akzeptierte Wrter: 1, 01, 11, 01010101,... Wrter, die mit 1 enden Aber auch: 100, 0100, 110000,... Wrter, die mit einer geraden Anzahl von 0en nach der letzten 1 enden. Nicht akzeptierte Wrter: 0, 10, 101000,... Akzeptierte Sprache: {0}*{1}({1}*{00,01})*{1}*
  • Folie 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 Zustnden, das Alphabet, : Q Q die Transitionsfunktion, q 0 der Startzustand und F Q eine Menge von Endzustnden ist.
  • Folie 16
  • 16 Endliche Automaten: Falle Sei M = (Q,,,q 0,F) ein DEA und q Q - F mit (q,a)=q fr alle a ; dann heit q Falle. Um die bersichtlichkeit zu erhhen, knnen Fallen bei der Beschreibung endlicher Automaten weggelassen werden (allerdings nur, wenn ausdrcklich erlaubt). q1q1 q2q2 q3q3 0,1 q4q4 Akzeptierte Sprache: {,00,01,10,11}
  • Folie 17
  • 17 Endliche Automaten: formale Definition (2) Sei M = (Q,,, q 0, F) ein DEA. Dann definieren wir die erweiterte bergangsfunktion *: Q * Q folgendermaen: *(q, ) = q, *(q,aw) = *( (q,a),w) fr alle q Q, w *, a. Um das Verhalten eines DEA auf einer Zeichenkette formal zu beschreiben, erweitern wir die bergangsfunktion auf beliebige Wrter aus *: Eine Zeichenkette w * heit vom DEA M = (Q,,,q 0,F) akzeptiert, falls *(q 0,w) = p fr einen Zustand p F gilt. Die von M akzeptierte Sprache, bezeichnet mit L(M), ist die Menge { w * | *(q 0,w) F }.
  • Folie 18
  • 18 Endliche Automaten: Beispiel 0 q1q1 q2q2 q3q3 1 1 0 0,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:
  • Folie 19
  • 19 Nondeterminismus MICHAEL O. RABIN (*1931) 1959: Finite Automata and Their Decision Problem IBM J. Research and Development, 3:114-125 1976: Turing-Preis fr Informatik DANA SCOTT (*1932)
  • Folie 20
  • 20 Nondeterminismus 0 q1q1 q2q2 q3q3 1 1 0 0,1 DEA Von einem Zustand aus gibt es mit ein und demselben Eingabesymbol genau einen Folgezustand. NEA 0,1 q1q1 q2q2 q3q3 1 1 0, 0,1 q4q4 bergnge sind auch mit mglich ( - bergnge ). Von einem Zustand aus kann es mit ein und demselben Eingabesymbol mehrere Folgezustnde geben.
  • Folie 21
  • 21 NEA Ein nichtdeterministischer endlicher Automat (NEA) ist ein 5-Tupel (Q,,,q 0,F) wobei Q eine endliche Menge von Zustnden, das Alphabet, : Q ( { } ) 2 Q die Transitionsfunktion q 0 der Startzustand und F Q eine Menge von Endzustnden ist.
  • Folie 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) fr alle q Q, a = (q,a) 2Q2Q =Q q
  • Folie 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 Zustnde einfhren, nicht alle!! (fr NEAs ohne -bergnge) 0 L(M) = R n 1j q j F">
  • 30 Von DEA zu REG Wird eine Sprache von einem DEA akzeptiert, dann ist sie regulr. M = ({ q i | 1 i n},,, q 0, F) R k ij Menge aller Wrter, mit denen man von q i nach q j gelangt, ohne einen Zwischenzustand mit Index grer als k zu durchlaufen. R 0 ij = {a | (q i,a) = q j } fr i j {a | (q i,a) = q j } { }fr i = j R k ij = R k-1 ij R k-1 ik (R k-1 kk )* R k-1 kj fr k > 0 L(M) = R n 1j q j F
  • Folie 31
  • 31 Regulre Sprachen: Zusammenfassung Beschreibungsmethoden fr regulre Sprachen: Regulre Mengen Regulre Grammatiken DEA NEA