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

Automaty s výstupem a lineární redukce

parent f9911484
No related branches found
No related tags found
No related merge requests found
...@@ -250,6 +250,30 @@ jak automatem~$A_1$, tak~$A_2$. Proto $L(A) = L(A_1) \cap L(A_2)$. ...@@ -250,6 +250,30 @@ jak automatem~$A_1$, tak~$A_2$. Proto $L(A) = L(A_1) \cap L(A_2)$.
Průnik dvou regulárních jazyků je zase regulární jazyk. Průnik dvou regulárních jazyků je zase regulární jazyk.
} }
\subsectionstar{Automaty s~výstupem}
Automat může místo rozpoznávání jazyka produkovat výstup.
To můžeme definovat například následovně:
\defn{\em{Mooreův stroj}
je uspořádaná pětice $(Q,\Sigma,\Delta,\delta,q_0,G)$, kde:
\list{o}
\:$Q$ je konečná neprázdná \em{množina stavů,}
\:$\Sigma$ je konečná neprázdná \em{vstupní abeceda,}
\:$\Delta$ je konečná neprázdná \em{výstupní abeceda,}
\:$\delta: Q\times \Sigma \rightarrow Q$ je \em{přechodová funkce,}
\:$q_0\in Q$ je \em{počáteční stav,}
\:$G: Q\rightarrow \Delta$ je \em{výstupní funkce.}
\endlist
}
\defn{
Výpočet stroje nad vstupem $\alpha\in\Sigma^*$ délky~$n$ definujeme opět jako
posloupnost stavů $s_0,s_1,\ldots,s_n$, kde $s_i = \delta^*(q_0,\alpha[{}:i]$).
\em{Výstup stroje} je pak řetězec $G(s_1)\ldots G(s_n)$.
Stroj tedy počítá nějakou funkci ze~$\Sigma^n$ do~$\Delta^n$.
}
\exercises \exercises
\excmt{ \excmt{
...@@ -314,6 +338,23 @@ kde~$S$ je počet stavů KMP.} ...@@ -314,6 +338,23 @@ kde~$S$ je počet stavů KMP.}
\ex{Dokažte, že iterační lemma není ekvivalence: najděte neregulární jazyk~$L$, \ex{Dokažte, že iterační lemma není ekvivalence: najděte neregulární jazyk~$L$,
který \uv{jde pumpovat}.} který \uv{jde pumpovat}.}
\exx{Sestrojte Mooreův stroj na sčítání binárních čísel $x_n\ldots x_0$
a $y_n\ldots y_0$. Stroj na vstupu dostane posloupnost dvojic bitů $(x_0,y_0)
\ldots (x_n,y_n)$ od nejnižšího řádu k~nejvyššímu, na výstupu vydá bity součtu
v~tomtéž pořadí.}
\exx{Jiný způsob, jak automatem produkovat výstup, dává \em{Mealyho stroj.}
Ten tvoří výstup přechodovou funkcí $\delta: Q\times\Sigma \rightarrow Q\times\Delta$,
která každé dvojici stavu a znaku se vstupu přiřadí nový stav a znak k~vypsání
na výstup. Ukažte, že Mealyho stroje umí počítat tytéž funkce jako Mooreovy stroje.
}
\exx{Podobně jako u~\cc{NP}-úplnosti můžeme i zde jazyky porovnávat vhodnými redukcemi.
Jazyk $K$ se dá regulárně převést na jazyk~$L$ ($K\rightarrow_R L$), pokud existuje funkce~$f$ spočítatelná
Mooreovým strojem taková, že platí $\alpha\in K$ právě tehdy, když $f(\alpha)\in L$.
Dokažte, že pokud $K\rightarrow_R L$ a $L$ je regulární, pak $K$ je regulární.
}
\endexercises \endexercises
\section{Nedeterministické automaty} \section{Nedeterministické automaty}
... ...
......
Regulární: Regulární:
- Automaty s výstupem -> cvičení
... pak by se dala definovat regulární redukce mezi jazyky
- obrázek ke kongruencím: automat, automatová kongruence, syntaktická kongruence - obrázek ke kongruencím: automat, automatová kongruence, syntaktická kongruence
- cvičení na redukci automatů - cvičení na redukci automatů
... ...
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment