M.O. Rabin and D. Scott. Finite Automata and Their Decision Problems. IBM
Journal of Research and Development 3 (2), 1959, S. 114–125.
FoSAP / SS 2021 / GJ Woeginger Seite 2.2 Version 27. April 2021
Grundidee
a a, b
q0 q1 q2
q0 a q1 b q2 b q3
Definition 2.2
Ein nichtdeterministischer endlicher Automat (kurz: NFA) ist ein 5-Tupel
(Q, Σ, ∆, q0 , F );
dabei ist
I ∆ ⊆ Q × Σ × Q die Transitionsrelation,
und wie bei einem DFA sind
I Q eine endliche Menge, deren Elemente wir als die Zustände
bezeichnen,
I Σ ein Alphabet, das Eingabealphabet,
I q0 ∈ Q der Anfangszustand,
I F ⊆ Q die Menge der Endzustände oder akzeptierenden Zustände.
Beispiel 2.3
0, 1
q0 1 q1 1 q2
stellt den Automaten {q0 , q1 , q2 }, {0, 1}, ∆, q0 , {q2 } mit
∆ = (q0 , 0, q0 ), (q0 , 1, q0 ), (q0 , 1, q1 ), (q1 , 1, q2 )
dar.
Bemerkung 2.5
Zu einem Wort w ∈ Σ∗ kann es mehrere oder keine Läufe von A auf w
geben.
Definition 2.6
1. Ein NFA A = (Q, Σ, q0 , ∆, F ) akzeptiert ein Wort w ∈ Σ∗ , wenn es
einen akzeptierenden Lauf von A auf w gibt.
2. Die von einem NFA A = (Q, Σ, ∆, q0 , F ) erkannte Sprache ist
L(A) := {w ∈ Σ∗ | A akzeptiert w }.
0, 1
q0 1 q1 1 q2
Behauptung
Behauptung 2
Sei w = a1 . . . an ∈ {0, 1}∗ . Dann gibt es genau dann einen Lauf von A auf w ,
der im Zustand q1 endet, wenn n ≥ 1 und an = 1.
Beweis.
=⇒“: Sei
”
(r0 , a1 , r1 , a2 , . . . , an , rn )
Behauptung 3
Sei w = a1 . . . an ∈ {0, 1}∗ . Dann gibt es genau dann einen Lauf von A auf w ,
der im Zustand q2 endet, wenn n ≥ 2 und an−1 = 1 und an = 1.
Beweis.
=⇒“: Sei
”
(r0 , a1 , r1 , a2 , . . . , an , rn )
q0 a q1 b q2 b q3
Es gilt L(A) = {w ∈ {a, b}∗ | w enthält abb als Infix} (vgl. Bsp. 2.1)
Akzeptierender Lauf von A auf dem Wort ababbab:
q0 , a, q0 , b, q0 , a, q1 , b, q2 , b, q3 , a, q3 , b, q3 .
Außerdem gibt es noch folgenden Lauf auf dem Präfix ab von w , der sich
nicht auf ganz w fortsetzen lässt:
q0 , a, q1 , b, q2 .
Frage
Wie können wir feststellen, ob ein NFA ein Wort akzeptiert ?
Brute-Force Methode
Probiere alle möglichen Läufe des NFA auf dem Eingabwort durch.
Nachteil:Sehr ineffizient, denn ein NFA kann exponentiell (in der Länge
des Eingabeworts) viele Läufe haben.
(Wir werden sehen, dass es viel besser geht.)
Notation
w
→ q 0 statt
I Wenn A aus dem Kontext klar ist, schreiben wir auch q −
w
A:q− → q0.
0
w w
I Wir verwenden auch Schreibweisen wie q − → q 0 −→ q 00 statt
0
w w
→ q 0 und q 0 −→ q 00 .
q−
I Wir verwenden die gleiche Notation für DFAs.
q0 a q1 b q2 b q3
Es gilt:
ababba
q0 −−−−→ q3 ,
ababba
q0 −−−−→ q0 ,
ababba
q0 −−−−→ q1 ,
bbbb
q1 −−−→ q3 ,
w
q3 −
→ q3 für alle w ∈ {a, b}∗ .
Lemma 2.10
Sei A = (Q, Σ, ∆, q0 , F ) ein NFA und w ∈ Σ∗ .
Dann gilt
w ∈ L(A) ⇐⇒ E (A, w ) ∩ F 6= ∅.
Lemma 2.11
Sei A = (Q, Σ, ∆, q0 , F ) ein NFA.
1. E (A, ε) = {q0 }.
2. Für alle w ∈ Σ∗ und a ∈ Σ gilt
[
q 0 ∈ Q (q, a, q 0 ) ∈ ∆ .
E (A, wa) =
q∈E (A,w )
FoSAP / SS 2021 / GJ Woeginger Seite 2.15 Version 27. April 2021
Beweis der Lemmata
Lemma 2.10
Sei A = (Q, Σ, ∆, q0 , F ) ein NFA und w ∈ Σ∗ .
Dann gilt
w ∈ L(A) ⇐⇒ E (A, w ) ∩ F 6= ∅.
Beweis.
w
w ∈ L(A) ⇐⇒ ∃q ∈ F : q0 −
→q
⇐⇒ ∃q ∈ F : q ∈ E (A, w )
⇐⇒ E (A, w ) ∩ F 6= ∅.
Lemma 2.11
Sei A = (Q, Σ, ∆, q0 , F ) ein NFA.
1. E (A, ε) = {q0 }.
2. Für alle w ∈ Σ∗ und a ∈ Σ gilt
[
q 0 ∈ Q (q, a, q 0 ) ∈ ∆ .
E (A, wa) =
q∈E (A,w )
Beweis.
1. Für alle q ∈ Q gilt
ε
q ∈ E (A, ε) ⇐⇒ q0 −
→ q ⇐⇒ q = q0 .
wa
q ∈ E (A, wa) ⇐⇒ q0 −→ q
w a
⇐⇒ ∃q 0 ∈ Q : q0 −
→ q0 −
→q
w
⇐⇒ ∃q 0 ∈ Q : q0 −
→ q 0 und (q 0 , a, q) ∈ ∆
⇐⇒ ∃q 0 ∈ Q : q 0 ∈ E (A, w ) und (q 0 , a, q) ∈ ∆
[
q 00 ∈ Q (q 0 , a, q 00 ) ∈ ∆ .
⇐⇒ q ∈
q 0 ∈E (A,w )
Seite 2.15-a
Beispiel 2.7 (Forts.)
a, b a, b
A sei folgender NFA:
q0 a q1 b q2 b q3
E (A, ε) = {q0 },
E (A, a) = {q0 , q1 },
E (A, ab) = {q0 , q2 },
E (A, aba) = {q0 , q1 },
E (A, abab) = {q0 , q2 },
E (A, ababb) = {q0 , q3 },
E (A, ababba) = {q0 , q1 , q3 }.
Analyse
Korrektheit: Folgt aus Lemma 2.10.
Laufzeit: Bei guter Implementierung unter Verwendung geeigneter
Datenstrukturen O(n|∆|)
(siehe dazu Vorlesung Algorithmen & Datenstrukturen“).
”
Definition 2.12
Zwei endliche Automaten (DFA oder NFA) heißen äquivalent, wenn sie
die gleiche Sprache erkennen.
Beispiel 2.13
Folgender NFA und DFA sind äquivalent:
0, 1 0 1
1
q0 1 q1 1 q2 1
r0 r1 r2
0
0
Beide erkennen die Sprache w ∈ {0, 1}∗ 11 ist Suffix von w .
Satz 2.14
Zu jedem DFA gibt es einen äquivalenten NFA.
Behauptung
A und A0 sind äquivalent.
Beweis.
Betrachte eine Folge
ρ := (r0 , a1 , r1 , a2 , . . . , an , rn )
δ(ri−1 , ai ) = ri ⇐⇒ (ri−1 , ai , ri ) ∈ ∆.
ρ ist ein akzeptierender Lauf von A ⇐⇒ ρ ist ein akzeptierender Lauf von A0 .
Also
A akzeptiert a1 . . . an ⇐⇒ A0 akzeptiert a1 . . . an .
Seite 2.20-a
Von NFAs zu DFAs
Satz 2.15
Zu jedem NFA gibt es einen äquivalenten DFA.
Korollar 2.16
Eine Sprache ist genau dann DFA-erkennbar, wenn sie NFA-erkennbar ist.
Definition 2.17
Sei A = (Q, Σ, ∆, q0 , F ) ein NFA.
Der Potenzmengenautomat von A ist der DFA A0 = (Q 0 , Σ, δ, q00 , F 0 ) mit
I Q 0 := 2Q ,
I δ(q 0 , a) = {q ∈ Q | ∃p ∈ q 0 : (p, a, q) ∈ ∆} für alle q 0 ∈ Q 0 , a ∈ Σ,
I q00 := {q0 },
I F 0 := {q 0 ∈ Q 0 | q 0 ∩ F 6= ∅}.
0,1
q0 1 q1 1 q2
0,1 0
q0 1 q1 1 q2
0 {q0}
{q0,q2} 1 0
0,1
1 {q0,q1} 0
0 0 1
0,1
{q0,q1,q2}
{q1} {q2} {q1,q2}
1 1
1
Lemma 2.19
Jeder NFA ist äquivalent zu seinem Potenzmengenautomaten.
Behauptung 1
w
→ q 0 . Dann gilt q 0 = E (A, w ).
Sei w ∈ Σ∗ und q 0 ∈ Q 0 mit A0 : q00 −
Beweis.
Induktion über n := |w |.
Induktionsanfang: n = 0.
Dann ist w = ε, und es gilt q 0 = q00 = {q0 } = E (A, ε) nach Lemma 2.11.
Induktionsschritt: n → n + 1.
Dann ist w = w 0 a für ein w 0 ∈ Σ∗ mit |w 0 | = n und a ∈ Σ.
w0
Sei q 00 ∈ Q 0 , so dass A0 : q00 −→ q 00 .
Induktionsannahme =⇒ q 00 = E (A, w 0 ).
Damit
q 0 = δ(q 00 , a)
= {q ∈ Q | ∃p ∈ q 00 : (p, a, q) ∈ ∆} (Definition von δ)
[
= {q ∈ Q | (p, a, q) ∈ ∆} (q 00 = E (A, w 0 ))
p∈E (A,w 0 )
Seite 2.24-a
Erreichbare Zustände
Definition 2.20
δ DFA
Sei A = Q, Σ, , q0 , F ein .
∆ NFA
1. Ein Zustand q ∈ Q ist erreichbar, wenn es ein w ∈ Σ∗ gibt, so dass
w
A : q0 −
→ q.
DFA
2. Die Reduktion von A auf die erreichbaren Zustände ist der
NFA
δ0
A0 = Q 0 , Σ, 0
0 , q0 , F ,
∆
wobei
I Q 0 := {q ∈ Q | q erreichbar},
I δ 0 := δ|Q 0 ×Σ bzw. ∆0 := ∆ ∩ (Q 0 × Σ × Q 0 ),
I F 0 := F ∩ Q 0 .
Beobachtung 2.21
Die Reduktion eines DFA bzw. NFA auf die erreichbaren Zustände ist
wohldefiniert.
FoSAP / SS 2021 / GJ Woeginger Seite 2.25 Version 27. April 2021
Erreichbar Zustände (Forts.)
Beobachtung 2.22
Jeder DFA und NFA ist äquivalent zu seiner Reduktion auf die
erreichbaren Zustände.
Definition 2.23
1. Ein DFA oder NFA ist reduziert, wenn alle seine Zustände erreichbar
sind.
2. Sei A ein NFA. Der reduzierte Potenzmengenautomat von A ist die
Reduktion des Potenzmengenautomaten von A auf die erreichbaren
Zustände.
Beobachtung 2.24
Der reduzierte Potenzmengenautomat lässt sich ausgehend vom
Anfangszustand schrittweise konstruieren, indem man jeweils die
unmittelbar erreichbaren Zustände anfügt.
0,1
q0 1 q1 1 q2
0,1 0
q0 1 q1 1 q2
0 {q0}
{q0,q2} 1 0
0,1
1 {q0,q1} 0
0 0 1
0,1
{q0,q1,q2}
{q1} {q2} {q1,q2}
1 1
1
0,1
q0 1 q1 1 q2
{q0}
0,1 0
q0 1 q1 1 q2
{q0}
{q0,q1}
0,1 0
q0 1 q1 1 q2
{q0}
1 0
{q0,q1}
{q0,q1,q2}
0,1 0
q0 1 q1 1 q2
{q0}
1 0
{q0,q1} 0
{q0,q1,q2}
0,1 0
q0 1 q1 1 q2
0 {q0}
{q0,q2} 1 0
0,1
1 {q0,q1} 0
0 0 1
0,1
{q0,q1,q2}
{q1} {q2} {q1,q2}
1 1
1
a,c q2
b
q0 a
c q1
a,c q2
b
q0 a
c q1
{q0}
a,c q2
b
q0 a
c {q2}
q1
b
{q0}
a
c
{q0,q1}
c
a,b,
a,c q2
b
q0 a
c {q2}
q1
b
{q0}
a
c
{q0,q1}
q0 a
c {q2}
q1
b
{q0}
a
c
{q0,q1}
q0 a
c {q2}
q1
b
{q0} {q0,q2} b
a a
c
{q0,q1}
q0 a
c {q2}
q1
b
b
{q0}
a {q0,q2} b
a a c
c
{q0,q1}
a,b,c
,b,c
a,c q2
b
a
q0 a
a b,c
c {q2} b,c
q1
b {q1}
b
a
{q0}
a {q0,q2} b {q1,q2}
b
a a c
c a
{q0,q1} {q0,q1,q2}
c
c
I Es gibt aber auch Beispiele von NFAs mit n Zuständen, für die jeder
äquivalente DFA 2n Zustände hat.
Beispiel 2.26
Zum NFA
1 1 1
1 1
1 1
q0 q1 q2 qn−2 qn−1
0,1 0,1 0,1
Beispiel 2.27
ε
q1 a q2
ε
q0
ε
q3 b q4 a q5
Definition 2.28
Ein nichtdeterministischer endlicher Automat mit ε-Transitionen (kurz:
ε-NFA) ist ein 5-Tupel
(Q, Σ, ∆, q0 , F );
dabei ist
∆ ⊆ Q × (Σ ∪ {ε}) × Q,
und Q, Σ, q0 , F sind wie bei NFAs.
Definition 2.29
Sei A = (Q, Σ, q0 , ∆, F ) ein ε-NFA.
1. Ein Lauf von A ist eine Folge (r0 , σ1 , r1 , σ2 , . . . , rn−1 , σn , rn ), für ein
n ≥ 0, wobei r0 , . . . , rn ∈ Q und σ1 , . . . , σn ∈ Σ ∪ {ε}, so dass
(i) r0 = q0 ,
(ii) (ri−1 , σi , ri ) ∈ ∆ für 1 ≤ i ≤ n.
Wir bezeichnen (r0 , σ1 , r1 , σ2 , . . . , rn−1 , σn , rn ) oder einfach die
Zustandsfolge (r0 , r1 , . . . , rn ) auch als einen Lauf von A auf dem
Wort w ∈ Σ∗ , das aus σ1 . . . σn durch Streichen aller εs entsteht.
2. Der Lauf (r0 , σ1 , r1 , σ2 , . . . , rn−1 , σn , rn ) ist akzeptierend, wenn
rn ∈ F .
Definition 2.30
1. Ein ε-NFA A = (Q, Σ, q0 , ∆, F ) akzeptiert ein Wort w ∈ Σ∗ , wenn
es einen akzeptierenden Lauf von A auf w gibt.
2. Die von einem ε-NFA A = (Q, Σ, ∆, q0 , F ) erkannte Sprache ist
L(A) := {w ∈ Σ∗ | A akzeptiert w }.
q1 a q2
ε
q0
ε
q3 b q4 a q5
Dann ist
n mal
z }| {
L(A) = {a . . . a | n ≥ 1} ∪ {ba}.
Akzeptierender Lauf auf dem Wort aaa:
q0 , ε, q1 , a, q2 , ε, q1 , a, q2 , ε, q1 , a, q2 .
Akzeptierender Lauf auf dem Wort ba:
q0 , ε, q3 , b, q4 , a, q5 .
Beispiel 2.31
digit . digit
Entsprechender ε-NFA:
ε
0,...,9 0,...,9
. ε
ε ε
Beobachtung 2.32
Jeder NFA A ist auch ein ε-NFA.
Außerdem hat A als NFA dieselben (akzeptierenden) Läufe wie als ε-NFA
und akzeptiert demzufolge dieselbe Sprache als NFA wie als ε-NFA.
(Wir sagen, das Modell des ε-NFAs ist eine konservative Erweiterung des
Modells des NFAs.)
Jede NFA erkennbare Sprache ist also auch ε-NFA erkennbar.
Satz 2.33
Zu jeden ε-NFA gibt es einen äquivalenten NFA.
Korollar 2.34
Für jede Sprache L sind folgende Aussagen äquivalent:
(i) L ist DFA-erkennbar.
(ii) L ist NFA-erkennbar.
(iii) L ist ε-NFA-erkennbar.
ε
Beispiel 2.27 (Forts.) q1 a q2
ε
Betrachte wieder den ε-NFA
ε q0
Es gilt q0 −
→ q1 , ε
a b a
q0 −
→ q1 , q3 q4 q5
aa
q2 −→ q2 .
ε
I Anders als bei NFAs bedeutet q − → q 0 nicht q = q 0 , sondern dass
r0 = q, r1 , . . . , rm = q 0 existieren mit (ri−1 , ε, ri ) ∈ ∆ für 1 ≤ i ≤ m.
a
I Ebenfalls anders als bei NFAs bedeutet q − → q 0 für a ∈ Σ nicht
0 0
(q, a, q ) ∈ ∆, sondern dass r , r ∈ Q existieren mit
ε ε
→ r und (r , a, r 0 ) ∈ ∆ und r 0 −
q− → q0.
I Wie bei NFAs gilt aber für alle Wörter w = a1 . . . an und Zustände
q, q 0 ∈ Q:
w a a a an−1 a
→ q 0 ⇐⇒ ∃r1 , . . . , rn−1 ∈ Q : q −→
q− 1 2
r1 −→ 3
r2 −→ n
· · · −−−→ rn−1 −→ q0.
Beweis.
Sei A = (Q, Σ, ∆, q0 , F ) ein ε-NFA.
Wir definieren einen NFA A0 = (Q, Σ, ∆0 , q0 , F 0 ) mit
a
I ∆0 := (q, a, q 0 ) ∈ Q × Σ × Q A : q −
→ q0 ,
ε
I F 0 := {q ∈ Q | ∃q 0 ∈ F : A : q −
→ q 0 }.
Wir zeigen:
L(A) = L(A0 ). (?)
w
w ∈ L(A) ⇐⇒ ∃q ∈ F : A : q0 −
→q
1a a2 an ε
⇐⇒ ∃q ∈ F , r0 , . . . , rn ∈ Q : A : q0 = r0 −→ r1 −→ · · · −→ rn −
→q
a a a
⇐⇒ ∃q ∈ F , r0 , . . . , rn ∈ Q : A0 : q0 = r0 −→
1 2
r1 −→ n
· · · −→ rn
ε
und A : rn −
→q
w
⇐⇒ ∃q 0 ∈ F 0 : A0 : q0 −
→ q0
⇐⇒ w ∈ L(A0 )
Seite 2.40-a
q2
Beispiel 2.36
a a
q1 q3
ε ε
q0 q6
ε b
q4
a a q2 a a
ε-NFA A b b
q1 q3
q5
q0 b q6
b
q4
b
b b NFA A0
q5
FoSAP / SS 2021 / GJ Woeginger Seite 2.41 Version 27. April 2021
Abschnitt 2.4
Abschlusseigenschaften FA-erkennbarer
Sprachen
FA-erkennbare Sprachen
Graphisch
A1
A2
Graphisch
A1
ε
ε
A2
Graphisch Formal
Wir nehmen an: Q1 ∩ Q2 = ∅.
Sei q0 6∈ Q1 ∪ Q2 ein neuer Zustand.
A1 Sei A = (Q, Σ, ∆, q0 , F ) mit
ε I Q := Q1 ∪ Q2 ∪ {q0 };
I ∆ := ∆1 ∪ ∆2 ∪
{(q0 , ε, q10 ), (q0 , ε, q20 )};
I F := F1 ∪ F2 .
ε
A2 Behauptung
L(A) = L(A1 ) ∪ L(A2 ).
Ohne Beweis (ist aber einfach).
Bemerkung 2.37
Die Konstruktion ist im “worst-case” sehr ineffizient, weil sie die
Umwandlung eines NFA in einen DFA erfordert.
Es kann deswegen passieren, dass A n Zustände hat und A000 2n
Zustände.
1. Ansatz
Verwendung von Komplement und Vereinigung mittels de Morgan’scher
Regel.
Ist aber ineffzient, weil es Komplementierungen und damit die
Umwandlung von NFAs in DFAs mittels Potenzmengenkonstruktion
erfordert.
2.Ansatz
Verallgemeinerung der Produktkonstruktion auf NFAs (ist problemlos
möglich).
Graphisch
A1 A2
Graphisch
ε
ε
A1 A2
ε
Graphisch
ε
ε
A1 A2
ε
Formal
Wir nehmen an: Q1 ∩ Q2 = ∅.
Behauptung
L(A) = L(A1 )L(A2 ).
Sei A = (Q1 ∪ Q2 , Σ, ∆, q10 , F2 ) mit
Ohne Beweis (ist aber
∆ := ∆1 ∪ ∆2 ∪ {(q, ε, q20 ) | q ∈ F1 }. einfach).
Cappuccino
[C]
q2 q5
2e
1e
1e [E]
A q0 q1 q4
[T]
Tee
q3
Espresso
r0 Tür auf r1
B
Geld entnehmen
r3 r2
Tür zu
Cappuccino
[C]
2e
1e
[T]
Tee
Geld entnehmen
Espresso Tür zu
Seite 2.47-a
Beispiel 2.38
Notation
Für ein Zeichen a und ein n ∈ N schreiben wir
an := a| .{z
. . a} .
n mal
a a
b
b
b
a a
a a
b
b
b
a a
Es gilt L(A) = L1 L2 .
Seite 2.47-a
Iteration
Sei A = (Q, Σ, ∆, q0 , F ).
Wir konstruieren einen ε-NFA, der die Sprache L(A)∗ erkennt.
Graphisch
Graphisch
ε
ε
A
ε
ε
Graphisch Formal
ε Sei q00 6∈ Q ein neuer Zustand.
Sei
A0 = (Q ∪ {q00 }, Σ, ∆0 , q00 , {q00 })
ε mit
A
∆0 := ∆ ∪ {(q00 , ε, q0 )}
∪ {(q, ε, q00 ) | q ∈ F }.
ε
ε
Behauptung
L(A0 ) = L(A)∗ .
Cappuccino
[C]
q2 q5
2e
1e
1e [E]
A q0 q1 q4
[T]
Tee
q3
Espresso
r0 Tür auf r1
B
Geld entnehmen
r3 r2
Tür zu
Cappuccino
[C]
2e
1e
[T]
Tee
Geld entnehmen
Espresso Tür zu
Cappuccino
[C]
2e
1e
[T]
Tee
Geld entnehmen
Espresso Tür zu
Bemerkungen 2.39
∗
Wir haben damit also einen Automaten für die Sprache L(A)L(B)
konstruiert.
I Die Konstruktion folgt aus allgemeinen Ergebnissen und ist damit korrekt.
∗
I Aber ist L(A)L(B) wirklich die Sprache, die uns interessiert?
Seite 2.48-a
Korrektheit der Konstruktion für die
Iteration
Sei A = (Q, Σ, ∆, q0 , F ) ein ε-NFA und L := L(A).
Wir definieren den A0 = (Q ∪ {q00 }, Σ, ∆0 , q00 , {q00 }) mit
∆0 := ∆ ∪ {(q00 , ε, q0 )} ∪ {(q, ε, q00 ) | q ∈ F }.
ε
ε
A
ε
ε
Beobachtung
Ein Lauf von A0 ist genau dann akzeptierend, wenn er ein n-Lauf für ein n ≥ 1
ist.
Induktionsanfang: n = 0.
Dann ist w = ε.
Es gilt ε ∈ L0 , und (q00 ) ist ein 1-Lauf von A0 auf ε.
Induktionsschritt: n → n + 1.
=⇒“: Gelte w ∈ Ln+1 = Ln L.
”
Dann gibt es ein w 0 ∈ Ln und ein v ∈ L, so dass w = w 0 v .
Weil w 0 ∈ Ln gibt es nach Induktionsannahme einen (n + 1)-Lauf
(r0 , . . . , r` )
0 0
von A auf w .
Weil v ∈ L gibt es einen akzeptierenden Lauf
(s0 , . . . , sm )
von A auf v .
Es gilt: r` = q00 und s0 = q0 und sm ∈ F .
Also (r` , ε, s0 ) ∈ ∆0 und (sm , ε, q00 ) ∈ ∆0 .
Weil ∆ ⊆ ∆0 ist damit
(r0 , . . . , r` , s0 , . . . , sm , q00 )
ein (n + 2)-Lauf von A0 auf w = w 0 v .
⇐=“: Sei
”
(r0 , σ1 , r1 , . . . , σm , rm )
0
ein (n + 2)-Lauf von A auf w . (Das Wort w entsteht also aus σ1 . . . σm
durch Weglassen der εs.)
Sei ` < m maximal, so dass r` = q00 , und sei w 0 das Wort, das aus σ1 . . . σ`
durch Weglassen der εs entsteht.
Dann ist
(r0 , σ1 , r1 , . . . , σ` , r` )
ein (n + 1)-Lauf von A0 auf w 0 .
Nach Induktionsannahme gilt also w 0 ∈ Ln .
I Weil r` = q00 und weil (q00 , ε, q0 ) die einzige von q00 ausgehende Transition
von A0 ist, gilt r` + 1 = q0 und σ`+1 = ε.
I Weil rm = q00 und weil für alle Transitionen (q, σ, q00 ) von A0
∆0 ∩ (Q × (Σ ∪ {ε}) × Q) = ∆
ist
(r`+1 , σ`+2 , r`+2 , . . . , σm−1 , rm−1 )
ein akzeptierender Lauf von A auf dem Wort v , das aus σ`+2 . . . σm−1
durch Weglassen der εs entsteht.
Also ist v ∈ L.
I Weil σ`+1 = σm = ε, ergibt sich w = w 0 v und damit
w ∈ Ln L = Ln+1 .
Seite 2.48-b
Zusammenfassung
Wir haben gezeigt (Korollar 2.34), dass DFAs, NFAs und ε-NFAs die
selben Sprachen erkennen. Wir nennen diese Sprachen FA-erkennbar.
Satz 2.40
Sei Σ ein Alphabet.
1. Ist L ⊆ Σ∗ FA-erkennbar, so auch L.
2. Sind K , L ⊆ Σ∗ FA-erkennbar, so auch K ∪ L.
3. Sind K , L ⊆ Σ∗ FA-erkennbar, so auch K ∩ L.
4. Sind K , L ⊆ Σ∗ FA-erkennbar, so auch KL.
5. Ist L ⊆ Σ∗ FA-erkennbar, so auch L∗ .
Wir sagen auch, dass die Klasse der FA-erkennbaren Sprachen
abgeschlossen ist unter Komplementbildung, Vereinigung, Durchschnitt
Verkettung und Iteration.