31.08.2013 Aufrufe

Skript zur Vorlesung - Institut für Theoretische Informatik an der ...

Skript zur Vorlesung - Institut für Theoretische Informatik an der ...

Skript zur Vorlesung - Institut für Theoretische Informatik an der ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Skript</strong> <strong>zur</strong> <strong>Vorlesung</strong><br />

Formale Sprachen<br />

Wintersemester 2007/2008<br />

Prof. Dr. Heribert Vollmer<br />

vollmer@thi.uni-h<strong>an</strong>nover.de<br />

<strong>Institut</strong> <strong>für</strong> <strong>Theoretische</strong> <strong>Informatik</strong><br />

Universität H<strong>an</strong>nover


Inhaltsverzeichnis i<br />

Inhaltsverzeichnis<br />

1 Reguläre Sprachen 1<br />

1.1 Endliche Automaten: Definitionen und Beispiele . . . . . . . . . . . . . 1<br />

1.2 Der Satz von Myhill-Nerode . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

1.3 Minimalautomaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />

1.4 Automaten und Halbgruppen . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

1.5 Endliche Automaten mit Ausgabe . . . . . . . . . . . . . . . . . . . . . 11<br />

1.6 Zwei-Weg-Automaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />

2 Kontextfreie Sprachen 21<br />

2.1 Chomsky-Normalform und CYK-Algorithmus . . . . . . . . . . . . . . . 23<br />

2.2 Greibach-Normalform und Kellerautomaten . . . . . . . . . . . . . . . . 27<br />

2.3 Deterministisch-kontextfreie Sprachen . . . . . . . . . . . . . . . . . . . 34<br />

2.4 Entscheidbarkeitsfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />

3 Kontextsensitive Sprachen und Typ-0-Sprachen 46<br />

3.1 Maschinenmodelle <strong>für</strong> Typ-0- und Typ-1-Sprachen . . . . . . . . . . . . 47<br />

3.2 Entscheidbarkeit und Abschlußeigenschaften . . . . . . . . . . . . . . . . 49


1 Reguläre Sprachen 1<br />

1 Reguläre Sprachen<br />

1.1 Endliche Automaten: Definitionen und Beispiele<br />

Definition: Ein Alphabet ist eine endliche Menge von Symbolen, Buchstaben o<strong>der</strong><br />

Zeichen. Bezeichnung meist: Σ, Γ, ∆, . . ., Bezeichnung <strong>für</strong> Zeichen: a, b, c . . ..<br />

Ein Wort (o<strong>der</strong> eine Zeichenkette) über dem Alphabet Σ ist eine endliche Folge<br />

von Symbolen aus Σ. Bezeichnung meist mit u, v, w, x, y, z. Schreibweise: w =<br />

a1a2a3 . . . ak, wobei a1, . . . , ak in dieser Reihenfolge die Folgenwerte sind.<br />

Die Länge |w| eines Wortes w ist die Anzahl <strong>der</strong> Elemente in <strong>der</strong> Folge w.<br />

Ist Σ ein Alphabet, so ist Σ ∗ die Menge aller Wörter über Σ.<br />

Ist w ∈ Σ ∗ , a ∈ Σ, so ist |w| a die Anzahl <strong>der</strong> Vorkommen von a in w.<br />

Das leere Wort wird mit ε bezeichnet und es gilt |ε| = 0.<br />

Sind u, v ∈ Σ ∗ , so ist u ◦ v o<strong>der</strong> uv die Konkatenation (das Hinterein<strong>an</strong><strong>der</strong>schreiben)<br />

<strong>der</strong> Wörter u und v.<br />

Definition: Ein (deterministischer) endlicher Automat (kurz: DEA) ist ein 5-Tupel<br />

wobei<br />

M = (Z, Σ, δ, z0, E),<br />

– Z eine endliche Menge von Zuständen,<br />

– Σ ein Alphabet,<br />

– δ : Z × Σ → Z die Überführungsfunktion,<br />

– z0 ∈ Z <strong>der</strong> Startzust<strong>an</strong>d und<br />

– E ⊆ Z die Menge <strong>der</strong> Endzustände ist.<br />

Definiere ˆ δ : Z × Σ ∗ → Z, die erweiterte Überführungsfunktion, induktiv durch<br />

ˆδ(z, ε) = z<br />

ˆδ(z, ax) = ˆ δ(δ(z, a), x)<br />

<strong>für</strong> alle z ∈ Z, a ∈ Σ und x ∈ Σ ∗ . Schreibweise: zx o<strong>der</strong> z · x <strong>für</strong> ˆ δ(z, x).<br />

Die von M akzeptierte Sprache ist L(M) = {x ∈ Σ ∗ | ˆ δ(z0, x) ∈ E}.<br />

Definition: Ein nichtdeterministischer Automat (kurz: NEA) ist ein 5-Tupel<br />

wobei<br />

M = (Z, Σ, δ, z0, E),


1.1 Endliche Automaten: Definitionen und Beispiele 2<br />

– Z, Σ, z0 und E wie bei DEAen definiert sind und<br />

– δ : Z × Σ → P(Z) die Überführungsfunktion ist.<br />

Definiere ˆ δ : P(Z) × Σ ∗ → P(Z) durch<br />

<strong>für</strong> alle Y ⊆ Z, a ∈ Σ und x ∈ Σ ∗ .<br />

ˆδ(Y, ε) = Y<br />

ˆδ(Y, ax) = <br />

z∈Y<br />

ˆδ(δ(z, a), x)<br />

Die von M akzeptierte Sprache ist L(M) = {x ∈ Σ ∗ | ˆ δ({z0}, x) ∩ E = ∅}.<br />

Nichtdeterministische und deterministische endliche Automaten sind gleich mächtig:<br />

Je<strong>der</strong> DEA lässt sich als NEA schreiben. Für jeden NEA M = (Z, Σ, δ, z0, E) gibt es<br />

einen DEA M ′ mit L(M) = L(M ′ ), nämlich<br />

mit δ ′ (Y, a) = <br />

z∈Y δ(z, a).<br />

M ′ = (P(Z), Σ, δ ′ , {z0}, {Y ⊆ Z | Y ∩ E = ∅})<br />

Die Syntax von regulären Ausdrücken über Σ ist wie folgt definiert:<br />

– ∅ ist ein regulärer Ausdruck.<br />

– Für a ∈ Σ ist a ein regulärer Ausdruck.<br />

– Sind α und β reguläre Ausdrücke, so sind auch αβ, (α + β) und (α) ∗ reguläre<br />

Ausdrücke.<br />

Die von einem regulären Ausdruck α erk<strong>an</strong>nte Sprache L(α) ist wie folgt definiert:<br />

– L(∅) = ∅.<br />

– L(a) = {a} <strong>für</strong> alle a ∈ Σ.<br />

– L(α + β) = L(α) ∪ L(β) <strong>für</strong> reguläre Ausdrücke α, β.<br />

– L(αβ) = L(α) ◦ L(β) <strong>für</strong> reguläre Ausdrücke α, β, wobei<br />

L0 ◦ L1 = {w ∈ Σ ∗ | es gibt ein u ∈ L0 und ein v ∈ L1 mit w = uv}.<br />

– L(α ∗ ) = L(α) ∗ <strong>für</strong> einen regulären Ausdruck α, wobei<br />

L ∗ = <br />

L k mit L 0 = {ε} und L k+1 = L k ◦ L <strong>für</strong> k ≥ 0.<br />

k≥0


1.2 Der Satz von Myhill-Nerode 3<br />

M<strong>an</strong> betrachtet oft auch L + = <br />

k≥1 Lk .<br />

Satz: Sei L eine Sprache. Die folgenden Aussagen sind äquivalent:<br />

– L ist regulär, d. h. es gibt eine Typ-3-Grammatik, die L erzeugt.<br />

– Es gibt einen DEA M mit L = L(M).<br />

– Es gibt einen NEA M mit L = L(M).<br />

– Es gibt einen regulären Ausdruck α mit L = L(α).<br />

Satz (Pumping-Lemma <strong>für</strong> reguläre Sprachen): Sei L regulär. D<strong>an</strong>n gibt es eine Zahl<br />

n, sodass sich alle Wörter x ∈ L mit |x| ≥ n zerlegen lassen in x = uvw, sodass<br />

folgende Eigenschaften gelten:<br />

(i) |v| ≥ 1<br />

(ii) |uv| ≤ n<br />

(iii) Für alle i ∈ N gilt: uv i w ∈ L.<br />

Beispiel: Sei Σ = {a, b}.<br />

(i) (aa + ab + ba + bb) ∗ ist die Sprache aller Wörter mit gera<strong>der</strong> Länge.<br />

(ii) (a ∗ ba ∗ b) ∗ a ∗ ist die Sprache aller Wörter mit einer geraden Anzahl von b’s.<br />

(iii) L = {a n b n | n ≥ 0} ist nicht regulär.<br />

Angenommen L wäre regulär: Wähle n wie im Pumping-Lemma und betrachte<br />

x = a n b n . Es gilt |x| ≥ n. Wähle u, v und w mit |v| ≥ 1, |uv| ≤ n. D<strong>an</strong>n ist<br />

uv 2 w /∈ L und das ist ein Wi<strong>der</strong>spruch <strong>zur</strong> Annahme, dass L regulär ist.<br />

(iv) L = {w | |w| a = |w| b } ist nicht regulär.<br />

Angenommen L wäre regulär: a ∗ b ∗ ist regulär, also auch ist L ′ = L ∩ L(a ∗ b ∗ ) =<br />

{a n b n | n ≥ 0} regulär. L ′ ist jedoch nach (iii) nicht regulär.<br />

1.2 Der Satz von Myhill-Nerode<br />

Definition: Eine Relation ∼ ⊆ M × M auf einer Menge M heißt Äquivalenzrelation,<br />

falls gilt:<br />

(i) ∼ ist reflexiv, d. h. <strong>für</strong> alle x ∈ M gilt x ∼ x,<br />

(ii) ∼ ist symmetrisch, d. h. es gilt x ∼ y ⇒ y ∼ x <strong>für</strong> alle x, y ∈ M,<br />

(iii) ∼ ist tr<strong>an</strong>sitiv, d. h. es gilt x ∼ y und y ∼ z ⇒ x ∼ z <strong>für</strong> alle x, y, z ∈ M.


1.2 Der Satz von Myhill-Nerode 4<br />

[x]∼ = {y ∈ M | x ∼ y} ist die Äquivalenzklasse von x ∈ M. M/∼ ist die Menge aller<br />

Äquivalenzklassen von ∼. Der Index von ∼ ist die Kardinalität von M/∼.<br />

∼ heißt rechtsinvari<strong>an</strong>t, falls aus x ∼ y folgt, dass <strong>für</strong> alle u ∈ Σ ∗ gilt: xu ∼ yu.<br />

Beispiel: Σ = {0, 1}. Es sei x ∼ y gdw. |x| ≡ |y| (mod 2) gilt. Der Index von ∼ ist 2<br />

und ∼ ist rechtsinvari<strong>an</strong>t.<br />

Definition: Sei L ⊆ Σ ∗ . Die natürliche Äquivalenzrelation von L ist definiert durch<br />

x ∼L y gdw. <strong>für</strong> alle u ∈ Σ ∗ gilt: xu ∈ L ⇔ yu ∈ L.<br />

Satz: Sei L ⊆ Σ ∗ . Die folgenden Aussagen sind äquivalent:<br />

(i) L ist regulär.<br />

(ii) Es gibt eine rechtsinvari<strong>an</strong>te Äquivalenzrelation ≈ auf Σ ∗ mit endlichem Index,<br />

sodass L als Vereinigung von Äquivalenzklassen von ≈ geschrieben werden k<strong>an</strong>n.<br />

(iii) ∼L hat endlichen Index.<br />

Beweis: (i) ⇒ (ii): Sei L regulär. Sei L = L(M) <strong>für</strong> den DEA M = (Z, Σ, δ, z0, E).<br />

Wir nehmen o. B. d. A. <strong>an</strong>, dass alle Zustände aus Z vom Startzust<strong>an</strong>d z0 aus erreichbar<br />

sind. Definiere eine Relation ≈ über Σ ∗ wie folgt:<br />

x ≈ y ⇔ z0x = z0y,<br />

d. h. x ≈ y ⇔ ˆ δ(z0, x) = ˆ δ(z0, y) <strong>für</strong> x, y ∈ Σ ∗ . Wir weisen nach, dass ≈ die gewünschten<br />

Eigenschaften hat:<br />

– ≈ ist reflexiv, symmetrisch und tr<strong>an</strong>sitiv. Die Tr<strong>an</strong>sitivität gilt, da <strong>für</strong> x ≈ y und<br />

y ≈ u, u ∈ Σ ∗ beliebig ⇒ z0x = z0y und z0y = z0u ⇒ z0x = z0u, also x ≈ u.<br />

– ≈ ist rechtsinvari<strong>an</strong>t: Sei x ≈ y, also z0x = z0y. Sei u ∈ Σ ∗ beliebig. D<strong>an</strong>n ist<br />

z0(xu) = (z0x)u = (z0y)u = z0(yu), also xu ≈ yu.<br />

– Sei x ∈ Σ ∗ . D<strong>an</strong>n ist [x]≈ = {y ∈ Σ ∗ | z0x = z0y}. Für z ∈ Z definiere Lz =<br />

{x ∈ Σ∗ | z0x = z}. D<strong>an</strong>n sind die Mengen Lz Äquivalenzklassen von ≈ und<br />

<strong>für</strong> jede Äquivalenzklasse [x]≈ gibt es ein z mit [x]≈ = Lz. Die Anzahl <strong>der</strong><br />

Äquivalenzklassen von ≈ ist höchstens |Z|, also endlich.<br />

– L k<strong>an</strong>n geschrieben werden als L = <br />

z∈E Lz.<br />

Schreibweise <strong>für</strong> die oben konstruierte Äquivalenzrelation: ≈M .<br />

(ii) ⇒ (iii): Sei ≈ eine Äquivalenzrelation, die (ii) erfüllt. Wir zeigen, dass ≈ ist eine<br />

Verfeinerung von ∼L ist, d. h. <strong>für</strong> jedes Wort x ∈ Σ ∗ gilt:<br />

[x]≈ ⊆ [x]∼L.


1.2 Der Satz von Myhill-Nerode 5<br />

D<strong>an</strong>n ist <strong>der</strong> Index von ∼L nicht größer als <strong>der</strong> Index von ≈, also endlich. Betrachte<br />

ein [x]≈. Sei y ∈ [x]≈, also x ≈ y. D<strong>an</strong>n gilt <strong>für</strong> alle u ∈ Σ ∗ , dass xu ≈ yu, also xu ∈ L<br />

gdw. yu ∈ L. Also ist x ∼L y und daher y ∈ [x]∼L. Demnach ist [x]≈ ⊆ [x]∼L.<br />

(iii) ⇒ (i): Wir zeigen zunächst, dass ∼L rechtsinvari<strong>an</strong>t ist.<br />

Sei x ∼L y und v ∈ Σ ∗ . Zu zeigen ist xv ∼L yv, das heißt, dass <strong>für</strong> alle w ∈ Σ ∗ gilt:<br />

xvw ∈ L ⇔ yvw ∈ L. Da jedoch x ∼L y, gilt <strong>für</strong> alle u ∈ Σ ∗ , dass xu ∈ L ⇔ yu ∈ L.<br />

Obige Äquivalenz folgt direkt mit u = vw.<br />

Wir definieren nun einen DEA Mmin = (Zmin, Σ, δmin, z0min, Emin) wie folgt:<br />

– Zmin = Σ ∗ / ∼L, die Menge <strong>der</strong> Äquivalenzklassen von ∼L.<br />

– δmin([x]∼L , a) = [xa]∼L <strong>für</strong> alle [x]∼L ∈ Zmin, a ∈ Σ.<br />

δmin ist wohldefiniert, da ∼L rechtsinvari<strong>an</strong>t ist: gilt y ∈ [x]∼L , so ist xu ∼L yu<br />

<strong>für</strong> alle u ∈ Σ ∗ , also insbeson<strong>der</strong>e xa ∼L ya und [xa]∼L = [ya]∼L <strong>für</strong> a ∈ Σ.<br />

– z0min = [ε]∼L .<br />

– Emin = {[x]∼L | x ∈ L}.<br />

Mmin akzeptiert L, denn:<br />

x ∈ L(Mmin) ⇔ z0minx ∈ Emin ⇔ [ε]∼L · x ∈ Emin ⇔ [x]∼L<br />

<br />

=[εx]=[x]<br />

∈ Emin ⇔ x ∈ L<br />

Korollar (Satz von Myhill-Nerode, 1957/58): Eine Sprache L ⊆ Σ ∗ ist regulär gdw.<br />

∼L endlichen Index hat.<br />

Beispiel: L = {a n b n | n ≥ 0}<br />

Für i = j ist a i ≁L a j , denn a i b i ∈ L, aber a j b i /∈ L. Somit existieren unendlich viele<br />

verschiedene Äquivalenzklassen [ε], [a], [aa], [aaa], . . . und L ist nicht regulär.<br />

Beispiel: L = {x ∈ {0, 1} ∗ | x endet mit 00}<br />

– [ε]∼L = {x | x endet nicht mit 0}<br />

Sei x = y1 <strong>für</strong> ein y ∈ {0, 1} ∗ . D<strong>an</strong>n gilt x ∼L ε, denn <strong>für</strong> w ∈ Σ ∗ gilt:<br />

xw ∈ L ⇔ w = w ′ 00 <strong>für</strong> ein geeignetes w ′ ⇔ ε · w = w ∈ L.<br />

Sei x = y0 <strong>für</strong> ein y ∈ {0, 1} ∗ . D<strong>an</strong>n gilt x ≁L ε, denn x0 ∈ L und ε · 0 = 0 /∈ L.<br />

