Komunikující stroj konečného stavu - Communicating finite-state machine
v počítačová věda, a komunikující konečný stavový stroj je konečný stavový stroj označeny operacemi „příjem“ a „odeslání“ přes nějakou abecedu kanálů. Představili je Brand a Zafiropulo,[1] a lze jej použít jako model souběžně procesy jako Petriho sítě. Komunikační stroje s konečným stavem se často používají pro modelování komunikačního protokolu, protože umožňují detekovat hlavní chyby návrhu protokolu, včetně omezenosti, zablokování a nespecifikovaných příjmů.[2]
Výhodou komunikace strojů s konečným stavem je to, že umožňují rozhodovat o mnoha vlastnostech v komunikačních protokolech nad úroveň pouhé detekce takových vlastností. Tato výhoda vylučuje potřebu lidské pomoci nebo omezení obecnosti.[1]
Komunikace konečných stavových automatů může být výkonnější než konečných stavových automatů v situacích, kdy zpoždění šíření není zanedbatelné (aby bylo možné přenášet několik zpráv najednou) a v situacích, kdy je přirozené popsat strany protokolu a komunikační médium jako samostatné entity.[1]
Komunikace hierarchického státního stroje
Hierarchické stavové automaty jsou konečné stavové automaty, jejichž stavy samy o sobě mohou být jinými stroji. Protože komunikující konečný stavový stroj je charakterizován souběžností, nejpozoruhodnější vlastností v a komunikující hierarchický stavový stroj je koexistence hierarchie a souběžnosti. To bylo považováno za velmi vhodné, protože to znamená silnější interakci uvnitř stroje.
Ukázalo se však, že koexistence hierarchie a souběžnosti skutečně stojí za zahrnutí jazyka, jazykovou ekvivalenci a veškerou univerzálnost.[3]
Definice
Protokol
Pro libovolné kladné celé číslo , a protokol [1]:3 s proces (procesy) je čtyřnásobný s:
- posloupnost disjunktní konečné množiny. Každá sada se používá k představení procesu a každého prvku představuje možný stav -tý proces.
- (s ), sekvence představující počáteční stav každého procesu.
- konečná posloupnost disjunktní konečné množiny tak, že každá množina představuje možné zprávy, které lze odeslat z procesu zpracovat . Li , pak je prázdný.
- je posloupnost přechodových funkcí. Každá funkce modeluje přechod, který lze provést vydáním nebo přijetím jakékoli zprávy. S ohledem na proces , symbol se používá k zaznamenání zprávy, kterou lze přijmout, a zprávu, kterou lze odeslat.
Globální stát
A globální stav je pár kde
- je uspořádaná sbírka států tak, že každý představuje stav -tý proces.
- je matice tak, že každý je subsekvence .
The počáteční globální stav je pár kde
- je definován jako matice taková, že pro všechny , rovná se prázdné slovo, .
Krok
Existují dva druhy kroků, kroky, ve kterých jsou zprávy přijímány, a kroky, ve kterých jsou zprávy odesílány.
Krok, ve kterém proces obdrží zprávu dříve zaslanou -tý proces je dvojice formuláře když , s . Podobně pár, ve kterém je zpráva odesílána -tý proces do -tý je pár formuláře když
Běh
A běh je posloupnost globálních stavů taková, že krok spojuje stav s dalším a takový, že první stav je počáteční.
Říká se, že globální stát je dosažitelný pokud existuje běh procházející tímto stavem.
Problémy
Zavedením samotného konceptu se prokázalo, že když dva stroje s konečným stavem komunikují pouze s jedním typem zpráv, lze rozhodnout a identifikovat omezenost, zablokování a nespecifikovaný stav příjmu, i když tomu tak není, když stroje komunikují se dvěma nebo více typů zpráv. Později se dále prokázalo, že když pouze jeden stroj s konečným stavem komunikuje s jediným typem zprávy, zatímco komunikace jeho partnera je neomezená, můžeme stále rozhodovat a identifikovat omezenost, zablokování a nespecifikovaný stav příjmu.[2]
Dále bylo prokázáno, že když je vztah priority zpráv prázdný, o omezenosti, zablokování a nespecifikovaném stavu příjmu lze rozhodnout i za podmínky, že v komunikaci mezi stroji s konečným stavem existují dva nebo více typů zpráv.[4]
Omezenost, zablokování a nespecifikovaný stav příjmu jsou rozhodnutelné v polynomiálním čase (což znamená, že konkrétní problém lze vyřešit v přijatelném, ne nekonečném čase), protože rozhodovací problémy, které se jich týkají, jsou nedeterministické logické prostory úplné.[2]
Rozšíření
Některá zvažovaná rozšíření jsou:
- mít notifikaci, že některé státy nemusí obdržet žádnou zprávu,
- zprávy jsou přijímány v různých objednávkách, například FILO,
- některé zprávy se mohou ztratit,
Systém kanálů
A kanálový systém je v podstatě verze komunikujícího stroje s konečným stavem, ve kterém není stroj rozdělen na odlišný proces. Existuje tedy jediný stav stavu a neexistuje žádné omezení týkající se toho, který systém může číst / zapisovat na libovolném kanálu.
Formálně daný protokol , přidružený systém kanálů je , kde je sada a ze dne .
Reference
- ^ A b C d D. Brand a P. Zafiropulo. O komunikaci strojů konečného stavu. Journal of the ACM, 30 (2): 323-342, 1983.
- ^ A b C Rosier, Louis E; Gouda, Mohamed G. Rozhodování o pokroku ve třídě komunikujících konečných státních strojů. Austin: University of Texas at Austin, 1983.
- ^ Alur, Rajeev; Kannan, Sampath; Yannakakis, Mihalis. „Komunikace hierarchických stavových strojů,“ automaty, jazyky a programování. Praha: ICALP, 1999
- ^ Gouda, Mohamed G; Rosier, Louis E. „Komunikace konečných stavových strojů s prioritními kanály,“ automaty, jazyky a programování. Antverpy: ICALP, 1984