Konečný státní stroj
V informatice, konečný-stroj státu (FSM) nebo konečný-automat státu (FSA) je abstraktní stroj to má jen konečné, konstantní množství paměti. Interní statess stroje nést žádnou další strukturu. Tento druh modelu je velmi široce použitý ve studiu počítání a jazycích.To může být conceptualised jak orientovaný graf. Tam být finitely mnoho států, a každý stát má přechody ke státům. Tam je řetězec vstupu, který určuje který přechod je následován (některé přechody mohou být od státu k sobě). Konečné státní stroje jsou studovány v teorie automatů, subfield teoretický informatika.
Tam je několik druhů konečných státních strojů:
Příjemcové produkují “ano” nebo “ne” odpověď na vstup; oni jeden přijímat vstup nebo dělat ne. Recognizers roztřídí vstup. Snímače jsou používány produkovat výstup z daného vstupu.
Konečné automaty mohou operovat jazyky konečných slov (standardní případ), nekonečná slova (Rabin automaty, Büchi automaty), nebo různé druhy stromů (automaty stromu), jmenovat nejvíce důležité případy.
Další rozdíl je mezitím deterministický a non-deterministický automaty. V deterministických automatech, pro každého stát tam je u většiny jednoho přechodu pro každý možný vstup. V non-deterministické automaty, tam moci být víc než jeden přechod od daného státu pro daný možný vstup. Non-deterministické automaty jsou obvykle realizovány tím, že změní je na deterministické automaty - v nejhorším případě, vytvořený deterministický automat je exponenciálně větší než non-deterministický automat (ačkoli to může obvykle být podstatně optimalizováno).
Standardní přijatá podmínka pro non-deterministické automaty vyžaduje to nějaké počítání připustí vstup. Automaty střídání také poskytují dvojí pojem, kde pro přijetí všichni non-deterministická počítání musí přijmout to.
Na rozdíl od teorie, konečné státní stroje nastanou také v hardwaru obvody, kde vstup, stát a výstup jsou vektory kousku připravil velikost pro (Moore stroje a stroje Mealyho).
Mealy stroje mají akce (výstupy) sdružily se s přechody a Moore stroje mají akce spojené se státy.
Deterministický konečný automat
Formálně, deterministický konečný automat (DFA) je 5-n-tice: (S, a Sigma;, T, s, )
- abeceda (a Sigma;)
- soubor států (S)
- přechod fungovat (T : S × a Sigma; a rarr; S).
- stát začátku (s a isin; S)
- soubor přijímat státy ( a sube; S)
Non-deterministický konečný automat
Non-deterministický konečný automat (NFA) je 5-n-tice: (S, a Sigma;, T, s, )
- abeceda (a Sigma;)
- soubor států (S)
- přechod fungovat (T : S × (a Sigma; a pohár; {a epsilon; }) a rarr; P(S)).
- stát začátku (s a isin; S)
- soubor přijímat státy ( a sube; S)
Stroj začne ve státě začátku a čteních v řetězci symbolů od jeho abecedy. To používá vztah přechodu T určovat příští stát (s) používat dnešní stav a symbol jen číst nebo vyprázdnit řetězec. Jestliže, když to skončilo číst, to je v přijímat stát, to je řekl, aby přijímal řetězec, jinak to je řekl, aby odmítl řetězec. Soubor řetězců to připustí tvořit jazyk, který je jazyk NFA uzná.
Celkové non-deterministický konečný automat
Celkový non-deterministický konečný automat (GNFA) je 5-n-tice: (S, a Sigma;, T, s, )
- S je konečný soubor států
- a Sigma; je konečný soubor symbolů
- T : (S - {}) × (S - {s}) a rarr; R
- s a isin; S je začátek stát
- a isin; S je přijímat stát
DFA nebo NFA může snadno být přeměněn na GNFA a pak GNFA může být snadno přeměněn na pravidelný výraz snížením počtu států until S = {s, }.
Příklady FSMs
Deterministický konečný státní stroj
Následování příkladu vysvětlí deterministický konečný státní stroj (M) s binární abecedou, který určuje jestliže vstup obsahuje sudé číslo 0s.
M = (S, a Sigma;, T, s, )- a Sigma; = {0, 1}
- S = {S1, S2}
- s = S1
- \ = {S1}
- Funkce přechodu T je zobrazil orientovaným grafem ukazovaným vpravo, a definovaný takto:
- T(S1, 0) = S2
- T(S1, 1) = S1
- T(S2, 0) = S1
- T(S2, 1) = S2
Optimalizace a Canonicalisation
Problém optimalizovat FSM (nacházet stroj s nejméně množství států to zastává stejnou funkci) decidable, unlike stejný problém pro více computationally silné stroje. Dále, to je možné sestrojit kanonickou verzi nějakého FSM, v objednávce k testu na rovnost. Oba tyto problémy mohou být řešeny používat algoritmus zbarvení.
FSMs může jen rozpoznat pravidelné jazyky a od této doby oni jsou méně computationally silní než Turing stroje - tam decidable problémy, které nejsou vypočitatelné používají FSM.
Pro každý non-deterministický FSM deterministický FSM se rovnat výpočetní síla může být budována s algoritmem.
FSM může být reprezentován používat státní přechodový stůl nebo diagram státu.
Implementace
Konečný státní stroj může být realizován v softwaru se státní přechodovou maticí (v některých případech rozptýlená matice splnila s provázanými seznamy nebo obrovský přepínač- sdělení pro odhalovat interní stát a pak individuální přepínací sdělení pro dekódování symbol vstupu).
V hardwaru FSM může být stavěn od programovatelného logického zařízení.
Viz též