– [0]∼L = {x | x endet mit 0, aber nicht mit 00}<br />

– [00]∼L = {x | x endet mit 00}


1.3 Minimalautomaten 6<br />

Da [ε]∼L ∪ [0]∼L ∪ [00]∼L = {0, 1}∗ , sind dies alle Äquivalenzklassen. Damit ist <strong>der</strong><br />

Index von ∼L gleich 3 und L regulär. Der (minimaler) endlicher Automat Mmin <strong>für</strong> L<br />

ist:<br />

1<br />

0 0<br />

[ε] [0]<br />

1<br />

1<br />

δ Eingabezeichen<br />

0 1<br />

Zust<strong>an</strong>d<br />

[ε]∼L<br />

[0]∼L<br />

[00]∼L<br />

[0]∼L<br />

[00]∼L<br />

[000]∼L<br />

[ε1]∼L = [1]∼L = [ε]∼L<br />

[01]∼L = [ε]∼L<br />

= [00]∼L [001]∼L = [ε]∼L<br />

1.3 Minimalautomaten<br />

Satz: Sei L regulär. D<strong>an</strong>n gibt es einen bis auf Isomorphie eindeutigen deterministischen<br />

Minimalautomaten (d. h. DEA mit minimaler Anzahl von Zuständen), <strong>der</strong> L<br />

akzeptiert.<br />

Beweis: Wir zeigen, dass <strong>der</strong> Automat Mmin aus dem letzten Beweis <strong>der</strong> eindeutige<br />

Minimalautomat ist.<br />

(i) Mmin hat minimale Zust<strong>an</strong>ds<strong>an</strong>zahl.<br />

Im Beweis zeigte sich folgendes: Aus einem beliebigen DEA M = (Z, Σ, δ, z0, E)<br />

<strong>für</strong> L konstruieren wir ≈M mit Index ≤ |Z|. Außerdem gilt:<br />

[00]<br />

|Zmin| = Index von ∼L ≤ Index von ≈M ≤ |Z|.<br />

Mmin hat also nicht mehr Zustände als M.<br />

(ii) Mmin ist eindeutig. Wir zeigen:<br />

Ist M = (Z, Σ, δ, z0, E) ein DEA mit L(M) = L(Mmin) und |Z| = |Zmin|, so sind<br />

M und Mmin isomorph.<br />

Ist z ∈ Z, d<strong>an</strong>n wähle x ∈ Σ ∗ so, dass z0 · x = z (x muss existieren, da M wegen<br />

<strong>der</strong> Minimalität keine nicht erreichbaren Zustände besitzt). z entspricht in Mmin<br />

dem Zust<strong>an</strong>d zmin = z0min · x = [ε]∼L x.<br />

0


1.3 Minimalautomaten 7<br />

Der Isomorphismus z ↦→ zmin ist wohldefiniert, denn ist y = x mit z0x = z0y = z,<br />

d<strong>an</strong>n ist x ≈M y, also auch x ∼L y und damit<br />

z0min · x = [ε]∼L · x = [x]∼L = [y]∼L = z0min · y.<br />

M<strong>an</strong> zeigt leicht, dass die definierte Abbildung bijektiv ist.<br />

Algorithmus <strong>zur</strong> Bestimmung des Minimalautomaten:<br />

Gegeben: DEA M = (Z, Σ, δ, z0, E), o. B. d. A. seien alle Zustände in M vom Startzust<strong>an</strong>d<br />

aus erreichbar.<br />

(i) Stelle Tabelle aller Paare {z, z ′ } mit z = z ′ und z, z ′ ∈ Z auf.<br />

(ii) Markiere alle Paare {z, z ′ } mit z ∈ E und z ′ /∈ E.<br />

(iii) Wie<strong>der</strong>hole folgenden Schritt, sol<strong>an</strong>ge sich Än<strong>der</strong>ungen in <strong>der</strong> Tabelle ergeben:<br />

(iv) Falls es ein unmarkiertes Paar {z, z ′ } und ein a ∈ Σ gibt, sodass {δ(z, a), δ(z ′ , a)}<br />

markiert ist, so markiere {z, z ′ }.<br />

(v) Verschmelze unmarkierte Paare zu jeweils einem Zust<strong>an</strong>d.<br />

Der Algorithmus hat eine Laufzeit von O(|Z| 4 · |Σ|), also polynomielle Laufzeit in <strong>der</strong><br />

Länge <strong>der</strong> Kodierung des Eingabeautomatens. Durch eine geschicktere Implementierung<br />

mit priorisierten Warteschl<strong>an</strong>gen erreicht m<strong>an</strong> eine Laufzeit von O(|Z| 2 · |Σ|).<br />

Beispiel: Gegeben sei folgen<strong>der</strong> deterministischer Automat:<br />

1 1<br />

Dies führt auf folgende Tabelle:<br />

0 0<br />

z0 z1 z4<br />

z2<br />

0<br />

1<br />

1<br />

z3<br />

0<br />

0, 1


1.3 Minimalautomaten 8<br />

Es ergibt sich folgen<strong>der</strong> Minimalautomat:<br />

z0, z2<br />

z1<br />

z2<br />

z3<br />

z4<br />

0<br />

z0<br />

z1<br />

z1, z3<br />

1<br />

1 0, 1<br />

Korollar: Das Äquivalenzproblem <strong>für</strong> reguläre Sprachen, also das Problem<br />

ist in Polynomialzeit entscheidbar.<br />

Gegeben: DEAs M1, M2<br />

Frage: Ist L(M1) = L(M2)?<br />

Beweis: Folgen<strong>der</strong> Algorithmus leistet das Gewünschte:<br />

(i) M1min := Minimalautomat zu M1.<br />

(ii) M2min := Minimalautomat zu M2.<br />

(iii) Ausgabe ” ja“ gdw. M1min isomorph zu M2min.<br />

Im Falle von nichtdeterministischen endlichen Automaten gilt Folgendes:<br />

– Die Eindeutigkeit von minimalen nichtdeterministischen Automaten ist nicht gegeben.<br />

– Das Äquivalenzproblem <strong>für</strong> NEAs ist PSPACE-vollständig.<br />

– Das folgende Problem ist ebenfalls PSPACE-vollständig:<br />

Gegeben: NEA M, k ∈ N<br />

Frage: Gibt es einen NEA Mmin mit höchstens k Zuständen, sodass<br />

L(Mmin) = L(M)?<br />

z2<br />

0<br />

z3<br />

z4


1.4 Automaten und Halbgruppen 9<br />

1.4 Automaten und Halbgruppen<br />

Beobachtung: Zu jedem Alphabet Σ bildet Σ ∗ mit <strong>der</strong> Verknüpfung Konkatenation<br />

einen Monoid (d. h. das Assoziativgesetz gilt und ein Einselement existiert), und Σ +<br />

mit <strong>der</strong> Konkatenation eine Halbgruppe.<br />

Definition: Sei L ⊆ Σ ∗ . Definiere x ≡L y gdw. <strong>für</strong> alle u, v ∈ Σ ∗ gilt:<br />

uxv ∈ L ⇔ uyv ∈ L<br />

Beobachtung: ≡L ist eine Kongruenz auf Σ ∗ (d. h. x ≡L y ⇒ ∀u, v ∈ Σ ∗ : uxv ≡L<br />

uyv).<br />

Definition: Sei L ⊆ Σ ∗ .<br />

– ≡L heißt syntaktische Kongruenz von L.<br />

– Mon(L) = (Σ ∗ / ≡L, ◦) heißt syntaktisches Monoid von L mit <strong>der</strong> Operation<br />

[x]≡L ◦ [y]≡L = [x · y]≡L. Der zugehörige natürliche Homomorphismus<br />

heißt syntaktischer Homomorphismus.<br />

ηL : Σ ∗ → Mon(L), x ↦→ [x]≡L<br />

Beispiel: L = {w ∈ {0, 1} ∗ | |w| ≡ 0 (mod 2)}<br />

Es gilt: x ≡L y ⇔ |x| ≡ |y| (mod 2). Es gibt also zwei Äquivalenzklassen: [ε] und [0].<br />

◦ [ε] [0]<br />

[ε] [ε] [0]<br />

[0] [0] [ε]<br />

Mon(L) ist isomorph <strong>zur</strong> Gruppe <strong>der</strong> Ordnung 2.<br />

<br />

[ε], falls |x| gerade ist,<br />

ηL(x) =<br />

[0], sonst.<br />

Beispiel: L = {w ∈ {0, 1} ∗ | |w| 1 ≡ 0 (mod 2)}<br />

Es gilt: x ≡L y ⇔ |x| 1 ≡ |y| 1 (mod 2). Es gibt also die Äquivalenzklassen [ε] und [1].<br />

◦ [ε] [1]<br />

[ε] [ε] [1]<br />

[1] [1] [ε]<br />

Mon(L) ist erneut isomorph <strong>zur</strong> Gruppe <strong>der</strong> Ordnung 2.<br />

<br />

[ε], falls |x| 1 gerade ist,<br />

ηL(x) =<br />

[0], sonst.


1.4 Automaten und Halbgruppen 10<br />

Satz: Sei L ⊆ Σ ∗ . L ist regulär gdw. Mon(L) ist endlich.<br />

Beweis: ” ⇒“: Sei L = L(M) und M = (Z, Σ, δ, z0, E). Definiere die Äquivalenzrelation<br />

∼= auf Σ ∗ wie folgt:<br />

x ∼ = y ⇔ <strong>für</strong> alle z ∈ Z gilt: zx = zy<br />

Die Anzahl <strong>der</strong> Äquivalenzklassen von ∼ = ist ≤ |Z| |Z| (jede Äquivalenzklasse ist festgelegt<br />

durch eine Abbildung Z → Z). Wir zeigen: ∼ = ist eine Verfeinerung von ≡L, d. h.<br />

<strong>für</strong> jedes x ∈ Σ ∗ gilt: [x]∼ = ⊆ [y]≡L . D<strong>an</strong>n ist <strong>der</strong> Index von ≡L nicht größer als <strong>der</strong><br />

von ∼ =, also ist Mon(L) endlich.<br />

Sei x ∼ = y und seien u, v ∈ Σ ∗ . Ist uxv ∈ L, d<strong>an</strong>n gilt<br />

z0 · uxv = ((z0u)x)v = ((z0u)y)v = z0(uyv) ∈ E,<br />

also uyv ∈ L. Genauso k<strong>an</strong>n m<strong>an</strong> zeigen: uyv ∈ L ⇒ uxv ∈ L. Also: x ≡L y.<br />

” ⇐“: Sei nun Mon(L) endlich. Definiere DEA<br />

M = (Σ ∗ / ≡L, Σ, δ, [ε]≡L, {[w]≡L | w ∈ L}),<br />

wobei δ([w]≡L , a) = [wa]≡L . Es gilt also:<br />

Also ist L regulär.<br />

w ∈ L(M) ⇔ [ε]≡L · w ∈ E = [w]≡L ∈ E ⇔ w ∈ L.<br />

Definition: Sei M = (Z, Σ, δ, z0, E) ein DEA. Für w ∈ Σ ∗ definiere fw : Z → Z durch<br />

fw(z) = z · w.<br />

Die Menge aller solcher Abbildungen {fw | w ∈ Σ ∗ } bildet zusammen mit <strong>der</strong> Verknüpfung<br />

fx · fy = fxy ein Monoid, das so gen<strong>an</strong>nnte Tr<strong>an</strong>sitionsmonoid von M, und wird<br />

bezeichnet mit Mon(M).<br />

Satz: Ist M <strong>der</strong> Minimalautomat <strong>für</strong> L, so sind Mon(M) und Mon(L) isomorph.<br />

Beweis: Sei M = (Z, Σ, δ, z0, E) ein Minimalautomat <strong>für</strong> L. Es reicht zu zeigen: fx =<br />

fy gdw. x ≡L y. D<strong>an</strong>n sind Mon(M) und Mon(L) isomorph vermöge des folgenden<br />

Isomorphismus:<br />

π : Mon(M) → Mon(L), π(fx) = [x]≡L .<br />

” ⇒“: Sei fx = fy. Seien u und v beliebig. D<strong>an</strong>n gilt:<br />

uxv ∈ L ⇔ z0 · uxv ∈ E<br />

⇔ ((z0u)x)v ∈ E<br />

⇔ ((z0u)y)v ∈ E<br />

⇔ z0(uyv) ∈ E<br />

⇔ uyv ∈ L,


1.5 Endliche Automaten mit Ausgabe 11<br />

also x ≡L y. (M<strong>an</strong> beachte, dass hier die Minimalität von M nicht benötigt wird.)<br />

” ⇐“: Sei x ≡L y. Wähle z ∈ Z. Sei u ∈ Σ ∗ so, dass z0 · u = z. Existiert kein solches<br />

u, so ist z nicht erreichbar, also M nicht minimal. Setze z1 = fx(z) = zx = z0ux und<br />

z2 = fy(z) = zy = z0uy.<br />

Aus<br />

<br />

ux v ∈ L ⇔ uy<br />

<br />

v folgt<br />

=z1=z0ux<br />

=z2=z0uy<br />

z1v ∈ E ⇔ z2v ∈ E<br />

<strong>für</strong> alle v ∈ Σ ∗ . Da M minimal ist, folgt also z1 = z2. Da z ∈ Z beliebig gewählt war,<br />

folgt fx = fy.<br />

Bemerkung: Die Umkehrung des Satzes gilt nicht. Obige Beispiele betreffen verschiedene<br />

Sprachen, also mit verschiedenen Minimalautomaten, <strong>der</strong>en syntaktische Monoide<br />

gleich sind.<br />

1.5 Endliche Automaten mit Ausgabe<br />

Definition: Eine Moore-Maschine ist ein 6-Tupel<br />

wobei<br />

M = (Z, Σ, ∆, δ, λ, z0),<br />

– Z, Σ, δ und z0 sind wie bei DEAen definiert sind,<br />

– ∆ das Ausgabealphabet und<br />

– λ: Z → ∆ die Ausgabefunktion ist.<br />

Die Ausgabe von M bei Eingabe eines Wortes w = a1 . . . <strong>an</strong> ist<br />

TM (w) = λ(z0)λ(z1) . . . λ(zn),<br />

wobei zi = δ(zi−1, ai) <strong>für</strong> 1 ≤ i ≤ n. TM : Σ ∗ → ∆ ∗ heißt die von M berechnete<br />

Funktion.<br />

Definition: Eine Mealy-Maschine ist ein 6-Tupel<br />

wobei<br />

M = (Z, Σ, ∆, δ, λ, z0),<br />

– Z, Σ, ∆, δ und z0 sind wie bei Moore-Maschinen definiert sind und<br />

– λ: Z × Σ → ∆ die Ausgabefunktion ist.


1.5 Endliche Automaten mit Ausgabe 12<br />

Die Ausgabe von M bei Eingabe eines Wortes w = a1 . . . <strong>an</strong> ist<br />

TM (w) = λ(z0, a1)λ(z1, a2) . . . λ(zn−1, <strong>an</strong>),<br />

wobei zi = δ(zi−1, ai) <strong>für</strong> 1 ≤ i ≤ n. TM : Σ ∗ → ∆ ∗ heißt die von M berechnete<br />

Funktion.<br />

Bemerkung: – Ist M eine Moore-Maschine, so ist |Tn(w)| = |w| + 1.<br />

– Ist M eine Mealy-Maschine, so ist |Tn(w)| = |w|.<br />

Definition: Sei M eine Moore- o<strong>der</strong> Mealy-Maschine mit Ausgabealphabet ∆ =<br />

{0, 1}. Ein Wort w heißt von M akzeptiert, falls TM (w) = (0 + 1) ∗ 1.<br />

Beispiel: Betrachte die Sprache (0 + 1) ∗ (00 + 11). Folgen<strong>der</strong> Minimalautomat akzeptiert<br />

L:<br />

z0<br />

Folgende Mealy-Maschine akzeptiert L:<br />

Dabei bedeutet die Notation<br />

0<br />

1<br />

z0<br />

0<br />

0<br />

1<br />

0/0<br />

1/0<br />

1<br />

0<br />

0<br />

1<br />

1<br />

0<br />

0/0 1/0<br />

z z ′<br />

a/b<br />

dass δ(z, a) = z ′ und λ(z, a) = b <strong>für</strong> z, z ′ ∈ Z, a ∈ Σ, b ∈ ∆.<br />

Definition: Sei M = (Z, Σ, ∆, δ, λ, z0) eine Moore-Maschine und M ′ = (Z ′ , Σ, ∆, δ ′ ,<br />

λ ′ , z0 ′ ) eine Mealy-Maschine. Sei b = λ(z0) = TM (ε). M und M ′ heißen äquivalent,<br />

falls <strong>für</strong> alle w ∈ Σ ∗ gilt:<br />

b ◦ TM ′(w) = TM (w).<br />

1<br />

0/1<br />

1/1<br />

00<br />

11<br />

0<br />

1


1.5 Endliche Automaten mit Ausgabe 13<br />

Satz: Sei M1 = (Z, Σ, ∆, δ, λ, z0) eine Moore-Maschine. D<strong>an</strong>n gibt es eine äquivalente<br />

Mealy-Maschine M2.<br />

Beweis: Wir setzen M2 = (Z, Σ, ∆, δ, λ ′ , z0) mit λ ′ (z, a) = λ(δ(z, a)) <strong>für</strong> alle z ∈ Z<br />

und a ∈ Σ.<br />

Satz: Sei M1 = (Z, Σ, ∆, δ, λ, z0) eine Mealy-Maschine. D<strong>an</strong>n gibt es eine äquivalente<br />

Moore-Maschine M2.<br />

Beweis: Wir setzen M2 = (Z × ∆, Σ, ∆, δ ′ , λ ′ , z0 ′ ), wobei<br />

