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

  1. ^ 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.
  2. ^ 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.
  3. ^ Alur, Rajeev; Kannan, Sampath; Yannakakis, Mihalis. „Komunikace hierarchických stavových strojů,“ automaty, jazyky a programování. Praha: ICALP, 1999
  4. ^ 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