Substituce a morfismy jednoduše



Podobné dokumenty
doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je

AUTOMATY A GRAMATIKY. Pavel Surynek. Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace

Formální jazyky a gramatiky Teorie programovacích jazyků

Vlastnosti regulárních jazyků

Bezkontextové jazyky 2/3. Bezkontextové jazyky 2 p.1/27

Teoretická informatika Tomáš Foltýnek Algebra Struktury s jednou operací

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. Teorie programovacích jazyků. Dvourozměrné jazyky a digitální obrazy

Co je to univerzální algebra?

2 Formální jazyky a gramatiky

Vysoké učení technické v Brně Fakulta informačních technologií. Gramatiky nad volnými grupami Petr Blatný

1 Linearní prostory nad komplexními čísly

Formální systém výrokové logiky

Jednoznačné a nejednoznačné gramatiky

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.

PŘEDNÁŠKA 7 Kongruence svazů

Lineární algebra : Násobení matic a inverzní matice

Naproti tomu gramatika je vlastně soupis pravidel, jak

Zavedení a vlastnosti reálných čísel

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace

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:

Syntaxí řízený překlad

Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů

Bezkontextové jazyky. Bezkontextové jazyky 1 p.1/39

Pravděpodobnost a statistika

PŘEDNÁŠKA 5 Konjuktivně disjunktivní termy, konečné distributivní svazy

Automaty a gramatiky. Uzávěrové vlastnosti v kostce R J BKJ DBKJ. Roman Barták, KTIML. Kvocienty s regulárním jazykem

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

Formální jazyky a automaty Petr Šimeček

Greenova funkce pro dvoubodové okrajové úlohy pro obyčejné diferenciální rovnice

Regulární matice. Věnujeme dále pozornost zejména čtvercovým maticím.

Bezkontextové jazyky 3/3. Bezkontextové jazyky 3 p.1/27

Fakulta informačních technologií. Teoretická informatika

Vysoké učení technické v Brně Fakulta informačních technologií. Regulární pologrupy. Semestrální práce do předmětu Algebra, Kombinatorika, Grafy

AUTOMATY A GRAMATIKY

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují

Lineární algebra Kapitola 1 - Základní matematické pojmy

Syntaxí řízený překlad

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru

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 Σ

Výroková logika. Teoretická informatika Tomáš Foltýnek

Matematický ústav Slezské univerzity v Opavě Učební texty k přednášce ALGEBRA I, zimní semestr 2000/2001 Michal Marvan. 2.

Automaty a gramatiky. Roman Barták, KTIML. Chomského normální forma

Teorie množin. Čekají nás základní množinové operace kartézské součiny, relace zobrazení, operace. Teoretické základy informatiky.

Aritmetika s didaktikou I.

Matematická analýza pro informatiky I. Limita posloupnosti (I)

Aplikovaná numerická matematika

Matematika 2 pro PEF PaE

Bezkontextové gramatiky nad volnými grupami

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

Úlohy k procvičování textu o univerzální algebře

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

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

Lineární algebra : Násobení matic a inverzní matice

Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu / 43

Turingovy stroje. Teoretická informatika Tomáš Foltýnek

Vztah jazyků Chomskeho hierarchie a jazyků TS

PŘEDNÁŠKA 2 POSLOUPNOSTI

Základní pojmy matematické logiky

Místo pojmu výroková formule budeme používat zkráceně jen formule. Při jejich zápisu

Množiny, relace, zobrazení

H {{u, v} : u,v U u v }

α β ) právě tehdy, když pro jednotlivé hodnoty platí β1 αn βn. Danou relaci nazýváme relace

Matematická logika. Miroslav Kolařík

Algebraické struktury s jednou binární operací

Pumping lemma - podstata problému. Automaty a gramatiky(bi-aag) Pumping lemma - problem resolution. Pumping lemma - podstata problému

Matematická logika. Rostislav Horčík. horcik

Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,

Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:

Přednáška 3: Limita a spojitost

N Q Z N N N, kde A Bjesymbolprokartézskýsoučinmnožin A, B(tj.množinuvšechuspořádanýchdvojic [a, b],kde a A, b B).Opětprosímpřijmětejakofakt, 1 že

Modely Herbrandovské interpretace

Výpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory

Matice. a m1 a m2... a mn