– z0 ′ = (z0, b0) <strong>für</strong> ein beliebiges b0 ∈ ∆,<br />

– δ ′ ((z, b), a) = (δ(z, a), λ(z, a)) <strong>für</strong> z ∈ Z, a ∈ Σ, b ∈ ∆ und<br />

– λ ′ ((z, b)) = b <strong>für</strong> z ∈ Z, b ∈ ∆.<br />

Beispiel: Betrachte wie<strong>der</strong> die Mealy-Maschine aus dem letzten Beispiel:<br />

z0<br />

0/0<br />

1/0<br />

Die äquivalente Moore-Maschine ist d<strong>an</strong>n:<br />

(z0, 0)<br />

0<br />

1<br />

1<br />

(0, 0)<br />

(1, 0)<br />

0<br />

0/0 1/0<br />

0<br />

1<br />

0<br />

1<br />

1<br />

0<br />

0/1<br />

1/1<br />

(0, 1)<br />

(1, 1)<br />

Diese Maschine ist isomorph zum Minimalautomaten aus dem vorherigen Beispiel.<br />

Wir möchten im Folgenden eine Charakterisierung <strong>der</strong> von Mealy-Maschinen berechenbaren<br />

Funktionen <strong>an</strong>geben.<br />

0<br />

1


1.5 Endliche Automaten mit Ausgabe 14<br />

Definition: Sei M = (Z, Σ, ∆, δ, λ, z0) eine Mealy-Maschine. Die erweiterte Ausgabefunktion<br />

ˆ λ ist definiert durch:<br />

ˆλ(z, ε) = ε <strong>für</strong> alle z ∈ Z,<br />

ˆλ(z, xa) = ˆ λ(z, x) ◦ λ( ˆ δ(z, x), a) <strong>für</strong> alle z ∈ Z, x ∈ Σ ∗ , a ∈ Σ.<br />

Bemerkung: Es gilt: TM (w) = ˆ λ(z0, w).<br />

Definition: Sei f : Σ ∗ → ∆ ∗ .<br />

– f heißt längenerhaltend, falls |f(w)| = |w| <strong>für</strong> alle w ∈ Σ ∗ .<br />

– f heißt sequentiell, falls <strong>für</strong> alle v, w ∈ Σ ∗ gilt:<br />

f(wv) hat als Präfix f(w),<br />

d. h. es existiert ein u ∈ ∆ ∗ , sodass f(wv) = f(w)u. Definiere fw : Σ ∗ → ∆ ∗ so,<br />

dass f(wv) = f(w) · fw(v), also in obiger Notation: fw(v) = u.<br />

– Ist f sequentiell, so ist das Gewicht von f die Anzahl <strong>der</strong> verschiedenen Funktionen<br />

fw über alle w ∈ Σ ∗ .<br />

Satz: Eine totale Funktion f : Σ ∗ → ∆ ∗ ist genau d<strong>an</strong>n von einer Mealy-Maschine<br />

berechenbar, wenn sie längenerhaltend, sequentiell und von endlichem Gewicht ist.<br />

Beweis: ” ⇒“: Sei M = (Z, Σ, ∆, δ, λ, z0) eine Mealy-Maschine mit f = TM . f ist<br />

längenerhaltend.<br />

Es gilt:<br />

f(wv) = TM (wv) = ˆ λ(z0, wv) Induktion<br />

= ˆ λ(z0, w) · ˆ λ( ˆ δ(z0, w), v) = f(w) · ˆ λ( ˆ δ(z0, w), v),<br />

also ist f sequentiell.<br />

Weiterhin ist fw(v) = ˆ λ( ˆ δ(z0, w) , v), folglich gibt es höchstens |Z| viele Funktionen fw.<br />

<br />

∈Z<br />

” ⇐ “: Sei f längenerhaltend, sequentiell und von endlichem Gewicht. Definiere M =<br />

(Z, Σ, ∆, δ, λ, z0) wie folgt:<br />

– Z = {fw | w ∈ Σ ∗ } (endlich, da f von endlichem Gewicht)<br />

– z0 = fε<br />

– δ(fw, a) = fwa <strong>für</strong> alle w ∈ Σ ∗ , a ∈ Σ<br />

(Für v, w ∈ Σ ∗ , v = w, aber fv = fw gilt: fwa<br />

– λ(fw, a) = fw(a) <strong>für</strong> alle w ∈ Σ ∗ und a ∈ Σ<br />

Induktion<br />

Induktion<br />

= (fw)a = (fv)a = fva.)


1.6 Zwei-Weg-Automaten 15<br />

Behauptung A: Für alle w ∈ Σ ∗ ist ˆ δ(fε, w) = fw.<br />

Beweis <strong>der</strong> Behauptung durch Induktion über |w|:<br />

|w| = 0: ˆ δ(fε, ε) = fε<br />

|w| > 0, w = xa <strong>für</strong> x ∈ Σ∗ und a ∈ Σ:<br />

ˆδ(fε, xa) = δ( ˆ δ(fε, x), a) Definition von ˆ δ<br />

= δ(fx, a) Nach Induktionsvoraussetzung<br />

= fxa<br />

Definition von δ<br />

Behauptung B: Für alle w ∈ Σ ∗ ist ˆ λ(fε, w) = f(w).<br />

Beweis <strong>der</strong> Behauptung durch Induktion über |w|:<br />

|w| = 0: ˆ λ(fε, ε) = ε = f(ε), nach Definition von ˆ λ und da f längenerhaltend ist.<br />

|w| > 0, w = xa <strong>für</strong> x ∈ Σ ∗ und a ∈ Σ:<br />

ˆλ(fε, xa) = ˆ λ(fε, x) ◦ λ( ˆ δ(fε, x), a) Definition von ˆ λ<br />

= f(x) ◦ λ( ˆ δ(fε, x), a) Nach Induktionsvoraussetzung<br />

= f(x) ◦ λ(fx, a) Behauptung A<br />

= f(x) ◦ fx(a) Definition von M<br />

= f(xa) f sequentiell<br />

Insgesamt folgt damit:<br />

<strong>für</strong> alle w ∈ Σ ∗ .<br />

1.6 Zwei-Weg-Automaten<br />

TM (w) = ˆ λ(z0, w) = ˆ λ(fε, w) = f(w)<br />

Das Berechnungsmodell <strong>der</strong> endlichen Automaten lässt nur Kopfbewegungen in eine<br />

Richtung zu. Ein Zwei-Weg-Automat stellt ein verallgemeinertes Berechnungsmodell<br />

dar, bei dem <strong>der</strong> Kopf auf <strong>der</strong> Eingabe in beiden Richtungen laufen darf. Die Eingabe<br />

darf links nicht verlassen werden. Die Rechnung endet, falls die Eingabe nach rechts<br />

verlassen wird. In diesem Fall wird akzeptiert, falls sich <strong>der</strong> Automat d<strong>an</strong>n in einem<br />

Endzust<strong>an</strong>d befindet.<br />

Es stellt sich die Frage, inwiefern diese Verallgemeinerung die Berechnungskraft erhöht.<br />

Definition: Ein deterministischer Zwei-Weg-Automat (kurz: 2DEA) ist ein 5-Tupel<br />

wobei<br />

M = (Z, Σ, δ, z0, E),<br />

– Z, Σ, z0 und E wie bei DEAen definiert sind und


1.6 Zwei-Weg-Automaten 16<br />

– δ : Z × Σ → Z × {L, R} die Überführungsfunktion ist.<br />

Eine Konfiguration von M ist ein Element aus Σ ∗ · Z · Σ ∗ . Eine Konfiguration wzx ∈<br />

Σ ∗ · Z · Σ ∗ repräsentiert dabei folgende Situation von M:<br />

– Eingabewort ist wx,<br />

– Zust<strong>an</strong>d ist z und<br />

– <strong>der</strong> Kopf steht auf dem ersten Zeichen von x.<br />

Ist x = ε, so hat <strong>der</strong> Kopf die Eingabe rechts verlassen.<br />

Wir definieren nun, wie M bei Eingabe w = a1 · · · <strong>an</strong> in einem Schritt von Konfiguration<br />

K in Konfiguration K ′ übergeht, in Zeichen K ⊢M K ′ :<br />

a1 · · · ai−1zaiai+1 · · · <strong>an</strong> ⊢M a1 · · · ai−1aiz ′ ai+1 · · · <strong>an</strong>, falls δ(z, ai) = (z ′ , R),<br />

a1 · · · ai−2ai−1zai · · · <strong>an</strong> ⊢M a1 · · · ai−2z ′ ai−1ai · · · <strong>an</strong>, falls δ(z, ai) = (z ′ , L), i ≥ 2.<br />

Bemerkung: In Konfiguration za1 · · · <strong>an</strong> ist keine Kopfbewegung nach links, in Konfiguration<br />

a1 · · · <strong>an</strong>z gar keine Kopfbewegung mehr möglich.<br />

Definition: Sei ⊢ ∗ M die reflexive und tr<strong>an</strong>sitive Hülle von ⊢M . Die von einem 2DEA<br />

M = (Z, Σ, δ, q0, E) akzeptierte Sprache L(M) ist definiert als<br />

L(M) = {w ∈ Σ ∗ | z0w ⊢ ∗ M wz <strong>für</strong> ein z ∈ E}.<br />

Beispiel: Sei M = ({z0, z1, z2}, {0, 1}, δ, z0, {z0, z1, z2}) ein 2DEA mit δ definiert wie<br />

folgt:<br />

δ 0 1<br />

z0 (z0, R) (z1, R)<br />

z1 (z1, R) (z2, L)<br />

z2 (z0, R) (z2, L)<br />

Bei Eingabe 101001 vollzieht M die Rechnung<br />

M akzeptiert, da z1 ∈ E.<br />

z0101001 ⊢M 1z101001<br />

⊢M 10z11001<br />

⊢M 1z201001<br />

⊢M 10z01001<br />

⊢M 101z1001<br />

⊢M 1010z101<br />

⊢M 10100z11<br />

⊢M 1010z201<br />

⊢M 10100z01<br />

⊢M 101001z1


1.6 Zwei-Weg-Automaten 17<br />

Rechnungen werden visualisiert durch den Pfad des Kopfes über <strong>der</strong> Eingabe, wobei<br />

wir <strong>für</strong> jede Bewegung von einem Symbol zum nächsten den moment<strong>an</strong>en Zust<strong>an</strong>d<br />

ausgeben:<br />

z0<br />

1 0 1 0 0 1<br />

z1<br />

z1<br />

z2<br />

z0 z1 z1 z1<br />

Betrachtet m<strong>an</strong> die Eingabe 101101 so vollzieht M die Rechnung<br />

z0<br />

z2<br />

z0<br />

1 0 1 1 0 1<br />

z1<br />

z1<br />

z2<br />

z0<br />

z2<br />

z0<br />

z1<br />

z2<br />

M gerät in eine Endlosschleife, da unter <strong>der</strong> zweiten Zellgrenze von links <strong>der</strong> gleiche<br />

Zust<strong>an</strong>d und die gleiche Kopfbewegung wie 4 Schritte zuvor auftreten.<br />

Bemerkung: Obiger Automat hat nur Endzustände, akzeptiert aber nicht die Sprache<br />

{0, 1} ∗ , son<strong>der</strong>n (0 + 1) ∗ 11(0 + 1) ∗ .<br />

Beobachtung: Ist L regulär, so gibt es einen 2DEA M mit L(M) = L.<br />

<br />

<br />

<br />

<br />

Beispiel: Sei Ln = akak−1 · · · <strong>an</strong> · · · a1 ai ∈ {0, 1} <strong>für</strong> 1 ≤ i ≤ k und <strong>an</strong> = 1 <strong>für</strong><br />

0 < n ∈ N.<br />

– Je<strong>der</strong> DEA M mit L(M) = Ln hat mindestens 2 n Zustände.<br />

(Myhill-Nerode: Für u, v ∈ {0, 1} n mit u = v gilt u ≁Ln v.)<br />

– Es gibt einen 2DEA M mit 2n − 1 Zuständen mit L(M) = Ln.<br />

(Übungsaufgabe)<br />

Wir nennen die Folgen von Zuständen unter einer Zellgrenze eine crossing sequence.<br />

Eine gültige crossing sequence (kurz: GCS) ist eine crossing sequence, die in einer<br />

akzeptierenden Rechnung vorkommt. GCS besitzen folgende Eigenschaften:<br />

z1


1.6 Zwei-Weg-Automaten 18<br />

– Eine GCS ist von ungera<strong>der</strong> Länge, wobei die Leserichtung des Kopfes rechts<br />

<strong>für</strong> ungerade und links <strong>für</strong> gerade Positionen ist (insgesamt muss <strong>der</strong> Kopf nach<br />

rechts aus <strong>der</strong> Eingabe herauslaufen).<br />

– Eine GCS enthält keinen Zust<strong>an</strong>d zweimal auf gera<strong>der</strong> Position o<strong>der</strong> zweimal auf<br />

ungera<strong>der</strong> Position. Folglich ist die Länge einer GCS < 2|Z|.<br />

Die Anzahl aller GCS ist damit < |Z| 2|Z| , also endlich!<br />

Eine crossing sequence c1 heißt rechtsverträglich <strong>zur</strong> crossing sequence c2 über a ∈ Σ,<br />

falls folgendes lokal möglich ist:<br />

Startet M von links über die zu c1 gehörige Zellgrenze, so k<strong>an</strong>n c1 als crossing<br />

sequence, a als gelesenes Zeichen und c2 als crossing sequence <strong>für</strong> die nächste<br />

Zellgrenze auftreten.<br />

Analog heißt c1 zu c2 über a linksverträglich, wenn M von rechts über die zu c2 gehörige<br />

a<br />

a<br />

Zellgrenze kommt. In Zeichen: c1 ↦→ c2, c1 ← c2.<br />

Formal:<br />

(1) Die leere Sequenz ist rechts- und linksverträglich <strong>zur</strong> leeren Sequenz: Wird die<br />

linke Zellgrenze nie erreicht, so auch die Rechte nicht.<br />

() a<br />

↦→ (), () a ← ()<br />

(2) Falls (z3, . . . , zk) a<br />

↦→ (z ′ 1, · · · , z ′ l ) und δ(z1, a) = (z2, L), so ist auch<br />

(z1, . . . , zk) a<br />

↦→ (z ′ 1, · · · , z ′ l)<br />

(3) Falls (z2, . . . , zk) a ← (z ′ 2, · · · , z ′ l ) und δ(z1, a) = (z ′ 1, R), so ist auch<br />

(z1, . . . , zk) a<br />

↦→ (z ′ 1, · · · , z ′ l)<br />

(4) Falls (z1, . . . , zk) a ← (z ′ 3, · · · , z ′ l ) und δ(z′ 1, a) = (z ′ 2, R), so ist auch<br />

(z1, . . . , zk) a ← (z ′ 1, · · · , z ′ l)<br />

(5) Falls (z2, . . . , zk) a<br />

↦→ (z ′ 2, · · · , z ′ l ) und δ(z′ 1, a) = (z1, L), so ist auch<br />

(z1, . . . , zk) a ← (z ′ 1, · · · , z ′ l)<br />

Satz: Sei L ⊆ Σ ∗ . Gibt es einen 2DEA M mit L(M) = L, so ist L regulär.


1.6 Zwei-Weg-Automaten 19<br />

z1<br />

z2<br />

z3<br />

zk<br />

a<br />

z ′ 1<br />

z ′ l<br />

Regel (2)<br />

z1<br />

zk<br />

a<br />

z ′ z<br />

3<br />

′ z<br />

2<br />

′ 1<br />

z ′ l<br />

Regel (4)<br />

z1<br />

z2<br />

zk<br />

$z_k$<br />

a<br />

z ′ 1<br />

z ′ 2<br />

z ′ l<br />

Regel (3)<br />

z1<br />

z2<br />

zk<br />

$z_k$<br />

a<br />

z ′ 1<br />

z ′ 2<br />

z ′ l<br />

Regel (5)<br />

Beweis: Sei M = (Z, Σ, δ, z0, E). Wir definieren einen NEA M ′ = (Z ′ , Σ, δ ′ , z ′ 0, E ′ ) wie<br />

folgt:<br />

– Z ′ = {c | c ist eine GCS},<br />

– z ′ 0 = (z0),<br />

– E ′ = {(z) | z ∈ E},<br />

– δ ′ (c, a) = {d | c a<br />

↦→ d}.<br />

Behauptung: L(M) = L(M ′ )<br />

Beweis <strong>der</strong> Behauptung: ” ⊆“: Sei w ∈ L(M), w = a1 · · · <strong>an</strong>, |w| = n. Betrachte die<br />

Folge c0, c1, . . . , cn aller crossing sequences <strong>der</strong> akzeptierenden Rechnung von M auf<br />

w. Es gilt:<br />

– c0 = (z0),<br />

– cn = (z) <strong>für</strong> ein z ∈ E,<br />

– ci−1<br />

ai<br />

↦→ ci <strong>für</strong> 1 ≤ i ≤ n.


1.6 Zwei-Weg-Automaten 20<br />

Also ist die Zust<strong>an</strong>dsfolge c0, . . . , cn eine akzeptierende Rechnung von M ′ auf w, also<br />

w ∈ L(M ′ ).<br />

” ⊇“: Sei w ∈ L(M ′ ), w = a1 · · · <strong>an</strong>. Sei c0, c1, . . . , cn die Folge von Zuständen auf einem<br />

akzeptierenden Pfad von M ′ auf w. Es gilt:<br />

– c0 = (z0),<br />

– cn = (z) <strong>für</strong> ein z ∈ E,<br />

– ci−1<br />

ai<br />

↦→ ci <strong>für</strong> 1 ≤ i ≤ n.<br />

Wie beweisen durch Induktion über i: Wenn M ′ durch Lesen von a1 · · · ai den Zust<strong>an</strong>d<br />

