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