Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

A digitális számítás elmélete Verem automata Verem automaták által felismert nyelvek éppen a CF nyelvek Operátorok CF nyelveken. CF nyelv és R (reguláris)

Hasonló előadás


Az előadások a következő témára: "A digitális számítás elmélete Verem automata Verem automaták által felismert nyelvek éppen a CF nyelvek Operátorok CF nyelveken. CF nyelv és R (reguláris)"— Előadás másolata:

1 A digitális számítás elmélete Verem automata Verem automaták által felismert nyelvek éppen a CF nyelvek Operátorok CF nyelveken. CF nyelv és R (reguláris) nyelv metszetre CF nyelv Nem determinisztikus verem automata, nem determinisztikus CF nyelvek.

2 Verem automaták DVA nem alkalmas CF nyelv felismerésére... Milyen módosítás szükséges? Pl:  w w R  w   * ,  0 n 1 n  0  n  CF nyelvek felismeréséhez bemenő jelek a bemeneti szalagon verem (stack) memória (LIFO elérés) véges sok állapot 

3 Verem automaták Definíció: Verem automata M = (Q, , , , q 0, F) ahol: 1.Q, egy véges halmaz az állapotok halmaza 2. , egy véges halmaz a bemeneti abc , egy véges halmaz a verem abc 4.  : Q        P (Q    ) az állapotátmenet függvény 5.q 0  Q a kezdeti állapot 6.F  Q a végállapotok halmaza Jelölés:    =   ,    =    (‘nem olvasunk-írunk’)

4 Verem automaták Definíció: Felismert (elfogadott) jelsorozat M = (Q, , , , q 0, F) egy verem automata, w = w 1 w 2... w n    -beli jelek sorozata. M felismeri w-t, ha  : r 0 r 1... r n Q-beli állapotok sorozata, és s 0 s 1... s n    -beli jelek sorozata hogy: 1.r 0 = q 0 és s 0 =  2.(r i+1, b)   (r i,w i+1, a) i = 0,...n-1, ahol: s i = at és s i+1 = bt valamely a,b    és t   * 3.r n  F Definíció: M verem automata felismeri az A nyelvet, ha A =  w  M felismeri w-t .

5 Verem automaták  =  0, 1 ,   =  0, $  q3q3 q1q1   $  q2q2    $   01   0$  0 $  0$  q1q1 ØØØØØØØØ  (q 2, $)  q2q2 ØØ  (q 2, 0)  (q 3,  )  ØØØØØ q3q3 ØØØ ØØØ  (q 4,  )  Ø q4q4 ØØØØØØØØØ q4q4   0  0 n 1 n  0  n 

6 Verem automaták  =  0, 1 ,   =  0, 1  q3q3 q1q1   $  q2q2    $ q4q4   0  ww R  w    1  

7 Verem automaták Tétel: Minden L CF nyelvhez létezik őt felismerő verem automata. Biz: Legyen egy, az L-et generáló CF grammatika G. Megkonstruálunk egy M verem automatát, amely minden bemeneti jelsorozatról eldönti, hogy levezethető-e a G grammatika szerint. Kihasználjuk a nemdeterminizmust! Pl: S  01SS0 szabály alkalmazása véges sok állapot SS$SS$

8 Verem automaták 1.A verembe beírjuk egyszerre a levezetés során a mondatszerű forma még ‘hátralévő’ részét q és r két állapot, a  -beli, s  -beli jel. Az automata q-ból r-be megy, ha a beolvasott jel a, és a verem tetejéről s-t olvas ki, és ekkor a verembe az u = u 1 u 2... u k sorozatot teszi be egyszerre. Bekitatunk új q 1, q 2,... q k-1 közbülső állapotokat, melyekre:  (q,a, s) =  (q 1, u k )   (q 1, ,  ) =  (q 2, u k-1 )   (q 2, ,  ) =  (q 3, u k-2 ) ...  (q k-1, ,  ) =  (r, u 1 )  q r a, s  xyz q r a, s  z q1q1 qq  y    x