METRICKÉ A NORMOVANÉ PROSTORY

Logika. 2. Výroková logika. RNDr. Luděk Cienciala, Ph. D.

Predik atov a logika - pˇredn aˇska () Predik atov a logika - pˇredn aˇska / 16

Minimalizace KA - Úvod

Teoretická informatika - Úkol č.1

FREDHOLMOVA ALTERNATIVA

Funkce, elementární funkce.

Doporučené příklady k Teorii množin, LS 2018/2019

Číselné vektory, matice, determinanty

VEKTORY. Obrázek 1: Jediný vektor. Souřadnice vektoru jsou jeho průměty do souřadných os x a y u dvojrozměrného vektoru, AB = B A

Substituce. Petr Štěpánek. S využitím materialu Krysztofa R. Apta. Logické programování 2 1

Matematická logika. Miroslav Kolařík

Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu prof. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.

Reziduovaná zobrazení

OSTRAVSKÁ UNIVERZITA V OSTRAVĚ

Že tuto definici znáte, ale stále přesně nevíte, jak funkci chápat? Ukážeme si konkrétní příklad Definiční obor (množina A)

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

Matematická analýza pro informatiky I.

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Lineární algebra : Polynomy

Množiny. množinové operace jsou mírně odlišné od

PRIMITIVNÍ FUNKCE DEFINICE A MOTIVACE

Lineární zobrazení. V prvním z následujících tvrzení navíc uvidíme, že odtud plynou a jsou tedy pak rovněž splněny podmínky:

Logické programy Deklarativní interpretace

4 Stromy a les. Definice a základní vlastnosti stromů. Kostry grafů a jejich počet.

Vyhledávání v textu. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava

Množiny, základní číselné množiny, množinové operace

Transkript:

Substituce a morfismy jednoduše Petr Zemek 31. července 2010 Abstrakt Tento text si dává za cíl srozumitelně a formou příkladů osvětlit problematiku substitucí a morfismů v rozsahu předmětu Teoretická informatika (TIN) v magisterských studijních oborech na Fakultě informačních technologií v Brně (FIT). Jsou prezentovány dvě verze výkladu: neformální a formální. 1 Úvod Během mého studia na FITu, at již při absolvování předmětu TIN či při přípravě na státní závěrečnou zkoušku jsem nabyl dojmu, že problematika substitucí, morfismů a uzavřeností jazykových tříd vzhledem k těmto operacím nebývá dostatečně pochopena. Tímto textem bych to chtěl napravit, protože si myslím, že po vhodném vysvětlení na tom není nic složitého ;). Výklad a použité konvence budou založeny na studijní opoře do TINu [5], konkrétně sekci 5.5.2 (Uzávěrové vlastnosti bezkontextových jazyků). Budu prezentovat dvě verze. Nejdříve vše popíši neformálně a ilustruji to na příkladech a poté to zformalizuji. Formální verze je založena na knihách [2] (strany 49 51) a [4] (strany 71 a 423 424), jejichž výklad se mi zdá vhodnější, než ten, který je prezentován v opoře k TINu. K pochopení této problematiky bude ovšem stačit porozumět mému neformálnímu výkladu. 2 Substituce a morfismy neformálně Abych neformální část co nejvíce zjednodušil, tak se omezím pouze na bezkontextové gramatiky a bezkontextové jazyky z pohledu TINu na to stejně byl kladen největší důraz. Je třeba si ale uvědomit to, že tyto koncepty jsou univerzální, čili se vztahují i na ostatní jazykové třídy. 2.1 Substituce Pojem substituce lze chápat jako nahrazení. V našem případě nahradíme každý symbol nějakou množinou řetězců, tedy jazykem. Vezměme si např. řetězec ab a substituci σ (sigma), která je definována následovně: σ(a) = {0, 00} a σ(b) = {1, 111, 1110}. (2.1) Znamená to, že každé a se nahradí jazykem {0, 00} a každé b se nahradí jazykem {1, 111, 1110}. Při aplikaci substituce na řetězec se tato substituce aplikuje na každý symbol zvlášt, čili v případě řetězce ab dostaneme σ(ab) = σ(a)σ(b) = {0, 00}{1, 111, 1110}, Fakulta informačních technologií, Vysoké učení technické v Brně, e-mail: izemek@fit.vutbr.cz Poslední revize: 4. listopadu 2015 1

