Коммуникационный конечный автомат

В информатике , общающийся конечный автомат - это конечный автомат , помеченный операциями "получить" и "отправить" по некоторому алфавиту каналов. Они были введены Брандом и Зафиропуло, [1] и могут использоваться в качестве модели параллельных процессов, таких как сети Петри . Общающиеся конечные автоматы часто используются для моделирования протокола связи, поскольку они позволяют обнаруживать основные ошибки проектирования протокола, включая ограниченность, взаимоблокировки и неопределенные приемы. [2]

Преимущество коммуникационных конечных автоматов заключается в том, что они позволяют определять многие свойства в протоколах связи, выходящие за рамки простого обнаружения таких свойств. Это преимущество исключает необходимость в помощи человека или ограничения в общности. [1]

Коммуникационные конечные автоматы могут быть более мощными, чем конечные автоматы в ситуациях, когда задержка распространения не является незначительной (так что несколько сообщений могут передаваться одновременно), и в ситуациях, когда естественно описывать стороны протокола и среду связи как отдельные сущности. [1]

Коммуникационная иерархическая машина состояний

Иерархические конечные автоматы — это конечные автоматы, состояния которых сами могут быть другими автоматами. Поскольку общающийся конечный автомат характеризуется параллелизмом, наиболее заметной чертой общающегося иерархического конечного автомата является сосуществование иерархии и параллелизма. Это считается весьма подходящим, поскольку означает более сильное взаимодействие внутри автомата.

Однако было доказано, что сосуществование иерархии и параллелизма по сути своей стоит языковой инклюзивности, языковой эквивалентности и всей универсальности. [3]

Определение

Протокол

Для произвольного положительного целого числа протокол [1] : 3  с процессом ( ами) представляет собой четверку с: Н {\displaystyle N} Н {\displaystyle N} { ( С я ) я = 1 Н ,   ( о я ) я = 1 Н ,   ( М я , дж ) я , дж = 1 Н ,   ( с ты с с ) я = 1 Н } {\displaystyle \{(S_{i})_{i=1}^{N},\ (o_{i})_{i=1}^{N},\ (M_{i,j})_{i,j=1}^{N},\ ({\mathtt {succ}})_{i=1}^{N}\}}

  • ( С я ) я = 1 Н {\displaystyle (S_{i})_{i=1}^{N}} , последовательность непересекающихся конечных множеств. Каждое множество используется для представления процесса, а каждый элемент представляет возможное состояние -го процесса. Н {\displaystyle N} С я {\displaystyle S_{i}} я {\displaystyle я}
  • ( о я ) я = 1 Н {\displaystyle (o_{i})_{i=1}^{N}} (с ), последовательность, представляющая начальное состояние каждого процесса. о я С я {\displaystyle o_{i}\in S_{i}}
  • ( М я , дж ) я , дж = 1 Н {\displaystyle (M_{i,j})_{i,j=1}^{N}} , конечная последовательность непересекающихся конечных множеств, такая, что каждое множество представляет возможные сообщения, которые могут быть отправлены от процесса к процессу . Если , то пусто. Н 2 {\displaystyle N^{2}} М я , дж {\displaystyle M_{i,j}} я {\displaystyle я} дж {\displaystyle j} я = дж {\displaystyle i=j} М я , дж {\displaystyle M_{i,j}}
  • ( с ты с с ) я = 1 Н : С я × дж = 1 Н ( М дж , я [ + ] М я , дж [ ] ) С я {\displaystyle ({\mathtt {succ}})_{i=1}^{N}:S_{i}\times \bigcup _{j=1}^{N}\left(M_{j,i}^{[+]}\cup M_{i,j}^{[-]}\right)\mapsto S_{i}} представляет собой последовательность функций перехода. Каждая функция моделирует переход, который может быть выполнен путем передачи или получения любого сообщения. Что касается процесса , символ используется для обозначения сообщения, которое может быть получено, и сообщения, которое может быть отправлено. я {\displaystyle я} [ + ] {\displaystyle [+]} [ ] {\displaystyle [-]}

Глобальное государство