9 Verem automaták Tehát használhatjuk azt a rövidítést, hogy (r, u)   (q,a, s), ami azt jelenti, hogy a q állapotból az a jel és s verembeli jel olvasására az automata az r állapotba kerül, és az u sorozatot betette a verembe. 2. M állapotainak halmaza, Q =  q kezdő, q vég, q ciklus  E, ahol E az előbb bevezetett közbülső állapotok halmaza.  (q kezdő, ,  ) =  (q ciklus, S$)  inicializálás a) a verem legfelső eleme nemterminális  (q ciklus, ,  ) =  (q ciklus, w)  A  w szabálya G-nek  b) a verem legfelső eleme terminális:  (q ciklus, a, a) =  (q ciklus,  )  c) a verem legfelső eleme $ :  (q ciklus, , $) =  (q vég,  ) 

10 Verem automaták Példa: S  0S1     $         S  0S1   S  q ciklus q vég q kezdő    S$  S  1 e1e1 ee    0    S  

11 Verem automaták Tétel: Minden M verem automatához létezik G CF grammatika, mely éppen az M által felismert nyelvet generálja. Biz: Feltesszük, hogy M-re igaz, hogy: 1. Egyetlen végállapota van, ez q vég. 2. A végállapotot üres veremmel éri el M. 3. Minden egyes állapotátmenet vagy betesz egy szimbólumot a verembe, vagy kivesz egyet onnan. Egy adott M könnyen módosítható úgy, hogy a feltételek teljesüljenek (ki-ki meggondolja hogyan).

12 Verem automaták Olyan nyelvtant kreálunk, amely minden p és q állapotpárhoz tartalmaz egy A pq változót, melyből minden olyan sorozat levezethető, amely az M automata p állapotát üres veremmel q-ba és üres verembe viszi. Egy ilyen p-t q-ba vivő állapotátmenet-sorozat betesz lépéssel kell hogy kezdődjön, és kivesz lépéssel kell hogy végződjön. Legyen az első lépéssel betett szimbólum a. Két esetet lehet: a)a végig a veremben maradt, csak az utolsó kivesz távolította el. b)a hamarabb kikerült a veremből. Ezt egy A pq  aA rs b szabállyal szimuláljuk, ahol b az utoljára kivett szimbólum, r a p-t követő, s a q-t megelőző állapot az állapotátmenet sorozatban.

13 Verem automaták Legyen M=(Q, , , , q 0,  q vég  ). G grammatika nemterminálisai legyenek  A pq  p, q  Q , és legyen a kezdőszimbólum A kezdő,vég Megadjuk G szabályait: a)A pq  aA rs b ahol a,b   , p,q,r,s  Q, és  t  , hogy: (r,t)   (p,a,  ) és (q,  )   (s,b, t). b)A pq  A pr A rq minden p,q,r  Q esetén. c)A pp   minden p  Q esetén. Megmutatjuk, hogy G generálja az x sorozatot csakkor, ha M elfogadja x-et.

14 Verem automaták 1.Lemma: Ha x levezethető A pq -ból, akkor M p állapotából, üres veremmel x-et beolvasva, van állapotátmenetek olyan sorozata, hogy az automata q állapotba kerül, és a verem ismét üres. Biz: a levezetések lépésszáma, n szerinti teljes indukcióval. Alap eset: n=1 Az egyetlen levezetési szabály jobb oldalán csak terminális szerepel. Ilyen szabály csak A pp   lehet. Ekkor valóban, a p állapotból a p állapot elérhető, és üres kiindulási veremmel üres vermet eredményez.

15 Verem automaták Indukciós feltevés: legfeljebb k levezetési szabály alkalmazása esetén igaz a lemma állítása. Megmutatjuk, hogy ekkor k+1 –re is igaz. Legyen A pq  * G x egy k+1 hosszú levezetés. Az első lépés, a szabályok alakja alapján, kétféle lehet: a) A pq  aA rs b, ekkor x=ayb, ahol y levezethető A rs -ból k lépésben. Ekkor az ind. feltevés szerint r-ből s állapot elérhető az y inputot beolvasva úgy, hogy az r és az s állapotban is a verem üres. Másrészt a szabály definíciója szerint  t  , hogy: (r,t)   (p,a,  ) és (q,  )   (s,b, t). Azaz t-t betéve, majd az utolsó lépésben kivéve, a lemma állítása igaz A pq  * G x -re.