což nám po provedení konkatenace dá σ(ab) = {01, 0111, 01110, 001, 00111, 001110}. Jelikož jsou oba jazyky v (2.1) konečné, tak se jedná s konečnou substituci. Obecně ale nemusí být substituce konečná. Vezměme si např. substituci definovanou takto: σ(a) = {0 n 1 n n 0} a σ(b) = {0}. (2.2) Tato substituce je nekonečná. Po jejím aplikování na ab dostaneme σ(ab) = σ(a)σ(b) = {0 n 1 n n 0}{0}, což nám ve výsledku dá jazyk σ(ab) = {0 n 1 n 0 m m, n 0}. V obou případech jsme substituci aplikovali na jediný řetězec. Substituci lze ale aplikovat i na jazyk (ten může být i nekonečný), a to tak, že se aplikuje na každý řetězec z tohoto jazyka a výsledky se sjednotí. Vezměme si jazyk σ(a) z (2.2) a označme jej L, čili a substituci definovanou následovně: L = {a n b n n 0}, (2.3) σ(a) = L a a σ(b) = L b, kde L a = {0, 1} a L b = {dd, ee, fff, ggg}. Pro jednoduchost jsem zvolil konečnou substituci (L a i L b jsou konečné jazyky). Po aplikaci σ na L dostaneme jazyk σ(l) = n 0 L n al n b = n 0{0, 1} n {dd, ee, fff, ggg} n. (2.4) Do jazyka (2.4) tedy patří řetězce ε, 00ddee, 1f f f, 010gggdddd, 1111ddddgggee apod. Pokud bych to měl shrnout, tak substituce nám definuje nahrazení každého symbolu nějakým jazykem. Substituce aplikovaná na řetězec je definovaná tak, že se aplikuje na každý symbol v tomto řetězci. A konečně, pokud aplikujeme substituci na jazyk, pak se substituce aplikuje na každý řetězec z tohoto jazyka a výsledky se sjednotí. 2.2 Morfismy Morfismus je speciální případ substituce, kde každý jazyk obsahuje pouze jediný řetězec. Pro odlišení budu morfismy označovat ϕ ( fí ). Můžeme si tedy zjednodušit zápis, a to tak, že místo budeme psát jen ϕ(a) = {w} ϕ(a) = w, kde w je řetězec. Pojd me si ukázat příklad. Mějme morfismus definovaný následovně: ϕ(a) = 00, ϕ(b) = 01 a ϕ(c) = 10. (2.5) Pak např. ϕ(abac) = ϕ(a)ϕ(b)ϕ(a)ϕ(c) = 00010010. 2

