diff --git a/01-regular/regular.tex b/01-regular/regular.tex index 9b320c17a73d4325d096a42f18d7a89c40a5b05f..ff81586ac954a3bd82e369923f4740fdc074a24c 100644 --- a/01-regular/regular.tex +++ b/01-regular/regular.tex @@ -1008,21 +1008,15 @@ Algoritmus tedy doběhne v~čase $\Theta(S^2A)$. \endexercises -\sectionstar{Algebraické souvislosti} - -{\bf Pozor! Tato kapitola je ve vývoji.} - -V~tomto oddílu prozkoumáme některé souvislosti mezi teorií automatů -a algebrou. Předpokládáme čtenáře zběhlého v~základech algebry, takže -důkazy jsou zde poněkud hutnější. - -\subsection{Kanonické automaty} +\sectionstar{Kanonické automaty} Když jsme zkoumali jazyk $L_{01} = \{ \0^n\1^n \}$, intuice nám říkala, že by neměl být regulární, protože si po načtení $\0^n$ musíme pamatovat libovolně velké číslo~$n$, na což nestačí konečná paměť automatu. Nyní se pokusíme něco jako paměť potřebnou k~rozpoznávání jazyka zavést pořádně. +\subsection{Syntaktická kongruence} + \defn{Nechť $L$ je nějaký jazyk nad abecedou~$\Sigma$. Řetězce $\alpha,\beta \in \Sigma^*$ jsou rozlišitelné vzhledem k~$L$, pokud existuje nějaký suffix $\sigma\in\Sigma^*$ takový, že právě jeden z~řetězců $\alpha\sigma$ a~$\beta\sigma$ leží v~$L$. @@ -1248,7 +1242,25 @@ Tudíž je izomorfní s~kanonickým automatem~$A_L$. Jazyk má tedy (až na izom právě jedne minimální automat. } -\subsectionstar{Monoidy a polookruhy} +\exercises + +\ex{Homomorfismus se od izomorfismu liší tím, že nevyžadujeme, aby zobrazení bylo bijektivní. +Můžeme si tedy představit, že je to izomorfismus jednoho objektu s~nějakou podmnožinou druhého +objektu. Rozmyslete si, co znamená homomorfismus automatů, a~ukažte, že z~něj také plyne, +že automaty rozpoznávají stejný jazyk. +} + +\ex{Formulujte definici izomorfismu pro nedeterministické automaty.} + +\endexercises + +\sectionstar{Algebraické souvislosti} + +V~tomto oddílu prozkoumáme některé souvislosti mezi teorií automatů +a algebrou. Předpokládáme čtenáře zběhlého v~základech algebry, takže +důkazy jsou zde poněkud hutnější. + +\subsection{Monoidy a kongruence} \defn{ \df{Monoid} je algebraická struktura $(X,\cdot,1)$, kde $X$ je množina prvků, @@ -1266,11 +1278,59 @@ Pokud $\cdot$ navíc komutuje, mluvíme o~komutativním monoidu. \defn{ Nad libovolnou abecedou~$\Sigma$ můžeme definovat monoid $(\Sigma^*, \cdot, \varepsilon)$. -Jeho prvky řetězce, binární operace je zřetězení (rozmyslete si asociativitu) +Jeho prvky jsou řetězce, jako binární operaci zvolíme zřetězení (rozmyslete si asociativitu) a jako jednotkový prvek slouží prázdný řetězec~$\varepsilon$. Tomuto monoidu se říká \df{volný monoid} nad abecedou~$\Sigma$ nebo také \df{monoid řetězců}. } +Kongruencí se obecně myslí ekvivalence na množině prvků, která je kompatibilní +s~operacemi. To znamená, že nahradíme-li operandy ekvivalentními prvky, bude +výsledek operace ekvivalentní s~původním výsledkem. Pro nekomutativní struktury +uvažujeme i~jednostranné kongruence. + +\defn{ +Nechť $M=(X,\cdot,1)$ je monoid. O~ekvivalenci~$\sim$ na~$X$ řekneme, že je to: +\list{o} +\:\df{kongruence} na~$M$, pokud z~$x\sim x'$ a $y\sim y'$ plyne $x\cdot y \sim x'\cdot y'$, +\:\df{levá kongruence} na~$M$, pokud z~$y\sim y'$ plyne $x\cdot y \sim x\cdot y'$, +\:\df{pravá kongruence} na~$M$, pokud z~$x\sim x'$ plyne $x\cdot y \sim x'\cdot y$. +\endlist +} + +\obs{ +$\sim$ je kongruence, pokud je to současně levá i pravá kongruence. +} + +\example{ +Syntaktická kongruence~$\sim_L$ pro jazyk~$L$ má vlastnosti pravé kongruence: +pokud řetězce $\alpha$ a~$\beta$ nejdou rozlišit vzhledem k~$L$ žádným suffixem, +pak ani $\alpha\sigma$ a~$\beta\sigma$ nejdou rozlišit žádným suffixem. +Překvapivě se jí ale říká \em{levá syntaktická ekvivalence.} +} + +\example{ +Automatová kongruence~$\simeq_A$ má také vlastnosti pravé kongruence: +pokud řetězce $\alpha$ a~$\beta$ vedou do téhož stavu, pak $\alpha\sigma$ +a $\beta\sigma$ musí také vést do téhož stavu. +} + +\example{ +I~na ekvivalenci stavů v~automatu se můžeme dívat jako na kongruenci, +ovšem na jiné algebraické struktuře. Pro každý znak abecedy~$x$ definujeme +funkci $f_x: Q\rightarrow Q$, která bude říkat, jak se přechází mezi stavy +po přečtení~$x$. Tedy $f_x(s) = \delta(s,x)$. Po kongruenci pak budeme chtít, +aby byla kompatibilní se všemi~$f_x$, čili aby bylo $f_x(s)\sim f_x(s')$, +kdykoliv $s\sim s'$. A~také aby byla kompatibilní s~vlastností \uv{být +koncový stav}, tedy z~$s\sim s'$ plynulo $s\in F \Leftrightarrow s'\in F$. +} + +Kdykoliv máme nějakou kongruenci, můžeme podle ní strukturu faktorizovat. +Získame tak strukturu, jejíž prvky jsou ekvivalenční třídy kongruence +a operace zdědíme z~reprezentantů tříd -- z~vlastností kongruence pak +plyne, že nezáleží na volbě reprezentantů. + +\subsection{Polookruh jazyků} + \defn{ \df{Polookruh} je algebraická struktura $(X,+,\cdot,0,1)$, kde $+$ a~$\cdot$ jsou binární operace, $(X,\cdot,1)$ tvoří monoid, $(X,+,0)$ tvoří komutativní monoid @@ -1308,10 +1368,10 @@ jsou svázány distributivitou $(A\cup B)\cdot C = A\cdot C \cup B\cdot C$ a analogicky z~opačné strany. } -\subsectionstar{Lineární rovnice pro jazyky} +\subsection{Lineární rovnice pro jazyky} Pojďme prozkoumat, jak se chovají rovnice typu $X=AX\cup B$, kde $X$ je neznámý -jazyk a $A$ a~$B$ známé jazyky. To je analogie lineárních rovnic, jen v~okruhu jazyků +jazyk a $A$ a~$B$ známé jazyky. To je analogie lineárních rovnic, jen v~polookruhu jazyků místo tělesa reálných čísel. Aby analogie lépe vynikla, budeme na chvíli psát $+$ místo~$\cup$. \lemma{Pro každé dva jazyky $A$ a~$B$ existuje jazyk~$X$ takový, že $X=AX+B$. @@ -1412,15 +1472,11 @@ a řešení soustavy z~nich umíme vyjádřit pomocí operací regulárních vý \exercises -\ex{Homomorfismus se od izomorfismu liší tím, že nevyžadujeme, aby zobrazení bylo bijektivní. -Můžeme si tedy představit, že je to izomorfismus jednoho objektu s~nějakou podmnožinou druhého -objektu. Rozmyslete si, co znamená homomorfismus automatů, a~ukažte, že z~něj také plyne, -že automaty rozpoznávají stejný jazyk. -} - -\ex{Formulujte definici izomorfismu pro nedeterministické automaty.} +\ex{Uvažme, co by se stalo, kdybychom syntaktickou kongruenci definovali přes +prefixy místo suffixů. Bude nadále platit Myhillova-Nerodova věta? Bude mít +syntaktická kongruence nějaký vztah k~automatům?} -\exx{Charakterizujte všechna řešení rovnice $X=AX\cup B$ v~případě, že $\varepsilon\in A$. +\ex{Charakterizujte všechna řešení rovnice $X=AX\cup B$ v~případě, že $\varepsilon\in A$. } \endexercises