16 Verem automaták b) A pq  A pr A rq, ekkor x=yz, ahol y levezethető A pr -ból és z levezethető A rq -ból legfeljebb k lépésben. Ekkor az ind. feltevés szerint p-ből az r állapot elérhető az y inputot beolvasva, illetve r-ből a q állapot elérhető az z inputot beolvasva úgy, hogy a p,r és q állapotban is a verem üres. Azaz p-ből a q állapot elérhető az x inputot beolvasva úgy, hogy a p és q állapotban a verem üres, a lemma állítása igaz A pq  * G x - re.

17 Verem automaták 2.Lemma: Ha M valamely p állapotából és üres veremből x-et beolvasva, van olyan állapotátmenetek sorozata, hogy az automata q állapotba kerül, és a verem ismét üres, akkor x levezethető a grammatika A pq nemterminálisából. Biz: az állapotátmenetek száma, n szerinti teljes indukcióval. Alap eset: Alap eset: n=0 Ekkor nincs beolvasás, tehát x=  kell hogy legyen. Valóban szerepel G szabályai között A pp  , ekkor az állítás igaz.

18 Verem automaták Indukciós feltevés: legfeljebb k hosszú állapotátmenet sorozatra igaz a lemma állítása. Megmutatjuk, hogy ekkor k+1 –re is igaz. Legyen x-hez egy megfelelő k+1 hosszú állapotátmenet-sorozat első ill. utolsó állapota p ill. q. E sorozathoz tartozó vermeket tekintve, két eset lehetséges: a)üres verem nem szerepel közbülső helyen. Ekkor az első betett elem azonos kell hogy legyen a legvégén kivett elemmel, legyen ez t. Legyen a az elsőnek, b az utolsónak beolvasott elem, r a második, s az utolsóelőtti állapot. Mivel (r,t)   (p,a,  ) és (q,  )   (s,b, t), így a A pq  aA rs b szabály szerepel G-ben. Legyen x=ayb. Ekkor r-ből y-t beolvasva s-be jut M k+1- 2 =k-1 lépésben úgy, hogy a verembe korábban betett t-t nem vesszük ki, és végül t marad a verem tetején. Ekkor az ind. feltevés szerint y levezethető A rs -ből. De ekkor A pq  * G x is igaz.

19 Verem automaták b)Legyen r az a közbülső állapot, amikor a verem kiürül. Ekkor a p-ból r-be illetve r-ből q-ba vivő állapotátmenetek sorozata legfeljebb k hosszú. Legyen x=yz, ahol y az r állapotig beolvasott, z pedig a megmaradó részsorozata x-nek. Az ind. feltevés miatt A pr  * G y és A rq  * G z. Mivel az A pq  A pr A rq szabály szerepel G-ben, így ennek alkalmazásával x levezethető A pq -ból. Ekkor az ind. feltevés szerint p-ből az r állapot elérhető az y inputot beolvasva, illetve r-ből a q állapot elérhető az z inputot beolvasva úgy, hogy a p,r és q állapotban is a verem üres. Azaz p-ből a q állapot elérhető az x inputot beolvasva úgy, hogy a p és q igaz A pq  * G x -re.

20 Verem automaták Láttuk, hogy x levezethető A pq -ból csakkor, ha M p állapotából, üres veremmel x-et beolvasva, van állapotátmenetek olyan sorozata, hogy az automata q állapotba kerül, és a verem ismét üres. Ezt alkalmazva a kezdőszimbólumra, A kezdő,vég -re azt kapjuk, hogy x levezethető A kezdő,vég -ból csakkor, ha M a kezdő állapotából, üres veremmel x-et beolvasva, van állapotátmenetek olyan sorozata, hogy az automata a vég állapotba kerül, és a verem ismét üres. Tehát x-et felismeri M csakkor, ha x-et generálja a G grammatika. Ezzel a tétel állítását bebizonyítottuk.

21 Műveletek CF nyelveken Tétel: Legyen L a CF nyelvek halmaza. L zárt a reguláris operátorokra nézve. Azaz ha A 1  L és A 2  L, akkor: 1. A 1  A 2  L. 2.A 1  A 2  L. 3.A 1 *  L.

