Kontextfreie (Typ-2) Sprachen - Informatik der theoretischen Informatik - Christian Knauer 2...

20

Click here to load reader

Transcript of Kontextfreie (Typ-2) Sprachen - Informatik der theoretischen Informatik - Christian Knauer 2...

Page 1: Kontextfreie (Typ-2) Sprachen - Informatik der theoretischen Informatik - Christian Knauer 2 Syntaxbaum für kontextfreie Sprachen Def.: Sei G=(Σ,V,S,R) Typ-2 Grammatik.Baum T heisst

1Grundlagen der theoretischen Informatik - Christian Knauer

Kontextfreie (Typ-2) Sprachen

Bsp.: L1 = {0n1n | n>0} с {0,1}*

S 0S1 | 01L2 = {w | wє{0,1}* und w=wrev} с {0,1}*

S 0S0 | 1S1 | 0 | 1 | εL3 = {w | w hat genausoviele Nullen wie Einsen} с {0,1}*

S 0B | 1A | εA 0 | 0S | 1AAB 1 | 1S | 0BB

S 1A 11AA 11A0 110S0 1100B0 110010 S 1A 11AA 110SA 1100BA 11001A 110010

Page 2: Kontextfreie (Typ-2) Sprachen - Informatik der theoretischen Informatik - Christian Knauer 2 Syntaxbaum für kontextfreie Sprachen Def.: Sei G=(Σ,V,S,R) Typ-2 Grammatik.Baum T heisst

2Grundlagen der theoretischen Informatik - Christian Knauer

Syntaxbaum für kontextfreie Sprachen

Def.: Sei G=(Σ,V,S,R) Typ-2 Grammatik. Baum T heisst Syntaxbaum für G, falls

Wurzel mit S beschriftetinnere Knoten mit V beschriftetBlätter mit {ε}∪Σ beschriftetMarkierung der inneren Knoten und aller Kinder entspricht einer Regel aus R

T heisst Syntaxbaum für wєL(G), falls Beschriftung derBlätter von T (von links nach rechts gelesen) w ergibt

Page 3: Kontextfreie (Typ-2) Sprachen - Informatik der theoretischen Informatik - Christian Knauer 2 Syntaxbaum für kontextfreie Sprachen Def.: Sei G=(Σ,V,S,R) Typ-2 Grammatik.Baum T heisst

3Grundlagen der theoretischen Informatik - Christian Knauer

Bsp. Syntaxbaum für Typ-2 Sprachen

S 0B | 1A, A 0 | 0S | 1AA, B 1 | 1S | 0BB

1

B

S

A

A

S

1

0

0

0

1 A

Page 4: Kontextfreie (Typ-2) Sprachen - Informatik der theoretischen Informatik - Christian Knauer 2 Syntaxbaum für kontextfreie Sprachen Def.: Sei G=(Σ,V,S,R) Typ-2 Grammatik.Baum T heisst

4Grundlagen der theoretischen Informatik - Christian Knauer

Linksableitung

Bem.: Ableitung, bei der immer die “linkeste” Regel angewendet wird, heisst LinksableitungSyntaxbaum kann mehrere Ableitungen darstellen:

S 1A 11AA 11A0 110S01100B0 110010

S 1A 11AA 110SA 1100BA11001A 110010

(aber nur eine Linksableitung) 1

B

S

A

A

S

1

0

0

0

1 A

Page 5: Kontextfreie (Typ-2) Sprachen - Informatik der theoretischen Informatik - Christian Knauer 2 Syntaxbaum für kontextfreie Sprachen Def.: Sei G=(Σ,V,S,R) Typ-2 Grammatik.Baum T heisst

5Grundlagen der theoretischen Informatik - Christian Knauer

Eindeutige kontextfreie Sprachen

Def.: Typ-2 Grammatik G=(Σ,V,S,R) heisst eindeutig, falls es für jedes Wort wєL(G) genau einen Syntaxbaum gibt

