Formális nyelvek - 5. Csuhaj Varjú Erzsébet Algoritmusok és Alkalmazásaik Tanszék Informatikai Kar Eötvös Loránd Tudományegyetem H-1117 Budapest Pázmány Péter sétány 1/c E-mail: csuhaj@inf.elte.hu 1
Lineáris grammatikák és reguláris nyelvek Definíció Egy G = (N, T, P, S) környezetfüggetlen grammatikát lineárisnak nevezünk, ha minden szabálya vagy 1. A u, A N, u T vagy 2. A u 1 Bu 2 alakú, ahol A,B N és u 1,u 2 T. Továbbá G-t bal-lineárisnak, illetve jobb-lineárisnak mondjuk, ha u 1 = ε, illetve u 2 = ε minden 2. alakú szabályra. Megjegyzés: A jobb-lineáris grammatikák azonosak a reguláris grammatikákkal (3-típusúak). 2
Lineáris grammatikák és nyelvek Definíció Egy L nyelvet lineárisnak, bal-lineárisnak, illetve jobb-lineárisnak mondunk, ha van olyan G lineáris, bal-lineáris, illetve jobb-lineáris grammatika, amelyre L = L(G) teljesül. Tétel Minden bal-lineáris grammatika reguláris (3-típusú) nyelvet generál. 3
Bizonyításvázlat Legyen G = (N,T,P,S) bal-lineáris grammatika és legyen N = {S,A 1,...,A n }. Az általánosság megszorítása nélkül feltehetjük, hogy S nem fordul elő egyetlen szabály jobboldalán sem. Megkonstruálunk egy G = (N,T,P,S) jobb-lineáris grammatikát, amelyre L(G) = L(G ) teljesül. Legyen 1. S u P akkor és csak akkor, ha S u P, u T, 2. S ua k P akkor és csak akkor, ha A k u P, u T, 3. A j ua k P akkor és csak akkor, ha A k A j u P, u T, 4. A j u P akkor és csak akkor, ha S A j u P, u T. 4
Bizonyításvázlat - folytatás Megmutatjuk, hogy L(G) = L(G ). Legyen w L(G). Ha S w P, akkor S w P, így w L(G ). Egyébként w-hez van G-ben egy S = A i1 w 1 =... = A im 1 w m 1...w 1 = w m...w 1 = w levezetés. Azonban ekkor G -ben létezik egy S = w m A im 1 = w m w m 1 A im 2 =... = w m...w 2 A i1 = w m...w 1 = w levezetés, azaz w L(G ). Így L(G) L(G ). A fordított álĺıtás igaz volta a szimmetria következménye. 5
Következmény Korollárium L 3 zárt a tükrözés (megfordítás) műveletére nézve és minden reguláris nyelv generálható bal-lineáris grammatikával. A bizonyítás azonnal adódik. Minden jobb-lineáris G grammatikához meg tudunk konstruálni egy G bal-lineáris grammatikát, amely L(G) tükörképét generálja. Ha L L 3, akkor L 1 generálható a bal-lineáris G grammatikával és a megelőző tétel alapján L 1 reguláris. Akkor (L 1 ) 1 szintén reguláris. 6
Példa Legyen L 1 = {a n b n c k n 1,k 1} és L 2 = {a k b n c n n 1,k 1}. L 1 és L 2 lineáris nyelvek és L 1 L 2 = {a n b n c n n 1} környezetfüggő, de nem környezetfüggetlen nyelv. L 1 generálható a G 1 = ({S,A},{a,b,c},P 1,S) grammatikával, ahol P 1 = {S Sc,S Ac,A ab,a aab} és L 2 generálható a G 2 = ({S,B},{a,b,c},P 2,S) grammatikával, ahol P 2 = {S as,s ab,b bc,b bbc}. 7
3-típusú grammatikák normálformája Tétel Minden 3-típusú, azaz reguláris nyelv generálható egy olyan grammatikával, amelynek szabályai vagy 1. X ay, ahol X,Y N és a T vagy 2. X ε alakúak, ahol X N. 8
Bizonyításvázlat Legyen G = (N, T, P, S) 3-típusú grammatika. Ismeretes, hogy G szabályai vagy: 1. A ub vagy 2. A u alakúak, ahol A,B N és u T. 9
Bizonyításvázlat - folytatás Tegyük fel, hogy u > 1. Legyen u = a 1...a n, n 2. Helyettesítsünk minden A a 1...a n B szabályt az {A a 1 Z 1,Z 1 a 2 Z 2,...,Z n 1 a n B} szabályhalmazzal, ahol Z 1,...,Z n 1 új, a szabályhoz bevezetett nemterminálisok. Hasonlóan, az A a 1...a m, m 1 alakú szabályokat helyettesítsük a {A a 1 Y 1,Y 1 a 2 Y 2,...,Y m 1 a m Y m,y m ε} szabályhalmazokkal, ahol Y 1,...,Y m a szabályhoz bevezetett új nemterminálisok. Az így kapott új P 1 szabályhalmaz elemei X ay, X Y, X ε alakúak, ahol X,Y N és a T. Ezután elimináljuk a láncszabályokat. 10
Bizonyításvázlat - folytatás Legyen N a P 1 szabályhalmazban előforduló nemterminálisok halmaza (az új nemterminálisokat is beszámítva). Legyen bármely X N nemterminálisra U(X) = {Y Y = X}. Definiáljuk P -t a következőképpen: 1. X ay, akkor és csak akkor, ha létezik olyan Z N, amelyre X U(Z) és Z ay P 1, 2. X ε, akkor és csak akkor, ha létezik olyan Z N, amelyre X U(Z) és Z ε P 1. Könnyen látható, hogy L(G) = L(G ), ahol G = (N,T,P,S). 11
Korollárium Minden ε-mentes reguláris (3-típusú) grammatikához konstruálható egy vele ekvivalens reguláris grammatika, amelynek szabályai 1. X ay vagy 2. X a alakúak, ahol X,Y N és a T. 12
Környezetfüggetlen nyelvek egy zártsági tulajdonsága Tétel A környezetfüggetlen nyelvek osztálya, azaz L 2 zárt a reguláris (3- típusú) nyelvekkel való metszetre nézve. 13
Bizonyításvázlat Legyen L egy tetszőleges környezetfüggetlen nyelv (L L 2 ) és legyen let L (L L 3 ) reguláris nyelv. Megmutatjuk, hogy L L környezetfüggetlen. Először is, tegyük fel, hogy ε / L és az L nyelvet a G = (N,T,P,S) Chomsky-normálformájú grammatika, az L nyelvet pedig a G = (N,T,P,S ), a megelőzőekben ismertetett normálformájú grammatika generálja. Legyen {X 1,...,X k } a G azon nemterminálisainak halmaza, amelyekre X i ε, 1 i k teljesül. 14
Definiáljuk a következő grammatikákat: Bizonyításvázlat - folytatás i {1,...,k} ahol G i = (N (N T) N,T T,P,(S,S,X i )), 1. (X,A,Y) (X,B,Z)(Z,C,Y) P minden X,Y,Z N nemterminálisra akkor és csak akkor, ha A BC P, 2. (X,A,Y) (X,a,Y) P minden X,Y N nemterminálisra, akkor és csak akkor, ha A a P, 3. (X,a,Y) a P, akkor és csak akkor, ha X ay P. Megmutatjuk, hogy L L = k i=1 L(G i). 15
Legyen w = a 1...a n, a i T, 1 i n. Bizonyításvázlat - folytatás 1. w akkor és csak akkor vezethető le G-ben, ha minden i-re és N -beli nemterminálisok minden Z 1,...,Z n 1 sorozatára létezik (S,S,X i )= Gi (S,a 1,Z 1 )(Z 1,a 2,Z 2 )...(Z n 1,a n,x i ) alakú levezetés G i -ben. Továbbá, 2. w akkor és csak akkor vezethető le G -ben, ha létezik nemterminálisok Z 1,...,Z n 1 sorozata és X i N, ahol X i ε P úgy, hogy S = G a 1 Z 1 = G a 1 a 2 Z 2 = G... = G a 1...a n X i = G a 1 a 2...a n. 16
Bizonyításvázlat - folytatás Ez azt jelenti, hogy w akkor és csak akkor vezethető le G -ben, ha vannak olyan Z 1,...,Z n 1 nemterminálisok N -ben és van olyan levezetés G i -ben, ahol (S,a 1,Z 1 )(Z 1,a 2,Z 2 )...(Z n 1,a n,x i )= Gi a 1 a 2...a n fennáll. Ebből az következik, hogy w L L akkor és csak akkor, ha w L(G i ) valamely i-re. Ha ε L, akkor megkonstruálunk egy (L {ε}) L -t generáló környezetfüggetlen grammatikát és hozzáadjuk az S 0 ε,s 0 S szabályokat. 17