Formális nylvk és automaták Széchnyi István Egytm 6. lőadás Végs automaták és rguláris nylvk dr. Kallós Gábor 2017 2018
Formális nylvk és automaták Széchnyi István Egytm Tartalom Zártsági tulajdonságok Unióra vonatkozó zártság Konkatnációra vonatkozó zártság Kln-itrációra vonatkozó zártság Komplmntr képzésr vonatkozó zártság Mtsztr vonatkozó zártság Konstrukció példák A konstrukciók alkalmazásai Végs automaták és rguláris nylvk kapcsolata Ekvivalncia tétl Nmrguláris nylvk, pumpáló lmma 2
Formális nylvk és automaták Széchnyi István Egytm Bvztés Bláttuk (ml.): a végs automatákkal flismrhtő nylvk osztálya nm változik, ha a nmdtrm.t is mgngdjük Ez gy szép stabilitást jlnt Hasonló fontos rdmény: a rguláris nylvk osztálya is ugyanz! Azaz a rg. kifjzéskkl lírható (gnrálható) nylvk A (hamarosan kövtkző) tétl konstruktív bizonyítást ad Thát nmcsak a létzést bizonyítja, hanm pl. lő is állítja a kívánt automatát Mgvalósítható átalakítás a RE-k és az NVA-k között oda-vissza Erdti ötlt és lső mgvalósítás: Knnth L. Thompson (számítástud.) Vázlatos munkássága: C nylv Unix rndszr Rguláris kifjzésk 3
Formális nylvk és automaták Széchnyi István Egytm Zártsági tulajdonságok Unióra vonatkozó zártság Tétl: A végs automatákkal flismrhtő nylvk osztálya zárt az unió művltr Azaz: ha L(M 1 ) és L(M 2 ) olyan nylvk, amlykt az M 1 és M 2 végs automaták lfogadnak, akkor olyan M végs automata, hogy L(M) = L(M 1 ) L(M 2 ) Másként: rguláris nylvk uniója szintén rguláris (Eml.: zt már külön láttuk) Mgjgyzésk M 1 és M 2 nmdtrminisztikus végs automaták L(M 1 ) L(M 2 ) szintén nylv (nyilvánvaló) M ugyanolyan típusú (NVA), mint M 1 és M 2 (hamarosan látni fogjuk) L(M) = L(M 1 ) L(M 2 ) (látni fogjuk) 4
Formális nylvk és automaták Széchnyi István Egytm Zártsági tulajdonságok Unióra vonatkozó zártság (folyt.) A konstrukció vázlatos bmutatása M nmdt. módon mgsjti, hogy az input L(M 1 )-b vagy L(M 2 )-b sik, és zután úgy vislkdik, ahogy azt a mgfllő automata tnné s 1 M 1 F 1 s 1 M 1 F 1 s s 2 M 2 F 2 s 2 M 2 F 2 5
Formális nylvk és automaták Zártsági tulajdonságok Unióra vonatkozó zártság (folyt.) A konstrukció részlti Az M 1 és M 2 végs automaták ismrtk (adottak) M 1 = (K 1, Σ, 1, s 1, F 1 ), M 2 = (K 2, Σ, 2, s 2, F 2 ) Flthtő, hogy K 1 és K 2 diszjunktak Átnvzés lht Új automata: M = (K, Σ,, s, F), ahol K = K 1 K 2 {s} s új állapot, és nincs bnn K 1 K 2 -bn Σ nm változik (ugyanaz mind a három automata stén) = 1 2 {(s,, s 1 ), (s,, s 2 )} (két új átmnt) F = F 1 F 2 Széchnyi István Egytm M végs automata, hiszn két végs automatából áll + gy új csúcs és két új átmnt s s 1 s 2 M 1 M 2 F 1 F 2 6
Formális nylvk és automaták Széchnyi István Egytm Zártsági tulajdonságok Unióra vonatkozó zártság (folyt.) A tétl bizonyítása Tgyük fl, hogy w L(M), kkor w L(M) (s, w) w* M (q, ), q F (lfogadás dfiníciójából) (s, w) w M (s 1, w) w* M (q, ), q F 1 vagy (s, w) w M (s 2, w) w* M (q, ), q F 2 (a konstrukcióból, és az gy lépésbn történő lőállításból) (s 1, w) w* M (q, ) (s 1, w) w* M1 (q, ), q F 1 (M flépítéséből), és kkor w L(M 1 ) (lfogadás dfiníciójából) Ugyanz érvénys (s 2, w) -r is Így w L(M) w L(M 1 ) vagy w L(M 2 ) L(M) L(M 1 ) L(M 2 ) Tgyük fl, hogy w L(M 1 ) L(M 2 ), kkor w L(M 1 ) L(M 2 ) (s 1, w) w* M1 (q, ), q F 1 vagy (s 2, w) w* M2 (q, ), q F 2 (lfogadás dfiníciójából) (részltsn nm nézzük mg) Végül: L(M) L(M 1 ) L(M 2 ) és L(M 1 ) L(M 2 ) L(M), így L(M) = L(M 1 ) L(M 2 ) s s 1 s 2 M 1 M 2 F 1 F 2 7
Formális nylvk és automaták Zártsági tulajdonságok Konkatnációra vonatkozó zártság Széchnyi István Egytm Tétl: A végs automatákkal flismrhtő nylvk osztálya zárt a konkatnáció művltr Azaz: ha L(M 1 ) és L(M 2 ) olyan nylvk, amlykt az M 1 és M 2 végs automaták lfogadnak, akkor olyan M végs automata, hogy L(M) = L(M 1 ) L(M 2 ) Másként: rguláris nylvk konkatnáltja szintén rguláris (Eml.: zt már külön láttuk) Mgjgyzésk hasonlóan, mint lőbb Vázlatos konstrukció s 1 M 1 s 2 M 2 Figylm, F 1 lfogadók törlődnk! s = s 1 M 1 s 2 M 2 8
Formális nylvk és automaták Zártsági tulajdonságok Konkatnációra vonatkozó zártság (folyt.) A konstrukció részlti Az M 1 és M 2 végs automaták ismrtk (adottak) M 1 = (K 1, Σ, 1, s 1, F 1 ), M 2 = (K 2, Σ, 2, s 2, F 2 ) Flthtő, hogy K 1 és K 2 diszjunktak Új automata: M = (K, Σ,, s, F), ahol Széchnyi István Egytm K = K 1 K 2 s = s 1 Σ nm változik (ugyanaz mind a három automata stén) = 1 2 (F 1 {} {s 2 }) (több új átmnt s 2 -b) F = F 2 Tétl biz.: Nm nézzük mg, önállóan áttkinthtő s = s 1 M 1 s 2 M 2 9
Formális nylvk és automaták Széchnyi István Egytm Zártsági tulajdonságok Kln itrációra vonatkozó zártság Tétl: A végs automatákkal flismrhtő nylvk osztálya zárt a Kln csillag művltr Azaz: ha L(M 1 ) olyan nylv, amlyt az M 1 végs automata lfogad, akkor olyan M végs automata, hogy L(M) = L(M 1 )* Másként: rguláris nylvk Kln-itráltja szintén rguláris (Eml.: zt már külön láttuk) Mgjgyzésk hasonlóan, mint korábban Vázlatos konstrukció s M 1 s nw initial stat 10
Formális nylvk és automaták Széchnyi István Egytm Zártsági tulajdonságok Kln itrációra vonatkozó zártság (folyt.) A konstrukció részlti Az M 1 végs automata ismrt (adott) s M 1 M 1 = (K 1, Σ, 1, s 1, F 1 ) Új automata: M = (K, Σ,, s, F), ahol s nw initial stat K = K 1 {s}, s K 1 s új állapot Σ nm változik (ugyanaz mindkét automata stén) = 1 {(s,, s 1 )} (F 1 {} {s 1 }) (több új átmnt s 1 -b) F = F 1 {s} Tétl biz.: Nm nézzük mg, önállóan áttkinthtő Fladat: Gondoljuk át, hogy a kövtkző konstrukció nm jó! A kzdőállapotban hibás lfogadás lht! a M 1 11
Formális nylvk és automaták Széchnyi István Egytm Konstrukció példák Készítsünk olyan M NVA-t, amlyr L(M) = (a b)a! Mgoldás (lépésk) A rguláris kifjzésbn σ Σ-ra létrhozzuk az alap automatákat A fnt mgismrt konstrukciókat használjuk a gépk összkapcsolásához Az uniós kapcsolatot függőlgsn célszrű lrndzni, a konkatnációt pdig vízszintsn M a M b a b M a b a b a M a M (a b)a a a b 12
Formális nylvk és automaták Konstrukció példák Készítsünk olyan M NVA-t, amlyr L(M) = a* b*! Mgoldás (lépésk) Az alap a- és b-automatát flhasználva Létrhozzuk az a* és a b* automatákat (-átmntkkl) Az ismrt módon unióval összkapcsoljuk a gépkt (függőlgsn) Széchnyi István Egytm a b 13
Formális nylvk és automaták Széchnyi István Egytm Konstrukció példák Készítsünk olyan M NVA-t, amlyr L(M) = (ab aab)*! Mgoldás (lépésk) Létrhozzuk az ab és az aab automatákat Unióval összkapcsoljuk a gépkt (függőlgsn) Létrhozzuk a Kln-csillagos automatát (-átmntkkl) a b a b a a b a b a a b a b a a b 14
Formális nylvk és automaták Széchnyi István Egytm Zártsági tulajdonságok Komplmntr képzésr vonatkozó zártság Tétl: A végs automatákkal flismrhtő nylvk osztálya zárt a komplmntr képzésr Azaz: ha L(M 1 ) olyan nylv, amlyt az M 1 (dt.) végs automata lfogad, akkor M végs automata, hogy L(M) = Σ* \ L(M 1 ) = L(M 1 ) C Másként: rguláris nylvk komplmntr szintén rguláris Mgjgyzésk hasonlóan, mint korábban Vázlatos konstrukció q 1 s 1 M 1 q 3 q 2 q 1 s 1 M q 3 q 2 15
Formális nylvk és automaták Széchnyi István Egytm Zártsági tulajdonságok Komplmntr képzésr vonatkozó zártság (folyt.) A konstrukció részlti Az M 1 dtrminisztikus (!) végs automata ismrt (adott) M 1 = (K 1, Σ, δ 1, s 1, F 1 ) Ha M 1 nmdt., akkor konvrtálni kll! (Tljsség fontos) Új automata: M = (K, Σ, δ, s, F), ahol K = K 1 s = s 1 Σ nm változik q 1 δ = δ 1 s 1 M q 3 F = K 1 \ F 1 Komplmntr halmaz q 2 (Látjuk majd, hogy a 2-s típusú nylvk osztálya nm zárt a komplmntr képzésr) 16
Formális nylvk és automaták Széchnyi István Egytm Zártsági tulajdonságok Mtsztr vonatkozó zártság Tétl: A végs automatákkal flismrhtő nylvk osztálya zárt a mtszt művltr Azaz: ha L(M 1 ) és L(M 2 ) olyan nylvk, amlykt az M 1 és M 2 végs automaták lfogadnak, akkor olyan M végs automata, hogy L(M) = L(M 1 ) L(M 2 ) Azaz: két olyan nylv mtszt, amlykt végs automaták lfogadnak, szintén lfogadható végs automatával Másként: rguláris nylvk mtszt szintén rguláris Mgjgyzésk hasonlóan, mint korábban Bizonyítás Tudjuk: a végs automaták lfogadott nylvk zártak az unióra és a komplmntr képzésr A mtszt pdig kifjzhtő zzl a két művlttl: L(M) = L(M 1 ) L(M 2 ) = (L(M 1 ) C L(M 2 ) C ) C Mgj.: az rdti alkalmazott D Morgan szabály A B = A B 17
Formális nylvk és automaták Széchnyi István Egytm Zártsági tulajdonságok Mtsztr vonatkozó zártság (folyt.) A konstrukció részlti Az lőző lépéskt alkalmazzuk Az M 1 és M 2 végs automaták ismrtk (adottak) Átalakítjuk őkt DVA-vá, ha szükségs (Tljssé tétl, komplmntr képzéshz) Alkalmazzuk rájuk a komplmntr képzési szabályt (2 ) Alkalmazzuk az unió képzési szabályt (1 ) Átalakítjuk az uniós automatát DVA-vá, ha szükségs Alkalmazzuk a komplmntr képzési szabályt (1 ) Ezzl mgkapjuk a mtszt automatát A B = A B 18
Formális nylvk és automaták Széchnyi István Egytm A konstrukciók alkalmazásai Tétl: Létzik algoritmus annak ldöntésér, hogy L(M) = Σ* Ekkor az M VA mindn lhtségs sztringt lfogad Bizonyítás Kulcsötlt: L(M) = Σ* L(M) C = Ø Készítsük l az M 1 végs automatát úgy, hogy L(M 1 ) = L(M) C lgyn (Komplmntr képzéssl; ha szükségs, lőtt M-t dtrminizáljuk) L(M 1 ) = Ø nincs irányított út s 1 -ből F 1 valamlyik lméb (M 1 -bn) Az irányított út krsésér létznk hatékony algoritmusok 19
Formális nylvk és automaták Széchnyi István Egytm A konstrukciók alkalmazásai Tétl: Létzik algoritmus annak ldöntésér, hogy L(M 1 ) L(M 2 ) M 1 és M 2 végs automaták Bizonyítás Kulcsötlt: L(M 1 ) L(M 2 ) L(M 1 ) L(M 2 ) C = Ø (a komplmntr automatával) (Illusztráció: tartalmazásos és nm tartalmazásos ábra) L(M) = Ø llnőrzésér már mgvan a módszrünk 20
Formális nylvk és automaták A konstrukciók alkalmazásai Széchnyi István Egytm Tétl: Létzik algoritmus annak ldöntésér, hogy L(M 1 ) = L(M 2 ) M 1 és M 2 végs automaták Bizonyítás Kulcsötlt: L(M 1 ) = L(M 2 ) L(M 1 ) L(M 2 ) és L(M 2 ) L(M 1 ) (Eml.: részhalmaz állítás) L 1 L 2 llnőrzésér már mgvan a módszrünk (ml. komplmntr automata stb.) Mgjgyzésk Ez gy algoritmus, és nm a két automata gynlőségénk a dfiníciója! Spc. stkbn a tétlk állításai akár gyszrűbbn is llnőrizhtők a b a a b a q 0 q 1 q 2 b q 3 b a b q 0 q 1 a a b a q 0 b q 1 aba q 0 ab q 4 a, b q 2 q 2 21
Formális nylvk és automaták Széchnyi István Egytm Végs automaták és rguláris nylvk kapcsolata Ekvivalncia tétl Tétl: Egy nylv rguláris végs automatával flismrhtő Bizonyítás Eml.: R a rguláris nylvk halmaza; Ø R, a Σ-ra {a} R, Ha A, B R A B R, A B R, A* R, R minimális Létznk olyan végs automaták, amlyk lfogadják az ürs halmazt és a singlton nylvkt A végs automatával flismrhtő nylvk zártak az unió, konkatnáció és Kln-csillag művltkr Így mindn rguláris nylv flismrhtő végs automatával Mindn automatához flépíthtő a mgfllő kvivalns rguláris kifjzés, itt nm nézzük mg (részltsn lásd: Elmnts könyv 79 80.) 22
Formális nylvk és automaták Széchnyi István Egytm Nmrguláris nylvk Bvztő Eddig (ml.): Változatos módszrink vannak arra, hogy mgmutassuk nylvk rgulárisságát (RE, DVA, NVA) A nmrguláris tulajd. igazolására azonban ddig még nincs szközünk Elmélti rdményk alapján tudjuk, hogy nmrg. nylvk létznk A nylvk száma kontinuum; RE, ill. DVA/NVA viszont csak mgszámlálható sok van Két tulajdonság, amly rguláris nylvr jllmző, d bizonyos nmrg. nylvkr nm Egy sztring bolvasásakor a flh. mmória korlátos és lőr rögzíttt kll lgyn, továbbá a szótól függtln (csak a nylvtől függht) (Eml. L = {a n b n n 0} nylv nmrg. zt most már l is várjuk) A végtln rg. nylvk ciklust tartalmazó automatákkal, ill. Klncsillagos RE-kl rprzntálhatók. Ezk gyszrű ismétlődő struktúrák. Így várhatóan L = {a n n prím} nmrg., hiszn nincs gyszrű priódus. 23
Formális nylvk és automaták Pumpáló lmma Az lőző intuitív ötltkt most formalizáljuk Tétl (pumpáló lmma 1, itrációs lmma, kis Bar Hilll lmma; pumping thorm, rpat stat thorm): Lgyn L gy rguláris nylv. Ekkor kllő hosszú w L szó ( w K, K konstans csak L-től függ) flírható w = xyz alakban úgy, hogy y, y K, továbbá xy n z L, n 0-ra. Bizonyítás Széchnyi István Egytm Ötlt: Az L-t flismrő DVA áll.diagramja ciklust kll h. tartalmazzon, ha L-bn nagyon hosszú szavak is vannak Részltzv L rguláris, zért található hozzá őt flismrő M DVA. Tfh. az állapotok száma K, és lgyn w L-r w = k K. Lgyn w = w 1 w 2 w k A fldolgozás számítási sorozata (itt q 0 = s, q k F): (q 0, w 1 w 2 w 3 w k ) w M (q 1, w 2 w 3 w k ) w M w M (q k-1, w k ) w M (q k, ) 24
Formális nylvk és automaták Pumpáló lmma Pumpáló lmma, bizonyítás (folyt.) Széchnyi István Egytm Eml.: w = w 1 w 2 w k -ra a fldolgozás számítási sorozata (q 0, w 1 w 2 w 3 w k ) w M (q 1, w 2 w 3 w k ) w M w M (q k-1, w k ) w M (q k, ) Itt az gy lépésbn történő lőállítások száma k (k + 1 állapottal) Mivl k K, q i, q j úgy, hogy q i = q j, i j, (i < j)! Skatulya lv Válasszunk úgy, hogy a q i+1, q i+2,, q j sorozatban már n lgynk azonos lmk (kkor nyilván y K) w i+1 w i+2 w j sztring M-t q i -ből q j -b mozgatja, azaz w i+1 w i+2 w j lhagyható vagy ismétlhtő anélkül, hogy hatna w lfogadására Így végül: M y w 1 w 2 w i (w i+1 w i+2 w j ) n w j+1 w j+2 w k L, n 0-ra, ahol s x = w 1 w 2 w i y = w i+1 w i+2 w j z = w j+1 w j+2 w k x q i z 25
Formális nylvk és automaták Széchnyi István Egytm Pumpáló lmma Mgjgyzésk Ez a tétl a pumpáló tétlk általános osztályába tartozik Bizonyos pontokon a szóba részsztringk ismétltn billszthtők, zzl az lfogadás nm változik mg Eddig z a lgkifinomultabb tétl, amit tanultunk Bár viszonylag gyszrű az alkalmazása és a bizonyítása is, mégis öt (!) különböző minősítést tartalmaz Nvztsn, mindn rguláris nylvr létzik K 0 konstans, úgy, hogy mindn w L szóra, w K-val w flírható w = xyz alakban úgy, hogy y, y K, és (valójában K-nál hosszabb részszó is jó) n 0-ra xy n z L A tétl alkalmazása nm mindig gyszrű, mgfllő sztringt és flbontást kll adnunk, és végül mgmutatni, hogy xy i z nincs a nylvbn Azaz a nylv nmrguláris 26
Formális nylvk és automaták Széchnyi István Egytm Pumpáló lmma Példa (szmlélttés), rguláris nylv Ekkor a tétl állításai mind tljsülnk L = {w G* a -k száma w-bn páratlan} Itt K = 2 w = bbabaa kllőn hosszú A tétl nm mondja mg, hogy hogyan találjuk mg x, y, z szavakat, csak a létzésükt állítja Tfh. az újra mglátogatott állapot q 0 x = b, y = baba, z = a jó részsztringk xy 0 z = ba L(M), xy 1 z = bbabaa L(M), xy 2 z = bbabababaa L(M), x =, y = bbaba, z = a szintén jó részsztringk Tfh. az újra mglátogatott állapot q 1 Az lmzés hasonlóan folytatható b a b q 0 a q 1 27
Formális nylvk és automaták Pumpáló lmma Példa, nmrg. nylv Széchnyi István Egytm Tétl: Az L = {a n b n n 0} nylv nmrguláris Bizonyítás Ötlt: akármilyn w = xyz flbontást választunk, az y részszó nm pumpálható Részltzv (F. Z. alapján) Indirkt, tfh. L rguláris. Alkalmazzuk a lmmát fix w L, w k-ra. Pl. lgyn w = a k b k, itt w = 2k. Ekkor w flírható xyz alakban, ahol 0 < y k, és n 0-ra xy n z L. Vizsgáljuk mg, h. y hogyan hlyzkdht l w-bn! a) y csak a btűkből áll Ekkor (pl.) xyyz-bn #a > #b, thát xyyz L, z llntmondás b) y tartalmaz a és b btűkt is Ekkor xyyz-bn b-nk lsz olyan lőfordulása, amly mglőzi a valamly lőfordulását, így mgint csak xyyz L c) y csak b btűkből áll Mint a)-ban, xyyz L adódik Így thát L nm lht rguláris 28
Formális nylvk és automaták Széchnyi István Egytm Pumpáló lmma Példa, nmrg. nylv Tétl: Az L = {a n n prím} nylv nmrguláris Bizonyítás Ötlt: mint lőbb, az y részszó nm pumpálható Részltzv Indirkt, tfh. L rguláris. Alkalmazzuk a lmmát fix w L, w k-ra. Pl. lgyn w = a k, w = xyz, ahol 0 < y k. Lgyn x = a p, y = a q, z = a r valamly p, q, r N, q 0-ra. Mivl n 0-ra xy n z L (a tétl szrint), így szrint p + nq + r prím lnn/klln hogy lgyn n 0-ra. Lgyn pl. n = p + 2q + r + 2; d: p + nq + r = p + (p + 2q + r + 2)q + r = p + pq + 2qq + rq + 2q + r = (q + 1) (p + 2q + r), llntmondás. Thát L nm lht rguláris (nincs priodicitás a prímk halmazában) 29
Formális nylvk és automaták Széchnyi István Egytm Ajánlott irodalom Harry R. Lwis, Christos H. Papadimitriou: Elmnts of th Thory of Computation (2 nd d.), Prntic-Hall, Uppr Saddl Rivr, 1998 Fülöp Zoltán: Formális nylvk és szintaktikus lmzésük, Polygon, Szgd, 2001 Dömösi Pál és társai: Formális nylvk és automaták, Elktronikus jgyzt, 2011 Bach Iván: Formális nylvk, Typotx kiadó, Budapst, 2002 Alan P. Parks: A Concis Introduction to Languags and Machins, Springr, London, 2008 30