Общающийся конечный автомат - Communicating finite-state machine

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

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


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

Связь с иерархической конечной машиной

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

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

Определение

Протокол

Для произвольного положительного целого числа , а протокол [1]:3 с участием процесс (ы) является четырехкратным с участием:

  • , последовательность непересекающиеся конечные множества. Каждый набор используется для представления процесса, а каждый элемент представляет собой возможное состояние -й процесс.
  • (с участием ), последовательность, представляющая начальное состояние каждого процесса.
  • , конечная последовательность непересекающиеся конечные множества такие, что каждое множество представляет возможные сообщения, которые могут быть отправлены из процесса обрабатывать . Если , тогда пусто.
  • представляет собой последовательность функций перехода. Каждая функция моделирует переход, который может быть выполнен путем отправки или получения любого сообщения. Что касается процесса , символ используется для обозначения сообщения, которое можно получить, и сообщение, которое можно отправить.

Глобальное состояние

А глобальное состояние пара где

  • является упорядоченным набором состояний, каждое из которых представляет собой состояние -й процесс.
  • является матрица такая, что каждый является подпоследовательностью .

В начальное глобальное состояние пара где

  • определяется как матрица такая, что для всех , равно пустому слову, .

Шаг

Есть два типа шагов: шаги получения сообщения и шаги отправки сообщений.

Шаг, на котором процесс получает сообщение, ранее отправленное -й процесс - это пара вида когда , с участием . Точно так же пара, в которой сообщение отправляется -й процесс к -я пара вида когда

Бегать

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

Говорят, что глобальное государство является достижимый если существует пробег, проходящий через это состояние.

Проблемы

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

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

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


Расширения

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

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

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

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

Формально с учетом протокола , связанная с ним система каналов , где это набор и из .

использованная литература

  1. ^ а б c d Д. Бранд и П. Зафиропуло. О взаимодействующих конечных автоматах. Журнал ACM, 30 (2): 323-342, 1983.
  2. ^ а б c Розье, Луи Э; Гауда, Мохамед Г. Решающий прогресс для класса конечных машин с сообщением. Остин: Техасский университет в Остине, 1983.
  3. ^ Алур, Раджив; Каннан, Сампатх; Яннакакис, Михалис. «Взаимодействие с иерархическими конечными автоматами», Автоматы, языки и программирование. Прага: ИКАЛП, 1999.
  4. ^ Гауда, Мохамед Дж. Розье, Луи Э. «Связь конечных автоматов с приоритетными каналами», Автоматы, языки и программирование. Антверпен: ICALP, 1984.