Rechtsinvarianz - TU Dortmund, Informatik 2

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)
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
Herunterladen