# Konečné automaty obecné vlastnosti - konečný počet stavů - konečný počet vstupů (vstupních symbolů nebo vstupních událostí) - následující stav je jednoznačně určen stavem a vstupním symbolem - jednoznačně určený počáteční stav neřešíme, jakým způsobem zařízení vydává výsledek ### Typy automatů **Rozpoznávací automat** - o vstupním řetězci vydává rozhodnutí typu **ano**/**ne** - **definice**: $A = \left( Q, \sum, \delta, q_{o}, F \right)$ - $Q$ - konečná neprázdná množina stavů - $\sum$ - konečná neprázdná množina vstupních symbolů - $q_{0} \in Q$ - počáteční stav - $\delta : Q \times \sum \to Q$ - přechodová funkce - $F \subseteq Q$ - množina koncových stavů - **použití** - řešení dílčích problémů v překladačích programovacích jazyků - jednoduché úlohy AI **Klasifikační automat** - vstupní řetězec zařadí do jedné z *n* tříd - **definice**: $A = \left( Q, \sum, \delta, q_{o}, \{Q_{i}\} \right)$ - $Q$ - konečná neprázdná množina stavů - $\sum$ - konečná neprázdná množina vstupních symbolů - $q_{0} \in Q$ - počáteční stav - $\delta : Q \times \sum \to Q$ - přechodová funkce - $\{Q_{i}\}$ - rozklad množiny stavů (třídy) - **použití** - jednoduché úlohy AI **Automat s výstupní funkcí** (překladový automat) - na základě vstupního řetězce vytvoří výstupní řetězec z výstupních symbolů - **použití** - HW - modelování číslicových systémů - modelování a návrh systémů logického řízení Automat Mealyho typu - výstupní posloupnost určena **posloupností přechodů**, kterými automat při zpracování řetězce prošel - výstupní řetězec má délku $n$ - **definice**: $A = \left( Q, \sum, O, \delta, q_{o}, \lambda \right)$ - $Q$ - konečná neprázdná množina stavů - $\sum$ - konečná neprázdná množina vstupních symbolů - $O$ - konečná neprázdná množina výstupních symbolů - $q_{0} \in Q$ - počáteční stav - $\delta : Q \times \sum \to \quad$ - přechodová funkce - $\lambda : Q \times \sum \to O$ - výstupní funkce - **použití** - pro popis systémů s pulzními výstupy Automat Mooreova typu - výstupní posloupnost určena **posloupností stavů**, kterými automat při zpracování řetězce prošel - výstupní řetězec má délku $n + 1$ - **definice**: $A = \left( Q, \sum, O, \delta, q_{o}, \lambda \right)$ - $Q$ - konečná neprázdná množina stavů - $\sum$ - konečná neprázdná množina vstupních symbolů - $O$ - konečná neprázdná množina výstupních symbolů - $q_{0} \in Q$ - počáteční stav - $\delta : Q \times \sum \to Q$ - přechodová funkce - $\lambda : Q \to O$ - výstupní funkce - **použití** - pro popis systémů s hladinovými výstupy **Konfigurace automatu, ekvivalence rozpoznávacích automatů** - konfigurací automatu $A = (Q, \sum, \delta, q_{0}, F)$ je každá uspořádaná dvojice $(q, v) \in Q \times \sum *$ - $q$ - aktuální stav automatu - $v$ - doposud nezpracovaná část řetězce - automaty $A_{1}$ a $A_{2}$ jsou ekvivalentní, jestliže $L(A_{1}) = L(A_{2})$ - automaty jsou ekvivalentní, pokud rozpoznávají stejný jazyk - ekvivalentní mohou být i automaty, které nemají stejný počet stavů **Způsob popisu konečných automatů** - přechodový graf (stavový diagram) - tabulka - stavový strom **Zobecněná přechodová funkce deterministického konečného automatu, její vztah k přechodové funkci** - přechodová funkce: $\delta: Q \times \sum \to Q$ - definiční obor zobecněné funkce $\delta^*$ - $D(\delta^*) = Q \times \sum^* = Q \times \left( \{e\} \cup \sum \cup \sum^2 \cup \dots \right)$ - $D(\delta) \subseteq D(\delta^*), \quad \delta^*(q, a) = \delta(q, a) \, \forall q \in Q, \forall a \in \sum$ - zobecněná přechodová funkce je jednoznačně určena přechodovou funkcí - lze ji vyjádřit rekurzivně pomocí přechodové funkce - $\delta^*(q, wa) = \delta(\delta^*(q, w)a), \delta^*(q, e) = q$