Menu Close

Theoretische Informatik (Vorlesung 5)

 2. Endliche Automaten und reguläre Sprachen

  • A = ( Q, Σ, q0, δ, F )
    • Q = Zustandsmenge
    • Σ = Alphabet
    • q0 = Anfangszustand
    • δ = Übergangsfunktion
    • F = Endzustände
  • Beispiel: Endlichen Automat
    • Q = { q0, q1, q2 }, Σ = { 0,1 }, q0 Anfangszustand, Endzustand F = {q2}
    • δ: Q x Σ → Q
    • δ ( q0, 0 ) = q1
    • δ ( q0, 1 ) = q0
    • δ ( q1, 0 ) = q0
    • δ ( q1,1 ) = q1
    • δ ( q2,0 ) = q1
    • δ ( q2, 1 ) = q2

Allgemein

  • ( . ) = Anfangszustand
  • (   ) = Zustände
  • ((  )) = Endzustände
  • Für q‘ = d(q,x) kann man auch schreiben:
  • Für uns interessant: Nutzung von PEAS für das Wortproblem
  • Definition 2.2 ( Erweiterte Übergangsfunktion)
    • Sei A = (Q, Σ, q0, δ, F) ein DEA.
    • Die erweiterte Übergangsfunktion: δ* : Q x Σ* (Wort) → Q wird iterativ wie folgt definiert:
      • 1. δ*(q,Σ) = q
      • 2. δ*(q, a)=δ(q, a) für alle a ∈ Σ
      • 3. δ*(q,w) = δ* ( δ( q,x ),w‘ ) mit w = x w‘ und w = Σ*, x ∈ Σ
  • Beispiel:
    • δ*( q0, 100110 )  
    • = δ* ( q0,  00110 )
    • = δ* ( δ ( q0, 0)  0110 )  
    • = δ* ( δ ( q1, 0)  110 )  
    • = δ* ( δ ( q2, 1)  10 )  
    • = δ* ( δ ( q2, 1)  0 )  
    • = δ* ( δ ( q2, 0)  Σ ) 
    • = δ* (q1, Σ ) = q1
    • δ*( q0, 100110 ) = q1
  • Def 2.3 Akzeptierte Sprache
    • Sei A = ( Q, Σ, q0, δ, F) ein DEA, dann heißt L(A) = { w ∈ Σ*, δ*(q,w) ∈ F } die von A akzeptierte Sprache.
    • L(A) = { w ∈ { 0,1 }*, die Anzahl der Nullen ist gerade und ungleich 0.
  • Beispiel:
    • Ein DEA für die Sprache L = { w ∈ {0,1}*, w ist eine Binärdarstellung einer durch 3 teilbaren Zahl }
    • Für ein Wort w = wn … w1 ∈  { 0,1 }* sei nat(w) = ∑(i=1 bis n) z(i-1)*wi
  • Wir setzen weiter:
    • nat(Σ)=0 ( Leere Menge )
    • nat (1 0 1 1 ) = ∑ (i=1 bis 4) = 20 * 1+2* 1+2* 0+2* 1 ( Es sind dabei w4, w3, w2, w1 )
    • Für eine natürliche Zahl n ∈ ℕ gilt:
    • n mod 3 = {0,1,2}  ( 0 = Durch drei teilbar )
  • Für DEAs ist das Wortproblem lösbar:Gegeben: Eine durch 3 teilbare Zahl, z.B.:
    • 11 = 3
    • 110 = 6 // hat (w0) = 2nat(w)
    • 111 = 7 // hat (w1) = 2nat(w)+1
  • Gegeben: Ein DEA A und ein Wort w.
  • Frage: Gilt w ∈ L(A)
  • Definition 2.4
    • Sei A ein DEA, für jedes Wort aus w ∈ Σ* kann in |w| Schritten geprüft werden ( |w| = Länge von w ), ob w ∈ L(A)
    • Beweis: Berechne δ*(q0,w) Diese Berechnung erfordert |w| Schritte, dann gilt:
    • 1) Ist δ*(q0, w) ∈ F, so ist  w ∈ L(A)
    • 2) sonst nicht

