Historia monoid

Inom matematik och datavetenskap är en historiemonoid ett sätt att representera historien om samtidigt pågående datorprocesser som en samling strängar , där varje sträng representerar en processs individuella historia. Historiemonoiden tillhandahåller en uppsättning synkroniseringsprimitiver (såsom lås , mutexer eller trådanslutningar ) för att tillhandahålla mötespunkter mellan en uppsättning självständigt exekverande processer eller trådar .

Historiemonoider förekommer i teorin om samtidig beräkning och ger en matematisk grund på låg nivå för processkalkyler , såsom CSP språket för att kommunicera sekventiella processer , eller CCS, kalkylen för kommunicerande system . Historia monoider presenterades först av MW Shields.

Historiemonoider är isomorfa för att spåra monoider (fria delvis kommutativa monoider) och till monoiden av beroendegrafer . Som sådana är de fria objekt och är universella . Historiemonoiden är en typ av semi-abelsk kategorisk produkt i kategorin monoider.

Produktmonoider och projektion

Låta

beteckna en n -tuppel av (inte nödvändigtvis parvis disjunkta) alfabet . Låt beteckna alla möjliga kombinationer av en ändlig sträng från varje alfabet:

(På ett mer formellt språk är den kartesiska produkten av de fria monoiderna i . Stjärnan är Kleene-stjärnan .) Sammansättningen i produkten monoid är komponentvis, så att, för

och

sedan

för alla i . Definiera det fackliga alfabetet som ska vara

(Föreningen här är den fastställda unionen , inte den disjunkta unionen .) Givet vilken sträng , kan vi välja ut bara bokstäverna i vissa med motsvarande strängprojektion . En fördelning är avbildningen som fungerar på med alla , separera den i komponenter i varje fri monoid:

Historier

För varje kallas tuppeln elementära historien för en . Den fungerar som en indikatorfunktion för inkludering av en bokstav a i ett alfabet . Det är,

var

Här betecknar tomma strängen . Historiens monoid är submonoiden för produkten monoid som genereras av de elementära historierna: där den upphöjda stjärnan är Kleene-stjärnan tillämpad med en komponentvis definition av sammansättning enligt ovan). Elementen i kallas global historia och projektionerna av en global historia kallas individuella historier .

Koppling till datavetenskap

Användningen av ordet historia i detta sammanhang, och kopplingen till concurrent computing, kan förstås på följande sätt. En individuell historia är ett register över sekvensen av tillstånd i en process (eller tråd eller maskin ); alfabetet är uppsättningen av tillstånd för processen.

En bokstav som förekommer i två eller flera alfabet fungerar som en synkroniseringsprimitiv mellan de olika individuella historierna. Det vill säga, om ett sådant brev förekommer i en enskild historia, måste det också förekomma i en annan historia, och tjänar till att "knyta" eller "träffa" dem tillsammans.

Betrakta till exempel och . Fackliga alfabetet är givetvis . De elementära historierna är , , , och . I det här exemplet kan en individuell historik för den första processen vara medan den individuella historiken för den andra maskinen kan vara . Båda dessa individuella historier representeras av den globala historien , eftersom projektionen av denna sträng på de individuella alfabeten ger de individuella historierna. I den globala historien kan bokstäverna och anses pendla med bokstäverna och , genom att dessa kan ordnas om utan att ändras de individuella historierna. Sådan kommutering är helt enkelt ett uttalande om att den första och andra processen körs samtidigt och är oordnade i förhållande till varandra; de har (ännu) inte utbytt några meddelanden eller utfört någon synkronisering.

Bokstaven fungerar som en primitiv för synkronisering, eftersom dess förekomst markerar en plats i både den globala och individuella historien, som inte kan pendlas över. Således, även om bokstäverna och kan ordnas om efter och , kan de inte ordnas om efter . Sålunda har den globala historien och den globala historien båda som individuella historier och , vilket indikerar att exekveringen av kan ske före eller efter . Bokstaven synkroniserar dock, så att garanterat inträffar efter , även om är i en annan process än .

Egenskaper

En historia monoid är isomorphic till en spår monoid , och som sådan, är en typ av semi-abelian kategorisk produkt i kategorin monoids. I synnerhet är historikmonoiden isomorf till spårmonoiden med beroenderelationen som ges av

Enkelt uttryckt är detta bara det formella uttalandet i den informella diskussionen ovan: bokstäverna i ett alfabet kan omordnas kommutativt efter bokstäverna i ett alfabet , såvida de inte är bokstäver som förekommer i båda alfabeten. Således är spår exakt globala historier, och vice versa.

Omvänt, givet varje spårmonoid historiemonoid genom att ta en sekvens av alfabet där sträcker sig över alla par i .

Anteckningar

  1. ^ MW Shields "Concurrent Machines", Computer Journal , (1985) 28 s. 449–465.
  •   Antoni Mazurkiewicz, "Introduction to Trace Theory", s 3–41, i The Book of Traces , V. Diekert, G. Rozenberg, red. (1995) World Scientific, Singapore ISBN 981-02-2058-8
  • Volker Diekert, Yves Métivier, " Partial Commutation and Traces ", I G. Rozenberg och A. Salomaa , redaktörer, Handbook of Formal Languages ​​, Vol. 3 , Beyond Words, sidorna 457–534. Springer-Verlag, Berlin, 1997.