Vidíme, že na rozdíl od substituce je výsledek aplikování morfismu vždy jednoznačný (vždy dostaneme jediný řetězec). Dá se říct, že morfismus nám řetězec pouze nějak překóduje. Pěkným příkladem morfismu je tzv. Morseův kód 1, který je používán v telegrafii. Každé písmeno latinské abecedy se kóduje do posloupnosti znaků (tečka) a - (pomlčka). Pro názornost uvedu jen kódování pár symbolů: Řetězec aab se pak zakóduje do ϕ(a) = - ϕ(b) = - ϕ(c) = - - ϕ(aab) = ϕ(a)ϕ(a)ϕ(b) = - --. Pomocí morfismu mohu některé znaky vymazat, čili nahradit prázdným řetězcem. Dejme tomu, že bych chtěl z libovolného řetězce znaků 0 a 1 odstranit všechny znaky 1. Lze toho docílit pomocí morfismu ϕ definovaným jako ϕ(0) = 0 a ϕ(1) = ε. Skutečně, ϕ(0110001) = ϕ(0)ϕ(1)ϕ(1)ϕ(0)ϕ(0)ϕ(0)ϕ(1) = 0000. Dalším využitím morfismů je případ, kdy chci některé znaky přeznačit. Dejme tomu, budu mít množinu neterminálů N = {A, B, C} a množinu terminálů Σ = {a, b, c} a já chci každý neterminál nahradit jeho čárkovanou verzí, tj. místo A budu mít A atd. Právě toto dělá následující morfismus: ϕ(a) = A, ϕ(b) = B, ϕ(c) = C, ϕ(a) = a, ϕ(b) = b a ϕ(c) = c. Jak vidíte, tak s přibývajícím množstvím znaků nám roste složitost popisu. V podobných případech lze s výhodou využít následujícího ekvivalentního popisu: definujme morfismus ϕ tak, že ϕ(x) = X pro všechna X N a ϕ(x) = x pro všechna x Σ. U morfismu jazyka je to obdobné jako u substituce. Jelikož ale pro každý řetězec existuje právě jeden zakódovaný řetězec, tak je to jednodušší. Pokud si vezmeme jazyk L z (2.3) a morfismus definovaný v (2.5), tak ϕ(l) = ϕ ( {a n b n n 0} ) = { (00) n (01) n n 0 }. (2.6) Do jazyka (2.6) patří např. řetězce ε, 0001 a 00000101. 2.3 Uzavřenost třídy bezkontextových jazyků Nejdříve si musíme vysvětlit, co je to tzv. bezkontextová substituce. Ta je definována obdobně jako konečná a nekonečná substituce, čili bezkontextová substituce je taková substituce, kde je každý symbol nahrazen bezkontextovým jazykem. Všechny substituce ze sekce 2.1 jsou bezkontextové. Ovšem např. následující substituce σ(0) = {a n b n c n n 0} a σ(1) = {c, d} bezkontextová není, protože jazyk {a n b n c n n 0} patří mezi známé jazyky, které bezkontextové nejsou. Třída bezkontextových jazyků je uzavřena vůči substituci, pokud když si vezmeme libovolný bezkontextový jazyk L a libovolnou bezkontextovou substituci σ, tak σ(l) je bezkontextový jazyk. Ted se pokusím méně formálně přeformulovat důkazy vět 5.10 a 5.11 z [5] (dám hlavní ideu). 1 http://cs.wikipedia.org/wiki/morseova abeceda 3

Věta 1. Třída bezkontextových jazyků je uzavřena vůči substituci. Důkaz. Vezmeme si libovolný bezkontextový jazyk L a libovolnou bezkontextovou substituci σ. Ted musíme ukázat, že σ(l) je bezkontextový jazyk. Jelikož je L bezkontextový, tak existuje bezkontextový gramatika G = (N, Σ, P, S), která jej generuje. Důkaz je založen na tom, že jelikož je σ bezkontextová substituce, tak pro každý terminál a Σ existuje bezkontextová gramatika G a = (N a, Σ a, P a, S a ), která generuje σ(a). Vytvoříme tedy novou gramatiku G tak, že každý terminál a na pravé straně každého pravidla v P nahradíme startujícím neterminálem S a. Např. pro pravidlo A abc dostaneme pravidlo A S a BS c. Jakmile by tedy v původní gramatice došlo k vygenerování terminálu, tak místo něj se vygeneruje startující neterminál příslušné gramatiky. Z toho se pak vygeneruje řetězec z příslušného jazyka (pro terminál a to bude řetězec z jazyka σ(a) atp.). Uzavřenost třídy bezkontextových jazyků vůči morfismu je definovaná obdobně. Pokud si vezmeme libovolný bezkontextový jazyk L a libovolný morfismus ϕ, tak ϕ(l) musí být také bezkontextový jazyk. Všimněte si, že nepožaduji nic takového, aby ϕ byl bezkontextový morfismus, protože to nedává smysl. Věta 2. Třída bezkontextových jazyků je uzavřena vůči morfismu. Důkaz. Jelikož je morfismus speciálním případem substituce, tak tato věta platí ihned díky Větě 1. Pokud bychom na to chtěli jít konstrukčně, čili pro libovolný bezkontextový jazyk L a libovolný morfismus ϕ vytvořit bezkontextovou gramatiku, která generuje ϕ(l), tak bychom postupovali stejně jako v důkaze Věty 1 s tím rozdílem, že místo nahrazení každého terminálu a startujícím neterminálem S a ho přímo nahradíme řetězcem ϕ(a). Tedy např. pokud ϕ(a) = 000 a ϕ(c) = 11, tak pravidlo A abc nahradíme pravidlem A 000B11. 3 Substituce a morfismy formálně Definice 1. Necht Σ a Γ jsou abecedy. Funkce σ : Σ 2 Γ se nazývá substituce právě tehdy, když (1) σ(ε) = {ε}, (2) σ(xy) = σ(x)σ(y) pro všechny řetězce x, y Σ. Ač to vypadá složitě, tak Σ označuje množinu všech řetězců nad abecedou Σ a 2 Γ označuje množinu všech jazyků nad abecedou Γ, viz strana 10 v opoře k TINu [5]. Podmínka (1) se někdy vynechává [2], protože vyplývá z podmínky (2). Podmínka (2) nám zaručuje, že substituci lze definovat tak, jak jsme si ji neformálně definovali v sekci 2.1, čili každému symbolu přiřadíme jazyk a v případě řetězce aplikujeme substituci na každý z jeho symbolů. Podle definice sice přiřazujeme jazyk každému řetězci, ale jelikož se substituce chová bezkontextově, tak ji stačí definovat po jednotlivých symbolech. Substituci řetězce pak dostaneme automaticky. Definice 2. Necht Σ a Γ jsou abecedy. Funkce ϕ: Σ Γ se nazývá morfismus právě tehdy, když (1) ϕ(ε) = ε, (2) ϕ(xy) = ϕ(x)ϕ(y) pro všechny řetězce x, y Σ. Jelikož je morfismus 2 pouze speciální případ substituce, tak je jeho definice velice podobná. Takže to, co platí pro substituci, platí i pro morfismus. 2 Poznámka pro zvídavé: Σ se nazývá volný monoid s operací konkatenace a neutrálním prvkem ε a onen morfismus je pouze zkrácený název pro homomorfismus nad monoidy, jak jej znáte z MATu. Viz např. sekce 11.1 v [1]. 4