2.2 Minimierungsalgorithmus

  • Definition 2.5: 
    • Zwei DEA A und A‘ heißen äquivalent, wenn L(A) = L(A‘)
    • Zwei Automaten erzeugen die gleiche Sprache, sind aber anders aufgebaut
  • Beispiel 1:
  • Beispiel 2:Die Sprache L(A) lautet wie folgt:
    • L(A)=(a+ba)* bb (a+b)*
    • L(A) = { w ∈ {a,b}, w enthält das Teilwort bb}
    • L(A, q0) = L(A)
    • L(A, q1) = L(A) u {bw, w ∈ Σ*}
    • L(A,q2) = {a,b}*
    • Es gibt keine äquivalenten Zustände ( nichts zu kürzen)

  • Wie konstruiert man einen minimalen DEA für eine Sprache. ( Minimal in der Anzahl der Zustände )Die Sprache L(A‘) lautet ebenso:
    • L(A‘) = (a+ba)*bb(a+b)*
    • A und A‘ sind somit äquivalent.
  • Erste Beobachtung: q7 kann vom Anfangszustand q0 nicht erreicht werden und kann somit gestrichen werden
  • Zweite Beobachtung: Für alle w ∈ {a,b}* gilt δ*(q3,w) ∈ F und δ* (q5, w) ∈ F. Wir können also die Zustände geeignet zusammenfassen, ohne dass sich an der akzeptierten Sprache etwas ändert. 
  • L(A, q3) = {a,b}*
  • L(A, q5) = {a,b}*
  • d.h. q3 ~ q5 ( Äquivalenz ist gegeben! )
  • Definition 2.6:
    • Sei A = (Q, Σ, q0, δ, F) ein DEA. Ein Zustand heißt erreichbar, falls ein Wort w ∈ Σ* mit δ* (q0, w ) = q existiert. Sonst heißt q nicht erreichbar.
  • Definition 2.7:
    • Sei A = (Q, Σ, q0, δ, F) ein DEA. Zwei Zustände heißen äquivalent (q1~q2), wenn L(A, q1) = L(A,q2), dabei ist L(A,q) = {w ∈ Σ*; δ(q,w) ∈ F} (d.h. die von A akzeptierte Sprache, wenn q der Anfangszustand wäre)
  • Definition 2.8:
    1. Es gilt ~ ist eine Äquivalenzrelation, d.h.
      1. reflexiv ( d.h. q ~ q für alle q ∈ Q )
      2. symmetrisch ( d.h. aus  q~ q2 → q2 ~ q1)
      3. transitiv ( d.h. aus q~ q2 und q~ q3 → q~ q3)
    2. ~ ( die Relation) ist verträglich  mit der Übergangsfunktion, d.h. ist q1 ~ q2 ↔ d (q1, a) ~ d(q2, a) für alle a ∈ Σ.
  • Beweis: 
    • 1A) Wegen L(A, q) = L(A, q) gilt q ~ q.
    • 1B) Ist q1 ~ q2, dann gilt L(A, q1) = L(A, q2), also q~ q1
    • 1C) Ist q1~q2 und q2~q3, dann gilt L(A,q1)  = L(A, q2) = L(A,q3). Insbesondere gilt also L(A, q1) = L(A,q3), d.h. q1~q3.
    • 2) Es gilt nämlich q~ q2 ↔ L(A,q1) = L(A,q2) ↔ ∀ w ∈ Σ* : δ*(q1,w) ∈ F ↔ δ*(q2, w) ∈ F ↔ ∀ a ∈ Σ ∀ v ∈ Σ* : [ d* (δ(q1, a),v) ∈ F  ↔ δ*(δ(q2, a), v) ∈ F] ( setze einfach w=av; v = Wort; a= Buchstabe ) ↔ ∀ a ∈ Σ : L(A,δ(q1,a))=L(A,δ(q2,a)) ↔ δ(q1,a) ~ δ(q2,a)
  • Definition 2.9 Quotientenautomat
    • Sei A = (Q, Σ, q0, δ, F) ein DEA.
    • Der Quotientenautomat A~ = ( Q~, E, q~, d~, F~) mit
      1.  Q~ = {q~, q ∈ Q } wobei q~ = { q‘ ∈ Q; q ~ q‘ }
      2. d~(q~,a) = d~~~(q,a)
      3. F~ = {q~, q ∈ F }
    • q~ = { q‘ ∈ Q; q ~ q‘ } ( Die Äquivalenzklasse von q ) ( q0~ = Äquivalenzklasse von q0 → für / mit allen Elementen aus q0 )
    • q0~ = { q0 }
    • q1~ = { q1 }
    • q2~ = { q2 }

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.

Index