Vorlesung
Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I
Bernhard Beckert
Institut für Informatik
Sommersemester 2007
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
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
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 Determinierte PDAs
7 Abschlusseigenschaften
8 Wortprobleme
9 Der CYK-Algorithmus
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.
Zur Erinnerung: kontextfreie Sprachen
Beispiel 18.1 (kontextfreie Sprachen)
{
anbn|
n∈
N0}
{
anban|
n∈
N0}
{
wwR|
w∈ {
a,
b}
∗}
Ableitungsbäume
Definition 18.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)
Ableitungsbäume
Definition 18.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
∈
W ein 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).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.
Ableitungsbäume
Definition 18.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<
v2und vi ist Vorfahre von bi für i
∈ {
1,
2}
.Definition 18.5
Sei
{
b1, . . . ,
bk}
die Menge aller Blätter inBmitb1< . . . <
bk, und seiAi die Markierung vonbi.Dann heißt das WortA1
. . .
Ak dieFrontvonB.Ableitungsbäume
Theorem 18.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.
Ableitungsbäume: Beispiel
Beispiel 18.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|
ε}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’
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)
Links- und Rechtsableitung
Definition 18.8 (Linksableitung) Eine Ableitung
w1
= ⇒
G w2= ⇒
G. . . = ⇒
G wnheißtLinksableitungfallswi+1durch Ersetzen der linkesten Variable inwi
entsteht für allei
<
n.DieRechtsableitungist analog definiert.
Mehrdeutigkeit
Definition 18.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 :
Mehrdeutigkeit: Beispiele
Beispiel 18.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|
zMehrdeutigkeit: 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
Mehrdeutigkeit: Beispiele
Beispiel 18.11 (Inhärente Mehrdeutigkeit) Die Sprache
L:=
{
aibjck|
i=
joderj=
k}
istinhärent mehrdeutig.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 Determinierte PDAs
7 Abschlusseigenschaften
8 Wortprobleme
9 Der CYK-Algorithmus
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.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
Nutzlose Symbole
Definition 19.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.
Nutzlose Symbole
Theorem 19.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.
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
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)}
}
Normalform für Regeln
Theorem 19.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.
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.
Elimination von ε -Regeln
Idee
Variablen, aus denenεableitbar ist, sollten eliminiert werden
Definition 19.4 (ε-Regel, nullbare Variablen) Eine Regel der Form
P
→
ε (Peine Variable) heißtε-Regel.Eine VariableAheißtnullbar, falls
A
= ⇒
∗εElimination von ε -Regeln
Theorem 19.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.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
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
Elimination von ε -Regeln
Beweis (Forts.) Zu zeigen:
Für die neue GrammatikG0gilt:L
(
G0) =
L(
G)
Vorgehen:Ghat die Normalform:
Für jede RegelP
→
Q giltQ∈
V∗oderQ∈
T. Wir beweisen die etwas stärkere Behauptungfür alleA
∈
V für allew∈ (
V∪
T)
∗− {ε}
(
A= ⇒
∗Gw)
gdw(
A= ⇒
∗G0 w
)
,
Daraus folgt sofortL(
G0) =
L(
G)
.Elimination von ε -Regeln
Beweis (Forts.)
”⇒” Wir zeigen: AusA
= ⇒
∗G wfolgtA
= ⇒
∗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ß inG0 die Ableitung B
= ⇒
∗G0 umöglich ist.
Elimination von ε -Regeln
Beweis (Forts.)
Außerdem gelte in der AusgangsgrammatikG:A
= ⇒
∗G w6=
εinn+
1 Schritten.Dann gilt:
A
= ⇒
Gw0= ⇒
∗Gw,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≤`.
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.
Elimination von ε -Regeln
Beweis (Forts.)
Wir haben also folgendes gezeigt:
SeiI
= {
i∈ {
1. . . `} |
wi6=
ε} 6=0/.Dann gibt es inR0eine RegelA
→
Ai1. . .
Aim mitI= {
i1, . . . ,
im}
, und dieAisind 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=
wElimination von ε -Regeln
Beweis (Forts.)
”⇐” Wir zeigen: AusA
= ⇒
∗G0 wfolgtA
= ⇒
∗Gw(Induktion über Länge einer Ableitung vonAnachwinG0):Induktionsanfang: Länge = 0. Dann istw
=
A, undA= ⇒
∗G Agilt immer.Induktionsschritt: Es gelte für alle AbleitungenA
= ⇒
∗G0 weiner Länge von höchstensn, daßA
= ⇒
∗Gw.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=
ε.Elimination von ε -Regeln
Beweis (Forts.)
Nach der Induktionsvoraussetzung folgt daraus:
für die OriginalgrammatikGgibt es AbleitungenAi
= ⇒
∗G widamit gibt es auch eine AbleitungA1
. . .
A`= ⇒
∗Gw.Da es inG0eine AbleitungA
= ⇒
G0 A1. . .
A`gibt, gibt es inR0eine RegelA
→
A1. . .
A`. Wie ist diese Regel ausRentstanden?Eine Regel inR0 entsteht 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.)
Elimination von ε -Regeln
Beweis (Forts.) Also gilt inG:
A
= ⇒
GA1. . .
A`1B1A`1+1. . .
A`2B2. . .
AmBmAm+1. . .
A`= ⇒
∗G A1. . .
A`1A`1+1. . .
A`2. . .
AmAm+1. . .
A`= ⇒
∗Gw da jaBi= ⇒
∗G εmöglich ist.Elimination von ε -Regeln: Beispiel
Beispiel 19.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.
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