Kontextfreie (Typ-2) prachen Bsp.: L 1 = { n 1 n n>} с {,1}* 1 1 L 2 = {w wє{,1}* und w=w rev } с {,1}* 11 1 ε L 3 = {w w hat genausoviele Nullen wie Einsen} с {,1}* B 1 ε 1 B 1 1 BB 1 11 11 11 11B 111 1 11 11 11B 111 111 1
yntaxbaum für kontextfreie prachen Def.: ei G=(Σ,V,,R) Typ-2 Grammatik. Baum T heisst yntaxbaum für G, falls Wurzel mit beschriftet innere Knoten mit V beschriftet Blätter mit {ε} Σ beschriftet Markierung der inneren Knoten und aller Kinder entspricht einer Regel aus R T heisst yntaxbaum für wєl(g), falls Beschriftung der Blätter von T (von links nach rechts gelesen) w ergibt 2
Bsp. yntaxbaum für Typ-2 prachen B 1, 1, B 1 1 BB 1 1 B 1 3
Linksableitung Bem.: bleitung, bei der immer die linkeste Regel angewendet wird, heisst Linksableitung yntaxbaum kann mehrere bleitungen darstellen: 1 11 11 11 11B 111 1 11 11 11B B 111 111 (aber nur eine Linksableitung) 1 1 1 4
Eindeutige kontextfreie prachen Def.: Typ-2 Grammatik G=(Σ,V,,R) heisst eindeutig, falls es für jedes Wort wєl(g) genau einen yntaxbaum gibt Typ-2 prache L heisst eindeutig, falls es eine eindeutige Typ-2 Grammatik G mit L=L(G) gibt; ansonsten heisst L inhärent mehrdeutig Motivation: Wortproblem für eindeutige Grammatiken sollte einfacher sein 5
6 Bsp. Mehrdeutige Grammatik B 1, 1, B 1 1 BB 1 1 1 1 B 1 1
Chomsky-Normalform (CNF) Def.: Typ-2 Grammatik G=(Σ,V,,R) ist in Chomsky- Normalform (CNF), falls alle Regeln folgende Form haben: BC mit,b,cєv oder a mit єv, aєσ Bem.: ε kann von Grammatik in CNF nicht erzeugt werden T yntaxbaum für CNF-Grammatik alle inneren Knoten haben Grad 2, Väter der Blätter haben Grad 1 7
Herstellen der Chomsky-Normalform atz: Jede Typ-2 prache L mit εєl c, kann von einer Typ-2 Grammatik in CNF erzeugt werden Bew.: Idee: Überführe Regeln einer Typ-2 Grammatik G=(Σ,V,,R) mit L=L(G) schrittweise in CNF Erinnerung: alle Regeln von G haben Form w mit єv und wє(v Σ)* 8
Herstellen der Chomsky-Normalform 1. chritt: für alle aєσ neue Variable Y a und neue Regel Y a a ersetze in Regeln von G (rechte eite) a durch Y a Konsequenz: alle Regeln haben Form w mit єv und wєv + oder wєσ {ε} 9
Herstellen der Chomsky-Normalform 2. chritt: für Regel B 1...B m mit m>2 ersetze durch neue Regeln B 1 C 1, C i B i+1 C i+1 für 1 i m-3 und C m-2 B m-1 B m mit neuen Variablen C 1,...,C m-2 Konsequenz: alle Regeln haben Form w mit єv und wєv 2, wєv oder wєσ {ε} 1
Herstellen der Chomsky-Normalform 3. chritt ( Eliminieren von ε-regeln ): sei E := {єv * ε} ersetze Regeln BC mit BєE durch C ersetze Regeln BC mit CєE durch B streiche Regeln ε Konsequenz: alle Regeln haben Form w mit єv und wєv 2, wєv oder wєσ 11
Herstellen der Chomsky-Normalform 4. chritt ( Eliminieren von Kettenregeln ): () solange es Kreis 1 2... r 1 gibt ersetze 2,..., r durch 1, streiche Regel 1 1 (B) bestimme Nummerierung 1,..., m der Variablen, so dass gilt: falls i j, so ist i < j für alle i = k,k-1,...,1 und für alle j=i+1,...,k mit i j streiche Regel i j falls j a mit aєσ Regel ist, Konsequenz: G ist in CNF führe neue Regel i a ein 12
Herstellen der Chomsky-Normalform Beh.: Die modifizierte Grammatik erzeugt die prache L Bew.: ( Übung) Bsp.: L 1 = { n 1 n n>}, 1 1 Herstellen der CNF: Y 1 1, Y, Y Y 1 Y Y 1 Y 1 1, Y, Y C Y Y 1, C Y 1 13
Wortproblem für Typ-2 prachen atz: Wortproblem einer Typ-2 Grammatik G=(Σ,V,,R) in CNF kann in O( R w 3 ) Zeit entschieden werden Gegeben: G, w = w 1...w n є Σ* Entscheide, ob wєl(g) Bew.: (lg. von Cooke-Younger-Kasami '67 - CYK) Idee: wєl(g) ( BC)єR und B *p, C *s, w=ps berechne V i,j mit dynamischem Programmieren: mit V i,j := {єv * w i...w j } gilt wєl(g) єv 1,n 14
CYK-lgorithmus berechne V i,j := {єv * w i...w j } mit dynamischem Programmieren: V i,i = {єv * w i } = {єv w i }, da G in CNF V i,j = {єv ( BC)єR kє{i,j-1} : BєV i,k und CєV k+1,j } dynamisches Programmieren: for l=2,..,n for i=1,..,n-l+1 j = i+(l-1) V i,j := i k j-1 {єv BєV i,k, CєV k+1,j und ( BC)єR} 15
CYK-lgorithmus for l=2,..,n for i=1,..,n-l+1 j = i+(l-1) V i,j := i k j-1 {єv BєV i,k, CєV k+1,j und ( BC)єR} ufwand zur Berechnung von V i,j : O( R n) (betrachte R Regeln und n Werte für k) Gesamtaufwand: O( R n 3 ) 16
Bsp. CYK-lgorithmus L 1 = {a n b n n>} a, B b, B T, T B a (j=1) a (j=2) b (j=3) b (j=4) B B a (i=1) a (i=2) b (i=3) b (i=4) w = aabb 17
Bsp. CYK-lgorithmus L 1 = {a n b n n>} a, B b, B T, T B a (j=1) a (j=2) b (j=3) b (j=4) B B a (i=1) a (i=2) b (i=3) b (i=4) w = aabb 18
Bsp. CYK-lgorithmus L 1 = {a n b n n>} a, B b, B T, T B a (j=1) a (j=2) b (j=3) b (j=4) T B B a (i=1) a (i=2) b (i=3) b (i=4) w = aabb 19
Bsp. CYK-lgorithmus L 1 = {a n b n n>} a, B b, B T, T B a (j=1) a (j=2) b (j=3) b (j=4) T B B a (i=1) a (i=2) b (i=3) b (i=4) w = aabb 2