Глобальное состояние — это пара , где С , С {\displaystyle \langle S,C\rangle}

  • С = ( с 1 , . . . , с Н ) {\displaystyle S=(s_{1},...,s_{N})} представляет собой упорядоченный набор состояний, каждый из которых представляет состояние -го процесса. с я {\displaystyle s_{i}} я {\displaystyle я}
  • С {\displaystyle С} — это матрица, каждая из которой является подпоследовательностью . Н × Н {\displaystyle N\times N} с я , дж С {\displaystyle c_{i,j}\in C} М я , дж {\displaystyle M_{i,j}}

Начальное глобальное состояние — это пара , где О , Э {\displaystyle \langle O,\mathrm {E} \rangle}

  • О = ( о 1 , . . . , о Н ) {\displaystyle O=(o_{1},...,o_{N})}
  • Э {\displaystyle \mathrm {E} } определяется как матрица такая, что для всех , равно пустому слову, . Н × Н {\displaystyle N\times N} я , дж { 1 , . . . , Н } {\displaystyle i,j\in \{1,...,N\}} Э я , дж {\displaystyle E_{i,j}} ϵ {\displaystyle \epsilon}

Шаг

Существует два типа шагов: шаги, на которых сообщения принимаются, и шаги, на которых сообщения отправляются.