ci = (z1, . . . , zk), k ∈ N erreichen k<strong>an</strong>n, d<strong>an</strong>n gilt:<br />

(i) M in z0 gestartet bei Eingabe a1 · · · ai läuft zum ersten Mal rechts aus ai heraus<br />

im Zust<strong>an</strong>d z1.<br />

(ii) Für j = 2, 4, . . . , k − 1 gilt: M gestartet in zj auf Eingabezeichen ai bei Eingabewort<br />

a1 · · · ai läuft zum ersten Mal rechts aus ai heraus im Zust<strong>an</strong>d zj+1.<br />

Da cn = (z) <strong>für</strong> z ∈ E, wird d<strong>an</strong>n w von M akzeptiert.<br />

Induktion:<br />

i = 0: c0 = (z0), M beginnt seine Rechnung in z0.<br />

i > 0: M ′ erreiche den Zust<strong>an</strong>d ci = (z ′ 1, . . . , z ′ l ) durch Lesen <strong>der</strong> Eingabe a1 · · · ai.<br />

Der Vorgängerzust<strong>an</strong>d sei ci−1 = (z1, . . . , zk).<br />

ai<br />

Da k, l ungerade und ci−1 ↦→ ci existiert ein ungerades j, sodass gilt: M in<br />

Zust<strong>an</strong>d zj bei Eingabe ai bewegt sich nach rechts. Sei j1 das kleinste solche j<br />

(siehe Abbildung 1.1). Nach Definition von ↦→ (Regeln 3, 4) folgt d<strong>an</strong>n:<br />

Damit ist (i) beweisen.<br />

δ(zj1, ai) = (z ′ 1, R).<br />

Außerdem folgt nach Definition von ↦→, ←, dass (zj1+1, . . . , zk) ai<br />

, R) <strong>für</strong> j = 2, 4, . . . l − 1 (siehe Abbildung 1.2), so gilt (ii).<br />

