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 }
Maximilian
Maximilian

Herzlich willkommen! Ich bin Max, ein Informatiker mit über 15 Jahren Berufserfahrung. Hier teile ich meine Leidenschaften, Erlebnisse und Perspektiven. Ich lade dich ein, gemeinsam mit mir auf eine Entdeckungsreise zu gehen.

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.