Konečné automaty a vyhledávání
Formální definice konečného automatu Formálně je konečný automat definován jako uspořádaná pětice , kde: S je konečná množina stavů (např. {Ano,Ne}) Σ je konečná množina vstupních symbolů, nazývaná abeceda (např. { 0,1,2,3,4,5,6,7,8,9}). σ je tzv. přechodová funkce (též přechodová tabulka), popisující pravidla přechodů mezi stavy. Může má podobu S × Σ → S. s je počáteční stav, s je prvek S (V předchozím příkladu Ano). A je množina přijímajících stavů, A je podmnožina S (V předchozím příkladu Ano).
Popis automatu tabulkou 1 2 3 4 5 6 7 8 9
Popis grafem
Vyhledávací automaty Přesto, že sestrojení konkrétního konečného automatu může vypadat složitě a zbytečně komplikovaně, při řešení „lingvistických“ problémů se může jednat o nejrychlejší způsob řešení.
Mooreův stroj a vyhledávání V aplikované informatice nacházejí konečné automaty uplatnění především při zpracování a vyhledávání textů. Pro tuto práci ovšem potřebujeme, aby automat měl širší výstup, než pouhou výstupní informaci po dočtení textu. Proto zavadíme konečné automaty s výstupem. Existují základní dva typy takových automatů, prvním z nich je Mooreův stroj, který po přečtení znaku a změně stavu ještě zapíše vybraný znak z předem dané množinu na výstup. Formálně je tedy Mooreův stroj sedmice kde tvoří konečný automat, V je množina výstupních znaků a výstupní funkce.
Mealyho automat Rozšířením Mooreova stroje je Mealyho automat. U Mealyho automatu je výstupní funkce definovaná jako zobrazení . Výstup tedy nezáleží pouze na stavu, ve kterém se automat nachází, ale i na aktuálním vstupu. Ve skutečnosti lze ke každému Mealyho automatu sestrojit odpovídající Mooreův stroj. Postačí, když rozšíříme množinu stavů, že za stavy budeme brát uspořádané dvojice z kartézského součinu . Pokud Mealyho automat přechází přečtením znaku a do stavu s, ekvivalentní Moorův stroj přejde do stavu (a,s).
Příklad 1 Sestrojme konečný automat, který v textu vyhledá řetězce znaků pes, pepa a pepek. Pro řešení plně postačuje, pokud budeme konstruovat automat pouze pro abecedu , kde zastupuje všechny ostatní znaky.
Pes, pepa a pepek
Příklad 2 Sestrojte automaty vyhledávající řetězce autor, auta a tora.
Řešení A O R T U * NIC AU TO AUT AUTA AUTO AUTOR TOR TORA