Einführung in die Theoretische Informatik I
Bernhard Beckert
Institut für Informatik
Sommersemester 2007
Diese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen von
Katrin Erk (gehalten an der Universität Koblenz-Landau) Jürgen Dix (gehalten an der TU Clausthal)
Ihnen beiden gilt mein herzlicher Dank.
– Bernhard Beckert, April 2007
Zunächst ein konkretes Beispiel
Ein NDEA, der die folgende Sprache akzeptiert:
L
aab/
aba= { w ∈ { a , b } ∗ | w hat aab oder aba als Teilwort }
>
b a
a
a b
>
b
a a b
a
a b
1 2 3 4
5 6 b 7 a 8
Zunächst ein konkretes Beispiel Startzustand:
Menge der alten Startzustände, also { 1 , 5 } .
Nächster Schritt:
Übergang von { 1 , 5 } mit a
∆( 1 , a ) = { 1 , 2 }
∆( 5 , a ) = { 5 , 6 }
Also, neuer Zustand { 1 , 2 , 5 , 6 } mit
δ A
DEA({ 1 , 5 }, a ) = { 1 , 2 , 5 , 6 }
Zunächst ein konkretes Beispiel Startzustand:
Menge der alten Startzustände, also { 1 , 5 } .
Nächster Schritt:
Übergang von { 1 , 5 } mit a
∆( 1 , a ) = { 1 , 2 }
∆( 5 , a ) = { 5 , 6 }
Also, neuer Zustand { 1 , 2 , 5 , 6 } mit
δ A
DEA({ 1 , 5 }, a ) = { 1 , 2 , 5 , 6 }
Zunächst ein konkretes Beispiel Startzustand:
Menge der alten Startzustände, also { 1 , 5 } .
Nächster Schritt:
Übergang von { 1 , 5 } mit a
∆( 1 , a ) = { 1 , 2 }
∆( 5 , a ) = { 5 , 6 }
Also, neuer Zustand { 1 , 2 , 5 , 6 } mit
δ A
DEA({ 1 , 5 }, a ) = { 1 , 2 , 5 , 6 }
Zunächst ein konkretes Beispiel Nächster Schritt:
Übergang von { 1 , 5 } mit b.
∆( 1 , b ) = { 1 }
∆( 5 , b ) = { 5 }
Für den Eingabebuchstaben b bleibt A DEA also im Startzustand.
Zunächst ein konkretes Beispiel Nächster Schritt:
Übergang von { 1 , 5 } mit b.
∆( 1 , b ) = { 1 }
∆( 5 , b ) = { 5 }
Für den Eingabebuchstaben b bleibt A DEA also im Startzustand.
Zunächst ein konkretes Beispiel Nächster Schritt:
Übergang von { 1 , 2 , 5 , 6 } mit a
∆( 1 , a ) = { 1 , 2 }
∆( 2 , a ) = { 3 }
∆( 5 , a ) = { 5 , 6 }
∆( 6 , a ) = 0 /
Also, neuer Zustand { 1 , 2 , 3 , 5 , 6 } mit
δ A
DEA({ 1 , 2 , 5 , 6 }, a ) = { 1 , 2 , 3 , 5 , 6 }
usw.
Zunächst ein konkretes Beispiel Nächster Schritt:
Übergang von { 1 , 2 , 5 , 6 } mit a
∆( 1 , a ) = { 1 , 2 }
∆( 2 , a ) = { 3 }
∆( 5 , a ) = { 5 , 6 }
∆( 6 , a ) = 0 /
Also, neuer Zustand { 1 , 2 , 3 , 5 , 6 } mit
δ A
DEA({ 1 , 2 , 5 , 6 }, a ) = { 1 , 2 , 3 , 5 , 6 }
usw.
Zunächst ein konkretes Beispiel Nächster Schritt:
Übergang von { 1 , 2 , 5 , 6 } mit a
∆( 1 , a ) = { 1 , 2 }
∆( 2 , a ) = { 3 }
∆( 5 , a ) = { 5 , 6 }
∆( 6 , a ) = 0 /
Also, neuer Zustand { 1 , 2 , 3 , 5 , 6 } mit
δ A
DEA({ 1 , 2 , 5 , 6 }, a ) = { 1 , 2 , 3 , 5 , 6 }
usw.
Zunächst ein konkretes Beispiel Nächster Schritt:
Übergang von { 1 , 2 , 5 , 6 } mit a
∆( 1 , a ) = { 1 , 2 }
∆( 2 , a ) = { 3 }
∆( 5 , a ) = { 5 , 6 }
∆( 6 , a ) = 0 /
Also, neuer Zustand { 1 , 2 , 3 , 5 , 6 } mit
δ A
DEA({ 1 , 2 , 5 , 6 }, a ) = { 1 , 2 , 3 , 5 , 6 }
usw.
Zunächst ein konkretes Beispiel
Es ergibt sich folgender determinierter Automat A DEA :
Beweis (Fortsetzung)
Konstruktion des determinierten endlichen Automaten A DEA formal:
Gegeben: Indeterminierter endlicher Automat
A NDEA = ( K ,Σ,∆, I , F )
Wir konstruieren: Determinierten endlichen Automaten
A DEA = ( K 0 , Σ, δ 0 , I 0 , F 0 )
mit
K 0 = 2
K(die Potenzmenge von K ) Übergangsfunktion
δ 0 : 2
K× Σ → 2
Kmit δ 0 ( M , a ) := [
q
∈
M∆( q , a )
Beweis (Fortsetzung)
Konstruktion des determinierten endlichen Automaten A DEA formal:
Gegeben: Indeterminierter endlicher Automat
A NDEA = ( K ,Σ,∆, I , F )
Wir konstruieren: Determinierten endlichen Automaten
A DEA = ( K 0 , Σ, δ 0 , I 0 , F 0 )
mit
K 0 = 2
K(die Potenzmenge von K ) Übergangsfunktion
δ 0 : 2
K× Σ → 2
Kmit δ 0 ( M , a ) := [ ∆( q , a )
Beweis (Fortsetzung)
Konstruktion des determinierten endlichen Automaten A DEA formal:
Gegeben: Indeterminierter endlicher Automat
A NDEA = ( K ,Σ,∆, I , F )
Wir konstruieren: Determinierten endlichen Automaten
A DEA = ( K 0 , Σ, δ 0 , I 0 , F 0 )
mit
K 0 = 2
K(die Potenzmenge von K ) Übergangsfunktion
δ 0 : 2
K× Σ → 2
Kmit δ 0 ( M , a ) := [
q
∈
M∆( q , a )
Beweis (Fortsetzung)
Konstruktion des determinierten endlichen Automaten A DEA formal:
Gegeben: Indeterminierter endlicher Automa
A NDEA = ( K ,Σ,∆, I , F )
Wir konstruieren: Determinierten endlichen Automaten
A DEA = ( K 0 , Σ, δ 0 , I 0 , F 0 )
mit
I 0 = I (die Menge der initialen Zustände von A NDEA ) F 0 = { M ⊂ K | M ∩ F 6= 0} /
(alle Zustandsmengen von A NDEA , die einen finalen Zustand enthalten)
Beweis (Fortsetzung)
Konstruktion des determinierten endlichen Automaten A DEA formal:
Gegeben: Indeterminierter endlicher Automa
A NDEA = ( K ,Σ,∆, I , F )
Wir konstruieren: Determinierten endlichen Automaten
A DEA = ( K 0 , Σ, δ 0 , I 0 , F 0 )
mit
I 0 = I (die Menge der initialen Zustände von A NDEA ) F 0 = { M ⊂ K | M ∩ F 6= 0} /
(alle Zustandsmengen von A NDEA , die einen finalen Zustand enthalten)
Beweis (Fortsetzung)
Konstruktion des determinierten endlichen Automaten A DEA formal:
Gegeben: Indeterminierter endlicher Automa
A NDEA = ( K ,Σ,∆, I , F )
Wir konstruieren: Determinierten endlichen Automaten
A DEA = ( K 0 , Σ, δ 0 , I 0 , F 0 ) Merke:
/ 0 ∈ K 0
δ 0 ( 0, / x ) = 0 / für alle x ∈ Σ
Beweis (Fortsetzung)
Konstruktion des determinierten endlichen Automaten A DEA formal:
Gegeben: Indeterminierter endlicher Automa
A NDEA = ( K ,Σ,∆, I , F )
Wir konstruieren: Determinierten endlichen Automaten
A DEA = ( K 0 , Σ, δ 0 , I 0 , F 0 ) Merke:
/ 0 ∈ K 0
δ 0 ( 0, / x ) = 0 / für alle x ∈ Σ
Beweis (Fortsetzung) Lemma: Es ist
δ 0∗ ( M , w ) = [
q
∈
M∆ ∗ ( q , w )
Beweis durch Induktion über die Länge von w:
Induktionsanfang:
δ 0∗ ( M ,ε) = M = [
q
∈
M{ q } = [
q
∈
M∆ ∗ ( q ,ε)
Beweis (Fortsetzung) Lemma: Es ist
δ 0∗ ( M , w ) = [
q
∈
M∆ ∗ ( q , w )
Beweis durch Induktion über die Länge von w:
Induktionsanfang:
δ 0∗ ( M ,ε) = M = [
q
∈
M{ q } = [
q
∈
M∆ ∗ ( q ,ε)
Beweis (Fortsetzung) Lemma: Es ist
δ 0∗ ( M , w ) = [
q
∈
M∆ ∗ ( q , w )
Beweis durch Induktion über die Länge von w:
Induktionsanfang:
δ 0∗ ( M ,ε) = M = [
q
∈
M{ q } = [
q
∈
M∆ ∗ ( q ,ε)
Beweis (Fortsetzung) Lemma: Es ist
δ 0∗ ( M , w ) = [
q
∈
M∆ ∗ ( q , w )
Induktionsschritt:
δ 0∗ ( M , wa )
= δ 0 (δ 0∗ ( M , w ), a ) Def. von ∗
= S
p∈δ
0∗(
M,
w) ∆( p , a ) Definition von δ 0
= S
p
∈( ∪
q∈M
∆
∗(
q,
w) )∆( p , a ) Ind.-Vor. für δ 0 ( M , w )
= { q 0 | ∃ q ∈ M ∃ p ∈ ∆ ∗ ( q , w ) q 0 ∈ ∆( p , a )}
= { q 0 | ∃ q ∈ M q 0 ∈ ∆ ∗ ( q , wa )} Def. von ∗
= S
q∈
M∆ ∗ ( q , wa )
Beweis (Fortsetzung) Lemma: Es ist
δ 0∗ ( M , w ) = [
q
∈
M∆ ∗ ( q , w )
Induktionsschritt:
δ 0∗ ( M , wa )
= δ 0 (δ 0∗ ( M , w ), a ) Def. von ∗
= S
p∈δ
0∗(
M,
w) ∆( p , a ) Definition von δ 0
= S
p
∈( ∪
q∈M
∆
∗(
q,
w) )∆( p , a ) Ind.-Vor. für δ 0 ( M , w )
= { q 0 | ∃ q ∈ M ∃ p ∈ ∆ ∗ ( q , w ) q 0 ∈ ∆( p , a )}
= { q 0 | ∃ q ∈ M q 0 ∈ ∆ ∗ ( q , wa )} Def. von ∗
= S
q∈
M∆ ∗ ( q , wa )
Beweis (Fortsetzung) Lemma: Es ist
δ 0∗ ( M , w ) = [
q
∈
M∆ ∗ ( q , w )
Induktionsschritt:
δ 0∗ ( M , wa )
= δ 0 (δ 0∗ ( M , w ), a ) Def. von ∗
= S
p∈δ
0∗(
M,
w) ∆( p , a ) Definition von δ 0
= S
p
∈( ∪
q∈M
∆
∗(
q,
w) )∆( p , a ) Ind.-Vor. für δ 0 ( M , w )
= { q 0 | ∃ q ∈ M ∃ p ∈ ∆ ∗ ( q , w ) q 0 ∈ ∆( p , a )}
= { q 0 | ∃ q ∈ M q 0 ∈ ∆ ∗ ( q , wa )} Def. von ∗
= S
q∈
M∆ ∗ ( q , wa )
Beweis (Fortsetzung) Lemma: Es ist
δ 0∗ ( M , w ) = [
q
∈
M∆ ∗ ( q , w )
Induktionsschritt:
δ 0∗ ( M , wa )
= δ 0 (δ 0∗ ( M , w ), a ) Def. von ∗
= S
p∈δ
0∗(
M,
w) ∆( p , a ) Definition von δ 0
= S
p
∈( ∪
q∈M
∆
∗(
q,
w) )∆( p , a ) Ind.-Vor. für δ 0 ( M , w )
= { q 0 | ∃ q ∈ M ∃ p ∈ ∆ ∗ ( q , w ) q 0 ∈ ∆( p , a )}
= { q 0 | ∃ q ∈ M q 0 ∈ ∆ ∗ ( q , wa )} Def. von ∗
= S
q∈
M∆ ∗ ( q , wa )
Beweis (Fortsetzung) Lemma: Es ist
δ 0∗ ( M , w ) = [
q
∈
M∆ ∗ ( q , w )
Induktionsschritt:
δ 0∗ ( M , wa )
= δ 0 (δ 0∗ ( M , w ), a ) Def. von ∗
= S
p∈δ
0∗(
M,
w) ∆( p , a ) Definition von δ 0
= S
p
∈( ∪
q∈M
∆
∗(
q,
w) )∆( p , a ) Ind.-Vor. für δ 0 ( M , w )
= { q 0 | ∃ q ∈ M ∃ p ∈ ∆ ∗ ( q , w ) q 0 ∈ ∆( p , a )}
= { q 0 | ∃ q ∈ M q 0 ∈ ∆ ∗ ( q , wa )} Def. von ∗
= S
q∈
M∆ ∗ ( q , wa )
Beweis (Fortsetzung) Lemma: Es ist
δ 0∗ ( M , w ) = [
q
∈
M∆ ∗ ( q , w )
Induktionsschritt:
δ 0∗ ( M , wa )
= δ 0 (δ 0∗ ( M , w ), a ) Def. von ∗
= S
p∈δ
0∗(
M,
w) ∆( p , a ) Definition von δ 0
= S
p
∈( ∪
q∈M
∆
∗(
q,
w) )∆( p , a ) Ind.-Vor. für δ 0 ( M , w )
= { q 0 | ∃ q ∈ M ∃ p ∈ ∆ ∗ ( q , w ) q 0 ∈ ∆( p , a )}
= { q 0 | ∃ q ∈ M q 0 ∈ ∆ ∗ ( q , wa )} Def. von ∗
= S
q∈
M∆ ∗ ( q , wa )
Beweis (Fortsetzung) Lemma: Es ist
δ 0∗ ( M , w ) = [
q
∈
M∆ ∗ ( q , w )
Induktionsschritt:
δ 0∗ ( M , wa )
= δ 0 (δ 0∗ ( M , w ), a ) Def. von ∗
= S
p∈δ
0∗(
M,
w) ∆( p , a ) Definition von δ 0
= S
p
∈( ∪
q∈M
∆
∗(
q,
w) )∆( p , a ) Ind.-Vor. für δ 0 ( M , w )
= { q 0 | ∃ q ∈ M ∃ p ∈ ∆ ∗ ( q , w ) q 0 ∈ ∆( p , a )}
= { q 0 | ∃ q ∈ M q 0 ∈ ∆ ∗ ( q , wa )} Def. von ∗
= S
q∈
M∆ ∗ ( q , wa )
Beweis (Schluss) Es gilt für alle w ∈ Σ ∗ : w ∈ L ( A DEA )
gdw δ 0∗ ( I 0 , w ) ∈ F 0 (Def. der Sprache eines Automaten) gdw δ 0∗ ( I , w ) ∈ F 0 (da I 0 = I per Def.) gdw δ 0∗ ( I , w ) ∩ F 6= 0 / (Def. von F 0 ) gdw S
q
∈
I∆ ∗ ( q , w ) ∩ F 6= 0 / (nach Lemma) gdw ∃ q ∈ I ∃ q 0 ∈ F q 0 ∈ ∆ ∗ ( q , w )
gdw w ∈ L ( A NDEA ) (Def. der Sprache eines Automaten)
Damit: L ( A DEA ) = L ( A NDEA )
Beweis (Schluss) Es gilt für alle w ∈ Σ ∗ : w ∈ L ( A DEA )
gdw δ 0∗ ( I 0 , w ) ∈ F 0 (Def. der Sprache eines Automaten) gdw δ 0∗ ( I , w ) ∈ F 0 (da I 0 = I per Def.) gdw δ 0∗ ( I , w ) ∩ F 6= 0 / (Def. von F 0 ) gdw S
q
∈
I∆ ∗ ( q , w ) ∩ F 6= 0 / (nach Lemma) gdw ∃ q ∈ I ∃ q 0 ∈ F q 0 ∈ ∆ ∗ ( q , w )
gdw w ∈ L ( A NDEA ) (Def. der Sprache eines Automaten)
Damit: L ( A DEA ) = L ( A NDEA )
Beweis (Schluss) Es gilt für alle w ∈ Σ ∗ : w ∈ L ( A DEA )
gdw δ 0∗ ( I 0 , w ) ∈ F 0 (Def. der Sprache eines Automaten) gdw δ 0∗ ( I , w ) ∈ F 0 (da I 0 = I per Def.) gdw δ 0∗ ( I , w ) ∩ F 6= 0 / (Def. von F 0 ) gdw S
q
∈
I∆ ∗ ( q , w ) ∩ F 6= 0 / (nach Lemma) gdw ∃ q ∈ I ∃ q 0 ∈ F q 0 ∈ ∆ ∗ ( q , w )
gdw w ∈ L ( A NDEA ) (Def. der Sprache eines Automaten)
Damit: L ( A DEA ) = L ( A NDEA )
Beweis (Schluss) Es gilt für alle w ∈ Σ ∗ : w ∈ L ( A DEA )
gdw δ 0∗ ( I 0 , w ) ∈ F 0 (Def. der Sprache eines Automaten) gdw δ 0∗ ( I , w ) ∈ F 0 (da I 0 = I per Def.) gdw δ 0∗ ( I , w ) ∩ F 6= 0 / (Def. von F 0 ) gdw S
q
∈
I∆ ∗ ( q , w ) ∩ F 6= 0 / (nach Lemma) gdw ∃ q ∈ I ∃ q 0 ∈ F q 0 ∈ ∆ ∗ ( q , w )
gdw w ∈ L ( A NDEA ) (Def. der Sprache eines Automaten)
Damit: L ( A DEA ) = L ( A NDEA )
Beweis (Schluss) Es gilt für alle w ∈ Σ ∗ : w ∈ L ( A DEA )
gdw δ 0∗ ( I 0 , w ) ∈ F 0 (Def. der Sprache eines Automaten) gdw δ 0∗ ( I , w ) ∈ F 0 (da I 0 = I per Def.) gdw δ 0∗ ( I , w ) ∩ F 6= 0 / (Def. von F 0 ) gdw S
q
∈
I∆ ∗ ( q , w ) ∩ F 6= 0 / (nach Lemma) gdw ∃ q ∈ I ∃ q 0 ∈ F q 0 ∈ ∆ ∗ ( q , w )
gdw w ∈ L ( A NDEA ) (Def. der Sprache eines Automaten)
Damit: L ( A DEA ) = L ( A NDEA )
Beweis (Schluss) Es gilt für alle w ∈ Σ ∗ : w ∈ L ( A DEA )
gdw δ 0∗ ( I 0 , w ) ∈ F 0 (Def. der Sprache eines Automaten) gdw δ 0∗ ( I , w ) ∈ F 0 (da I 0 = I per Def.) gdw δ 0∗ ( I , w ) ∩ F 6= 0 / (Def. von F 0 ) gdw S
q
∈
I∆ ∗ ( q , w ) ∩ F 6= 0 / (nach Lemma) gdw ∃ q ∈ I ∃ q 0 ∈ F q 0 ∈ ∆ ∗ ( q , w )
gdw w ∈ L ( A NDEA ) (Def. der Sprache eines Automaten)
Damit: L ( A DEA ) = L ( A NDEA )
Beweis (Schluss) Es gilt für alle w ∈ Σ ∗ : w ∈ L ( A DEA )
gdw δ 0∗ ( I 0 , w ) ∈ F 0 (Def. der Sprache eines Automaten) gdw δ 0∗ ( I , w ) ∈ F 0 (da I 0 = I per Def.) gdw δ 0∗ ( I , w ) ∩ F 6= 0 / (Def. von F 0 ) gdw S
q
∈
I∆ ∗ ( q , w ) ∩ F 6= 0 / (nach Lemma) gdw ∃ q ∈ I ∃ q 0 ∈ F q 0 ∈ ∆ ∗ ( q , w )
gdw w ∈ L ( A NDEA ) (Def. der Sprache eines Automaten)
Damit: L ( A DEA ) = L ( A NDEA )
Beweis (Schluss) Es gilt für alle w ∈ Σ ∗ : w ∈ L ( A DEA )
gdw δ 0∗ ( I 0 , w ) ∈ F 0 (Def. der Sprache eines Automaten) gdw δ 0∗ ( I , w ) ∈ F 0 (da I 0 = I per Def.) gdw δ 0∗ ( I , w ) ∩ F 6= 0 / (Def. von F 0 ) gdw S
q
∈
I∆ ∗ ( q , w ) ∩ F 6= 0 / (nach Lemma) gdw ∃ q ∈ I ∃ q 0 ∈ F q 0 ∈ ∆ ∗ ( q , w )
gdw w ∈ L ( A NDEA ) (Def. der Sprache eines Automaten)
Damit: L ( A DEA ) = L ( A NDEA )
Beweis (Schluss) Es gilt für alle w ∈ Σ ∗ : w ∈ L ( A DEA )
gdw δ 0∗ ( I 0 , w ) ∈ F 0 (Def. der Sprache eines Automaten) gdw δ 0∗ ( I , w ) ∈ F 0 (da I 0 = I per Def.) gdw δ 0∗ ( I , w ) ∩ F 6= 0 / (Def. von F 0 ) gdw S
q
∈
I∆ ∗ ( q , w ) ∩ F 6= 0 / (nach Lemma) gdw ∃ q ∈ I ∃ q 0 ∈ F q 0 ∈ ∆ ∗ ( q , w )
gdw w ∈ L ( A NDEA ) (Def. der Sprache eines Automaten)
Damit: L ( A DEA ) = L ( A NDEA )
1
Determinierte endliche Automaten (DEAs)
2
Indeterminierte endliche Automaten (NDEAs)
3
Automaten mit epsilon-Kanten
4
Endliche Automaten akzeptieren genau die Typ-3-Sprachen
5
Pumping Lemma
6
Wortprobleme
7
Rational = Regulär
1
Determinierte endliche Automaten (DEAs)
2
Indeterminierte endliche Automaten (NDEAs)
3
Automaten mit epsilon-Kanten
4
Endliche Automaten akzeptieren genau die Typ-3-Sprachen
5
Pumping Lemma
6
Wortprobleme
7
Rational = Regulär
Vom NDEA zum Automaten mit ε -Kanten
Bisher (NDEA): Kanten mit einem Buchstaben beschriftet Jetzt (Automat mit ε -Kanten): Kanten mit einem Wort beschriftet
Es darf auch das leere Wort ε sein!
Ein Automaten mit ε -Kanten kann . . .
in einem Schritt ein ganzes Wort verarbeiten
einen Zustandsübergang machen, ohne dabei einen Buchstaben zu lesen
Vom NDEA zum Automaten mit ε -Kanten
Bisher (NDEA): Kanten mit einem Buchstaben beschriftet
Jetzt (Automat mit ε -Kanten): Kanten mit einem Wort beschriftet Es darf auch das leere Wort ε sein!
Ein Automaten mit ε -Kanten kann . . .
in einem Schritt ein ganzes Wort verarbeiten
einen Zustandsübergang machen, ohne dabei einen Buchstaben zu lesen
Vom NDEA zum Automaten mit ε -Kanten
Bisher (NDEA): Kanten mit einem Buchstaben beschriftet
Jetzt (Automat mit ε -Kanten): Kanten mit einem Wort beschriftet Es darf auch das leere Wort ε sein!
Ein Automaten mit ε -Kanten kann . . .
in einem Schritt ein ganzes Wort verarbeiten
einen Zustandsübergang machen, ohne dabei einen Buchstaben zu lesen
Vom NDEA zum Automaten mit ε -Kanten
Bisher (NDEA): Kanten mit einem Buchstaben beschriftet
Jetzt (Automat mit ε -Kanten): Kanten mit einem Wort beschriftet Es darf auch das leere Wort ε sein!
Ein Automaten mit ε -Kanten kann . . .
in einem Schritt ein ganzes Wort verarbeiten
einen Zustandsübergang machen, ohne dabei einen Buchstaben zu lesen
Vom NDEA zum Automaten mit ε -Kanten
Bisher (NDEA): Kanten mit einem Buchstaben beschriftet
Jetzt (Automat mit ε -Kanten): Kanten mit einem Wort beschriftet Es darf auch das leere Wort ε sein!
Ein Automaten mit ε -Kanten kann . . .
in einem Schritt ein ganzes Wort verarbeiten
einen Zustandsübergang machen, ohne dabei einen Buchstaben zu lesen
Vom NDEA zum Automaten mit ε -Kanten
Bisher (NDEA): Kanten mit einem Buchstaben beschriftet
Jetzt (Automat mit ε -Kanten): Kanten mit einem Wort beschriftet Es darf auch das leere Wort ε sein!
Ein Automaten mit ε -Kanten kann . . .
in einem Schritt ein ganzes Wort verarbeiten
einen Zustandsübergang machen, ohne dabei einen Buchstaben zu lesen
Definition 13.1 (Automat mit ε -Kanten)
Ein Automat mit ε -Kanten ( ε -NDEA) A ist ein Tupel A = ( K ,Σ,∆, I , F )
Dabei ist
K eine endliche Menge von Zuständen, Σ ein endliches Alphabet,
∆ ⊆ ( K × Σ ∗ ) × K eine eine Übergangsrelation, I ⊆ K eine Menge von Startzuständen,
F ⊆ K eine Menge von finalen Zuständen
Definition 13.1 (Automat mit ε -Kanten)
Ein Automat mit ε -Kanten ( ε -NDEA) A ist ein Tupel A = ( K ,Σ,∆, I , F )
Dabei ist
K eine endliche Menge von Zuständen,
Σ ein endliches Alphabet,
∆ ⊆ ( K × Σ ∗ ) × K eine eine Übergangsrelation, I ⊆ K eine Menge von Startzuständen,
F ⊆ K eine Menge von finalen Zuständen
Definition 13.1 (Automat mit ε -Kanten)
Ein Automat mit ε -Kanten ( ε -NDEA) A ist ein Tupel A = ( K ,Σ,∆, I , F )
Dabei ist
K eine endliche Menge von Zuständen, Σ ein endliches Alphabet,
∆ ⊆ ( K × Σ ∗ ) × K eine eine Übergangsrelation, I ⊆ K eine Menge von Startzuständen,
F ⊆ K eine Menge von finalen Zuständen
Definition 13.1 (Automat mit ε -Kanten)
Ein Automat mit ε -Kanten ( ε -NDEA) A ist ein Tupel A = ( K ,Σ,∆, I , F )
Dabei ist
K eine endliche Menge von Zuständen, Σ ein endliches Alphabet,
∆ ⊆ ( K × Σ ∗ ) × K eine eine Übergangsrelation, I ⊆ K eine Menge von Startzuständen,
F ⊆ K eine Menge von finalen Zuständen
Definition 13.1 (Automat mit ε -Kanten)
Ein Automat mit ε -Kanten ( ε -NDEA) A ist ein Tupel A = ( K ,Σ,∆, I , F )
Dabei ist
K eine endliche Menge von Zuständen, Σ ein endliches Alphabet,
∆ ⊆ ( K × Σ ∗ ) × K eine eine Übergangsrelation, I ⊆ K eine Menge von Startzuständen,
F ⊆ K eine Menge von finalen Zuständen
Definition 13.1 (Automat mit ε -Kanten)
Ein Automat mit ε -Kanten ( ε -NDEA) A ist ein Tupel A = ( K ,Σ,∆, I , F )
Dabei ist
K eine endliche Menge von Zuständen, Σ ein endliches Alphabet,
∆ ⊆ ( K × Σ ∗ ) × K eine eine Übergangsrelation, I ⊆ K eine Menge von Startzuständen,
F ⊆ K eine Menge von finalen Zuständen
Definition 13.2 (Erweiterung von ∆ zu ∆ ∗ )
∆ ∗ ⊆ ( K × Σ ∗ ) × K
ist (ähnlich wie für NDEAs) definiert durch:
∆ ∗ ( ( q ,ε), q 0 ) gdw q 0 = q oder ∆( ( q ,ε), q 0 )
∆ ∗ ( ( q , w
1w
2), q 0 ) gdw ∃ q 00 ∈ K
∆ ∗ ( ( q , w
1), q 00 ) ∨ ∆( ( q , w
1), q 00 )
∧
∆ ∗ ( ( q 00 , w
2), q 0 ) ∨ ∆( ( q 00 , w
2), q 0 )
Definition 13.3 (Von ε -NDEA akzeptierte Sprache) Die von einem Automaten mit ε -Kanten
A = ( K ,Σ,∆, I , F ) akzeptierte Sprache ist
L ( A ) := { w ∈ Σ ∗ | ∃ s
0∈ I ∃ q ∈ F ∆ ∗ ( ( s
0, w ) q ) }
Beispiel 13.4 (Automaten mit ε -Kanten)
s 0
>
aba
b b
ε ε
a ba
s
s s
1
2 3
Akzeptiert: { aba } ∗ { b }{ b } ∗ + { aba } ∗ { a } + { ba }
Theorem 13.5 ( ε -NDEA gleich mächtig wie NDEA)
Zu jedem Automaten mit ε -Kanten A existiert ein indeterminierter endlicher Automat A 0 mit
L (A) = L (A 0 )
Beweis.
Transformation von A in einen NDEA ohne ε -Kanten
1
Ersetze Übergänge:
mit nur einem Buchstaben markiert → beibehalten
mit einem Wort w markiert ( | w | = n) → ersetze durch n Übergänge (verwende n − 1 neue, zusätzlicher Zustände)
ε -Übergänge → statt diesen
∆( ( q , a ), q 00 ) für jedes Paar
∆( ( q , a ), q 0 ) und ∆( ( q 0 , ε), q 00 )
Beweis.
Transformation von A in einen NDEA ohne ε -Kanten
1
Ersetze Übergänge:
mit nur einem Buchstaben markiert → beibehalten
mit einem Wort w markiert ( | w | = n) → ersetze durch n Übergänge (verwende n − 1 neue, zusätzlicher Zustände)
ε -Übergänge → statt diesen
∆( ( q , a ), q 00 ) für jedes Paar
∆( ( q , a ), q 0 ) und ∆( ( q 0 , ε), q 00 )
Beweis.
Transformation von A in einen NDEA ohne ε -Kanten
1
Ersetze Übergänge:
mit nur einem Buchstaben markiert → beibehalten
mit einem Wort w markiert ( | w | = n) → ersetze durch n Übergänge (verwende n − 1 neue, zusätzlicher Zustände)
ε -Übergänge → statt diesen
∆( ( q , a ), q 00 ) für jedes Paar
∆( ( q , a ), q 0 ) und ∆( ( q 0 , ε), q 00 )
Beweis.
Transformation von A in einen NDEA ohne ε -Kanten
1
Ersetze Übergänge:
mit nur einem Buchstaben markiert → beibehalten
mit einem Wort w markiert ( | w | = n) → ersetze durch n Übergänge (verwende n − 1 neue, zusätzlicher Zustände)
ε -Übergänge → statt diesen
∆( ( q , a ), q 00 ) für jedes Paar
∆( ( q , a ), q 0 ) und ∆( ( q 0 , ε), q 00 )
Beweis.
Transformation von A in einen NDEA ohne ε -Kanten
1
Ersetze Übergänge:
mit nur einem Buchstaben markiert → beibehalten
mit einem Wort w markiert ( | w | = n) → ersetze durch n Übergänge (verwende n − 1 neue, zusätzlicher Zustände)
ε -Übergänge → statt diesen
∆( ( q , a ), q 00 ) für jedes Paar
∆( ( q , a ), q 0 ) und ∆( ( q 0 , ε), q 00 )
Beweis (Fortsetzugn)
Transformation von A in einen NDEA ohne ε -Kanten
2
Zusätzliche Initialzustände:
Falls q ∈ I und ∆ ∗ ( ( q , ε), q 0 ) , dann auch q 0 ∈ I
3
Finalzustände bleiben unverändert
Beweis (Fortsetzugn)
Transformation von A in einen NDEA ohne ε -Kanten
2
Zusätzliche Initialzustände:
Falls q ∈ I und ∆ ∗ ( ( q , ε), q 0 ) , dann auch q 0 ∈ I
3
Finalzustände bleiben unverändert
Beweis (Fortsetzugn)
Transformation von A in einen NDEA ohne ε -Kanten
2
Zusätzliche Initialzustände:
Falls q ∈ I und ∆ ∗ ( ( q , ε), q 0 ) , dann auch q 0 ∈ I
3
Finalzustände bleiben unverändert
Beispiel 13.6 (Der Automat mit ε -Kanten . . . )
s 0
>
aba
b b
ε ε
a ba
s
s s
1
2 3
Akzeptiert: { aba } ∗ { b }{ b } ∗ + { aba } ∗ { a } + { ba }
Beispiel 13.7 (. . . wird transformiert in den äquivalenten NDEA)
s 2 s 0
p
(aba,1)p
(aba,2)> b
>
a
a, b
b b
s 1
b
s 3
a a
b
p
(ba,1)∗ ∗ ∗
1
Determinierte endliche Automaten (DEAs)
2
Indeterminierte endliche Automaten (NDEAs)
3
Automaten mit epsilon-Kanten
4
Endliche Automaten akzeptieren genau die Typ-3-Sprachen
5
Pumping Lemma
6
Wortprobleme
7
Rational = Regulär
1
Determinierte endliche Automaten (DEAs)
2
Indeterminierte endliche Automaten (NDEAs)
3
Automaten mit epsilon-Kanten
4
Endliche Automaten akzeptieren genau die Typ-3-Sprachen
5
Pumping Lemma
6
Wortprobleme
7