В информатике , общающийся конечный автомат - это конечный автомат , помеченный операциями "получить" и "отправить" по некоторому алфавиту каналов. Они были введены Брандом и Зафиропуло, [1] и могут использоваться в качестве модели параллельных процессов, таких как сети Петри . Общающиеся конечные автоматы часто используются для моделирования протокола связи, поскольку они позволяют обнаруживать основные ошибки проектирования протокола, включая ограниченность, взаимоблокировки и неопределенные приемы. [2]
Преимущество коммуникационных конечных автоматов заключается в том, что они позволяют определять многие свойства в протоколах связи, выходящие за рамки простого обнаружения таких свойств. Это преимущество исключает необходимость в помощи человека или ограничения в общности. [1]
Коммуникационные конечные автоматы могут быть более мощными, чем конечные автоматы в ситуациях, когда задержка распространения не является незначительной (так что несколько сообщений могут передаваться одновременно), и в ситуациях, когда естественно описывать стороны протокола и среду связи как отдельные сущности. [1]
Коммуникационная иерархическая машина состояний
Иерархические конечные автоматы — это конечные автоматы, состояния которых сами могут быть другими автоматами. Поскольку общающийся конечный автомат характеризуется параллелизмом, наиболее заметной чертой общающегося иерархического конечного автомата является сосуществование иерархии и параллелизма. Это считается весьма подходящим, поскольку означает более сильное взаимодействие внутри автомата.
Однако было доказано, что сосуществование иерархии и параллелизма по сути своей стоит языковой инклюзивности, языковой эквивалентности и всей универсальности. [3]
Определение
Протокол
Для произвольного положительного целого числа протокол [1] : 3 с процессом ( ами) представляет собой четверку с:
- , последовательность непересекающихся конечных множеств. Каждое множество используется для представления процесса, а каждый элемент представляет возможное состояние -го процесса.
- (с ), последовательность, представляющая начальное состояние каждого процесса.
- , конечная последовательность непересекающихся конечных множеств, такая, что каждое множество представляет возможные сообщения, которые могут быть отправлены от процесса к процессу . Если , то пусто.
- представляет собой последовательность функций перехода. Каждая функция моделирует переход, который может быть выполнен путем передачи или получения любого сообщения. Что касается процесса , символ используется для обозначения сообщения, которое может быть получено, и сообщения, которое может быть отправлено.
Глобальное государство
Глобальное состояние — это пара , где
- представляет собой упорядоченный набор состояний, каждый из которых представляет состояние -го процесса.
- — это матрица, каждая из которой является подпоследовательностью .
Начальное глобальное состояние — это пара , где
- определяется как матрица такая, что для всех , равно пустому слову, .
Шаг
Существует два типа шагов: шаги, на которых сообщения принимаются, и шаги, на которых сообщения отправляются.
Шаг, на котором процесс получает сообщение, ранее отправленное -ым процессом, представляет собой пару вида когда , с . Аналогично, пара, на которой сообщение отправляется -ым процессом -ому , представляет собой пару вида когда
Бегать
Запуск представляет собой последовательность глобальных состояний , в которой шаг связывает состояние со следующим, и первое состояние является начальным.
Говорят, что глобальное состояние достижимо , если существует маршрут, проходящий через это состояние.
Проблемы
Было доказано с введением самой концепции, что когда два конечных автомата взаимодействуют только с одним типом сообщений, ограниченность, тупики и неопределенное состояние приема могут быть определены и идентифицированы, в то время как это не так, когда автоматы взаимодействуют с двумя или более типами сообщений. Позже было дополнительно доказано, что когда только один конечный автомат взаимодействует с одним типом сообщения, в то время как сообщение его партнера не ограничено, мы все еще можем определить и идентифицировать ограниченность, тупики и неопределенное состояние приема. [2]
Далее было доказано, что когда отношение приоритета сообщения пусто, ограниченность, тупики и неопределенное состояние приема могут быть определены даже при условии, что в коммуникации между конечными автоматами присутствуют два или более типов сообщений. [4]
Ограниченность, тупики и неопределенное состояние приема — все это разрешимо за полиномиальное время (что означает, что конкретная задача может быть решена за поддающееся обработке, а не бесконечное количество времени), поскольку проблемы принятия решений, связанные с ними, являются недетерминированными и полными в логарифмическом пространстве. [2]
Расширения
Некоторые рассматриваемые расширения:
- наличие нотации, указывающей на то, что некоторые штаты могут не получать никаких сообщений,
- Сообщения принимаются в разном порядке, например FILO,
- некоторые сообщения могут потеряться,
Система каналов
Система каналов по сути является версией коммуникационного конечного автомата, в котором автомат не разделен на отдельные процессы. Таким образом, существует единое состояние состояния, и нет ограничений относительно того, какая система может читать/писать на любом канале.
Формально, если задан протокол , то его связанная система каналов имеет вид , где — набор из и из .
Ссылки
- ^ abcd Д. Бранд и П. Зафиропуло. О взаимодействующих конечных автоматах. Журнал ACM, 30(2):323–342, 1983.
- ^ abc Розье, Луи Э.; Гауда, Мохамед Г. Определение прогресса для класса сообщающихся конечных автоматов. Остин: Техасский университет в Остине, 1983.
- ^ Алур, Раджив; Каннан, Сампат; Яннакакис, Михалис. «Взаимодействующие иерархические машины состояний», Автоматы, языки и программирование. Прага: ICALP, 1999
- ^ Gouda, Mohamed G; Rosier, Louis E. "Связь конечных автоматов с приоритетными каналами", Автоматы, языки и программирование. Антверпен: ICALP, 1984