abeceda, slovo jazyk operácie na jazykoch 1. Základnépojmy Formálne jazyky a automaty Kubo Kováč Abeceda je ľubovoľná neprázdna konečná množina, jej prvky voláme písmená alebo znaky. Slovo w (dĺžky k 0)nadabecedouΣjekonečnápostupnosť w 1,w 2,...,w k prvkovσ(w i je i-tepísmenoslova w). Tútopostupnosťzapisujemebezčiarok: w=w 1 w k. Dĺžkuslova wznačíme w. Prázdneslovo (mádĺžku0)označujeme. Slová x 1 x r a y 1 y s súrovnaké,ak r=saprekaždé iplatí x i = y i. Podslovo i w j slova w=w 1 w k jesúvislápodpostupnosť w i w j,pričom1 i j k. Prefix slova wjepodslovo 1 w j,sufixjepodslovo i w k,pre1 i,j k. Početpísmen avslove woznačujeme # a (w). Zreťazenieslov u=u 1 u m a v=v 1 v n jetakéslovo w=u vdĺžky m+n,že 1 w m = u a m+1 w m+n = v. Reverz(zrkadlovýobraz)slova w=w 1 w 2 w k jeslovo w R = w k w k 1 w 1. Slovo, ktoréjerovnakéspreduajzozadu(w=w R )volámepalindróm. MnožinuslovnadabecedouΣznačímeΣ ;množinaσ soperáciouzreťazeniaaprázdnymslovom tvorívoľnýmonoid(σ,,).jazyk LnadabecedouΣjeľubovoľnápodmnožinaΣ ;t.j.jazykjemnožina nejakých slov nad abecedou Σ. Často abecedu Σ neudávame a implicitne predpokladáme, že L je jazyk nadabecedouσ L právetýchznakov,zktorýchsúslovávlažiadnychnavyše. Zjednotenie a prienik jazykov je zjednotenie, resp. prienik daných množín. Komplement jazyka LnadΣ jejazykσ L,značíme L C (alebo L). Zreťazenie jazykov L 1 a L 2 jejazyk L 1 L 2 = {u v u L 1 v L 2 }. Prejazyk Ldefinujememocninujazykatakto: L 0 = {}al n+1 = L L n. Iterácia,aleboKleenehouzáverjazyka Ljejazyk L = n=0 Ln = L + {},kladnáiteráciajejazyk L + = n=1 Ln = L L.Reverzjazyka Ljejazyk L R = {u R u L }. homomorfizmus Homomorfizmus(monoidovΣ 1aΣ 2)jetakézobrazeniezΣ 1doΣ 2,žepreľubovoľnéslová u,v Σ 1 platí h(u v)=h(u) h(v).teda h(w 1 w k )=h(w 1 ) h(w k )ahomomorfizmusjejednoznačneurčený zadanímobrazovjednotlivýchznakovabecedyσ 1.Akprekaždéslovo u je h(u),homomorfizmus volámenevymazávajúci. Inverznýhomomorfizmusk hjezobrazenie h 1 také,žeprekaždéslovo vje h 1 (v)jazyk {u h(u)=v }.Prejazykydefinujeme h(l)={h(w) w L }ah 1 (L)= w L h 1 (w). Inverznýhomomorfizmusnieje inverzný vpravomslovazmysle: hoci h(h 1 (L)) L h 1 (h(l)), rovnosť nemusí nastať. substitúcia rozhodovací problém jazyk ako problém Akýmsi zovšeobecnením homomorfizmu je substitúcia: kým homomorfizmus každý znak zamenil zanejakéslovo,substitúciakaždýznakzamenízanejakýjazyk. Nechprekaždé a ΣjeΣ a abeceda a τ(a)jejazyknadσ a. Nech τ()={}aτ(x 1 x n )=τ(x 1 ) τ(x n )preľubovoľnéslovo x 1 x n. Potomzobrazenie τ:σ 2 ( Σa) volámesubstitúcia(prejazykydefinujeme τ(l)= w L τ(w)). Pomocou jazykov vieme formalizovať pojem rozhodovacieho problému úlohy, ktorej riešením je odpoveďánoalebonie.napríklad1. Mámedanýtext;nachádzasavňomslovo matematika? 2. Mámedanýtext;jetosyntaktickykorektný(validný)XML-kód?3.Danýjegraf G=(V,E);jeeulerovský (existuje cyklus, ktorý prechádza každou hranou práve raz)? 4. Daná je pozícia hry PIŠKVORKY(do 5, naploche n n);hráčskrížikmijenaťahu,mávyhrávajúcustratégiu(dokážesivynútiťvýhru)? 5. DanýjekódprogramuvjazykuC;aktentoprogramspustíme,vypíšetext Hello,world!? RozhodovacíproblémΠmôžemedefinovaťakomnožinuinštancií D Π apodmnožinu Y Π D Π inštancií,ktorýmprislúchaodpoveďáno.napríkladvprvom,druhomapiatomprípadeje D Π množina textov(slov nad nejakou abecedou, napr. ASCII), v treťom to je množina(konečných) grafov a v štvrtom množinapozícií,t.j.trojíc(n, X, O),kde n N,aX, O Z n Z n jemnožinasúradníckrížikova krúžkov. Množina Y Π jepostupne1. množinaslov,ktoréobsahujúpodslovomatematika,2. množina validných XML-kódov, 3. množina eulerovských grafov, 4. množina vyhrávajúcich pozícií pre hráča s krížikmi a 5. množina programov, ktoré vypíšu Hello, world!. Kódovanie e inštancií problému Π určuje spôsob, ako popísať inštancie pomocou znakov nejakej abecedyσ.rozhodovacíproblémspoluskódovanímdelíσ natrimnožiny:slová,ktorékódujúinštancie, naktoréjeodpoveďáno,tie,naktoréjeodpoveďnieaslová,ktorénekódujúžiadnuinštanciu. Prvá množinajejazyk L[Π,e],ktorýreprezentujeproblémΠ(pridanomkódovaní e): platí,že x L[Π,e] právevtedy,keď xjekódovanímnejakejinštancie I Y Π. NapríkladnámpostačíabecedaΨ={0,1,[,], }:Prirodzenéčíslamôžemezapisovaťvdvojkovej sústaveakoreťazecnúlajednotiek, n-ticu(x 1,...,x n ),alebo n-prvkovúmnožinu {x 1,...,x n }môžeme zakódovaťako[ x 1 x 2 x n ],kde x i jekód x i. 1
konečný popis jazykov automat gramatika ekvivalencia regulárna gramatika DFA,NFA 2NFA regulárne výrazy Existujú prakticky dva prístupy, ako konečne popísať daný jazyk L: akceptovanie a generovanie. Prvá možnosť je popísať spôsob, ktorým vieme zistiť, či dané slovo patrí do jazyka L, alebo nie. Príkladom tohto prístupu sú automaty. Druhá možnosť je popísať spôsob pravidlá, ktorými môžeme vygenerovať (vytvoriť) všetky slová L(a žiadne iné); príkladom sú gramatiky. Automat sa skladá z čítacej hlavy a zo vstupnej pásky, z ktorej číta vstupné slovo. Automat navyše používa nejakú pomocnú pamäť(napr. žiadnu/zásobník/neobmedzenú pamäť). Čítacia hlava sa nachádza v jednom z konečného počtu stavov a tzv. prechodová funkcia určuje, ako sa tento stav a pomocná pamäť zmení v závislosti od momentálneho stavu, pamäti a vstupného znaku. Na konci výpočtu automat rozhodne, či slovo akceptuje, alebo nie. Ak A je automat, L(A) označuje jazyk slov, ktoré Aakceptuje. Frázovágramatika ještvorica G=(N,T,P,σ),kde N jemnožinaneterminálov, T jemnožina terminálov(n T= ), σ Njepočiatočnýneterminála P (N T) + (N T) jekonečnámnožina pravidiel. Pravidlo(u,v) P zapisujeme u v. Krokodvodenia jerelácia G na(n T) ;platí v G wprávevtedy,keďexistujúslová z 1, z 2, x, ytaké,že v=z 1 xz 2 a w=z 1 yz 2 apravidlo x y patrído P. Akje Gznáme,píšemelen namiesto G. Relácia G jereflexívno-tranzitívnyuzáver G,teda u v,akexistujepostupnosťslov w 0,...,w n (n 0)taká,že w 0 = u, w n = vaprekaždé i < nplatí w i w i+1.postupnosťkrokovodvodenia(dĺžky n) w 0 w 1 w n volámeodvodenie v G. Vetnáformajeslovoz(N T),ktorémôžemezískaťodvodenímzpočiatočnéhoneterminálu σ. Jazyk generovaný gramatikou G je množina slov, ktoré sa dajú odvodiť z počiatočného neterminálu, teda L(G)={x T σ x }. Dva automaty/gramatiky sú ekvivalentné, ak sú nimi akceptované/generované jazyky rovnaké. Dva formálne modely(triedy automatov/gramatík) sú ekvivalentné, ak akceptujú/generujú rovnaké triedy jazykov. 2. Regulárnejazyky Regulárnagramatika(ďalejlenRG)jetakáfrázovágramatika,vktorej P N T (N {}),t.j. pravidlámajútvar ξ walebo ξ wα,kde ξ,α Na w T. Deterministickýkonečnýautomat(DFA)jepätica A=(K,Σ,δ,q 0,F),kde Kjekonečnámnožina stavov,σjekonečnávstupnáabeceda, q 0 K jezačiatočnýstav, F K jemnožinaakceptačných (koncových) stavov a δ: K Σ K je prechodová funkcia. Nedeterministický konečný automat(nfa) definujemerovnako,ažnaprechodovúfunkciu δ,ktoráje δ: K (Σ {}) 2 K.Obadruhysúhrnne nazývame konečné automaty(angl. finite automata, FA). Konfigurácia konečného automatu je dvojica (q,w) K Σ,kde qjeaktuálnystavautomatuawjedosiaľnespracovanáčasťvstupnéhoslova.krok výpočtudfa Ajerelácia A nakonfiguráciáchdefinovaná(p,av) A (q,v) δ(p,a)=qpre a Σa v Σ.PreNFA Aje A definovaná(p,av) A (q,v) δ(p,a) qpre a Σ {}av Σ.Jazyk akceptovanýfa Ajemnožina L(A)={w q F F:(q 0,w) A (q F,) }. Funkciu δmôžemepredfaprirodzenerozšíriťnaˆδ: K Σ Ktakto: ˆδ(q,)=qaˆδ(q,av)= ˆδ(δ(q,a),v). PreNFAzadefinujemeepsilonovýchvoststavu qako[q] = {p (q,) A (p,) }a[q] = q Q [q] ;potommôžeme δrozšíriťna δ :2 K Σ 2 K predpisom δ (Q,a)= [ q [Q] δ(q,a) ] ana ˆδ:2 K Σ 2 K predpisomˆδ(q,)=[q] aˆδ(q,av)=ˆδ(δ (Q,a),v). Neformálnejeˆδ(q,w)stav (resp.unfajeˆδ(q,w)množinastavov),kamsaautomatdostanepospracovaníslova w.potomje L(A) jednoduchomnožinatakýchslov w,žeˆδ(q 0,w) F(resp.preNFAˆδ({q 0 },w) F ). Dvojsmernýnedeterministickýkonečnýautomat(2NFA)jepätica A=(K,Σ,δ,q 0,F),kde K,Σ, q 0 a F súdefinovanérovnakoakoufa,c,$ / Σaδ:K (Σ {c,$}) 2 K { 1,0,+1} jeprechodová funkcia,pričom q K: δ(q,c ) K {0,+1}a q K: δ(q,$) K { 1,0}(čítaciahlavasamôže pohybovať oboma smermi; obmedzenia δ-funkcie zabezpečujú, aby nevyšla mimo slova). Konfigurácia 2NFAjetrojica(q,c w$,i),kde q Kjeaktuálnystav, w Σ jevstupnéslovoai {0,..., w +1}je pozíciačítacejhlavy.nech w=w 1 w n ;dodefinujeme w 0 =c aw n+1 =$.Potomkrokvýpočtu2NFA jerelácia A definovaná(p,c w$,i) A (q,c w$,i+j) δ(p,w i ) (q,j).jazykakceptovaný 2NFA A jemnožina L(A)={w q F F:(q 0,c w$,1) A (q F,c w$, w +1) }. Regulárne výrazy môžeme definovať nasledovne: 0/ je regulárny výraz predstavujúci jazyk L(0/) = ; ak a Σ, ajeregulárnyvýrazpredstavujúcijazyk L(a)={a};ak ra ssúregulárnevýrazy,potom(r+s), (r s)ar sútiežregulárnevýrazy,ktorépredstavujújazyky L(r+s)=L(r) L(s), L(r s)=l(r) L(s) a L(r )=L(r). Ničinéniejeregulárnyvýraz. Regulárnevýrazyeštemôžemerozšíriťoskratkyako napr. :=(0/), r := r (r),(r) :=(r+ ),[a-z]:=(a+b+c+ +z),ktoréuľahčujúzápis,ale nepridávajú na sile. 2
normálnetvary KukaždémuNFA AexistujeekvivalentnýNFA A bezprechodovnaepsilon: A =(K,Σ,δ,q 0,F ), kde δ (q,x)= p [q] δ(p,x)af = {q F [q] }. KukaždémuNFAexistujeekvivalentnýNFA, ktorý sa nikdy nevráti do začiatočného stavu(stačí pridať nový) a po dosiahnutí akceptačného stavu zastane(stačí pridať jeden super-akceptačný stav, z ktorého nepôjdu žiadne prechody) tzv. prasiatkový normálny tvar. Ku každej gramatike existuje gramatika bez pravidiel ξ ξ(tieto pravidlá môžeme odstrániť pri najkratšom odvodení žiadneho slova sa totiž nepoužijú). Ku každej RG existuje ekvivalentná gramatika, ktorávkaždomkrokugenerujenajviac1terminál(p N ({} T TN);stačípravidlározdeliťna niekoľko kratších). Dokonca vieme zostrojiť ekvivalentnú gramatiku s pravidlami tvaru P N (T T(N\{σ})) {σ }(treba previesť do predchádzajúceho normálneho tvaru, odstrániť chain rules a odepsilonovať). ekvivalencie Všetky uvedené formálne modely(regulárne výrazy, RG, DFA, NFA, 2NFA) sú ekvivalentné a definujú triedu regulárnych jazykov, R. Navyše dokážeme k ľubovoľnému modelu zostrojiť iný, s ním ekvivalentný: Nech A=(K,Σ,δ,q 0,F)jeNFAbez -prechodov,potomekvivalentnýdfaskonštruujemetakto: A =(2 K,Σ,δ, {q 0 },F ),kde δ (Q,a)= q Q δ(q,a)af = {X K X F }. Kľubovoľnému DFA A = (K,Σ,δ,q 0,F) vieme tiež zostrojiť ekvivalentnú gramatiku G = (K,Σ,P,q 0 ), kde P = {p aq δ(p,a)=q } {q q F }.Nech G=(N,T,P,σ)jeRG,ktorávkaždomkrokuodvodeniavygenerujenajviac1terminál;potomekvivalentnýNFAzostrojímetakto: A=(N,T,δ,σ,F),kde δ(ξ,x)={η (ξ xη) P }pre x (T {})af= {ξ (ξ ) P }. PreľubovoľnýregulárnyvýrazviemezostrojiťekvivalentnýNFA:pre0/aa Σjetotriviálne;akuž mámenfa AaBprevýrazy ras,nfapre r+ s, r sar zostrojímetakto: A B A B A Kleene pumpovacia lema Myhill-Nerode uzáverové vlastnosti viachlavýnfa Naopak,majmeDFA A,pričom K= {1,2,...,n}a1jepočiatočnýstav.Definujmemnožinu Ri,j k všetkýchslov,naktorésaviemezostavu idostaťdostavu j,pričomprechádzameibacezstavy q,kde q k,teda Ri,j k = {w Σ ˆδ(i,w)=j 1 l < w :ˆδ(i, 1 w l ) k }. Zjavne L(A)= f F Rn 1,f ; Ri,j 0 = {a Σ δ(i,a)=j }pre i j, R0 i,i = {}(pretietojazykyviemenájsťregulárnevýrazy). Ri,j k = Rk 1 i,j R k 1 i,k (Rk 1 k,k ) R k 1 k,j takto vieme regulárne výrazy dynamicky pozliepať. Odtiaľ vyplýva tiež Kleeneho veta: R je najmenšia trieda jazykov, ktorá pre každú konečnú abecedu Σobsahuje a{a},kde a Σajeuzavretánaoperáciezjednotenia,zreťazeniaaiteráciu. MajmenejakýDFA Asnstavmiavýpočetnaslove wdlhšomako n. ZDirichletovhoprincípu vyplýva,ženejakýstavsamusízopakovať,teda wsadározdeliťna w=uvx,pričomˆδ(q 0,u)=q= ˆδ(q 0,uv)=ˆδ(q 0,uv i ). Potomaleˆδ(q 0,w=uvx)=ˆδ(q 0,uv i x),tedaak w L(A),takaj uv i x L(A). Pumpovacialema: Kukaždémuregulárnemujazyku Lexistuječíslo ptaké,žeprekaždéslovo w L také,že w > p,existujúslová u, v, xtaké,žeplatí: w=uvx, uv p, v a i 0:uv i x L. Pomocounejľahkodokážeme,žejazyk {a n b n n N }niejeregulárny. Myhill-Nerodovaveta: Majmejazyk L Σ. Nasledujúcetvrdeniasúekvivalentné: 1. Lje regulárny jazyk, 2. L je zjednotením niekoľkých tried ekvivalencie nejakej sprava invariantnej relácie ekvivalenciekonečnéhoindexu,3. relácia R L definovaná ur L v ( x:ux L vx L)je reláciou ekvivalencie konečného indexu. Trieda regulárnych jazykov je uzavretá na zjednotenie, prienik, zreťazenie, iteráciu, kladnú iteráciu, komplement, homomorfizmus aj inverzný homomorfizmus. Uzavretosť na zjednotenie, zreťazenie a iteráciujevďakaregulárnymvýrazomtriviálna;kladnáiteráciavyplývazovzťahu L + = L L ;pri komplementestačíprehodiťakceptačnéstavydfa(f = K\F);prienikpotomvyplývazuzavretosti nazjednotenieakomplement(l 1 L 2 =(L C 1 L C 2) C ;inýdôkazjetzv.konštrukciakartézskymsúčinom: vieme simulovať viac konečných automatov naraz); pri homomorfizme stačí v regulárnej gramatike nahradiť v pravidlách všetky terminály ich homomorfnými obrazmi; pri inverznom homomorfizme použijeme NFA: tipujeme vzor a kontrolujeme, či obraz(na vstupe) sedí. 3. Inémodely ViachlavýNFAje6-tica A=(K,Σ,δ,q 0,F,k),kde k >0jepočethláv, δ: K (Σ {}) k 2 K jeprechodováfunkcia(ostatnéjerovnakéakoprinfa).konfiguráciaje(k+1)-tica(q,w 1,...,w k ),kde q Kjeaktuálnystavaw i ječasťslova,ktorúnedočítala i-tahlava.vkaždomkrokusamôžu(nemusia) 3
Moorovstroj Mealyhostroj a-prekladač normálnytvar charakterizácia a-prekladačov bezkontextová gramatika strom odvodenia viacznačnosť hlavy pohnúť na základe δ-funkcie; automat akceptuje, ak každá hlava dočíta slovo a automat skončí v akceptačnomstave.nech L ÀÆ jetriedajazykov,prektoréexistuje k-hlavýnfa.platí L ½ÀÆ = R, prekaždé kje L ÀÆ L ½µÀÆ L Ë apre k >1sú L ÀÆ a L neporovnateľné. Moorovstroj M =(Q,Σ,,δ,λ,q 0 )jeakoby DFA(bezakceptačnýchstavov),alesvýstupnou páskou; jevýstupnáabeceda, λ:q jezobrazenie,ktoréaktuálnemustavupriradívýstupný symbol.navstup w 1 w 2 w n dávamoorovstrojvýstup T M (w)=λ(q 0 )λ(q 1 ) λ(q n ),kde q 0,...,q n je postupnosťstavov,pričom δ(q i 1,w i )=q i. Mealyhostroj M=(Q,Σ,,δ,µ,q 0 )jepodobnýmoorovmustroju,ibaprivypisovanímealyhostroj naviacprihliadanačítanýznak,t.j. µ:q Σ jezobrazenie,ktoréaktuálnemustavuačítanému znakupriradívýstupnýsymbol(pre w 1 w 2 w n jevýstup T M (w)=µ(q 0,w 1 )µ(q 1,w 2 ) µ(q n 1,w n )). Moorove a Mealyho stroje sú takmer ekvivalentné, keďže v stave si dokážeme pamätať aj čítaný znak. Presnejšie,kukaždémuMealyhostroju MexistujeMoorovstroj M (anaopak)taký,že λ(q 0)T M (w)= T M (w)prekaždéslovo w. A-prekladač (konečno-stavový prekladač s akceptačnými stavmi; angl. generalized sequential machine,gsm)je6-tica M=(K,Σ,,H,q 0,F),kde H kon (K Σ ) ( K)jeprechodováfunkcia. Štvorica(p,u,v,q) Hznamená,žeaksmevstave paprečítameslovo u,môžemevypísaťslovo vaprejsť dostavu q.konfiguráciajetrojica(q,u,v),kde qjeaktuálnystav, uavjenedočítanáčasťvstupuazatiaľ vypísanývýstup. Krokvýpočtujerelácia M definovaná(p,xu,v) M (q,u,vy) (p,x,y,q) H. Obrazomjazyka Lnazývamejazyk M(L)={w u L,q F F:(q 0,u,) M (q F,,w) }. Teda a-prekladačdefinujefunkciu M:2 Σ 2,ktorázobrazujejazyknainýjazyk. Každýa-prekladačsadáupraviťtak,abypísalačítalnarazmaximálnejedenznak,t.j.aby H (K (Σ {})) (( {}) K). Homomorfizmus pr i z H taký,že pr i ((x 1,x 2,x 3,x 4 ))=x i,volámeprojekcia. Ukážemesitrochu inýpohľadnaa-prekladače.výpočtoma-prekladačanazvemepostupnosťprechodov h 1,h 2,...,h k,kde h i H,ktorázačínavpočiatočnomstave,teda pr 1 (h 1 )=q 0 ajednotlivéprechodynasebanadväzujú, tzn. i:pr 4 (h i )=pr 1 (h i+1 )(ďalejbudeme Hpovažovaťajzaabeceduapostupnosť h 1...h k zaslovo). Akskončímevakceptačnomstave,teda pr 4 (h k ) F,nazvemevýpočetakceptačný.Jazyk(nadabecedou H)akceptačnýchvýpočtovznačímeΠ M ;tentojazykjeregulárny. Potomobrazjazyka Lviemedostať ako M(L)=pr 3 (pr2 1 (L) Π M) pr 2 totižzpostupnostiprechodov zistí,akýbolvstup,teda pr2 1 (w) zodpovedávšetkýmpostupnostiamprechodov,ktoréprečítajúslovo w,resp. pr2 1 (w)zodpovedávšetkým postupnostiam prechodov, ktoré prečítajú nejaké slovo z L. Tieto postupnosti nemusia tvoriť výpočet (vôbecnemusianaväzovať,atď.);prienikomsπ M dostanemevšetkyakceptačnévýpočty(pričomvstup jezl).nakoniec pr 3 ztýchtovýpočtov zistí,čoprekladačvypísal. Obraz a-prekladača sa teda dá poskladať z vhodného homomorfizmu, prieniku s regulárnym jazykom a inverzného homomorfizmu. Triedy uzavreté na tieto operácie sú uzavreté aj na zobrazenie a-prekladačom. Platí aj opačné tvrdenie: ku každému homomorfizmu h a regulárnemu jazyku R existujú a-prekladače M 1, M 2 a M 3 také,že M 1 (L)=h(L), M 2 (L)=h 1 (L)aM 3 (L)=L R. Navyšezobrazeniaaprekladačmi sú uzavreté na skladanie. Teda zobrazenia a-prekladačmi sú práve tie zobrazenia f, ktoré sadajúnapísaťako f(l)=h(g 1 (L) R)prevhodnéhomomorfizmy g, haregulárnyjazyk R. 4. Bezkontextovéjazyky Frázová gramatika G =(N, T, P, σ) je bezkontextová(angl. context-free, CFG), ak každé pravidlo jetvaru ξ w,kde ξ N a w (N T). Jazykvolámebezkontextový,akexistujebezkontektová gramatika, ktorá ho generuje. Stromsvrcholmizmnožiny Sdefinujemeinduktívne: pre x Sje xstrom;pre x Sastromy T 1,T 2,...,T k je(x,t 1,T 2,...,T k )strom;ničinéstromnieje. Nech G=(N,T,P,σ),potomkaždému odvodeniu ξ G w, kde ξ (N T {})aw (N T), viemejednoznačnepriradiťstroms vrcholmizs= N T {}:Odvodeniu ξ 0 ξpriradímestrom ξ,odvodeniu ξ strom(ξ,).nech ξ v 1...v k w;označme w i časťslova w,ktorúsmeodvodilizoznaku v i a T i strom,ktorýsme priradiliodvodeniu v i w i.potomnášmuodvodeniupriradímestrom(ξ,t 1,...,T k ).Taktozostrojený strom voláme strom odvodenia. Všetky odvodenia, ktoré zodpovedajú jedinému stromu odvodenia sú rovnaké až na poradie použitia pravidiel. Odvodenie ξ= w 0 w 1 w r = w,kdeprekaždé isa w i dánapísaťako u i ηy i,kde u i T a w i+1 ako u i zy i,pričomsapoužilopravidlo η z(tedavždysaprepísalnajľavejšíneterminál), voláme ľavé krajné odvodenie (podobne môžeme zadefinovať pravé krajné odvodenie). Ku každému stromu odvodenia existuje práve jedno ľavé(pravé) krajné odvodenie. Hovoríme, že gramatika G je 4
viacznačná, ak v L(G) existuje slovo s aspoň dvoma rôznymi stromami odvodenia(resp. s aspoň dvoma ľavými krajnými odvodeniami). V opačnom prípade hovoríme, že G je jednoznačná. Bezkontextový jazyk voláme jednoznačný, ak existuje jednoznačná CFG, ktorá ho generuje; v opačnom prípade voláme jazykvnútorneviacznačný(príkladomjejazyk {a i b j c k (i=j) (j= k) }). PDA Nedeterministický zásobníkový automat(angl. pushdown automaton, PDA) je 7-ica A =(K, Σ, Γ, δ, q 0,Z 0,F),kde Kjemnožinastavov,ΣaΓsúkonečnémnožinyvstupnýchazásobníkovýchsymbolov, q 0 Kjepočiatočnýstav, Z 0 Γjesymbol,ktorýjevzásobníkunazačiatkuvýpočtu, F Kje množinaakceptačnýchstavovaδ: K (Σ {}) Γ 2 K Γ,kdemnožina δ(q,a)jekonečnáprekaždé q,a,jeprechodováfunkcia. Konfiguráciou PDAnazývametrojicu(q,w,s),kde q Kjeaktuálnystav, w Σ jeneprečítanáčasťvstupnéhoslovaas Γ jeobsahzásobníka(vrchjevpravo).krokomvýpočtu PDA Ajerelácia A namnožinekonfiguráciídefinovaná(q,au,sz) A (p,u,st) (p,t) δ(q,a,z), kde p,q K, a Σ {}, Z Γ, s,t Γ.JazykakceptovanýPDA Aakceptačnýmstavomjemnožina L(A)={w q F F,s Γ :(q 0,w,Z) A (q F,,s) }.JazykakceptovanýPDA Aprázdnoupamäťouje množina N(A)={w q K:(q 0,w,Z) A (q,,) }. normálne tvary Každú CFG vieme upraviť do tzv. redukovaného tvaru, kde je každý neterminál dosiahnuteľný a dá saznehoodvodiťaspoňjednoterminálneslovo( ξ N u,v,w T : σ uξv uwv). Viemesa zbaviťpravidieltvaru ξ ν(ν N),tzv.chainrules;dokoncasaviemezbaviťpravidieltvaru ξ gramatikuviemeodepsilonovať pričomku Gvytvorímegramatiku G takú,že L(G )=L(G)\{}. Veľmi dôležité sú Chomského normálny tvar(cnf): gramatika obsahuje iba pravidlá tvaru ξ αβ, kde α,β Na ξ a,kde a T {}(resp.dokonca a T pregramatiky G, / L(G))aGreibachovej normálnytvar(gnf):gramatikaobsahujepravidlátvaru ξ aw,kde a Ta w (N T). U PDA sa môžeme obmedziť na dva zásobníkové symboly. Druhá možnosť je obmedziť stavy: pri akceptácií prázdnou pamäťou vystačíme s jediným stavom, pri akceptácií stavom potrebujeme aspoň dva; navyše vieme zabezpečiť, aby PDA naraz vložil na zásobník najviac dva symboly, a čo je dôležité, aby nepoužíval prechody na (vyplynie to z konštrukcie ekvivalentného PDA pre danú CFG). ekvivalencie Akceptácia prázdnou pamätou a akceptačným stavom je pre PDA ekvivalentná. Danú bezkontextovú gramatiku vieme jednoducho simulovať PDA s jediným stavom (akceptuje prázdnou pamäťou). V zásobníku budeme simulovať ľavé krajné odvodenie: ak je na vrchu neterminál, nahradímehopravoustranounejakéhopravidla(δ(q,,ξ) (q,w R ),ak Gobsahujepravidlo ξ w); akjenavrchuterminál,skontrolujeme,čisedísovstupom(δ(q,a,a) (q,)).dokonca,akprevedieme gramatikudognf,zaobídemesabez -prechodov(bude δ(q,a,ξ)={(q,w R ξ aw P }). Naopak,nech A=(K,Σ,Γ,δ,q 0,Z 0, )jepdaakceptujúciprázdnoupamäťou. Ekvivalentnágramatikabudemaťneterminálytvaru[p,Z,q];budeplatiť,žejazykgenerovaný[p,Z,q]budemnožinatých slov,naktoré Aprejdezostavu p,pričomnavrchuzásobníkaje Zdostavu q,kdeprvýkrát Zvyberiezo zásobníka. Nazačiatkusigramatika tipne,vktoromstavepdaskončí,teda σ [q 0,Z 0,q] P(pre všetky q K);ak δ(p,a,z) (q,),tak[p,z,q] a P;ak δ(p,a,z) (q n,z n Z 1 ),tak P bude obsahovaťpravidlo[p,z,q n ] a[p,z 1,q 1 ][q 1,Z 2,q 2 ] [q n 1,Z n,q n ]preľubovoľnúkombináciu q i Q (tipujeme medzistavy, v ktorých postupne vyberieme jednotlivé znaky pridané do zásobníku). pumpovacia lema uzáverové vlastnosti Pumpovacia lema pre bezkontextové gramatiky: K ľubovoľnému bezkontextovému jazyku L existujú čísla p, qtaké,žeprekaždé w Ltaké,že w > pexistujúslová u, v, x, y, ztaké,žeplatí: w=uvxyz, vxy q, vy a i 0:uv i xy i z L. Existujedokoncasilnejšia,Ogdenovalema: Preľubovoľný bezkontextovýjazyk Lexistuječíslo ntaké,žeprekaždé w L, w > naprekaždéoznačenie nalebo viacsymbolovvslove wexistujú u, v, x, y, ztaké,že w=uvxyz, vxyobsahujenajviac noznačených symbolov, vyobsahujeaspoňjedenoznačenýsymbola i 0:uv i xy i z L. Pomocounejľahkodokážeme,žejazyk {a n b n c n n N }niejebezkontextový. Trieda bezkontextových jazykov je uzavretá na zjednotenie, zreťazenie, iteráciu, kladnú iteráciu, prienik s regulárnym jazykom, reverz, homomorfizmus aj inverzný homomorfizmus. Bezkontextové jazyky súuzavreténasubstitúciubezkontextovýmijazykmi(tzn. τ(a) L prekaždé a) stačínapravej stranekaždéhopravidlagramatiky,ktorájazykgeneruje,nahradiťkaždýterminál aneterminálom σ a, kde G a =(N a,t a,p a,σ a )jegramatika,ktorágeneruje τ(a)(predpokladáme,žekaždádvojicamnožín terminálov alebo neterminálov je disjunktná). Odtiaľ priamo vyplýva uzavretosť na zjednotenie, zreťazeniea(kladnú)iteráciu nech τ(a)=l 1, τ(b)=l 2,potom τ({a,b})=l 1 L 2, τ({ab})=l 1 L 2, τ(a )=L 1, τ(a + )=L + 1 ;uvedenéjazykysúbezkontextové(dokoncaregulárne). Prieniksregulárnymi jazykmi riešime konštrukciou kartézskym súčinom. Uzavretosť na homomorfizmus, resp. inverzný homomorfizmus dokážeme rovnako ako pre regulárne jazyky: v pravidlách nahrádzame terminály ich homomorfnými obrazmi, resp. v PDA tipujeme vzor a kontrolujeme, či obraz súhlasí so vstupom. 5
Chomsky- Schützenberger kontextová gramatika LBA normálnetvary ekvivalencia uzáverové vlastnosti Triedaniejeuzavretánaprienikanikomplement (pre L 1 = {a n b n c m }al 2 = {a m b n c n }je L 1,L 2 L,ale L 1 L 2 / L ;triedajeuzavretánazjednotenie;akbybolauzavretánakomplement, bolabyuzavretáajnaprienik,čojespor). Chomského-Schützenbergerova veta hovorí, že každý bezkontextový jazyk vieme získať z tzv. Dyckovhojazyka D n prienikomsregulárnymjazykomavhodnýmhomomorfizmom(d n jejazykobsahujúci všetky dobre uzátvorkované výrazy, ak uvažujeme n typov zátvoriek). Keďže každý Dyckov jazyk sa dázískaťinverznýmhomomorfizmomzd 2 (stačíuvažovaťinjektívnyhomomorfizmus, ktorýkóduje zátvorkyakopostupnostizátvoriekdvochtypov),každýbezkontextovýjazyksadázískaťpreložením D 2 vhodnýma-prekladačom. Triedabezkontextovýchjazykovjenajmenšiatrieda,ktoráobsahuje D 2 aje uzavretá na homomorfizmus, inverzný homomorfizmus a prienik s regulárnymi jazykmi. 5. Kontextovéjazyky Frázovágramatika G=(N,T,P,σ)jekontextová,akprekaždépravidlo u v Pplatí u v. Rozšírená kontextová gramatika môže navyše obsahovať pravidlo σ, ale žiadne pravidlo potom nemôže mať na pravej strane σ. Pod kontextovými(csg) budeme ďalej vždy rozumieť rozšírené kontextové gramatiky. Nedeterministický lineárne ohraničený automat (angl. linear bounded automaton, LBA) je 6-tica A=(K,Σ,Γ,δ,q 0,F),kde Kjemnožinastavov,Σjeabecedavstupnýchsymbolov,Γ Σ;c,$ / Γje pracovnáabeceda, q 0 Kjepočiatočnýstav, F Kjemnožinaakceptačnýchstavovaδ:K (Γ {c,$}) 2 K (Γ {c,$}) { 1,0,+1} jeprechodováfunkcia.narozdielodpredchádzajúcichmodelovsalba môžepovstupnejpáskepohybovaťazapisovaťnaňu. Napríklad(p,a) δ(q,b,+1)znamená,žeakje hlavavstave pazpáskyprečítaznak a,prepíšehona b,zmenístavna qapohnesao1doprava.znaky c a$označujúzačiatokakoniecslova;od δ-funkciepožadujeme,abylbanemohol výjsťmimoslova, t.j. q Kje δ(q,c ) K {c } {0,+1}aδ(q,$) K {$} { 1,0}. Konfigurácia LBAjetrojica (q,c w$,i),kde q Kjeaktuálnystav, wjevstupnéslovoaijepozíciahlavy.krokvýpočtudefinujeme (p,uxv,i) A (q,uyv,i+j) δ(p,x) (q,y,j),kde u c Σ,v Σ $. Jazyk akceptovanýlba definujeme ako množinu slov, na ktoré sa LBA dostane na cent do akceptačného stavu. KukaždejCSGexistujeekvivalentnágramatika,kde P (N + N + ) (N T),t.j.taká,ktorá neprepisuje terminály. Iným normálnym tvarom je pôvodná Chomského definícia kontextových gramatík: kukaždejcsgexistujeekvivalentnáspravidlamitvaru σ alebo uξv uwv,kde ξ N, u,v,w (N T) a w (ξsamôžeprepísaťna wibavkontexte u, v odtiaľnázov). Pridôkazenajskôr gramatikuupravímetak,abyneprepisovalaneterminály;pravidlátvaru u v, v u 2potom simulujeme viacerými pravidlami požadovaného tvaru. LBAaCSGsúekvivalentnéadefinujútriedukontextovýchjazykov, L Ë. Ekvivalencia LBAa deterministických LBA je otvorený problém. K danej CSG vytvoríme LBA pomerne ľahko: automat bude postupnetipovaťodvodeniegramatikyodzadu,t.j.ak u w P aautomatsitipne,žesapoužilo totopravidlo,nájdenapáske waprepíšehoslovom u(keďže u w,napáskejedosťmiesta);pre jednoduchosť koniec slova posunie, aby neboli medzery. Takto postupuje ďalej; keď sa dostane ku σ, akceptuje. Ekvivalentná gramatika ku LBA najskôr vygeneruje príslušné slovo, potom bude simulovať automat ak ten akceptuje, prepíše sa na terminály a slovo tak odvodí. Konkrétnejšie: neterminály budú tvaru [a,b],kde a,b Σ;prvúzložkunebudememeniť tusibudemepamätaťvygenerovanéslovo;druhú zložku budeme meniť tak, ako by to robil LBA. Ak LBA akceptuje, prepíšeme každý neterminál[a, b] na terminál a. Aby sme mohli simulovať LBA, potrebujeme ešte označiť začiatok a koniec(budú to neterminálytvaru[a,c b]a[a,b$])apotrebujemevedieť,kdeavakomstavejehlava(neterminálytvaru [a, q b],prípadne[a, q c b],[a,c q b],[a, q b$]a[a,b q $],kde q K);terazaknapríklad δ(p,a) (q,b,+1),tak [x, p a][y,z] [x,b][y, q z],atď. Trieda(rozšírených) kontextových jazykov je uzavretá na zjednotenie, zreťazenie, iteráciu, kladnú iteráciu, prienik, komplement, reverz, inverzný a nevymazávajúci homomorfizmus. V skutočnosti je uzavretá aj na substitúciu nerozšírenými kontextovými jazykmi odtiaľ vyplývajú prvé štyri uzáverové vlastnosti. Priprienikuslovo nakopírujeme asimulujemeobelba;akceptujeme,akobaakceptujú. Uzavretosť na komplement dokazuje Immermanova-Szelepczényiho veta. Pri inverznom homomorfizme prepíšeme vstup na jeho homomorfný obraz a na ňom simulujeme pôvodný automat(obraz je maximálne konštantne-krát dlhší, táto konštanta sa skryje vo veľkosti pracovnej abecedy, konkrétne pre každý znak potrebujeme potrebujeme jeho obraz, pričom každý jednotlivý znak v obraze môžeme meniť). Pre nevymazávajúcihomomorfizmusje u h(u),pretosistačítipnúťvzor tensanapáskuzmestía simulovať pôvodný automat. 6
Na druhej strane, trieda kontextových jazykov nie je uzavretá na homomorfizmus. Vyplynie to z faktu,že L Ë jevlastnoupodmnožinou L Ê (jazykygenerovanéfrázovýmigramatikami). Totižku každejfrázovejgramatike Gexistujekontextovágramatika G ahomomorfizmus htaký,že h(l(g ))= L(G) jedinéobmedzeniekontextovýchgramatíkje,žeprepravidlo u vmusíbyť u v.vezmime teda G,pridajmenovýneterminál eaterminál,predĺžmevšetkypravidláoe k tak,abysmedostali kontextovúgramatiku. Pridajmepravidlá ex xe(ktoréupracú enakoniec,aby nezavadzali )a e.dostanemetakslová,kdesúnavyšenejaké atieviemehomomorfizmom vymazať. Turingovstroj ekvivalencie varianty Turingovych strojov TM počítajúci funkciu generujúcitm rekurzívne jazyky, riešiteľnosť 6. Rekurzívne vyčísliteľné a rekurzívne jazyky NedeterministickýTuringovstroj(NTM)je6-tica(K,Σ,Γ,δ,q 0,q A,q R ),kde Kjekonečnámnožina stavov, Σ je konečná abeceda vstupných symbolov, Γ je konečná abeceda pracovných symbolov(σ Γ, B / Γ), δ:k (Γ {B}) 2 K Γ { 1,0,+1} jeprechodováfunkcia, q 0 Kjezačiatočnýstav, q A je akceptačnýstavaq R jeodmietacístav. DeterministickýTuringovstroj(DTM)jetakýTuringovstroj, kde δ(q,x) 1 prevšetky q K a x Γ {B}(namiesto δ(q,x)={(p,y,d)}budemepísaťiba δ(q, x) =(p, y, d)). Oba druhy súhrnne nazývame Turingove stroje (angl. Turing machines, TM); na rozdielodlbajeichpáskaneohraničená.predpokladajme,že KaΓsúdisjunktné(aB / K) potom môžemejednoznačnezapísaťkonfiguráciuakoslovo:konfiguráciatmjeprvokzkbγ Γ KΓ ΓKB. KrokvýpočtuTM Mjerelácia M nakonfiguráciáchdefinovaná uqxv M upyv δ(q,x) (p,y,0), uqxv M uypv δ(q,x) (p,y,+1), uzqxv M upzyv δ(q,x) (p,y, 1)aanalogickypre okrajpásky,kdemôžepribudnúťb.čosatýkavýpočtov,existujú3možnosti:1)strojsapokonečnom počtekrokovdostanedoakceptačnéhostavu q A askončí,2)strojsapokonečnompočtekrokovdostane doodmietaciehostavu q R askončí,3)výpočetnikdyneskončí. JazykakceptovanýTMdefinujemeako množinu slov, na ktoré sa stroj vie dostať do akceptačného stavu(teda ak existuje aspoň 1 akceptačný výpočet). Obe verzie Turingovych strojov a frázové gramatiky sú navzájom ekvivalentné a definujú triedu L Ê rekurzívnevyčísliteľnýchjazykov.ekvivalenciantmafrázovýchgramatíksadokážepodobneako ekvivalencia LBA a CSG(bez obmedzenia na použitú pamäť a dĺžku pravej strany pravidiel). Deterministickým Turingovym strojom vieme robiť prehľadávanie do šírky na konfiguráciach NTM(upravíme vstupné slovo na počiatočnú konfiguráciu a následne vždy nájdeme prvú nespracovanú konfiguráciu, na koniec pásky vygenerujeme všetky konfigurácie, do ktorých sa môže z tejto konfigurácie dostať a označíme ju ako spracovanú). Keďže popis každej konfigurácie a počet konfigurácií, kam sa vieme odtiaľ dostať je konečný, vieme sa do každej konfigurácie, kam sa vie dostať NTM, dostať v konečnom čase. Existujú aj iné druhy TM; väčšina sa lýši počtom hláv, počtom či rozmerom pások. Napríklad dáme TM iba jednostranne nekonečnú pásku, alebo mu naopak pridáme pásky, zvýšime počet hláv, alebo mu dáme viacrozmernú pásku. Všetky tieto varianty sú ekvivalentné univerzálny postup pri simulácií týchto strojov je pamätať si každé políčko ako dvojicu(pozícia, hodnota políčka na pozícií), vždy prebehnúť celú pásku, nájsť políčko, kde sa nachádza čítacia hlava a príslušne ho prepísať. Podobne ako pri a-prekladačoch môžeme TM rozšíriť o výstupnú pásku a modelovať tak funkcie f:σ Σ,prípadne f: N N.TakétoTMvolámeTMpočítajúcefunkciu. Inýmodeljetzv.generujúciTuringovstroj. Jeto DTM M spracovnouavýstupnoupáskou, ktorý nemá žiadny vstup, ale pracuje do nekonečna. Vždy keď sa dostane do akceptačného stavu, hovoríme že vygeneruje slovo, ktoré je práve napísané na výstupnej páske. Jazyk G(M) generovaný M môžeme definovať ako slová, ktoré M vygeneruje. Zjavne k danému generujúcemu TM M vieme spraviť ekvivalentný NTM, ktorý na vstupe w simuluje M a vždy, keď M vygeneruje nejaké slovo, skontroluje, či tonáhodouniejeslovo w akáno,akceptuje,aknie,pokračujevgenerovaní. Naopak,predanýDTM viemespraviťekvivalentnýgenerujúci TM budemepostupneprechádzaťvšetkyslovázoσ (podľa dĺžky a lexikograficky) a simulovať DTM tie slová, ktoré akceptuje vypíšeme na výstupnú pásku a akceptujeme. Na simuláciu DTM si však treba dať pozor výpočet na niektorých slovách nemusí vôbec skončiť; teda k ďalším slovám by sme sa vôbec nemuseli dostať. Preto musíme DTM simulovať postupne navšetkýchslováchnaraz:v i-tejfázespravímejedenkroknaprvých islováchanapracovnúpáskusi pripíšeme ďalšie slovo v poradí. Ako sme spomínali, TM vôbec nemusí zastať; taký DTM, ktorý na každom vstupnom slove zastaví (akceptuje alebo odmieta), voláme algortimus. Jazyk voláme rekurzívny, ak existuje DTM, ktorý ho akceptuje, pričom na každom slove zastane. Inými slovami, rozhodovací problém(ktorý vieme kódovať ako nejaký jazyk) je(turingovsky) riešiteľný, ak preň existuje algoritmus, ktorý ho rieši. Triedu jazykov akceptovanýchdtm,ktorévždyzastanúvoláme L Ö,triedarekurzívnychjazykov. 7
rozhodnuteľnosť uzáverové vlastnosti Postove systémy ekvivalencia normálny tvar µ-rekurzívne funkcie Algoritmom zodpovedajú generujúce TM, ktoré generujú slová v lexikografickom poradí (ktoré v prípade konečných jazykov skončia). Keďže DTM vždy zastane, môžeme si ho dovoliť simulovať na slovách postupne po jednom, v danom poradí. Naopak, nechajme generovať slová v lexikografickom poradí; vždy skontrolujeme, či sa náhodou nevygenerovalo slovo zo vstupu ak áno, akceptujeme. Ak generujúci TM skončí, alebo vygeneruje slovo lexikograficky väčšie ako to na vstupe, slovo zo vstupu odmietneme. Rozhodovací problém, pre ktorý existuje algoritmus, voláme tiež rozhodnuteľný a taký, ktorý nie je rozhodnuteľný voláme nerozhodnuteľný. Ak pre problém existuje aspoň TM, ktorý ho rieši(a ak je odpoveď NIE, nemusí zastať), hovoríme, že problém je aspoň čiastočne rozhodnuteľný. Postova veta hovorí, že problém je riešiteľný práve vtedy, keď je on aj jeho komplement čiastočne riešiteľný, teda L L Ö L L Ê L C L Ê. Trieda L Ê jeuzavretánazjednotenie, zreťazenie, iteráciu, kladnúiteráciu, (ajnasubstitúciu rekurzívne vyčísliteľným jazykom), prienik, reverz, homomorfizmus aj inverzný homomorfizmus. Nie je však uzavretá na komplement. Príkladom je problém zastavenia z nasledujúcej sekcie, ktorý patrí do L Ê, alejehokomplementnie. Trieda L Ö jeuzavretánavšetkyvymenovanéoperácie(substitúciu rekurzívnymjazykom),adokoncaajnakomplement. Ztohovyplýva,že L Ö jevlastnápodmnožina L Ê. 7. Inémodely V dvadsiatom storočí vzniklo viacero formalizmov ekvivalentných Turingovym strojom: Postove systémy, µ-rekurzívne funkcie, λ-kalkul, kombinátorová logika. Postov(kanonický) systém je deduktívny systém, ktorý sa používa v logike: máme množinu znakov Σ, množinu(meta)premenných M a konečný zoznam odvodzovacích pravidiel P. Postupnosť znakov volajme term a postupnosť znakov a premenných, ktorá obsahuje aspoň jednu premennú, volajme schéma. Odvodzovaciepravidlozapisujeme t 1,t 2,...,t k / t,kde t,t 1,...,t k súschémy; t 1,...,t k súpredpoklady alebo premisy, t je dôsledok. Pritom požadujeme, aby všetky premenné v dôsledku sa nachádzali aj v predpokladoch. Pravidlo bez premís voláme axióma. Inštanciu odvodzovacieho pravidla dostaneme, ak v predpokladoch aj v dôsledku substituujeme rovnaké termy za rovnaké premenné. Napríklad vo výrokovej logikemámeznaky,,(,),p,q,...,(meta)premenné ϕ,ψ,...,pravidlomodusponens ϕ,(ϕ ψ) / ψa jednuzaxióm /(ϕ (ψ ϕ)).inštancioutejtoaxiómyjenapríklad((p q) (p (p q))).vety sútermy t n,ktorémajúdôkaz postupnosťtermov t 1,...,t n,kdekaždýterm t i jeinštanciouaxiómy, aleboodvodenýzpredchádzajúcichtermovpodľanejakéhoodvodzovaciehopravidla,teda i 1,i 2,...,i k < itaké,že t i1,t i2,...,t ik / t i jeinštanciapravidlazp. MnožinavšetkýchvietdanéhosystémujerekurzívnevyčísliteľnýjazyknadΣ. Naopak,kdanej frázovejgramatikeviemezostrojiť podobný Postovsystém,ktoréhovetysúvšetkyvetnéformygramatiky(pravidlu u vzodpovedá ϕuψ / ϕvψ, / σjeaxióma). Respektíve,kukaždému L L Ê viemezostrojiťpostovsystém P(možnosväčšouabecedou),prektorýje L(P) Σ = L. Postov systém je v normálnom tvare, ak má iba jednu axiómu a každé pravidlo je tvaru xϕ / ϕy. Postdokázal,žekukaždémusystému PnadabecedouΣexistujesystém P vnormálnomtvare(možno sväčšouabecedou)taký,že L(P ) Σ = L(P). Gödeldefinovaltrieduvypočítateľnýchfunkcií N k N. Funkcianula, z: N 0 N,kde z()=0, funkcianasledovníka, s:n N,kde s(x)=x+1afunkcieprojekcie πk n: Nk N,kde πk n(x 1,...,x n )= x k súvypočítateľné.aksúvypočítateľné f: N k Nag 1,...,g k : N n N,takjevypočítateľnáajich kompozícia f (g 1,...,g k ):N n N,definovanáako x f(g 1 ( x),...,g k ( x))(kde x=(x 1,...,x n )). Aksúvypočítateľnéfunkcie h i : N n 1 Nag i : N n+k N, potomsúvypočítateľnéajfunkcie f i : N Npre1 i kdefinovanéprimitívnourekurziou: f i (0, x 2 )=h i ( x 2 )(báza, x 2 =(x 2,...,x n )) a f i (x 1 +1, x 2 )=g i ( x,f 1 ( x),...,f k ( x))(rekurzia, x=(x 1,...,x n )). Vyššieuvedenéfunkcievoláme primitívne rekurzívne. Ku každej primitívne rekurzívnej funkcií existuje DTM počítajúci danú funkciu, ktorý vždy zastane(algoritmus). Naopak to však neplatí, napríklad Ackermannova funkcia definovaná A(0,y)=y+1, A(x+1,0)=A(x,1)aA(x+1,y+1)=A(x,A(x+1,y))niejeprimitívnafunkcia,ale vedeli by sme pre ňu zostrojiť DTM, ktorý vždy zastane. Ak ku dosiaľ zavedeným funkciám pridáme funkcie získané neohraničenou minimalizáciou µ, dostanemetriedu µ-rekurzívnychfunkcií. Operátor µvezmefunkciu g(y, x):n n+1 Navrátifunkciu f= µ y g(y, x):n n Ntakú,že f( x)jenajmenšietakéčíslo y,prektoréje g(y, x)=0apre z < yje g(z, x) definovanéanenulové. Aktaké yneexistuje, f( x)jenedefinované. Ak g: N n+1 Njevypočítateľná, potomaj f= µ y gjevypočítateľná. Vypočítateľnéfunkcienemusiabyťvšadedefinované ideotzv. 8
λ-kalkul redukcie Churchovečísla 2-zásobníkový automat počítadlové automaty parciálne funkcie. Trieda parciálnych µ-rekurzívnych funkcií je práve trieda funkcií počítaných TM. Funkcie, ktoré sú všade definované voláme totálne. Trieda totálnych µ-rekurzívnych funkcií zodpovedá práve triede funkcií počítaných DTM, ktoré vždy zastanú. Nech V = {f,g,h,x,y,z,...}jenekonečnámnožinapremenných.množinu λ-termovλdefinujeme induktívne: x V x Λ, M,N Λ (MN) Λ(aplikáciafunkcie Mna N)ax V,M Λ (λxm) Λ(abstrakcia; hovoríme, že výskyt premennej x v M je viazaný). Presnejšie voľné premenné M,FV(M)definujeme: FV(x)={x},FV(MN)=FV(M) FV(N)aFV(λxM)=FV(M) {x}. PremennávM jeviazaná,akniejevoľná(nepatrídofv(m)). Budemepísať M N,ak M vieme dostaťznpremenovanímviazanýchpremenných.kvôliprehľadnostibudemepísať FM 1 M n namiesto ( ((FM 1 )M 2 ) M n a λx 1 x n.mnamiesto(λx 1 (λx 2 ( (λx n (M)) )));vonkajšiezátvorkybudemevynechávať. λ-termvolámeuzavretý,alebotiežkombinátor,akfv(m)=.substitúciu Nzavoľné výskyty xvmznačíme M[x:= N]adefinujeme: x[x:= N]=N, y[x:= N]=ypre y x,(m 1 M 2 )[x:= N]=(M 1 [x:= N])(M 2 [x:= N]),(λx.M)[x:= N]=λx.Ma(λy.M)[x:= N]=λy.(M[x:= N])pre y x,y / FV(N). Na λ-termochdefinujeme2redukcie: α-redukciapremenuvávaviazanépremenné,teda λx.m α λy.(m[x := y]), ak sa y nenachádza v M a β-redukcia aplikuje funkciu na svoj parameter, teda (λx.m)n β M[x:= N].Výpočetvλ-kalkulepozostávasα-aβ-redukciípodtermovdovtedy,kýmsa dá. Podľa Churchovej-Rosserovej vlastnosti na poradí redukcií nezáleží. λ-term je v normálnom tvare, ak sa už nedá použiť žiadna β-redukcia. Tento normálny tvar je jedinečný až na α-redukciu. Nie všetky λ-termy však majú normálny tvar, napríklad(λx.xx)(λx.xx) nemá. Zadefinujme kombinátory K = λxy.x(z dvojice parametrov vráti ten prvý) a S = λxyz.xz(yz). Tieto kombinátorytvoria SK-logikuasúúplné vzmysle: Nech M jeľubovoľnýtermzloženýzx 1,...,X n, potomexistujekombinátor CzloženýibazSaKtaký,že CX 1 X 2 X n M. Napríkladidentita I=λx.x=SKK,výberdruhéhoparametraje K = λxy.y= SK. Veľmi zaujímavý je nasledujúci výsledok: Pre každý λ-term existuje pevný bod, teda F Λ X Λ:FX= X.Dokoncaexistujekombinátor Ytaký,žeprekaždúfunkciu Fje YFjejpevnýbod.Tento kombinátor je definovaný ako Y = λf.((λx.f(xx))(λx.f(xx))). Tento výsledok sa dá aj zovšeobecniť: Prekaždú n-ticu λ-termov F 1,...,F n existujú X 1,...,X n také,že F i X 1 X 2 X n = X i. Nech f n je n-krátiterovanáfunkcia f Λ,teda f 0 (M)=M a f n+1 (M)=f(f n (M)). Potom prirodzenéčíslo nviemekódovaťkombinátorom c n = λfx.f n (x). Kombinátory A + = λxypq.xp(ypq), A = λxyz.x(yz)aa = λxy.yxpotombudúzodpovedaťsčítaniu,násobeniuaumocneniu:budeplatiť A + c n c m = c n+m, A c n c m = c nm a A c n c m = c (nm )pre m 0. Vskutočnostije λ-kalkulekvivalentný µ-rekurzívnymfunkciámvzmysle f : N k Nje µ-rekurzívnafunkcia,pričom f(x 1,x 2,...,x k )=y právevtedy,keďexistuje λ-term ftaký,že fc x1 c x2 c xk c y. V štvrtej kapitole sme zadefinovali zásobníkové automaty. Podobne môžeme zadefinovať automaty, ktoré majú k dispozícií 2 alebo viac zásobníkov. Tieto už však majú silu Turingovho stroja(v jednom zásobníku si budeme pamätať pásku naľavo od hlavy, v druhom pásku napravo; potom napríklad pohyb doľava znamená prehodenie znaku z prvého do druhého zásobníka). Podobne, ak by sme automaty vybavili namiesto zásobníka frontou(vyberá sa z jedného konca, pridávanadruhý),budúakceptovaťprávetriedu L Ê. Vpiatejkapitolesmesavenovaliajautomatomspočítadlom;čosastane,akbudemaťautomat počítadiel viac? Nuž dvoma počítadlami vieme simulovať jeden zásobník obsah zásobníka si vieme pamätaťakočíslonapr.vn-árnejsústave(n = Γ +1), kdejednotlivéznakysúcifrytohtočísla. S pomocou druhého počítadla vieme násobiť/deliť so zvyškom/pripočítať konštantu, čo na simuláciu zásobníka stačí. Na simuláciu DTM stačia 2 zásobníky a teda aj 4 počítadlá. V skutočnosti stačia dokonca 2 počítadlá: kpočítadielviemesimulovaťdvomitak,žesičísla c 1,...,c k vjednotlivýchpočítadláchuložímeakojediné číslo2 c1 3 c2 5 c3 p c k k avyužijemehlavnúvetuaritmetiky,žekaždéčíslomájedinečnýprvočíselnýrozklad. Zvýšiť/znížiť hodnotu i-teho počítadla potom znamená vynásobiť/vydeliť číslo i-tym prvočíslom. Test nanulujetestnadeliteľnosť p i. 9