Vorlesung
Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I
Bernhard Beckert
Institut für Informatik
Sommersemester 2007
B. Beckert – Grundlagen d. Theoretischen Informatik: SS 2007 1 / 328
Dank
Diese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen von
Katrin Erk (gehalten an der Universität Koblenz-Landau) Jürgen Dix (gehalten an der TU Clausthal)
Ihnen beiden gilt mein herzlicher Dank.
– Bernhard Beckert, April 2007
B. Beckert – Grundlagen d. Theoretischen Informatik: SS 2007 2 / 328
Inhalt von Teil IV
Die vonKellerautomaten(Push-Down-Automaten,PDAs) erkannten Sprachen sind genau die vom Typ 2 (kontextfrei).
Normalformenfür kontextfreie Grammatiken.
Pumping-Lemmafür kontextfreie Sprachen.
Effiziente Algorithmen fürProbleme über PDAs
B. Beckert – Grundlagen d. Theoretischen Informatik: SS 2007 3 / 328
Teil IV
Kellerautomaten und kontextfreie Sprachen
1 Ableitungsbäume
2 Umformung von Grammatiken
3 Normalformen
4 Pumping-Lemma für kontextfreie Sprachen
5 Pushdown-Automaten (PDAs)
6 Abschlusseigenschaften
7 Wortprobleme
8 Der CYK-Algorithmus
B. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 4 / 328
Zur Erinnerung: kontextfreie Grammatiken
Kontextfreie Grammatiken Kontextfreie Regel:
Eine Variable wird durch ein Wort ersetzt, (egal in welchem Kontext die Variable steht) Es wird eineeinzelneVariable ersetzt.
Das Wort in der Conclusio kann Variablen und Terminale inbeliebiger Mischungenthalten.
B. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 5 / 328
Zur Erinnerung: kontextfreie Sprachen
Beispiel 1.1 (kontextfreie Sprachen)
{
anbn|
n∈
N0}
{
anban|
n∈
N0} {
wwR|
w∈ {
a,
b}
∗}
B. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 6 / 328
Ableitungsbäume
Definition 1.2 (Ableitungsbaum zu einer Grammatik) Sei
G
= (
V,
T,
R,
S)
eine kontextfreie Grammatik.EinAbleitungsbaum (parse tree)zuGist ein angeordneter Baum B
= (
W,
E,
v0)
B. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 7 / 328
Ableitungsbäume
Definition 1.3 (Ableitungsbaum zu einer Grammatik, Fortsetzung) Zudem muss gelten:
Jeder Knotenv
∈
W ist mit einem Symbol ausV∪
T∪ {ε}
markiert.Die Wurzelv0ist mitSmarkiert.
Jeder innere Knoten ist mit einer Variablen ausV markiert.
Jedes Blatt ist mit einem Symbol ausT
∪ {ε}
markiert.Istv
∈
Wein innerer Knoten mit Söhnenv1, . . . ,
vk in dieser Anordnung und istAdie Markierung vonv undAi die Markierung vonvi,dann istA
→
A1. . .
Ak∈
R.Ein mitεmarkiertes Blatt hat keinen Bruder
(denn das entspräche einer Ableitung wieA
→
abεBc).B. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 8 / 328
Ableitungsbäume
Ablesen eines Wortes vom Ableitungsbaum Wenn Wortwvon GrammatikGerzeugt wird,
dann gibt es einen Ableitungsbaum mit den Buchstaben vonw als Blätter von links nach rechts.
Merke
Die Blätter eines Ableitungsbaumes sind angeordnet.
Es gibt eine Ordnung unter den Söhnen eines Knotens.
B. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 9 / 328
Ableitungsbäume
Definition 1.4
Seienb1
,
b2Blätter. Dann:b1
<
b2gdw b1, b2sind Brüder, und b1liegt ”links” von b2, oder∃
v,
v1,
v2∈
W v→
v1, v→
v2, v1<
v2 und vi ist Vorfahre von bi für i∈ {
1,
2}
.Definition 1.5
Sei
{
b1, . . . ,
bk}
die Menge aller Blätter inBmitb1< . . . <
bk, und seiAi die Markierung vonbi.Dann heißt das WortA1
. . .
Ak dieFrontvonB.B. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 10 / 328
Ableitungsbäume
Theorem 1.6
Sei G
= (
V,
T,
R,
S)
eine kontextfreie Grammatik.Dann gilt für w
∈
T∗: S= ⇒
∗G wgdw Es existiert ein Ableitungsbaum zu G mit Front w .
Beweis.
Einfach aus den Definitionen.
B. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 11 / 328
Ableitungsbäume: Beispiel
Beispiel 1.7
Grammatik für die Menge aller aussagenlogischen Formeln über den Variablen
{
x,
x0,
x1,
x2, . . .}
:G
= ({
S,
A,
N,
N0}, {
x,
0, . . . ,
9,(, ),∧,∨,¬},
R,
S)
mit der RegelmengeR
= {
S→ (
S∧
S) | (
S∨
S) | ¬
S|
A A→
x|
xNN
→
1N0|
2N0| . . . |
9N0|
0 N0→
0N0|
1N0| . . . |
9N0|
ε}B. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 12 / 328
Ableitungsbäume: Beispiel
Ableitungsbaum für((¬x∧x38)∨x2)
A x S
N
’ N ε S
( S )
( )
S A x
2 S
’ 3 S A x
8
N ε
N N’
B. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 13 / 328
Ableitungsbäume: Beispiel
Ableitung für((¬x∧x38)∨x2)
Der Ableitungsbaum steht für vieleäquivalenteAbleitungen, darunter diese:
S
(
S∨
S) ⇒
((
S∧
S) ∨
S) ⇒ ((¬
S∧
S) ∨
S) ⇒ ((¬
A∧
S) ∨
S) ⇒ ((¬
x∧
S) ∨
S) ⇒ ((¬
x∧
A) ∨
S) ⇒ ((¬
x∧
xN) ∨
S) ⇒ ((¬
x∧
x3N0) ∨
S) ⇒ ((¬
x∧
x38N0) ∨
S) ⇒ ((¬
x∧
x38) ∨
S) ⇒ ((¬
x∧
x38) ∨
A) ⇒ ((¬
x∧
x38) ∨
xN) ⇒ ((¬
x∧
x38) ∨
x2N0) ⇒ ((¬
x∧
x38) ∨
x2)
B. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 14 / 328
Links- und Rechtsableitung
Definition 1.8 (Linksableitung) Eine Ableitung
w1
= ⇒
Gw2= ⇒
G. . . = ⇒
G wnheißtLinksableitungfallswi+1durch Ersetzen der linkesten Variable inwi entsteht für allei
<
n.DieRechtsableitungist analog definiert.
B. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 15 / 328
Mehrdeutigkeit
Definition 1.9 (Mehrdeutigkeit) Eine cf-GrammatikGheißtmehrdeutig
gdw
es gibt ein Wortw
∈
L(
G)
,zu dem es inGzwei verschiedene Linksableitungengibt.
EineSpracheL
∈
L2heißtinhärent mehrdeutig gdwalle kontextfreien Grammatiken fürLsind mehrdeutig.
Bemerkung
Eine GrammatikGist mehrdeutig, gdw :
es gibt zwei verschiedene Ableitungsbäume inGmit gleicher Front.
B. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 16 / 328
Mehrdeutigkeit: Beispiele
Beispiel 1.10 (Mehrdeutigkeit)
EindeutigeGrammatik für aussagenlogische Formeln:
S
→ (
S∧
S) | (
S∨
S) | ¬
S|
A A→
x|
xNN
→
1N0|
2N0| . . . |
9N0|
0 N0→
0N0|
1N0| . . . |
9N0|
ε}MehrdeutigeGrammatik für aussagenlogische Formeln:
K
→
K∧
K|
D Regel mit Klammer-Ersparnis!D
→ (
D∨
D) |
L L→ ¬
A|
AA
→
v|
w|
x|
y|
zB. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 17 / 328
Mehrdeutigkeit: Beispiele
D L A x
D L
y K
K K
K K
D (
D ) D L A
v w
A L
K
K
K D
L A
x y
L D
K K
D ( D D )
L L
A A
w v
B. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 18 / 328
Mehrdeutigkeit: Beispiele
Beispiel 1.11 (Inhärente Mehrdeutigkeit) Die Sprache
L:=
{
aibjck|
i=
j oderj=
k}
istinhärent mehrdeutig.B. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 19 / 328
Teil IV
Kellerautomaten und kontextfreie Sprachen
1 Ableitungsbäume
2 Umformung von Grammatiken
3 Normalformen
4 Pumping-Lemma für kontextfreie Sprachen
5 Pushdown-Automaten (PDAs)
6 Abschlusseigenschaften
7 Wortprobleme
8 Der CYK-Algorithmus
B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 20 / 328
Startsymbol nur links
Einfache Annahme
Im folgenden soll für alle cf-Grammatiken gelten:
Das StartsymbolSkommt nie auf einer rechten Regelseite vor.
Umformung
Ist das bei einer Grammatik nicht gegeben, kann man es wie folgt erreichen:
Führe ein neues StartsymbolSneuein Füge die Regel
Sneu
→
S hinzu.B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 21 / 328
Nutzlose Symbole
Nutzlose Symbole und Regeln: Intuition
Variablen und Symbole, die vom Startsymbol aus unerreichbar sind.
Variablen, von denen aus kein Terminalwort abgeleitet werden kann.
Regeln, die solche Variablen und Symbole enthalten
B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 22 / 328
Nutzlose Symbole
Definition 2.1 ((co-)erreichbare, nutzlose Symbole) SeiG
= (
V,
T,
R,
S)
eine Grammatik.Ein Symbolx
∈ (
V∪
T)
heißterreichbar: Es gibtα
,
β∈ (
V∪
T)
∗:S= ⇒
∗G αxβ co-erreichbar: Es gibtw∈
T∗:x= ⇒
∗G wnutzlos: xist nicht erreichbar oder nicht co-erreichbar.
B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 23 / 328
Nutzlose Symbole
Theorem 2.2 (cf-Grammatik ohne nutzlose Symbole) Ist G
= (
V,
T,
R,
S)
eine cf-Grammatik mit L(
G) 6=
0/, dann existiert eine cf-Grammatik G0= (
V0,
T0,
R0,
S0)
mit:G0ist äquivalent zu G.
Jedes x
∈ (
V∪
T)
ist erreichbar und co-erreichbar.Beweis
Man kannG0ausGeffektiv konstruieren:
Wie im folgenden beschrieben, die nutzlosen Symbole bestimmen.
Diese Symbole und alle Regeln, die sie enthalten, entfernen.
B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 24 / 328
Nutzlose Symbole
Algorithmus zur Berechnung der co-erreichbaren Variablen Input:GrammatikG
= (
V,
T,
R,
S)
Output:co-erreichbare Variablen Alt :=0/
Neu :=
{
A∈
V| ∃
w∈
T∗(
A→
w∈
R)}
whileAlt
6=
Neu{
Alt := Neu
Neu := Alt
∪ {
A∈
V| ∃α ∈ (
T∪
Alt)∗(
A→
α∈
R)}
}
outputNeu
B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 25 / 328
Nutzlose Symbole
Algorithmus zur Berechnung der erreichbaren Symbole Input:GrammatikG
= (
V,
T,
R,
S)
Output:erreichbare Symbole Alt :=0/
Neu :=
{
S}
whileAlt6=
Neu{
Alt :=Neu
Neu :=Alt
∪ {
x∈ (
V00∪
T00) | ∃
A∈
Alt∃α,
β∈ (
V00∪
T00)
∗(
A→
αxβ∈
R)}
}
outputNeu
B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 26 / 328
Normalform für Regeln
Theorem 2.3 (Normalform)
Zu jeder Grammatik G (beliebigen Typs) existiert eine äquivalente Grammatik G0, bei der für alle Regeln P
→
Q∈
R0gilt:Q
∈
V∗und P beliebig Q∈
T und P∈
VFür alle Typen außer den linearen hat G0denselben Typ wie G.
B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 27 / 328
Normalform für Regeln
Beweis.
Für jedes Terminalt
∈
T erzeuge man eine neue VariableVt. V0=
V∪ {
Vt|
t∈
T}
R0entsteht ausR, indem für jede RegelP
→
Q∈
RinQalle Vorkommen eines Terminalstdurch die zugehörige VariableVt ersetzt werden.Außerdem enthältR0für jedest
∈
T eine neue RegelVt→
t. AlsoL(
G0) =
L(
G)
,und für alle Sprachklassen außerL3hatG0denselben Typ wieG.
B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 28 / 328
Elimination von ε -Regeln
Idee
Variablen, aus denenεableitbar ist, sollten eliminiert werden
Definition 2.4 (ε-Regel, nullbare Variablen) Eine Regel der Form
P
→
ε (Peine Variable) heißtε-Regel.Eine VariableAheißtnullbar, falls
A
= ⇒
∗εB. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 29 / 328
Elimination von ε -Regeln
Theorem 2.5 (ε-Regeln sind eliminierbar)
Zu jeder cf-Grammatik G existiert eine äquivalente cf-Grammatik G0 ohneε-Regeln und nullbare Variablen,
fallsε
6∈
L(
G)
,mit der einzigenε-Regel S
→
εund der einzigen nullbaren Variablen S, fallsε∈
L(
G)
und S das Startsymbol ist.B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 30 / 328
Elimination von ε -Regeln
Algorithmus zur Berechnung der nullbaren Variablen
Input:GrammatikG
= (
V,
T,
R,
S)
So.B.d.A. in keiner Regel rechts Output:nullbare VariablenAlt:=0/
Neu:=
{
A∈
V|
A→
ε∈
R}
whileAlt6=
Neu{
Alt:=Neufür alle
(
P→
Q) ∈
Rdo{
ifQ=
A1. . .
An andAi∈
Neufür 1≤
i≤
nandP6∈
Neu,
thenNeu:=Neu∪ {
P}
} }
outputNeu
B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 31 / 328
Elimination von ε -Regeln
Beweis (Forts.)
AusgangsgrammatikGhabe die Normalform, bei der für jede RegelP
→
Q:Q
∈
V∗oderQ∈
T.Für jede RegelP
→
A1. . .
Angeneriere alle möglichen Kombinationen P→
α1. . .
αnmit
αi
∈ {ε,
Ai}
fallsAi nullbar αi=
Ai fallsAi nicht nullbar DannFüge alle diese neuen Regeln zur Grammatik hinzu Entferne alle Regeln der FormA
→
εmitA6=
SB. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 32 / 328
Elimination von ε -Regeln
Beweis (Forts.) Zu zeigen:
Für die neue GrammatikG0gilt:L
(
G0) =
L(
G)
Vorgehen:Ghat die Normalform:
Für jede RegelP
→
QgiltQ∈
V∗oderQ∈
T. Wir beweisen die etwas stärkere Behauptungfür alleA
∈
V für allew∈ (
V∪
T)
∗− {ε}
(
A= ⇒
∗G w)
gdw(
A= ⇒
∗G0 w
) ,
Daraus folgt sofortL(
G0) =
L(
G)
.B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 33 / 328
Elimination von ε -Regeln
Beweis (Forts.)
”⇒” Wir zeigen: AusA
= ⇒
∗GwfolgtA= ⇒
∗G0 w(Induktion über Länge einer Ableitung vonAnachwinG).
Induktionsanfang: Länge = 0.
Dann istw
=
A, undA= ⇒
∗G0 Agilt immer.
Induktionsschritt: Es sei schon gezeigt: Wenn inGinn Schritten eine AbleitungB
= ⇒
∗Gudurchgeführt werden kann, dann folgt, daß inG0die Ableitung B= ⇒
∗G0 umöglich ist.
B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 34 / 328
Elimination von ε -Regeln
Beweis (Forts.)
Außerdem gelte in der AusgangsgrammatikG:A
= ⇒
∗Gw6=
εinn+
1 Schritten.Dann gilt:
A
= ⇒
G w0= ⇒
∗G w, w0=
A1. . .
A`= ⇒
∗Gw1
. . .
w`=
w,und es wird jeweilsAi zuwi in höchstensnSchritten für geeignete w0
,
A1, . . . ,
A`,
w1, . . . ,
w`.Per Induktionsvoraussetzung gilt also schon:
EntwederAi=⇒∗
G0 wi
oderwi=εfür 1≤i≤`.
B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 35 / 328
Elimination von ε -Regeln
Beweis (Forts.)
Fall 1: wi
=
ε,Ai ist nullbar.Dann gibt es inG0eine RegelA
→
A1. . .
Ai−1Ai+1. . .
A`nach der obigen Konstruktionsvorschrift fürG0, fallsA1
. . .
Ai−1Ai+1. . .
A`6=
ε. Das ist der Fall, denn sonst hätten wir:A
= ⇒
w0=
ε= ⇒
∗w=
ε(aus nichts wird nichts), aberw=
εist ausgeschlossen.Fall 2: wi
6=
ε. Dann gilt nach Induktionsvoraussetzung Ai= ⇒
∗G0 wi.
B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 36 / 328
Elimination von ε -Regeln
Beweis (Forts.)
Wir haben also folgendes gezeigt:
SeiI
= {
i∈ {
1. . . `} |
wi6=
ε} 6=0/.Dann gibt es inR0eine RegelA
→
Ai1. . .
AimmitI= {
i1, . . . ,
im}
, und dieAi sind so angeordnet wie in der ursprünglichen RegelA→
A1. . .
A`.Mit dieser neuen Regel können wirwso ableiten:
A
= ⇒
G0 Ai1. . .
Aim= ⇒
∗G0 wi1
. . .
wim=
wB. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 37 / 328
Elimination von ε -Regeln
Beweis (Forts.)
”⇐” Wir zeigen: AusA
= ⇒
∗G0 wfolgtA
= ⇒
∗G w(Induktion über Länge einer Ableitung vonAnachw inG0):Induktionsanfang: Länge = 0. Dann istw
=
A, undA= ⇒
∗GAgilt immer.
Induktionsschritt: Es gelte für alle AbleitungenA
= ⇒
∗G0 weiner Länge von höchstensn, daßA
= ⇒
∗G w.IstA
= ⇒
∗G0 weine Ableitung der Längen
+
1, so gibt es ein`
, Wörterw1, . . . ,
w`und VariablenA1, . . . ,
A`mitA= ⇒
G0 A1. . .
A`= ⇒
∗G0 w
=
w1. . .
w`. Es gilt jeweilsAi= ⇒
∗G0 wi in höchstensnSchritten, undwi
6=
ε.B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 38 / 328
Elimination von ε -Regeln
Beweis (Forts.)
Nach der Induktionsvoraussetzung folgt daraus:
für die OriginalgrammatikGgibt es AbleitungenAi
= ⇒
∗Gwi damit gibt es auch eine AbleitungA1
. . .
A`= ⇒
∗Gw.Da es inG0eine AbleitungA
= ⇒
G0 A1
. . .
A`gibt, gibt es inR0eine Regel A→
A1. . .
A`. Wie ist diese Regel ausRentstanden?Eine Regel inR0entsteht aus einer Regel inR, indem einige nullbare Variablen gestrichen werden. Es gab also inGnullbare VariablenB1bisBm, so daßRdie Regel
A
→
A1. . .
A`1B1A`1+1. . .
A`2B2. . .
AmBmAm+1. . .
A`enthält. (mkann auch 0 sein, dann war die Regel selbst schon inR.)
B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 39 / 328
Elimination von ε -Regeln
Beweis (Forts.) Also gilt inG:
A
= ⇒
GA1. . .
A`1B1A`1+1. . .
A`2B2. . .
AmBmAm+1. . .
A`= ⇒
∗GA1
. . .
A`1A`1+1. . .
A`2. . .
AmAm+1. . .
A`= ⇒
∗Gw da jaBi
= ⇒
∗Gεmöglich ist.B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 40 / 328
Elimination von ε -Regeln: Beispiel
Beispiel 2.6
R: R0:
S
→
ABD S→
ABD|
AD|
BD|
D A→
ED|
BB A→
ED|
BB|
B B→
AC|
ε B→
AC|
A|
C C→
εD
→
d D→
dE
→
e E→
eFür die RegelmengeRin der linken Spalte sind die VariablenA
,
B,
Cnullbar.Der obige Algorithmus erzeugt ausRdie rechts aufgeführte RegelmengeR0.
B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 41 / 328
Elimination von ε -Regeln
Beobachtung
Der Algorithmus lässt nutzlose Variablen zurück, die nicht in Prämissen auftauchen
(und deshalb nicht co-erreichbar sind).
Hier:C.
Der Algorithmus lässt nutzlose Regeln zurück.
Hier:B
→
AC|
C.B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 42 / 328
Elimination von ε -Regeln
Korollar
L2
⊆
L1Das heißt, jede kontextfreie Sprache ist auch kontextsensitiv
Beweis
Regeln einer kontextsensitiven Grammatik müssen folgende Form haben:
entwederuAv
→
uαvmitu
,
v,α ∈ (
V∪
T)
∗,|α| ≥
1,
A∈
V oderS→
εundSkommt in keiner Regelconclusio vor.
Diesen Bedingungen genügt die kontextfreie Grammatik nach Elimination der ε-Regeln.
B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 43 / 328
Elimination von Kettenproduktionen
Definition 2.7 (Kettenproduktion) Eine Regel der Form
A
→
B mitA,B∈
V heißtKettenproduktion.Theorem 2.8 (Kettenproduktionen sind eliminierbar)
Zu jeder cf-Grammatik existiert eine äquivalente cf-Grammatik ohne Kettenproduktionen.
B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 44 / 328
Elimination von Kettenproduktionen
Beweis
SeiG
= (
V,
T,
R,
S)
eine kontextfreie Grammatik ohneε-Regeln, außer ggf.S→
ε.Konstruiere neue Grammatik wie folgt:
1 Für alle
VariablenpaareA,B∈V, A6=B mitA=⇒∗B RegelnB→α∈R, α6∈V
füge zuRhinzu:
A
→
α2 Lösche alle Kettenproduktionen
B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 45 / 328
Normalform für cf-Grammatiken
Theorem 2.9 (Normalform für cf-Grammatiken)
Zu jeder cf-Grammatik existiert eine äquivalente cf-Grammatik ohneε-Regeln
(bis auf S
→
ε, fallsεzur Sprache gehört;in diesem Fall darf S in keiner Regelconclusio vorkommen), ohne nutzlose Symbole,
ohne Kettenproduktionen,
so daß für jede Regel P
→
Q gilt: entweder Q∈
V∗oder Q∈
T .B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 46 / 328
Normalform für cf-Grammatiken
Beweis
1 Man teste zunächst, obSnullbar ist. Falls ja, dann verwende manSneu als neues Startsymbol und füge die RegelnSneu
→
S|
εzum Regelsatz hinzu.2 Man eliminiere nutzlose Symbole.
3 Man eliminiere alleε-Regeln außerSneu
→
ε.4 Man bringe die Grammatik in die Normalform,
bei der für jede RegelP
→
Q gilt: entwederQ∈
V∗oderQ∈
T.5 Man eliminiere Kettenproduktionen.
6 Zum Schluss eliminiere man noch einmal alle nutzlosen Symbole (wg. Schritt 3)
B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 47 / 328
Teil IV
Kellerautomaten und kontextfreie Sprachen
1 Ableitungsbäume
2 Umformung von Grammatiken
3 Normalformen
4 Pumping-Lemma für kontextfreie Sprachen
5 Pushdown-Automaten (PDAs)
6 Abschlusseigenschaften
7 Wortprobleme
8 Der CYK-Algorithmus
B. Beckert – Grundlagen d. Theoretischen Informatik: Normalformen SS 2007 48 / 328
Normalformen
Unterschied: Grammatiktypen und Normalformen
Gemeinsamkeit: Sowohl Grammatiktypen als auch Normalformen schränken die Form von Grammatikregeln ein.
Unterschied:
Grammatiktypen (rechtslinear, kontextfrei usw.) führen zuunterschiedlichen Sprachklassen Normalformeln führen zu
den selben Sprachklassen
B. Beckert – Grundlagen d. Theoretischen Informatik: Normalformen SS 2007 49 / 328
Normalformen
Wozu dann Normalformen?
Weniger Fallunterscheidungen bei Algorithmen, die mit Grammatiken arbeiten.
Struktur von Grammatiken einfacher zu „durchschauen“
Zwei Normalformen
Chomsky-Normalform: Baut auf den Umformungen des vorigen Teils auf.
Greibach-Normalform: Ähnlich den rechtslinearen Grammatiken.
B. Beckert – Grundlagen d. Theoretischen Informatik: Normalformen SS 2007 50 / 328
Chomsky-Normalform
Definition 3.1 (Chomsky-Normalform)
Eine cf-GrammatikG
= (
V,
T,
R,
S)
ist inChomsky-Normalform (CNF), wenn gilt:Ghat nur Regeln der Form
A
→
BC mitA,
B,
C∈
VundA
→
a mitA∈
V,a∈
T (nichtε!)Istε
∈
L(
G)
, so darfGzusätzlich die RegelS→
εenthalten.In diesem Fall darfSin keiner Regelconclusio vorkommen.
Genthält keine nutzlosen Symbole.
B. Beckert – Grundlagen d. Theoretischen Informatik: Normalformen SS 2007 51 / 328
Chomsky-Normalform
Theorem 3.2 (Chomsky-Normalform)
Zu jeder cf-Grammatik existiert eine äquivalente cf-Grammatik in Chomsky-Normalform.
Beweis
Schritt 1:Wende aufGdie Umformungen des letzten Abschnitts an.
Ergebnis:
Ghat keine nutzlosen Symbole Alle Regeln haben die Form
1 A
→ α
mitA∈
V undα ∈
V∗,|α| ≥
2, und2 A
→
amitA∈
V,a∈
TB. Beckert – Grundlagen d. Theoretischen Informatik: Normalformen SS 2007 52 / 328
Chomsky-Normalform
Beweis (Forts.)
Schritt 2:Regeln so umformen, daß keine Conclusio eine Länge größer 2 hat.
Ersetze jede Regel
A
→
A1. . .
AnmitA,
Ai∈
V,
n≥
3 durch:A
→
A1C1 C1→
A2C2... Cn−2
→
An−1AnDabei sind dieCi neue Variablen inV.
B. Beckert – Grundlagen d. Theoretischen Informatik: Normalformen SS 2007 53 / 328
Greibach-Normalform
Definition 3.3 (Greibach-Normalform)
Eine cf-GrammatikG
= (
V,
T,
R,
S)
ist inGreibach-Normalform (GNF), wenn gilt:Ghat nur Regeln der Form
A
→
aαmit A∈
V und a∈
T undα∈
V∗Istε
∈
L(
G)
, so darfGzusätzlich die RegelS→
εenthalten.In diesem Fall darfSin keiner Regelconclusio vorkommen.
Genthält keine nutzlosen Symbole.
B. Beckert – Grundlagen d. Theoretischen Informatik: Normalformen SS 2007 54 / 328
Teil IV
Kellerautomaten und kontextfreie Sprachen
1 Ableitungsbäume
2 Umformung von Grammatiken
3 Normalformen
4 Pumping-Lemma für kontextfreie Sprachen
5 Pushdown-Automaten (PDAs)
6 Abschlusseigenschaften
7 Wortprobleme
8 Der CYK-Algorithmus
B. Beckert – Grundlagen d. Theoretischen Informatik: Pumping-Lemma für kontextfreie Sprachen SS 2007 55 / 328
Wiederholung: Pumping-Lemma für reguläre Sprachen
Theorem 4.1 (Pumping-Lemma für L3-Sprachen) Sei L
∈
RAT.Dann existiert ein n
∈
N, so dass:Für alle
x
∈
L mit|
x| ≥
n existiert eine Zerlegungx
=
uvw u,
v,
w∈
Σ∗ mit|
v| ≥
1|
v| <
nuvmw
∈
L für alle m∈
NB. Beckert – Grundlagen d. Theoretischen Informatik: Pumping-Lemma für kontextfreie Sprachen SS 2007 56 / 328
Pumping-Lemma für kontextfreie Sprachen
Theorem 4.2 (Pumping-Lemma für kontextfreie Sprachen) Sei L kontextfrei
Dann existiert ein n
∈
N, so dass:Für alle
z
∈
L mit|
x| ≥
n existiert eine Zerlegungz
=
uvwxy u,
v,
w,
x,
y∈
Σ∗ mit|
vx| ≥
1|
vwx| <
nuvmwxmy
∈
L für alle m∈
NB. Beckert – Grundlagen d. Theoretischen Informatik: Pumping-Lemma für kontextfreie Sprachen SS 2007 57 / 328
Pumping-Lemma für kontextfreie Sprachen
Beweisidee
Bei der Ableitung eines hinreichend langen Wortes muss es eine Variable geben, die mehr als einmal auftaucht.
Dies führt zu einer Schleife in der Ableitung, die aufgepumpt werden kann.
B. Beckert – Grundlagen d. Theoretischen Informatik: Pumping-Lemma für kontextfreie Sprachen SS 2007 58 / 328
Pumping-Lemma für kontextfreie Sprachen
Anwendung des Pumping-Lemmas für cf-Sprachen Wenn das cf-Pumping-Lemma für eine Sprache nicht gilt, dann kann sie nicht kontextfrei sein.
Beispiel 4.3 (Sprachen, die nicht kontextfrei sind)
Für folgende Sprachen kann man mit Hilfe des cf-Pumping-Lemmas zeigen, dass sie nicht kontextfrei sind:
{
ap|
pprim} {
anbncn|
n∈
N} {
zzz|
z∈ {
a,
b}
∗}
d.B. Beckert – Grundlagen d. Theoretischen Informatik: Pumping-Lemma für kontextfreie Sprachen SS 2007 59 / 328
Teil IV
Kellerautomaten und kontextfreie Sprachen
1 Ableitungsbäume
2 Umformung von Grammatiken
3 Normalformen
4 Pumping-Lemma für kontextfreie Sprachen
5 Pushdown-Automaten (PDAs)
6 Abschlusseigenschaften
7 Wortprobleme
8 Der CYK-Algorithmus
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 60 / 328
Erzeugende Grammatiken – akzeptierende Automaten
Erinnerung: Reguläre Sprachen
werden erzeugt von rechtslinearen Grammatiken werden akzeptiert von endlichen Automaten
Jetzt: Kontextfreie Sprachen
werden erzeugt von kontextfreien Grammatiken werden akzeptiert vonPushdown-Automaten
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 61 / 328
Idee des Push-Down-Automaten
Beispiel 5.1
Die „prototypische“ cf-Sprache
{
anbn|
n∈
N0}
Endliche Automaten reichen nicht aus.
Sie können sich nicht merken, wie oft sie einen Zustand durchlaufen haben.
Füranbnmuss man abermitzählen.
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 62 / 328
Idee des Push-Down-Automaten
Idee: Wie kann man diese Sprache akzeptieren?
Weitere Informationen auf demStacksichern Späterzurückholen
Ähnlich einem „Prozeduraufruf“
Grammatikregel wieS
→
aAbentspricht Aufruf einer Prozedur für dasA.Stack, Stapel, Keller Last in, first out
Zuletzt gespeicherte Information liegt immer „obenauf“
Beliebig viel Information kann gespeichert werden (Aber kein beliebiger Zugriff!)
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 63 / 328
Push-Down-Automat
Push-Down-Automat (PDA): Informell
Wie endlicher Automat, aberzusätzlichereinen Stack
Übergangsrelation bezieht das oberste Stacksymbol in den Übergang ein Bei Zustandsübergang: lesen und schreiben auf Stack
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 64 / 328
Push-Down-Automat
Definition 5.2 (Push-Down-Automat) EinPush-Down-Automat (PDA)ist ein Tupel
M
= (
K,Σ,Γ,∆,
s0,
Z0,
F)
Dabei istK eine endliche Menge von Zuständen Σ das Eingabealphabet
Γ das Stack- oder Kelleralphabet s0
∈
K der StartzustandZ0
∈
Γ das Anfangssymbol im Keller F⊆
K eine Menge von finalen Zuständen∆ die Zustandsübergangsrelation, eine endliche Relation:
∆
⊂ (
K× (Σ ∪ {ε}) ×
Γ)× (
K×
Γ∗)
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 65 / 328
Push-Down-Automat
Arbeitsschritt eines PDA In Abhängigkeit
vom aktuellen Zustand
vom nächsten Eingabezeichen (oder auch unabhängig davon) vom obersten Kellersymbol
geschieht folgendes
nächstesEingabezeichenwirdgelesen oder nicht(beiε), das obersteKellersymbolwirdentfernt,
derZustandwirdgeändert,
es werden null oder mehrZeichen auf den Kellergeschoben Bei neuen Keller-Wortγ
=
A1. . .
AnwirdAnzuerst auf den Keller geschoben usw., so daß am SchlussA1obenauf liegt.B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 66 / 328
Push-Down-Automat
Notation
a
,
b,
cfür Buchstaben ausΣ u,
v,
wfür Wörter ausΣ∗ A,
Bfür Stacksymbole ausΓ γ,ηfür Stackinhalte ausΓ∗B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 67 / 328
Push-Down-Automat: Konfiguration
Konfiguration eines PDA: Informell
Konfiguration beschreibt die aktuelle Situation des PDAkomplett Bestandteile:
aktueller Zustand
noch zu lesendes Restwort kompletter Stackinhalt
Für KonfigurationenC1
,
C2bedeutet C1`
C2daß der PDA in einem Schritt vonC1nachC2gelangen kann.
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 68 / 328
Push-Down-Automat: Konfiguration
Definition 5.3 (Konfiguration eines PDA,`)
EineKonfigurationCeines PDAM
= (
K,
Σ,Γ,∆,s0,
Z0,
F)
ist ein Tripel(
q,
w,γ) ∈
K×
Σ∗×
Γ∗.
qder aktuelle Zustand
wder noch zu lesendes Restwort γder komplette Stackinhalt
Definition 5.4 (Startkonfiguration)
Bei Eingabewortwist dieStartkonfiguration:
(
s0,
w,
Z0)
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 69 / 328
Push-Down-Automat: Konfiguration
Definition 5.5 (Nachfolgekonfiguration) C2heißtNachfolgekonfigurationvonC1,
C1
`
C2 falls∃
a∈
Σ∃
A∈
Γ∃
w∈
Σ∗∃γ,η ∈
Γ∗ so dassentweder C1
= (
q1,
aw,
Aγ),C2= (
q2,
w,ηγ
), und(
q1,
a,
A)
∆(
q2,η)
, oder C1= (
q1,
w,
Aγ),C2= (
q2,
w,ηγ)
, und(
q1,
ε,A)
∆(
q2,η)
,B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 70 / 328
Push-Down-Automat: Rechnung
Definition 5.6 (Rechnung eines PDA) SeiAein Push-Down-Automat.
C
`
∗AC0gdw es eine Reihe von Konfigurationen C0
,
C1, . . . ,
Cn(
n≥
0)
so daß C
=
C0, C0=
Cn,Ci
`
ACi+1für alle 0≤
i<
nDann heißtC0
,
C1, . . . ,
CneineRechnungvonAB. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 71 / 328
Push-Down-Automat: Akzeptierte Sprache
Definition 5.7 (von PDA akzeptierte Sprache)
Ein PDAMkann auf zwei verschiedene Arten eine Sprache akzeptieren:
überfinale Zustände überleeren Keller
Lf
(
M) = {
w∈
Σ∗| ∃
q∈
F∃γ ∈
Γ∗(
s0,
w,
Z0) `
∗M(
q,ε,
γ)}
Ll
(
M) = {
w∈
Σ∗| ∃
q∈
K(
s0,
w,
Z0) `
∗M(
q,ε,
ε)}
Bemerkung
Das zu akzeptierende Wortwmuss vonMganz gelesen werden:
(
s0,
w,
Z0) `
∗(
q,ε,·)
ist gefordert.B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 72 / 328
Push-Down-Automat
Bemerkung
Das unterste Symbol im Keller kann gelöscht werden.
Dann aberhängtder PDA
Er kann nicht mehr weiter rechnen Es gibt keineNachfolgekonfiguration
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 73 / 328
Push-Down-Automat: Beispiel
Beispiel 5.8
Sprache der Palindrome über
{
a,
b}
: L= {
w∈ {
a,
b}
∗|
w=
wR}
Lwird über leeren Keller akzeptiert von dem PDA M:= ({s0
,
s1},{
a,
b}, {
Z0,
A,
B},∆,
s0,
Z0,
0)/ mit . . .B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 74 / 328
Push-Down-Automat: Beispiel
Beispiel (Forts.) Idee:
Ein Palindromw
=
wRhat die Form vvR oder vavR oder vbvR für einv∈ {
a,
b}
∗Der AutomatMliestv und merkt sich jeden Buchstaben.
Er rät indeterminiert die Wortmitte.
Falls das Wort eine ungerade Anzahl von Buchstaben hat, alsow
=
vavRoderw=
vbvR,dann muss dabei ein Buchstabe überlesen werden.
Der Stack enthält nunvR.
Mmuss jetzt nur noch jeden weiteren gelesenen Buchstaben mit dem jeweils obersten Kellersymbol vergleichen.
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 75 / 328
Push-Down-Automat: Beispiel
Beispiel (Forts.)
(
s0,ε,
Z0)
∆(
s1,ε)
εakzeptieren(
s0,
a,
Z0)
∆(
s0,
A) (
s0,
a,
A)
∆(
s0,
AA) (
s0,
a,
B)
∆(
s0,
AB) (
s0,
b,
Z0)
∆(
s0,
B) (
s0,
b,
A)
∆(
s0,
BA) (
s0,
b,
B)
∆(
s0,
BB)
Stack aufbauen
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 76 / 328
Push-Down-Automat: Beispiel
Beispiel (Forts.)
(
s0,
ε,A)
∆(
s1,
ε)(
s0,
ε,B)
∆(
s1,
ε)Richtungswechsel für Palindrome mit ungerader Buchstabenanzahl
(
s0,
a,
A)
∆(
s1,
ε)(
s0,
b,
B)
∆(
s1,
ε)Richtungswechsel für Palindrome mit gerader Buchstabenanzahl
(
s1,
a,
A)
∆(
s1,
ε)(
s1,
b,
B)
∆(
s1,
ε)Stack abbauen
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 77 / 328
Push-Down-Automat: Beispiel
Beispiel (Forts.)
Für das EingabewortabbabbarechnetMso:
(
s0,
abbabba,
Z0) ` (
s0,
bbabba,
A) ` (
s0,
babba,
BA) ` (
s0,
abba,
BBA) ` (
s0,
bba,
ABBA) ` (
s1,
bba,
BBA) `
(
s1,
ba,
BA) ` (
s1,
a,
A) ` (
s1,ε,ε)
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 78 / 328
Push-Down-Automat: Beispiel
Beispiel 5.9 Die Sprache
L
= {
w∈ {
a,
b}
∗|
#a(
w) =
#b(
w)}
wird über finalen Zustand akzeptiert von dem PDA
M
= ({
s0,
s1}, {
a,
b},{
Z0,
A,
A,
B,
B},∆,
s0,
Z0, {
s0})
mit . . .B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 79 / 328
Push-Down-Automat: Beispiel
Beispiel (Forts.) Idee:
auf dem Stack mitzählen, wievielA-Überhang oderB-Überhang momentan besteht
Der Stack enthält zu jedem Zeitpunkt entweder nurA/A(A-Überhang) oder nurB/B(B-Überhang)
oder nur das SymbolZ0(Gleichstand).
Das untersteAbzw.Bauf dem Stack ist durch einen Unterstrich gekennzeichnet.
So weißM, wenn er dies Stacksymbol löscht, daß dann bis zu diesem Moment gleichvielas wiebs gelesen wurden.
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 80 / 328
Push-Down-Automat: Beispiel
Beispiel (Forts.)
(
s0,
a,
Z0)
∆(
s1,
A) (
s0,
b,
Z0)
∆(
s1,
B) (
s1,
a,
A)
∆(
s1,
AA) (
s1,
b,
B)
∆(
s1,
BB) (
s1,
a,
A)
∆(
s1,
AA) (
s1,
b,
B)
∆(
s1,
BB) (
s1,
a,
B)
∆(
s0,
Z0) (
s1,
b,
A)
∆(
s0,
Z0) (
s1,
a,
B)
∆(
s1,
ε)(
s1,
b,
A)
∆(
s1,ε)
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 81 / 328
Push-Down-Automat: Finaler Zustand / leerer Keller
Theorem 5.10 (finale Zustände→leerer Keller) Zu jedem PDAM1existiert ein PDAM2mit
Lf
(
M1) =
Ll(
M2)
Beweisidee
Wir simulieren die MaschineM1, die über finale Zustände akzeptiert, durch die MaschineM2, die über leeren Keller akzeptiert.
M2arbeitet wieM1, mit dem Unterschied:
Wenn ein Zustand erreicht wird, der inM1final war, kannM2seinen Keller leeren.
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 82 / 328
Push-Down-Automat: Finaler Zustand / leerer Keller
Theorem 5.11 (leerer Keller→finale Zustände)
Zu jedem PDAM1existiert ein PDAM2mit Ll
(
M1) =
Lf(
M2)
Beweisidee
Wir simulieren die MaschineM1, die über leeren Keller akzeptiert, durch die MaschineM2, die über finale Zustände akzeptiert.
M2arbeitet wieM1,
legt aber ein zusätzliches Symbol ganz unten in den Keller.
WennM1seinen Keller geleert hätte (also das neue unterste Symbol sichtbar wird),
kannM2in einen finalen Zustand gehen.
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 83 / 328
Gleichmächtigkeit: PDAs und kontextfreie Grammatiken
Theorem 5.12 (PDA akzeptieren L2)
Die Klasse der PDA-akzeptierten Sprachen istL2.
Beweis
Dazu beweisen wir die folgenden zwei Lemmata, die zusammen die Aussage des Satzes ergeben.
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 84 / 328
Gleichmächtigkeit: PDAs und kontextfreie Grammatiken
Lemma 5.13 (cf-Grammatik→PDA)
Zu jeder kontextfreien Grammatik G gibt es einen PDAMmit L
(
M) =
L(
G)
Beweis
O.B.d.A. sei die kontextfreie GrammatikG
= (
V,
T,
R,
S)
in Greibach-Normalform: Alle Grammatikregeln haben die FormA
→
au mitA∈
V,a∈
T,u∈
V∗Wir konstruieren zuGeinen PDAM, derL
(
G)
akzeptiert.B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 85 / 328
Gleichmächtigkeit: PDAs und kontextfreie Grammatiken
Beweis (Forts.) Idee:Der AutomatM
vollzieht die Grammatikregeln nach, die angewendet worden sein könnten, um das aktuelle Eingabewort zu erzeugen und
merkt sich das aktuelle Wort in der Ableitung bzw. dessen Rest
merkt sich auf dem Keller alle Variablen, die im gedachten Ableitungswort noch vorkommen und noch ersetzt werden müssen.
Die linkeste Variable liegt zuoberst:Marbeitet mit der Linksableitung.
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 86 / 328
Gleichmächtigkeit: PDAs und kontextfreie Grammatiken
Beweis (Forts.) Genauer:
Erzeugung eines Wortes mitGbeginnt beim StartsymbolS.
DeshalbSbeiMin Startkonfiguration oben auf dem Keller.
Angenommen,Ghat 2 Regeln mitSauf der linken Seite:
S
→
aA1A2undS→
bB1B2Angenommen, der erste Buchstabe des Input-Worteswist eina.
WennwvonGerzeugt wurde, hatGdie erste der zweiS-Produktionen angewendet.
Entsprechend: Der AutomatMschiebtA1A2auf den Stack.
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 87 / 328
Gleichmächtigkeit: PDAs und kontextfreie Grammatiken
Beweis (Forts.) Genauer:
Der zweite Buchstabe des Eingabeworts muss durch Anwendung einer RegelA1
→
a1αerzeugt worden sein.Angenommen, der zweite Buchstabe des Eingabeworts ista1. Dann müssen die nächsten Buchstaben des Wortes aus den Variablen inα entstehen.
Der Automat entferntA1vom Stack und legtαauf den Stack.
Wenn es zwei RegelnA1
→
a1α1undA1→
a1α2gibt, dann wähltM indeterminiert eine der Regeln aus.Der PDA hat nur einen einzigen Zustand und akzeptiert über den leeren Keller.
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 88 / 328
Gleichmächtigkeit: PDAs und kontextfreie Grammatiken
Beweis (Forts.) Formal:
M
= (
K,
Σ,
Γ,
∆,
s0,
Z0,
F)
mitK:=
{
s0}
Σ:=T Γ:=V Z0:=S F:=0/∆:=
{((
s0,
a,
A),(
s0,α)) |
A→
aα∈
R}
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 89 / 328
Gleichmächtigkeit: PDAs und kontextfreie Grammatiken
Beweis (Forts.)
Damit gilt (Beweis s. Buch):
Es gibt eine LinksableitungS
= ⇒
∗G xαmitx
∈
T∗,
α∈
V∗ gdwMrechnet
(
s0,
x,
S) `
∗M(
s0,ε,α)
Daraus folgt unmittelbar:L
(
G) =
L`(
M)
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 90 / 328
Gleichmächtigkeit: PDAs und kontextfreie Grammatiken
Beispiel 5.14 Die Sprache
L
= {
wwR|
w∈ {
a,
b}
+}
wird generiert von der GNF-GrammatikG
= ({
S,
A,
B},{
a,
b},
R,
S)
mit R= {
S→
aSA|
bSB|
aA|
bBA
→
a B→
b}
Daraus kann man einen PDA mit den folgenden Regeln konstruieren:
(
s0,
a,
S)
∆(
s0,
SA) (
s0,
a,
S)
∆(
s0,
A) (
s0,
b,
S)
∆(
s0,
SB) (
s0,
b,
S)
∆(
s0,
B) (
s0,
a,
A)
∆(
s0,ε) (
s0,
b,
B)
∆(
s0,
ε)
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 91 / 328
Gleichmächtigkeit: PDAs und kontextfreie Grammatiken
Lemma 5.15 (PDA→cf-Grammatik)
Zu jedem Push-Down-AutomatenMgibt es eine kontextfreie Grammatik G mit L
(
G) =
L(
M)
Beweis
SeiMein PDA, der eine SpracheLüber leeren Kellerakzeptiert.
Wir konstruieren aus dem Regelsatz vonMeine kontextfreie Grammatik, dieLerzeugt.
B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 92 / 328