23.07.2013 Aufrufe

Folien

Folien

Folien

MEHR ANZEIGEN
WENIGER ANZEIGEN

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.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!