22 Műveletek CF nyelveken Bizonyítás: Legyen G 1 = (V 1,  1, R 1, S 1 ) és G 2 = (V 2,  2, R 2, S 2 ) A 1 ill. A 2 L –beli nyelveket generáló grammatikák. Az általánosság megszorítása nélkül feltehetjük, hogy V 1 és V 2 diszjunktak. 1.Unió esete Legyen G = (V 1  V 2  {S},  1   2, R, S), ahol R = R 1  R 2  {S  S 1, S  S 2 } Ekkor L(G) = L(G 1 )  L(G 2 ) 2.Szorzat esete Legyen G = (V 1  V 2  {S},  1   2, R, S), ahol R = R 1  R 2  {S  S 1 S 2 } Ekkor L(G) = L(G 1 )  L(G 2 ) = A 1  A 2

23 Műveletek CF nyelveken 3.Iterált esete Legyen G = (V 1  {S},  1, R, S), ahol R = R 1  {S  , S  SS 1 } Ekkor L(G) = L(G 1 ) * = A 1 *

24 Műveletek CF nyelveken Tétel: Legyen L a CF nyelvek halmaza. L nem zárt a metszetre nézve. L nem zárt a komplementerre nézve. Bizonyítás: A 1 = {a n b n c m  n,m  0}, A 2 = {a n b m c m  n,m  0} mindketten CF nyelvek (generáló nyelvtanuk hf). A 1  A 2 = {a n b n c n  n  0} viszont nem CF (beláttuk). A De Morgan azonosság szerint: A 1  A 2 = (A 1 c  A 2 c ) c, így a komplementerre zártság maga után vonná a  -re zártságot.

25 Műveletek CF nyelveken Tétel: Ha A 1 CF nyelv, A 2 reguláris nyelv, akkor A 1  A 2 CF nyelv. Bizonyítás: Hasonlít a reguláris nyelvek esetében használtra. Legyen M 1 =(Q 1, , ,  1, q 1, F 1 ) verem automata, hogy A 1 = L(M 1 ) és M 2 =(Q 2, ,  2, q 2, F 2 ) dva, hogy A 2 = L(M 2 ). Legyen M =(Q 1  Q 2, , , , (q 1,q 2 ), F 1  F 2 ) verem automata, ahol:  : Q 1  Q 2        P (Q 1  Q 2    ) állapotátmenet fv legyen:  (p,q, a, b) = { (  1 (q, a), r, s)  (r,s)  2 (p,a,b) } M valóban A 1  A 2 –t ismeri fel (hf).

26 Determinisztikus CF nyelvek Def: Az M=(Q, , , , q, F ) verem automata determinisztikus, ha a  : Q        P (Q    ) állapotátmenet fv olyan, hogy minden q, a, b esetén  (q,a,b) maximum egyelemű halmaz. Def: Az L  * nyelv determinisztikus CF, ha az L$ nyelvhez van azt generáló determinisztikus verem automata, ahol $ nem  -beli szimbólum, mely a nyelv elemeinek végét jelöli. Pl: L = a*  {a n b n  n  1}

27 Determinisztikus CF nyelvek Tétel: A determinisztikus CF nyelvek osztálya zárt a reguláris operátorokra, valamint a komplementerképzésre, és a metszetképzésre. Biz: nem tárgyaljuk Tétel: A determinisztikus CF nyelvek osztálya szűkebb, mint CF nyelvek osztálya, azaz van CF nyelv, ami nem determinisztikus CF nyelv. Pl: L={a k b m c n  k  m vagy m  n } CF, de nem determinisztikus CF. Biz: BEADHATÓ HF (a fenti tételt alkalmazzuk, és tekintsük a komplementer metszetét egy alkalmas reguláris nyelvvel,...)

28 Miről volt szó ? Verem automata Verem automaták által felismert nyelvek = CF nyelvek Operátorok CF nyelveken. CF nyelv és R (reguláris) nyelv metszetre CF nyelv Nem determinisztikus verem automata, nem determinisztikus CF nyelvek.


Letölteni ppt "A digitális számítás elmélete Verem automata Verem automaták által felismert nyelvek éppen a CF nyelvek Operátorok CF nyelveken. CF nyelv és R (reguláris)"

Hasonló előadás


Google Hirdetések