Rechtsinvarianz Äquivalenzrelation R A zu DFA A

Werbung
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)
Ä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
Im Folgenden: 2 rechtsinvariante
Äquivalenzrelationen definieren.
q2
1
0
q3
0101 RA 101011
0101 RA 1000
1
402
Äquivalenzrelation RA zu DFA A
403
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
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.
Beispiel: L={w | w enthält gerade Anzahl von
Nullen und Einsen}
Bemerkung: Der Index von RA ist die Anzahl
nicht überflüssiger Zustände.
404
11100 RL 010111010
11100 RL 111100
405
Nerode-Relation RL
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
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.
Folgerung: RL hat unendlich viele
Äquivalenzklassen.
Bemerkung: ind(RL): minimale Größe eines
DFAs für L.
406
407
Beweis (1) ⇒ (2)
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
• 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).
Beweis (3) ⇒ (1)
Sei L Sprache, so dass RL
endlichen Index hat.
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]
410
Q = { Menge der Äquiv.klassen von RL },
q0 = [ε],
F = {[w] | w∈L},
δ([w],a) = [wa].
Zu zeigen:
L wird von
DFA akzept.
411
Minimaler DFA
Anmerkung: w∈L ⇐⇒ [w]∈F
(nach Def. von RL)
DFA akzeptiert L:
w∈L ⇔ [w]∈F ⇔ δ([ε],w)∈F ⇔ δ(q0,w)∈F.
412
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
Rechnung
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
415
Fazit Minimierung
Nichtdeterminismus und Random.
• 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).
• 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.
• Zweiter Ansatz um zu zeigen, dass eine
Sprache nicht von DFAs erkannt werden
kann: Zeige, dass die Nerode-Relation
unendlich viele Äquivalenzklassen hat.
416
• Nichtdeterministischer endl. Automat (NFA).
In jedem Rechenschritt wird ohne weitere
Auswahlvorschrift zwischen mehreren
Nachfolgezuständen gewählt.
417
NFAs
Alternative Sichtweise
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.
δ: Q×Σ → P (Q)
Potenzmenge von Q (Menge
aller Teilmengen von Q)
und
δ(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}
418
419
Akzeptierte Sprache
Beispiel
• Die von einem NFA akzeptierte Sprache L
ist die Menge aller Wörter w, so dass δ(q0,w)
einen Zustand aus F enthält.
Lk={w∈{0,1}* | In w ist der k-te Buchstabe von
hinten eine 1}
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
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
Beispiel: String Matching
Idee: Zeige, dass die Nerode-Relation
mindestens 2k Äquivalenzklassen hat.
Frage: Enthält die Eingabe aus Σ* den String
s=s1...sk?
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).
q0
s1
Σ
422
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
q1
s2
q2
s3
q3
s4
...
sk
qk
Σ
423
Herunterladen