Шаг, на котором процесс получает сообщение, ранее отправленное -ым процессом, представляет собой пару вида когда , с . Аналогично, пара, на которой сообщение отправляется -ым процессом -ому , представляет собой пару вида когда дж {\displaystyle j} я {\displaystyle я} ( с 1 , , с дж , , с н ) , ( с 1 , 1 с 1 , н м я , дж с я , дж с н , 1 с н , н ) ( с 1 , , с дж , , с н ) , ( с 1 , 1 с 1 , н с я , дж с н , 1 с н , н ) {\displaystyle \left\langle (s_{1},\dots ,s_{j},\dots ,s_{n}),\left({\begin{array}{lll}c_{1,1}&\dots &c_{1,n}\\\dots &\dots &\dots \\\dots &m_{i,j}c_{i,j}&\dots \\\dots &\dots &\dots \\c_{n,1}&\dots &c_{n,n}\end{array}}\right)\right\rangle \vdash \left\langle (s_{1},\dots ,s'_{j},\dots ,s_{n}),\left({\begin{array}{lll}c_{1,1}&\dots &c_{1,n}\\\dots &\dots &\точки \\\точки &c_{i,j}&\точки \\\точки &\точки &\точки \\c_{n,1}&\точки &c_{n,n}\end{array}}\right)\right\rangle } с ты с с я ( с дж , + м я , дж ) = с дж {\displaystyle {\mathtt {succ}}_{i}(s_{j},+m_{i,j})=s'_{j}} м я , дж М я , дж {\displaystyle m'_{i,j}\in M_{i,j}} я {\displaystyle я} дж {\displaystyle j} ( с 1 , , с я , , с н ) , ( с 1 , 1 с 1 , н с я , дж с н , 1 с н , н ) ( с 1 , , с я , , с н ) , ( с 1 , 1 с 1 , н м я , дж с я , дж с н , 1 с н , н ) {\displaystyle \left\langle (s_{1},\dots ,s_{i},\dots ,s_{n}),\left({\begin{array}{lll}c_{1,1}&\dots &c_{1,n}\\\dots &\dots &\dots \\\dots &c_{i,j}&\dots \\\dots &\dots &\dots \\c_{n,1}&\dots &c_{n,n}\end{array}}\right)\right\rangle \vdash \left\langle (s_{1},\dots ,s'_{i},\dots ,s_{n}),\left({\begin{array}{lll}c_{1,1}&\dots &c_{1,n}\\\dots &\dots &\dots \\\точки &m_{i,j}c_{i,j}&\точки \\\точки &\точки &\точки \\c_{n,1}&\точки &c_{n,n}\end{array}}\right)\right\rangle } с ты с с я ( с я , м я , дж ) = с я {\displaystyle {\mathtt {succ}}_{i}(s_{i},-m_{i,j})=s'_{i}}

Бегать

Запуск представляет собой последовательность глобальных состояний , в которой шаг связывает состояние со следующим, и первое состояние является начальным.

Говорят, что глобальное состояние достижимо , если существует маршрут, проходящий через это состояние. С , С {\displaystyle \langle S,C\rangle}

Проблемы

Было доказано с введением самой концепции, что когда два конечных автомата взаимодействуют только с одним типом сообщений, ограниченность, тупики и неопределенное состояние приема могут быть определены и идентифицированы, в то время как это не так, когда автоматы взаимодействуют с двумя или более типами сообщений. Позже было дополнительно доказано, что когда только один конечный автомат взаимодействует с одним типом сообщения, в то время как сообщение его партнера не ограничено, мы все еще можем определить и идентифицировать ограниченность, тупики и неопределенное состояние приема. [2]

Далее было доказано, что когда отношение приоритета сообщения пусто, ограниченность, тупики и неопределенное состояние приема могут быть определены даже при условии, что в коммуникации между конечными автоматами присутствуют два или более типов сообщений. [4]

Ограниченность, тупики и неопределенное состояние приема — все это разрешимо за полиномиальное время (что означает, что конкретная задача может быть решена за поддающееся обработке, а не бесконечное количество времени), поскольку проблемы принятия решений, связанные с ними, являются недетерминированными и полными в логарифмическом пространстве. [2]

Расширения

Некоторые рассматриваемые расширения:

  • наличие нотации, указывающей на то, что некоторые штаты могут не получать никаких сообщений,
  • Сообщения принимаются в разном порядке, например FILO,
  • некоторые сообщения могут потеряться,

Система каналов

Система каналов по сути является версией коммуникационного конечного автомата, в котором автомат не разделен на отдельные процессы. Таким образом, существует единое состояние состояния, и нет ограничений относительно того, какая система может читать/писать на любом канале.

Формально, если задан протокол , то его связанная система каналов имеет вид , где — набор из и из . ( С я ) я = 1 н , ( о я ) я = 1 н , ( М я , дж ) я , дж = 1 н , ( с ты с с ) я {\ displaystyle \ langle (S_ {i}) _ {i = 1} ^ {n}, (o_ {i}) _ {i = 1} ^ {n}, (M_ {i, j}) _ {i, j = 1} ^ {n}, ({\ mathtt {succ}}) _ {i} \ rangle } ( С я ) я = 1 н , ( о я ) я = 1 н , я , дж = 1 н ( М я , дж ) , Δ {\ displaystyle \ langle \ prod (S_ {i}) _ {i = 1} ^ {n}, (o_ {i}) _ {i = 1} ^ {n}, \ bigcup _ {i, j = 1} ^ {n} (M_ {i, j}), \ Delta \ rangle } Δ {\displaystyle \Дельта} ( ( с 1 , , с дж , , с н ) , ? м я , дж , ( с 1 , , с ты с с дж ( с дж , + м я , дж ) , , с н ) {\displaystyle ((s_{1},\dots ,s_{j},\dots ,s_{n}),?m_{i,j},(s_{1},\dots ,{\mathtt {succ}}_{j}(s_{j},+m_{i,j}),\dots ,s_{n})} ( ( с 1 , , с я , , с н ) , ! м я , дж , ( с 1 , , с ты с с я ( с я , м я , дж ) , , с н ) {\displaystyle ((s_{1},\dots ,s_{i},\dots ,s_{n}),!m_{i,j},(s_{1},\dots ,{\mathtt {succ}}_{i}(s_{i},-m_{i,j}),\dots ,s_{n})}

Ссылки

  1. ^ abcd Д. Бранд и П. Зафиропуло. О взаимодействующих конечных автоматах. Журнал ACM, 30(2):323–342, 1983.
  2. ^ abc Розье, Луи Э.; Гауда, Мохамед Г. Определение прогресса для класса сообщающихся конечных автоматов. Остин: Техасский университет в Остине, 1983.
  3. ^ Алур, Раджив; Каннан, Сампат; Яннакакис, Михалис. «Взаимодействующие иерархические машины состояний», Автоматы, языки и программирование. Прага: ICALP, 1999
  4. ^ Gouda, Mohamed G; Rosier, Louis E. "Связь конечных автоматов с приоритетными каналами", Автоматы, языки и программирование. Антверпен: ICALP, 1984
Взято с "https://en.wikipedia.org/w/index.php?title=Связующая_машина_с_конечным_состоянием&oldid=1265273115"