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

4 KiB

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