Typ-2 Sprache L heisst eindeutig, falls es eine eindeutigeTyp-2 Grammatik G mit L=L(G) gibt; ansonsten heisst Linhärent mehrdeutig

Motivation: Wortproblem für eindeutige Grammatiken sollte einfacher sein

Page 6: Kontextfreie (Typ-2) Sprachen - Informatik der theoretischen Informatik - Christian Knauer 2 Syntaxbaum für kontextfreie Sprachen Def.: Sei G=(Σ,V,S,R) Typ-2 Grammatik.Baum T heisst

6Grundlagen der theoretischen Informatik - Christian Knauer

Bsp. Mehrdeutige Grammatik

S 0B | 1A, A 0 | 0S | 1AA, B 1 | 1S | 0BB

0

A

0

A

A

S

1

S

1

0

1 A

1

B

S

A

A

S

1

0

0

0

1 A

Page 7: Kontextfreie (Typ-2) Sprachen - Informatik der theoretischen Informatik - Christian Knauer 2 Syntaxbaum für kontextfreie Sprachen Def.: Sei G=(Σ,V,S,R) Typ-2 Grammatik.Baum T heisst

7Grundlagen der theoretischen Informatik - Christian Knauer

Chomsky-Normalform (CNF)

Def.: Typ-2 Grammatik G=(Σ,V,S,R) ist in Chomsky-Normalform (CNF), falls alle Regeln folgende Form haben:

A BC mit A,B,CєV oderA a mit AєV, aєΣ

Bem.: ε kann von Grammatik in CNF nicht erzeugt werdenT Syntaxbaum für CNF-Grammatik

alle inneren Knoten haben Grad 2, Väter der Blätter haben Grad 1

Page 8: Kontextfreie (Typ-2) Sprachen - Informatik der theoretischen Informatik - Christian Knauer 2 Syntaxbaum für kontextfreie Sprachen Def.: Sei G=(Σ,V,S,R) Typ-2 Grammatik.Baum T heisst

8Grundlagen der theoretischen Informatik - Christian Knauer

Herstellen der Chomsky-Normalform

Satz: Jede Typ-2 Sprache L mit εєLc, kann von einer Typ-2 Grammatik in CNF erzeugt werden

Bew.: Idee: Überführe Regeln einer Typ-2 Grammatik G=(Σ,V,S,R) mit L=L(G) schrittweise in CNF

Erinnerung: alle Regeln von G haben Form A w mit AєV und wє(V∪Σ)*

Page 9: Kontextfreie (Typ-2) Sprachen - Informatik der theoretischen Informatik - Christian Knauer 2 Syntaxbaum für kontextfreie Sprachen Def.: Sei G=(Σ,V,S,R) Typ-2 Grammatik.Baum T heisst

9Grundlagen der theoretischen Informatik - Christian Knauer

Herstellen der Chomsky-Normalform

1. Schritt: für alle aєΣ

neue Variable Ya und neue Regel Ya a ersetze in Regeln von G (rechte Seite) a durch Ya

Konsequenz: alle Regeln haben Form A w mit AєV und wєV+ oder wєΣ∪{ε}

Page 10: Kontextfreie (Typ-2) Sprachen - Informatik der theoretischen Informatik - Christian Knauer 2 Syntaxbaum für kontextfreie Sprachen Def.: Sei G=(Σ,V,S,R) Typ-2 Grammatik.Baum T heisst

10Grundlagen der theoretischen Informatik - Christian Knauer

Herstellen der Chomsky-Normalform

2. Schritt: für Regel A B1...Bm mit m>2

ersetze durch neue Regeln A B1C1,Ci Bi+1Ci+1 für 1 ≤ i ≤ m-3 undCm-2 Bm-1Bm

mit neuen Variablen C1,...,Cm-2

Konsequenz: alle Regeln haben Form A w mit AєV und wєV2, wєV oder wєΣ∪{ε}

Page 11: Kontextfreie (Typ-2) Sprachen - Informatik der theoretischen Informatik - Christian Knauer 2 Syntaxbaum für kontextfreie Sprachen Def.: Sei G=(Σ,V,S,R) Typ-2 Grammatik.Baum T heisst

