Tabulka přechodu stavu - State-transition table
v teorie automatů a sekvenční logika, a tabulka přechodu stavu je tabulka ukazující, jaký stav (nebo stavy v případě a nedeterministický konečný automat ) a konečný stavový stroj se přesune na na základě aktuálního stavu a dalších vstupů. Je to v zásadě a pravdivostní tabulka ve kterém vstupy zahrnují aktuální stav spolu s dalšími vstupy a výstupy zahrnují další stav spolu s dalšími výstupy.
Tabulka přechodu stavu je jedním z mnoha způsobů, jak určit stroj v konečném stavu. Mezi další způsoby patří a stavový diagram.
Běžné formy
Jednorozměrný
Tabulky přechodu stavu jsou někdy jednorozměrné tabulky, nazývané také charakteristické tabulky. Jsou mnohem podobnější tabulkám pravdy než jejich dvojrozměrné formě. Jedna dimenze označuje vstupy, aktuální stavy, další stavy a (volitelně) výstupy spojené s přechody stavu.
Vstup | Aktuální stav | Další stav | Výstup |
---|---|---|---|
Já1 | S1 | Si | ÓX |
Já2 | S1 | Sj | Óy |
… | … | … | … |
Ján | S1 | Sk | Óz |
Já1 | S2 | Sjá ′ | ÓX' |
Já2 | S2 | Sj ' | Óy ' |
… | … | … | … |
Ján | S2 | Sk ' | Óz ′ |
… | … | … | … |
Já1 | Sm | Sjá ″ | ÓX" |
Já2 | Sm | Sj ″ | Óy ″ |
… | … | … | … |
Ján | Sm | Sk ″ | Óz ″ |
Dvourozměrný
Stavy přechodu stavu jsou obvykle dvourozměrné tabulky. Existují dva běžné způsoby jejich uspořádání.
Prvním způsobem jedna z dimenzí označuje aktuální stavy, zatímco druhá označuje vstupy. Průsečíky řádek / sloupec označují další stavy a (volitelně) výstupy spojené s přechody stavu.
Vstup Aktuální stav | Já1 | Já2 | … | Ján |
---|---|---|---|---|
S1 | Si/ÓX | Sj/Óy | … | Sk/Óz |
S2 | Sjá ′/ÓX' | Sj '/Óy ' | … | Sk '/Óz ′ |
… | … | … | … | … |
Sm | Sjá ″/ÓX" | Sj ″/Óz ″ | … | Sk ″/Óz ″ |
Druhým způsobem jedna z dimenzí označuje aktuální stavy, zatímco druhá označuje další stavy. Křižovatky řádek / sloupec označují vstupy a (volitelně) výstupy spojené s přechodem stavu.
Další stav Aktuální stav | S1 | S2 | … | Sm |
---|---|---|---|---|
S1 | Jái/ÓX | — | … | — |
S2 | — | — | … | Jáj/Óy |
… | … | … | … | … |
Sm | — | Ják/Óz | … | — |
Jiné formy
Simultánní přechody ve více strojích s konečným stavem lze zobrazit v efektivně n-dimenzionální tabulce přechodu stavu, ve které dvojice řádků mapují (sady) aktuální stavy na další stavy.[1] Toto je alternativa k reprezentaci komunikace mezi samostatnými, vzájemně závislými stroji s konečným stavem.
Na druhém konci byly použity samostatné tabulky pro každý z přechodů v jednom stroji s konečným stavem: „AND / OR tables“[2] jsou podobné neúplným rozhodovací tabulky ve kterém rozhodnutí pro pravidla, která jsou přítomná, je implicitně aktivace souvisejícího přechodu.
Příklad
Příklad tabulky přechodu stavu spolu s odpovídajícími stavový diagram pro konečný stavový stroj je uveden níže:
Vstup Aktuální stav | 0 | 1 |
---|---|---|
S1 | S2 | S1 |
S2 | S1 | S2 |
V tabulce přechodu stavu jsou všechny možné vstupy do stroje s konečným stavem vyčísleny napříč sloupci tabulky, zatímco všechny možné stavy jsou vyčísleny napříč řádky. Pokud je stroj ve stavu S1 (první řádek) a obdrží vstup 1 (druhý sloupec), stroj zůstane ve stavu S.1. Nyní, pokud je stroj ve stavu S1 a přijme vstup 0 (první sloupec), stroj přejde do stavu S.2.
Ve stavovém diagramu je první označen smyčkovou šipkou ze S1 do S.1 označeno 1 a ta je označena šipkou od S1 do S.2 označeno 0. Tento proces lze popsat statisticky pomocí Markovovy řetězy.
Pro nedeterministický konečný stavový stroj, vstup může způsobit, že stroj bude ve více než jednom stavu, tedy v jeho stavu nedeterminismus. Toto je v tabulce přechodu stavu označeno množinou všech cílových stavů uzavřených v dvojici složených závorek {}. Níže je uveden příklad tabulky přechodu stavu spolu s odpovídajícím stavovým diagramem pro nedeterministický stroj s konečným stavem:
Vstup Aktuální stav | 0 | 1 |
---|---|---|
S1 | S2 | S1 |
S2 | {S1, S.2} | S2 |
Pokud je stroj ve stavu S2 a přijme vstup 0, stroj bude ve dvou stavech současně, ve stavech S1 a S.2.
Transformace z / do stavového diagramu
Je možné nakreslit a stavový diagram z tabulky přechodu stavu. Níže je uvedena řada snadno sledovatelných kroků:
- Nakreslete kruhy, které představují dané stavy.
- Pro každý ze států naskenujte přes odpovídající řádek a nakreslete šipku do cílového stavu. Pokud je stroj konečného stavu nedeterministický, může být pro vstupní znak více šipek.
- Určete stát jako počáteční stav. Počáteční stav je uveden ve formální definici stroje konečného stavu.
- Určete jeden nebo více států jako přijímající stát. To je také uvedeno ve formální definici stroje konečného stavu.
Viz také
Reference
- ^ Breen, Michael (2005), „Zkušenosti s použitím odlehčené metody formální specifikace pro produktovou řadu komerčních vestavěných systémů“ (PDF), Požadavky Engineering Journal, 10 (2): 161–172, CiteSeerX 10.1.1.60.5228, doi:10.1007 / s00766-004-0209-1
- ^ Leveson, Nancy; Heimdahl, Mats Per Erik; Hildreth, Holly; Reese, Jon Damon (1994), "Specifikace požadavků na systémy řízení procesů" (PDF), Transakce IEEE v softwarovém inženýrství, 20 (9): 684–707, CiteSeerX 10.1.1.72.8657, doi:10.1109/32.317428
Další čtení
- Michael Sipser: Úvod do teorie výpočtu. PWS Publishing Co., Boston 1997 ISBN 0-534-94728-X