Komunikująca się maszyna skończona
W informatyce komunikująca się maszyna skończona to maszyna skończona oznaczona operacjami „odbierz” i „wyślij” w pewnym alfabecie kanałów. Zostały one wprowadzone przez Branda i Zafiropulo i mogą być używane jako model współbieżnych procesów, takich jak sieci Petriego . Komunikujące się maszyny skończone są często używane do modelowania protokołów komunikacyjnych, ponieważ umożliwiają wykrywanie głównych błędów projektowych protokołów, w tym ograniczeń, zakleszczeń i nieokreślonych odbiorów.
Zaletą komunikowania się maszyn skończonych jest to, że umożliwiają one decydowanie o wielu właściwościach w protokołach komunikacyjnych, wykraczających poza poziom samego wykrywania takich właściwości. Ta zaleta wyklucza potrzebę pomocy człowieka lub ograniczenia w ogólności.
Komunikowanie się maszyn o skończonych stanach może być potężniejsze niż automaty o skończonych stanach w sytuacjach, w których opóźnienie propagacji nie jest pomijalne (tak, że kilka komunikatów może być przesyłanych jednocześnie) oraz w sytuacjach, w których naturalne jest opisanie stron protokołu i medium komunikacyjnego jako odrębne podmioty.
Komunikująca się hierarchiczna maszyna stanów
Hierarchiczne maszyny stanowe to skończone maszyny stanowe, których stany mogą być innymi maszynami. Ponieważ komunikująca się skończona maszyna stanów charakteryzuje się współbieżnością, najbardziej zauważalną cechą komunikującej się hierarchicznej maszyny stanów jest współistnienie hierarchii i współbieżności. Zostało to uznane za bardzo odpowiednie, ponieważ oznacza silniejszą interakcję wewnątrz maszyny.
Udowodniono jednak, że współistnienie hierarchii i współbieżności wewnętrznie kosztuje włączenie języka, równoważność języka i całą uniwersalność.
Definicja
Protokół
Dla dowolnej dodatniej liczby całkowitej z procesem ( poczwórny z:
- , sekwencja rozłącznych skończonych zbiorów. Każdy zestaw jest używany do procesu, a każdy element stan .
- (z ) , sekwencja reprezentująca stan początkowy każdego procesu.
- , skończona sekwencja skończone takie, że każdy zestaw możliwe komunikaty, które mogą być wysyłane z procesu procesu j Jeśli , to jest pusty.
- jest ciągiem funkcji przejściowych. Każda funkcja modeluje przejście, jakie można wykonać, emitując lub odbierając dowolny komunikat. W odniesieniu do procesu jest do oznaczenia wiadomości, którą można odebrać, i można wysłać. ja .
Stan globalny
Stan globalny to para gdzie ⟨
- jest uporządkowanym zbiorem stanów, tak że każdy reprezentuje stan .
- jest macierzą taką że każda podciągiem .
Początkowy stan globalny to para gdzie
- jest zdefiniowana jako dla wszystkich { równa się pustemu słowu, .
Krok
Istnieją dwa rodzaje kroków, etapy odbierania wiadomości i etapy wysyłania wiadomości.
Krok, w którym wiadomość wysłaną wcześniej przez to para postaci kiedy z . Podobnie para, w której wiadomość jest wysyłana przez do parą postaci kiedy
Uruchomić
Przebieg jest sekwencją stanów globalnych takich, że krok wiąże stan z następnym, oraz że pierwszy stan jest stanem początkowym .
Mówi się, że stan globalny jeśli istnieje przechodzący przez ten
Problemy
Wraz z wprowadzeniem samej koncepcji udowodniono, że gdy dwie maszyny o skończonych stanach komunikują się tylko jednym rodzajem komunikatów, można rozstrzygnąć i zidentyfikować ograniczoność, zakleszczenia i nieokreślony stan odbioru, podczas gdy nie ma to miejsca, gdy maszyny komunikują się z dwoma lub więcej rodzajów wiadomości. Później zostało udowodnione, że gdy tylko jedna maszyna skończonych stanów komunikuje się z jednym typem wiadomości, podczas gdy komunikacja jej partnera jest nieograniczona, nadal możemy decydować i identyfikować ograniczenia, zakleszczenia i nieokreślony stan odbioru.
Udowodniono ponadto, że gdy relacja priorytetu komunikatu jest pusta, o ograniczoności, zakleszczeniach i nieokreślonym stanie odbioru można rozstrzygnąć nawet w warunkach, w których w komunikacji między automatami skończonymi występują dwa lub więcej typów komunikatów.
Ograniczenie, zakleszczenia i nieokreślony stan odbioru są rozstrzygalne w czasie wielomianowym (co oznacza, że dany problem można rozwiązać w możliwym do rozwiązania, a nie nieskończonym czasie), ponieważ dotyczące ich problemy decyzyjne są kompletne w niedeterministycznej przestrzeni logarytmicznej.
Rozszerzenia
Niektóre rozważane rozszerzenia to:
- posiadanie zapisu stwierdzającego, że niektóre stany mogą nie otrzymać żadnego komunikatu,
- wiadomości są odbierane w różnych kolejnościach, takich jak FILO,
- niektóre wiadomości mogą zostać utracone,
Układ kanałów
System kanałów jest zasadniczo wersją komunikującej się maszyny o skończonych stanach, w której maszyna nie jest podzielona na odrębne procesy. Zatem istnieje jeden stan stanu i nie ma ograniczeń dotyczących tego, który system może odczytywać/zapisywać na dowolnym kanale.
Formalnie, biorąc pod uwagę protokół , związany z nim system kanałów to gdzie jest i .
- ^ a b c d D. Marka i P. Zafiropulo. O komunikujących się maszynach skończonych. Dziennik ACM, 30(2):323-342, 1983.
- ; ^ abc Rosier , Louis E Gouda, Mohamed G. Decydowanie o postępie w klasie komunikujących się maszyn skończonych. Austin: University of Texas w Austin, 1983.
- ^ Alur, Rajeev; Kannan, Sampath; Yannakakis, Mihalis. „Komunikowanie hierarchicznych maszyn stanowych”, Automaty, języki i programowanie. Praga: ICALP, 1999
- Bibliografia _ Rosier, Louis E. „Komunikacja skończonych maszyn stanowych z kanałami priorytetowymi”, Automaty, języki i programowanie. Antwerpia: ICALP, 1984