• Keine Ergebnisse gefunden

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

N/A
N/A
Protected

Academic year: 2021

Aktie "Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I"

Copied!
32
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

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

(2)

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

(3)

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 w

gdw 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 Regelmenge

R

= {

S

→ (

S

S

) | (

S

S

) | ¬

S

|

A A

x

|

xN

N

1N0

|

2N0

| . . . |

9N0

|

0 N0

0N0

|

1N0

| . . . |

9N0

|

ε}

B. Beckert – Grundlagen d. Theoretischen Informatik: Ableitungsbäume SS 2007 12 / 328

(4)

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 wn

heiß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 gdw

alle 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

(5)

Mehrdeutigkeit: Beispiele

Beispiel 1.10 (Mehrdeutigkeit)

EindeutigeGrammatik für aussagenlogische Formeln:

S

→ (

S

S

) | (

S

S

) | ¬

S

|

A A

x

|

xN

N

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

|

A

A

v

|

w

|

x

|

y

|

z

B. 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

(6)

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ßt

erreichbar: Es gibtα

,

β

∈ (

V

T

)

:S

= ⇒

G αxβ co-erreichbar: Es gibtw

T:x

= ⇒

G w

nutzlos: 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

(7)

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

}

whileAlt

6=

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

Vund P beliebig Q

T und P

V

Fü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

(8)

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 Variablen

Alt:=0/

Neu:=

{

A

V

|

A

ε

R

}

whileAlt

6=

Neu

{

Alt:=Neu

für alle

(

P

Q

) ∈

Rdo

{

ifQ

=

A1

. . .

An andAi

Neufür 1

i

nandP

6∈

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

VoderQ

T.

Für jede RegelP

A1

. . .

Angeneriere alle möglichen Kombinationen P

α1

. . .

αn

mit

αi

∈ {ε,

Ai

}

fallsAi nullbar αi

=

Ai fallsAi nicht nullbar Dann

Füge alle diese neuen Regeln zur Grammatik hinzu Entferne alle Regeln der FormA

εmitA

6=

S

B. Beckert – Grundlagen d. Theoretischen Informatik: Umformung von Grammatiken SS 2007 32 / 328

(9)

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

VoderQ

T. Wir beweisen die etwas stärkere Behauptung

fü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

= ⇒

Gw

6=

ε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

. . .

Ai1Ai+1

. . .

A`nach der obigen Konstruktionsvorschrift fürG0, falls

A1

. . .

Ai1Ai+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

(10)

Elimination von ε -Regeln

Beweis (Forts.)

Wir haben also folgendes gezeigt:

SeiI

= {

i

∈ {

1

. . . `} |

wi

6=

ε} 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

=

w

B. 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

(11)

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

d

E

e E

e

Fü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

L1

Das heißt, jede kontextfreie Sprache ist auch kontextsensitiv

Beweis

Regeln einer kontextsensitiven Grammatik müssen folgende Form haben:

entwederuAv

v

mitu

,

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

(12)

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

Voder 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

VoderQ

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

(13)

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

Vund

A

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, und

2 A

amitA

V,a

T

B. Beckert – Grundlagen d. Theoretischen Informatik: Normalformen SS 2007 52 / 328

(14)

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

... Cn2

An1An

Dabei 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 Zerlegung

x

=

uvw u

,

v

,

w

Σ mit

|

v

| ≥

1

|

v

| <

n

uvmw

L für alle m

N

B. Beckert – Grundlagen d. Theoretischen Informatik: Pumping-Lemma für kontextfreie Sprachen SS 2007 56 / 328

(15)

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 Zerlegung

z

=

uvwxy u

,

v

,

w

,

x

,

y

Σ mit

|

vx

| ≥

1

|

vwx

| <

n

uvmwxmy

L für alle m

N

B. 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

(16)

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

(17)

Push-Down-Automat

Definition 5.2 (Push-Down-Automat) EinPush-Down-Automat (PDA)ist ein Tupel

M

= (

K

,Σ,Γ,∆,

s0

,

Z0

,

F

)

Dabei ist

K eine endliche Menge von Zuständen Σ das Eingabealphabet

Γ das Stack- oder Kelleralphabet s0

K der Startzustand

Z0

Γ 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

`

C2

daß der PDA in einem Schritt vonC1nachC2gelangen kann.

B. Beckert – Grundlagen d. Theoretischen Informatik: Pushdown-Automaten (PDAs) SS 2007 68 / 328

(18)

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 dass

entweder 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

`

AC0

gdw es eine Reihe von Konfigurationen C0

,

C1

, . . . ,

Cn

(

n

0

)

so daß C

=

C0, C0

=

Cn,

Ci

`

ACi+1für alle 0

i

<

n

Dann heißtC0

,

C1

, . . . ,

CneineRechnungvonA

B. 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

(19)

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

(20)

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

(21)

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ändeleerer 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 Kellerfinale 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

(22)

Gleichmächtigkeit: PDAs und kontextfreie Grammatiken

Lemma 5.13 (cf-GrammatikPDA)

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 Form

A

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

bB1B2

Angenommen, 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

(23)

Gleichmächtigkeit: PDAs und kontextfreie Grammatiken

Beweis (Forts.) Formal:

M

= (

K

,

Σ

,

Γ

,

,

s0

,

Z0

,

F

)

mit

K:=

{

s0

}

Σ:=T Γ:=V Z0:=S F:=0/

∆:=

{((

s0

,

a

,

A

),(

s0

,α)) |

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 gdw

Mrechnet

(

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

|

bB

A

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 (PDAcf-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

Referenzen

ÄHNLICHE DOKUMENTE

Eine Regel in R 0 entsteht aus einer Regel in R, indem einige nullbare Variablen gestrichen werden. (m kann auch 0 sein, dann war die Regel selbst schon

Theoretischen Informatik: Pumping-Lemma für kontextfreie Sprachen SS 2007 274 / 366.. Theoretischen Informatik: Pumping-Lemma für kontextfreie Sprachen SS 2007 274

Theoretischen Informatik: Pumping-Lemma für kontextfreie Sprachen SS 2007 268 / 356.. Theoretischen Informatik: Pumping-Lemma für kontextfreie Sprachen SS 2007 269

Theoretischen Informatik: Pumping-Lemma für kontextfreie Sprachen SS 2007 269 / 356.. Theoretischen Informatik: Pumping-Lemma für kontextfreie Sprachen SS 2007 270

Wie kann man dann garantieren, daß der Automat in endlich vielen Schritten das Wort w zu Ende gelesen hat. Deshalb: verwende

Nach rechts ist das Band unendlich, aber es enthält nach rechts von einer bestimmten Bandposition an nur noch Blanks. u = ε bedeutet, daß rechts vom Schreib-/Lesekopf nur noch

Zu jeder zw-DTM M , die eine Funktion f berechnet oder eine Sprache L akzeptiert, existiert eine Standard-DTM M 0 , die ebenfalls f berechnet bzw.. Theoretischen Informatik:

Wenn die alte Maschine simuliert wird, muss die neue nur 4 statt r Schritte machen: 2 um die neuen Felder zu drucken und weitere 2 um den Kopf auf das neue und wieder zurück auf