Rozšíření substitucí a morfismů na jazyky dává následující definice. Definice 3. Necht Σ a Γ jsou abecedy, L Σ je jazyk nad Σ, σ : Σ 2 Γ je substituce a ϕ: Σ Γ je morfismus. Pak σ(l) = w L σ(w) a ϕ(l) = { ϕ(w) w L }. Konečně, uzavřenost jazykové třídy vůči substituci a morfismu je formálně definována následovně. Definice 4. Necht L je třída jazyků. L je uzavřena vůči substituci právě tehdy, když pro libovolný jazyk L L a pro libovolnou substituci σ : Σ 2 Γ takovou, že σ(a) L pro všechna a Σ, platí, že σ(l) L. L je uzavřena vůči morfismu právě tehdy, když pro libovolný jazyk L L a pro libovolný morfismus ϕ: Σ Γ platí, že ϕ(l) L. 4 Závěr Substituce nahrazuje každý symbol jazykem, kdežto morfismus nahrazuje každý symbol řetězcem. Morfismus je speciálním případem substituce. Díky vlastnostem substituce a morfismu stačí, když je definujeme pro jednotlivé symboly, a automaticky je máme definovány pro řetězce. Rozšíření substitucí a morfismů na jazyky je přímočaré. Pevně doufám, že se mi tyto koncepty podařilo dostatečně objasnit. Vzhledem k tomu, že jsem chtěl tento text vměstnat do max. pěti stránek, tak se sem nevlezla některá témata, např. inverzní morfismus a uzavřenost třídy bezkontextových jazyků vůči němu. Věřím ale, že po pochopení těchto základů pochopíte i tento koncept. Zájemcům o rozšiřující a obecnější koncepty se doporučuji podívat na konečné převody (finite transduction) a GSM mapování (GSM mapping, od Generalized Sequential Machine), viz např. sekce 2.4 v [3]. Reference [1] Cohn, P. M.: Further Algebra and Applications. Springer, 2003, ISBN 1-85233-667-6. [2] Meduna, A.: Automata and Languages: Theory and Applications. Springer, 2000, ISBN 1-85233-074-0. [3] Rozenberg, G.; Salomaa, A. (editoři): Handbook of Formal Languages, Vol. 1: Word, Language, Grammar, kapitola 2. Springer, 1997, ISBN 3-540-60420-0, s. 41 110. [4] Wood, D.: Theory of Computation: A Primer. Addison-Wesley Longman Publishing Co., Inc., 1987, ISBN 0-06-047208-1. [5] Češka, M.; Smrčka, A.; Vojnar, T.: Studijní opora do předmětu Teoretická informatika [online]. Poslední aktualizace 2009-11-18. [cit. 2010-07-31]. Dostupné na URL: <http://www.fit.vutbr.cz/study/courses/tin/public/texty/oporatin.pdf>. 5