1 Úvod. Formální jazyky a automaty, P. Savický, 6. leden
|
|
- Radek Jaroš
- před 7 lety
- Počet zobrazení:
Transkript
1 Formální jazyky a automaty, P. Savický, 6. leden Úvod Formální jazyk je množina posloupností symbolů v nějaké konečné abecedě. Posloupnost symbolů může vyjadřovat například aritmetický výraz, logickou formuli nebo program v nějakém programovacím jazyce. Ve všech těchto případech je pevně dána konečná neprázdná množina symbolů, ze kterých se uvažované posloupnosti vytváří a kterou budeme nazývat abeceda. Konečné posloupnosti symbolů z dané abecedy budeme nazývat slova. Obvykle jsou k vyjádření smysluplné informace použita jen některá ze slov v dané abecedě. Např. aritmetický výraz musí splňovat pravidla rozmístění závorek a symboly vyjadřující hodnoty a operace musí být uspořádány tak, aby vyjadřovaly postup výpočtu hodnoty výrazu. Podobné je to pro logické formule nebo formálně zapsaná matematická tvrzení. Zápis programu v programovacím jazyce musí splňovat syntaktická pravidla programovacího jazyka. Množiny slov, která mají definován význam v některé z výše uvedených oblastí, jsou příklady formálních jazyků. Může to být množina všech správně vytvořených aritmetických výrazů, množina všech logických formulí určitého typu nebo množina všech syntakticky správných programů v daném programovacím jazyce. Budeme se zabývat způsoby, jak jazyky popisovat pomocí konečného zápisu, který budeme nazývat konečná reprezentace nebo jen reprezentace. Budeme studovat reprezentaci jazyků pomocí gramatik a automatů. Množinu jazyků, které lze definovat určitým typem gramatiky nebo automatu budeme nazývat třída jazyků. Formální zavedení pojmů jako abeceda a jazyk se poprvé objevilo v metamatematice v souvislosti s exaktní definicí logické dedukce a pojmu důkaz. V souvislosti s rozvojem počítačů pak byly formální jazyky studovány v souvislosti se syntaktickou analýzou programovacích jazyků a v souvislosti s počítačovou analýzou přirozeného jazyka. Budeme studovat především dva typy jazyků: regulární jazyky a bezkontextové jazyky. Regulární jazyky jsou ty, které lze reprezentovat konečným automatem, regulárním výrazem nebo přechodovým diagramem. Bezkontextové jazyky jsou ty, které lze reprezentovat bezkontextovou gramatikou nebo nedeterministickým zásobníkovým automatem. Okrajově budou uvedeny také kontextové jazyky definované kontextovými gramatikami. Bude také popsán Turingův stroj, což je příklad automatu, který umožňuje realizovat libovolný algoritmus. Využijeme jej k důkazu algoritmické nerozhodnutelnosti některých problémů týkajících se bezkontextových jazyků a bude později využit jako základní výpočetní model v předmětu výpočetní složitost.
2 Formální jazyky a automaty, P. Savický, 6. leden Základní pojmy a značení Abecedou budeme rozumět libovolnou neprázdnou konečnou množinu symbolů. Abecedy budeme obvykle značit Σ, případně s indexy. Symboly budeme obvykle označovatpočátečnímipísmenyzlatinskéabecedy,tj. a, b, c,...,případněsindexy. Definice 2.1 Slovem nad abecedou Σ budeme rozumět libovolnou konečnou posloupnost symbolů ze Σ včetně prázdné posloupnosti, kterou budeme nazývat prázdné slovo. Slovabudemeobvykleoznačovatpísmeny u, v, w,...,opětpřípadněsindexy. Prázdné slovo budeme značit ε. Množinu všech slov v abecedě Σ budeme značit Σ. Délkou slova w rozumíme počet jeho symbolů a značíme w. Délka prázdného slovaje0.jestliže wjeslovovabeceděσaa Σ,pakpočetvýskytů ave w budemeznačit w a. Jsou-li u a v slova, pak zápisem uv rozumíme jejich zřetězení. Podslovem slova w budeme rozumět libovolný souvislý úsek ve slově w, tj. posloupnost po sobě jdoucíchsymbolůve w.slovo vjepodslovem wprávětehdy,kdyžexistujíslova x, ytak,že w= xvy.slovo ujeprefixemslova v,jestližeexistujeslovo ztak,že v=uz. Reverzí slova w rozumímeslovo w R,kterévzniknezwobrácenímpořadí symbolů.například,(aab) R = baa. Definice 2.2 Jazykem nad abecedou Σ budeme rozumět libovolnou podmnožinu Σ. Jazyky budeme obvykle označovat velkými písmeny, např. L, K, případně s indexy.jestliže L 1, L 2 jsoujazyky,pakjejichzřetězenímnazvemejazyk L 1 L 2 = {uv; u L 1, v L 2 }. Například, {a, ab} {a, ba} = {aa, aba, abba}. Snadno lze ověřit, že zřetězení jazyků jeasociativníoperace.prolibovolnýjazyk Lplatí L {ε} = {ε} L = La L = L =. Opakovaným zřetězováním téhož jazyka dostaneme jeho mocniny. L 0 = {ε} L i+1 = L i L Protožejezřetězeníasociativní,platíprolibovolná i 0aj 0 L i+j = L i L j
3 Formální jazyky a automaty, P. Savický, 6. leden Jestliže L je jazyk, pak iterací L nazveme jazyk L = i 0 L i a pozitivní iterací L nazveme jazyk L + = i 1 L i Prolibovolnýjazyk Lplatí L = L + {ε}.pokud Lobsahujeprázdnéslovo,pak L = L +. DřívezavedenývýznamΣ lzepovažovatzaspeciálnípřípaditeracejazyka, pokud množinu symbolů Σ ztotožníme s množinou slov, z nichž každé je tvořeno jedním symbolem abecedy. Reverzíjazyka Lrozumímejazyk L R = {w R w L}. 2.1 Konečná reprezentace jazyků Pokud je jazyk konečný, tj. obsahuje jen konečně mnoho slov, pak jej lze popsat výčtemvšechslov,kterádonějpatří.pokudjetěchtoslovpřílišmnohonebo pokud je jazyk nekonečný, nelze výčet použít a přijdou na řadu jiné způsoby popisu jazyka, ale budeme vždy požadovat, aby samotný popis jazyka byl konečný. Poznamenejme, že z hlediska teorie množin je všech jazyků nespočetně mnoho, zatímco konečných reprezentací je jen spočetně mnoho. Existují tedy jazyky, které nemají konečnou reprezentaci. Reprezentace jazyků lze zhruba rozdělit do dvou typů: rozpoznávání(přijímání) jazyka a generování jazyka. Rozpoznávání jazyka znamená, že uvažujeme algoritmus, který přijme na vstupu libovolné slovo a jako výstup vydá rozhodnutí, zda slovo do jazyka patří nebo ne. Generování jazyka L znamená, že popíšeme strukturu, která umožňuje vytvářet slova, přičemž platí, že slovo může být daným způsobem vytvořeno právě tehdy, když patří do L. Příkladem reprezentace typu rozpoznávání jazyka jsou konečné automaty a příkladem struktur pro generování jazyka jsou gramatiky. Mezi nedeterministickými algoritmy pro rozpoznávání jazyků a systémy pro generování jazyků není ostrá hranice. Například přechodové diagramy je možné použít jako nedeterministický algoritmus pro rozpoznávání jazyka i jako strukturu pro generování jazyka. Později si ukážeme, že ke každé bezkontextové gramatice G lze sestrojit nedeterministický zásobníkový automat, který rozpoznává jazyk, který gramatika G generuje, a navíc, výpočty automatu jsou ve vzájemně jednoznačné korespondenci s podmnožinou odvození v gramatice, která je postačující pro vygenerování libovolného slova generovaného jazyka.
4 Formální jazyky a automaty, P. Savický, 6. leden Regulární výrazy Regulární výrazy jsou jednoduchý způsob zápisu regulárních jazyků, který je často poměrně úsporný, a proto jej budeme používat i při výkladu jiných modelů. Regulární výraz je zápis vyjádření jazyka z konečných jazyků pomocí operací sjednocení, zřetězení a iterace. Definice 2.3 Regulární výrazy nad abecedou Σ jsou definovány následujícími pravidly. Každýsymbol a Σasymbol εjeregulárnívýraz. Jestliže α, βjsouregulárnívýrazy,paktaké(α+β),(α β)a(α) jsou regulární výrazy. Pro regulární výraz α budeme jako L(α) označovat jazyk, který je výrazem α reprezentován. Výrazy popsané v prvním pravidle reprezentují jazyk, který obsahuje právě jedno slovo, které je výrazem určeno. Přesněji, pro libovolný symbol a Σje L(a)={a}aL(ε)={ε}.Dále,operace+označujemnožinovésjednocení,operace označujezřetězenía označujeiteraci.přesněji,prolibovolné regulárnívýrazy α, βje L((α+β))=L(α) L(β), L((α β))=l(α) L(β)a L((α) )=L(α). Operaci pro zřetězení je obvyklé v zápisu regulárního výrazu vypouštět. Pokud jsou vynechány závorky, pak operace má vyšší precedenci než +. 3 Gramatiky Gramatika je určena abecedou jazyka, který generuje, množinou pomocných symbolů, počátečním symbolem a odvozovacími pravidly. Abecedu generovaného jazyka budeme značit Σ a její symboly budeme nazývat terminály. Pomocné symboly budeme nazývat neterminály a jejich množinu budeme značit V. Počáteční symbol budemeznačit S ajeprvkem V.Odvozovací pravidlojezápistvaru α β,kde α, β (Σ V) a αobsahujealespoňjedenneterminál. Odvozovací pravidla dovolují z počátečního symbolu nebo z dříve odvozených slovvabeceděσ V odvoditslovadalší.použitípravidla α βznamená,že zeslovatvaru γ 1 αγ 2 odvodímeslovo γ 1 βγ 2.Jestližeslovo δ 2 získámezeslova δ 1 jednímkrokempřepsání,píšeme δ 1 δ 2.Pokudje δ 2 získánolibovolným konečnýmpočtempřepsánízδ 1,píšeme δ 1 δ 2.Totoznačenízahrnujeipřípad nulovéhopočtukrokůpřepsání,kdyje δ 1 = δ 2. Definice 3.1 Jazyk slov generovaných gramatikou G je při výše uvedeném značení L(G)={w Σ ; S w}
5 Formální jazyky a automaty, P. Savický, 6. leden Programatiku Gjetedy L(G)jazykvšechslovzeΣ,kterájsouodvoditelnáz počátečního symbolu S pomocí odvozovacích pravidel G. Větnou formou budeme rozumětlibovolnéslovovabeceděσ V,kteréjeodvoditelnézpočátečního symbolu S pomocí odvozovacích pravidel. Odvozením slova w L(G) budeme rozumět posloupnost větných forem, která začíná S, končí w a každý prvek posloupnosti kromě prvního je odvoditelný z předchozího pomocí některého pravidla gramatiky. Proces odvozování tedykončí,pokudjeodvozenoslovovabeceděσ,protosesymbolytétoabecedy nazývají terminály. Pomocné symboly se nazývají neterminály, protože slovo, ve kterém se některý pomocný symbol vyskytne, není konečnou podobou generovaného slova. Definice 3.2 Gramatika se nazývá bezkontextová, pokud jsou levé strany všech pravidel tvořeny právě jedním neterminálem. Speciálním případem bezkontextové gramatiky je lineární gramatika, která navíc splňuje, že pravá strana každého pravidla obsahuje nejvýše jeden neterminál. Pokud neklademe omezení na délku levé strany pravidel, ale pravá strana každého pravidla má délku alespoň takovou jako je délka levé strany stejného pravidla, tedy všechna pravidla splňují α β, nazývá se gramatika kontextová. Ke každé kontextové gramatice existuje ekvivalentní gramatika, jejíž pravidla jsoutvaru γ 1 Aγ 2 γ 1 βγ 2,kde Ajeneterminálaβjeneprázdnéslovo.Provedení tohoto pravidla lze interpretovat jako provedení pravidla A β za podmínky, že symbol Asenacházívkontextu γ 1 Aγ 2,cožjedůvodpronázevkontextovágramatika. Vzhledem k tomu, že při odvozování v kontextové gramatice se v žádném kroku odvozená větná forma nezkracuje, mohou se v odvození vyskytnout pouze větné formy, jejichž délka je omezena délkou výsledného slova. Protože těchto větných forem je konečně mnoho, je odvoditelnost slova v kontextové gramatice algoritmicky rozhodnutelná úloha. Pokud neklademe na gramatiky žádná omezení, lze pomocí gramatik popsat libovolný částečně rekurzivní jazyk. 3.1 Příklad kontextové gramatiky Na Obrázku 1 je příklad množiny pravidel kontextové gramatiky s abecedami Σ={a, b, c}, V= {S, A, B, C}aspočátečnímsymbolem S. Věta3.3Jestliže Gjegramatikaspočátečnímsymbolem S,abecedamiΣ, V uvedenýmivýšeasmnožinoupravidelzobrázku1,pak L(G)jemnožinaslov tvaru a i b i c i pro i 1. Důkaz. Neníobtížnénahlédnout,žekaždéslovotvaru a i b i c i pro i 1jevGodvoditelné. Nejprve pomocí opakování prvního pravidla odvodíme větnou formu
6 Formální jazyky a automaty, P. Savický, 6. leden S ABCS S ABc BA AB CA AC CB BC Cc cc Bc bc Bb bb Ab ab Aa aa Obrázek 1: Příklad množiny pravidel kontextové gramatiky. (ABC) i 1 Sapomocídruhéhopravidlazníodvodíme(ABC) i 1 ABc.Pomocí pravidel, která mění pořadí neterminálů, setřídíme neterminály ve větné formě tak,žezískáme A i B i C i 1 c.vposlednímkrokubudemeopakovaněpoužívatpravidla, jejichž levá strana obsahuje neterminál a terminál, tak, že v každém kroku se vždy poslední výskyt neterminálu nahradí odpovídajícím terminálem, tedy C jenahrazeno c, Bjenahrazeno baajenahrazeno a.například,pro i=2takto získáme odvození S ABCS ABCABc ABACBc AABCBc AABBCc AABBcc AABbcc AAbbcc Aabbcc aabbcc Pro opačný směr dokážeme nejprve dvě jednodušší tvrzení. V prvním použijemeznačení α {a,a} propočetsymbolů aaaveslově α,tedy α {a,a} = α a + α A,aanalogickypro {b, B}a{c, C}. Lemma3.4Jestliže S α,pakplatí α {a,a} = α {b,b} = α {c,c} Důkaz. Indukcípodledélkyodvození.Pronulovýpočetkrokůodvozeníje α=s a tvrzení lemmatu je splněno, protože všechny počty symbolů v rovnosti jsou nulové. Pak je potřeba ověřit rozborem případů. že použití libovolného pravidla G na větnou formu splňující tvrzení lemmatu vede opět na větnou formu splňující tvrzení lemmatu. QED. V následujícím lemmatu budeme k popisu jazyků používat regulární výrazy a pro jednoduchost budeme regulární výraz ztotožňovat s jazykem, který generuje. Budemetedypsátnapříklad u (a+b+c) místo u L((a+b+c) ).
7 Formální jazyky a automaty, P. Savický, 6. leden Lemma3.5Jestliže S α,pakplatíněkterázpodmínek α (A+B+ C) S (1) α (A+B+ C) c + (2) α (A+B+ C) b + c + (3) α (A+B+ C) a + b + c + (4) Důkaz. Pokud α = S, je splněna podmínka(1). Dále ukážeme, že všechna pravidla z Obrázku 1 zachovávají množinu větných forem, které splňují alespoň jednu z podmínek v tvrzení lemmatu. Pravidlo S ABCSlzepoužítpouzenaslova αsplňující(1)avedeopět na slovo splňující(1). Pravidlo S ABclzepoužítpouzenaslova αsplňující(1)avedenaslovo splňující(2). Pravidla BA AB, CA AC, CB BClzepoužítnaslova αsplňující kteroukoli z podmínek v tvrzení lemmatu a vedou na slovo splňující stejnou podmínku jako slovo výchozí. Pravidla Cc cc, Bc bclzepoužítpouzenaslova αsplňující(2)a vedou na slovo splňující(2) nebo(3). Pravidla Bb bb, Ab ablzepoužítpouzenaslova αsplňující(3)a vedou na slovo splňující(3) nebo(4). Pravidlo Aa aalzepoužítpouzenaslova αsplňující(4)avedenaslovo splňující(4). Všechny větné formy gramatiky G tedy splňují některou z podmínek v tvrzení lemmatu. QED. Jestliže w Σ aplatí S w,pakzlemmatu3.5plyne,že w a b c +.Pro slovotohototvarupakzlemmatu3.4plyne,že w=a i b i c i pro i 1. QED. 3.2 Příklady bezkontextových gramatik Slovo w nazveme symetrické (palindrom), pokud je rovno své reverzi, tedy w=w R.Uvažmelineárníbezkontextovougramatiku,jejížmnožinaneterminálů obsahuje pouze počáteční symbol S, množina terminálů je {a, b} a pravidla jsou na Obrázku 2. Lemma 3.6 Gramatika z Obrázku 2 generuje právě všechna symetrická slova sudédélkyvabecedě {a, b}.
8 Formální jazyky a automaty, P. Savický, 6. leden S asa S bsb S ε Obrázek 2: Bezkontextová gramatika pro symetrická slova sudé délky. Důkaz. Indukcí podle délky slova ukážeme, že pro každé symetrické slovo w sudé délkyvabecedě {a, b}platí S w.proprázdnéslovotvrzeníplatí.pokudje w neprázdné,máněkterýztvarů auanebo bub,kde ujekratšísymetrickéslovosudé délky.zindukčníhopředpokladutedyplyne S u,atedyplatí S asa aua ataké S asa bub. Pro opačnou implikaci stačí ověřit indukcí podle délky odvození, že všechny větné formy v uvedené gramatice jsou symetrická slova a obsahují sudý počet terminálních symbolů. QED. Jako další příklad uvedeme gramatiku pro Dyckův jazyk. Budeme uvažovat posloupnosti závorek, ve kterých tvoří levé a pravé závorky vzájemně si odpovídající dvojice tak, jako v aritmetických výrazech. Příklady takových slov jsou(), (()),()(),(()()).JazykslovtohototvarusenazýváDyckůvjazykaslovaztohoto jazyka lze generovat gramatikou z Obrázku 3. Počet slov délky 2n v tomto jazyce je roven Catalanovu číslu C n = 1 n+1 ( ) 2n n Důkaz tohoto faktu lze najít například na Wikipedii S SS S (S) S ε Obrázek 3: Gramatika pro Dyckův jazyk. Lemma 3.7 Gramatika z Obrázku 3 s počátečním symbolem S generuje právě všechnaslovazdyckovajazykavabecedě {(,)}. Důkaz. NechťΣ={(,)}.GramatikuzObrázku3označmejako GaDyckův jazykvabeceděσoznačme D.Prolibovolnéslovo w Σ označme h(w)= w ( w ),tedy h(w)jerozdílpočtulevýchapravýchzávorekve w,tedyhloubka vnořenízávoreknakoncislova w.jestliže w=x 1 x 2...x n,kde x 1,...,x n Σ,a 0 i w =n,označme h i (w)=h(x 1 x 2...x i ).Prokaždéslovoje h 0 (w)=0.
9 Formální jazyky a automaty, P. Savický, 6. leden S T T (T T) (F T) (T F) T (T T) ( F) T 1 F (F F) (T F) (F T) F (F F) ( T) F 0 Obrázek 4: Gramatika pro konstantní výrokové formule s hodnotou 1. Každéslovo w Dobsahujestejnýpočetlevýchapravýchzávorekatedyproněj platí h w (w)=h(w)=0.dokážeme,žeprokaždéslovo w Σ jsounásledující tvrzení ekvivalentní (1) w L(G), (2) w D, (3) h(w)=0aprokaždé0 i w je h i (w) 0. Implikaci(1) (2) lze dokázat následovně. Jestliže w L(G), uvažme libovolnéodvození S= α 0 α 1... α n = w.indukcípodle i {0,..., n} dokážeme,ževevětnéformě α i lzezávorky(tedyterminálnísymboly)vzájemně přiřadit tak, že se dvojice vzájemně přiřazených závorek nekříží. Počáteční větná forma α 0 = Stototvrzenísplňujetriviálně.Nechť1 i naα i 1 tototvrzení splňuje.pokudvětnáforma α i vzniknezα i 1 pomocípravidla S SSnebo S ε,vzájemnépřiřazenízávorekzachováme.pokud α i vzniknepomocípravidla S (S), přiřadíme navzájem nově přidané závorky a přiřazení ostatních závorek zachováme. V obou případech vznikne větná forma, která tvrzení splňuje. Implikaci(2) (3)lzedokázatnásledovně.Nechť w D.Jakjižbylozmíněno výše,platí h(w)=0.jestliže u=x 1 x 2...x i jelibovolnýprefix w,pakkaždépravé závorcevulzepřiřaditjinoulevouzávorkuvu,tedy h i (w)=h(u) 0. Implikaci(3) (1) dokážeme indukcí podle délky slova w. Prázdné slovo w=εsplňuje(3)i(1).nechť wjeneprázdnéavšechnaslovaσ délkymenšínež w dokazovanou implikaci splňují. Pokud existuje 1 i w 1, pro které je h i (w)=0,pakoznačmejako uprefix wdélky iajako vzbytekslova w,jehož délkaje w i.platítedy w=uv, u < w, v < w, h(u)=h i (w)=0. Protože h(u)+h(v)=h(w),platítaké h(v)=h(w) h(u)=0.navíc,pro každé0 j u platí h j (u) = h j (w) 0.Dále,prokaždé0 j v platí h(u)+h j (v)=h u +j (w) 0.Protože h(u)=0,platítaké h j (v) 0. Slova u, v tedy splňují (3). Z indukčního předpokladu plyne, že existují odvození S u a S v. S využitím těchto odvození lze sestrojit odvození S SS us uv= w. QED.
10 Formální jazyky a automaty, P. Savický, 6. leden Pravidla se stejnou levou stranou lze při zápisu bezkontextové gramatiky spojit do jednoho řádku, v němž jsou jednotlivé pravé strany odděleny znakem. Gramatiku pro symetrická slova sudé délky tedy lze zapsat také ve tvaru S asa bsb ε. TotozkrácenéznačeníjepoužitotakévObrázku4,kdejeuvedenagramatikas neterminály S, T, Faterminály0,1,,,,(,). Lemma 3.8 Gramatika z Obrázku 4 s počátečním symbolem S generuje právě všechny plně uzávorkované konstantní booleovské výrazy s hodnotou 1. Důkaz. Pro a {0,1}nechť L a jemnožinavšechplněuzávorkovanýchkonstantních booleovských výrazů s výše uvedenými spojkami. Nejprve budeme uvažovat odvození w Σ zneterminálů Ta Faindukcípodle kdokážeme,žeprokaždé k 1 platí následující implikace jestliže T wvnejvýše kkrocích,pak w L 1 jestliže F wvnejvýše kkrocích,pak w L 0 Pokud k=1,jeodvozenívpředpokladuprvníimplikacepoužitímpravidla T 1 a implikace tedy platí. Podobně, odvození v předpokladu druhé implikace je F 0aimplikacetaképlatí.Pokudodvození wztnebo Fobsahujevícekrokůapro všechna kratší odvození platí indukční předpoklad, pak ověříme rozborem případů podle výchozího neterminálu a prvního použitého pravidla, že i celé odvození splňuje dokazované implikace. Při tomto postupu využijeme, že první pravidlo gramatiky,kterémůžebýtvtomtopřípaděpoužito,zaručujebuď w L 0 nebo w L 1 podletabulkyodpovídajícíspojky, nebo.oběimplikacetedyplatí prolibovolné k 1. Pro opačný směr dokážeme následující implikace indukcí podle počtu spojek n 0použitýchvevýrazu jestliže w L 1 a wobsahuje nspojek,pak T w jestliže w L 0 a wobsahuje nspojek,pak F w Pokudje n=0,je w=0nebo w=1aimplikaceplatí.předpokládejme,že n 1aprovýrazysméněnež nspojkamiimplikaceplatí.slovo wmáněkterýz tvarů(u 1 u 2 ),(u 1 u 2 ),nebo( u 1 )provhodnévýrazy u 1, u 2 L 0 L 1.Podle indukčního předpokladu lze tyto výrazy odvodit z T nebo F podle jejich hodnoty atedyiwlzeodvoditztnebo Fvzávislostinajehohodnotě. Celkem tedy platí T wprávětehdy,když w L 1 F wprávětehdy,když w L 0 Protožezpočátečníhosymbolu SjeodvoditelnástejnámnožinaslovjakozT,je tvrzení věty dokázáno. QED.
11 Formální jazyky a automaty, P. Savický, 6. leden Levá derivace, levá větná forma Odvození v bezkontextové gramatice, ve kterém se v každém kroku nahrazuje nejlevější neterminál, se nazývá levá derivace. Větná forma, kterou lze odvodit levou derivací, se nazývá levá větná forma. Lemma 3.9 Jestliže G je bezkontextová gramatika, pak každé slovo z L(G) lze odvodit levou derivací. Důkaz. NechťΣjeterminálníabeceda, V jeneterminálníabecedaasjepočátečnísymbol G.Nechť w L(G)auvažmelibovolnouderivaci S w.nechť uaα, u Σ, A V, α (Σ V) jeprvnívětnáformavtétoderivaci,vekteré nenívdalšímkrokunahrazovánnejlevějšíneterminál.derivaci S uaα,která tvořípočátečníúsekpůvodníderivace,označmejako d 0.Protožejegramatika bezkontextová, lze pokračování původní derivace od větné formy uaα rozdělit nakroky,kterérozvíjívětnouformu uaakroky,kterérozvíjívětnouformu α. Tímtozpůsobemzískámederivaci ua v 1 Σ,kterouoznačíme d 1,aderivaci α v 2 Σ,kterouoznačíme d 2,tak,žeplatí v 1 v 2 = w.derivace d 0, d 1 a d 2 lze spojittak,ževytvoříderivaci S uaα v 1 α v 1 v 2 = w,jejíždélkajestejná jako délka původní derivace, a počáteční úsek této derivace, kde jsou nahrazovány vždy nejlevější neterminály, je alespoň o jeden krok delší než v původní derivaci. Opakováním tohoto postupu získáme derivaci slova w, která je levou derivací. QED. 4 Automaty Pojem automatu obecně nebudeme definovat, ale ukážeme si některé typy automatů, které budou využity v dalším výkladu. Automat se obvykle skládá z řídící jednotky, která nabývá konečně mnoha stavů, a z paměťových zařízení, která jsou řízena konečným počtem možných instrukcí. Množina stavů obsahuje alespoňstavy {q 0, q +, q },kterésevuvedenémpořadínazývajípočátečnístav, přijímající stav a zamítající stav. Paměťová zařízení mohou být například Páska tvořená jednostranně nekonečnou(směrem vpravo) posloupností polí, z nichž každé může obsahovat jeden symbol z abecedy, kterou budeme obvykleznačitγ,ačtecíhlavou,kterájevkaždémkrokuvýpočtuumístěnana některém poli pásky. Předpokládáme, že Γ obsahuje symbol pro prázdné pole pásky. Instrukce pro pásku jsou: zápis symbolu, přečtení symbolu a přesun čtecí hlavy o jedno pole vlevo nebo vpravo. Množina instrukcí pro pásku může být ve speciálních případech omezena tak, že páska umožňuje pohyb hlavy pouze jedním směrem nebo může být určena pouze pro čtení symbolů a nikoli zápis.
12 Formální jazyky a automaty, P. Savický, 6. leden Zásobník,kterýjeznámtakéjakopaměťtypuLIFO(lastinfirstout),viz Instrukce pro zásobník jsou: čtení symbolu na vrcholu zásobníku, odebrání jednoho symbolu z vrcholu zásobníku a vložení slova na vrchol zásobníku po jednotlivých symbolech. Čítač, který obsahuje přirozené číslo, a je řízen instrukcemi přičíst 1, odečíst 1,pokudječíslokladné,atestnarovnost0. Nazačátkuvýpočtuautomatujeřídícíjednotkavpočátečnímstavu q 0 avstupní slovo je zapsáno na pásce, která se nazývá vstupní. Pásky, jejichž čtecí hlava se může pohybovat oběma směry, mají v prvním poli zapsán znak označující začátekpáskyanazačátkuvýpočtujenatěchtopáskáchčtecíhlavanadruhém poli, tedy za symbolem. Pásky, jejichž čtecí hlava se pohybuje pouze vpravo, symbol vprvnímpolineobsahujíanazačátkuvýpočtuječtecíhlavanaprvním poli. Podle typu automatu je vstupní slovo zapsáno od prvního pole vstupní pásky (toto platí pro konečný automat a zásobníkový automat) nebo je první symbol napásce avstupníslovojezapsánooddruhéhopolepásky(totoplatípro Turingův stroj). Všechna ostatní pole vstupní pásky jsou prázdná, tedy obsahují symbol pro prázdné pole pásky. Pracovní pásky obvykle umožňují pohyb čtecí hlavy oběma směry, a tedy na začátku výpočtu obsahují v prvním poli symbol, a všechna ostatní pole obsahují symbol. Zásobníky obsahují na začátku výpočtu slovo S, kde S je počáteční symbol zásobníku, a čítače mají hodnotu 0.Symbol nelzezezásobníkuodebratapokudjetentosymbolnavrcholu zásobníku, znamená to, že je zásobník prázdný. Vstupní páska může být pouze pro čtení nebo může připouštět zápis symbolů. Pracovní pásky umožňují čtení i zápis symbolů. Způsob využití vstupní pásky závisí na typu složitosti, kterou pro daný TS měříme. Vstupní páska, která připouští zápis symbolů a je využívána také jako pracovní, se používá, pokud měříme čas výpočtu TS nebo prostor potřebný k výpočtu, který je alespoň tak velký jako délka vstupního slova. Vstupní páska, která je určena pouze pro čtení, se používá, pokud měříme prostor potřebný k výpočtu, který je menší než délka vstupního slova. Výpočet deterministického automatu je po výše popsané inicializaci určen přechodovou funkcí. Argumenty této funkce jsou stav řídící jednotky, symboly čtené na páskách nebo na vrcholech zásobníků, případně test na 0 u čítačů. Hodnotou přechodové funkce pak je akce, která má být v daném případě provedena. Akcí se rozumí seznam instrukcí, které mají být provedeny na paměťových zařízeních, a stav, do kterého přejde řídící jednotka po jejich provedení. Výpočet končí, pokud řídící jednotka přejde do přijímajícího nebo zamítajícího stavu. Slovo je přijato deterministickým automatem podle toho, v kterém z těchto stavů výpočet skončil.
13 Formální jazyky a automaty, P. Savický, 6. leden Pokud je automat nedeterministický, je výpočet popsán přechodovou relací, která každé kombinaci vstupů určí množinu možných akcí, která může být prázdná, jednoprvková nebo víceprvková. Každá z možných akcí je stejně jako v deterministickém případě určena seznamem instrukcí, které mají být provedeny na paměťových zařízeních, a stavem, do kterého řídící jednotka přejde po jejich provedení. Nedeterministický automat může mít pro tentýž vstup více možných výpočtů. Ukončení výpočtu a rozhodnutí o přijetí slova daným výpočtem je stejné jako u deterministického automatu. Přijetí slova nedeterministickým automatem je definováno tak, že slovo je přijato, pokud pro dané slovo existuje přijímající výpočet a je zamítnuto v opačném případě. Protože možných výpočtů nedeterministického automatu může být exponenciálně mnoho v délce výpočtu, nedeterministický automat typicky nereprezentuje efektivní postup rozhodování o náležení slova do jazyka, ale může být vhodný jako abstraktní popis jazyka. 4.1 Turingův stroj Budeme nejprve uvažovat Turingův stroj(ts) s jednou páskou, která je vstupní a umožňuje čtení i zápis symbolů a pohyb hlavy oběma směry. Množinu stavů řídící jednotkybudemeznačit Qabudemepředpokládat,žeobsahujepočátečnístav q 0, přijímajícístav q + azamítajícístav q.abecedusymbolůnapáscebudemeznačit Γabudemepředpokládat,žeobsahujesymbolprozačátekpásky asymbolpro prázdné pole pásky. Vstupní abecedu, tedy abecedu vstupních slov, budeme značitσ Γ \ {, }.KroměsymbolůzeΣ {, }můžeabecedaγobsahovat libovolný konečný počet pomocných symbolů, které jsou využívány při výpočtu. Předpokládáme, že Q a Γ jsou disjunktní. Výpočet TS je řízen přechodovou funkcí, což je funkce tvaru f:(q \ {q +, q }) Γ Q Γ { 1,0,1} ajejívýznamjepopsánníže. Nazačátkuvýpočtujeobsahpáskytvořenvprvnímpolipáskysymbolem, paknásledujevstupníslovo w Σ rozloženéposymbolechdojednotlivýchpolí páskyavšechnazbylápoleobsahujísymbol.čtecíhlavajenaprvnímsymbolu vstupníhoslovaařídícíjednotkajevestavu q 0. Výpočet probíhá následovně. Jestliže je řídící jednotka ve stavu q, čtený symbolnapásceje aaf(q, a)=(q, a, s),pakjeprovedenanásledujícíakce.stav řídícíjednotkysezměnína q,čtenýsymboljepřepsánna a apokudpozicihlavy označíme i,přesunesehlavanapozici i+s.výpočetkončí,pokudřídícíjednotka přejdedostavu q + nebo q.vstupníslovojepřijato,pokudvýpočetskončilve stavu q +,azamítnuto,pokudskončilvq. Výpočet TS lze simulovat pomocí booleovských obvodů, výrokových formulí ve tvaru CNF, případně kvantifikovaných výrokových formulí(qbf). Pro konstrukci těchto simulací je potřeba zvolit způsob popisu aktuálního stavu výpočtu,
14 Formální jazyky a automaty, P. Savický, 6. leden který budeme nazývat konfigurace a který určuje stav řídící jednotky, obsahy pásek a polohu čtecích hlav na páskách. Pro jednopáskový TS lze konfiguraci popsat slovem pevné délky, pokud je předem znám odhad prostoru, ve kterém výpočet probíhá. Tento způsob využijeme například pro simulaci TS pomocí booleovských obvodů a některých typů formulí. Pokud není prostor omezen a může během výpočtunarůstat,budemekonfiguracizapisovatvetvaruslova uqv#,kde uv Γ, q Qasymbol#jepřidanýsymbol,kterýneníprvkemΓ Q.Slovo uvjetvořeno obsahem všech neprázdných polí pásky a všech polí s prázdným symbolem, která TS navštívil při některém z předchozích kroků a do kterých zapsal prázdný symbol podle přechodové funkce. Symbol q určuje stav řídící jednotky a umístění tohotosymboluurčujepolohučtecíhlavytak,žeječtenprvnísymbolslova v, pokudjetotoslovoneprázdné,neboječtenprvníprázdnýsymbol napásceza slovem u,pokudje vprázdnéslovo.slovo ujeprázdné,pokudječtecíhlavana nejlevějším poli pásky. Budeme uvažovat také vícepáskový TS, protože je v některých případech efektivnější. Například rozpoznávání symetrických slov má na jednopáskovém TS časovousložitostθ(n 2 )anadvoupáskovémθ(n),kde njedélkavstupníhoslova. Pro jednoduchost budeme předpokládat, že abeceda symbolů na všech páskách jeγ.přechodováfunkceprotsskpáskamijepaktvaru f:(q \ {q +, q }) Γ k Q Γ k { 1,0,1} k apokudje f(q, x 1,..., x k )=(q, x 1,..., x k, s 1,..., s k ),pakvpřípadě,žejeřídící jednotkavestavu qanapáskáchjsoučtenysymboly x 1,..., x k,paksestavřídící jednotkyzměnína q,symbolynapáskáchjsoupřepsánynasymboly x 1,..., x k a pokudjsoučtecíhlavynapolíchsindexy i 1,..., i k,paksečtecíhlavyposunouna polesindexy i 1 + s 1,..., i k + s k. Proúvahyojazycích,kterélzerozpoznávatsprostorem O(logn),kde nje délka vstupního slova, budeme používat TS se vstupní páskou pouze pro čtení, kteráumožňujepohybhlavyoběmasměry,askpáskami,kde k 1,tedysk 1 pracovními páskami. Pro jednoduchost budeme předpokládat, že všechny pásky mají stejnou abecedu, i když na vstupní pásce budou využity pouze symboly z množinyσ {, }.Přechodováfunkcejevtomtopřípadětvaru f:(q \ {q +, q }) Γ k Q Γ k 1 { 1,0,1} k protože součástí vstupu jsou symboly čtené na všech páskách a výstup obsahuje symboly zapsané na pracovní pásky a směr pohybu hlavy na všech páskách. 4.2 Měření složitosti Pro libovolnou nezápornou funkci f znamená O(f)libovolnounezápornoufunkci g,prokterouexistuje n 0 akonstanta c tak,že( n n 0 ) g(n) cf(n).
15 Formální jazyky a automaty, P. Savický, 6. leden Ω(f)libovolnounezápornoufunkci g,prokterouexistuje n 0 akonstanta ε >0tak,že( n n 0 ) g(n) εf(n). Θ(f)libovolnounezápornoufunkci g,kterájesoučasně O(f)iΩ(f),tedy existujíkonstanty0 < c 1 c 2 tak,že( n n 0 ) c 1 f(n) g(n) c 2 f(n). Speciálními případy tohoto značení je O(1), Ω(1) a Θ(1), které v uvedeném pořadí znamenají funkce, které jsou shora, zdola a z obou stran omezené kladnou konstantou. Časová složitost výpočtu TS je počet kroků, které výpočet provedl. Prostorová složitost výpočtu TS je maximální počet polí, které TS navštívil na některé pracovní pásce. Prostor by bylo možné definovat jako součet počtů polí navštívených na jednotlivých pracovních páskách, ale odhady pro maximum jsou jednodušší. ProtožepočetpásekprodanýTSjekonstanta,lišísesoučetamaximumpouze o multiplikativní konstantu. Nechť t:n Nas:N Njsoulibovolnéfunkce.PakDTIME(t(n)) označuje třídu jazyků, které lze rozpoznávat pomocí TS v čase O(t(n)) a DSPACE(s(n)) označuje třídu jazyků, které lze rozpoznávat pomocí TS v prostoru O(s(n)). Analogicky se definují třídy NTIME(t(n)) a NSPACE(s(n)) pro nedeterministický TS, kdy se požaduje, aby omezení časové složitosti O(t(n)) nebo omezení prostorové složitosti O(s(n)) splnily všechny výpočty pro slovo délky n, přijímající i zamítající. V některých výpočtech složitosti je použito následující lemma. Lemma4.1Délkabinárníhozápisučísla n 1je log 2 n +1= log 2 (n+1). Důkaz. Nechť n 1anechť ljedélkabinárníhozápisu n.pakplatí atedy 2 l 1 n 2 l 1 (5) 2 l 1 n <2 l Logaritmováním všech čísel v nerovnosti dostaneme l 1 log 2 n < l cožimplikuje l 1= log 2 n atedyprvníformuvyjádření.druhouformuvyjádření odvodíme následovně. Z(5) plyne 2 l 1 < n+1 2 l Logaritmováním všech čísel v nerovnosti dostaneme cožimplikuje log 2 (n+1) =l. QED. l 1 <log 2 (n+1) l
16 Formální jazyky a automaty, P. Savický, 6. leden Turingův stroj pro rozpoznávání symetrických slov Ukážeme příklad jednopáskového Turingova stroje, který rozpoznává symetrická slovasudédélkyvabecedě {a, b}včase O(n 2 ),kde njedélkavstupníhoslova. Pro jednopáskový stroj nelze tento odhad zlepšit, ale existuje TS se dvěma páskami, který pracuje v čase O(n). Vstupní páska uvažovaného TS umožňuje čtení i zápis symbolů. Množinu stavů řídící jednotky ani přechodovou funkci nebudeme explicitně uvádět. TS bude popsán programem, ze kterého lze jeho formální popis pomocí přechodové funkce odvodit, a tento postup přibližně popíšeme. VpseudokódunaObrázku5jepoužitaproměnná H,kterávkaždémkroku výpočtu reprezentuje čtený symbol na pásce a proměnné Y {, a, b}=d(y), R {,0,1}=D(R), kteréjsouinicializovány R=, Y = ajejichžoboryhodnotbudemeznačit D(Y)aD(R).Podmínkanařádku2jenesplněnapouzevpřípadě,ževstupní slovo je prázdné. Ve všech ostatních případech je výpočet ukončen provedením příkazuhaltzařádkem12nebozařádkem15. Pro vyjádření TS pomocí přechodové funkce převedeme nejprve program na vývojový diagram, jehož množinu vrcholů označme V. Uzly diagramu budou odpovídatočíslovanýmřádkůmprogramuařádku ibudeodpovídatuzel v i.očíslovány jsou řádky, které obsahují příkaz nebo podmínku. Všem řádkům s příkazem halt odpovídá jeden koncový uzel diagramu, proto je očíslován pouze poslední z nich. Hrany v diagramu jsou určeny možnými pořadími, v jakých mohou být příkazy programu prováděny. Například, while cyklus zahájený na řádku 5 odpovídá vdiagramuhranám v 5 v 6, v 5 v 7 a v 6 v 5 ahranazuzlu v 5 sepřivýpočtu vybírá podle podmínky v tomto uzlu. Podobně, podmíněný příkaz zahájený na řádku8odpovídáhranám v 8 v 9, v 8 v 11, v 9 v 10, v 10 v 13, v 11 v 12, v 12 v 20 ahranazuzlu v 9 sepřivýpočtuvybírápodlepodmínkyvtomtouzlu. JakomnožinustavůTSpoužijeme Q=V D(Y) D(R).Počátečnístav bude q 0 = (v 1,, ),přijímajícístavbude q + = (v 20,,1)azamítajícístav bude q =(v 20,,0).Přechodovoufunkci fpopíšemeprokaždýuzel v i zvlášť. Uzeldiagramu v i ahrany,kteréznějvedou,určujíhodnotupřechodovéfunkce f(q, x)=(q, x, s)provšechnystavy q=(v i, Y, R),tedypro D(Y) D(R) stavů,aprovšechnyhodnotyčtenéhosymbolu H= x Γ,ivpřípadě,žepříkaz nebopodmínkave v i načtenémsymbolunezávisí.příkazyapodmínkyvuzlech diagramuneurčujíobaparametry x a svpřechodovéfunkciachybějícíúdajeje potřeba doplnit. Například příkaz vpravo(h) určuje s = 1 a je potřeba doplnit x = x.příkaz Y := jevpřechodovéfunkcivyjádřenakcí,kteráměnípouze stavřídícíjednotky,ajepotřebadoplnit x = xas=0.
17 Formální jazyky a automaty, P. Savický, 6. leden while H Σdo 2 Y:= H 3 H:= 4 vpravo(h) 5 while H do 6 vpravo(h) od 7 vlevo(h) 8 if H= Y then 9 Y:= 10 H:= else [platí H= nebo H Σ \ {Y }] 11 Y:= 12 R:=0 halt fi 13 vlevo(h) 14 if H= then 15 R:=1 halt fi 16 while H Σdo 17 vlevo(h) od 18 vpravo(h) od 19 R:=1 20 halt Obrázek 5: Pseudokód pro Turingův stroj rozpoznávající symetrická slova sudé délky. Výstup 0(zamítnout) nebo 1(přijmout) je v proměnné R. Hodnoty přechodové funkce nebudeme uvádět pro všechny řádky programu na Obrázku 5, ale pouze pro několik vybraných řádků z tohoto programu jako příklady. Uvedené hodnoty přechodové funkce platí pro všechny kombinace hodnotproměnných Y D(Y), R D(R)ax Γ.Příkaz Y:= Hnařádku2určuje hodnoty přechodové funkce f((v 2, Y, R), x) = ((v 3, x, R), x,0) příkaz R:=0nařádku12určujehodnoty f((v 12, Y, R), x) = ((v 13, Y,0), x,0)
18 Formální jazyky a automaty, P. Savický, 6. leden řádek 5 obsahující podmínku H určuje hodnoty f((v 5, Y, R), a) = ((v 6, Y, R), a,0) f((v 5, Y, R), b) = ((v 6, Y, R), b,0) f((v 5, Y, R), ) = ((v 7, Y, R),,0) a příkaz vpravo(h) na řádku 6 určuje hodnoty f((v 6, Y, R), x) = ((v 5, Y, R), x,1) 4.4 Turingův stroj s logaritmickým prostorem Ukážeme,žejazyky {a i b i i 0}a{a i b i c i i 0}lzerozpoznávatvčase O(n) avprostoru O(logn).Ukážemetaké,žeuvedenýprostorjenejmenšímožnýpro rozpoznávání obou uvedených jazyků. Věta4.2Jazyky {a i b i i 0}a{a i b i c i i 0}lzerozpoznávatTSsevstupní páskoupouzepročtenísoučasněvčase O(n)avprostoru O(log n),kde njedélka vstupního slova. Důkaz. TSprojazyk L 1 = {a i b i i 0}budemítdvěpracovnípásky,jednu pro počítání počtu výskytů symbolu a, druhou pro počítání výskytů b. TS pro jazyk L 2 = {a i b i c i i 0}budemíttřipracovnípásky,jednupropočítánípočtu výskytů každého ze symbolů abecedy {a, b, c}. Počet symbolů bude v binárním zápisu,nejnižšířádbudenadruhémpolipáskyzasymbolem adalšířády budou postupně na dalších polích, zápis končí prvním výskytem symbolu. TS pro L 2 přivýpočtukontroluje,ževstupníslovojetvaru a b c,apočítádélku blokusymbolů a, b,resp. csvyužitímpracovníchpásek,jakjeuvedenovýše. Hlavní část programu je na Obrázku 6, kde jsou čtecí hlavy pracovních pásek prosymboly a, b,resp. coznačeny W A, W B,resp. W C.FunkceZvetsiA()zvětšuje počet symbolů a zapsaný na odpovídající pracovní pásku a řídí se programem naobrázku7.funkcezvetsib()azvetsic()zvětšujípočtysymbolů bacna odpovídajících páskách a lze je popsat analogickým programem, který využívá W B nebo W C místo W A.FunkcePorovnejAB()porovnápočtysymbolů a, ba pokudjsoutytopočtyrůzné,provededosazení R:=0aukončívýpočetpříkazem halt. Analogicky, PorovnejBC() porovná počty symbolů b, c a v případě neshody ukončí výpočet stejným způsobem. Programy pro tyto funkce lze snadno sestavit. Programprojazyk L 1 jepodobnýjakoprogrampro L 2,alepočítáaporovnává pouze počty symbolů a, b. Odhad prostorové složitosti O(log n) pro obajazyky plyne ztoho, že při vstupu délky n může být na pracovních páskách zapsáno nejvýše číslo n, jehož binárnízápismádélku log 2 n +1. Odhad časové složitosti O(n) získáme jako součet počtu provedení příkazů z hlavní části programu a z jednotlivých volaných funkcí. Každý příkaz hlavní
19 Formální jazyky a automaty, P. Savický, 6. leden while H= ado ZvetsiA() vpravo(h) od while H= bdo ZvetsiB() vpravo(h) od PorovnejAB() while H= cdo ZvetsiC() vpravo(h) od PorovnejBC() if H= then R:=1 else R:=0 fi halt Obrázek6:Programprorozpoznávání L 2. části programu je proveden nejvýše n krát a počet kroků ve funkcích pro porovnánípočtůje O(log 2 n).tytočástiprogramutedypřispívajídočasovésložitosti nejvýše O(n) kroků. Odhad počtu kroků pro funkce, které zvyšují počet výskytů některého symbolu o jedna, je složitější, protože počet kroků, které provede jedno voláníněkteréztěchtofunkcí,jerůznýazávisínadélceúsekučíslic1vnejnižších řádech zápisu čísla, které se zvětšuje. Tato délka může mít libovolnou hodnotu aždo O(log 2 n).označmejako pvýslednouhodnotupočtusymbolů,kterájezapsána na pracovní pásce pro počet symbolů a, což je současně počet volání funkce ZvetsiA().Zřejměplatí p n.čísliceřádu0vzápisučíslaseměnípřikaždém volánífunkce,tedypři pvoláních.čísliceřádu1seměnípřikaždémdruhémvolání funkce, tedy nejvýše při p/2 voláních. Obecně, číslice řádu i se mění nejvýše při p/2 i voláníchfunkce.řádnejvyššíčíslicevpje log 2 p.celkovýpočetzměn binárních číslic, které provede funkce ZvetsiA(), je tedy nejvýše log 2 p i=0 p 2 i i=0 p 2i=2p 2n Jedna změna číslice vyžaduje nejvýše jedno opakování každého z cyklů ve funkci ZvetsiA(). Tedy celkový počet kroků, které provede tato funkce, je O(n). Stejný
20 Formální jazyky a automaty, P. Savický, 6. leden while(w A =1)do W A :=0 vpravo(w A ) od W A :=1 while(w A )do vlevo(w A ) od vpravo(w A ) Obrázek 7: Program pro funkci ZvetsiA(). odhad platí i pro funkce ZvetsiB() a ZvetsiC(). Součet počtu kroků provedených vtěchtofunkcíchjetedynejvýše O(n)acelkovýodhadčasujetedytaké O(n). QED. Věta4.3Každý TS, který rozpoznává některý z jazyků {a i b i i 0} a {a i b i c i i 0},máprostorovousložitostΩ(log n),kde njedélkavstupníhoslova. Důkaz. NechťTS Mrozpoznávájazyk {a l b l l 0}amá kpracovníchpásek, jejichžabecedajeγ.uvažujmevýpočetproslovo a l b l,kde l 1,kterývyužívá prostor s.ukážemesporem,žeplatí l Q Γ ks. Předpokládejme,že l > Q Γ ks.nechť t 1 jeposledníkrokvýpočtu,kdyse čtecíhlavanacházínasymbolu x 1 vstupníhoslova.pro2 i l,nechť t i jeprvní kroknásledujícízakrokem t 1,kdyječtecíhlavanasymbolu x i vstupníhoslova. Pro i=1,...,l,nechť r i jedvojicetvořenástavemřídícíjednotkyaobsahem prvních spolínavšechpracovníchpáskáchvkroku t i.početvšechtakových dvojicje Q Γ ks.protože l > Q Γ ks,existují i < jtak,že r i = r j.výpočet proslovo a l b l jepřijímající.sestrojímepřijímajícívýpočetproslovo a l+j i b l tak, žeaždokroku t j postupujestejnějakopůvodnívýpočetadalšíčástvýpočtu probíhástejnějakopůvodnívýpočetodkroku t i dokonce.tentovýpočetjetaké přijímající,cožjespor,protože l+j i l. Platítedy Q Γ ks l.protože l=n/2,platí kslog Γ +log Q log(n/2) atedy QED. s log(n/2) log Q klog Γ =Ω(log n)
21 Formální jazyky a automaty, P. Savický, 6. leden while R= do if Z V then vybratlibovolně αtak,že Z αjepravidlo G pop() push(α) elif Z Σthen if H= Zthen pop() vpravo(h) else [platí H Σ \ {Z}nebo H= ] R:=0 fi else [platí Z= ] if H= then R:=1 else [platí H Σ] R:=0 fi od Obrázek 8: Pseudokód pro nedeterministický zásobníkový automat rozpoznávající jazyk generovaný bezkontextovou gramatikou. Proměnná R určuje po skončení výpočtupřijetí(r=1)nebozamítnutí(r=0)slovadanýmvýpočtem. 4.5 Nedeterministický zásobníkový automat Popíšeme nedeterministický zásobníkový automat, který má řídící jednotku se stavy {q 0, q +, q },jedenzásobníkavstupnípásku,kdejevstupníslovozapsáno počínajeprvnímpolempáskyahlavanavstupnípáscesemůževjednomkroku posunout vpravo nebo zůstat na místě. Tento typ automatu je postačující pro rozpoznávání slov generovaných libovolnou bezkontextovou gramatikou. Obecný nedeterministický zásobníkový automat může mít libovolně velký konečný počet stavů, které spoluurčují posloupnost akcí automatu. Třída rozpoznávaných jazyků se tím nezmění, ale rozpoznávání slov může být v některých případech efektivnější díky menšímu nedeterminismu. Postup rozpoznávání jazyka generovaného libovolnou bezkontextovou gramatikou G(přiobvyklémvýznamuΣ, V, S)lzepopsatpomocípseudokóduvObrázku 8, kde je použito následující značení Proměnná Rjeinicializovanájako aposkončenívýpočtuobsahuje1, pokud je slovo daným výpočtem přijato, nebo 0, pokud je slovo daným výpočtem zamítnuto. Proměnná H reprezentuje čtený symbol na vstupní pásce,
22 Formální jazyky a automaty, P. Savický, 6. leden symbol Z Z V množina akcí v závislosti na symbolu H akcetvaru[pop(),push(α), q 0 ]provšechna αtaková, že Z αjepravidlem G Z Σ pokud H= Z,pak[pop(),vpravo(H), q 0 ], avopačnémpřípadě[q ] Z= pokud H=,pak[q + ], avopačnémpřípadě[q ] Obrázek 9: Popis přechodové funkce nedeterministického zásobníkového automatu rozpoznávající jazyk generovaný bezkontextovou gramatikou G. Proměnná Z reprezentuje symbol na vrcholu zásobníku, Funkce pop() odstraní symbol z vrcholu zásobníku, Funkce push(α) vloží do zásobníku slovo α, Funkce vpravo(h) posune čtecí hlavu na vstupní pásce o jeden symbol vpravo. Výběrpravidla Z α,kteréurčí,kterýmslovem αjenahrazenvrcholzásobníku, pokud Z V, je nedeterministický. To znamená, že výpočet tohoto automatu pro totéž vstupní slovo může probíhat více různými způsoby. Slovo je přijato, pokud existuje výpočet, který jej přijme. Program na Obrázku 8 lze převést na popis automatu s přechodovou funkcí. Protože každé opakování cyklu v programu lze reprezentovat jedním krokem podle přechodové funkce, není nutné přidávat stavy, které kódují, který příkaz je právě prováděn,amnožinustavůvýslednéhoautomatulzezvolit Q={q 0, q +, q }.Stav řídící jednotky automatu v každém okamžiku výpočtu odpovídá hodnotě proměnné R v programu ve stejném okamžiku výpočtu podle vzájemného přiřazení q 0, q + 1, q 0.PřechodováfunkceautomatujepopsánanaObrázku9, kdejeprokaždýmožnýsymbol Znavrcholuzásobníkuakaždýmožnýsymbol Hčtenýnavstupnípásce,tedypro H Σ { },popsánamnožinaakcí f(z, H). Každá akce je zapsána jako seznam instrukcí v hranatých závorkách. Pokud je Z V,závisípočetmožnýchakcínagramaticeamůžebýtvětšínežjedna.V ostatních případech je akce určena jednoznačně. Věta 4.4 Pro libovolnou bezkontextovou gramatiku G rozpoznává nedeterministický zásobníkový automat popsaný v Obrázku 8 a, ekvivalentně, v Obrázku 9, jazyk L(G). Důkaz. Výpočet automatu pro w simuluje některou levou derivaci slova w v G. Prodůkaztohototvrzenídoplnímevětnéformyvlevéderivacioznak,který odděluje prefix složený z terminálních symbolů od zbytku větné formy. Prefix bude obsahovat terminální symboly vlevo od všech neterminálů, kromě některých terminálů, které byly vygenerovány naposledy použitým pravidlem gramatiky. Přesná definice je následující. Výchozí doplněná větná forma je S. Doplněná levá
23 Formální jazyky a automaty, P. Savický, 6. leden derivace může neterminál nahradit podle pravidla gramatiky pouze v případě, že bezprostředně vlevo od něj je symbol. Pokud původní derivace obsahuje krok uaβ uαβ,pakdoplněnáderivaceobsahujekrok u Aβ u αβ.kromě toho, doplněná levá derivace obsahuje kroky, které přesunou symbol přes jeden terminální symbol vpravo, tedy kroky tvaru u xα ux α pro x Σ. Doplněná levá derivace odvozuje w, pokud její poslední větná forma je slovo w. Dálejepotřebaukázat,žeprokaždé w Σ platí w L(G) právě tehdy, když je odvozeno některou doplněnou levou derivací. Přijímající výpočet automatu pro w existuje právě tehdy, když je w odvozeno některou doplněnou levou derivací. K důkazu prvního tvrzení je potřeba popsat konstrukce, které převádí levou derivaci na doplněnou levou derivaci pro stejné slovo a naopak. Pokud vycházíme z levé derivace, doplníme symbol v každé větné formě před první neterminál nebo jako poslední symbol, pokud větná forma neterminál neobsahuje. Pak je potřeba přidat kroky, které přesouvají symbol přes terminály. Opačným směrem stačí vypustitsymbol zkaždédoplněnévětnéformyavypustitkroky,kdysetakto získané větné formy opakují. Pro důkaz druhého tvrzení je potřeba ukázat konstrukce, které přijímající výpočet automatu převedou na doplněnou levou derivaci pro stejné slovo a naopak. Kroky automatu, kdy je na vrcholu zásobníku neterminál, odpovídají krokům derivace, které rozvíjí neterminál bezprostředně za symbolem. Kroky, kdy je na vrcholu zásobníku terminál, odpovídají krokům derivace, které přesouvají symbol přes jeden terminál. Přijímající výpočet končí s prázdným zásobníkem a po přečtení celého slova, tedy získáme doplněnou větnou formu tvaru w. Konstrukce přijímajícího výpočtu na základě doplněné levé derivace se odvodí podobně, protože výsledek konstrukce je v obou směrech jednoznačně určen jejím vstupem. QED.
24 Formální jazyky a automaty, P. Savický, 6. leden Regulární jazyky Regulární jazyky byly původně definovány jako nejmenší třída jazyků, která obsahuje konečné jazyky a je uzavřena na operace zřetězení a iterace. Tomuto způsobu odvození jazyka odpovídají regulární výrazy. Stejnou třídu jazyků lze popsat také pomocí konečných automatů a nedeterministických konečných automatů s ε-přechody, které budeme nazývat přechodový diagram. Konečný automat lze popsat jako jednopáskový Turingův stroj, jehož vstupní páskajepouzepročteníavkaždémkrokusečtecíhlavaposuneojednopole vpravo. Lze ukázat, že jednopáskový TS, jehož páska je pouze pro čtení, ale čtecí hlava se může pohybovat oběma směry, rozpoznává také pouze regulární jazyky. Tyto jazyky lze tedy také charakterizovat jako jazyky rozpoznatelné TS s prostorem O(1), tedy s konstantním prostorem, který nezávisí na délce vstupního slova. 5.1 Konečné automaty Konečný automat postupně čte ze vstupu jednotlivé symboly vstupního slova a po přečtení každého symbolu provede určitý výpočet s omezenou pamětí. Obsah této konečné paměti budeme nazývat stav. Požadavek, že výpočet probíhá s omezenou pamětí, budeme formalizovat tím, že množina stavů, které mohou při výpočtu nastat, je konečná. Výstup automatu závisí na stavu, do kterého automat přejde po přečtení celého slova. V základní formě konečného automatu je výstupem pouze informace, zda je slovo přijato. Lze uvažovat variantu, že výsledný stav poskytuje i další informace. Definice 5.1 Konečný automat je určen následujícími parametry: Σ vstupní abeceda Q konečná množina stavů δ:q Σ Q přechodováfunkce q 0 Q počátečnístav F Q množina přijímajících stavů. Výpočet konečného automatu probíhá následovně. Na začátku výpočtu se automatnacházívestavu q 0 apostupněpřijímájednotlivésymbolyvstupního slova. Po přijetí každého z nich určí svůj následující stav pomocí přechodové funkce.pokudjenavstupuslovo w=a 1 a 2...a n Σ,pakautomatpostupně prochází stavy q 0, q 1 = δ(q 0, a 1 ), q 2 = δ(q 1, a 2 ),...,q n = δ(q n 1, a n ) aslovo wjepřijato,pokud q n F.Proformalizacitohotopostupupoužijeme zobecněnoupřechodovoufunkci δ : Q Σ Q,kteráprolibovolnýstav q Q, slovo w Σ asymbol a Σsplňuje
25 Formální jazyky a automaty, P. Savický, 6. leden δ (q, ε)=q δ (q, wa)=δ(δ (q, w), a) Definice5.2Konečnýautomatpřijímáslovo w Σ,pokud δ (q 0, w) F. Jazyk všech slov, která přijímá konečný automat M, budeme značit L(M). 5.2 Dělitelnost čísel v obecné číselné soustavě Uvažujmečíselnousoustavusezákladem b 2ačíslicemi {0,...,b 1}.Množinu číslicbudemeprojednoduchostztotožňovatsmnožinou Z b.ukážemekonečné automatyprorozpoznáváníčíselvabecedě Z b,kterájsoudělitelnádanýmčíslem m 1,přičteníčísliczlevadopravaazpravadoleva.Vstupníčíslobudemev oboupřípadechzapisovatjako x n x n 1... x 0 ajehohodnotaje val(x n x n 1...x 0 )= n x i b i i=0 Při čtení zápisu čísla zleva doprava, tedy od nejvyšších řádů, lze použít automatsmnožinoustavů Q=Z m,počátečnímstavem q 0 =0,množinoupřijímajícíchstavů F= {0}aspřechodovoufunkcí δ: Z m Z b Z m definovanou následovně δ(r, x)=(br+ x)mod m Popřečtenípočátečníhoúsekučísla x n...x i+1,tedypředčtenímčíslice x i,je stav roven zbytku modulo m čísla tvořeného přečtenými číslicemi, tedy r = val(x n...x i+1 )mod m. Při čtení zápisu čísla zprava doleva, tedy od nejnižších řádů, lze použít automatsmnožinoustavů Q=Z m Z m,počátečnímstavem q 0 =(1,0),množinou přijímajícíchstavů F= Z m {0}aspřechodovoufunkcí δ:(z m Z m ) Z b (Z m Z m )definovanounásledovně δ((r 1, r 2 ), x)=((br 1 )mod m,(r 1 x+r 2 )mod m) Stav(r 1, r 2 )popřečteníčíslic x i 1,...,x 0,tedypředčtenímčíslice x i,je (r 1, r 2 )=(b i mod m,val(x i 1...x 0 )mod m) 5.3 Rozpoznávání čísel v programu Uvedeme příklad zobecněného konečného automatu, který rozlišuje čísla ve zdrojovém textu programu. Zobecnění spočívá v tom, že nerozlišujeme pouze přijímající a zamítající stavy, ale přijímající stavy jsou ještě rozlišeny podle typu čísla, které odpovídá dosud přečteným symbolům ze vstupu. Budeme uvažovat čísla typu integer, čísla typu real bez exponentu a s exponentem. Pro jednoduchost
doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je
28 [181105-1236 ] 2.7 Další uzávěrové vlastnosti třídy regulárních jazyků Z předchozích přednášek víme, že třída regulárních jazyků je uzavřena na sjednocení, průnik, doplněk, zřetězení, Kleeneho operaci
Turingovy stroje. Teoretická informatika Tomáš Foltýnek
Turingovy stroje Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz Teoretická informatika strana 2 Opakování z minulé přednášky Jaké znáte algebraické struktury s jednou operací? Co je to okruh,
Formální jazyky a automaty Petr Šimeček
Formální jazyky a automaty Petr Šimeček Úvod Formální jazyky a automaty jsou základním kamenem teoretické informatiky. Na počátku se zmíníme o Chomského klasifikaci gramatik, nástroje, který lze aplikovat
AUTOMATY A GRAMATIKY. Pavel Surynek. Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace
AUTOMATY A 11 GRAMATIKY Pavel Surynek Univerzita Karlova v Praze Matematicko-fyzikální fakulta Katedra teoretické informatiky a matematické logiky Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně
Množinu všech slov nad abecedou Σ značíme Σ * Množinu všech neprázdných slov Σ + Jazyk nad abecedou Σ je libovolná množina slov nad Σ
Abecedou se rozumí libovolná konečná množina Σ. Prvky abecedy nazýváme znaky (symboly) Slovo (řetězec) v nad abecedou Σ je libovolná konečná posloupnost znaků této abecedy. Prázdné posloupnosti znaků odpovídá
Formální jazyky a gramatiky Teorie programovacích jazyků
Formální jazyky a gramatiky Teorie programovacích jazyků doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Připomenutí základních pojmů ABECEDA jazyk je libovolná podmnožina
Kapitola 6. LL gramatiky. 6.1 Definice LL(k) gramatik. Definice 6.3. Necht G = (N, Σ, P, S) je CFG, k 1 je celé číslo.
Kapitola 6 LL gramatiky 6.1 Definice LL(k) gramatik Definice 6.1. Necht G = (N, Σ, P, S) je CFG, k 1 je celé číslo. Definujme funkci FIRST G k : (N Σ) + P({w Σ w k}) předpisem FIRST G k (α) = {w Σ (α w
Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:
IB102 Automaty, gramatiky a složitost, 6. 10. 2014 1/29 Regulární výrazy Definice 2.58. Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto: 1 ε, a a pro každé a
Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů
BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 2/29 Hodnocení předmětu BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 4/29 Automaty a gramatiky(bi-aag) 1. Základní pojmy Jan Holub Katedra teoretické
Naproti tomu gramatika je vlastně soupis pravidel, jak
1 Kapitola 1 Úvod V přednášce se zaměříme hlavně na konečný popis obecně nekonečných množin řetězců symbolů dané množiny A. Prvkům množiny A budeme říkat písmena, řetězcům (konečným posloupnostem) písmen
Bezkontextové jazyky. Bezkontextové jazyky 1 p.1/39
Bezkontextové jazyky Bezkontextové jazyky 1 p.1/39 Jazyky typu 2 Definice 4.1 Gramatika G = (N, Σ, P, S) si nazývá bezkontextovou gramatikou, jestliže všechna pravidla z P mají tvar A α, A N, α (N Σ) Lemma
Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu / 43
Zásobníkové automaty Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 1/ 43 Zásobníkový automat Chtěli bychom rozpoznávat jazyk L = {a i b i i 1} Snažíme se navrhnout zařízení (podobné konečným
Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,
[161014-1204 ] 11 2.1.35 Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i, kde i = 0, 1,..., takto: p 0 q právě tehdy, když bud p, q F nebo p, q F. Dokud i+1 i konstruujeme p
Vztah jazyků Chomskeho hierarchie a jazyků TS
Vztah jazyků Chomskeho hierarchie a jazyků TS Jan Konečný; (přednáší Lukáš Havrlant) 15. října 2013 Jan Konečný; (přednáší Lukáš Havrlant) Chomskeho hierarchie a jazyky TS 15. října 2013 1 / 23 Rychlé
Jednoznačné a nejednoznačné gramatiky
BI-AAG (2011/2012) J. Holub: 11. Bezkontextové gramatiky p. 2/36 Jednoznačné a nejednoznačné gramatiky BI-AAG (2011/2012) J. Holub: 11. Bezkontextové gramatiky p. 4/36 Automaty a gramatiky(bi-aag) 11.
Výpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory
Plán přednášky Výpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory Obecný algoritmus pro parsování bezkontextových jazyků dynamické programování 1 Zásobníkový
AUTOMATY A GRAMATIKY
AUTOMATY A 1 GRAMATIKY Pavel Surynek Univerzita Karlova v Praze Matematicko-fyzikální fakulta Katedra teoretické informatiky a matematické logiky Stručný přehled přednášky Automaty Formální jazyky, operace
Základy teoretické informatiky Formální jazyky a automaty
Základy teoretické informatiky Formální jazyky a automaty Petr Osička KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI Outline Literatura Obsah J.E. Hopcroft, R. Motwani, J.D. Ullman Introduction to
NP-úplnost problému SAT
Problém SAT je definován následovně: SAT(splnitelnost booleovských formulí) Vstup: Booleovská formule ϕ. Otázka: Je ϕ splnitelná? Příklad: Formule ϕ 1 =x 1 ( x 2 x 3 )jesplnitelná: např.přiohodnocení ν,kde[x
Bezkontextové jazyky 2/3. Bezkontextové jazyky 2 p.1/27
Bezkontextové jazyky 2/3 Bezkontextové jazyky 2 p.1/27 Transformace bezkontextových gramatik Bezkontextové jazyky 2 p.2/27 Ekvivalentní gramatiky Definice 6.1 Necht G 1 a G 2 jsou gramatiky libovolného
Modely Herbrandovské interpretace
Modely Herbrandovské interpretace Petr Štěpánek S využitím materialu Krysztofa R. Apta 2006 Logické programování 8 1 Uvedli jsme termové interpretace a termové modely pro logické programy a také nejmenší
Regulární výrazy. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března / 20
Regulární výrazy M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 1/ 20 Regulární výrazy Jako například v aritmetice můžeme pomocí operátorů + a vytvářet výrazy jako (5+3)
Automaty a gramatiky. Uzávěrové vlastnosti v kostce R J BKJ DBKJ. Roman Barták, KTIML. Kvocienty s regulárním jazykem
11 Automaty a gramatiky Roman Barták, KTIML bartak@ktiml.mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Uzávěrové vlastnosti v kostce Sjednocení Průnik Průnik s RJ Doplněk Substituce/ homomorfismus Inverzní
3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA
Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI
Vztah teorie vyčíslitelnosti a teorie složitosti. IB102 Automaty, gramatiky a složitost, /31
Vztah teorie vyčíslitelnosti a teorie složitosti IB102 Automaty, gramatiky a složitost, 2. 12. 2013 1/31 IB102 Automaty, gramatiky a složitost, 2. 12. 2013 2/31 Časová složitost algoritmu počet kroků výpočtu
Vlastnosti regulárních jazyků
Vlastnosti regulárních jazyků Podobně jako u dalších tříd jazyků budeme nyní zkoumat následující vlastnosti regulárních jazyků: vlastnosti strukturální, vlastnosti uzávěrové a rozhodnutelné problémy pro
Postův korespondenční problém. Meze rozhodnutelnosti 2 p.1/13
Postův korespondenční problém Meze rozhodnutelnosti 2 p.1/13 Postův korespondenční problém Definice 10.1 Postův systém nad abecedou Σ je dán neprázdným seznamem S dvojic neprázdných řetězců nadσ, S = (α
Fakulta informačních technologií. Teoretická informatika
Vysoké učení technické v Brně Fakulta informačních technologií Teoretická informatika Třetí úkol 2 Jan Trávníček . Tato úloha je řešena Turingovým strojem, který je zobrazen na obrázku, který si můžeme
Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace
RELACE Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace slouží k vyjádření vztahů mezi prvky nějakých množin. Vztahy mohou být různé povahy. Patří sem vztah býti potomkem,
Pumping lemma - podstata problému. Automaty a gramatiky(bi-aag) Pumping lemma - problem resolution. Pumping lemma - podstata problému
BI-AAG (2011/2012) J. Holub: 10. Vlastnosti regulárních jazyků p. 2/22 Pumping lemma - podstata problému BI-AAG (2011/2012) J. Holub: 10. Vlastnosti regulárních jazyků p. 4/22 Automaty a gramatiky(bi-aag)
Složitost Filip Hlásek
Složitost Filip Hlásek Abstrakt. Příspěvek popisuje dva základní koncepty teoretické informatiky, Turingovy stroje a složitost. Kromě definic důležitých pojmů uvádí také několik souvisejících tvrzení,
Dijkstrův algoritmus
Dijkstrův algoritmus Hledání nejkratší cesty v nezáporně hranově ohodnoceném grafu Necht je dán orientovaný graf G = (V, H) a funkce, která každé hraně h = (u, v) H přiřadí nezáporné reálné číslo označované
2 Formální jazyky a gramatiky
2 Formální jazyky a gramatiky 2.1 Úvod Teorie formálních gramatik a jazyků je důležitou součástí informatiky. Její využití je hlavně v oblasti tvorby překladačů, kompilátorů. Vznik teorie se datuje přibližně
Matematická analýza 1
Matematická analýza 1 ZS 2019-20 Miroslav Zelený 1. Logika, množiny a základní číselné obory 2. Limita posloupnosti 3. Limita a spojitost funkce 4. Elementární funkce 5. Derivace 6. Taylorův polynom Návod
V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti
Kapitola 5 Vektorové prostory V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti operací sčítání a násobení
Výroková a predikátová logika - V
Výroková a predikátová logika - V Petr Gregor KTIML MFF UK ZS 2015/2016 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - V ZS 2015/2016 1 / 21 Dokazovací systémy VL Hilbertovský kalkul Hilbertovský
Univerzální Turingův stroj a Nedeterministický Turingův stroj
27 Kapitola 4 Univerzální Turingův stroj a Nedeterministický Turingův stroj 4.1 Nedeterministický TS Obdobně jako u konečných automatů zavedeme nedeterminismus. Definice 14. Nedeterministický Turingův
Výroková a predikátová logika - II
Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2015/2016 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2015/2016 1 / 18 Základní syntax Jazyk Výroková logika je logikou
Úvod do informatiky. Miroslav Kolařík
Úvod do informatiky přednáška desátá Miroslav Kolařík Zpracováno dle R. Bělohlávek, V. Vychodil: Diskrétní matematika 2, http://phoenix.inf.upol.cz/esf/ucebni/dm2.pdf P. Martinek: Základy teoretické informatiky,
Výroková a predikátová logika - II
Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2017/2018 1 / 17 Předběžnosti Základní pojmy n-ární relace a funkce
Automaty a gramatiky(bi-aag) Formální překlady. 5. Překladové konečné automaty. h(ε) = ε, h(xa) = h(x)h(a), x, x T, a T.
BI-AAG (2011/2012) J. Holub: 5. Překladové konečné automaty p. 2/41 Formální překlady BI-AAG (2011/2012) J. Holub: 5. Překladové konečné automaty p. 4/41 Automaty a gramatiky(bi-aag) 5. Překladové konečné
PŘEDNÁŠKA 2 POSLOUPNOSTI
PŘEDNÁŠKA 2 POSLOUPNOSTI 2.1 Zobrazení 2 Definice 1. Uvažujme libovolné neprázdné množiny A, B. Zobrazení množiny A do množiny B je definováno jako množina F uspořádaných dvojic (x, y A B, kde ke každému
Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:
3 Maticový počet 3.1 Zavedení pojmu matice Maticí typu (m, n, kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru: a 11 a 12... a 1k... a 1n a 21 a 22...
Výpočetní složitost I
Výpočetní složitost I prooborlogikanaffuk Petr Savický 1 Úvod Složitostí algoritmické úlohy se rozumí především její časová a paměťová náročnost při řešení na počítači. Časová náročnost se měří počtem
Automaty a gramatiky
Automaty a gramatiky Roman Barták, KTIML bartak@ktiml.mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Co bylo minule Úvod do formálních gramatik produkční systémy generativní gramatika G=(V N,V T,,P) G =
Vlastnosti Derivační strom Metody Metoda shora dolů Metoda zdola nahoru Pomocné množiny. Syntaktická analýza. Metody a nástroje syntaktické analýzy
Metody a nástroje syntaktické analýzy Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 14. října 2011 Vlastnosti syntaktické analýzy Úkoly syntaktické
Výroková a predikátová logika - III
Výroková a predikátová logika - III Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - III ZS 2017/2018 1 / 16 2-SAT 2-SAT Výrok je v k-cnf, je-li v CNF a
0. ÚVOD - matematické symboly, značení,
0. ÚVOD - matematické symboly, značení, číselné množiny Výroky Výrok je každé sdělení, u kterého lze jednoznačně rozhodnout, zda je či není pravdivé. Každému výroku lze proto přiřadit jedinou pravdivostní
Výroková a predikátová logika - II
Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2013/2014 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2013/2014 1 / 20 Základní syntax Jazyk Výroková logika je logikou
Kapitola 1. Úvod. 1.1 Značení. 1.2 Výroky - opakování. N... přirozená čísla (1, 2, 3,...). Q... racionální čísla ( p, kde p Z a q N) R...
Kapitola 1 Úvod 1.1 Značení N... přirozená čísla (1, 2, 3,...). Z... celá čísla ( 3, 2, 1, 0, 1, 2,...). Q... racionální čísla ( p, kde p Z a q N) q R... reálná čísla C... komplexní čísla 1.2 Výroky -
5 Orientované grafy, Toky v sítích
Petr Hliněný, FI MU Brno, 205 / 9 FI: IB000: Toky v sítích 5 Orientované grafy, Toky v sítích Nyní se budeme zabývat typem sít ových úloh, ve kterých není podstatná délka hran a spojení, nýbž jejich propustnost
IV. Základní pojmy matematické analýzy IV.1. Rozšíření množiny reálných čísel
Matematická analýza IV. Základní pojmy matematické analýzy IV.1. Rozšíření množiny reálných čísel na množině R je definováno: velikost (absolutní hodnota), uspořádání, aritmetické operace; znázornění:
Formální systém výrokové logiky
Formální systém výrokové logiky 1.Jazyk výrokové logiky Nechť P = {p,q,r, } je neprázdná množina symbolů, které nazýváme prvotní formule. Symboly jazyka L P výrokové logiky jsou : a) prvky množiny P, b)
Riemannův určitý integrál
Riemannův určitý integrál 1. Motivační příklad Příklad (Motivační příklad pro zavedení Riemannova integrálu). Nechť,. Vypočtěme obsah vybarvené oblasti ohraničené grafem funkce, osou a svislými přímkami
1 Báze a dimenze vektorového prostoru 1
1 Báze a dimenze vektorového prostoru 1 Báze a dimenze vektorového prostoru 1 2 Aritmetické vektorové prostory 7 3 Eukleidovské vektorové prostory 9 Levá vnější operace Definice 5.1 Necht A B. Levou vnější
Čísla značí použité pravidlo, šipka směr postupu Analýza shora. Analýza zdola A 2 B 3 B * C 2 C ( A ) 1 a A + B. A Derivace zleva:
1) Syntaktická analýza shora a zdola, derivační strom, kanonická derivace ezkontextová gramatika gramatika typu 2 Nechť G = je gramatika typu 1. Řekneme, že je gramatikou typu 2, platí-li: y
PŘEDNÁŠKA 7 Kongruence svazů
PŘEDNÁŠKA 7 Kongruence svazů PAVEL RŮŽIČKA Abstrakt. Definujeme svazové kongruence a ukážeme jak pro vhodné binární relace svazu ověřit, že se jedná o svazové kongruence. Popíšeme svaz Con(A) kongruencí
Syntaxí řízený překlad
Syntaxí řízený překlad Překladový automat Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 27. listopadu 2008 Zobecněný překladový automat Překladový automat
Matematická logika. Miroslav Kolařík
Matematická logika přednáška třetí Miroslav Kolařík Zpracováno dle textu R. Bělohlávka: Matematická logika poznámky k přednáškám, 2004. a dle učebního textu R. Bělohlávka a V. Vychodila: Diskrétní matematika
Každé formuli výrokového počtu přiřadíme hodnotu 0, půjde-li o formuli nepravdivou, a hodnotu 1, půjde-li. α neplatí. β je nutná podmínka pro α
1. JAZYK ATEATIKY 1.1 nožiny nožina je souhrn objektů určitých vlastností, které chápeme jako celek. ZNAČENÍ. x A x A θ A = { { a, b a A = B A B 0, 1 2 a, a,..., a n x patří do množiny A x nepatří do množiny
Predik atov a logika - pˇredn aˇska () Predik atov a logika - pˇredn aˇska / 16
Predikátová logika - přednáška 3 6. 1. 2015 () Predikátová logika - přednáška 3 6. 1. 2015 1 / 16 Věta (o dedukci) Bud L jazyk, T teorie pro L, ϕ L-sentence a ψ L-formule. Pak Věta (o kompaktnosti) T ϕ
Kapitola 11. Vzdálenost v grafech. 11.1 Matice sousednosti a počty sledů
Kapitola 11 Vzdálenost v grafech V každém grafu lze přirozeným způsobem definovat vzdálenost libovolné dvojice vrcholů. Hlavním výsledkem této kapitoly je překvapivé tvrzení, podle kterého lze vzdálenosti
Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2014
Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 204 Zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia
/1: Teoretická informatika(ti) přednáška 4
456-330/1: Teoretická informatika(ti) přednáška 4 prof. RNDr Petr Jančar, CSc. katedra informatiky FI VŠB-TUO www.cs.vsb.cz/jancar LS 2009/2010 Petr Jančar (FI VŠB-TU) Teoretická informatika(ti) LS 2009/2010
Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice
Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice Vektorové podprostory K množina reálných nebo komplexních čísel, U vektorový prostor nad K. Lineární kombinace vektorů u 1, u 2,...,u
Množiny, relace, zobrazení
Množiny, relace, zobrazení Množiny Množinou rozumíme každý soubor určitých objektů shrnutých v jeden celek. Zmíněné objekty pak nazýváme prvky dané množiny. Pojem množina je tedy synonymem pojmů typu soubor,
Matematická logika. Miroslav Kolařík
Matematická logika přednáška šestá Miroslav Kolařík Zpracováno dle textu R. Bělohlávka: Matematická logika poznámky k přednáškám, 2004. a dle učebního textu R. Bělohlávka a V. Vychodila: Diskrétní matematika
Výroková a predikátová logika - IV
Výroková a predikátová logika - IV Petr Gregor KTIML MFF UK ZS 2018/2019 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - IV ZS 2018/2019 1 / 17 Tablo metoda Tablo Tablo - příklady F (((p q)
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LL SYNTAKTICKÁ ANALÝZA DOKONČENÍ, IMPLEMENTACE.
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LL SYNAKICKÁ ANALÝZA DOKONČENÍ, IMPLEMENACE. VLASNOSI LL GRAMAIK A JAZYKŮ. 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Gramatika
Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace
Vektory a matice Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Vektory Základní pojmy a operace Lineární závislost a nezávislost vektorů 2 Matice Základní pojmy, druhy matic Operace s maticemi
PQ-stromy a rozpoznávání intervalových grafů v lineárním čase
-stromy a rozpoznávání intervalových grafů v lineárním čase ermutace s předepsanými intervaly Označme [n] množinu {1, 2,..., n}. Mějme permutaci π = π 1, π 2,..., π n množiny [n]. Řekneme, že množina S
PŘEDNÁŠKA 5 Konjuktivně disjunktivní termy, konečné distributivní svazy
PŘEDNÁŠKA 5 Konjuktivně disjunktivní termy, konečné distributivní svazy PAVEL RŮŽIČKA Abstrakt. Ukážeme, že každý prvek distributivního svazu odpovídá termu v konjuktivně-disjunktivním (resp. disjunktivně-konjunktivním)
Zásobníkový automat. SlovoaaaabbbbpatřídojazykaL={a i b i i 1} a a a a b b b b
ChtělibychomrozpoznávatjazykL={a i b i i 1} Snažíme se navrhnout zařízení(podobné konečným automatům), které přečte slovo, a sdělí nám, zda toto slovo patřídojazykalčine. Při čtení a-ček si musíme pamatovat
ZÁKLADY TEORETICKÉ INFORMATIKY
KATEDRA INFORMATIKY PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITA PALACKÉHO ZÁKLADY TEORETICKÉ INFORMATIKY PAVEL MARTINEK VÝVOJ TOHOTO UČEBNÍHO TEXTU JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM A STÁTNÍM ROZPOČTEM
MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]
MATICE Matice typu m/n nad tělesem T je soubor m n prvků z tělesa T uspořádaných do m řádků a n sloupců: a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij] a m1 a m2 a mn Prvek a i,j je prvek matice A na místě
Limita a spojitost funkce a zobrazení jedné reálné proměnné
Přednáška 4 Limita a spojitost funkce a zobrazení jedné reálné proměnné V několika následujících přednáškách budeme studovat zobrazení jedné reálné proměnné f : X Y, kde X R a Y R k. Protože pro každé
Matematika B101MA1, B101MA2
Matematika B101MA1, B101MA2 Zařazení předmětu: povinný předmět 1.ročníku bc studia 2 semestry Rozsah předmětu: prezenční studium 2 + 2 kombinované studium 16 + 0 / semestr Zakončení předmětu: ZS zápočet
Poznámka. Je-li f zobrazení, ve kterém potřebujeme zdůraznit proměnnou, píšeme f(x) (resp. f(y), resp. f(t)) je zobrazení místo f je zobrazení.
2. ZOBRAZENÍ A FUNKCE 2.1 Zobrazení 2. 1. 1 Definice: Nechť A a B jsou množiny. Řekneme že f je zobrazení množiny A do množiny B jestliže (i) f A B (ii) ke každému z množiny A eistuje právě jedno y z množiny
Pro každé formule α, β, γ, δ platí: Pro každé formule α, β, γ platí: Poznámka: Platí právě tehdy, když je tautologie.
Zpracoval: hypspave@fel.cvut.cz 5. Výroková logika, formule výrokové logiky a jejich pravdivostní ohodnocení, splnitelné formule, tautologie, kontradikce, sémantický důsledek, tautologicky ekvivalentní
Programovací jazyk Pascal
Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce
10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo
0. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo (PEF PaA) Petr Gurka aktualizováno 9. prosince 202 Obsah Základní pojmy. Motivace.................................2 Aritmetický vektorový
Zavedení a vlastnosti reálných čísel
Zavedení a vlastnosti reálných čísel jsou základním kamenem matematické analýzy. Konstrukce reálných čísel sice není náplní matematické analýzy, ale množina reálných čísel R je pro matematickou analýzu
Definice 7.2. Nejmenší přirozené číslo k, pro které je graf G k-obarvitelný, se nazývá chromatické číslo (barevnost) grafu G a značí se χ(g).
7 Barevnost grafu Definice 71 Graf G se nazývá k-obarvitelný, jestliže každému jeho uzlu lze přiřadit jednu z barev 1 k tak, že žádné dva sousední uzly nemají stejnou barvu Definice 72 Nejmenší přirozené
Pravděpodobnost a statistika
Pravděpodobnost a statistika 1 Náhodné pokusy a náhodné jevy Činnostem, jejichž výsledek není jednoznačně určen podmínkami, za kterých probíhají, a které jsou (alespoň teoreticky) neomezeně opakovatelné,
Lineární algebra : Násobení matic a inverzní matice
Lineární algebra : Násobení matic a inverzní matice (8. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 17. března 2014, 12:42 1 2 0.1 Násobení matic Definice 1. Buďte m, n, p N, A
64. ročník matematické olympiády Řešení úloh krajského kola kategorie A
64. ročník matematické olympiády Řešení úloh krajského kola kategorie A 1. Středy stran AC, BC označme postupně, N. Střed kružnice vepsané trojúhelníku KLC označme I. Úvodem poznamenejme, že body K, L
OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA
OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA BAKALÁŘSKÁ PRÁCE 2002 SEDLÁK MARIAN - 1 - OSTRAVSKÁ UNIVERZITA PŘÍRODOVĚDECKÁ FAKULTA KATEDRA INFORMATIKY A POČÍTAČŮ Vizualizace principů výpočtu konečného
Formální jazyky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března / 32
Formální jazyky Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 1/ 32 Abeceda a slovo Definice Abeceda je libovolná neprázdná konečná množina symbolů(znaků). Poznámka: Abeceda se často
Stromové rozklady. Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom,
Stromové rozklady Zdeněk Dvořák 25. října 2017 Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom, β je funkce přiřazující každému vrcholu T podmnožinu vrcholů v G, pro každé
Třídy složitosti P a NP, NP-úplnost
Třídy složitosti P a NP, NP-úplnost Cíle přednášky: 1. Definovat, za jakých okolností můžeme problém považovat za efektivně algoritmicky řešitelný. 2. Charakterizovat určitou skupinu úloh, pro které není
Logické programy Deklarativní interpretace
Logické programy Deklarativní interpretace Petr Štěpánek S využitím materialu Krysztofa R. Apta 2006 Logické programování 7 1 Algebry. (Interpretace termů) Algebra J pro jazyk termů L obsahuje Neprázdnou
Třída PTIME a třída NPTIME. NP-úplnost.
VAS - Přednáška 9 Úvod ke kursu. Složitost algoritmu. Model RAM. Odhady složitosti. Metoda rozděl a panuj. Greedy algoritmy. Metoda dynamického programování. Problémy, třídy složitosti problémů, horní
Bezkontextové gramatiky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 6. května / 49
Bezkontextové gramatiky Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 6. května 2018 1/ 49 Bezkontextové gramatiky Příklad: Chtěli bychom popsat jazyk aritmetických výrazů obsahující výrazy jako například:
Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů?
Kapitola 9 Matice a počet koster Graf (orientovaný i neorientovaný) lze popsat maticí, a to hned několika různými způsoby. Tématem této kapitoly jsou incidenční matice orientovaných grafů a souvislosti
Úvod do lineární algebry
Úvod do lineární algebry 1 Aritmetické vektory Definice 11 Mějme n N a utvořme kartézský součin R n R R R Každou uspořádanou n tici x 1 x 2 x, x n budeme nazývat n rozměrným aritmetickým vektorem Prvky
Greenova funkce pro dvoubodové okrajové úlohy pro obyčejné diferenciální rovnice
Greenova funkce pro dvoubodové okrajové úlohy pro obyčejné diferenciální rovnice Jan Tomeček Tento stručný text si klade za cíl co nejrychlejší uvedení do teorie Greenových funkcí pro obyčejné diferenciální
Substituce. Petr Štěpánek. S využitím materialu Krysztofa R. Apta. Logické programování 2 1
Substituce Petr Štěpánek S využitím materialu Krysztofa R. Apta 2006 Logické programování 2 1 Algebra termů Předpokládáme, že je dán jazyk termů. L, definovali jsme množinu jeho Zavedeme některé užitečné
8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice
9. Lineární diferenciální rovnice 2. řádu Cíle Diferenciální rovnice, v nichž hledaná funkce vystupuje ve druhé či vyšší derivaci, nazýváme diferenciálními rovnicemi druhého a vyššího řádu. Analogicky
Virtuální počítač. Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor. PGS K.
Virtuální počítač Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor Virtuální počítač Překladač Překladač : Zdrojový jazyk Cílový jazyk Analytická část:
Lineární algebra : Násobení matic a inverzní matice
Lineární algebra : Násobení matic a inverzní matice (8. přednáška) František Štampach, Karel Klouda frantisek.stampach@fit.cvut.cz, karel.klouda@fit.cvut.cz Katedra aplikované matematiky Fakulta informačních