• Keine Ergebnisse gefunden

Sommersemester2007 BernhardBeckert GrundlagenderTheoretischenInformatik/EinführungindieTheoretischeInformatikI Vorlesung

N/A
N/A
Protected

Academic year: 2021

Aktie "Sommersemester2007 BernhardBeckert GrundlagenderTheoretischenInformatik/EinführungindieTheoretischeInformatikI Vorlesung"

Copied!
42
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

(2)

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

(3)

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

(4)

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

(5)

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.

(6)

Zur Erinnerung: kontextfreie Sprachen

Beispiel 18.1 (kontextfreie Sprachen)

{

anbn

|

n

N0

}

{

anban

|

n

N0

}

{

wwR

|

w

∈ {

a

,

b

}

}

(7)

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

)

(8)

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

(9)

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.

(10)

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.

(11)

Ableitungsbäume

Theorem 18.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.

(12)

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 Regelmenge

R

= {

S

→ (

S

S

) | (

S

S

) | ¬

S

|

A A

x

|

xN

N

1N0

|

2N0

| . . . |

9N0

|

0 N0

0N0

|

1N0

| . . . |

9N0

|

ε}

(13)

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’

(14)

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

)

(15)

Links- und Rechtsableitung

Definition 18.8 (Linksableitung) Eine Ableitung

w1

= ⇒

G w2

= ⇒

G

. . . = ⇒

G wn

heißtLinksableitungfallswi+1durch Ersetzen der linkesten Variable inwi

entsteht für allei

<

n.

DieRechtsableitungist analog definiert.

(16)

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 gdw

alle kontextfreien Grammatiken fürLsind mehrdeutig.

Bemerkung

Eine GrammatikGist mehrdeutig, gdw :

(17)

Mehrdeutigkeit: Beispiele

Beispiel 18.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

(18)

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

(19)

Mehrdeutigkeit: Beispiele

Beispiel 18.11 (Inhärente Mehrdeutigkeit) Die Sprache

L:=

{

aibjck

|

i

=

joderj

=

k

}

istinhärent mehrdeutig.

(20)

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

(21)

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.

(22)

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

(23)

Nutzlose Symbole

Definition 19.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.

(24)

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.

(25)

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

(26)

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

)}

}

(27)

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

Vund P beliebig Q

T und P

V

Für alle Typen außer den linearen hat G0denselben Typ wie G.

(28)

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.

(29)

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

= ⇒

ε

(30)

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.

(31)

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

(32)

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

(33)

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

VoderQ

T. Wir beweisen die etwas stärkere Behauptung

für alleA

V für allew

∈ (

V

T

)

− {ε}

(

A

= ⇒

Gw

)

gdw

(

A

= ⇒

G0 w

)

,

Daraus folgt sofortL

(

G0

) =

L

(

G

)

.

(34)

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.

(35)

Elimination von ε -Regeln

Beweis (Forts.)

Außerdem gelte in der AusgangsgrammatikG:A

= ⇒

G w

6=

ε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≤`.

(36)

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.

(37)

Elimination von ε -Regeln

Beweis (Forts.)

Wir haben also folgendes gezeigt:

SeiI

= {

i

∈ {

1

. . . `} |

wi

6=

ε} 6=0/.

Dann gibt es inR0eine RegelA

Ai1

. . .

Aim mitI

= {

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

(38)

Elimination 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=

ε.

(39)

Elimination von ε -Regeln

Beweis (Forts.)

Nach der Induktionsvoraussetzung folgt daraus:

für die OriginalgrammatikGgibt es AbleitungenAi

= ⇒

G wi

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

(40)

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.

(41)

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

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.

(42)

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.

Referenzen

ÄHNLICHE DOKUMENTE

(bspw. für Algorithmentechnik, Software Engineering, Compilerbau) hilft, weitere Themen/Vorlesungen der Informatik zu verstehen veraltet nicht.

Zudem darf an der Nachklausur (wie auch an den Teilklausuren) teilnehmen, wer an einer Prüfung zu „Einführung in die Theoretische Informatik I“ in frühren Semestern teilgenommen

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

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

Jede Regelprämisse muss mindestens eine Variable enthalten Das Wort kann im Lauf der Ableitung beliebig wachsen und wieder schrumpfen. (Weitere) Beschränkung der Form, die Regeln

Jede Regelprämisse muss mindestens eine Variable enthalten Das Wort kann im Lauf der Ableitung beliebig wachsen und wieder schrumpfen. (Weitere) Beschränkung der Form, die Regeln

Ein Algorithmus für ein Problem P ist eine Vorschrift (ein Programm), die zu beliebigem Objekt o berechnet, ob die Eigenschaft für o zutrifft oder nicht..Q. Probleme und Algorithmen

Ein Algorithmus für ein Problem P ist eine Vorschrift (ein Programm), die zu beliebigem Objekt o berechnet, ob die Eigenschaft für o zutrifft oder