Rechtsinvarianz Definition T4.2.8: Eine Äquivalenzrelation R auf Σ* heißt rechtsinvariant, wenn x R y ⇒ ∀z∈Σ*: xz R yz. Index von R: Anzahl der Äquivalenzklassen von R. Notation: ind(R) Im Folgenden: 2 rechtsinvariante Äquivalenzrelationen definieren. 402 Äquivalenzrelation RA zu DFA A Definition T4.2.9: Sei A ein DFA. x RA y ⇔ δ(q0,x)=δ(q0,y). Beispiel: 1 q1 q0 1 0 0 0 q2 1 0 q3 0101 RA 101011 0101 RA 1000 1 403 Äquivalenzrelation RA zu DFA A Definition T4.2.9: Sei A ein DFA. x RA y ⇔ δ(q0,x)=δ(q0,y). Bemerkung: RA ist rechtsinvariant, denn: x RA y ⇒ δ(q0,x)=δ(q0,y) ⇒∀z∈Σ*: δ(q0,xz)=δ(q0,yz) ⇒ ∀z∈Σ*: xz RA yz. Bemerkung: Der Index von RA ist die Anzahl nicht überflüssiger Zustände. 404 Relation RL zur Sprache L Definition T4.2.10: Sei L⊆Σ* eine Sprache. Dann ist x RL y ⇔ ∀z∈Σ*: (xz∈L ⇔ yz∈L). Name: Nerode-Relation Beispiel: L={w | w enthält gerade Anzahl von Nullen und Einsen} 11100 RL 010111010 11100 RL 111100 405 2. Beispiel L={0n1n | n≥1} 0 RL 00, da 01∈L, aber 001∉L. 00 RL 000, 000 RL 0000, allgemeiner: 0i RL 0i+1 Folgerung: RL hat unendlich viele Äquivalenzklassen. 406 Nerode-Relation RL Definition T4.2.10: Sei L⊆Σ* eine Sprache. Dann ist x RL y ⇔ ∀z∈Σ*: (xz∈L ⇔ yz∈L). Bemerkung: RL ist rechtsinvariant, denn: x RL y ⇒ ∀z∈Σ*: (xz∈L ⇔ yz∈L). ⇒∀w∈Σ* ∀z∈Σ*: (xwz∈L ⇔ ywz∈L). ⇒ ∀w∈Σ*: xw RL yw. Bemerkung: ind(RL): minimale Größe eines DFAs für L. 407 Satz von Nerode Satz T4.2.11: Die folgenden Aussagen sind äquivalent: (1) Die Sprache L wird von einem DFA akzeptiert. (2) L ist die Vereinigung von Äquiv.klassen einer rechtsinvarianten Äquivalenzrelation mit endlichem Index. (3) Die Nerode-Relation RL hat endlichen Index. Beweis: (1) ⇒ (2) ⇒ (3) ⇒ (1) 408 Beweis (1) ⇒ (2) • Sei A DFA für L. • Dann ist RA rechtsinvariante Äquiv.rel. mit endlichem Index. Zu zeigen: L ist Vereinigung von Äquiv.klassen einer r.i. Äquiv.rel. mit endl. Index. • L ist die Vereinigung der Äquiv.klassen, die zu akzept. Zuständen gehören. x RA y ⇔ δ(q0,x)=δ(q0,y). 409 Beweis (2) ⇒ (3) Zu zeigen: Nerode-Rel. RL hat endl. Index. Sei R rechtsinvariante Äquiv.relation mit endlichem Index, so dass L Vereinigung einiger Äquiv.klassen von R. Zeige: RL ist Vergröberung von R x R y ⇒ ∀z∈Σ*: xz R yz ⇒ ∀z∈Σ*: (xz∈L ⇔ yz∈L) ⇒ x RL y ⇒ RL hat endlichen Index. x RL y ⇔ ∀z∈Σ*: (xz∈L ⇔ yz∈L). 410 Beweis (3) ⇒ (1) Sei L Sprache, so dass RL endlichen Index hat. Zu zeigen: L wird von DFA akzept. Konstruiere DFA: Q = { Menge der Äquiv.klassen von RL }, q0 = [ε], F = {[w] | w∈L}, δ([w],a) = [wa]. Wohldefiniertheit von δ: [w]=[w´] ⇒ w RL w´ ⇒ wa RL w´a ⇒ [wa]=[w´a] 411 Q = { Menge der Äquiv.klassen von RL }, q0 = [ε], F = {[w] | w∈L}, δ([w],a) = [wa]. Anmerkung: w∈L ⇐⇒ [w]∈F (nach Def. von RL) DFA akzeptiert L: w∈L ⇔ [w]∈F ⇔ δ([ε],w)∈F ⇔ δ(q0,w)∈F. 412 Minimaler DFA Folgerung T4.2.12: Der im Schritt (3) ⇒ (1) konstruierte DFA für L ist minimal. Beweis: Sei A´ DFA für L mit Zustandsmenge Q´. • Wg. (1)⇒(2): Konstruktion der Äquiv.rel. RA´ mit ind(RA´)|Q´|. • Wg. (2)⇒(3): ind(RL) ind(RA´): • Wg. (3)⇒(1): |Q|=ind(RL) Also |Q| |Q´|. 413 Korrektheit des gesamten Ansatzes Satz T4.2.13: Sei A ein DFA ohne überflüssige Zustände. Der Äquivalenzklassenautomat A´ ist ein zu A äquivalenter DFA minimaler Größe. Beweis: Zeige: A´ hat höchstens ind(RL) Zustände. Zeige dazu: x RL y ⇒ x und y führen in A´ zum gleichen Zustand (d.h., δ(q0,x)≡δ(q0,y)). 414 Rechnung 415 Fazit Minimierung • Berechnung minimaler DFAs von Hand ist mühselig, der Algorithmus hat Rechenzeit O(|Q|2|Σ|). - polynomiell in der Anzahl der Zustände, - exponentiell in der Anzahl der Flip-Flops (Beachte: Z.B. 30 Flip-Flops230 Zustände). • Zweiter Ansatz um zu zeigen, dass eine Sprache nicht von DFAs erkannt werden kann: Zeige, dass die Nerode-Relation unendlich viele Äquivalenzklassen hat. 416 Nichtdeterminismus und Random. • Randomisierter endlicher Automat (in Lit. probabilistic finite automaton – PFA) In jedem Rechenschritt zufällig zwischen mehreren Nachfolgezuständen wählen. → In dieser Vorlesung nicht behandelt. • Nichtdeterministischer endl. Automat (NFA). In jedem Rechenschritt wird ohne weitere Auswahlvorschrift zwischen mehreren Nachfolgezuständen gewählt. 417 NFAs Q: Zustandsmenge Σ: Eingabealphabet q0: Startzustand F : Menge der akzeptierenden Zustände δ ⊆ Q×Σ×Q: Übergangsrelation (q,a,q´)∈δ, wenn es erlaubt ist, vom Zustand q beim Lesen von a nach q´ überzugehen. 418 Alternative Sichtweise δ: Q×Σ → P (Q) und Potenzmenge von Q (Menge aller Teilmengen von Q) δ(q,a) = {Menge aller q´ mit (q,a,q´)∈δ} Wie vorher Erweiterung auf Wörter: δ(q,w)={Menge aller q´, die beim Lesen von w erreicht werden können, wenn im Zustand q gestartet wird} 419 Akzeptierte Sprache • Die von einem NFA akzeptierte Sprache L ist die Menge aller Wörter w, so dass δ(q0,w) einen Zustand aus F enthält. Oder: • L ist die Menge aller Wörter w, für die es einen Rechenweg von q0 zu einem Zustand aus F gibt. (Hier Sichtweise: „Raten“ des richtigen Rechenweges) 420 Beispiel Lk={w∈{0,1}* | In w ist der k-te Buchstabe von hinten eine 1} q0 1 q1 0,1 q2 0,1 q3 0,1 ... 0,1 qk 0,1 Satz T4.4.3: Lk hat NFA mit k+1 Zuständen. Jeder DFA für Lk hat mindestens 2k Zustände. 421 Untere Schranke für die DFA-Größe Idee: Zeige, dass die Nerode-Relation mindestens 2k Äquivalenzklassen hat. Behauptung: Alle Wörter aus {0,1}k sind nicht äquivalent bez. der Nerode-Relation RLk. Seien x,y∈ {0,1}k mit x≠y. Dann gibt es i mit xi≠yi, z.B. xi=1,yi=0. Wähle z=0i-1. Dann ist xz∈Lk, aber yz∉Lk. Also xRLky. x RL y ⇔ ∀z∈Σ*: (xz∈L ⇔ yz∈L). 422 Beispiel: String Matching Frage: Enthält die Eingabe aus Σ* den String s=s1...sk? q0 s1 Σ q1 s2 q2 s3 q3 s4 ... sk qk Σ 423 Bsp: eingeschränktes SSS (KP**) Fest vorgegeben: Zahl A. Eingabe: Zahlen a1,...,an ∈ {1,...,A}. Frage: Gibt es eine Teilmenge der Zahlen mit Summe A? NFA: Q={0,...,A}, q0=0, F={A}, δ(q,a)={q,q+a}∩Q. NFA „rät“ bei jeder Zahl der Eingabe, ob sie zur Lösung gehört. 424