11Grundlagen der theoretischen Informatik - Christian Knauer

Herstellen der Chomsky-Normalform

3. Schritt (“Eliminieren von ε-Regeln”): sei E := {AєV | A * ε}

ersetze Regeln A BC mit BєE durch A Cersetze Regeln A BC mit CєE durch A Bstreiche Regeln A ε

Konsequenz: alle Regeln haben Form A w mit AєV und wєV2, wєV oder wєΣ

Page 12: Kontextfreie (Typ-2) Sprachen - Informatik der theoretischen Informatik - Christian Knauer 2 Syntaxbaum für kontextfreie Sprachen Def.: Sei G=(Σ,V,S,R) Typ-2 Grammatik.Baum T heisst

12Grundlagen der theoretischen Informatik - Christian Knauer

Herstellen der Chomsky-Normalform

4. Schritt (“Eliminieren von Kettenregeln”): (A) solange es Kreis A1 A2 ... Ar A1 gibt

ersetze A2,...,Ar durch A1, streiche Regel A1 A1

(B) bestimme Nummerierung A1,...,Am der Variablen, so dass gilt: falls Ai Aj, so ist i < j

für alle i = k,k-1,...,1 und für alle j=i+1,...,k mit Ai Aj

streiche Regel Ai Aj

falls Aj a mit aєΣ Regel ist, führe neue Regel Ai a ein

Konsequenz: G ist in CNF

Page 13: Kontextfreie (Typ-2) Sprachen - Informatik der theoretischen Informatik - Christian Knauer 2 Syntaxbaum für kontextfreie Sprachen Def.: Sei G=(Σ,V,S,R) Typ-2 Grammatik.Baum T heisst

13Grundlagen der theoretischen Informatik - Christian Knauer

Herstellen der Chomsky-Normalform

Beh.: Die modifizierte Grammatik erzeugt die Sprache L

Bew.: ( Übung)

Bsp.: L1 = {0n1n | n>0}, S 0S1 | 01Herstellen der CNF:

Y1 1, Y0 0, S Y0SY1 | Y0Y1

Y1 1, Y0 0, S Y0C | Y0Y1, C SY1

Page 14: Kontextfreie (Typ-2) Sprachen - Informatik der theoretischen Informatik - Christian Knauer 2 Syntaxbaum für kontextfreie Sprachen Def.: Sei G=(Σ,V,S,R) Typ-2 Grammatik.Baum T heisst

14Grundlagen der theoretischen Informatik - Christian Knauer

Wortproblem für Typ-2 Sprachen

Satz: Wortproblem einer Typ-2 Grammatik G=(Σ,V,S,R) in CNF kann in O(|R||w|3) Zeit entschieden werden

Gegeben: G, w = w1...wn є Σ*Entscheide, ob wєL(G)

