Folien
Folien
Folien
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Automaten und Berechenbarkeit 1<br />
1 Endliche Automaten<br />
1.1 Endliche Automaten mit Ausgabe<br />
Definition 1.1.1 A = (X,Y,Z,z0,δ,λ) heißt deterministischer<br />
endlicher Automat mit Ausgabe genau dann, wenn gilt:<br />
• X nichtleere endliche Menge von Symbolen (Eingabealphabet)<br />
• Y nichtleere endliche Menge von Symbolen (Ausgabealphabet)<br />
• Z nichtleere endliche Menge (Zustandsmenge)<br />
• z0 ∈ Z (Startzustand)<br />
• δ : Z×X → Z totale Funktion (Überführungsfunktion)<br />
• λ : Z×X → Y totale Funktion (Ausgabefunktion)
Automaten und Berechenbarkeit 2<br />
Definition 1.1.2 Unter der erweiterten Überführungsfunktion δ ∗<br />
eines deterministischen endlichen Automaten A = (X,Y,Z,z0,δ,λ)<br />
mit Ausgabe versteht man die Funktion δ ∗ : Z×X ∗ → Z mit<br />
• ∀z(z ∈ Z → δ ∗ (z,ε) = z)<br />
• ∀z∀x∀w((z ∈ Z∧x ∈ X∧w ∈ X ∗ ) → δ ∗ (z,wx) = δ(δ ∗ (z,w),x))<br />
Definition 1.1.3 Unter der erweiterten Ausgabefunktion λ ∗ eines<br />
deterministischen endlichen Automaten A mit Ausgabe versteht man<br />
die Funktion λ ∗ : Z×X ∗ → Y ∗ mit<br />
• ∀z(z ∈ Z → λ ∗ (z,ε) = ε)<br />
• ∀z∀x∀Simulatorw((z ∈ Z∧x ∈ X∧w ∈ X ∗ ) →<br />
λ ∗ (z,wx) = λ ∗ (z,w)·λ(δ ∗ (z,w),x))
Automaten und Berechenbarkeit 3<br />
1.2 Endliche Automaten<br />
Definition 1.2.1 A = (X,Z,z0,δ,Zf) heißt nichtdeterministischer<br />
endlicher Automat (NEA) genau dann, wenn gilt:<br />
• X und Z nichtleere endliche Mengen<br />
• z0 ∈ Z (Startzustand)<br />
• Zf ⊆ Z (Finalzustandsmenge)<br />
• δ ⊆ Z×X×Z (Überführungsrelation)<br />
Simulator<br />
A heißt deterministischer endlicher Automat (DEA) genau dann,<br />
wenn gilt:<br />
∀z∀x∃!z ′ (((z,x) ∈ Z×X∧z ′ ∈ Z) → (z,x,z ′ ) ∈ δ))<br />
A heißt vollständiger endlicher Automat genau dann, wenn<br />
∀z∀x∃z ′ (((z,x) ∈ Z×X∧z ′ ∈ Z) → (z,x,z ′ ) ∈ δ)
Automaten und Berechenbarkeit 4<br />
Schreibweise:<br />
A : z x<br />
−→ z ′ :⇐⇒ (z,x,z ′ ) ∈ δ<br />
A : z wx<br />
−→ z ′ :⇐⇒ ∃z ′′ (z ′′ ∈ Z∧A : w<br />
−→ z ′′ ∧(z ′′ ,x,z ′ ) ∈ δ<br />
A : z ε<br />
−→ z:<br />
Jeder Zustand ist von sich aus durch den leeren Pfad erreichbar.<br />
Definition 1.2.2 LA = {w : w ∈ X∗ ∧∃z(z ∈ Zf ∧z0<br />
vom NEA A = (X,Z,z0,δ,Zf) akzeptierte Sprache.<br />
w<br />
−→ zf)} ist die
Automaten und Berechenbarkeit 5<br />
Definition 1.2.3 Ein DEA ist ein Quintupel A = (X,Z,z0,f,Zf) mit:<br />
• X nichtleere endliche Menge von Symbolen (Eingabealphabet)<br />
• Z nichtleere endliche Menge (Zustandsmenge)<br />
• z0 ∈ Z (Startzustand)<br />
• Zf ⊆ Z (Finalzustandsmenge)<br />
• f : Z×X → Z totale Funktion (Überführungsfunktion)
Automaten und Berechenbarkeit 6<br />
Satz 1.2.1 (Potenzmengenkonstruktion)<br />
Eine Wortmenge kann genau dann von einem deterministischen<br />
endlichen Automaten (DEA) akzeptiert werden, wenn sie von einem<br />
nichtdeterministischen endlichen Automaten (NEA) akzeptiert werden<br />
kann.<br />
Konstruktion des deterministischen endlichen Automaten:<br />
gegeben: An = (X,Z,z0,δ,Zf)<br />
konstruieren Ad = (X,Z ′ ,z ′ 0 ,δ′ ,Z ′ f ) wie folgt:<br />
• Z ′ := 2 Z Potenzmenge von Z<br />
• z ′ 0<br />
:= {z0}<br />
• f : 2Z ×X → 2Z (M,x) ↦−→ <br />
z∈M<br />
<br />
z ′ : (z,x,z ′ ) ∈ δ<br />
• Z ′ f := {M : M ⊆ Z∧M∩Zf = ∅}
Automaten und Berechenbarkeit 7<br />
Korrektheit:<br />
für alle w ∈ X ∗ und beliebige Zustände zp,zq ∈ Z gilt:<br />
zq ∈ f ∗ ({zp},w) ⇐⇒ An : zp<br />
(Beweis mit Induktion über |w|)<br />
Mit (∗) folgt:<br />
An akzeptiert w<br />
w<br />
−→ zq (∗)<br />
w<br />
⇔ ∃zq ∈ Zf mit An : z0 −→ zq<br />
⇔ ∃zq ∈ Zf mit zq ∈ f∗ ({z0},w) (wegen (∗))<br />
⇔ ∃zq ∈ Zf ∩f∗ ({z0},w)<br />
⇔ f∗ ({z0},w)∩Zf = ∅<br />
⇔ f∗ ({z0},w) ∈ Z ′ f (nach Def. Z′ f )<br />
⇔ Ad akzeptiert w<br />
Also: LAn = LAd
Automaten und Berechenbarkeit 8<br />
Beweis von (∗) durch Induktion über |w|:<br />
Induktionsanfang: |w| = 0, d.h. w = ε:<br />
zq ∈ f ∗ ({zp},ε)<br />
⇔ zq ∈ {zp} (da nach Definition f∗ ({zp},ε) = {zp})<br />
⇔ zq = zp<br />
ε<br />
⇔ An : zp −→ zq (da ε-Transitionen verboten)<br />
|w| = 1, d.h. w = x mit x ∈ X:<br />
zq ∈ f ∗ ({zp},x)<br />
⇔ zq ∈ f({zp},x)<br />
⇔ (zp,x,zq) ∈ δ (nach Def. f Potenzmengenkonstruktion)<br />
⇔ An : zp<br />
x<br />
−→ zq
Automaten und Berechenbarkeit 9<br />
Induktionsschritt: w ∈ X ∗ , x ∈ X:<br />
nach Induktionsvoraussetzung gilt für alle zp,zq ∈ Z:<br />
zq ∈ f ∗ ({zp},w) ⇐⇒ An : zp<br />
w<br />
−→ zq<br />
Zu zeigen: ∀zp,zq ∈ Z: zq ∈ f ∗ ({zp},w·x) ⇐⇒ An : zp<br />
Es gilt zq ∈ f ∗ ({zp},w·x)<br />
⇔ zq ∈ f(f ∗ ({zp},w),x) (nach Def. von f ∗ )<br />
w·x<br />
−→ zq<br />
⇔ ∃zr ∈ Z : zr ∈ f∗ ({zp},w) und f({zr},x) = {zq}<br />
w<br />
⇔ ∃zr ∈ Z : An : zp −→ zr und (zr,x,zq) ∈ δ<br />
(nach Induktionsvor. bzw. Def. f)<br />
w<br />
x<br />
⇔ ∃zr ∈ Z : An : zp −→ zr und An : zr −→ zq (nach Def. δ)<br />
⇔ An : zp<br />
w·x<br />
−→ zq
Automaten und Berechenbarkeit 10<br />
EA := {LA : A ist ein endlicher Automat}<br />
Satz 1.2.2<br />
Die Klasse EA ist abgeschlossen unter den Operationen<br />
∩, ∪, −, · und ∗ .<br />
D.h. sind L und L ′ in EA, so auch L∪L ′ ,L∩L ′ ,L,L·L ′ und L ∗ .
Automaten und Berechenbarkeit 11<br />
Definition 1.2.4 (äquivalente Zustände) Es sei A = (X,Z,z0,δ,Zf)<br />
ein DEA. Für beliebige z ′′ ∈ Z sei Az ′′ := (X,Z,z′′ ,δ,Zf).<br />
Zwei Zustände z,z ′ ∈ Z heißen äquivalent, d.h. ununterscheidbar<br />
(in Zeichen: z ∼A z ′ ) genau dann, wenn für alle w ∈ X ∗ gilt:<br />
w ∈ LAz ⇐⇒ w ∈ LA z ′ .<br />
Definition 1.2.5 (unterscheidendes Experiment) Für einen DEA<br />
A = (X,Z,z0,δ,Zf) heißt w ∈ X ∗ ein die Zustände z und z ′<br />
unterscheidendes Experiment genau dann, wenn<br />
δ ∗ (z,w) ∈ Zf ⇐⇒ δ ∗ (z ′ ,w) ∈ Zf.
Automaten und Berechenbarkeit 12<br />
Lemma 1.2.3<br />
(a) Für alle z,z ′ ∈ Z gilt: z ∼A z ′ ⇐⇒ L(Az) = L(Az ′)<br />
(b) ∼A⊆ Z×Z ist eine Äquivalenzrelation.<br />
(c) ∼A ist verträglich mit der Überführungsfunktion δ, d.h.<br />
aus z ∼A z ′ und x ∈ X folgt δ(z,x) ∼A δ(z ′ ,x).<br />
Lemma 1.2.4 Für beliebige Zustände z,z ′ ∈ Z ist effektiv<br />
entscheidbar, ob z ∼A z ′ gilt.<br />
z ∼k z ′ :⇔<br />
Für beliebige Wörter w ∈ X ∗ mit |w| ≤ k gilt:<br />
δ ∗ (z,w) ∈ Zf ⇐⇒ δ ∗ (z ′ ,w) ∈ Zf
Automaten und Berechenbarkeit 13<br />
Hilfssatz 1.2.4.1 ∼k ist eine Äquivalenzrelation.<br />
Hilfssatz 1.2.4.2 Für alle k ≥ 0 gilt: z ∼k+1 z ′ =⇒ z ∼k z ′ .<br />
Insbes. gilt für alle z ∈ Z: [z]k+1 ⊆ [z]k.<br />
Hilfssatz 1.2.4.3 Es sei z ∈ Z. Dann gilt für alle k ≥ 0 und<br />
z ′ ,z ′′ ∈ [z]k:<br />
[z ′ ]k+1 = [z ′′ ]k+1 ⇐⇒ ∀x ∈ X : [δ(z ′ ,x)]k = [δ(z ′′ ,x)]k.<br />
Hilfssatz 1.2.4.4 Es sei h ≥ 0 und für alle z ∈ Z gelte [z]h+1 = [z]h.<br />
Dann gilt für alle k ≥ h und alle Zustände z ∈ Z: [z]k = [z]h<br />
Hilfssatz 1.2.4.5 Es sei h ≥ 0 und für alle z ∈ Z gelte: [z]h+1 = [z]h.<br />
Dann ist für alle z ∈ Z: [z]A = [z]h
Automaten und Berechenbarkeit 14<br />
Definition 1.2.6 In einem DEA A = (X,Z,z0,δ,Zf) heißt ein Zustand<br />
q ∈ Z erreichbar, wenn es ein w ∈ X ∗ mit δ ∗ (z0,w) = q gibt.<br />
Aerr = (X,Zerr,z0,ferr,Zf,err) mit<br />
Zerr := {q : q ∈ Z und q erreichbar in A}<br />
ferr := δ|Zerr×X<br />
Zf,err := Zf ∩Zerr<br />
Es gilt offensichtlich LA = LAerr .
Automaten und Berechenbarkeit 15<br />
Definition 1.2.7 Amin = (Xmin,Zmin,z0,min,fmin,Zf,min) heißt<br />
minimaler Automat zum DEA A = (X,Z,z0,δ,Zf), falls<br />
• Xmin = X<br />
• Zmin = {[z]∼A<br />
• z0,min = [z0]∼A<br />
: z ∈ Z}<br />
• fmin : Zmin ×X → Zmin<br />
([z]∼A ,x) ↦→ [δ(z,x)]∼A<br />
(fmin ist wegen Lemma 1.2.3 (c) wohldefiniert)<br />
• Zf,min = {[z]∼A<br />
: z ∈ Zf}<br />
Lemma 1.2.5 Die DEAs A und Amin sind zueinander äquivalent,<br />
d.h. LA = LAmin .<br />
Definition 1.2.8 Es sei A ein DEA. Wir nennen Ared := (Aerr)min<br />
den zu A gehörigen reduzierten endlichen Automaten.
Automaten und Berechenbarkeit 16<br />
Korollar 1.2.6 LA = LAred<br />
Definition 1.2.9 Zwei DEAs A = (X,Z,z0,δ,Zf) und<br />
A ′ = (X,Z ′ ,z ′ 0 ,δ′ ,Z ′ f ) heißen isomorph, falls es eine Bijektion<br />
Φ : Z → Z ′ gibt mit<br />
1. Φ(z0) = z ′ 0<br />
2. Φ(Zf) = Z ′ f<br />
3. ∀z∀x((z ∈ Z∧x ∈ X) → Φ(δ(z,x)) = δ ′ (Φ(z),x))<br />
Lemma 1.2.7 Sind zwei DEA’s A und A ′ isomorph, so ist LA = LA ′.<br />
Definition 1.2.10 (Nerode-Rechtskongruenz einer Sprache)<br />
Es sei L ⊆ X ∗ eine beliebige Sprache über X. Wir nennen zwei Wörter<br />
u ∈ X ∗ und v ∈ X ∗ rechts-kongruent (Schreibweise: u ∼L v):⇔<br />
∀w w ∈ X ∗ → (u·w ∈ L ⇔ v·w ∈ L) .
Automaten und Berechenbarkeit 17<br />
Lemma 1.2.8<br />
1. ∼L ist eine Äquivalenzrelation auf X ∗ .<br />
[w]L := {v : v ∼L w} heißt Äquivalenzklasse von w ∈ X ∗ bzgl. L.<br />
Die Anzahl aller (verschiedenen) Äquivalenzklassen bzgl. L<br />
nennen wir Index von L.<br />
2. ∼L ist rechtsstabil bzgl. der Konkatenation, d.h. für alle u,v ∈ X ∗<br />
gilt:<br />
u ∼L v ⇒ ∀w(w ∈ X ∗ → u·w ∼L v·w)<br />
3. L = <br />
u∈L<br />
[u]L<br />
(für alle v ∈ [u]L folgt aus u ∈ L stets v ∈ L)<br />
4. Ist A = (X,Z,z0,δ,Zf) ein DEA mit LA = L, so hat A mindestens<br />
so viele Zustände wie es verschiedene Äquivalenzklassen bzgl.<br />
∼L gibt, d.h. |Z| ≥ indexL.Hilfssatz 1.2.4.3
Automaten und Berechenbarkeit 18<br />
Korollar 1.2.9<br />
1. Ist L durch einen DEA akzeptierbar, so hat ∼L einen endlichen<br />
Index.<br />
2. Kann man zu einer Sprache L unendlich viele ∼L-Klassen<br />
angeben, so ist L nicht durch einen DEA akzeptierbar.<br />
Lemma 1.2.10 Ist der Index von ∼L für eine Sprache L endlich, so ist<br />
L durch einen DEA akzeptierbar.<br />
Aus Lemma 1.2.10 und Korollar 1.2.9 folgt der Satz von Nerode:<br />
Satz 1.2.11 (Satz von Nerode) Eine Sprache L ist genau dann durch<br />
einen DEA akzeptierbar, wenn ∼L endlichen Index hat.
Automaten und Berechenbarkeit 19<br />
Definition 1.2.11 Zu L ⊆ X ∗ sei AL definiert durch<br />
AL = (X,ZL,zL,0,fL,ZL,f) mit<br />
• ZL = {[u]L : u ∈ X ∗ }<br />
• zL,0 = [ε]L<br />
• fL([u]L,x) = [u·x]L für alle u ∈ X ∗ und alle x ∈ X<br />
• ZL,f = {[u]L : u ∈ L}<br />
Lemma 1.2.12 Ist L durch einen DEA akzeptierbar, so ist AL ein<br />
DEA, der L akzeptiert.<br />
Satz 1.2.13 Jeder L akzeptierende reduzierte DEA Ared ist isomorph<br />
zu AL.
Automaten und Berechenbarkeit 20<br />
1.3 Pumpinglemma und seine Anwendungen<br />
Lemma 1.3.1 L = {a n b m : n ≥ m ≥ 0} ist nicht durch einen<br />
endlichen Automaten akzeptierbar (erkennbar).<br />
Satz 1.3.2 (Pumpinglemma) Es sei L eine Sprache, die von einem<br />
DEA erkannt wird, d.h. L = L(A).<br />
Dann existiert ein n ∈ N, so dass für alle Wörter w ∈ L mit |w| ≥ n<br />
Wörter x,y,z ∈ X ∗ existieren mit<br />
• w = x·y·z<br />
• 0 < |y| ≤ n<br />
• x·y j ·z ∈ L für alle j ∈ N.
Automaten und Berechenbarkeit 21<br />
Satz 1.3.3 (Pumpinglemma) Es sei L eine Sprache,Hilfssatz 1.2.4.5<br />
die von einem DEA erkannt wird, d.h. L = L(A).<br />
Dann existiert ein n ∈ N, so dass für alle Wörter w ∈ L mit |w| ≥ n<br />
Wörter x,y,z ∈ X ∗ existieren mit<br />
• w = x·y·z<br />
• |x·y| ≤ n<br />
• y = ε<br />
• x·y j ·z ∈ L für alle j ∈ N.<br />
Korollar 1.3.4 L = {0 p : p ist eine Primzahl} ist durch keinen DEA<br />
erkennbar.
Automaten und Berechenbarkeit 22<br />
Korollar 1.3.5 (Leerheitsproblem bei DEAs) Für einen gegebenen<br />
DEA A kann man algorithmisch entscheiden, ob L(A) = ∅ gilt.<br />
Hilfssatz 1.2.4.5<br />
Korollar 1.3.6 (Endlichkeitsproblem bei DEAs) Für einen<br />
gegebenen DEA A kann man algorithmisch entscheiden, ob<br />
|L(A)| ∈ N0 gilt, d.h. ob L(A) endlich ist.<br />
1.4 Reguläre Ausdrücke und Sprachen<br />
Definition 1.4.1 (Reguläre Ausdrücke) Die Menge der regulären<br />
Ausdrücke über ein endliches Alphabet X ist induktiv definiert durch:<br />
1. Die Symbole ∅ und ε sind reguläre Ausdrücke über X.<br />
2. Für jedes Zeichen a ∈ X gilt: a ist ein regulärer Ausdruck über X.<br />
3. Sind δ und λ reguläre Ausdrücke über X, so auch δ+λ, δ·λ, δ ∗ .
Automaten und Berechenbarkeit 23<br />
Definition 1.4.2 (Semantik regulärer Ausdrücke) Die durch einen<br />
regulären Ausdruck δ über X spezifizierte Sprache L(δ) ⊆ X ∗ ist<br />
induktiv definiert durch:<br />
a L(∅) = ∅, L(ε) = {ε}<br />
b L(a) = {a} für alle a ∈ X<br />
b1 L(δ+λ) = L(δ)∪L(λ)<br />
b1 L(δ·λ) = L(δ)·L(λ) mit L1 ·L2 := {u·v : u ∈ L! ∧v ∈ L2}<br />
b1 L(δ∗ ) = L(δ) ∗ mit L∗ <br />
1 = n≥0Ln 1 , Ln1 = L1 ·L n−1<br />
1 für n ≥ 1 und<br />
= {ε} (Kleenescher Sternoperator)<br />
L 0 1<br />
Definition 1.4.3 Eine Sprache heißt regulär, wenn es einen<br />
regulären Ausdruck δ über X mit L = L(δ) gibt.<br />
Satz 1.4.1 (Satz von Kleene) Eine Sprache L ⊆ X ∗ ist genau dann<br />
regulär, wenn sie durch einen DEA A erkannt wird.
Automaten und Berechenbarkeit 24<br />
2 Kellerautomaten und kf. Sprachen<br />
Definition 2.1 (kontextfreie Grammatik) Ein Quadrupel<br />
G = (N,X,S,P) heißt kontextfreie Grammatik (CFG) genau dann,<br />
wenn<br />
1. N,X sind nichtleere Mengen<br />
N heißt Menge der Nichtterminalsymbole<br />
X heißt Menge der Terminalsymbole<br />
2. N∩X = ∅<br />
3. S ∈ N, S ist das Startsymbol<br />
4. P ⊆ N×(N∪X) ∗ ist eine endliche Menge und heißt Menge der<br />
Produktionen<br />
Schreibweise: Für (A,w) ∈ P : A →G w
Automaten und Berechenbarkeit 25<br />
Definition 2.2 (Ableitung) Es seien G = (N,X,S,P) eine CFG und<br />
u,v ∈ (N∪X) ∗ zwei Wörter.<br />
• u ist direkt nach v überführbar (bzw. v ist direkt aus u<br />
ableitbar), in Zeichen u ⊢G v, genau dann, wenn<br />
∃u1 ∈ (N∪X) ∗ ∃u2 ∈ (N∪X) ∗ ∃A ∈ N∃w ∈ (N∪X) ∗ :<br />
u = u1Au2,v = u1wu2 und (A,w) ∈ P<br />
• u ist in n Schritten nach v überführbar (bzw. v ist in n Schritten<br />
aus u ableitbar), in Zeichen u ⊢n G<br />
∃u0,u1,···,un ∈ (N∪X) ∗ :<br />
v, genau dann, wenn<br />
u0 = u,un = v und ui ⊢G ui+1 für alle i ∈ {0,···,n−1}<br />
u0 ⊢G u1 ⊢G u2 ⊢G ··· ⊢G un heißt Ableitungskette oder<br />
Ableitung.<br />
• u ist nach v überführbar, in Zeichen u ⊢∗ G<br />
∃n ≥ 0 : u ⊢n G v.<br />
v, genau dann, wenn
Automaten und Berechenbarkeit 26<br />
Definition 2.3 Es sei G = (N,X,S,P) eine kontextfreie Grammatik.<br />
L(G) := {w : w ∈ X ∗ ∧S ⊢ ∗ G<br />
w} heißt die durch G erzeugte Sprache.<br />
Definition 2.4 (kontextfreie Sprache) L ⊆ X ∗ heißt kontextfrei<br />
genau dann, wenn es eine kontextfreie Grammatik G mit L(G) = L<br />
gibt.<br />
Korollar 2.1 Es gibt kontextfreie Sprachen, die nicht regulär sind.<br />
Beispiel: {a n b n : n ≥ 0}<br />
Definition 2.5 (lineare Grammatik) Eine kontextfreie Grammatik<br />
heißt linear genau dann, wenn in ihren Produktionen auf der rechten<br />
Seite jeweils höchstens ein Nichtterminal auftritt, d.h.<br />
∀(A,w) ∈ P∃w1,w2 ∈ X ∗ ∃B ∈ N : w = w1w2 oder w = w1Bw2.<br />
Die durch lineare kontextfreie Grammatiken erzeugbaren Sprachen<br />
heißen lineare Sprachen.
Automaten und Berechenbarkeit 27<br />
Korollar 2.2 Es gibt lineare Sprachen, die nicht regulär sind.<br />
Beispiel: {a n b n : n ≥ 0}<br />
Definition 2.6 (rechtslineare Grammatik) Eine kontextfreie<br />
Grammatik heißt rechtslinear genau dann, wenn sie nur Produktionen<br />
der Form A → w und A → wB mit w ∈ X ∗ und A,B ∈ N enthält.<br />
Satz 2.3 Eine Sprache L ⊆ X ∗ ist regulär genau dann, wenn L durch<br />
eine rechtslineare Grammatik erzeugt wird, d.h. L rechtslinear ist.
Automaten und Berechenbarkeit 28<br />
Definition 2.7 (Kellerautomat) A = (Z,X,Γ,z0,k0,∆,Zf) heißt<br />
(nichtdeterministischer) Kellerautomat genau dann, wenn gilt:<br />
• Z endliche Zustandsmenge<br />
• X endliches Eingabealphabet<br />
• Γ endliches Alphabet, die Menge der Kellersymbole<br />
• z0 ∈ Z Anfangszustand<br />
• k0 ∈ Γ Kellerstartsymbol<br />
• Zf ⊆ Z Menge der Endzustände<br />
• ∆ ⊆ Z×(X∪{ε})×Γ ×Γ ∗ ×Z
Automaten und Berechenbarkeit 29<br />
(z,a,k,γ,z ′ ) ∈ ∆ besagt, dass der Kellerautomat im Zustand z, bei<br />
Eingabe a und oberstem Kellersymbol k das Symbol k durch die<br />
Folge γ von Kellersymbolen ersetzt, zum nächsten Eingabesymbol<br />
übergeht und in den Zustand z ′ wechselt.<br />
(z,ε,k,γ,z ′ ) ∈ ∆ besagt, dass der Kellerautomat im Zustand z, ohne<br />
Lesen eines Eingabesymbols, das oberste Kellersymbol k durch die<br />
Folge γ von Kellersymbolen ersetzt, in den Zustand z ′ wechselt, aber<br />
noch nicht zum nächsten Eingabesymbol übergeht.<br />
Definition 2.8 (Konfiguration) Eine Konfiguration eines<br />
Kellerautomaten A (bzw. der Gesamtzustand) ist durch ein Tripel<br />
(z,w,γ) gegeben, wobei<br />
• z ∈ Z den aktuellen Zustand angibt, in dem sich A befindet,<br />
• w ∈ X ∗ das noch nicht gelesene Teilwort der Eingabe ist<br />
(Lesekopf bewegt sich nur von links nach rechts),<br />
• γ ∈ Γ ∗ den Kellerinhalt angibt.
Automaten und Berechenbarkeit 30<br />
Definition 2.9 (akzeptierte Sprache)<br />
• Ein Kellerautomat A akzeptiert ein Wort w ∈ X ∗ genau dann,<br />
wenn (z0,w,k0) ⊢ ∗ (zf,ε,γ) mit zf ∈ Zf und γ ∈ Γ ∗ gilt.<br />
• L(A) := {w : w ∈ X ∗ ∧A akzeptiert w}<br />
• Ein Kellerautomat A akzeptiert ein Wort w ∈ X ∗ mit leerem<br />
Keller g. d., w. (z0,w,k0) ⊢ ∗ (z,ε,ε) für irgendein z ∈ Z gilt.<br />
• N(A) := {w : w ∈ X ∗ ∧A akzeptiert w mit leerem Keller}<br />
Definition 2.10 (deterministischer Kellerautomat) Ein<br />
Kellerautomat A = (Z,X,Γ,z0,k0,∆,Zf) heißt deterministisch, falls<br />
1. ∀z ∈ Z∀a ∈ X∪{ε}∀k ∈ Γ :<br />
es gibt höchstens ein Paar (γ,z ′ ) ∈ Γ ∗ ×Z mit (z,a,k,γ,z ′ ) ∈ ∆<br />
2. ∀z ∈ Z∀k ∈ Γ :<br />
∃(γ,z ′ ) ∈ Γ ∗ ×Z : (z,ε,k,γ,z ′ ) ∈ ∆ →<br />
∀a ∈ X ∃(γ,z ′ ) ∈ Γ ∗ ×Z : (z,a,k,γ,z ′ ) ∈ ∆
Automaten und Berechenbarkeit 31<br />
Beispiel: PAL := {ww R : w ∈ {a,b} ∗ } ist durch einen<br />
nichtdeterministischen Kellerautomaten akzeptierbar.<br />
Lemma 2.4 Zu jedem Kellerautomaten A = (Z,X,Γ,z0,k0,∆,Zf) gibt<br />
es einen Kellerautomaten Aε = (Z ′ ,X,Γ ′ ,z ′ 0 ,k′ 0 ,∆′ ,∅) mit<br />
L(A) = N(Aε).<br />
Lemma 2.5 Die Umkehrung gilt auch, d.h. zu jedem Kellerautomaten<br />
Aε = (Z,X,Γ,z0,k0,∆,∅) gibt es einen Kellerautomaten<br />
A = (Z ′ ,X,Γ ′ ,z ′ 0 ,k′ 0 ,∆′ ,Z ′ f ) mit N(Aε) = L(A).<br />
Satz 2.6 Zu jeder kontextfreien Grammatik G gibt es einen<br />
Kellerautomaten A mit L(G) = N(A) und umgekehrt.<br />
Lemma 2.7 Zu jeder kontextfreien Grammatik G = (N,X,S,P) gibt es<br />
einen Kellerautomaten A = (Z,X,Γ,z0,k0,∆,∅) mit L(G) = N(A).
Automaten und Berechenbarkeit 32<br />
Unter einer Linksableitung verstehen wir eine Folge von<br />
Ableitungsschritten, bei der stets das am weitesten limks stehende<br />
Nichtterminalsymbol durch Anwendung einer Produktionsregel ersetzt<br />
wird.<br />
Hilfssatz 2.7.1<br />
Ein Wort w ∈ X ∗ ist genau dann in G ableitbar, wenn es eine<br />
Linksableitung δ → ∗ G<br />
Hilfssatz 2.7.2<br />
w gibt.<br />
Es seien u ∈ X ∗ und α ∈ {ε}∪N·(N∪X) ∗ .<br />
Es gibt genau dann eine Linksableitung S ⊢∗ G<br />
(z,u,S) ⊢∗ A (z,ε,α)<br />
uα, wenn
Automaten und Berechenbarkeit 33<br />
Lemma 2.8 Zu jedem Kellerautomaten A = (Z,X,Γ,z0,k0,∆,∅) gibt<br />
es eine kontextfreie Grammatik G = (N,X,S,P) mit N(A) = L(G).<br />
Definition 2.11 Ist t ein Ableitungsbaum, so bezeichnen wir mit<br />
WORT(t) die Beschriftung der Blätter von t, gelesen von links nach<br />
rechts.<br />
Lemma 2.9 (Pumpinglemma) Es sei L ⊆ X ∗ eine kontextfreie<br />
Sprache. Dann gibt es eine (von L abhängige) Konstante N ∈ N, so<br />
dass für alle Wörter w ∈ L mit |w| > N Wörter u,v,w,x,y ∈ X ∗<br />
existieren mit<br />
• w = u·v·w·x·y<br />
• |v·x| = 0<br />
• |v·w·x| ≤ N<br />
• u·v i ·w·x i ·y ∈ L für alle i ∈ N.<br />
Korollar 2.10 L = {a n b n c n : n > 0} ist nicht kontextfrei.
Automaten und Berechenbarkeit 34<br />
Definition 2.12 Eine kontextfreie Grammatik G = (N,X,S,P) heißt<br />
Chomsky-Normalform-Grammatik (CNF), falls jede Produktion in P<br />
die Form<br />
A → BC mit A,B,C ∈ N oder A → a mit A ∈ N,a ∈ X hat.<br />
(evtl. noch S → ε, wenn S nicht auf der rechten Seite einer Produktion<br />
auftritt)<br />
Bemerkungen:<br />
Gegeben sei eine kontextfreie Grammatik G in Chomsky-Normalform.<br />
• Ist w ∈ L(G), so besteht jede Ableitung von w in G aus 2|w|−1<br />
vielen Schritten.<br />
• Jeder Ableitungsbaum (für G) ist ein Binärbaum.
Automaten und Berechenbarkeit 35<br />
Definition 2.13 Ein Nichtterminal A einer kontextfreien Grammatik<br />
G = (N,X,S,P) heißt<br />
• erreichbar, falls es α,β ∈ (N∪X) ∗ gibt mit S ⊢ ∗ G αAβ.<br />
• terminierend, falls es w ∈ X ∗ gibt mit A ⊢ ∗ G w.<br />
Eine kontextfreie Grammatik G = (N,X,S,P) heißt reduziert, falls N<br />
nur erreichbare und terminierende Symbole enthält.<br />
Lemma 2.11 Zu jeder kontextfreien Sprache L ⊆ X ∗ gibt es eine<br />
reduzierte kontextfreie Grammatik Gred mit L(Gred) = L.<br />
Definition 2.14 Eine kontextfreie Grammatik G = (N,X,S,P) heißt<br />
ε-frei, falls es in G keine Produktion der Form A → ε gibt.<br />
Lemma 2.12 Zu jeder kontextfreien Sprache L ⊆ X ∗ gibt es eine<br />
ε-freie kontextfreie Grammatik Gε mit L(Gε) = L\{ε}.<br />
Satz 2.13 (CHOMSKY-NORMALFORM) Zu jeder kontextfreien<br />
Sprache L ⊆ X ∗ gibt es eine Grammatik G in CNF mit L(G) = L.
Automaten und Berechenbarkeit 36<br />
Hilfssatz 2.13.1<br />
Zu jeder kontextfreien Grammatik G = (N,X,S,P) gibt es eine<br />
kontextfreie Grammatik G ′ = (N ′ ,X,S,P ′ ), in der keine Produktion<br />
der Form A → B mit A,B ∈ N ′ vorkommt, so dass L(G ′ ) = L(G) gilt.<br />
Lemma 2.14 Die Klasse der kontextfreien Sprachen ist nicht<br />
abgeschlossen gegenüber dem Durchschnitt.<br />
Lemma 2.15 Die Klasse der kontextfreien Sprachen ist<br />
abgeschlossen gegenüber der Vereinigung.<br />
Lemma 2.16 Die Klasse der kontextfreien Sprachen ist nicht<br />
abgeschlossen gegenüber der Komplementbildung.<br />
Lemma 2.17 Die Klasse der deterministisch kontextfreien Sprachen<br />
ist abgeschlossen gegenüber der Komplementbildung.<br />
Korollar 2.18 Es gibt kontextfreie Sprachen, die nicht deterministisch<br />
kontextfrei sind.
Automaten und Berechenbarkeit 37<br />
Satz 2.19 Es seien L ⊆ X ∗ eine kontextfreien Sprache und R ⊆ X ∗<br />
eine reguläre Sprache. Dann ist L∩R eine kontextfreie Sprache.<br />
Korollar 2.20 L = {a n b m c p : m = n oder m = p} ist kontextfrei,<br />
aber nicht deterministisch kontextfrei.<br />
Wortproblem für eine Sprache L ⊆ X ∗ :<br />
Entscheide, ob ein gegebenes Wort w ∈ X ∗ ein Wort der Sprache L<br />
ist. D.h. w ∈ L?
Automaten und Berechenbarkeit 38<br />
Der CYK-Algorithmus (Cocke, Younger, Kasami)<br />
Gegeben:<br />
G = (N,X,S,P) CNF-Grammatik<br />
w = a1a2···an<br />
• wij := wi···wj (i ≤ j)<br />
• Nij := {A ∈ N : A ⊢ ∗ G wij} (i ≤ j)<br />
Es gilt:<br />
(0) S ∈ N1n ⇔ w ∈ L(G)<br />
(1) A ∈ Nii ⇔ (A → ai) ∈ P<br />
(2) A ∈ Nij für<br />
<br />
i < j ⇔<br />
<br />
∃(A → BC) ∈ P ∃k : i ≤ k < j<br />
: B ∈ Nik,C ∈ Nk+1j
Automaten und Berechenbarkeit 39<br />
Satz 2.21 (CYK-Algorithmus) Bei einer gegebenen kontextfreien<br />
Grammatik G in CNF bestimmt der CYK-Algorithmus in der Zeit<br />
O(n 3 ), ob ein gegebenes Wort w mit |w| = n in L(G) ist.