Irodlom Formális nyelvek I/1. Véges utomták és reguláris nyelvek Fülöp Zoltán SZTE TTIK Informtiki Intézet Számítástudomány Alpji Tnszék 6720 Szeged, Árpád tér 2. Fülöp Zoltán, Formális nyelvek és szintktikus elemzésük, Polygon, 2004. Ésik Zoltán, Gomás Év és Iván Szolcs: Automták és formális nyelvek példtár, Typotex Kidó, 21. J. E. Hopcroft és R. Motwni, J. D. Ullmn, Introduction to Automt Theory, Lnguges, nd Computtion, Addison Wesley, 20 és Person Eduction Limited 24. (A ili.) Peter Linz, An Introduction to Forml Lnguges nd Automt, Jones & Brlett Lerning, 22. Ajánlott z elődások látogtás és jegyzetelés! A vizsgán z elődáson elhngzottkt is tudni kell. 1/148 2/148 A formális nyelvek egy lklmzás Egy (progrmozási) nyelv szintxis: zon szályok összessége, melyek meghtározzák nyelvet. Hogyn, milyen módszerrel dhtó meg progrmozási nyelvek szintxis? A legelterjedte módszer genertív nyelvtnnl történő szintxis megdás. Adjuk meg z A,B és C változókól, 0 és 1 konstnsokól, + és műveleti jelekől, vlmint ( és ) zárójelekől felépíthető ritmetiki kifejezések szintxisát! Ilyenek például z A, 1, A+1, A+B, A (B +1) ritmetiki kifejezések. Az összes ilyen kifejezés egy nyelvet lkot. A formális nyelvek egy lklmzás Aritmetiki kifejezések Aritmetiki kifejezéseknek z A,B és C változó jelekől, 0 és 1 konstns jelekől, + és műveleti jelekől, vlmint ( és ) csoportosító jelekől, kif tg kif + tg tg fkt tg fkt fkt ( kif ) vlt konst vlt A B C konst 0 1 szályok lklmzásávl felépíthető jelsoroztokt (szvkt) nevezzük. A jel válsztási lehetőséget jelent, olvssuk vgy -nk. Ez egy genertív nyelvtn. 3/148 4/148
A formális nyelvek egy lklmzás Levezetés: kif tg tg fkt tg ( kif ) tg ( kif + tg ) tg ( tg + tg ) fkt ( tg + tg ) fkt ( fkt + tg ) fkt ( fkt + fkt ) Minden lépésen z láhúzott szintktiki egységet helyettesítjük megfelelő szály jo oldlán álló vlmelyik kifejezéssel. A formális nyelvek egy lklmzás Levezetés: fkt ( fkt + fkt ) vlt ( fkt + fkt ) vlt ( vlt + fkt ) vlt ( vlt + konst ) A ( vlt + konst ) A (B + konst ) A (B +1) Jelölés: kif A (B +1) 5/148 6/148 A formális nyelvek egy lklmzás Az A, B, C, 0, 1, +,, ( és ) jelekől álló ritmetiki kifejezés szintxis: egy jelsorozt (vgy szó) kkor és csk kkor ritmetiki kifejezés, h kif -ől fenti szintktiki szályok lklmzásávl történő levezetéssel megkphtó. Röviden: w szó ritmetiki kifejezés kif w. A formális nyelvek egy lklmzás Egy másik péld: FONYA progrmozási nyelv szintxis: progrm ut.list. ut.list ut ut ; ut.list ut ert.do ifut whileut lokk ert.do vlt := kif ifut if relcio then ut else ut whileut while relcio do ut lokk egin ut.list end relcio kif relciojel kif relciojel < > = 7/148 8/148
A formális nyelvek egy lklmzás Egy másik péld: FONYA progrmozási nyelv szintxis: kif tg kif + tg tg fkt tg fkt fkt ( kif ) vlt konst vlt A B C konst 0 1 A formális nyelvek egy lklmzás Egy w jelsorozt kkor és cskis kkor szintktikusn helyes FONYA nyelvű progrm, h progrm w. Ilyen például l oldli jelsorozt és nem ilyen jo oldli: A := 0; A := 0; while A < C do while A+C do egin A := A+1; egin A := A+1 B := B C B := B C end; end; C := C B. C := C B. A jo oldlin két szintktikus hi vn! 9/148 10/148 A formális nyelvek egy lklmzás Az elemzés lpkérdése: Amennyien dott egy progrmozási nyelv szintxis és dott egy ezen nyelven írott progrm, kkor hogyn tudjuk eldönteni zt, hogy z dott progrm engedelmeskedik-e szintxisnk, vgyis szintktikusn helyes-e? Röviden: igz-e, hogy progrm w? Tö lgoritmus is létezik, lásd Szintktikus elemzési módszerek c. kurzus nygát. Áltlános foglmk, jelölések Áécé: szimólumoknk egy tetszőleges véges, nemüres hlmz. Áltlán Σ-vl jelöljük. Σ áécé feletti szó: egy 1... k lkú sorozt, hol k 0 és 1,..., k Σ. k = 0 eset: üres szónk nevezzük, jele ε. Péld áécére és szvkr: Σ = {,}, ε,,,,, st. Progrmozásn: ASCII, Unicode áécék, BEGIN, END, IF, ALMA, K1, továi kulcsszvk, zonosítók, 123, -412.2, K1+123, egyé számok, kifejezések st pedig szvk. 11/148 12/148
Áltlános foglmk, jelölések Összes szvk hlmz: Σ = { 1... k k 0, 1,..., k Σ} Σ + = { 1... k k 1, 1,..., k Σ} = Σ {ε} Péld: Σ = {ε,,,,,,,,...}, Σ + = {,,,,,,,...} Konktenáció: z u,v Σ szvk egymás után írásávl kpott uv Σ szó. Péld: h u =, v =, kkor uv =, uε = εu = u. A konktenáció sszocitív: u(vw) = (uv)w minden u,v,w Σ -r n Htványozás: u n {}}{ = uu...u, u 0 = ε, u = -re u 3 =. Áltlános foglmk, jelölések H w = xy, kkor x w prefixe, y w suffixe. Péld: pefixei ε,,,, suffixei,,,ε Egy w szó hosszán enne előforduló etűk multiplicitássl vett számát értjük. A jele w, pontos definíció következő: (i) h w = ε, kkor w = 0, (ii) h w = v, vlmely Σ és v Σ -r, kkor w = 1+ v. Péld: ε = 0, = 1, = 2, = 3. 13/148 14/148 Áltlános foglmk, jelölések Nyelv: Σ tetszőleges részhlmzát Σ feletti nyelvnek nevezzük. Péld {, } feletti nyelvekre: {,, } (véges nyelv), {w Σ w páros }, {ε,,,,...} = { n n n 0}. A már ismert ritmetiki kifejezések hlmz egy nyelv z {A,B,C,0,1,+,,(,)} áécé felett. Az összes Σ feletti nyelvek hlmz: P(Σ ) (kontinuum számosságú). Műveletek nyelvekkel Legyenek L,L 1,L 2 Σ nyelvek. Az L 1 L 2,L 1 L 2 és L 1 L 2 z ismert hlmzelméleti műveletek. Továá L = Σ L z L komplementere, L 1 L 2 = {uv u L 1,v L 2 } z L 1 és L 2 konktenációj, Minden lehetséges módon válsztunk L 1 -ől és L 2 -ől szvkt és összeláncoljuk (konktenáljuk) őket: {ε,,}{,} = {,,,,,} Σ {} = {w w Σ }, z -r végződő szvk hlmz. 15/148 16/148
Műveletek nyelvekkel A nyelvek konktenációj is sszocitív: L 1 (L 2 L 3 ) = (L 1 L 2 )L 3, ezért zárójelezés elhgyhtó. Ugynkkor, konktenáció nem kommuttív: pl. legyen L 1 = {} és L 2 = {}. Műveletek nyelvekkel Htványozás: L n = n {}}{ LL...L, L 0 = {ε} L = {ε} L LL LLL... z L iteráltj, Tetszőleges számú (0 is megengedett) L-eli szó konktenációjként megkphtó szvk hlmz. {,} = {ε,,,,,,,,...} Ekkor L 1 L 2 = {} és L 2 L 1 = {}. L + = L LL LLL... ( 0 eset kizárv). 17/148 18/148 Műveletek nyelvekkel Megjegyzés: Minden L nyelvre ε L és = {ε}. H ε L, kkor ε L +, tehát L + = L H ε L, kkor ε L +, tehát L + L L = {ε} L +. Az, és komplementer műveleteket Boole műveleteknek, z, konktenáció és iteráció műveleteket pedig reguláris műveleteknek nevezzük. Műveletek nyelvekkel Néhány, nyelv műveletekre vontkozó zonosság: L 1 (L 2 L 3 ) = (L 1 L 2 ) L 3 L 1 (L 2 L 3 ) = (L 1 L 2 )L 3 L 1 L 2 = L 2 L 1 L{ε} = {ε}l = L L L = L L = L = L L = L = Továá: L 1 (L 2 L 3 ) = L 1 L 2 L 1 L 3 (L 1 L 2 )L 3 = L 1 L 3 L 2 L 3 (L 1 L 2 ) = (L 1 L 2) L 1 (L 1 L 2 ) = {ε} L 1 (L 2 L 1 ) L 2 19/148 20/148
Genertív nyelvtnok Egy olyn, könnyen leírhtó eszközzel ismerkedünk meg, mely lklms (áltlán végtelen) nyelvek megdásár. Az eszköz neve genertív nyelvtn (vgy genertív grmmtik). Más szóvl: genertív nyelvtnok olyn végesen specifikálhtó eszközök, melyekkel nyelveket tudunk reprezentálni. Genertív nyelvtnok Genertív nyelvtn: egy G = (N,Σ,P,S) négyes, hol: N egy áécé, nemterminális áécé, Σ egy áécé, terminális (efejező, végső) áécé, mire N Σ =, S N kezdő szimólum (vgy strt szimólum), P pedig α β lkú ún. átírási szályok véges hlmz, hol α,β (N Σ) és α-n vn leglá egy nemterminális etű. (α szály l oldl, β jo oldl.) 21/148 22/148 Genertív nyelvtnok Péld: G 1 = ({S,A},{,},{S A,A A,A ε},s) egy nyelvtn, hol {S, A} nemterminális áécé, {,} terminális áécé, S kezdő (strt) szimólum, {S A,A A,A ε} szályok hlmz. A A egy szály, minek l oldl A, jo oldl pedig A Genertív nyelvtnok Közvetlen levezetés (deriváció): tetszőleges γ,δ (N Σ) esetén γ G δ, h vn olyn α β P szály és vnnk olyn α,β (N Σ) szvk, melyekre fennállnk, hogy γ = α αβ, δ = α ββ. α α β G α β β γ δ 23/148 24/148
Genertív nyelvtnok Péld: G 1 = ({S,A},{,},{S A,A A,A ε},s) AA AA z A A szállyl AA A z A ε szállyl Genertív nyelvtnok Levezetések: γ G δ: egy lépés γ n G δ: n 0 lépés (γ 0 G δ γ = δ) γ + G δ: leglá egy lépés γ G δ: vlmennyi (esetleg 0) lépés H nem okoz félreértést, G helyett -t írunk. 25/148 26/148 Genertív nyelvtnok Péld: G 1 = ({S,A},{,},{S A,A A,A ε},s) S A A A Tehát: S, S +, S 4 mind teljesülnek. Továá: A A, A 2 A, tehát A A, A A. Leginká zok levezetések érdekelnek ennünket, melyek kezdő szimólumól indulnk ki és terminális szón végződnek. Genertív nyelvtnok G = (N,Σ,P,S) nyelvtn áltl generált nyelv: L(G) = {u Σ S G u}. A G 1 = ({S,A},{,},{S A,A A,A ε},s) példán L(G 1 ) = { n n n 1}. Egy nyelvet áltlán nem csk egy nyelvtnnl lehet generálni: G = (N,Σ,P,S) és G = (N,Σ,P,S ) nyelvtnok ekvivlensek, h L(G) = L(G ). 27/148 28/148
Genertív nyelvtn Péld: Az elői G 1 nyelvtn ekvivlens G 2 = ({S},{,},{S S,S },S) nyelvtnnl, mert ugyncsk L(G 2 ) = { n n n 1}. Genertív nyelvtnok Péld: G r = (N,Σ,P,S), hol N = {K,T,F}, Σ = {+,,(,),}, S = K, P = { - K K +T, K T, - T T F, T F, - F (K), F }. Ekkor L(G r ) z -ól vlmint (,),+ és jelekől képezhető ritmetiki kifejezések hlmz. 29/148 30/148 Genertív nyelvtn Az A α 1,...,A α n szályok feĺırását következőképpen rövidítjük: A α 1... α n. Például, G r nyelvtn szályi megdhtók így is: - K K +T T, - T T F F, - F (K). Egy levezetés G r -n: Áltlános jelölések Az,,c,d,... szimólumok Σ elemeit, z A,B,C,D,..., és S szimólumok N elemeit, z...,u,v,w,x,y,z szimólumok N Σ elemeit, z α,β,γ,δ,... szimólumok (N Σ) elemeit, és z...,u,v,w,x,y,z szimólumok Σ elemeit fogják jelölni. K T T F F F (K) F (K +T) F (F +F) F (+) 31/148 32/148
Chomsky nyelvosztályok A G = (N,Σ,P,S) nyelvtn 0 típusú (vgy áltlános), h rá semmilyen korlátozás nincs. 1 típusú (vgy környezetfüggő), h P-en minden szály αaβ αδβ lkú, hol δ ε. Kivétel, z S ε szály, ekkor zonn z S nem szerepelhet semelyik szály jo oldlán. 2 típusú (vgy környezetfüggetlen), h P-en minden szály A α lkú. 3 típusú (vgy reguláris), h P-en minden szály A xb vgy A x lkú. Chomsky nyelvosztályok Egy dott G nyelvtn esetén legngyo olyn i {0,1,2,3} z érdekes, melyre nyelvtn i típusú. Pl. G 1,G 2 és G r nyelvtnok rendre 0, 2 és 2 típusúk. Egy dott L Σ nyelvet i típusúnk mondunk vlmely i {0,1,2,3}-re, h vn olyn i típusú G nyelvtn, melyre L = L(G). Itt is legngyo olyn i z érdekes, melyre nyelv i típusú. Pl. z L(G 1 ),L(G 2 ) és L(G r ) nyelvek mindegyike 2 típusú és e lehet izonyítni, hogy egyik sem 3 típusú. 33/148 34/148 Chomsky nyelvosztályok Az i {0,1,2,3} típusú nyelvek osztályát L i -vel jelöljük. A nyelveket ugyncsk elnevezzük nyelvtnok nevével: Egy dott L Σ nyelv áltlános, (környezetfüggő, környezetfüggetlen, reguláris), h vn olyn áltlános, (környezetfüggő, környezetfüggetlen, reguláris) G nyelvtn, melyre L = L(G). Tehát: L 0 z áltlános nyelvek osztály, L 1 környezetfüggő nyelvek osztály, L 2 környezetfüggetlen nyelvek osztály és L 3 reguláris nyelvek osztály. Chomsky nyelvosztályok Az i {0,1,2,3} típusú nyelvek osztályát L i -vel jelöljük. Az nyilvánvló, hogy L 3 L 2 és L 1 L 0, mert minden 3-típusú nyelvtn 2-típusú is és minden 1-típusú nyelvtn 0-típusú is. Késő látni fogjuk, hogy érvényes Chomsky nyelvhierrchi: sőt z erőse lkj is. L 3 L 2 L 1 L 0, L 3 L 2 L 1 L 0 35/148 36/148
Chomsky nyelvosztályok Összefogllás Chomsky nyelvosztályok Egy péld 3-típusú (reguláris) nyelvtnr és nyelvre. A G 3 nyelvtn szályi: 0 0 S B, 1 2 3 1 2 3 B B Derivációk: Nyelvtnok Nyelvek S B, S B B S B B B L(G 3 ) = { n n 0} A l oldli z eddigiek lpján világos, jo oldlit fokoztosn, teljesen félév végére látjuk e. Derivációt csk B szállyl lehet efejezni! 37/148 38/148 Véges utomták, reguláris kifejezések Továi progrm: Először reguláris nyelveket (vgyis reguláris nyelvtnokkl generálhtó nyelveket) vizsgáljuk. Bevezetünk továi két olyn eszközt, melyekkel reguláris nyelveket lehet megdni (reprezentálni): véges utomtákt és reguláris kifejezéseket. Véges utomták Az M = (Q,Σ,δ,q 0,F) rendszert determinisztikus utomtánk nevezzük, hol: 1. Q egy nem üres, véges hlmz, z állpotok hlmz, 2. Σ egy áécé, z input áécé, 3. q 0 Q kezdő állpot, 4. F Q végállpotok hlmz, 5. δ : Q Σ Q egy leképezés, z átmenetfüggvény. Megmuttjuk, hogy mind véges utomtákkl felismerhető nyelvek, mind reguláris kifejezésekkel reprezentálhtó nyelvek megegyeznek reguláris nyelvekkel. 39/148 40/148
Véges utomták Automt megdás irányított gráfként: Az állpotok gráf csúcsi, h δ(q,) = p, kkor q csúcsól egy élet irányítunk p csúcs és z élet ellátjuk z címkével, Véges utomták Péld: M 3 = (Q,Σ,δ,q 0,F) egy utomt, hol Q = {q 0,q 1,q 2 }, Σ = {,}, F = {q 0 }, továá q p δ(q0,) = q 1, δ(q 0,) = q 0, δ(q1,) = q 2, δ(q 1,) = q 1, δ(q2,) = q 0, δ(q 2,) = q 2. és zt mondjuk, hogy z utomt q állpotól z input szimólum htásár átmegy p állpot. A kezdő és végállpotokt reprezentáló csúcsokt megjelöljük. 41/148 42/148 Véges utomták Az M 3 utomt megdás irányított gráfként: Véges utomták Automt megdhtó tálázt formán is. A kezdő állpotot tálázt első sorá írjuk, végállpotokt pedig megjelöljük. kezdő állpot: q 0 végállpot-hlmz: {q 0 } q 1 Az M 3 utomt megdás tálázttl: δ q 0 q 1 q 0 q 0 q 1 q 2 q 1 q 2 q 0 q 2 q 2 43/148 44/148
Véges utomták M konfigurációink hlmz: C = Q Σ. A (q, 1... n ) konfiguráció zt jelenti, hogy M q állpotn vn és z 1... n szót kpj inputként. Átmeneti reláció: (q,w),(q,w ) C esetén (q,w) M (q,w ) h w = w, vlmely Σ-r és δ(q,) = q. (q,w) M (q,w ), egy lépés (q,w) n M (q,w ), n 0 lépés (q,w) + M (q,w ), leglá egy lépés (q,w) M (q,w ), vlmennyi (esetleg 0) lépés Véges utomták Az M = (Q,Σ,δ,q 0,F) utomt áltl felismert nyelven z nyelvet értjük. L(M) = {w Σ (q 0,w) M (q,ε) és q F} Szvkkl: q 0 -ól w htásár vlmelyik q F végállpot jutunk. M q 0 w F w L(M) 45/148 46/148 Véges utomták Átmenetek z M 3 utomtán: Véges utomták Az M 3 utomt áltl felismert L(M 3 ) nyelv zon szvkól áll, melyeken z etűk szám oszthtó háromml. kezdő állpot: q 0 végállpot-hlmz: {q 0 } q1 kezdő állpot: q 0 végállpot-hlmz: {q 0 } q1 q0 q2 q0 q2 (q 1,) M3 (q 2,) M3 (q 0,) 2 M 3 (q 0,ε), (q 0,) M3 (q 0,) M3 (q 1,) M3 (q 1,) M3 (q 2,) M3 (q 0,ε) és (q 0,) M3 (q 1,) M3 (q 1,) M3 (q 1,ε) 47/148 L(M 3 ), mert: (q 0,) M3 (q 0,) M3 (q 1,) M3 (q 1,) M3 (q 2,) M3 (q 0,ε) L(M 3 ), mert: (q 0,) M3 (q 1,) M3 (q 1,) M3 (q 1,ε) 48/148
Véges utomták A determinisztikus utomt áltlánosítás: nemdeterminisztikus utomt. Véges utomták A nemdeterminisztikus utomt egy input szimólum htásár egy állpotól tö állpot is átmehet: Az M = (Q,Σ,δ,q 0,F) rendszert nemdeterminisztikus utomtánk nevezzük, hol: 1. Q egy nem üres, véges hlmz, z állpotok hlmz, 2. Σ egy áécé, z input áécé, 3. q 0 Q kezdő állpot, 4. F Q végállpotok hlmz, 5. δ : Q Σ P(Q) egy leképezés, z átmenetfüggvény. Egy input szimólum htásár egy állpotól tö állpot is átmehet. Az áltlánosítás vlóján nem növeli meg felismerő kpcitást. δ(q,) = {q 1,...,q n } q Az is megengedett, hogy δ(q,) =. q 1 q 2. q n 49/148 50/148 Véges utomták Péld: M = (Q,Σ,δ,q 0,F) egy nemdeterminisztikus utomt, hol Q = {q 0,q 1,q 2,q 3 }, Σ = {,}, F = {q 3 }, továá δ(q0,) = {q 0,q 1 }, δ(q 0,) = {q 0 }, δ(q1,) =, δ(q 1,) = {q 2 }, δ(q2,) = {q 3 }, δ(q 2,) =, δ(q3,) = δ(q 3,) = {q 3 }. Véges utomták Az M utomt megdás tálázttl: δ q 0 q 0,q 1 q 0 q 1 q 2 q 2 q 3 q 3 q 3 q 3,, q 0 q 1 q 2 q 3 51/148 52/148
Véges utomták Az átmeneti reláció és felismert nyelv nemdeterminisztikus utomtákr: Véges utomták,, Átmeneti reláció: (q,w),(q,w ) C esetén (q,w) M (q,w ) h w = w, vlmely Σ-r és q δ(q,). Az M = (Q,Σ,δ,q 0,F) utomt áltl felismert nyelven z L(M) = {w Σ (q 0,w) M (q,ε) vlmely q F-re} nyelvet értjük. q 0 q 1 q 2 q 3 L(M ) = {uv u,v Σ }, tehát M pontosn zon Σ -eli szvkt ismeri fel melyeken előfordul z rész-szó. M nemdeterminisztikus! Szvkkl: q 0 -ól w htásár elérhető vlmely q F végállpot (ugynkkor esetleg nem végállpotok is elérhetők). 53/148 54/148 Véges utomták Lehetnek olyn szvk, melyeket egy nemdeterminisztikus utomt nem tud végig olvsni, mert δ(q,) = lkú átmenetek mitt elkdht. A teljesen definiált utomták viszont minden szót végig tudnk olvsni. Az M = (Q,Σ,δ,q 0,F) nemdeterminisztikus utomt teljesen definiált (vgy: teljes), h minden q Q és Σ esetén δ(q,) leglá egy elemű. A determinisztikus utomták teljesen definiáltk. Továá, minden nemdeterminisztikus utomt könnyen teljessé tehető egy ún. cspd állpot evezetésével, nélkül, hogy felismert nyelv megváltozn. Véges utomták Tétel. Tetszőleges M = (Q,Σ,δ,q 0,F) nemdeterminisztikus utomtához megdhtó olyn M = (Q,Σ,δ,q 0,F) teljesen definiált utomt, melyre L(M) = L(M ). Bizonyítás. H M teljesen definiált, kkor legyen M = M. Különen, legyen Q = Q {q c }, hol q c Q, vgyis egy új állpot ( cspd állpot). Továá, minden q Q és Σ esetén, legyen { δ δ(q,) h δ(q,) (q,) = {q c } h δ(q,) =. Végül, minden Σ-r, legyen δ (q c,) = {q c }. 55/148 56/148
Véges utomták Péld. Az M utomt teljessé tétele.,, Véges utomták Tétel. Egy nyelv kkor és csk kkor ismerhető fel nemdeterminisztikus utomtávl, h felismerhető determinisztikus utomtávl. q 0 q 1 q 2 q 3 q c, Bizonyítás. ) H egy nyelv felismerhető determinisztikus utomtávl kkor felismerhető nemdeterminisztikus utomtávl is. ) Fordítv: legyen M = (Q,Σ,δ,q 0,F) egy nemdeterminisztikus utomt. Megdunk egy M = (Q,Σ,δ,q 0,F ) determinisztikus utomtát, melyre L(M ) = L(M). A konstrukció neve: htványhlmz konstrukció. 57/148 58/148 Véges utomták M = (Q,Σ,δ,q 0,F ), hol Q = P(Q) (= {S S Q}), htványhlmz, q 0 = {q 0}, F = {S Q S F }, δ : Q Σ Q z leképezés melyre tetszőleges S Q és Σ esetén δ (S,) = q S δ(q,). Véges utomták M állpoti z M állpotiól képzett hlmzok. Nyilvánvló, hogy M determinisztikus. Az L(M ) = L(M) izonyítás: Álĺıtás. Minden w Σ -r és S Q-r ({q 0 },w) M (S,ε) kkor és csk kkor, h S = {q Q (q 0,w) M (q,ε)}. S δ (S,) = q S δ(q,) Szvkkl: Az M-en w htásár elérhető állpotok hlmz megegyezik zzl z állpottl, melye M w htásár jut. Az álĺıtás könnyen igzolhtó w szerinti indukcióvl. Az álĺıtásól zonnl következik, hogy L(M ) = L(M), mert mindkét utomt kkor ismeri fel w-t, h S-en vn leglá egy F-eli állpot. 59/148 60/148
Véges utomták Az M és M felismeri w = 1... k szót. Véges utomták Egy fontos megjegyzés: q 0 S 0 1 q 1 2... k 1 qk 1 S 1 S k 1 S k ( F ) k q k ( F) A htványhlmz konstrukcióvl kpott determinisztikus utomt állpotink szám exponenciálisn növekedhet z eredeti nemdeterminisztikus utomt állpotihoz képest (n-ről 2 n -re). Ez ngy állpotszámú rendszerek esetén állpottér ronást eredményez. Szerencsére helyzet áltlán ennél sokkl jo. A gykorltn úgy járunk el, hogy determinisztikus utomt {q 0 } kezdőállpotáól kiindulv csk zokt z állpotokt konstruáljuk meg, melyek ezen kezdőállpotól elérhetők. Ez trükk áltlán 2 n -nél jóvl kevese állpotot eredményez. (Lásd következő példát.) 61/148 62/148 Véges utomták Péld. Determinizáljuk z M nemdeterminisztikus utomtát! Véges utomták Péld. Átmenetek {q 0,q 1 } állpotól:,, q 0 q 1 q 2 q 3 q 0,q 1 q 0,q 2 L(M ) = {uv u,v Σ } 63/148 64/148
Véges utomták Péld. Az M utomt determinizálás: Véges utomták Péld. Észrevesszük, hogy 3 végállpot összevonhtó egyetlen p végállpottá: q 0 q 0 q 1 q 0 q 2 q 3 q 0 q 3 q 0 q 2 q 0 q 1 q 3 q 0 q 0 q 1 q 0 q 2 p, Az így kpott utomtánk már csk 4 állpot vn. A kpott utomt determinisztikus és 6 állpot vn (16 helyett). 65/148 66/148 Véges utomták Véges utomták A nemdeterminisztkius utomt áltlánosítás: nemdeterminisztikus utomt ε-átmenettel, röviden nemdeterminisztikus ε-utomt. Egy ε-átmenet Az M = (Q,Σ,δ,q 0,F) rendszert nemdeterminisztikus ε-utomtánk nevezzük, hol: q ε p 1. Q egy nem üres, véges hlmz, z állpotok hlmz, 2. Σ egy áécé, z input áécé, 3. q 0 Q kezdő állpot, 4. F Q végállpotok hlmz, 5. δ : Q (Σ {ε}) P(Q) egy leképezés, z átmenetfüggvény. Olyn átmenet is lehetséges, melyik nem fogysztj z inputot. Előnye, hogy néh kényelmes lklmzni. Ugynkkor, nemdeterminizmushoz hsonlón, nem növeli meg felismerő kpcitást. 67/148 Átmeneti reláció: (q,w),(q,w ) C esetén (q,w) M (q,w ) h w = w, vlmely (Σ {ε})-r és q δ(q,). A felismert nyelv definíciój ugynz, mint nemdeterminisztikus eseten: z M utomt w szót felismeri, h q 0 -ól w htásár elérhető vlmely q F végállpot (esetleg ε-átmenetek segítségével ). 68/148
Véges utomták Véges utomták Egy péld: 1 A 0 ε B 1 C ε D ε E 0 ε ε F 0 Felismert nyelv: {1,11,0,,00}{0} δ 0 1 ε A E B B C D C D Tétel. Egy nyelv kkor és csk kkor ismerhető fel nemdeterminisztikus ε-utomtávl, h felismerhető nemdeterminisztikus utomtávl. Bizonyítás. ) H egy nyelv felismerhető nemdeterminisztikus utomtávl kkor felismerhető nemdeterminisztikus ε-utomtávl is. ) Fordítv: legyen M = (Q,Σ,δ,q 0,F) egy nemdeterminisztikus ε-utomt. Megdunk egy M = (Q,Σ,δ,q 0,F ) nemdeterminisztikus utomtát, melyre L(M ) = L(M). D F E F B,C F D 69/148 70/148 Véges utomták Véges utomták Az M = (Q,Σ,δ,q 0,F) nemdeterminisztikus ε-utomtához megdunk egy M = (Q,Σ,δ,q 0,F ) nemdeterminisztikus utomtát, melyre L(M ) = L(M). M megdásához, ki kell számolni z állpotok ε-lezárását M-en. Egy q Q állpot ε-lezárás zon állpotokól áll, melyek elérhetők q-ól ε-átmenetekkel: Cl(q) = {p Q (q,ε) M (p,ε)}. A {q} hlmzól kiindulv, hozzávesszük q-ól egy ε-átmenettel elérhető állptokt, és ezt z eljárást ddig folyttjuk, míg hlmz ővíthető. Tehát q Cl(q). Az M = (Q,Σ,δ,q 0,F) nemdeterminisztikus ε-utomtához megdunk egy M = (Q,Σ,δ,q 0,F ) nemdeterminisztikus utomtát, melyre L(M ) = L(M). A Cl(q) lezárások ismeretéen, legyen: δ (q,) = p Cl(q) δ(p,) és F = {q Q Cl(q) F }. Tehát M q állpotól z htásár zon állpotok megy át, melyeke M vlmennyi ε-átmenettel, mjd egy -átmenettel jut el. Továá M végállpoti zon állpotok, melyekől M vlmennyi ε-átmenettel egy F-eli állpot jut, vgyis felismer. (A vlmennyi mindkét eseten lehet null is.) Ezért L(M ) = L(M). 71/148 72/148
Véges utomták Egy péld: 1 A 0 ε B 1 C ε D ε E 0 ε ε F 0 Cl(A) = {A}, Cl(B) = {B,D}, Cl(C) = {C,D}, Cl(D) = {D}, Cl(E) = {E,B,C,D}, Cl(F) = {F,D} végállpotok z ε-mentes utomtán: {E,B,C,F,D} Véges utomták Egy péld: A 1 B C D Az ekvivlens nemdeterminisztikus utomt. Felismert nyelv: {1,11,0,,00}{0}. 1 0 E 1 0 0 F 0 0 0 73/148 74/148 Véges utomták minimlizálás Külön fájln... Véges utomták Összefogllás: Véges utomtákkl nyelveket lehet definiálni, oly módon, hogy minden M utomt felismer egy L(M) nyelvet. A következő három fjt utomtát ismertük meg: determinisztikus utomt, nemdeterminisztikus utomt, nemdeterminisztikus ε-utomt. A felismerő kpcitás mindhárom fjt utomtánk ugynz. Ugynkkor, nemdeterminisztikus utomtákkl könnye ánni, például egy dott nyelvhez áltlán könnye megdni z őt felismerő nemdeterminisztikus utomtát, mint determinisztikust. Ez még inká igz nemdeterminisztikus ε-utomtákr. Például két tomtához ngyon könnyű megdni egy olyn nemdeterminisztikus ε-utomtát, mely z eredeti utomták áltl felismert nyelvek egyesítését vgy konktenációját ismeri fel. 75/148 76/148
Véges utomták Néhány lklmzás hrdver és szoftver modellezésére: Digitális ármkörök tervezésére és viselkedésének vizsgáltár lklms szoftverek modellezése. Fordítóprogrmok lexikális elemzés fázis: z input szöveg (progrm) olvsás és logiki egységekre ontás (zonosító, kulcsszó, elválsztójel). Szoftverek ngyméretű szövegek (pl. weoldlk tömege) olvsásár és zokn szvk, kifejezések és egyé slonok megtlálásár. Véges állpotú rendszerek (pl. kommunikációs protokollok, iztonságos információ cserét iztosító protokollok) lklms szoftverek modellezése. Reguláris kifejezések Progrm: Nyelvek megdásánk egy új formájávl ismerkedünk meg. Veszünk egy áécét és hozzáveszünk néhány segédszimólumot. Ezekől ún. reguláris kifejezéseket építünk fel izonyos szályok szerint. Minden reguláris kifejezés meghtároz (vgy: reprezentál) egy nyelvet. Az összes ilyen nyelvet vizsgáljuk. Ki fog derülni, hogy reguláris kifejezésekkel reprezentálhtó nyelvek nem mások, mint reguláris nyelvek. 77/148 78/148 Reguláris kifejezések Egy Σ áécé feletti reguláris kifejezések hlmz (Σ {,ε,(,),+, }) hlmz legszűke olyn U részhlmz, melyre z lái feltételek teljesülnek: (i) z (áthúzott null) szimólum eleme U-nk; (ii) ε szimólum eleme U-nk; (iii) Minden Σ-r z szimólum eleme U-nk; (iv) H R 1,R 2 U, kkor (R 1 )+(R 2 ), (R 1 )(R 2 ), és (R 1 ) is elemei U-nk. Péld: Legyen Σ = {,}. Akkor például ( ), (()+()) és (()())(() ), Σ feletti reguláris kifejezések. Reguláris kifejezések Az R reguláris kifejezés áltl meghtározott (reprezentált ) R nyelvet következőképpen definiáljuk: (i) H R = (áthúzott null), kkor R = (üres nyelv); (ii) H R = ε (mint szimólum), kkor R = {ε} (mint nyelv); (iii) H R = (mint szimólum), kkor R = {} (mint nyelv); (iv) ) H R = (R 1 )+(R 2 ), kkor R = R 1 R 2 ; (iv) ) H R = (R 1 )(R 2 ), kkor R = R 1 R 2 ; (iv) c) H R = (R 1 ), kkor R = R 1. Egy L Σ nyelv reperzentálhtó reguláris kifejezéssel, h vn olyn Σ feletti R reguláris kifejezés, melyre R = L. 79/148 80/148
Reguláris kifejezések A (gykrn zvró) zárójelezés z egyértelmű kiolvshtóság mitt szükséges. A zárójelek szám csökkenthető, h megállpodunk n, hogy prioritási sorrend legyen, konktenáció, +. Továá, z és konktenáció művelet sszocitív, zért + és z egymás után írás zárójelezése elhgyhtó. Végül () helyett -t, ( ) helyett -et írunk. Így reguláris kifejezések zárójelezése z lái módon egyszerűsödik: ( ) helyett (()+()) helyett (+) (()())(() ) helyett írhtunk (+) (+) -t, (+) (+) -t, st. Reguláris kifejezések Példák = = = {ε}; (+) = + = ( ) = ({} {}) = {,} ; = = = = {}{}{} = {}{ε,,,...} = {,,,...}. Tehát {ε}, {,} és {,,,...} nyelvek reprezentálhtók reguláris kifejezéssel. Minden Σ = { 1,..., n } áécé esetén Σ nyelv reprezentálhtó reguláris kifejezéssel, mert Σ = ( 1 +...+ n ). 81/148 82/148 Reguláris kifejezések Reguláris kifejezések Továi példák: Σ = {,} ) L = {uv u,v Σ } (w L w-en előfordul z rész-szó) reprezentálhtó, mert L = (+) (+). Gondoljunk z ugynezen nyelvet felismerő determinisztikus utomtár. Melyiket könnye megdni? Továi példák: Σ = {,} c) Az (+) (ε+) reguláris kifejezére (+) (ε+) = {w {,} w-en nem fordul elő rész-szó} Adjunk meg ehhez nyelvhez egy determinisztikus utomtát! Melyik z egyszerű? ) L = {uv u,v Σ } (w L w -vl kezdődik és végződik és vn enne leglá egy ) reprezentálhtó, mert L = (+) (+). 83/148 84/148
Reguláris kifejezések Továi példák reprezentálhtó nyelvekre: d) Minden véges nyelv reprezentálhtó reguláris kifejezéssel. Vlón, legyen L = {x 1,...,x n }, n 1. Akkor hol L = R 1 +...+R n, { i1... R i = ini h x i = i1... ini ε h x i = ε. Például ε+++ = {ε,,,}. Adjunk meg ehhez nyelvhez is egy determinisztikus utomtát! Reguláris kifejezések e) Reguláris kifejezések UNIX-n: z áécé z ASCII és különöző rövidítéseket enged meg. Rövidítések krkter hlmzokr: A. (pont) tetszőleges krkter rövidítése. Elhgyj + jelet etűk között: z 1 +...+ n reguláris kifejezést [ 1... n ] formán rövidíti. Például < + > + = helyett [<>=]-t ír. Kihsználv, hogy z ASCII rendezett, hlmzokt rövidítve definiál. Például [0-9] jelenti 0+...+9 reguláris kifejezést. Továi példák: [A-Z] és [A-Z-z0-9]. Mkrókt hsznál. Például [:digit:] [0-9] helyett és [:lnum:] [A-Z-z0-9] helyett. 85/148 86/148 Reguláris kifejezések e) Reguláris kifejezések UNIX-n: z áécé z ASCII és különöző rövidítéseket és kiterjesztéseket enged meg. Rövidítések műveletekre: A + helyett jelet ír. A? zt jelenti, hogy legfelje egy. Tehát z R? UNIX kifejezés ε+r rövidítése. A + viszont zt jelenti, hogy leglá egy. Tehát z R+ UNIX kifejezés z RR rövidítése. Az {n} rövidítés zt jelenti, hogy n példány. Tehát z R{5} UNIX kifejezés z RRRRR rövidítése. Az ekvivlenci tétel Tétel. Tetszőleges L Σ nyelv esetén következő három álĺıtás ekvivlens: (1) L reguláris (generálhtó 3-típusú nyelvtnnl). (2) L felismerhető utomtávl. (3) L reprezentálhtó reguláris kifejezéssel. Bizonyítás. Megmuttjuk, hogy 1. Lemm: (3) = (1) 2. Lemm: (1) = (2) 3. Lemm: (2) = (3) Példák:.?, [:digit:]+ [:lnum:]{3}, st. Akkor (1) (2) (3). 87/148 88/148
A reprezentálhtó nyelvek regulárisk 1. Lemm. (3) = (1): H L Σ nyelv reprezentálhtó reguláris kifejezéssel, kkor generálhtó 3-típusú nyelvtnnl. Bizonyítás. Az L-et reprezentáló R reguláris kifejezés struktúráj szerinti indukcióvl. Az indukció lpj. (i) R = Ekkor L = R =, mely generálhtó G = ({S},Σ,,S), 3-típusú nyelvtnnl. A reprezentálhtó nyelvek regulárisk Indukciós lépés. (iv) ) R = (R 1 )+(R 2 ) Ekkor L = R = L 1 L 2, hol L 1 = R 1 és L 2 = R 2. Indukciós feltevés: L i generálhtó G i = (N i,σ,p i,s i ), 3-típusú nyelvtnnl, i = 1,2. (N 1 N 2 =.) (ii) és (iii) R =, hol Σ vgy = ε Ekkor L = R = {}, mely generálhtó G = ({S},Σ,{S },S), 3-típusú nyelvtnnl. 89/148 90/148 A reprezentálhtó nyelvek regulárisk Akkor L generálhtó G = (N 1 N 2 {S},Σ,P 1 P 2 {S S 1,S S 2 },S), 3-típusú nyelvtnnl, hol S egy új szimólum. S G w kkor és csk kkor, h S 1 G 1 w vgy S 2 G 2 w. A reprezentálhtó nyelvek regulárisk Indukciós lépés. (iv) ) R = (R 1 )(R 2 ) Ekkor L = R = L 1 L 2, hol L 1 = R 1 és L 2 = R 2. Indukciós feltevés: L i generálhtó G i = (N i,σ,p i,s i ), 3-típusú nyelvtnnl, i = 1,2. (N 1 N 2 =.) Akkor L generálhtó G = (N 1 N 2,Σ,P,S 1 ), 3-típusú nyelvtnnl, hol P legszűke olyn szályhlmz mire teljesülnek következő feltételek: 91/148 92/148
A reprezentálhtó nyelvek regulárisk H A xb P 1, kkor A xb P, H A x P 1, kkor A xs 2 P, (G 1 efejező szályink kezelése) P 2 minden eleme P-nek is eleme. S 1 G 1 w 1 és S 2 G 2 w 2 kkor és csk kkor, h S 1 G w 1S 2 G w 1w 2. A reprezentálhtó nyelvek regulárisk Indukciós lépés. (iv) c) R = (R 1 ) Ekkor L = R = L 1, hol L 1 = R 1. Indukciós feltevés: L 1 generálhtó G 1 = (N 1,Σ,P 1,S 1 ), 3-típusú nyelvtnnl. Akkor L generálhtó G = (N 1 {S},Σ,P,S), 3-típusú nyelvtnnl, hol S egy új szimólum, P pedig legszűke olyn szályhlmz mire teljesülnek következő feltételek: 93/148 94/148 A reprezentálhtó nyelvek regulárisk S S 1,S ε P, H A xb P 1, kkor A xb P, H A x P 1, kkor A xs P. S G ε Az ekvivlenci tétel Tétel. Tetszőleges L Σ nyelv esetén következő három álĺıtás ekvivlens: (1) L reguláris (generálhtó 3-típusú nyelvtnnl). (2) L felismerhető utomtávl. (3) L reprezentálhtó reguláris kifejezéssel. S G S 1 G w 1S G w 1 ( L 1 ) w 1 w 2 S G w 1 w 2 S 1... w 1 S G w 1 S 1 G w 1w 2 S G w 1 w 2 ( L 1 L 1 ) Bizonyítás. 1. Lemm: (3) = (1) 2. Lemm: (1) = (2) 3. Lemm: (2) = (3) 95/148 96/148
A reguláris nyelvek felismerhetők utomtávl 2. Lemm. (1) = (2): H L Σ nyelv reguláris, kkor felismerhető utomtávl. Bizonyítás. Legyen L egy reguláris nyelv és tegyük fel, hogy L = L(G), hol G egy 3-típusú nyelvtn. 2.1. Lemm. Minden G = (N, Σ, P, S), 3-típusú nyelvtnhoz megdhtó vele ekvivlens G = (N,Σ,P,S), 3-típusú nyelvtn, úgy hogy P -en minden szály A B, A B vgy A ε lkú, hol A,B N és Σ. A reguláris nyelvek felismerhetők utomtávl 2.1. Lemm. Minden G = (N, Σ, P, S), 3-típusú nyelvtnhoz megdhtó vele ekvivlens G = (N,Σ,P,S), 3-típusú nyelvtn, úgy hogy P -en minden szály A B, A B vgy A ε lkú, hol A,B N és Σ. Bizonyítás. Konstruáljuk meg P -t következőképpen: (i) Minden A B, A B és A ε lkú P-eli szályt vegyünk fel P -e. 2.2. Lemm. Minden olyn G = (N,Σ,P,S), 3-típusú nyelvtnhoz melynek csk A B, A B vgy A ε lkú szályi vnnk megdhtó olyn M = (Q,Σ,δ,q 0,F) nemdeterminisztkius ε-utomt, melyre L(M) = L(G). 97/148 98/148 A reguláris nyelvek felismerhetők utomtávl (ii) Minden A 1... n B, P-eli szály esetén (hol n > 1, 1,..., n Σ) vegyük fel P -e z A 1 A 1, A 1 2 A 2,...,A n 1 n B szályokt, hol A 1,...,A n 1 új nemterminális szimólumok. (iii) Minden A 1... n, P-eli szály esetén (hol n 1, 1,..., n Σ) vegyük fel P -e z A 1 A 1, A 1 2 A 2,...,A n 1 n A n,a n ε szályokt, hol A 1,...,A n új nemterminálisok. Legyen N = N { új nemterminálisok }. A reguláris nyelvek felismerhetők utomtávl Minden A N-re és w Σ -r Ugynis A G w kkor és csk kkor, h A G w. A 1... n B P kkor és csk kkor, h A G 1 A 1 G... G 1... n 1 A n 1 G 1... n B és A 1... n P kkor és csk kkor, h A G 1 A 1 G... G 1... n A n G 1... n. Az A = S válsztássl kpjuk, hogy L(G) = L(G ). 99/148 100/148
A reguláris nyelvek felismerhetők utomtávl Péld szályok szétdrolásár G : S A B A B ε B A G : S A 1, A 1 A, S B A A 2, A 2 B, A ε B A 3, A 3 A 4, A 4 ε B A A reguláris nyelvek felismerhetők utomtávl 2.2. Lemm. Minden olyn G = (N,Σ,P,S), 3-típusú nyelvtnhoz melynek csk A B, A B vgy A ε lkú szályi vnnk megdhtó olyn M = (Q,Σ,δ,q 0,F) nemdeterminisztkius ε-utomt, melyre L(M) = L(G). Bizonyítás. Konstruáljuk meg M-et következőképpen: Q = N, q 0 = S, F = {B N B ε P}, minden A N és (Σ {ε}) esetén legyen δ(a,) = {B N A B P}. 1/148 102/148 A reguláris nyelvek felismerhetők utomtávl A reguláris nyelvek felismerhetők utomtávl Ekkor minden n 1, A,B N és w Σ esetén G-en: M-en: A n G wb kkor és csk kkor h (A,w) n M (B,ε). Részleteseen: A B P 00000000 111111110 1 A B A G 1 A 1 G... G 1... n 1 A n 1 G 1... n B kkor és csk kkor, h B ε P B F (A, 1... n ) M (A 1, 2... n ) M... M (B,ε). Az árán Σ vgy = ε. Az A = S, B F válsztássl dódik, hogy L(M) = L(G). 103/148 104/148
A reguláris nyelvek felismerhetők utomtávl A reguláris nyelvek felismerhetők utomtávl Például, vegyük z elői G nyelvtnt: G : S A 1, A 1 A, S B A A 2, A 2 B, A ε B A 3, A 3 A 4, A 4 ε B A A 1 S A 2 A G -höz trtozó utomt A B A 3 A 4 105/148 106/148 A reguláris nyelvek felismerhetők utomtávl Egy megjegyzés 2.2 Lemmához: A lemm izonyításán lklmzott konstrukció könnyen megfordíthtó, vgyis tetszőleges M nemdeterminisztikus ε-utomtához meg tudunk dni egy olyn G reguláris nyelvtnt, melyre L(G) = L(M). Vlón, nyelvtn nemterminálisi z utomt állpoti lesznek. Továá, h z utomtán vlmely q állpotól egy (Σ {ε}) szimólum htásár egy p állpot jutunk (zz p δ(q,)), kkor nyelvtn felvesszük q p szályt. Végül minden q végállpot esetén nyelvtn felvesszük q ε szályt. Az ekvivlenci tétel Tétel. Tetszőleges L Σ nyelv esetén következő három álĺıtás ekvivlens: (1) L reguláris (generálhtó 3-típusú nyelvtnnl), (2) L felismerhető utomtávl. (3) L reprezentálhtó reguláris kifejezéssel. Bizonyítás. 1. Lemm: (3) = (1) 2. Lemm: (1) = (2) 3. Lemm: (2) = (3) Ezzel izonyítottuk, hogy (2) = (1). A tétel izonyításához viszont még (2) = (3) lépés hiányzik. 107/148 108/148
Az utomtávl felismerhető nyelvek reprezentálhtók Lemm 3. (2) = (3): Minden, utomtávl felismerhető nyelv reprezentálhtó reguláris kifejezéssel. (S. C. Kleene tétele, 1956.) Bizonyítás. Legyen L = L(M), hol M = (Q,Σ,δ,q 0,F) determinisztikus utomt. Megdunk egy olyn reguláris kifejezést, mely L-et reprezentálj. Tételezzük fel, hogy Q = {1,...,n} és q 0 = 1. Minden 0 k n és 1 n esetén definiáljuk L (k) Σ nyelvet következőképpen: x L (k) (i,x) M (j,ε) és minden (i,x) + M (i,x ) + M (j,ε) esetén i {1,...,k}. Az utomtávl felismerhető nyelvek reprezentálhtók Az L (k) nyelvet lkotó x szvk: 0000000000000000000 1111111111111111111 i {1,...,k} x j 109/148 110/148 Az utomtávl felismerhető nyelvek reprezentálhtók Mivel L(M) = j F L (n) 1,j, elegendő megdni minden j F-re egy L (n) 1,j-t reprezentáló reguláris kifejezést. H ugynis L (n) 1,j = R (n) 1,j, kkor Az utomtávl felismerhető nyelvek reprezentálhtók R (k) megdás k szerinti indukcióvl. k = 0: L (0) = { { Σ δ(i,) = j}, h i j { Σ δ(i,) = j} {ε}, h i = j. 1 1,..., t hol F = {j 1,...,j l }. L(M) = R (n) 1,j 1 +...+R (n) 1,j l, i. t j i = j Töet izonyítunk: minden 0 k n-r és 1 n-re megdunk egy R (k) reguláris kifejezést, melyre R (k) = L (k). R (0) = 1 +...+ t vgy R (0) = 1 +...+ t +ε Mindkét eseten R (0) = L (0). 111/148 112/148
Az utomtávl felismerhető nyelvek reprezentálhtók k k +1: tfh minden -re megdtuk R (k) -t, melyre R (k) = L (k) = megdjuk minden -re R (k+1) -t Az utomtávl felismerhető nyelvek reprezentálhtók L (k+1) = L (k) L (k) i,k+1 (L(k) k+1,k+1 ) L (k) k+1,j L (k) k+1,k+1 Először is észrevesszük (!), hogy L (k+1) = L (k) L (k) i,k+1 (L(k) k+1,k+1 ) L (k) k+1,j. 11111111111110000000000000 i L (k) i,k+1 k +1 L (k) k+1,j j 113/148 114/148 Az utomtávl felismerhető nyelvek reprezentálhtók Legyen Ekkor R (k+1) = R (k) +R (k) i,k+1 (R(k) k+1,k+1 ) R (k) k+1,j. R (k+1) = R (k) R (k) i,k+1 R(k) k+1,k+1 R (k) k+1,j = L (k) L (k) i,k+1 (L(k) k+1,k+1 ) L (k) k+1,j = L(k+1) Az ekvivlenci tétel Tétel. Tetszőleges L Σ nyelv esetén következő három álĺıtás ekvivlens: (1) L reguláris (generálhtó 3-típusú nyelvtnnl), (2) L felismerhető utomtávl. (3) L reprezentálhtó reguláris kifejezéssel. Bizonyítás. 1. Lemm: (3) = (1) 2. Lemm: (1) = (2) 3. Lemm: (2) = (3) Mint láttuk, L(M) = R 1,j1 +...+R 1,jl. Tehát (1) (2) (3). 115/148 116/148
Az ekvivlenci tétel Összefogllás: A következő eszközök mindegyikével reguláris nyelveket reprezentálhtjuk: reguláris (3-típusú) nyelvtnok, reguláris nyelvtnok, melyek minden szály A B, A B vgy A ε lkú, determinisztikus utomták, nemdeterminisztikus utomták, nemdeterminisztikus ε-utomták, reguláris kifejezések. A Chomsky nyelvosztályok gépi reprezentációi Gépi reprezentáció: Nyelvosztály Gépi repr. Det. vs nemdet. L 3 (reguláris nyelvek) véges utomták det. = nemdet. L 2 (k. független nyelvek)?? L 1 (k. függő nyelvek)?? L 0 (áltlános nyelvek)?? A továikn, h veszünk egy reguláris nyelvet vlmilyen prolém megoldásár, kkor mindig zt reprezentációt válsztjuk, mi legcélszerű z dott prolém szempontjáól. 117/148 118/148 Pumpáló lemm reguláris nyelvekre Lemm. (Pumpáló lemm reguláris nyelvekre.) Minden L Σ reguláris nyelv esetén - megdhtó olyn (L-től függő) k > 0 egész szám, hogy - minden w L-re, - h w k, kkor vn olyn w = w 1 w 2 w 3 felontás, melyre 1) 0 < w 2 és w 1 w 2 k, 2) minden n 0-r, w 1 w n 2 w 3 L. (Szükséges feltétele nnk, hogy egy nyelv reguláris legyen. H egy nyelv nem teljesíti ezt feltételt, kkor z nem reguláris.) Pumpáló lemm reguláris nyelvekre Bizonyítás. Mivel L reguláris, vn olyn M = (Q,Σ,δ,q 0,F) determinisztikus utomt, melyre L = L(M). Legyen k = Q (z állpotok szám). Ez k jó lesz. Vegyünk egy w L szót úgy, hogy w k. Akkor w = 1 2... K, hol K k és vnnk olyn q 1,q 2,...,q K Q állpotok, melyekre (q 0, 1... K ) (q 1, 2... K ) (q 2, 3... K )... (q K 1, K ) (q K,ε), továá q K F. 119/148 120/148
Pumpáló lemm reguláris nyelvekre Mivel K Q, q 0,q 1,...,q K sorozn leglá egy állpot kétszer is szerepel (sktuly elv = pigeon hole principle). Legyen q j legelső olyn állpot, melyik soroztn már korán is előfordul: vn olyn i < j, hogy q i = q j. Legyenek w 1 = 1... i, w 2 = i+1... j és w 3 = j+1... K. (H i = 0 kkor w 1 = ε, h j = K kkor w 3 = ε) Nyilvánvló, hogy w = w 1 w 2 w 3. Továá, 1) 0 < w 2, mert i < j és w 1 w 2 k, mert q j legelső olyn állpot, melyik soroztn már korán is előfordul. és... Pumpáló lemm reguláris nyelvekre 2) Minden n 0-r w 1 w n 2 w 3 L: q 0 w 2 w 1 w 3 q i = q j q K 121/148 122/148 Pumpáló lemm reguláris nyelvekre A Pumpáló lemm egy következménye: Lemm. Az L = { n n n 0} nyelv nem reguláris. Bizonyítás. Tegyük fel, hogy igen (indirekt izonyítás). Legyen k pumpáló lemm szerint z L-hez trtozó szám, és vegyük z k k L szót, melynek hossz 2k k. A pumpáló lemm mitt létezik k k = w 1 w 2 w 3 felontás, melyre 0 < w 2, w 1 w 2 k és minden n 0-r w 1 w n 2 w 3 L. Mivel w 1 w 2 k, középső w 2 szó csk etűkől áll. Továá 0 < w 2 feltétel mitt w 1 w 2 2 w 3, w 1 w 3 2 w 3, st szvkn z -k szám ngyo mint -k szám, tehát ezen szvk egyike sincs L-en. Ellentmondás, tehát L nem reguláris. Pumpáló lemm reguláris nyelvekre Intuíció: Egy utomt nem képes számolni, hogy két etű ugynnnyiszor szerepel-e. De kezeljük ezt óvtosn! Az lái nyelv reguláris: {w {,} w-en z és lkú rész-szvk szám megegyezik}. Ld következő árát. 123/148 124/148
Pumpáló lemm reguláris nyelvekre Pumpáló lemm reguláris nyelvekre A Pumpáló lemm egy továi következménye: vn olyn környezetfüggetlen nyelv, melyik nem reguláris. q 0 q 1 q 2 q 3 q 4 Felismert nyelv: {w {,} w-en z és lkú rész-szvk szám megegyezik}. Tétel. L 3 L 2. Bizonyítás. ) L 3 L 2, mivel minden reguláris nyelvtn környezetfüggetlen. ) Az { n n n 0} nyelv L 2 -eli, mivel generálhtó z S S ε szályokól álló környezetfüggetlen nyelvtnnl. Ugynkkor, mint láttuk L L 3. 125/148 126/148 Reguláris nyelvek zártsági tuljdonsági Műveletekre vló zártság áltlán: Legyen C nyelvek egy osztály (pl. reguláris nyelvek, környezefüggetlen nyelvek) és : P(Σ ) P(Σ ) P(Σ ), (L 1,L 2 ) L 1 L 2 egy kétváltozós művelet nyelvekkel. (Például: egyesítés, konktenáció, st.) Azt mondjuk, hogy C zárt műveletre, h tetszőleges L 1,L 2 C esetén, L 1 L 2 C. Az egyáltozós műveletekre (pl. komplementer, iteráció) vló zártság hsonlón definiálhtó. Reguláris nyelvek zártsági tuljdonsági Reguláris műveletek:, konktenáció,. Tétel. A reguláris nyelvek osztály zárt reguláris műveletekre. Bizonyítás. A reguláris nyelveket reguláris kifejezésekkel reprezentáljuk. Először z -r vló zártságot izonyítjuk. Legyenek L 1, L 2 reguláris nyelvek. Megdunk egy olyn R reguláris kifejezést, melyre R = L 1 L 2. Mivel L 1, L 2 reguláris, vnnk olyn R 1, R 2 reguláris kifejezések, melyekre L 1 = R 1 és L 2 = R 2. Legyen R = (R 1 )+(R 2 ). Ekkor R = R 1 +R 2 = R 1 R 2 = L 1 L 2, tehát L 1 L 2 is reguláris. A konktenációr és -r vló zártság hsonlón izonyíthtó. 127/148 128/148
Reguláris nyelvek zártsági tuljdonsági Boole műveletek:,, komplementer. Tétel. A reguláris nyelvek osztály zárt Boole műveletekre. Bizonyítás. A reguláris nyelveket most determinisztikus utomtákkl reprezentáljuk. A izonyításn z utomták direkt szorzt konstrukciót lklmzzuk. Reguláris nyelvek zártsági tuljdonsági Automták direkt szorzt: Az M 1 = (Q 1,Σ,δ 1,q 1,F 1 ) és M 2 = (Q 2,Σ,δ 2,q 2,F 2 ) determinisztikus utomták egy direkt szorzt z M = (Q 1 Q 2,Σ,δ,[q 1,q 2 ],F) utomt, hol minden p 1 Q 1 és p 2 Q 2 állpot és Σ input szimólum esetén δ([p 1,p 2 ],) = [δ 1 (p 1,),δ 2 (p 2,)], továá F Q 1 Q 2 (késő djuk meg pontosn). Az M állpoti tehát [p 1,p 2 ] lkú párok. Az M 1 és M 2 utomtákt párhuzmosn működtetjük: h M 1 p 1 -ől z htásár r 1 -e, M 2 p 2 -ől z htásár r 2 -e megy át, kkor M [p 1,p 2 ]-ől z htásár [r 1,r 2 ]-e megy át. 129/148 130/148 Reguláris nyelvek zártsági tuljdonsági Ekkor minden p 1,r 1 Q 1, p 2,r 2 Q 2 és x Σ esetéen ([p 1,p 2 ],x) M ([r 1,r 2 ],ε) (p 1,x) M 1 (r 1,ε) és (p 2,x) M 2 (r 2,ε). Vgyis M szvkon is M 1 és M 2 párhuzmos működését szimulálj. Reguláris nyelvek zártsági tuljdonsági A Boole műveletekre vló zártság izonyítás: legyenek L 1 = L(M 1 ) és L 2 = L(M 2 ) reguláris nyelvek, hol M 1 és M 2 fenti determinisztikus utomták. Konstruáljuk meg z M direkt szorzt utomtát. ) H F = F 1 F 2, kkor L(M) = L(M 1 ) L(M 2 ). Tehát L 1 L 2 is reguláris. ) H F = F 1 (Q 2 F 2 ), kkor L(M) = L(M 1 ) L(M 2 ). Tehát L 1 L 2 is reguláris. Következmény: Mivel Σ nyelv reguláris (nyilvánvló), z L 1 = Σ L 1 is reguláris. c) H F = (F 1 Q 2 ) (Q 1 F 2 ), kkor L(M) = L(M 1 ) L(M 2 ). Tehát L 1 L 2 reguláris. (Új izonyítás.) 131/148 132/148
Reguláris nyelvek zártsági tuljdonsági Egy megjegyzés: A komplementerre vló zártság egyszerűen is izonyíthtó. Vlón, h z L nyelv reguláris, kkor felismerhető egy M = (Q,Σ,δ,q 0,F) determinisztikus utomtávl. De kkor z M = (Q,Σ,δ,q 0,Q F) utomt z L nyelvet ismeri fel, mert pontosn zok szvk viszik végállpot, melyek M-et Q F-e, vgyis nem végállpot viszik. Ezért z L nyelv is reguláris. Reguláris nyelvek zártsági tuljdonsági Összefogllás: Művelet Zártság igen konktenáció igen igen igen komplementer igen 133/148 134/148 Eldöntési kérdések reguláris nyelvekre Az eldöntési kérdésekről áltlán. Egy eldöntési kérdés mindig egy nyelvosztályr (pl reguláris nyelvek, környezetfüggetlen nyelvek) és egy nyelvekre vontkozó tuljdonságr (pl. üresség, végesség) értendő és úgy szól, hogy létezik-e olyn lgoritmus, melynek inputj nyelvosztály tetszőleges eleme, outputj pedig Igen h nyelv rendelkezik z dott tulndonsággl, különen pedig Nem. Például, létezik-e olyn lgoritmus, melynek inputj egy tetszőleges reguláris nyelv (vgyis e nyelvet reprezentáló determinisztikus utomt), outputj pedig Igen h nyelv végtelen, különen pedig Nem. Ugynez kérdezhető környezetfüggetlen nyelvekre is. Eldöntési kérdések reguláris nyelvekre Een részen reguláris nyelvek osztályár vontkozó eldöntési kérdésekkel fogllkozunk. A fejezet során reguláris nyelveket determinisztikus utomtákkl reprezentáljuk. Tehát, h zt mondjuk, hogy dott egy L reguláris nyelv, kkor ez ltt zt értjük, hogy dott egy determinisztikus M utomt, melyre L = L(M). Mint látni fogjuk, reguláris nyelvek vlmennyi, áltlunk vizsgált tuljdonság eldönthető. Mgs nyelvosztályok esetén pedig egyre tö olyn tuljdonság lesz, mi nem eldönthető. A kérdésnek csk kkor vn értelme, h z input nyelvet vlmilyen eszközzel reprezenáljuk. 135/148 136/148
Eldöntési kérdések reguláris nyelvekre Eleme-e prolém Prolém: Eldönthető-e tetszőleges w szó és L reguláris nyelv esetén, hogy teljesül-e w L? Tétel. Az eleme-e prolém reguláris nyelvekre eldönthető. Input: Egy w szó és egy M = (Q,Σ,δ,q 0,F) utomtávl megdott L reguláris nyelv (tehát L = L(M)). Output: Igen h w L, különen Nem. Algoritmus: Htározzuk meg zt q állpotot, melye z utomt q 0 -ól w htásár kerül. H q F, kkor válsz Igen, különen Nem. Eldöntési kérdések reguláris nyelvekre Ürességi prolém Prolém: Eldönthető-e tetszőleges L reguláris nyelv esetén, hogy teljesül-e L =? Tétel. Az ürességi prolém reguláris nyelvekre eldönthető. Input: Egy M = (Q,Σ,δ,q 0,F) utomtávl megdott L reguláris nyelv. Output: Igen, h L =, különen Nem. 137/148 138/148 Eldöntési kérdések reguláris nyelvekre Ürességi prolém Algoritmus: (1) Számoljuk ki q 0 -ól elérhető állpotok Q hlmzát Q 0,Q 1,... állpothlmz-sorozt segítségével. (i) Legyen Q 0 = {q 0 } és i = 0. (ii) Legyen Q i+1 = Q i {δ(q,) q Q i és Σ}. (iii) H Q i = Q i+1, kkor Q = Q i (és stop), különen i = i +1 és goto (ii). (2) H Q F =, kkor válsz Igen, különen Nem. Eldöntési kérdések reguláris nyelvekre Végtelen-e prolém Lemm. Legyen M = (Q,Σ,δ,q 0,F) egy utomt és legyen k = Q. Az L(M) nyelv kkor és csk kkor végtelen, h vn olyn x L(M), melyre k x < 2k. Bizonyítás. -irány: Tfh x L(M), melyre x k. Akkor pumpáló lemm szerint x = x 1 x 2 x 3 felontás, melyre 0 < x 2 k és minden n 0-r x 1 x n 2 x 3 L(M). Következésképpen L(M) végtelen. -irány: Tfh L(M) végtelen. Akkor x L(M) melyre x 2k. Mivel x k, pumpáló lemm mitt x = x 1 x 2 x 3 felontás, melyre 0 < x 2 k és x = x 1 x 3 L(M). H ekkor x 2k, kkor ismételjük z eljárást x -re ddig, míg x < 2k nem lesz. 139/148 140/148
Eldöntési kérdések reguláris nyelvekre Végtelen-e prolém Prolém: Eldönthető-e tetszőleges L reguláris nyelv esetén, hogy L végtelen-e? Tétel. A végtelen-e prolém reguláris nyelvekre eldönthető. Input: Egy M = (Q,Σ,δ,q 0,F) utomtávl megdott L reguláris nyelv. Output: Igen, h L végtelen, különen Nem. Eldöntési kérdések reguláris nyelvekre Végtelen-e prolém Algoritmus: Legyen k = Q. Számoljuk ki minden 0 i < 2k esetén q 0 -ól z i hosszúságú szvkkl elérhető állpotok Q i hlmzát: (i) H i = 0 kkor Q i = {q 0 }, különen (ii) Q i = {δ(q,) q Q i 1 és Σ}. Ezután minden i-re, melyre k i < 2k, vizsgáljuk meg, hogy Q i F teljesül-e. H vlmely i-re teljesül, kkor L(M) végtelen, tehát válsz Igen, különen válsz Nem. 141/148 142/148 Eldöntési kérdések reguláris nyelvekre Trtlmzási prolém Prolém: Eldönthető-e tetszőleges L 1,L 2 reguláris nyelvek esetén, hogy L 1 L 2 teljesül-e? Tétel. A trtlmzási prolém reguláris nyelvekre eldönthető. Input: Az M 1 = (Q 1,Σ,δ 1,q 1,F 1 ) és M 2 = (Q 2,Σ,δ 2,q 2,F 2 ) utomtákkl dott L 1 = L(M 1 ) és L 2 = L(M 2 ) reguláris nyelvek. Output: Igen, h L 1 L 2, különen Nem. Eldöntési kérdések reguláris nyelvekre Trtlmzási prolém Algoritmus: Konstruáljuk meg z M = (Q 1 Q 2,Σ,δ,(q 1,q 2 ),F) utomtát, hol F = F 1 (Q 2 F 2 ). (Ismert, hogy ekkor L(M) = L 1 L 2.) Döntsük el, hogy L(M) = teljesül-e ( reguláris nyelvek üressége eldönthető). H teljesül, kkor válsz Igen, különen válsz Nem. (Az lgoritmus zon tényen lpul, hogy L 1 L 2 kkor és csk kkor, h L 1 L 2 =.) 143/148 144/148
Eldöntési kérdések reguláris nyelvekre Ekvivlenci prolém Prolém: Eldönthető-e tetszőleges L 1,L 2 reguláris nyelvek esetén, hogy L 1 = L 2 teljesül-e? Tétel. Az ekvivlenci prolém reguláris nyelvekre eldönthető. Input: Az M 1 = (Q 1,Σ,δ 1,q 1,F 1 ) és M 2 = (Q 2,Σ,δ 2,q 2,F 2 ) utomtákkl dott L 1 = L(M 1 ) és L 2 = L(M 2 ) reguláris nyelvek. Eldöntési kérdések reguláris nyelvekre Ekvivlenci prolém Algoritmus: Alklmzzuk kétszer trtlmzás eldöntési lgoritmusát és döntsük el, hogy z L 1 L 2 és z L 2 L 1 trtlmzások teljesülnek-e. H mindkettő teljesül, kkor válsz Igen, különen válsz Nem. (Az lgoritmus zon tényen lpul, hogy L 1 = L 2 kkor és csk kkor, h L 1 L 2 és L 2 L 1.) Output: Igen, h L 1 = L 2, különen Nem. 145/148 146/148 Eldöntési kérdések reguláris nyelvekre Megjegyzés: A minimlizálás részől tudjuk, hogy egy dott L nyelvet felismerő minimális utomt (izomorfizmus erejéig) egyértelműen meghtározott. Eől következik, hogy z M 1 és M 2 utomták ekvivlenciáját következőképpen is eldönthetjük: mindkettőt minimlizáljuk, mjd ellenőrizzük, hogy kpott M 1 és M 2 utomták megegyeznek-e (izomorfk-e). A minimális utomt egyértelműsége mitt ugynis L(M 1 ) = L(M 2 ) kkor és csk kkor, h M 1 ugynz, mint M 2. Eldöntési kérdések reguláris nyelvekre Összefogllás Kérdés Eldönthető-e? Eleme-e igen Ürességi igen Végtelen-e igen Trtlmzás igen Ekvivlenci igen 147/148 148/148