Kontextfreie (Typ-2) Sprachen - Informatik der theoretischen Informatik - Christian Knauer 2...
Click here to load reader
Transcript of Kontextfreie (Typ-2) Sprachen - Informatik der theoretischen Informatik - Christian Knauer 2...
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
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
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
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
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
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
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
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∪Σ)*
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єΣ∪{ε}
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єΣ∪{ε}
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єΣ
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
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
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
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}
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)
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
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
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
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