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 / 359
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 / 359
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 216 / 359
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
B. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 217 / 359
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 218 / 359
Zur Erinnerung: kontextfreie Sprachen
Beispiel 18.1 (kontextfreie Sprachen)
{
anbn|
n∈
N0}
{
anban|
n∈
N0} {
wwR|
w∈ {
a,
b}
∗}
B. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 219 / 359
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)
B. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 220 / 359
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
∈
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 221 / 359
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 222 / 359
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<
v2 und 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.B. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 223 / 359
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.
B. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 224 / 359
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|
ε}B. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 225 / 359
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 226 / 359
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 227 / 359
Links- und Rechtsableitung
Definition 18.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 228 / 359
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 :
es gibt zwei verschiedene Ableitungsbäume inGmit gleicher Front.
B. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 229 / 359
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|
zB. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 230 / 359
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 231 / 359
Mehrdeutigkeit: Beispiele
Beispiel 18.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 232 / 359
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
B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 233 / 359
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 234 / 359
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 235 / 359
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.
B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 236 / 359
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.
B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 237 / 359
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 238 / 359
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 239 / 359
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.
B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 240 / 359
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 241 / 359
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
= ⇒
∗εB. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 242 / 359
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.B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 243 / 359
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 244 / 359
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 245 / 359
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 246 / 359
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 247 / 359
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 248 / 359
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 249 / 359
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 250 / 359
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 251 / 359
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 RegelA
→
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 252 / 359
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 253 / 359
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.
B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 254 / 359
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 255 / 359