Monoid historii

W matematyce i informatyce monoid historii jest sposobem przedstawiania historii współbieżnie działających procesów komputerowych jako zbioru ciągów znaków , z których każdy reprezentuje indywidualną historię procesu. Monoid historii zapewnia zestaw prymitywów synchronizacji (takich jak blokady , muteksy lub łączenia wątków ) w celu zapewnienia punktów spotkania między zestawem niezależnie wykonujących się procesów lub wątków .

Monoidy historii występują w teorii obliczeń współbieżnych i zapewniają matematyczne podstawy niskiego poziomu dla rachunków procesów , takich jak CSP, język komunikacji procesów sekwencyjnych lub CCS, rachunek systemów komunikujących się . Monoidy historyczne zostały po raz pierwszy zaprezentowane przez MW Shields.

Monoidy historii są izomorficzne z monoidami śladowymi (wolne monoidy częściowo przemienne ) i z monoidem grafów zależności . Jako takie są obiektami wolnymi i uniwersalnymi . Monoid historii jest rodzajem półabelowego iloczynu kategorycznego w kategorii monoidów.

Monoidy produktowe i projekcja

Pozwalać

oznaczają n -krotkę (niekoniecznie rozłącznych parami) alfabetów . Niech oznaczają wszystkie możliwe kombinacje jednego ciągu o skończonej długości z każdego alfabetu:

W bardziej formalnym języku, iloczynem wolnych monoidów . górnym jest ) Skład monoidu produktu jest składowy, tak że np

I

Następnie

dla wszystkich w . Zdefiniuj alfabet unii

(Unia tutaj jest sumą , a nie sumą rozłączną .) Biorąc pod uwagę dowolny ciąg wybrać tylko litery w przy użyciu odpowiedniej projekcji ciągów . Rozkład _ to mapowanie działające na ze wszystkimi π , dzieląc go na składniki w każdym wolnym monoidzie: π k {\ displaystyle \ pi _ {k}

Historie

Dla każdego nazywana elementarną historią a \ in } Służy jako funkcja wskaźnika włączenia litery a do alfabetu . To jest,

Gdzie

Tutaj oznacza pusty ciąg . Monoida historii monoidu podstawowe (gdzie gwiazda w indeksie górnym to gwiazda Kleene zastosowana z komponentową definicją składu, jak podano powyżej) . Elementy nazywane są historiami globalnymi , a projekcje historii globalnej nazywane są historiami indywidualnymi .

Połączenie z informatyką

Użycie słowa historia w tym kontekście i połączenie z komputerami współbieżnymi można rozumieć w następujący sposób. Indywidualna historia jest zapisem sekwencji stanów procesu (lub wątku lub maszyny ); alfabet zbiorem stanów

Litera występująca w dwóch lub więcej alfabetach służy jako prymityw synchronizacji między różnymi indywidualnymi historiami. Oznacza to, że jeśli taki list pojawia się w jednej indywidualnej historii, musi również wystąpić w innej historii i służy do „powiązania” lub „spotkania” ich razem.

Rozważmy na przykład i . za . Podstawowe historie to , , , i . W tym przykładzie indywidualna historia pierwszego procesu może wyglądać następująco podczas gdy indywidualna historia drugiego komputera może . Obie te historie są reprezentowane przez historię globalną , ponieważ rzutowanie tego ciągu na poszczególne alfabety daje indywidualne historie. W historii globalnej można uznać , że litery do i , w tym sensie, że można je uporządkować bez zmiany poszczególnych historii. Taka komutacja jest po prostu stwierdzeniem, że pierwszy i drugi proces przebiegają jednocześnie i są względem siebie nieuporządkowane; nie wymienili (jeszcze) żadnych wiadomości ani nie przeprowadzili żadnej synchronizacji.

Litera służy jako prymityw synchronizacji, ponieważ jej wystąpienie oznacza miejsce zarówno w historii globalnej, jak i indywidualnej, którego nie można litery mogą być ponownie uporządkowane poza mi zmienić . Tak więc historia świata i historia globalna obie mają indywidualne historie i , co wskazuje, że wykonanie może się zdarzyć przed lub po do . Jednak litera synchronizuje się, więc gwarantuje, że nastąpi to po że innym procesie niż .

Nieruchomości

Monoid historyczny jest izomorficzny z monoidem śladowym i jako taki jest rodzajem półabelowego iloczynu kategorycznego w kategorii monoidów. historii _ izomorficzny z monoidem śladowym z relacją zależności podane przez

litery alfabetu można przemiennie uporządkować poza literami alfabetu , chyba że są to litery występujące w obu alfabetach. Tak więc ślady są dokładnie historiami globalnymi i vice versa.

dowolny monoid śladowy izomorficzny monoid historii, biorąc sekwencję alfabetów gdzie wszystkie pary .

Notatki

  1. ^ MW Shields „Maszyny współbieżne”, Computer Journal , (1985) 28 s. 449–465.
  •   Antoni Mazurkiewicz, „Wstęp do teorii śladów”, s. 3–41, w: Księga śladów , V. Diekert, G. Rozenberg, wyd. (1995) World Scientific, Singapur ISBN 981-02-2058-8
  • Volker Diekert, Yves Métivier, „ Partial Commutation and Traces ”, w G. Rozenberg i A. Salomaa , redaktorzy, Handbook of Formal Languages , tom. 3 , Poza słowami, strony 457–534. Springer-Verlag, Berlin, 1997.