FAV-ZCU/KIV TI/01. Konečné automaty.md

88 lines
4 KiB
Markdown

# 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$