Theoretische Informatik Endliche Automaten und formale Sprachen

Werbung
Theoretische Informatik
Endliche Automaten und formale Sprachen
Rainer Schrader
Institut für Informatik
30. Juni 2009
2 / 53
1 / 53
endliche Automaten
endliche Automaten
Was bisher geschah:
• wir haben uns gefragt, ob wir mit Rechnern jedes Problem lösen können
• dazu haben wir Maschinenmodelle entworfen
• den Berechenbarkeitsbegriff entwickelt
Gliederung
• endliche Automaten
• die Minimierung endlicher Automaten
• und Spracherkennungsprobleme untersucht
• für die lösbaren Problemen wollten wir abschätzen, welchen Aufwand
• reguläre Sprachen
• das Pumping-Lemma
wir treiben müssen
• dazu haben wir
• nichtdeterministische endliche Automaten
• die Klassen P, NP und NP-vollständig untersucht
• probabilistische Ansätze analysiert
• den Speicherplatzbedarf analysiert
• die Kraft interaktiver Nachweise untersucht
3 / 53
4 / 53
endliche Automaten
endliche Automaten
• wir haben die Probleme dabei als Spracherkennungsprobleme
formuliert
• Sprachen erlauben die Kommunikation mit einem Rechner
• es ging aber fast immer darum, ob gewisse Eigenschaften bei
• dabei werden üblicherweise höhere Programmiersprachen in
konkreten Objekten vorlagen:
Maschinensprache übertragen
• ist ein Graph zusammenhängend?
• hat ein Graph eine stabile Menge der Größe k ?
• die Übersetzung gliedert sich typischerweise in mehrere Schritte
• ist eine Boolesche Formel erfüllbar?
• der lexikalischen Analyse
• ist eine Zahl prim?
..
•
.
• der Syntaxanalyse
• der semantischen Analyse
• dem Erzeugen von Zwischencode
• der Codeoptimierung
• die Sprachen waren lediglich einfach strukturierte binäre Kodierungen
• der Codegenerierung
der Objekte
• wir wollen uns im letzten Teil der Vorlesung mit komplexeren Sprachen
in der Informatik befassen
6 / 53
5 / 53
endliche Automaten
endliche Automaten
• die Übersetzung von Programmiersprachen in Maschinensprache
werden von Compilern durchgeführt
• einzelne Schritte der Interpretation von Texten finden sich aber auch in
anderen Zusammenhängen:
7 / 53
8 / 53
endliche Automaten
endliche Automaten
• die Übersetzung von Programmiersprachen in Maschinensprache
werden von Compilern durchgeführt
• einzeln Schritte der Interpretation von Texten finden sich aber auch in
anderen Zusammenhängen:
• Texteditoren, die strukturieren und prüfen
• Graphikeditoren
• Programm-Interpretierer
• Kommandozeilen-Interpretierer
• Datenbankabfragen
..
•
.
9 / 53
10 / 53
endliche Automaten
endliche Automaten
• diese Turing-Maschinen sind uns als integrierte PLA’s begegnet
• ein Compiler hat u.a. folgende Aufgaben:
• ein Quellprogramm ist ein Wort aus einem Alphabet
x
• eine lexikalische Analyse zerlegt das Wort in eine Folgen von
Symbolen (Namen, Zahlen, Schlüsselwörter, usw.)
integriertes
y
PLA
• eine Syntaxanalyse untersucht den strukturellen Aufbau dieser
Symbolfolge
s'
s
Delay
• etwas abstrakter:
• gegeben die Regeln einer Programmiersprache, welche Sprache kann
• die Bearbeitung verläuft in n Schritten
• sie wird gesteuert durch die Steuersignale s
damit erzeugt werden?
• gegeben ein Wort, liegt es in dieser Sprache?
• in jedem Schritt
• wird ein Input x gelesen
• wir werden sehen, dass diese Fragestellungen eng mit speziellen
• wird ein Output y erzeugt
Turing-Maschinen verwandt sind
• wird die Steuerung s modifiziert
11 / 53
12 / 53
endliche Automaten
endliche Automaten
etwas abstrakter:
seien
deterministische endliche Automaten (DFA)
• k die Breite des Inputs x
• m die Breite des Outputs y
• das Inputalphabet Σ = {0, 1}k
x
integriertes
• ein DFA ist eine Turingmaschine ohne Bänder
y
PLA
• der Input x ∈ Σn wird einmal von links nach rechts gelesen
s'
s
• das Outputphabet Σ = {0, 1}m
• er wird akzeptiert, wenn die Maschine danach in einem akzeptierenden
Delay
Zustand ist
• wir können s als den Zustand der Maschine auffassen
• und ansonsten verworfen.
• der Input wird einmal von links nach rechts durchlaufen
• in jedem Schritt ein Buchstabe des Inputs gelesen
• die Menge der akzeptierenden Zustände bezeichnen wir mit F
• und ein Buchstabe des Outputs erzeugt
• die von einem DFA akzeptierten Sprachen heißen regulär
• dies führt zu dem folgenden Automaten
13 / 53
14 / 53
endliche Automaten
endliche Automaten
Beispiel:
• L bestehe aus allen Wörtern mit einer geraden Anzahl von Nullen und
• die Übergangsfunktion vereinfacht sich zu δ : Q × Σ → Q:
Einsen
• der folgende Automat akzeptiert genau diese Sprache:
• im Zustand q
• und nach Lesen des Zeichens a
• nimmt der Automat den Zustand δ(q, a) an
• wir merken uns die Parität der bisher gelesenen Nullen und Einsen
• dazu verwenden wir vier Zustände:
• wir setzen die Übergangsfunktion auf Q × Σ fort:
• den Anfangszustand q0 = g/g
• sei x = (x1 , . . . , xn ) ∈ Σ
• setze
• den akzeptierenden Zustand
∗
∗
δ(q, x ) = δ(q, x1 , . . . , xn ) =
(in diesem Fall ebenfalls q0 )
• die Zustände q1 = g/u, q2 = u/g, q3 = u/u.
δ(δ(q, x1 , . . . , xn−1 ), xn ),
q,
• daraus ergibt sich die Übergangsfunktion
für x =
6 ε
für x = ε.
δ
0
1
15 / 53
q0
q2
q1
q1
q3
q0
q2
q0
q3
q3
q1
q2
16 / 53
endliche Automaten
endliche Automaten
Das folgende Beispiel wird uns später bei der Syntaxanalyse wiederbegegnen
Beispiel:
• Sei L die Sprache aller Wörter mit gleich vielen Nullen wie Einsen
Beobachtung
• angenommen M ist ein DFA, der diese Sprache entscheidet
• seien x , y ∈ Σ zwei Wörter
• betrachte die Wörter 0i für i = 1, . . .
• für einen Automaten gelte δ(q, x ) = δ(q, y )
• da M nur endlich viele Zustände hat, muss es zwei verschiedene
∗
Wörter 0i und 0j geben mit δ(q0 , 0i ) = δ(q0 , 0j )
• dann gilt für alle Wörter z ∈ Σ∗ : δ(q, xz ) = δ(q, yz )
• nach der letzten Beobachtung müsste M dann auch für 0i 1i bzw.
0j 1i der gleiche Zustand erreicht werden
• damit würde M entweder das erste Wort nicht akzeptieren oder das
zweite Wort auch akzeptieren
• d.h. L ist nicht regulär.
18 / 53
17 / 53
endliche Automaten
endliche Automaten
• endliche Automaten können als gerichteter Graph G(M ) dargestellt
werden, wobei akzeptierende Zustände gekennzeichnet werden
q
Automaten M
0
1
0
q
0
3
1
1
1
• umgekehrt entspricht jeder solche Graph G(M ) einem endlichen
q1
0
δ
0
1
q0
q2
q1
q1
q3
q0
q2
q0
q3
• ein Wort w wird von M akzeptiert ⇐⇒:
q3
q1
q2
• w entspricht einer Kantenfolge, die in q0 startet
• und in einem Knoten aus F endet
0
q
2
• die Übergangsrelation δ(p, w ) = q entspricht damit dem Knoten
q = w (p), den wir erreichen, wenn wir in p startend die Kantenfolge
w durchlaufen
• jeder Knoten in G(M ) hat |Σ| ausgehende Kanten, die mit den
Elementen aus Σ markiert sind
• allgemeiner: gegeben eine Kantenfolge w (w für Wort oder Weg)
• G(M ) kann Schleifen und doppelte Kanten enthalten (aber dann mit
unterschiedlichen Markierungen)
• dann können wir jeder Knotenmenge Q 0 ⊆ Q
• es gibt einen ausgezeichneten Knoten q0 und ausgezeichnete Knoten
• die Menge ihrer Endknoten w (Q 0 ) mit |w (Q 0 )| ≤ |Q 0 | zuordnen
in F
19 / 53
20 / 53
endliche Automaten
endliche Automaten
• wir wollen im folgenden versuchen,
• die Sprachen zu charakterisieren, die von endlichen Automaten
akzeptiert werden
Gliederung
• endliche Automaten
• die Minimierung endlicher Automaten
• möglichst effiziente Automaten zu bestimmen
• reguläre Sprachen
• das Pumping-Lemma
• im allgemeinen versuchen wir, Algorithmen oder Schaltwerke zu
• nichtdeterministische endliche Automaten
• bei Automaten ist der Zeitbedarf durch die Inputlänge determiniert,
konstruieren, die möglichst wenig Zeit oder Platz benötigen
• wir versuchen daher, möglichst geringen Platzverbrauch zu erzielen,
• d.h. einen Automaten zu konstruieren, der eine gegebene Sprache mit
möglichst wenigen Zustände entscheidet
21 / 53
22 / 53
endliche Automaten
endliche Automaten
(ii) eine zweite Möglichkeit zur Reduktion der Anzahl der Zustände:
(i) G(M ) kann Zustände enthalten, die vom Startzustand aus nicht
erreichbar sind
• seien p und q zwei Knoten eines DFA G(M )
• unerreichbare Zustände sind im gerichteten Graphen durch
• p und q heißen äquivalent (p ≡ q), wenn für alle Wörter
Suchverfahren einfach zu ermitteln:
w ∈ Σ∗ gilt:
• in G(M ) hat jeder der |Q| Knoten |Σ| ausgehende Kanten
w (p) ∈ F ⇐⇒ w (q) ∈ F
• anschaulich: von p aus w folgend wird ein akzeptierender Zustand
• Suchverfahren laufen linear in der Anzahl der Kanten
genau dann erreicht, wenn dies auch für q gilt
• wir können in O(|Q||Σ|) Schritten unerreichbare Knoten entfernen
• offensichtlich ist ≡ eine Äquivalenzrelation
• sei [p] die Äquivalenzklasse von p
• wir nehmen daher an, dass aus den Automaten bereits alle
unerreichbaren Zustände entfernt worden sind.
• es gilt folgende Beziehung:
23 / 53
24 / 53
endliche Automaten
endliche Automaten
Lemma
Ist p ≡ q , so auch w (p) ≡ w (q) für alle w ∈ Σ∗ .
• wir können uns somit auf jeweils einen Repräsentanten einer
Beweis:
Äquivalenzklasse beschränken
• sei p 0 = w (p) und q 0 = w (q)
• wir bilden dazu einen neuen Graphen G(M 0 ) wie folgt:
• wir müssen zeigen, dass für alle w ∈ Σ gilt:
0
∗
• identifiziere äquivalente Knoten von G(M )
w 0 (p 0 ) ∈ F ⇐⇒ w 0 (q 0 ) ∈ F
• von den Kanten mit gleicher Markierung lösche alle bis auf eine
Lemma
• dies ist äquivalent zu: für alle w 0 ∈ Σ∗ gilt
(i) G(M 0 ) ist Graph eines endlichen Automaten M 0 ,
ww 0 (p) = w 0 (w (p)) ∈ F ⇐⇒ w 0 (w (q)) = ww 0 (q) ∈ F
(ii) M 0 akzeptiert die gleiche Sprache wie M .
• dies folgt aber aus der Äquivalenz von p und q.
25 / 53
26 / 53
endliche Automaten
endliche Automaten
Beweis:
• M 0 ist der Äquivalenzklassenautomat von M
(i) seien p und q zwei äquivalente Knoten
• wenn wir die Äquivalenzklassen kennen, können wir schnell (in
• der identifizierte Knoten hat zu jedem a ∈ Σ zwei ausgehende Kanten
O(|Q||Σ|) Schritten) den Äquivalenzklassenautomaten konstruieren
• nach dem letzten Lemma sind die Endknoten dieser Kanten ebenfalls
• um die Äquivalenzklassen zu berechnen, testen wir für jedes Paar
äquivalent
p, q ∈ Q, ob p 6≡ q:
• nach Entfernen doppelter Kanten mit gleicher Markierung hat jeder
• sei w ∈ Σ∗ und p, q ∈ Q
Knoten wieder Außengrad |Σ|
• mit w = ε folgt aus der Definition der Äquivalenz, dass ein Knoten in
• w ist Zeuge für p 6≡ q, wenn w (p) ∈ F und w (q) ∈
/F
F nur zu anderen Knoten in F äquivalent sein kann
• damit besteht F aus den Äquivalenzklassen von F und
0
q00
• allgemein heißt w ∈ Σ∗ Zeuge, wenn es die Nichtäquivalenz von zwei
= [q0 ]
Zuständen bezeugt
• somit ist G(M ) der Graph eines Automaten M .
0
0
• wie lang können Zeugen sein ?
• w heißt kürzester Zeuge, wenn kein kürzeres Wort Zeuge für
(ii) Per Konstruktion endet ein Weg w (q00 ) in M 0 genau dann in einem
Knoten von F 0 , wenn w (q0 ) in M in F endet.
p 6≡ q ist
27 / 53
28 / 53
endliche Automaten
endliche Automaten
Lemma
(i) Suffixe von Zeugen sind Zeugen,
(ii) Suffixe von kürzesten Zeugen sind kürzeste Zeugen.
• d.h. wenn es keinen kürzesten Zeugen einer Länge k gibt,
Beweis:
• dann existiert auch kein kürzester Zeuge der Länge größer als k
• sei w ein Zeuge für p 6≡ q
• sei o.B.d.A. w (p) ∈ F und w (q) ∈
/F
0
• sei w = aw
• umgekehrt: kürzeste Zeugen „wachsen“
• auf dieser Beobachtung beruht der folgende Algorithmus,
• da w (p) = w (a((p)) und w (q) = w (a(q)),
• folgt auch a(p) 6≡ a(q)
• d.h. w 0 ist Zeuge für a(p) 6≡ a(q)
(i)
0
0
• er testet alle Paare p, q ∈ Q auf Nichtäquivalenz:
• angenommen es gibt einen Zeugen w 00 für a(p) 6≡ a(q) mit
|w 00 | < |w 0 |,
• dann wäre aw 00 ein kürzerer Zeuge für p 6≡ q
(ii)
29 / 53
30 / 53
endliche Automaten
endliche Automaten
setze i = 0
markiere alle Paare (p, q) mit p ∈ F und q ∈
/ F bzw. p ∈
/ F und
q ∈ F mit Label i
while Paare mit label i existieren
für alle Paare (p, q) mit Label i do
für alle a ∈ Σ do
sei (p 0 , q 0 ) mit a(p 0 ) = p, a(q 0 ) = q
ist (p 0 , q 0 ) unmarkiert, so markiere (p, q) mit i + 1
end do
end do
i =i +1
w
w
end while
p
Der obige Algorithmus markiert genau die nicht äquivalenten Paare in
O(|Q|2 |Σ|) Schritten.
Beweis:
• im ersten Schritt werden alle Paare markiert, für deren Nichtäquivalenz
ein kürzester Zeuge der Länge 0 existiert
• per Induktion seien alle Paare mit k − 1 markiert, für deren
Nichtäquivalenz ein kürzester Zeuge der Länge k − 1 existiert
• sei (p 0 , q 0 ) ein Paar, für das ein kürzester Zeuge der Länge k existiert
• dann gibt es dem vorigen Lemma ein a, so dass a(p 0 ) und a(q 0 ) nicht
äquivalent sind und einen kürzesten Zeugen der Länge k − 1 haben
q
a
p'
Lemma
• damit wird (p 0 , q 0 ) mit k markiert.
a
q'
31 / 53
32 / 53
endliche Automaten
endliche Automaten
• wird umgekehrt (p 0 , q 0 ) markiert,
• so existiert ein a, so dass a(p) und a(q) markiert sind
Gliederung
• per Induktion sind a(p) und a(q) nicht äquivalent
• endliche Automaten
• die Minimierung endlicher Automaten
• und haben einen kürzesten Zeugen der Länge höchstens k − 1
• dann haben auch p 0 und q 0 einen Zeugen der Länge höchstens k .
• reguläre Sprachen
• das Pumping-Lemma
• die Laufzeit beträgt O(|Q|2 ) im ersten Schritt.
• nichtdeterministische endliche Automaten
• in der while-Schleife wird zu jedem Paar jede Kante a ∈ Σ höchstens
einmal angefasst,
• daraus ergibt sich eine Laufzeit von O(|Σ||Q|2 )
33 / 53
34 / 53
endliche Automaten
endliche Automaten
• mit den Verfahren des letzten Abschnitts können wir die Anzahl der
• wir haben bisher eine Äquivalenzrelation auf den Knoten von
Zustände eines Automaten reduzieren
G(M ) definiert
• wir wollen jetzt zeigen, dass wir damit auch die minimale Anzahl
• wir definieren jetzt eine Äquivalenzrelation auf Σ∗
erreicht haben
• wir werden zeigen:
• dieses Ergebnis folgt als Korollar aus einer Charakterisierung der
regulären Sprachen,
x , y ∈ Σ∗ sind äquivalent ⇐⇒ δ(q0 , x ) ≡ δ(q0 , y )
• d.h. derjenigen, die von endlichen Automaten erkannt werden.
35 / 53
36 / 53
endliche Automaten
endliche Automaten
Lemma
• seien L ⊆ Σ∗ eine Sprache und x , y ∈ Σ∗
Sei L eine Sprache und RL die induzierte Relation. Dann gilt:
• wir definieren eine Relation RL auf Σ∗ × Σ∗ wie folgt:
• (x , y ) ∈ RL ⇐⇒
(i) (x , y ) ∈ RL =⇒ (xa, ya) ∈ RL für alle a ∈ Σ,
(ii) für jedes x ∈ Σ∗ gilt [x ] ∈ L oder [x ] ∩ L = ∅.
für alle z ∈ Σ∗ gilt
xz ∈ L ⇐⇒ yz ∈ L
Beweis:
• RL ist eine Äquivalenzrelation
(i) seien x , y ∈ Σ∗ mit (x , y ) ∈ RL
• ist (x , y ) ∈ RL , so folgt für z = ε :
(x , y ) ∈ RL =⇒
x ∈ L ⇐⇒ y ∈ L
=⇒
• sei [x ] wiederum die Äquivalenzklasse von x
(xaw ∈ L ⇐⇒ yaw ∈ L) für alle a ∈ Σ, w ∈ Σ∗
(xa, ya) ∈ RL für alle a ∈ Σ.
(ii) wie bereits gesehen: für (x , y ) ∈ RL gilt entweder x , y ∈ L oder
x, y ∈
/ L.
37 / 53
38 / 53
endliche Automaten
endliche Automaten
Lemma
Sei L regulär und q0 der Startzustand eines Automaten M , der
L akzeptiert. Dann gilt:
• sei R eine Äquivalenzrelation
• der Index ind(R) ist die Anzahl der Äquivalenzklassen von R
(i) (x , y ) ∈ RL ⇐⇒ x (q0 ) ≡ y (q0 ),
• für reguläre Sprachen gilt:
(ii) ind(RL ) ≤ |Q|.
Beweis:
Lemma
(ii) folgt unmittelbar aus (i)
Sei L regulär und q0 der Startzustand eines Automaten M , der L
akzeptiert. Dann gilt:
(i) für x , y ∈ Σ∗ gilt:
(i) (x , y ) ∈ RL ⇐⇒ x (q0 ) ≡ y (q0 ),
(x , y ) ∈ RL ⇐⇒ (xz ∈ L ⇐⇒ yz ∈ L) für alle z ∈ Σ∗
(ii) ind(RL ) ≤ |Q|.
⇐⇒ (xz (q0 ) ∈ F ⇐⇒ yz (q0 ) ∈ F ) für alle z ∈ Σ∗
⇐⇒ x (q0 ) ≡ y (q0 ).
39 / 53
40 / 53
endliche Automaten
endliche Automaten
Mit der Relation RL können wir reguläre Sprachen charakterisieren:
• sei F = {[x ] : [x ] ⊆ L}
• nach früherem Lemma gilt [x ] ⊆ L oder [x ] ∩ L = ∅
Satz
• damit ist F wohldefiniert
L ist regulär ⇐⇒ ind(RL ) < ∞.
• weiter sei die Übergangsrelation δ gegeben durch
Beweis:
δ([x ], a) = [xa]
• sei M ein DFA mit Zustandsmenge Q, der die Sprache L akzeptiert
• aus dem vorigen Lemma folgt ind(RL ) ≤ |Q| < ∞
• dadurch ist auch δ wohldefiniert, denn:
• umgekehrt konstruieren wir einen DFA M , der L akzeptiert
• sei x , y ∈ Σ∗ mit (x , y ) ∈ RL
• Q besteht aus den endlich vielen Äquivalenzklassen von RL
• aus früherem Lemma folgt (xa, ya) ∈ RL und somit [xa] = [ya]
• dabei sei q0 = [ε] die Äquivalenzklasse, die das leere Wort enthält
• schließlich gilt δ(q0 , x ) = δ([ε], x ) = [εx ] = [x ],
• sei F = {[x ] : [x ] ⊆ L}
• d.h. M akzeptiert x genau dann, wenn [x ] ∈ F und damit x ∈ L.
42 / 53
41 / 53
endliche Automaten
endliche Automaten
Korollar
Korollar
Der so konstruierte endliche Automat M hat eine minimale Anzahl von
Zuständen.
Nach Entfernung aller unerreichbaren Zustände aus einem Automaten M ist
der Äquivalenzklassenautomat M 0 ein minimaler zu M äquivalenter
Automat.
Beweis:
• sei Q die Zustandsmenge von M
Beweis:
• sei M 0 ein endlicher Automat mit Zustandsmenge Q 0 für L
• der Äquivalenzklassenautomaten hat ind(RL ) Zustände (früheres
Lemma)
• nach früherem Lemma gilt:
• nach dem letzten Korollar ist dies auch die minimal mögliche Anzahl
• ind(RL ) ≤ |Q 0 |
von Zuständen.
• per Konstruktion ist |Q| = ind(RL )
43 / 53
44 / 53
endliche Automaten
endliche Automaten
• der letzte Satz liefert eine Charakterisierung regulärer Sprachen
• sie beruht auf einer Abschätzung der Zahl der Äquivalenzklassen von
RL
Gliederung
• dies ist im Allgemeinen nicht einfach
• endliche Automaten
• die Minimierung endlicher Automaten
• wir geben daher im folgenden eine hinreichende Bedingung für die
Regularität an
• reguläre Sprachen
• das Pumping-Lemma
Lemma (Pumping-Lemma)
• nichtdeterministische endliche Automaten
Zu jeder regulären Sprache L gibt es eine Konstante n, so dass für jedes
Wort x ∈ L mit |x | ≥ n gilt:
• x lässt sich schreiben als x = uvw mit |uv | ≤ n und |v | ≥ 1
• weiter ist uv i w ∈ L für alle i ≥ 0.
46 / 53
45 / 53
endliche Automaten
endliche Automaten
Beweis:
• sei n die Anzahl der Zustände eines DFA M , der L akzeptiert
• beim Lesen eines n-elementigen Inputs x durchläuft M die Zustände
• zur Illustration betrachten wir die Sprache L aller Palindrome
q0 , qi1 , . . . , qin ,
• ein Wort x = x1 x2 . . . xn heißt Palindrom, wenn x = xn xn−1 . . . x1
• d.h. mehr als n Zustände
• wir zeigen, dass L nicht regulär ist:
• damit muss ein Zustand q doppelt aufgetreten und in G(M ) ein Kreis
durchlaufen worden sein
• angenommen L wäre regulär
• seien u das Präfix von x , so dass q = u(q0 ) zum ersten Mal erreicht
• nach dem Pumping-Lemma gibt es dann ein n, so dass sich alle langen
wird, und v die Kanten im Kreis.
Wörter aus L in drei Teile zerlegen lassen
• dann ist |uv | ≤ n und |v | ≥ 1.
• schließlich sei w so, dass x = uvw
• da x ∈ L, ist offensichtlich auch uv i w ∈ L für i ≥ 0.
47 / 53
48 / 53
endliche Automaten
endliche Automaten
• sei x = (01)n (10)n und x = uvw die Zerlegung mit |uv | ≤ n und
|v | ≥ 1 und uv i w ∈ L für alle i ≥ 0
Gliederung
• sei v = v1 . . . vk . Insbesondere ist v Teilwort von (01)n .
• endliche Automaten
• die Minimierung endlicher Automaten
• ist k ungerade, so ist v1 = vk
• dann folgen in uv 2 w = uv1 . . . vk v1 . . . vk w zwei gleiche Buchstaben
• reguläre Sprachen
• das Pumping-Lemma
• d.h. uv 2 w ∈
/L
• nichtdeterministische endliche Automaten
vk v1 aufeinander, nicht jedoch im unveränderten Teil w
• ist k = 2` gerade, so ist v = (01)` oder v = (10)`
• in beiden Fällen ist uv 2 w = (01)n+` (10)n ∈
/ L.
49 / 53
50 / 53
endliche Automaten
endliche Automaten
• bei Turingmaschinen hat sich Nichtdeterminismus als erfolgreich
• ein NFA akzeptiert einen Input w ∈ Σ∗ , falls einer der erreichbaren
erwiesen
Zustände akzeptiert (d.h. δ(q0 , w ) ∩ F 6= ∅)
• daher stellt sich die Frage, ob durch Nichtdeterminismus mehr als
• da wir nicht an Laufzeiten interessiert sind, ist es nicht überraschend,
reguläre Sprachen erkannt werden können
dass wir einen NFA durch eine DFA simulieren können:
• analog zu den Turingmaschinen ersetzen wir die Übergangsfunktion
δ : Q × Σ → Q durch eine Relation δ ⊆ Q × Σ × Q.
Satz
• wir fassen die Relation auch als Abbildung δ : Q × Σ → 2Q auf
Zu jedem NFA M mit n Zuständen gibt es einen äquivalenten DFA M 0 mit
2n Zuständen.
• dabei ist δ(q, a) die Menge der Zustände, die mit (q, a) in Relation
stehen
Beweis:
• wie vorher setzen wir δ auf Q × Σ∗ fort, indem wir induktiv für
w = w 0 a setzen:
δ(q, w ) =
[
• setze Σ0 = Σ
• die Zustandsmenge Q 0 entspricht der Potenzmenge von Q
δ(q 0 , a)
q 0 ∈δ(q,w 0 )
• M 0 soll sich nach Lesen des Inputs x in dem Zustand q 0 ∈ Q 0
• dies definiert einen nichtdeterministischen endlichen Automaten
befinden, der den in M bei Input x erreichbaren Zuständen entspricht.
(NFA)
51 / 53
52 / 53
endliche Automaten
• wir setzen q00 = {q0 } und F 0 = {q 0 ∈ Q 0 : q 0 ∩ F 6= ∅} und
δ 0 (q 0 , a) =
[
δ(q, a).
q∈q 0
• wir zeigen per Induktion über |x |, dass δ 0 (q00 , x ) = δ(q0 , x ) für alle
x ∈ Σ∗ ist:
• für |x | = 0 ist x = ε und δ 0 (q00 , ε) = q00 = {q0 } = δ(q0 , ε)
• für x = x 0 a gilt dann per Induktion
δ 0 (q00 , x ) = δ 0 (δ 0 (q00 , x 0 ), a)
= δ 0 (δ(q0 , x 0 ), a)
[
=
δ(q, a)
q∈δ(q0 ,x 0 )
= δ(q0 , x ).
• daraus folgt, dass M 0 ebenfalls die Sprache L akzeptiert.
53 / 53
Zugehörige Unterlagen
Herunterladen