Bew.: (Alg. von Cooke-Younger-Kasami '67 - CYK)Idee:

wєL(G) ⇔ ∃(S BC)єR und B *p, C *s, w=psberechne Vi,j mit dynamischem Programmieren:mit Vi,j := {AєV | A * wi...wj } gilt wєL(G) ⇔ SєV1,n

Page 15: Kontextfreie (Typ-2) Sprachen - Informatik der theoretischen Informatik - Christian Knauer 2 Syntaxbaum für kontextfreie Sprachen Def.: Sei G=(Σ,V,S,R) Typ-2 Grammatik.Baum T heisst

15Grundlagen der theoretischen Informatik - Christian Knauer

CYK-Algorithmus

berechne Vi,j := {AєV | A * wi...wj } mit dynamischem Programmieren:

Vi,i = {AєV | A * wi} = {AєV | A wi}, da G in CNFVi,j = {AєV |∃(A BC)єR ∃kє{i,j-1} : BєVi,k und CєVk+1,j}

dynamisches Programmieren:for l=2,..,n

for i=1,..,n-l+1j = i+(l-1)Vi,j := ∪i ≤ k ≤ j-1{AєV | ∃BєVi,k , ∃CєVk+1,j und

(A BC)єR}

Page 16: Kontextfreie (Typ-2) Sprachen - Informatik der theoretischen Informatik - Christian Knauer 2 Syntaxbaum für kontextfreie Sprachen Def.: Sei G=(Σ,V,S,R) Typ-2 Grammatik.Baum T heisst

16Grundlagen der theoretischen Informatik - Christian Knauer

CYK-Algorithmus

for l=2,..,nfor i=1,..,n-l+1

j = i+(l-1)Vi,j := ∪i ≤ k ≤ j-1{AєV | ∃BєVi,k , ∃CєVk+1,j und (A BC)єR}

Aufwand zur Berechnung von Vi,j: O(|R|n)(betrachte ≤|R| Regeln und ≤n Werte für k)

Gesamtaufwand: O(|R|n3)

Page 17: Kontextfreie (Typ-2) Sprachen - Informatik der theoretischen Informatik - Christian Knauer 2 Syntaxbaum für kontextfreie Sprachen Def.: Sei G=(Σ,V,S,R) Typ-2 Grammatik.Baum T heisst

17Grundlagen der theoretischen Informatik - Christian Knauer

Bsp. CYK-Algorithmus

L1 = {anbn | n>0}

A a, B b, S AB | AT, T SB

w = aabb

b(i=4)b(i=3)a(i=2)a(i=1)

b (j=4)

b (j=3)

a (j=2)

a (j=1)

b(i=4)b(i=3)a(i=2)a(i=1)

b (j=4)

b (j=3)

a (j=2)

a (j=1) AA

BB

Page 18: Kontextfreie (Typ-2) Sprachen - Informatik der theoretischen Informatik - Christian Knauer 2 Syntaxbaum für kontextfreie Sprachen Def.: Sei G=(Σ,V,S,R) Typ-2 Grammatik.Baum T heisst

18Grundlagen der theoretischen Informatik - Christian Knauer

Bsp. CYK-Algorithmus

L1 = {anbn | n>0}

A a, B b, S AB | AT, T SB

w = aabb

b(i=4)b(i=3)a(i=2)a(i=1)

b (j=4)

b (j=3)

a (j=2)

a (j=1)

b(i=4)b(i=3)a(i=2)a(i=1)

b (j=4)

b (j=3)

a (j=2)

a (j=1) AA

BB

S

Page 19: Kontextfreie (Typ-2) Sprachen - Informatik der theoretischen Informatik - Christian Knauer 2 Syntaxbaum für kontextfreie Sprachen Def.: Sei G=(Σ,V,S,R) Typ-2 Grammatik.Baum T heisst

19Grundlagen der theoretischen Informatik - Christian Knauer

Bsp. CYK-Algorithmus

L1 = {anbn | n>0}

A a, B b, S AB | AT, T SB

w = aabb

b(i=4)b(i=3)a(i=2)a(i=1)

b (j=4)

b (j=3)

a (j=2)

a (j=1)

b(i=4)b(i=3)a(i=2)a(i=1)

b (j=4)

b (j=3)

a (j=2)

a (j=1) AA

BB

ST

Page 20: Kontextfreie (Typ-2) Sprachen - Informatik der theoretischen Informatik - Christian Knauer 2 Syntaxbaum für kontextfreie Sprachen Def.: Sei G=(Σ,V,S,R) Typ-2 Grammatik.Baum T heisst

20Grundlagen der theoretischen Informatik - Christian Knauer

Bsp. CYK-Algorithmus

L1 = {anbn | n>0}

A a, B b, S AB | AT, T SB

w = aabb

b(i=4)b(i=3)a(i=2)a(i=1)

b (j=4)

b (j=3)

a (j=2)

a (j=1)

b(i=4)b(i=3)a(i=2)a(i=1)

b (j=4)

b (j=3)

a (j=2)

a (j=1) AA

BB

STS