Falls δ(z ′ j , ai) = (z ′ j+1<br />

← (z ′ 2, . . . , z ′ l ).<br />

An<strong>der</strong>nfalls gilt δ(z ′ j , ai) = (z, L) <strong>für</strong> ein z ∈ Z und ein 2 ≤ j ≤ k − 1<br />

(siehe Abbildung 1.3). Sei j2 das kleinste solche j. D<strong>an</strong>n ist z = zj1+1 und<br />

(zj1+2, . . . , zk) ai<br />

↦→ (z ′ j2+1 , . . . , z′ l ). Die Argumentation verläuft nun wie oben mit<br />

ci−1 = (zj1+2, . . . , zk) und ci = (zj2+1, . . . , z ′ l ).


2 Kontextfreie Sprachen 21<br />

z0<br />

a1<br />

z1<br />

z2<br />

zj1<br />

zk<br />

ai<br />

z ′ 1<br />

z ′ l<br />

z ′ l<br />

Abbildung 1.1<br />

<strong>an</strong><br />

z ∈E<br />

2 Kontextfreie Sprachen<br />

zj1<br />

ai<br />

z ′ z<br />

3<br />

′ z<br />

2<br />

′ 1<br />

z ′ 4<br />

z ′ 5<br />

z ′ l<br />

Abbildung 1.2<br />

zj1<br />

ai<br />

z ′ z<br />

3<br />

′ z<br />

2<br />

′ 1<br />

z ′ zj1+1 j2<br />

zj1+2 z ′ j2+1<br />

zk<br />

z ′ l<br />

Abbildung 1.3<br />

Kontextfreie Sprachen werden durch kontextfreie Grammatiken definiert. Eine kontextfreie<br />

Grammatik (kurz: kf. Grammatik, CFG) ist ein 4-Tupel<br />

wobei<br />

G = (V, Σ, P, S),<br />

– V eine endliche Menge von Variablen (Nicht-Terminalsymbolen),<br />

– Σ das Terminalalphabet, V ∩ Σ = ∅,<br />

– P ⊆ V × (V ∪ Σ) ∗ eine Menge von Produktionen/Regeln und<br />

– S ∈ V das Startsymbol ist.<br />

Eine kontexfreie Grammatik heißt in Normalform, falls<br />

P ⊆ (V × (V \ {S} ∪ Σ) + ) ∪ {S → ε}.<br />

Zu je<strong>der</strong> kontextfreien Grammatik gibt es eine kontextfreie Grammatik G ′ in Normalform<br />

mit L(G) = L(G ′ ).<br />

Schreibweisen:<br />

Für (α, β) ∈ P schreiben wir α → β ∈ P<br />

Für A → α1 ∈ P, . . . , A → αn ∈ P kurz: A → α1| · · · |αn ∈ P .<br />

α ⇒G β: β entsteht aus α durch Anwendung einer Regel aus P , d. h. α ⇒G β, falls<br />

es α1, α2 ∈ (V ∪ Σ) ∗ und A → γ ∈ P gibt, sodass α = α1Aα2 und β = α1γα2.<br />

⇒ ∗ G<br />

ist die reflexive und tr<strong>an</strong>sitive Hülle von ⇒G.


2 Kontextfreie Sprachen 22<br />

Eine Ableitung ist eine Folge von Satzformen, die aus <strong>der</strong> Startvariablen einer Grammatik<br />

ein Wort über <strong>der</strong>en Terminalalphabet ableitet, d. h. eine Folge<br />

S ⇒G w1 ⇒G w2 ⇒G . . . ⇒G wn mit wi ∈ (V ∪ Σ) ∗ , 1 ≤ i < n und wn ∈ Σ ∗ .<br />

Die von <strong>der</strong> kontextfreien Grammatik erzeugte Sprache ist<br />

L(G) = {w ∈ Σ ∗ | S ⇒ ∗ G w}.<br />

CFL ist die Klasse <strong>der</strong> kontextfreien Sprachen, d. h. die Klasse aller L(G) <strong>für</strong> kontextfreie<br />

Grammatiken G.<br />

Satz (Pumping-Lemma, uvwxy-Theorem): Sei L eine kontextfreie Sprache. D<strong>an</strong>n gibt<br />

es eine Zahl n, sodass sich alle Wörter z ∈ L mit |z| ≥ n zerlegen lassen in z = uvwxy,<br />

sodass folgende Eigenschaften erfüllt sind:<br />

(i) |vx| ≥ 1<br />

(ii) |vwx| ≤ n<br />

(iii) Für alle i ≥ 0 gilt: uv i wx i y ∈ L<br />

Beispiel: – Dyck-Sprache über dem Alphabet Σ:<br />

Setze Σ ′ = {ā | a ∈ Σ} ( ” Kopie“ von Σ) und ˆ Σ = Σ ∪ Σ ′ . D ∗ Σ<br />

von <strong>der</strong> Grammatik<br />

erzeugt wird, wobei<br />

G = ({S, T }, ˆ Σ, P, S)<br />

P = {S → T S|ε} ∪ {T → aSā | a ∈ Σ}.<br />

Sei z. B. Σ = {(, [, }. D∗ Σ<br />

Klammergebirge mit Klammern aus ˆ Σ. Ein Wort aus D∗ Σ ist<br />

(< []() > [])[< ()() >].<br />

– L = {w ∈ Σ ∗ | w = w R , d. h. w ist ein Palindrom} ∈ CFL:<br />

ist die Sprache, die<br />

ist die Sprache aller korrekten<br />

Die kontextfreie Grammatik G = ({S}, Σ, {S → aSa|a|ε a ∈ Σ}, S) erzeugt L.<br />

– L = {a k b k c k | k ≥ 0} ist nicht kontextfrei:<br />

Angenommen L wäre kontextfrei. D<strong>an</strong>n existiert n ∈ N wie im Pumping-Lemma.<br />

Wähle z = a n b n c n . Es gilt |z| = 3n ≥ n und z ∈ L. Sei z = uvwxy eine beliebige<br />

Zerlegung von z mit |vx| > 0 und |vwx| ≤ n.<br />

z = a . . . a b . . . b c . . . c = a n b n c n<br />

vwx =


2.1 Chomsky-Normalform und CYK-Algorithmus 23<br />

Daraus ergibt sich: In vwx kommen höchstens zwei <strong>der</strong> drei Buchstaben a, b und<br />

c vor. Es folgt<br />

uv 0 wx 0 y = uwy /∈ L<br />

und das ist ein Wi<strong>der</strong>spruch <strong>zur</strong> Annahme, dass L kontextfrei ist.<br />

Abschlusseigenschaften<br />

– L, L ′ ∈ CFL ⇒ L ∪ L ′ , L ◦ L ′ , L ∗ ∈ CFL:<br />

(Übungsaufgabe)<br />

– CFL ist abgeschlossen unter Homomorphismen und inversen Homomorphismen:<br />

(Übungsaufgabe)<br />

– CFL ist nicht abgeschlossen unter Durchschnitt:<br />

Sei L1 = {a n b n c m | n, m ≥ 0} und L2 = {a n b m c m | n, m ≥ 0}. Es ist L1, L2 ∈<br />

CFL, denn eine kontextfreie Grammatik <strong>für</strong> L1 ist G = ({S, A, B}, {a, b, c}, P, S)<br />

mit den Produktionen<br />

S → AB, A → aAb|ε, B → cB|ε.<br />

Für den Durchschnitt L1 ∩ L2 gilt jedoch L1 ∩ L2 = {a k b k c k | k ≥ 0} /∈ CFL<br />

(gemäß obigem Beispiel).<br />

– CFL ist nicht abgeschlossen unter Komplement:<br />

Annahme doch, d<strong>an</strong>n wäre CFL abgeschlossen unter Durchschnitt (nach de Morg<strong>an</strong>)<br />

und das ist ein Wi<strong>der</strong>spruch.<br />

2.1 Chomsky-Normalform und CYK-Algorithmus<br />

Definition: Eine kontextfreie Grammatik G = (V, Σ, P, S) mit ε /∈ L heißt in Chomsky-<br />

Normalform (CNF), falls alle Regeln von <strong>der</strong> Form<br />

<strong>für</strong> A, B, C ∈ V und a ∈ Σ sind.<br />

A → BC o<strong>der</strong> A → a<br />

Satz: Sei G eine kontextfreie Grammatik mit ε /∈ L(G). D<strong>an</strong>n gibt es eine kontextfreie<br />

Grammatik G ′ in CNF mit L(G) = L(G ′ ).<br />

Beweis: Sei G = (V, Σ, P, S) eine kontextfreie Grammatik mit ε /∈ L(G). Wir geben<br />

einen Algorithmus <strong>an</strong>, <strong>der</strong> die Regelmenge von G so verän<strong>der</strong>t, dass nur noch Regeln<br />

<strong>der</strong> oben gegebenen Typen bleiben:<br />

Schritt I: Elimination von Regeln <strong>der</strong> Form A → B mit A, B ∈ V .


2.1 Chomsky-Normalform und CYK-Algorithmus 24<br />

(i) Gibt es Variablen B1, B2, . . . , Bk ∈ V mit<br />

B1 → B2, B2 → B3, . . . , Bk−1 → Bk, Bk → B1<br />

so ersetze in allen Regeln die Variablen B1, B2, . . . , Bk durch die neue Variable<br />

B und lösche obige Regeln.<br />

(ii) Nummeriere die Variablen in V so, dass V = {A1, . . . , An} und aus Ai → Aj ∈ P<br />

folgt, dass i < j.<br />

(iii) Für k = n − 1, n − 2, . . . , 1, führe folgenden Schritt (iv) durch:<br />

(iv) Falls es eine Regel Ak → Ak ′ ∈ P gibt mit k′ > k, d<strong>an</strong>n lösche Ak → Ak ′ und<br />

füge <strong>für</strong> jede Regel Ak ′ → α ∈ P eine Regel Ak → α zu P hinzu.<br />

Nun sind alle Regeln von <strong>der</strong> Form:<br />

A → a (<strong>für</strong> A ∈ V und a ∈ Σ) o<strong>der</strong> A → α (<strong>für</strong> A ∈ V und |α| ≥ 2)<br />

Schritt II: Beh<strong>an</strong>deln <strong>der</strong> Terminalzeichen.<br />

Für alle a ∈ Σ füge eine neue Variable Ba zu V und eine neue Regel Ba → a zu P<br />

hinzu. Ersetze nun in allen Regeln A → α (mit |α| ≥ 2) auf <strong>der</strong> rechten Seite das<br />

Zeichen a durch Ba.<br />

Nun sind alle Regeln von <strong>der</strong> Form:<br />

A → a (<strong>für</strong> A ∈ V, a ∈ Σ) o<strong>der</strong> A → B1B2 . . . Bk (<strong>für</strong> A, B1, B2, . . . , Bk ∈ V, k ≥ 2)<br />

Schritt III: Verkürzen <strong>der</strong> Regeln.<br />

Für jede Regel A → B1 . . . Bk mit k ≥ 3 füge neue Variablen C2, . . . , Ck−1 zu V hinzu<br />

und ersetze in P obige Regel durch<br />

Der CYK-Algorithmus<br />

A → B1C2<br />

C2 → B2C3<br />

.<br />

Ck−1 → Bk−1Bk<br />

Sei G = (V, Σ, P, S) eine kontextfreie Grammatik in CNF. Ist x = a, a ∈ Σ und<br />

A ⇒ ∗ x, so muss eine Regel A → a in P existieren.<br />

.


2.1 Chomsky-Normalform und CYK-Algorithmus 25<br />

Ist x = a1a2 . . . <strong>an</strong>, n ≥ 2 und A ⇒ ∗ x, so muss eine Regel A → BC und ein k mit<br />

1 ≤ k < n existieren, sodass B ⇒ ∗ a1 . . . ak und C ⇒ ∗ ak+1 . . . <strong>an</strong>.<br />

Notation: Für x ∈ Σ ∗ bezeichne xi,j das Teilwort von x, das <strong>an</strong> Position i beginnt und<br />

Länge j hat. Im obigen Absatz gilt also: B ⇒ ∗ x1,k und C ⇒ ∗ xk+1,n−k.<br />

Obige Beobachtung ist Grundlage des Algorithmus von Cooke, Younger und Kasami:<br />

Verwende ein Feld T [1 . . . n, 1 . . . n] mit <strong>der</strong> Bedeutung A ∈ T [i, j] gdw. A ⇒ ∗ xi,j.<br />

CYK-Algorithmus:<br />

Eingabe: x = a1 . . . <strong>an</strong><br />

Methode:<br />

for i = 1 to n do<br />

T [i, 1] := {A ∈ V | A → ai ∈ P };<br />

for j = 2 to n do<br />

for i = 1 to n + 1 − j do<br />

begin<br />

T [i, j] := ∅;<br />

for k = 1 to j − 1 do<br />

T [i, j] := T [i, j] ∪ {A ∈ V |A → BC, B ∈ T [i, k] ∧ C ∈ T [i + k, j − k]};<br />

end;<br />

if S ∈ T [1, n] then accept else reject;<br />

Satz: Das Wortproblem <strong>für</strong> kontextfreie Sprachen ist entscheidbar in Zeit O(n 3 ).<br />

Bemerkung: Mit dem so gen<strong>an</strong>nten Early-Algorithmus ist es möglich, das Wortproblem<br />

in O(n 2.6... ) zu lösen. Der Early-Algorithmus ist jedoch aufwendiger zu implementieren.<br />

Beispiel: Betrachte eine kontextfreie Grammatik in Chomsky-Normalform mit folgenden<br />

Regeln:<br />

Eingabe: x = baaba, n = |x| = 5<br />

S → AB|BC B → CC|b<br />

A → BA|a C → AB|a


2.1 Chomsky-Normalform und CYK-Algorithmus 26<br />

j ↓<br />

x = b a a b a<br />

i → 1 2 3 4 5<br />

1<br />

2<br />

3<br />

4<br />

5<br />

B A, C A, C B A, C<br />

S, A B S, C S, A<br />

∅ B B<br />

∅<br />

S,A,C<br />

S,A,C<br />

Es ist S ∈ T [1, 5], also gilt x ∈ L(G). Hieraus lässt sich die folgende Ableitung konstruieren:<br />

S ⇒ BC<br />

⇒ bC<br />

⇒ bAB<br />

⇒ baB<br />

⇒ baCC<br />

⇒ baABC<br />

⇒ baaBC<br />

⇒ baabC<br />

⇒ baaba<br />

Eine weitere mögliche Ableitung aus obiger Matrix ist:<br />

S ⇒ AB<br />

⇒ BAB<br />

⇒ ∗ baB<br />

⇒ baCC<br />

⇒ ∗ baaba<br />

B<br />

b<br />

S<br />

A<br />

A<br />

a<br />

b a<br />

A<br />

a<br />

S<br />

C<br />

B A C<br />

A<br />

B<br />

C C<br />

B<br />

a b<br />

B<br />

b<br />

B<br />

a<br />

C<br />

a


2.2 Greibach-Normalform und Kellerautomaten 27<br />

2.2 Greibach-Normalform und Kellerautomaten<br />

Kellerautomat M:<br />

Eingabeb<strong>an</strong>d<br />

a1 a2 . . .<br />

endliche Kontrolle<br />

(Zust<strong>an</strong>d)<br />

Lesekopf, bewegt sich<br />

nach rechts<br />

Keller<br />

D<br />

C<br />

B<br />

A<br />

#<br />

Lesekopf, steht immer auf<br />

dem obersten Kellersymbol<br />

Definition: Ein (nichtdeterministischer) Kellerautomat (kurz: KA, NKA) ist ein 7-<br />

Tupel<br />

M = (Z, Σ, Γ, δ, z0, #, E),<br />

wobei<br />

– Z die endliche Menge <strong>der</strong> Zustände,<br />

– Σ das Eingabealphabet,<br />

– Γ das Kelleralphabet,<br />

– z0 ∈ Z <strong>der</strong> Startzust<strong>an</strong>d,<br />

– # ∈ Γ das unterste Kellersymbol (bei Initialisierung),<br />

– E ⊆ Z die Menge <strong>der</strong> Endzustände und<br />

– δ : Z × (Σ ∪ {ε}) × Γ → Pe(Z × Γ ∗ ) die Überführungsfunktion mit Pe(M) =<br />

{M ′ ⊆ M | M ′ endlich} ist.<br />

Für z, z ′ ∈ Z, a ∈ Σ, A, B1, . . . , Bk ∈ Γ bedeutet δ(z, a, A) ∋ (z ′ , B1, . . . , Bk):<br />

Ist M im Zust<strong>an</strong>d z, liest das Eingabezeichen a in <strong>der</strong> Eingabe und ist A das oberste<br />

Kellersymbol, so k<strong>an</strong>n M in den Zust<strong>an</strong>d z ′ übergehen und das Kellersymbol A durch


2.2 Greibach-Normalform und Kellerautomaten 28<br />

die Symbole B1, . . . , Bk ersetzen (B1 wird oberstes Kellersymbol). Der Lesekopf bewegt<br />

sich dabei ein Feld auf dem Eingabeb<strong>an</strong>d nach rechts.<br />

Ist δ(z, ε, A) ∋ (z ′ , B1, . . . , Bk) so bewegt sich <strong>der</strong> Lesekopf dabei nicht.<br />

Die ” üblichen“ Kelleroperationen ergeben sich zu:<br />

Schreibweise: zaA → z ′ B1 . . . Bk.<br />

pop : B1 . . . Bk = ε<br />

push(B) : B1 . . . Bk = BA<br />

Definition: Eine Konfiguration eines Kellerautomaten ist ein Tripel<br />

K ∈ Z × Σ ∗ × Γ ∗ .<br />

Die Konfiguration K = (z, α, β) bedeutet, dass M sich im Zust<strong>an</strong>d z befindet, α <strong>der</strong><br />

noch zu lesende Teil <strong>der</strong> Eingabe und β <strong>der</strong> Kellerinhalt ist.<br />

Definiere die binäre Relation ⊢M (o<strong>der</strong> auch ⊢) auf <strong>der</strong> Menge aller Konfigurationen.<br />

Intuitiv bedeutet K ⊢ K ′ , dass K ′ aus K durch einen Schritt von M hervorgeht.<br />

Formal:<br />

(z, a1 . . . <strong>an</strong>, A1 . . . Am) ⊢M<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

(z ′ , a2 . . . <strong>an</strong>, B1 . . . BkA2 . . . Am),<br />

falls δ(z, a1, A1) ∋ (z ′ , B1 . . . Bk),<br />

(z ′ , a1 . . . <strong>an</strong>, B1 . . . BkA2 . . . Am),<br />

falls δ(z, ε, A1) ∋ (z ′ , B1 . . . Bk),<br />

wobei z, z ′ ∈ Z, a1, . . . , <strong>an</strong> ∈ Σ und A1, . . . , Am, B1, . . . , Bk ∈ Γ. Wir schreiben ⊢ ∗ M <strong>für</strong><br />

die reflexive und tr<strong>an</strong>sitive Hülle von ⊢M .<br />

Definition: Die von einem Kellerautomaten M per Endzust<strong>an</strong>d akzeptierte Sprache<br />

ist<br />

L(M) = {x ∈ Σ ∗ | (z0, x, #) ⊢ ∗ M (z, ε, γ) <strong>für</strong> ein z ∈ E, γ ∈ Γ ∗ }.<br />

Die von einem Kellerautomaten M mit leerem Keller akzeptierte Sprache ist<br />

N(M) = {x ∈ Σ ∗ | (z0, x, #) ⊢ ∗ M (z, ε, ε) <strong>für</strong> ein z ∈ Z}.<br />

Satz: Sei L ⊆ Σ ∗ . D<strong>an</strong>n sind folgende Aussagen äquivalent:<br />

(i) Es gibt einen Kellerautomaten M mit L = N(M).<br />

(ii) Es gibt einen Kellerautomaten M mit L = L(M).<br />

Beweis: (Übungsaufgabe)


2.2 Greibach-Normalform und Kellerautomaten 29<br />

Definition: Eine kontextfreie Grammatik G = (V, Σ, P, S) mit ε /∈ L(G) heißt in<br />

Greibach-Normalform (GNF), falls alle Regeln von <strong>der</strong> Form<br />

sind.<br />

A → aB1 . . . Bk<br />

(a ∈ Σ, A, B1, . . . , Bk ∈ V, k ≥ 0)<br />

Satz: Sei G kontextfrei mit ε /∈ L(G). D<strong>an</strong>n gibt es eine kontextfreie Grammatik G ′<br />

in Greibach-Normalform mit L(G) = L(G ′ ).<br />

Beweis: Vorüberlegung <strong>zur</strong> Linksrekursion:<br />

Eine Regel A → Aα heißt linksrekursiv. In Greibach-Normalform sind solche Regeln<br />

nicht erlaubt. Bereinige wie folgt:<br />

Sei A eine Variable mit linksrekursiven Regeln A → Aα1| . . . |Aαk und den weiteren<br />

nicht-linksrekursiven Regeln A → β1| . . . |βl. Folgende Ableitungen sind aus A möglich:<br />

mit i1, i2, . . . ∈ {1, . . . , k}, 1 ≤ j ≤ l.<br />

βj<br />

A<br />

Obige Regeln können also durch folgende Regeln ersetzt werden:<br />

mit einer neuen Variablen B.<br />

A<br />

A<br />

αi2<br />

A → β1| . . . |βl|β1B| . . . |βlB<br />

B → α1| . . . |αk|α1B| . . . |αkB,<br />

Sei nun G = (V, Σ, P, S) gegeben, o. B. d. A. sei G in Chomsky-Normalform und V =<br />

{A1, . . . , Am}.<br />

Schritt I: Modifiziere P so, dass aus Ai → Ajα ∈ P folgt, dass i < j.<br />

A<br />

αi1


2.2 Greibach-Normalform und Kellerautomaten 30<br />

Eingabe: G = (V, Σ, P, S)<br />

Methode:<br />

for i := 1, . . . , m do<br />

begin<br />

for j := 1, . . . , i − 1 do<br />

for all Ai → Ajα ∈ R do<br />

begin<br />

Seien Aj → β1| . . . |βl alle Regeln mit Aj auf <strong>der</strong> linken Seite;<br />

Lösche Ai → Ajα;<br />

Füge Ai → β1α| . . . |βlα zu P hinzu;<br />

end;<br />

Falls es linksrekursive Regeln Ai → Aiα gibt, d<strong>an</strong>n beseitige diese wie oben<br />

unter Einführung <strong>der</strong> neuen Variable Bi;<br />

end;<br />

Nun gilt <strong>für</strong> alle Regeln Ai → Ajα ∈ P , dass i < j. Insbeson<strong>der</strong>e gilt <strong>für</strong> Am → α ∈ P<br />

gilt, dass α mit einem Terminalzeichen beginnt.<br />

Schritt II: Bringe Ai-Regeln in die gewünschte Form.<br />

Eingabe: G = (V, Σ, P, S)<br />

Methode:<br />

for i := m − 1, . . . , 1 do<br />

for all Ai → Ajα ∈ P do<br />

begin<br />

Seien Aj → β1| . . . |βl alle Aj−Regeln;<br />

Streiche Ai → Ajα;<br />

Füge die Regeln Ai → β1α| . . . |βlα zu P hinzu;<br />

end;<br />

Schritt III: Bringe Bi-Regeln in gewünschte Form.<br />

Eingabe: G = (V, Σ, P, S)<br />

Methode:<br />

for i := 1, . . . , m do<br />

begin<br />

Ist Bi → Ajα ∈ P und sind Aj → β1| . . . |βl alle Aj−Regeln, so streiche<br />

Bi → Ajα und f\”uge Bi → β1α| . . . |βlα zu P hinzu;<br />

end;<br />

Definition: Eine Ableitung S ⇒ α1 ⇒ α2 ⇒ . . . ⇒ αn heißt Linksableitung, falls in<br />

jedem Ableitungsschritt αi ⇒ αi+1 (i = 1, . . . , n − 1) immer das erste (am weitesten<br />

links stehende) Nichtterminal in αi ersetzt wird.


2.2 Greibach-Normalform und Kellerautomaten 31<br />

Linksableitungen <strong>für</strong> Grammatiken in GNF haben die Gestalt<br />

S ⇒ aB1 . . . Bk ⇒ abC1 . . . ClB2 . . . Bk ⇒ abcD1 . . . DmC2 . . . ClB2 . . . Bk ⇒ . . . ,<br />

wobei a, b, c ∈ Σ, B1, . . . , Bk, C1, . . . , Cl, D1, . . . , Dm ∈ V und S die Startvariable ist.<br />

Satz: Eine Sprache L ist kontextfrei gdw. es einen Kellerautomaten M gibt mit L =<br />

N(M).<br />

Beweis: ” ⇒“: Sei L = L(G) <strong>für</strong> G = (V, Σ, P, S). O. B. d. A. sei G in Greibach-<br />

Normalform. Definiere M = ({z}, Σ, V, δ, z, S), wobei δ wie folgt gegeben ist:<br />

δ(z, a, A) ∋ (z, γ), falls A → aγ ∈ P.<br />

Behauptung: Für alle x ∈ Σ∗ und α ∈ V ∗ gilt: es existiert eine Linksableitung S ⇒∗ G xα<br />

gdw. (z, x, S) ⊢∗ M (z, ε, α)<br />

Beweis <strong>der</strong> Behauptung: ” ⇐“: Induktion über die Länge i <strong>der</strong> Rechnung von M:<br />

i = 0: x = ε und S = α: S ⇒ ∗ S<br />

i ≥ 1: Sei (z, x, S) ⊢ ∗ (z, ε, α) in i Schritten von M. Setze x = ya, y ∈ Σ ∗ , a ∈ Σ.<br />

Obige Rechnung lässt sich wie folgt aufspalten (M hat keine ε-Übergänge!):<br />

=x<br />

<br />

(z, ya , S) ⊢ ∗ (z, a, β) ⊢ (z, ε, α)<br />

<br />

(i−1)Schritte<br />

Also gilt auch: (z, y, S) ⊢ ∗ (z, ε, β) in (i − 1) Schritten. Nach Induktionsvoraussetzung<br />

folgt: S ⇒ ∗ yβ durch eine Linksableitung.<br />

Aus (z, a, β) ⊢ (z, ε, α) ergibt sich: β = Aγ <strong>für</strong> ein A ∈ V , γ ∈ V ∗ , A → aη ∈ P<br />

und α = ηγ. Zusammengenommen ergibt sich also folgende Linksableitung:<br />

S ⇒ ∗ yβ = yAγ ⇒ yaηγ = xα.<br />

” ⇒“: Induktion über die Länge i <strong>der</strong> Linksableitung S ⇒∗ xα:<br />

i = 0: S ⇒ ∗ S und xα = S: (z, ε, S) ⊢ ∗ (z, ε, S)<br />

i ≥ 1: S ⇒ ∗ xα k<strong>an</strong>n zerlegt werden in<br />

S ⇒ ∗ yAγ ⇒ yaηγ,<br />

<br />

(i−1) Schritte<br />

wobei A → aη ∈ P , x = ya und α = ηγ und a ∈ Σ, y ∈ Σ ∗ , A ∈ V , γ, η ∈ V ∗ .<br />

Nach Induktionsvoraussetzung folgt: (z, y, S) ⊢ ∗ (z, ε, Aγ).


2.2 Greibach-Normalform und Kellerautomaten 32<br />

Aus A → aη ∈ P ergibt sich δ(z, a, A) ∋ (z, η) nach Definition von δ.<br />

Zusammengenommen erhalten wir:<br />

(z, x, S) = (z, ya, S) ⊢ ∗ (z, a, Aγ) ⊢ (z, ε, ηγ) = (z, ε, α).<br />

Wähle nun in <strong>der</strong> Behauptung α = ε:<br />

x ∈ L(G) gdw. S ⇒ ∗ G x gdw. (z, x, S) ⊢ ∗ M (z, ε, ε) gdw. x ∈ N(M)<br />

<strong>für</strong> alle x ∈ Σ ∗ . Also gilt L(G) = N(M).<br />

(Behauptung) <br />

” ⇐“: Idee: Die Rechnung von M auf <strong>der</strong> Eingabe x soll durch eine Linksableitung<br />

simuliert werden. Nichtterminale einer Satzform sollen dabei dem Kellerinhalt von M<br />

zu diesem Rechenschritt entsprechen. Dazu verwenden wir die Nichtterminale [z, A, z ′ ]<br />

mit z, z ′ ∈ Z, A ∈ Γ, sodass<br />

(z, x, A) ⊢ ∗ M (z ′ , ε, ε) gdw. [z, A, z ′ ] ⇒ ∗ G x.<br />

Sei M = (Z, Σ, Γ, δ, z0, #, E) ein Kellerautomat (beachte: die Endzustände E von M<br />

werden hier nicht benötigt, da nur N(M) betrachtet wird). Definiere G = (V, Σ, P, S),<br />

wobei V = {S}∪(Z ×Γ×Z) (Tripelkonstruktion) und P aus folgenden Regeln besteht:<br />

(i) S → [z0, #, z] <strong>für</strong> alle z ∈ Z.<br />

(ii) [z, A, zm+1] → a[z1, B1, z2][z2, B2, z3] . . . [zm, Bm, zm+1] <strong>für</strong> alle z, z1, . . . , zm+1 ∈<br />

Z, a ∈ Σ ∪ {ε} und A, B1, . . . , Bm ∈ Γ, sodass<br />

δ(z, a, A) ∋ (z1, B1 . . . Bm).<br />

Ist m = 0, so lautet die Regel [z, A, z1] → a.<br />

Behauptung: Für alle z, z ′ ∈ Z, A ∈ Γ und x ∈ Σ ∗ gilt:<br />

[z, A, z ′ ] ⇒ ∗ x gdw. (z, x, A) ⊢ ∗ (z ′ , ε, ε).<br />

Beweis <strong>der</strong> Behauptung: ” ⇐“: Induktion über die Länge i <strong>der</strong> Rechnung von M:<br />

i = 1: Es gilt: (z, x, A) ⊢ (z ′ , ε, ε), also δ(z, x, A) ∋ (z ′ , ε), also [z, A, z ′ ] → x ∈ P , also<br />

[z, A, z ′ ] ⇒ x<br />

i > 1: Sei x = ay, y ∈ Σ ∗ , a ∈ Σ ∪ {ε} und<br />

(z, ay, A) ⊢ (z1, y, B1 . . . Bn) ⊢ ∗ (z ′ , ε, ε),<br />

also δ(z, a, A) ∋ (z1, B1 . . . Bn) <strong>für</strong> B1, . . . , Bn ∈ Γ.<br />

Zerlege y in y = y1y2 . . . yn (yi ∈ Σ ∗ ), sodass während <strong>der</strong> Verarbeitung von<br />

yi das Symbol Bi vom Keller verschwindet, also: y1 ist das kürzeste Präfix von<br />

y, nach dessen Verarbeitung <strong>der</strong> Kellerinhalt B2 . . . Bn ist, y1y2 ist das kürzeste<br />

Präfix von y, nach dessen Verarbeitung <strong>der</strong> Kellerinhalt B3 . . . Bn ist, usw.


2.2 Greibach-Normalform und Kellerautomaten 33<br />

Kellerhöhe<br />

n<br />

n − 1<br />

n − 2<br />

.<br />

.<br />

.<br />

1<br />

0<br />

y1<br />

y2<br />

. . .<br />

yn<br />

Eingabe<br />

Es gibt z2, . . . , zn+1 = z ′ in < i Schritten<br />

<br />

, sodass (zj, yj, Bj) ⊢ ∗ (zj+1, ε, ε) <strong>für</strong> 1 ≤ j ≤ n. Nach<br />

Induktionsvoraussetzung folgt d<strong>an</strong>n [zj, Bj, zj+1] ⇒∗ yj <strong>für</strong> 1 ≤ j ≤ n.<br />

Weiterhin ist δ(z, a, A) ∋ (z1, B1 . . . Bn) (1. Schritt <strong>der</strong> obigen Rechnung), also<br />

ist [z, A, zn+1] → a[z1, B1, z2][z2, B2, z3] . . . [zn, Bn, zn+1] ∈ P nach Definition<br />

von G.<br />

Zusammengenommen ergibt sich folgende Ableitung:<br />

[z, A, zn+1]<br />

⇒ a[z1, B1, z2][z2, B2, z3] . . . [zn, Bn, zn+1]<br />

<br />

=z ′<br />

⇒ ay1[z2, B2, z3] . . . [zn, Bn, zn+1]<br />

⇒ ∗ ay1y2 . . . yn = x<br />

” ⇒“: Induktion über die Länge i <strong>der</strong> Ableitung in G:<br />

i = 1: [z, A, z ′ ] ⇒ x, also [z, A, z ′ ] → x ∈ P , also δ(z, x, A) ∋ (z ′ , ε), also<br />

(z, x, A) ⊢ (z ′ , ε, ε).<br />

i > 1: Sei [z, A, z ′ ] ⇒ a[z1, B1, z2][z2, B2, z3] . . . [zn, Bn, zn+1] ⇒ ∗ x mit z ′ = zn+1.<br />

Schreibe x als x = ay1 . . . yn mit [zj, Bj, zj+1] ⇒ ∗ yj<br />

<br />

in < i Schritten<br />

<strong>für</strong> 1 ≤ j ≤ n.<br />

Nach Induktionvoraussetzung folgt d<strong>an</strong>n (zj, yj, Bj) ⊢ ∗ (zj+1, ε, ε) <strong>für</strong> 1 ≤ j ≤ n.<br />

Aus dem ersten Schritt <strong>der</strong> Ableitung folgt außerdem δ(z, a, A) ∋ (z1, B1 . . . Bn),<br />

also (z, a, A) ⊢ (z1, ε, B1 . . . Bn).


2.3 Deterministisch-kontextfreie Sprachen 34<br />

Zusammen ergibt sich folgende Rechnung:<br />

(z, ay1 . . . yn,<br />

A) ⊢ (z1, y1 . . . yn, B1 . . . Bn)<br />

<br />

=x ⊢∗ (z2, y2 . . . yn, B2 . . . Bn)<br />

⊢∗ (zn+1<br />

<br />

=z ′<br />

, ε, ε)<br />

Wähle in <strong>der</strong> Behauptung z = z0 und A = #. D<strong>an</strong>n gilt:<br />

[z0, #, z] ⇒ ∗ x gdw. (z0, x, #) ⊢ ∗ (z, ε, ε) <strong>für</strong> alle z ∈ Z.<br />

Da S → [z0, #, z ′ ] ∈ P <strong>für</strong> alle z ′ ∈ Z folgt also:<br />

x ∈ L(G) ⇔ S ⇒ ∗ x<br />

⇔ S ⇒ [z0, #, z] ⇒ ∗ x <strong>für</strong> ein z ∈ Z<br />

⇔ (z0, x, #) ⊢ ∗ (z, ε, ε) <strong>für</strong> ein z ∈ Z<br />

⇔ x ∈ N(M)<br />

(Behauptung) <br />

Korollar: (i) Jede kontextfreie Sprache k<strong>an</strong>n von einem Kellerautomaten mit nur<br />

einem Zust<strong>an</strong>d akzeptiert werden.<br />

(ii) Jede kontextfreie Sprache L mit ε /∈ L k<strong>an</strong>n von einem Kellerautomaten mit nur<br />

einem Zust<strong>an</strong>d akzeptiert werden, <strong>der</strong> keine ε-Übergänge besitzt.<br />

2.3 Deterministisch-kontextfreie Sprachen<br />

Definition: Ein Kellerautomat M = (Z, Σ, Γ, δ, z0, #, E) heißt deterministischer Kellerautomat<br />

(DKA), falls <strong>für</strong> alle z ∈ Z, a ∈ Σ, A ∈ Γ gilt:<br />

|δ(z, ε, A)| + |δ(z, a, A)| ≤ 1.<br />

Eine kontextfreie Sprache L heißt deterministisch kontextfrei (L ∈ DCFL), falls es<br />

einen DKA M mit L = L(M) gibt.<br />

Es gilt: {ww R | w ∈ {0, 1} ∗ } ∈ CFL \ DCFL. Also: DCFL CFL.<br />

Ziel: DCFL ist abgeschlossen unter Komplement.<br />

Idee: Der Maschinentyp ist deterministisch, daher k<strong>an</strong>n m<strong>an</strong> Endzustände und Nicht-<br />

Endzustände vertauschen.<br />

Probleme:


2.3 Deterministisch-kontextfreie Sprachen 35<br />

A Der DKA akzeptiert seine Eingabe nicht, weil er seine Eingabe nicht vollständig<br />

liest, erbleibt während <strong>der</strong> Rechnung stecken. Mögliche Ursachen: undefinierter<br />

Eintrag in <strong>der</strong> δ-Funktion, leerer Keller, Endlosschleife von ε-Übergängen.<br />

⇒ Beim Vertauschen von Endzuständen und Nicht-Endzuständen bleibt <strong>der</strong> Automat<br />

erneut stecken und akzeptiert nicht.<br />

B Der DKA akzeptiert x, macht aber nach dem Lesen <strong>der</strong> vollständigen Eingabe<br />

noch eine Folge von ε-Übergängen, wobei er sowohl Endzustände als auch Nicht-<br />

Endzustände <strong>an</strong>nimmt.<br />

⇒ Nach dem Vertauschen von Endzuständen und Nicht-Endzuständen wird x<br />

erneut akzeptiert.<br />

Satz: Das Komplement je<strong>der</strong> DCFL ist eine DCFL.<br />

Beweis: Sei L ∈ DCFL, L = L(M) <strong>für</strong> DKA M = (Z, Σ, Γ, δ, z0, #, E). O. B. d. A.<br />

nehmen wir <strong>an</strong>, dass M seine Eingabe stets g<strong>an</strong>z liest (Problem A, Übungsaufgabe).<br />

Zu Problem B: Definiere M ′ = (Z ′ , Σ, Γ, δ ′ , z0 ′ , #, E ′ ) wie folgt:<br />

– Z ′ = Z × {1, 2, 3}<br />

Idee: Die zweite Komponente merkt sich, ob seit dem Lesen des letzten Zeichens ein<br />

Endzust<strong>an</strong>d <strong>an</strong>genommen wurde (Zust<strong>an</strong>d ∈ Z × {1}) o<strong>der</strong> nicht (Zust<strong>an</strong>d ∈ Z × {2}).<br />

Vor dem Lesen des nächsten Zeichens wechseln wir von Z × {2} nach Z × {3}.<br />

– E ′ = Z × {3}<br />

– z0 ′ <br />

(z0, 1), falls z0 ∈ E<br />

=<br />

(z0, 2), falls z0 /∈ E<br />

Und δ ′ definiert wie folgt:<br />

(i) Falls δ(z, ε, A) = {(z ′ , γ)}, d<strong>an</strong>n<br />

δ ′ ((z, k), ε, A) = {((z ′ , k ′ ), γ)},<br />

wobei k ′ = 1, falls z ′ ∈ E o<strong>der</strong> k = 1, k ′ = 2 sonst.<br />

(ii) Falls δ(z, a, A) = {(z ′ , γ)} <strong>für</strong> a ∈ Σ, d<strong>an</strong>n<br />

und<br />

δ ′ ((z, 2), ε, A) = {((z, 3), A)}<br />

δ ′ ((z, 1), a, A) = δ ′ ((z, 3), a, A) = {((z ′ , k ′ ), γ)},<br />

wobei k ′ = 1, falls z ′ ∈ E, k ′ = 2 sonst.


2.4 Entscheidbarkeitsfragen 36<br />

Behauptung: Es gilt L(M) = L(M ′ ).<br />

Beweis <strong>der</strong> Behauptung: Sei a1 . . . <strong>an</strong> ∈ L(M). D<strong>an</strong>n nimmt M einen Zust<strong>an</strong>d aus E<br />

<strong>an</strong>, nachdem <strong>an</strong> gelesen wurde (evtl. erst nach einer Folge von ε-Übergängen). M ′<br />

wechselt d<strong>an</strong>n in einen Zust<strong>an</strong>d aus Z × {1}. Bei weiteren ε-Übergängen bleibt <strong>der</strong><br />

Zust<strong>an</strong>d von M ′ aus Z × {1}. ⇒ M ′ akzeptiert nicht.<br />

Sei nun a1 . . . <strong>an</strong> /∈ L(M). D<strong>an</strong>n sind alle Zustände, die M nach dem Lesen von <strong>an</strong><br />

<strong>an</strong>nimmt nicht aus E. D<strong>an</strong>n sind die entsprechenden Zustände von M ′ aus Z × {2}.<br />

Nach <strong>der</strong> Simulation <strong>der</strong> Bewegungen von M geht M ′ nun in einen Zust<strong>an</strong>d aus Z ×<br />

{3} = E ′ über. ⇒ M ′ akzeptiert.<br />

Bemerkung: – DCFL ist nicht unter Schnitt abgeschlossen<br />

(Seite 23f: es gilt L1, L2 ∈ DCFL).<br />

– DCFL ist nicht unter Vereinigung abgeschlossen.<br />

(Falls doch, d<strong>an</strong>n wäre DCFL nach de Morg<strong>an</strong> unter Schnitt abgeschlossen, denn<br />

L1 ∩ L2 = L1 ∪ L2.)<br />

Definition: Eine Sprache L ⊆ Σ ∗ hat die Präfixeigenschaft (L ist präfixfrei), falls <strong>für</strong><br />

alle w ∈ L gilt: kein echtes Präfix von w ist in L, d. h.<br />

w ∈ L ⇒ ∀u, v ∈ Σ + (w = uv ⇒ u /∈ L) .<br />

Es gilt: Die von deterministischen Kellerautomaten mit leerem Keller akzeptiertem<br />

Sprachen sind genau die deterministisch kontextfreien Sprachen mit Präfixeigenschaft,<br />

die sog. LR(0)-Sprachen (z. B. PASCAL).<br />

Es gilt: L ∈ DCFL ⊆ Σ ∗ ⇒ L ′ = L · {$} ∈ DCFL und präfixfrei <strong>für</strong> $ /∈ Σ.<br />

2.4 Entscheidbarkeitsfragen<br />

Das Postsche Korrespondenzproblem<br />

Sei Σ ein Alphabet, |Σ| ≥ 2. Das Postsche Korrespondenzproblem (PCP) über Σ ist<br />

definiert wie folgt:<br />

Gegeben: Eine endliche Folge von Paaren C = ((x1, y1), (x2, y2), . . . , (xk, yk))<br />

mit xi, yi ∈ Σ + <strong>für</strong> 1 ≤ i ≤ k.<br />

Frage: Gibt es i1, i2, . . . , in mit iµ ∈ {1, . . . , k}, 1 ≤ µ ≤ n, sodass<br />

xi1xi2 . . . xin = yi1yi2 . . . yin?


2.4 Entscheidbarkeitsfragen 37<br />

Im Fall einer positiven Antwort heißt C lösbar und die Folge (i1, . . . , in) heißt Lösung<br />

von C.<br />

Beispiel: Betrachte folgende Inst<strong>an</strong>z C = ((1, 101), (10, 00), (011, 11)) des Postschen<br />

Korrespondenzproblems.<br />

Schreibe die Folgeglie<strong>der</strong> unterein<strong>an</strong><strong>der</strong>:<br />

Es ergibt sich:<br />

1 10 011<br />

101 00 11<br />

i1 = 1 i2 = 3 i3 = 2 i4 = 3<br />

1 011 10 011<br />

101 11 00 11<br />

Eine Lösung ist damit: (1, 3, 2, 3), also C ∈ PCP.<br />

Beispiel: Ist das Postsche Korrespondenzproblem <strong>für</strong> folgende Inst<strong>an</strong>z lösbar?<br />

(Übungsaufgabe)<br />

001 01 01 10<br />

0 011 101 001<br />

Beobachtung: PCP ist rekursiv-aufzählbar. Betrachte folgenden Algorithmus:<br />

Eingabe: C = ((x1, y1), . . . , (xk, yk))<br />

Methode:<br />

for n := 1, 2, 3, . . .<br />

for alle Folgen i1, . . . , in ∈ {1, . . . , k}<br />

if xi1xi2 . . . xin = yi1yi2 . . . yin then Ausgabe ” C ist lösbar“ und stopp.<br />

Der Algorithmus stoppt gdw. C eine Lösung besitzt. Also ist dieser Algorithmus ein<br />

Semi-Entscheidungsalgorithmus <strong>für</strong> PCP und ist PCP rekursiv-aufzählbar.<br />

Ziel: PCP ist nicht entscheidbar.<br />

Definition: Das Halteproblem ist die Sprache<br />

H = {〈M, w〉 | M ist eine deterministische 1-B<strong>an</strong>d-TM, die bei Eingabe w hält}.<br />

H ist nicht entscheidbar. (Notation: 〈x〉 ist eine berechenbare Kodierung von x.)


2.4 Entscheidbarkeitsfragen 38<br />

Definition: Seien A ⊆ Σ ∗ , B ⊆ Γ ∗ Sprachen. A heißt reduzierbar auf B (in Zeichen:<br />

A ≤ B), falls es eine totale berechenbare Funktion f : Σ ∗ → Γ ∗ gibt, sodass <strong>für</strong> alle<br />

x ∈ Σ ∗ gilt:<br />

x ∈ A ⇔ f(x) ∈ B<br />

Ist A nicht entscheidbar, so ist B nicht entscheidbar. Ist B entscheidbar, so ist A<br />

entscheidbar.<br />

Ziel: H ≤ PCP<br />

Wir betrachten zunächst das modifiziertes Postsches Korrespondenzproblem (MPCP)<br />

und zeigen dessen Unentscheidbarkeit. Das Problem MPCP ist definiert wie folgt:<br />

Gegeben: C = ((x1, y1), . . . , (xk, yk)) wie bei PCP<br />

Frage: Gibt es eine Folge i2, . . . , in ∈ {1, . . . , k}, sodass x1xi2 . . . xin =<br />

y1yi2 . . . yin?<br />

Ziel: H ≤ MPCP ≤ PCP<br />

Lemma: H ≤ MPCP<br />

Beweis: Wir definieren eine totale berechenbare Funktion f, die Paare 〈M, w〉 in Inst<strong>an</strong>zen<br />

von MPCP überführt, sodass<br />

〈M, w〉 ∈ H ⇔ f(〈M, w〉) ∈ MPCP.<br />

Sei w ∈ Σ ∗ und M = (Z, Σ, Γ, δ, z0, , E) eine Turingmaschine, wobei<br />

– Z die Zust<strong>an</strong>dsmenge,<br />

– Σ das Eingabealphabet,<br />

– Γ, Σ ⊂ Γ das Arbeitsalphabet,<br />

– δ : Z × Σ → Z × Σ × {L, N, R} die Überführungsfunktion,<br />

– z0 ∈ Z <strong>der</strong> Startzust<strong>an</strong>d,<br />

– das Leersymbol und<br />

– und E ⊆ Z die Endzust<strong>an</strong>dsmenge ist.<br />

Sei o. B. d. A. δ(z, a) undefiniert <strong>für</strong> alle z ∈ E, a ∈ Σ und Z ∩ Γ = ∅.<br />

Eine Konfiguration von M ist ein Wort über Γ ∗ · Z · Γ ∗ , wobei uzv mit u, v ∈ Γ ∗ und<br />

z ∈ Z bedeutet:


2.4 Entscheidbarkeitsfragen 39<br />

– M ist im Zust<strong>an</strong>d z.<br />

– <strong>der</strong> B<strong>an</strong>dinhalt (Inhalt aller B<strong>an</strong>dzellen, die bisher besucht worden sind) ist uv.<br />

– Der Kopf von M steht auf dem ersten Zeichen von v.<br />

M akzeptiert w gdw. es gibt Konfigurationen K0, K1, . . . , Kt mit K0 = z0w, Kt ∈<br />

Γ ∗ · E · Γ ∗ und <strong>für</strong> 1 ≤ i < t geht Ki+1 durch einen Schritt von M aus Ki hervor.<br />

Wir konstruieren nun eine Inst<strong>an</strong>z C des MPCP durch Angabe von Paaren (xi, yi):<br />

Das Alphabet des MPCP ist Z ∪ Γ ∪ {#}, wobei # /∈ Z ∪ Γ.<br />

(i) ” Startregel“<br />

(x1, y1) = (##, ##z0w#)<br />

(ii) ” Überführungsregeln“<br />

Ist δ(z, a) = (z ′ , b, N), so nimm das Paar (za, z ′ b) auf.<br />

Ist δ(z, a) = (z ′ , b, R), so nimm das Paar (za, bz ′ ) auf.<br />

Ist δ(z, a) = (z ′ , b, L), so nimm das Paar (cza, z ′ cb) <strong>für</strong> alle c ∈ Σ und zusätzlich<br />

das Paar (#za, #z ′ b) auf.<br />

Ist δ(z, ) = (z ′ , b, N), so nimm zusätzlich (z#, z ′ b#) auf.<br />

Ist δ(z, ) = (z ′ , b, R), so nimm zusätzlich (z#, bz ′ #) auf.<br />

Ist δ(z, ) = (z ′ , b, L), so nimm zusätzlich (cz#, z ′ cb#) <strong>für</strong> alle c ∈ Σ auf.<br />

(iii) ” Kopierregeln“<br />

Für alle a ∈ Σ ∪ {#} nimm das Paar (a, a) auf.<br />

(iv) ” Löschregeln“<br />

Für alle z ∈ E und a ∈ Σ nimm folgende (az, z) und (za, z) auf.<br />

(v) ” Abschlussregeln“<br />

Für alle z ∈ E nimm das Paar (z##, #) auf.<br />

Behauptung: M stoppt bei Eingabe w ⇔ C hat eine Lösung.<br />

Beweis <strong>der</strong> Behauptung: ” ⇒“: M stoppt bei Eingabe w. D<strong>an</strong>n gibt es eine Folge<br />

K0, K1, . . . , Kt wie oben erläutert. Eine Lösung von C ergibt sich nun wie folgt:<br />

– Beginne mit (x1, y1)<br />

##<br />

##z0w#<br />

Der untere String ist immer länger als <strong>der</strong> obere. Wenn oberer und unterer String<br />

mit # enden, d<strong>an</strong>n ist <strong>der</strong> untere String genau eine Konfiguration länger als <strong>der</strong><br />

obere.


2.4 Entscheidbarkeitsfragen 40<br />

– Wende Kopier- und Überführungsregeln <strong>an</strong>, bis folgende Situation entsteht:<br />

## K0# K1# · · · Kt−1#<br />

## K0# K1# K2# · · · Kt#<br />

– Wende Lösch- und Kopierregeln <strong>an</strong>, bis folgende Situation entsteht:<br />

## K0# K1# · · · Kt−1# Kt# · · · #<br />

## K0# K1# K2# · · · Kt# · · · # z#<br />

wobei z ∈ E.<br />

– Wende passende Abschlussregel <strong>an</strong>:<br />

· · · # z# #<br />

· · · # z# #<br />

Insgesamt folgt damit C ∈ MPCP.<br />

” ⇐“: Besitzt C eine Lösung i1, . . . , in mit i1 = 1, so lässt sich mit ähnlichen Argumenten<br />

eine haltende Rechnung von M konstruieren.<br />

Korollar: MPCP ist unentscheidbar.<br />

Lemma: MPCP ≤ PCP.<br />

Beweis: Sei C eine Inst<strong>an</strong>z des MPCP über dem Alphabet Σ. Seien #, $ /∈ Σ. Für<br />

w = a1 . . . am ∈ Σ + , definiere<br />

# w # = #a1#a2# . . . #am#<br />

w # = a1#a2# . . . #am#<br />

# w = #a1#a2# . . . #am<br />

Ist nun C = ((x1, y1), . . . , (xk, yk)), so definiere f als<br />

f ist total und berechenbar.<br />

f(C) = (( # x #<br />

1 ,# y1), (x #<br />

1 ,# y1), . . . , (x #<br />

k ,# yk), ($, #$)).<br />

Behauptung: C ∈ MPCP ⇔ f(C) ∈ PCP.<br />

Beweis <strong>der</strong> Behauptung: ” ⇒“: Sei (i1, i2, . . . , in) mit i1 = 1 eine Lösung von C, d. h.<br />

xi1xi2 . . . xin = yi1yi2 . . . yin.<br />

D<strong>an</strong>n ist (1, i2 + 1, . . . , in + 1, k + 2) eine Lösung von f(C).<br />

” ⇐“: Ist (i1, . . . , in) eine Lösung von f(C), so muss gelten:<br />

i1 = 1, i2, . . . , in−1 ∈ {2, . . . , k + 1} und in = k + 2<br />

D<strong>an</strong>n ist (1, i2 − 1, . . . , in−1 − 1) eine Lösung von C.


2.4 Entscheidbarkeitsfragen 41<br />

Korollar: PCP ist unentscheidbar.<br />

Satz: Das PCP-Problem über Σ ist schon <strong>für</strong> |Σ| = 2 unentscheidbar.<br />

Beweis: Sei Σ ein beliebiges Alphabet, Σ = {b1, . . . , bm}. Für 1 ≤ j ≤ m definiere<br />

bj = 01 j . Für w ∈ Σ + , w = a1 . . . <strong>an</strong>, setze w = a1 . . . <strong>an</strong>. D<strong>an</strong>n gilt:<br />

((x1, y1), . . . , (xn, yn)) ∈ PCP (über Σ)<br />

⇔ ((x1, y1), . . . , (xn, yn)) ∈ PCP (über {0, 1})<br />

Bemerkung: – Das PCP über Σ mit |Σ| = 1 ist entscheidbar.<br />

– Sei PCPk das PCP-Problem eingeschränkt auf Eingaben mit genau k Paaren.<br />

D<strong>an</strong>n gilt:<br />

– Die Probleme PCP1 und PCP2 sind entscheidbar.<br />

– PCPk ist <strong>für</strong> k ≥ 7 unentscheidbar.<br />

– Die Entscheidbarkeit des PCPk <strong>für</strong> k ∈ {3, . . . , 6} ist offen.<br />

Entscheidbarkeit <strong>für</strong> kontextfreie Sprachen<br />

Satz: Das Schnittproblem <strong>für</strong> DCFL, also das Problem<br />

Gegeben: Kontextfreie Grammatiken G1, G2 mit L(G1), L(G2) ∈ DCFL.<br />

Frage: Ist L(G1) ∩ L(G2) = ∅?<br />

ist unentscheidbar.<br />

Beweis: Wir geben eine Reduktion des PCP auf das Schnittproblem <strong>für</strong> DCFL <strong>an</strong>. Sei<br />

C = ((x1, y1), . . . , (xn, yn)) ein Inst<strong>an</strong>z von PCP über Σ = {0, 1}. Definiere die Grammatik<br />

G1 über dem Alphabet Σ = {0, 1, $, a1, . . . , ak} als G1 = ({S, A, B}, Σ, P, S) mit<br />

folgenden Produktionen:<br />

(w R ist dabei das Wort w gespiegelt.)<br />

Die von G1 erzeugte Sprache ist:<br />

S → A$B<br />

A → a1Ax1| . . . |akAxk|a1x1| . . . |akxk<br />

B → y R 1 Ba1| . . . |y R k Bak|y R 1 a1| . . . |y R k ak<br />

L(G1) = ain . . . ai1xi1 . . . xin$y R jm . . . yR j1 aj1 . . . ajm<br />

<br />

n, m ≥ 1, iµ, jν ∈ {1, . . . , k} .<br />

Definiere die Grammatik G2 = ({S, T }, Σ, P, S) mit folgenden Produktionen:


2.4 Entscheidbarkeitsfragen 42<br />

Die von G2 erzeugte Sprache ist:<br />

S → a1Sa1| . . . |akSak|T<br />

T → 0T 0|1T 1|$<br />

L(G1) = uv$v R u R u ∈ {a1, . . . , <strong>an</strong>} ∗ , v ∈ {0, 1} ∗ .<br />

Offenbar ist L(G1), L(G2) ∈ DCFL.<br />

Es gilt:<br />

C besitzt die Lösung i1, . . . , in gdw.<br />

ain . . . ai1xi1 . . . xin$y R jn . . . yR j1 ai1 . . . ain ∈ L(G1) ∩ L(G2).<br />

C ↦→ 〈G1, G2〉 ist eine Reduktion von PCP auf das Schnittproblem <strong>für</strong> DCFL.<br />

Korollar: – Das Schnittproblem <strong>für</strong> CFL ist unentscheidbar.<br />

– Das Schnittproblem <strong>für</strong> deterministische Kellerautomaten, d. h. das Problem<br />

ist unentscheidbar.<br />

Gegeben: Deterministische Kellerautomaten M1, M2.<br />

Frage: Ist L(M1) ∩ L(M2) = ∅?<br />

Satz: Das Äquivalenzproblem <strong>für</strong> kontextfreie Sprachen, also das Problem<br />

ist unentscheidbar.<br />

Gegeben: Kontextfreie Grammatiken G1, G2.<br />

Frage: Ist L(G1) = L(G2)?<br />

Beweis: Reduktion vom Schnittproblem <strong>für</strong> determistische Kellerautomaten. Seien<br />

M1, M2 deterministische Kellerautomaten. D<strong>an</strong>n gilt:<br />

L(M1) ∩ L(M2) = ∅<br />

⇔ L(M1) ⊆ L(M2)<br />

⇔ L(M1) ⊆ L(M C 2 )<br />

⇔ L(M1) ∪ L(M C 2 ) = L(M C 2 )<br />

⇔ L(M3) = L(M C 2 ),<br />

L(M1)<br />

L(M2)<br />

wobei M C 2 DKA mit L(M C 2 ) = L(M2) und M3 ein KA mit L(M1) ∪ L(M C 2 ) ist. Also<br />

(M1, M2) /∈ Schnittproblem ⇔ (M3, M C 2 ) ∈ Äquivalenzproblem und (M1, M2) ↦→<br />

(M3, M C 2 ) ist die gewünschte Reduktion.


2.4 Entscheidbarkeitsfragen 43<br />

Bemerkung: Das Äquivalenzproblem <strong>für</strong> DCFL bzw. DKAen ist entscheidbar.<br />

Satz: Das Problem Non-empty Complement (NEC) <strong>für</strong> kontextfreie Sprachen, also<br />

das Problem<br />

ist unentscheidbar.<br />

Gegeben: Kontextfreie Grammatik über einem Alphabet Σ.<br />

Frage: Ist L(G) = Σ ∗ ?<br />

Beweis: Seien G1 und G2 wie im Beweis des Schnittproblems auf Seite 41. D<strong>an</strong>n gilt:<br />

C ∈ PCP ⇔ L(G1) ∩ L(G2) = ∅<br />

⇔ L(G1) ∩ L(G2) = Σ ∗<br />

⇔ L(G1) ∪ L(G2) = Σ ∗<br />

⇔ L(G4) = Σ ∗ ,<br />

wobei ist G4 eine kontextfreie Grammatik mit L(G4) = L(G1) ∪ L(G2) ist. Die Abbildung<br />

C ↦→ G4 reduziert PCP auf NEC.<br />

Satz: Das Problem<br />

ist unentscheidbar.<br />

Gegeben: Kontextfreie Grammatiken G1 und G2.<br />

Frage: Ist L(G1) ∩ L(G2) kontextfrei?<br />

Beweis: Sei C eine Inst<strong>an</strong>z des Postschen Korrespondenzproblems. Seien G1 und G2<br />

die Grammatiken aus dem Beweis <strong>der</strong> Unentscheidbarkeit des Schnittproblems von<br />

Seite 41.<br />

Behauptung: C ist lösbar gdw. L(G1) ∩ L(G2) /∈ CFL.<br />

D<strong>an</strong>n ist das Komplement des PCPs reduzierbar auf das Problem in <strong>der</strong> Aussage des<br />

Satzes.<br />

Beweis <strong>der</strong> Behauptung: Sei C nicht lösbar. D<strong>an</strong>n ist L(G1) ∩ L(G2) = ∅, also L(G1) ∩<br />

L(G2) ∈ CFL.<br />

Sei C lösbar. D<strong>an</strong>n besitzt C hat unendlich viele Lösungen, also |L(G1) ∩ L(G2)| = ∞.<br />

Sei L := L(G1) ∩ L(G2). Wir zeigen L /∈ CFL mit Hilfe des Pumping-Lemmas: Angenommen<br />

L sei kontextfrei, d<strong>an</strong>n existiert ein n ∈ N gemäß Pumping-Lemma. Wähle<br />

z ∈ L mit<br />

z = aim . . . ai1xi1 . . . xim$y R im . . . yR i1 ai1 . . . aim<br />

mit m > n. z existiert, da |L| = ∞. Damit gilt |z| > n. Sei z = uvwxy eine Zerlegung<br />

von z mit |vx| > 0 und |vwx| ≤ n.<br />

Wir zeigen: uwy /∈ L.


2.4 Entscheidbarkeitsfragen 44<br />

Fall 1: vx enthält das Zeichen $ ⇒ uwy enthält kein $, also z /∈ L.<br />

Fall 2: w enthält das Zeichen $ ⇒ vx ∈ {0, 1} ∗ , da |vwx| ≤ n ⇒ uwy /∈ L(G1), also<br />

uwy /∈ L.<br />

Fall 3: vwx enthält kein $ ⇒ v und x sind beide links vom $ o<strong>der</strong> beide rechts vom<br />

$ ⇒ uwy /∈ L(G2), also uwy /∈ L.<br />

Satz: Das Problem<br />

ist unentscheidbar.<br />

Gegeben: Kontextfreie Grammatik G.<br />

Frage: Ist L(G) kontextfrei?<br />

Beweis: Sei C eine Inst<strong>an</strong>z des PCPs, G1 und G2 wie oben definiert. Konstruiere<br />

eine kontextfreie Grammatik G4 mit L(G4) = L(G1) ∩ L(G2) (wie im Beweis <strong>für</strong> das<br />

NEC-Problem, Seite 43). D<strong>an</strong>n gilt:<br />

C ist nicht lösbar ⇔ L(G1) ∩ L(G2) ∈ CFL ⇔ L(G4) ∈ CFL<br />

(Reduktion vom Komplement des PCPs)<br />

Satz: Das Problem<br />

ist unentscheidbar.<br />

Gegeben: Kontextfreie Grammatik G.<br />

Frage: Ist L(G) regulär?<br />

Beweis: Seien C, G1, G2 und G4 definiert wie oben. D<strong>an</strong>n gilt:<br />

C ist nicht lösbar ⇔ L(G1) ∩ L(G2) = ∅<br />

⇔ L(G1) ∩ L(G2) ∈ REG<br />

⇔ L(G4) ∈ REG<br />

⇔ L(G4) ∈ REG,<br />

wobei REG die Klasse aller regulären Sprachen bezeichne.<br />

Satz: Das Problem<br />

Gegeben: Kontextfreie Grammatik G.<br />

Frage: Ist L(G) ∈ DCFL?


2.4 Entscheidbarkeitsfragen 45<br />

ist unentscheidbar.<br />

Beweis: Seien C, G1, G2 und G4 definiert wie oben. D<strong>an</strong>n gilt:<br />

C ist nicht lösbar ⇔ L(G1) ∩ L(G2) = ∅<br />

⇔ L(G1) ∩ L(G2) ∈ DCFL<br />

⇔ L(G4) ∈ DCFL<br />

⇔ L(G4) ∈ DCFL<br />

Entscheidbare Probleme <strong>für</strong> kontextfreie Sprachen<br />

Lemma: Sei G = (V, Σ, P, S) eine kontextfreie Grammatik in Chomsky-Normalform.<br />

D<strong>an</strong>n gilt:<br />

(i) L(G) = ∅ ⇔ es gibt x ∈ L(G) mit |x| < 2 |V | .<br />

(ii) |L(G)| = ∞ ⇔ es gibt x ∈ L(G) mit 2 |V | ≤ |x| < 2 |V |+1 .<br />

Beweis: zu (i): Anwendung des Pumping-Lemmas <strong>für</strong> kontextfreie Sprachen. Konst<strong>an</strong>te<br />

n aus dem Pumping-Lemma ist gerade 2 |V | .<br />

” ⇐“: klar<br />

” ⇒“: Sei z ein kürzestes Wort in L(G). Wir zeigen: |z| < 2|V | .<br />

Annahme: |z| ≥ 2 |V | . D<strong>an</strong>n ist z nach dem Pumping-Lemma zerlegbar in z = uvwxy<br />

mit |vx| > 0 und |vwx| ≤ 2 |V | und uv i wx i y ∈ L <strong>für</strong> i ∈ N, insbeson<strong>der</strong>e also uwy ∈<br />

L(G).<br />

Aber |uwy| = |z| − |vx| < |z| und das ist ein Wi<strong>der</strong>spruch <strong>zur</strong> Wahl von z.<br />

zu (ii): siehe Übung.<br />

Satz: Das Leerheitsproblem <strong>für</strong> kontextfreie Sprachen, also das Problem<br />

ist entscheidbar.<br />

Gegeben: Kontextfreie Grammatik G.<br />

Frage: Ist L(G) = ∅?<br />

Beweis: Sei G eine kontextfreie Grammatik. Folgen<strong>der</strong> Algorithmus leistet das Gewünschte:<br />

(i) Bestimme G ′ in Chomsky-Normalform mit L(G) = L(G ′ ).


3 Kontextsensitive Sprachen und Typ-0-Sprachen 46<br />

(ii) Setze n := Anzahl <strong>der</strong> Nichtterminale in G ′ .<br />

(iii) Für alle z mit |z| < 2 n überprüfe, ob z ∈ L(G ′ ) (z.B. mit CYK-Algorithmus).<br />

(iv) Antwort ” ja“, falls kein z ∈ L(G) gefunden, sonst ” nein“.<br />

Satz: Das Endlichkeitsproblem <strong>für</strong> kontextfreie Sprachen, also das Problem<br />

ist entscheidbar.<br />

Gegeben: Kontextfreie Grammatik G.<br />

Frage: Ist |L(G)| = ∞?<br />

Beweis: Analog zum obigen Algorithmus mit Teil (ii) des vorhergehenden Lemmas.<br />

Übersicht <strong>der</strong> Entscheidbarkeitsprobleme<br />

( √ ˆ= entscheidbar)<br />

Wortproblem<br />

Leerheitsproblem<br />

Endlichkeitsproblem<br />

Äquivalenzproblem<br />

Schnittproblem<br />

Nichtleeres Komplement<br />

REG CFL<br />

√ √<br />

√ √<br />

√ √<br />

√<br />

√<br />

√<br />

3 Kontextsensitive Sprachen und Typ-0-Sprachen<br />

Sei G = (V, Σ, P, S) eine Grammatik. Ist P ⊆ (V ∪ Σ) + × (V ∪ Σ) ∗ , so ist G eine<br />

Typ-0-Grammatik.<br />

Gilt zusätzlich, dass aus (α, β) ∈ P stets |α| ≤ |β| folgt, so heißt G Typ-1-Grammatik<br />

o<strong>der</strong> kontextsensitive Grammatik (kurz: CSG). (Ausnahme: Die Regel S → ε ist erlaubt,<br />

falls S in keiner rechten Regelseite vorkommt.) CSL ist die Klasse aller kontextsensitiven<br />

Sprachen, d. h. <strong>der</strong> Sprachen, <strong>für</strong> die es eine Typ-1-Grammatik gibt.<br />

Ein linear-beschränkter Automat (LBA) ist eine nichtdeterministische Turingmaschine,<br />

die bei Eingabelänge n Platz ≤ n benötigt, d. h. <strong>der</strong>en Kopf den Bereich des B<strong>an</strong>des,<br />

in dem die Eingabe steht, niemals verlässt. Dazu sei <strong>an</strong>genommen, dass das rechte<br />

Eingabeende speziell markiert ist (siehe unten).


3.1 Maschinenmodelle <strong>für</strong> Typ-0- und Typ-1-Sprachen 47<br />

3.1 Maschinenmodelle <strong>für</strong> Typ-0- und Typ-1-Sprachen<br />

Satz: Eine Sprache hat eine Typ-1-Grammatik gdw. sie von einem LBA akzeptiert<br />

wird.<br />

Beweis: ” ⇒“: Sei L = L(G) mit G = (V, Σ, P, S). Folgen<strong>der</strong> Algorithmus bei Eingabe<br />

w ∈ Σ ∗ prüft, ob S ⇒ ∗ G w:<br />

Eingabe: w ∈ Σ ∗<br />

Methode:<br />

Wähle nichtdeterministisch Regel α → β;<br />

Wähle nichtdeterministisch Vorkommen von β auf dem Arbeitsb<strong>an</strong>d;<br />

Falls solch ein Vorkommen existiert: Ersetze β durch α;<br />

Falls nur noch S übrigbleibt: Akzeptiere;<br />

Ansonsten wie<strong>der</strong>hole obige Schritte.<br />

” ⇐“: Sei L = L(M) <strong>für</strong> einen linear beschänkten Automat M = (Z, Σ, Γ, δ, z0, , E),<br />

wobei<br />

– Z die Menge <strong>der</strong> Zustände,<br />

– Σ das Eingabealphabet,<br />

– Γ das Arbeitsalphabet mit Γ ⊇ Σ ∪ Σ ∪ {}, wobei Σ = {â | a ∈ Σ},<br />

– δ die Überg<strong>an</strong>gsfunktion,<br />

– z0 ∈ Z <strong>der</strong> Startzust<strong>an</strong>d,<br />

– ∈ Γ \ Σ das Leersymbol und<br />

– E ⊆ Z die Menge <strong>der</strong> Endzustände ist.<br />

Eine Konfiguration von M ist ein Wort aus Γ ∗ · (Z × Γ) · Γ ∗ . Dabei bedeutet u(z, a)v<br />

<strong>für</strong> a ∈ Σ u, v ∈ Σ ∗ und z ∈ Z: M ist im Zust<strong>an</strong>d z, <strong>der</strong> B<strong>an</strong>dinhalt ist uav und <strong>der</strong><br />

Kopf befindet sich auf dem Zeichen a.<br />

Beispiel:<br />

. . . a b c d . . .<br />

Diese Situation entspricht <strong>der</strong> Konfiguration a(z, b)cd. Es gilt |a(z, b)cd| = 4.<br />

z


3.1 Maschinenmodelle <strong>für</strong> Typ-0- und Typ-1-Sprachen 48<br />

Die Startkonfiguration von M bei Eingabe w = a1 . . . <strong>an</strong> ist (z0, a1)a2a3 . . . <strong>an</strong>−1ân (ân<br />

symbolisiert die Markierung des rechten R<strong>an</strong>des).<br />

Definiere G = (V, Σ, P, S) wie folgt: Definiere zunächst eine Regelmenge P ′ , die auf<br />

Konfigurationen genau die Arbeitsweise von M nachvollzieht. Der Überg<strong>an</strong>g<br />

δ(z, a) ∋ (z ′ , b, L) führt auf die Regel c(z, a) → (z ′ , c)b <strong>für</strong> alle c ∈ Γ \ {},<br />

δ(z, a) ∋ (z ′ , b, R) führt auf die Regel (z, a)c → b(z ′ , c) <strong>für</strong> alle c ∈ Γ \ {},<br />

δ(z, a) ∋ (z ′ , b, N) führt auf die Regel (z, a) → (z ′ , b).<br />

Es gilt also <strong>für</strong> Konfigurationen K, K ′ von M, dass K ⊢ K ′ gdw. K ⇒ ∗ K ′ mit Regeln<br />

aus P ′ .<br />

Sei ∆ = Γ ∪ (Z × Γ) ein Alphabet <strong>für</strong> Konfigurationen von M. Setze V = {S, A} ∪<br />

(∆ × Σ). D<strong>an</strong>n besteht die Regelmenge P aus folgenden Regeln:<br />

(i) S → ((z0, â), a) <strong>für</strong> a ∈ Σ<br />

S → A(â, a) <strong>für</strong> a ∈ Σ<br />

A → A(a, a) <strong>für</strong> a ∈ Σ<br />

A → ((z0, a), a) <strong>für</strong> a ∈ Σ<br />

Mit diesen Regeln können aus S alle Wörter <strong>der</strong> Form<br />

((z0, a1), a1)(a2, a2)(a3, a3) . . . (<strong>an</strong>−1, <strong>an</strong>−1)(ân, <strong>an</strong>)<br />

<strong>für</strong> a1, . . . , <strong>an</strong> ∈ Σ erzeugt werden.<br />

Die Folge <strong>der</strong> ersten Komponenten entspricht <strong>der</strong> Startkonfiguration von M auf<br />

a1 . . . <strong>an</strong>. Die Folge <strong>der</strong> zweiten Komponenten entspricht <strong>der</strong> Eingabe a1 . . . <strong>an</strong>.<br />

(ii) (A1, a)(A2, b) → (B1, a)(B2, b) <strong>für</strong> A1A2 → B1B2 ∈ P ′<br />

(A, a) → (B, a) <strong>für</strong> A → B ∈ P ′<br />

(A, B ∈ ∆ und a, b ∈ Σ, A, B, A1, A2, B1, B2 ∈ ∆)<br />

Mit diesen Regeln wird auf den ersten Komponenten eine Rechnung von M simuliert.<br />

Das Eingabewort in den zweiten Komponenten bleibt dabei unverän<strong>der</strong>t.<br />

(iii) ((z, a), b) → b <strong>für</strong> z ∈ E und a ∈ Γ, b ∈ Σ<br />

(a, b) → b <strong>für</strong> a ∈ Γ, b ∈ Σ<br />

Mit diesen Regeln können nach Erreichen einer Endkonfiguration alle ersten<br />

Komponenten gelöscht werden. Es bleibt a1 . . . <strong>an</strong> übrig.<br />

Falls also w ∈ L(M), d<strong>an</strong>n gilt S ⇒∗ G w. Die Umkehrung k<strong>an</strong>n <strong>an</strong>alog gezeigt werden.<br />

Insgesamt folgt somit L(M) = L(G).<br />

Korollar: Das Wortproblem <strong>für</strong> Typ-1-Grammatiken ist entscheidbar.<br />

Korollar: Eine Sprache hat eine Typ-0-Grammatik gdw. sie von einer Turingmaschine<br />

akzeptiert wird gdw. sie rekursiv-aufzählbar ist.


3.2 Entscheidbarkeit und Abschlußeigenschaften 49<br />

Beweis: ” ⇒“: Der Algorithmus im obigen Beweis ist ein Semi-Entscheidungsalgorithmus<br />

<strong>für</strong> die gegebene Typ-0-Sprache.<br />

” ⇐“: Grammatik wie oben aus <strong>der</strong> Turingmaschine konstruieren, wobei die Regeln unter<br />

Punkt (i) <strong>für</strong> alle c ∈ Γ erstellt und zusätzlich zu Punkt (iii) die Regeln ((z, a), ) →<br />

ε, (a, ) → ε <strong>für</strong> alle a ∈ Γ hinzugefügt werden müssen.<br />

3.2 Entscheidbarkeit und Abschlußeigenschaften<br />

Das Äquivalenz- und Schnittproblem <strong>für</strong> CSL sind nicht entscheidbar, da sie bereits <strong>für</strong><br />

CFL nicht entscheidbar sind. Betrachte das <strong>für</strong> CFL entscheidbare Leerheitsproblem:<br />

Satz: Das Leerheitsproblem <strong>für</strong> Typ-1-Sprachen ist unentscheidbar.<br />

Beweis: Reduktion vom Komplement des Schnittproblems.<br />

Gegeben seien zwei Typ-1-Grammatiken G1, G2. Konstruiere eine Typ-1-Grammatik<br />

G mit L(G) = L(G1) ∩ L(G2) (dies ist möglich, da CSL unter Schnitt abgeschlossen<br />

ist, s. u.). Es gilt also: (G1, G2) ∈ Schnittproblem ⇔ G /∈ Leerheitsproblem.<br />

Satz: Die Klasse CSL ist unter Vereinigung abgeschlossen.<br />

Beweis: Sei L1 = L(G1), L2 = L(G2) <strong>für</strong> Typ-1-Grammatiken Gi = (Vi, Σ, Pi, Si),<br />

i = 1, 2 und o. B. d. A. S /∈ V1 ∪ V2, V1 ∩ V2 = ∅. D<strong>an</strong>n gilt L1 ∪ L2 = L(G) <strong>für</strong> die<br />

kontextsensitive Grammatik G = (V1∪V2∪{S}, Σ, P1∪P2∪{S → S1, S → S2}, S).<br />

Satz: Die Klasse CSL ist unter Durchschnitt abgeschlossen.<br />

Beweis: Gegeben sei Li = L(Mi) <strong>für</strong> LBAen Mi, i = 1, 2. Definiere LBA M <strong>für</strong> L1 ∩L2<br />

wie folgt:<br />

Eingabe: w ∈ Σ ∗<br />

Methode:<br />

Simuliere M1 auf w; (mit Paaren wie oben, damit w erhalten bleibt)<br />

Simuliere M2 auf w;<br />

Akzeptiere, falls beide Simulationen akzeptieren;<br />

Wir wollen nun den Komplementabschluß von CSL untersuchen:<br />

Sei s: N → N. NSPACE(s) ist die Klasse <strong>der</strong> Sprachen, die von nichtdeterministischen<br />

Turingmaschinen in Platz O(s) akzeptiert werden. Also: CSL = NSPACE(n).<br />

coNSPACE(s) ist Klasse <strong>der</strong> Komplemente von Sprachen aus NSPACE(s). Die Frage,<br />

ob CSL unter Komplement abgeschlossen ist, ist also<br />

NSPACE(n) = coNSPACE(n)?


3.2 Entscheidbarkeit und Abschlußeigenschaften 50<br />

Wir werden diese Frage allgemeiner untersuchen:<br />

s: N → N heißt raumkonstruierbar, falls es eine deterministische Turingmaschine gibt,<br />

die bei Eingabe eines Wortes <strong>der</strong> Länge n genau s(n) Zellen benutzt.<br />

Für s(n) < n verwenden wir dazu Turingmaschinen mit Arbeitsb<strong>an</strong>d und getrenntem<br />

Eingabeb<strong>an</strong>d. Der Platzbedarf ist in diesem Fall die Anzahl <strong>der</strong> benutzten Zellen<br />

auf dem Arbeits<strong>an</strong>d. Für s(n) ≥ n fällt dieses Modell mit dem Modell <strong>der</strong> Einb<strong>an</strong>d-<br />

Turingmaschine zusammen (siehe <strong>Vorlesung</strong> ” Komplexität von Algorithmen“).<br />

Eine Konfiguration einer Turingmaschine mit getrenntem Eingabeb<strong>an</strong>d ist ein Tupel<br />

(Zust<strong>an</strong>d, Inhalt des Arbeitsb<strong>an</strong>des, Kopfposition auf dem Arbeitsb<strong>an</strong>d, Kopfposition<br />

auf dem Eingabeb<strong>an</strong>d).<br />

Für s(n) ≥ log n gilt damit:<br />

|Konfiguration von M bei Eingabelänge n| = O(s(n)).<br />

⇒ Anzahl aller solcher Konfigurationen = 2 O(s(n)) .<br />

⇒ Je<strong>der</strong> akzeptierende Pfad ist zeitbeschränkt durch 2 c·s(n) <strong>für</strong> c ∈ N .<br />

Satz (Immerm<strong>an</strong>n, Szelepczényi): Sei s(n) ≥ log n raumkonstruierbar. D<strong>an</strong>n gilt:<br />

NSPACE(s) = coNSPACE(s).<br />

Beweis: Sei A ∈ NSPACE(s). Sei M eine nichtdeterministische Turingmaschine wie<br />

oben, die A in Platz s akzeptiert. O. B. d. A. sei <strong>an</strong>genommen, alle Pfade von M haben<br />

die gleiche Länge 2 c·s(|x|) bei Eingabe x.<br />

K x start<br />

0 1 0 1 0<br />

accept reject<br />

= t<br />

Notation: K1 M, x K2, falls M bei Eingabe x in genau t Schritten die Konfiguration<br />

K2 aus <strong>der</strong> konfiguration K1 erreichen k<strong>an</strong>n.<br />

Wir nehmen <strong>an</strong>, wir kennen die Zahl<br />

n x M := |{K | K ist s(|x|) raumbeschränkt und K x start<br />

= N<br />

M, x K}|,


3.2 Entscheidbarkeit und Abschlußeigenschaften 51<br />

wobei N = s c·s(|x|) und K x start die Startkonfiguration von M bei Eingabe x ist. D<strong>an</strong>n<br />

akzeptiert folgende nichtdeterministische Turingmaschine die Sprache A:<br />

Eingabe: x<br />

Methode:<br />

K ′ := K x start; m := 0;<br />

for i := 0 to n x M do<br />

begin<br />

rate Konfiguration K mit K > K ′ (in einer lex. Reihenfolge, bei <strong>der</strong> K x start<br />

minimal ist) und K nicht akzeptierend;<br />

rate Pfad Π <strong>der</strong> Länge 2 c·s(|x|) ;<br />

if K x start<br />

K ′ := K;<br />

end;<br />

if m = n x M<br />

= 2 c·s(|x|)<br />

M, x<br />

Problem: Wie berechnet m<strong>an</strong> n x M ?<br />

K mit Π then m := m + 1;<br />

then halte akzeptierend else halte verwerfend;<br />

Sei M so normalisiert, dass es eine eindeutige akzeptierende Konfiguration Kakz =<br />

= 1<br />

(q+, ε, 1, 1) gibt. Weiterhin sei Kakz M, x Kakz <strong>der</strong> einzige Konfigurationsüberg<strong>an</strong>g aus<br />

Kakz, d. h. weitere Schritte führen nicht mehr aus Kakz heraus. Sei N = 2c·s(|x|) eine<br />

obere Schr<strong>an</strong>ke <strong>für</strong> die Anzahl <strong>der</strong> Konfigurationen bei Eingabe x, d<strong>an</strong>n gilt:<br />

M akzeptiert x gdw. K x start<br />

= N<br />

M, x Kakz.<br />

= t<br />

M, x<br />

Definiere nx M (t) := |{K | K ist s(|x|)-raumbeschänkt und Kx start K}| <strong>für</strong> 0 ≤ t ≤<br />

N. Es gilt: nx M = nxM (N). Wir konstruieren eine s-platzbeschränkte nichtdeterministische<br />

Turingmaschine, die nx M (t + 1) berechnet, falls sie nxM (t) gegeben hat (Induktives<br />

Zählen).<br />

Berechnung von nx M (0): nxM (0) = 1.<br />

Berechnung von nx M (t + 1): Sei nxM Konfiguration K, ob Kx = t + 1<br />

start M, x<br />

Wie k<strong>an</strong>n Kx = t + 1<br />

start M, x<br />

(t) gegeben. Prüfe <strong>für</strong> jede s(|x|)-raumbeschränkte<br />

K. Die Anzahl dieser K ist nxM (t + 1).<br />

K geprüft werden?<br />

Seien Ki1 , . . . , Kir alle Vorgängerkonfigurationen von K (r ist konst<strong>an</strong>t und wird<br />

durch M bestimmt). Prüfe, ob Kx = t<br />

start M, x Kiµ <strong>für</strong> ein 1 ≤ µ ≤ r.<br />

Wie k<strong>an</strong>n K x start<br />

= t<br />

M, x Kiµ geprüft werden? Beachte: nx M (t) ist bek<strong>an</strong>nt!<br />

Methode:<br />

m:=0;<br />

for all Konfigurationen K do<br />

begin<br />

rate nichtdeterministisch (A) o<strong>der</strong> (B):


3.2 Entscheidbarkeit und Abschlußeigenschaften 52<br />

(A): Simuliere t Schritte von M;<br />

= t<br />

M, x<br />

if Kx start K then m := m + 1;<br />

(B): tue garnichts;<br />

end;<br />

if m = nx M (t) then halte ablehnend;<br />

else Ausgabe ja“, falls Kiµ eine Konfiguration war, <strong>für</strong> die (A) geraten<br />

”<br />

wurde, <strong>an</strong><strong>der</strong>nfalls Ausgabe nein“;<br />

”<br />

Der Gesamtalgorithmus ergibt sich zu:<br />

Eingabe: x<br />

Methode:<br />

(∗Falls n = n x M<br />

(t), so gilt: reach(x,n,t,K)=true gdw. Kstart = t<br />

M, x K∗)<br />

function reach(x, n, t, K): boole<strong>an</strong>;<br />

begin<br />

m := 0; b := false;<br />

for all Konfigurationen K ′ do<br />

begin<br />

rate nichtdeterministisch (A) o<strong>der</strong> (B):<br />

(A): if K x start<br />

= t<br />

M, x K′ then (∗Simulation von t Schritten von M∗)<br />

begin<br />

m := m + 1;<br />

if K ′ = K then b := true;<br />

end;<br />

(B): nop;<br />

end;<br />

if m = n then return b else reject;<br />

end;<br />

(∗Hauptprogramm:∗)<br />

N := 2 c·s(|x|) ; n := 1;<br />

for t := 1 to N do (∗Schleifeninvari<strong>an</strong>te: n := n x M<br />

begin<br />

k := 0;<br />

for all Konfigurationen K do<br />

begin<br />

f := false;<br />

for all Vorgängerkonfigurationen K ′ von K do<br />

if reach(x, n, t − 1, K ′ ) then f := true;<br />

if f then k := k + 1;<br />

end; (∗k := n x M (t)∗)<br />

n := k;<br />

end; (∗n := n x M (N) = nx M ∗)<br />

if reach(x, n, N, Kakz) then reject else accept;<br />

(t − 1)∗)


3.2 Entscheidbarkeit und Abschlußeigenschaften 53<br />

Die Variablen N, K, K ′ , b, f, n, k, t haben einen Speicherbedarf von O(s), also benötigt<br />

<strong>der</strong> Gesamtalgorithmus ebenfalls O(s) Speicher.<br />

Korollar: – Sei A ⊆ Σ ∗ . D<strong>an</strong>n gilt: A ∈ CSL ⇔ A ∈ CSL.<br />

– NSPACE(n) = coNSPACE(n).<br />

– NL = coNL.<br />

Bemerkung: Es ist offen, ob deterministische LBAen nicht schon ausreichen, um alle<br />

kontextsensitiven Sprachen zu akzeptieren (das so gen<strong>an</strong>nte erste LBA-Problem). In<br />

komplexitätstheoretischer Notation ist dies also die Frage, ob NSPACE(n) = SPACE(n).

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!