히스토리 모노이드
History monoid수학과 컴퓨터 과학에서, 역사 모노이드란 컴퓨터 프로세스를 동시에 실행하는 역사를 문자열의 집합으로 표현하는 방법인데, 각 문자열은 과정의 개별적인 역사를 나타낸다.History monoid는 독립적으로 실행되는 프로세스 또는 스레드 집합 사이에 랑데부 지점을 제공하기 위한 동기화 원시 요소 집합(잠금, 뮤텍스 또는 스레드 결합 등)을 제공한다.
역사 모노이드들은 동시 연산 이론에서 발생하며, 순차적 과정을 전달하는 언어 CSP나 통신 시스템의 미적분인 CCS와 같이 공정 계산에 대한 낮은 수준의 수학 기반을 제공한다.역사 모노이드들은 처음에 M.W. 쉴즈에 의해 제시되었다.[1]
역사 모노이드들은 모노이드(자유롭게 부분적으로 교환되는 모노이드)를 추적하고 의존성 그래프의 모노이드에 대해 이형성이다.이와 같이, 그것들은 자유로운 물건이며 보편적이다.히스토리 모노이드(history monoid)는 모노이드의 범주에 속하는 반아벨라 범주형 제품의 일종이다.
제품 모노이드 및 투영
내버려두다
(반복적으로 분할할 필요는 없음) 알파벳 k {\의 n-tuple을 Let A ){\는 각 알파벳에서 하나의 유한 길이 문자열의 가능한 모든 조합을 나타낸다.
(좀 더 격식 있는 언어로 표현하면 (는 k {\k}}}의 자유 모노이드의 데카르트 제품이다위첨자 별은 클레인 별이다.)제품 모노이드의 구성은 구성 요소별로 구성되므로
그리고
그때
, ,\ in P 알파벳을 정의하십시오.
(여기 있는 조합은 정해진 조합이지 해체된 조합이 아니다.) ∈ \ {\ 의 문자만 해당 문자열 투영법 k : \\{\ \pi . A distribution is the mapping that operates on with all of the , separating it into components in each free monoid:
역사
{ 에 대해 tuple () 을(를) a의 기본 역사라고 한다 에 a자를 포함시키는 지표 함수 역할을 한다 즉,
어디에
여기서 은 빈 문자열을 가리킨다.The history monoid is the submonoid of the product monoid generated by the elementary histories: (where the superscript star is the Kleene star applied with a component-wise defi위와 같이 작문한다.H( ) 의 요소를 글로벌 역사라고 하며, 글로벌 역사의 투영도 개별 역사라고 한다.
컴퓨터 과학과의 연결
이 맥락에서 단어 히스토리의 사용과 동시 컴퓨팅과의 연결은 다음과 같이 이해할 수 있다.개별 이력은 프로세스(또는 나사산 또는 기계)의 상태 순서에 대한 기록이며 알파벳 k 는 프로세스의 상태 집합이다.
둘 이상의 알파벳에서 발생하는 문자는 다양한 개별 이력 사이의 동기화 원시적인 역할을 한다.즉, 그러한 편지가 한 개인의 역사에서 일어난다면 그것은 또 다른 역사에서도 일어나야 하며, 그들을 함께 '타이'하거나 '렌즈'하는 역할을 한다.
예를 들어 ={ 및 ={ 을 고려하십시오조합 알파벳은 물론 ={ } 이다The elementary histories are , , , and . In this example, an individual history of the first process might be 반면 두 번째 시스템의 개별 히스토리는 d d 일 수 있다 이 문자열을 개별 알파벳에 투영하면 i가 되기 때문에 이 두 개별 히스토리는 모두 글로벌 d d d d d d c c d c d d d d e d d d d d d d d d d d d d d d d d d d d dd d d dd d d d d d d d dd dd dd dd d d d d무분할의 역사글로벌 역사에서 b과 c 은 개별 이력을 변경하지 않고 재배열할 수 있다는 점에서 과 e과 함께 통근하는 것으로 간주할 수 있다.이러한 감화는 단순히 첫 번째 프로세스와 두 번째 프로세스가 동시에 실행되고 있으며 서로에 대해 정렬되지 않은 상태라는 것을 나타내는 것이다; 그들은 어떤 메시지를 교환하거나 동기화를 수행하지 않았다.
a {\ a은(는) 동기화 원시 역할을 하는데, 그 발생은 글로벌 역사 및 개별 역사 모두에 있는 한 지점을 나타내며, 이 두 글자는 서로 나눌 수 없다.따라서 문자 c 을(를) 및 을(를) 지나 다시 정렬할 수 없지만 을(를) 지나 다시 정렬할 수는 없다따라서 역사 및 글로벌 역사 b a 은 모두 이력 displaystyle 및 {\의 실행 에발생할 수 을 나타낸다. 그러나 e a}은는) 동기화되므로 e {\이( c {\displaystyle c과(와) 다른 프로세스에 있더라도 c {\ 뒤에 c이(가가 발생하도록 보장된다
특성.
히스토리 모노이드(history monoid)는 미량 모노이드에 대해 이형성이며, 이와 같이 모노이드의 범주에 속하는 반아벨주의 범주형 제품의 일종이다.In particular, the history monoid is isomorphic to the trace monoid with the dependency relation given by
간단히 말해서, 이것은 위에서 주어진 비공식 논의의 공식적인 설명일 뿐이다: 알파벳 k 의 문자는 두 알파벳에서 모두 발생하는 문자가 아닌 한 알파벳 \j}에 있는 문자들을 기준으로 정렬할 수 있다따라서, 흔적은 정확히 세계적인 역사고, 그 반대도 마찬가지다.
Conversely, given any trace monoid , one can construct an isomorphic history monoid by taking a sequence of alphabets where ranges over all pairs in .
메모들
- ^ M.W. Shields "Concurrent Machines", Computer Journal, (1985) 28 페이지 449–465.
참조
- 안토니 마주르키에비치, 「추적 이론의 도입」 페이지 3-41, <추적서 V>.디케르트, G. 로젠버그, 에드스(1995) 월드 사이언티픽, 싱가포르 ISBN981-02-2058-8
- 볼커 디케르트, 이브 메티비에르, "부분적 감응과 추적", 인 지 로젠베르크와 A. Salomaa, 편집자, 공식 언어 핸드북, 제3권, 비욘드 워즈, 457-534페이지.1997년 베를린 스프링거-베를라크.