Skip to content
Snippets Groups Projects
Commit 3cac856b authored by Martin Mareš's avatar Martin Mareš
Browse files

Algebra dopsána a oddělena do samostatného oddílu

parent 68b3bb90
Branches
No related tags found
No related merge requests found
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment