Канальная система (информатика)
В информатике канальная система — это конечный автомат, аналогичный взаимодействующему конечному автомату , в котором существует одна система, взаимодействующая сама с собой, а не множество систем, взаимодействующих друг с другом. Канальная система аналогична автомату с выталкиванием вниз , где вместо стека используется очередь. Эти очереди называются каналами . Интуитивно понятно, что каждый канал представляет собой последовательность сообщений, которые необходимо отправить и прочитать в том порядке, в котором они были отправлены.
Определение
[ редактировать ]Канальная система
[ редактировать ]Формально канальная система (или совершенная канальная система ) определяется как кортеж с:
- конечное множество состояний управления ,
- состояние исходное ,
- конечный алфавит (для простоты обозначений пусть ),
- конечное множество каналов ,
- конечный алфавит сообщений ,
- конечное множество правил перехода с being the set of finite (potentially empty) words over the alphabet .[1]
Depending on the author, a channel system may have no initial state and may have an empty alphabet.[2]
Configuration
[edit]A configuration or global state of the channel system is a tuple belonging to . Intuitively, a configuration represents that a run is in state and that its -th channel contains the word .
The initial configuration is , with the empty word.
Step
[edit]Intuitively, a transition means that the system may goes to control state to by writing an to the end of the channel . Similarly means that the system may goes to control state to by removing a starting the word .
Formally, given a configuration , and a transition , there is a perfect step , where the step adds a letter to the end of the -th word. Similarly, given a transition , there is a perfect step where the first letter of the -th word is and has been removed during the step.
Run
[edit]A perfect run is a sequence of perfect step, of the form . We let denote that there is a perfect run starting at and ending at .
Languages
[edit]Given a perfect or a lossy channel system , multiple languages may be defined.
A word over is accepted by if it is the concatenation of the labels of a run of . The language defined by is the set of words accepted by .
The set of reachable configuration of , denoted is defined as the set of configuration reachable from the initial state. I.e. as the set of configurations such that .
Given a channel , the channel of is the set of tuples such that .
Channel system and Turing machine
[edit]Most problem related to perfect channel system are undecidable[1]: 92 .[3]: 22 This is due to the fact that such a machine may simulates the run of a Turing machine. This simulation is now sketched.
Given a Turing machine , there exists a perfect channel system such that any run of of length can be simulated by a run of of length . Intuitively, this simulation consists simply in having the entire tape of the simulated Turing machine in a channel. The content channel is then entirely read and immediately rewritten in the channel, with one exception, the part of the content representing the head of the Turing machine is changed, to simulate a step of the Turing machine computation.
Variants
[edit]Multiple variants of channel systems have been introduced. The two variants introduced below does not allow to simulate a Turing machine and thus allows multiple problem of interest to be decidable.
One channel machine
[edit]A one-channel machine is a channel system using a single channel. The same definition also applies for all variants of channel system.
Counter machine
[edit]When the alphabet of a channel system contains a single message, then each channel is essentially a counter. It follows that those systems are essentially Minsky machines. We call such systems counter machines. This same definition applies for all variants of channel system.[4]: 337
Completely specified protocol
[edit]A completely specified protocol (CSP) is defined exactly as a channel system. However, the notion of step and of run are defined differently.
A CSP admits two kinds of steps. Perfect steps, as defined above, and a message loss transition step. We denote a message loss transition step by .
Looseness
[edit]A lossy channel system or machine capable of lossiness error is an extension of completely specified protocol in which letters may disappear anywhere.
A lossy channel system admits two kinds of steps. Perfect steps, as defined above, and lossy step. We denote a lossy step, .
A run in which channel are emptied as soon as messages are sent into them is a valid run according to this definition. For this reason, some fairness conditions may be introduced to those systems.
Channel fairness
[edit]Given a message a channel , a run is said to be channel fair with respect to if, assuming there are infinitely many steps in which a letter is sent to then there are infinitely many steps in which a letter is read from . [5]: 88
A computation is said to be channel fair if it is channel fair with respect to each channel .
Impartiality
[edit]The impartiality condition is a restriction to the channel fairness condition in which both the channel and the letter are considered.
Given a message and a channel , a run is said to be impartial with respect to and if, assuming there are infinitely many steps in which is sent to then there are infinitely many steps in which is read from . [5]: 83
A computation is said to be impartial with respect to a channel if it is impartial with respect to and a messages . It is said to be impartial if it is impartial with respect to every channels .
Справедливость сообщений
[ редактировать ]Свойство справедливости сообщения аналогично беспристрастности, но это условие должно выполняться только в том случае, если существует бесконечное число шагов, на которых можно прочитать. Формально прогон называется ярмаркой сообщений по отношению к и если, предполагая, что существует бесконечно много шагов, в которых отправляется в , и бесконечно много шагов которое происходит в состоянии такой, что существует переход , то существует бесконечно много шагов, за которые читается из . [5] : 88
Ограниченность
[ редактировать ]Говорят, что прогон имеет ограниченные потери, если количество букв, удаленных между двумя совершенными шагами, ограничено. [4] : 339
Внесение ошибок
[ редактировать ]Машина , способная вносить ошибки, представляет собой расширение системы каналов, в которой буквы могут появляться где угодно.
Машина, способная вносить ошибку, допускает два типа шагов. Идеальные шаги, как определено выше, и шаги вставки. Обозначим шаг вставки через . [3] : 25
Ошибки дублирования
[ редактировать ]Машина , способная дублировать ошибку, — это расширение машины, способной вставлять ошибку, в которой вставленная буква является копией предыдущей буквы.
Машина, способная вносить ошибку, допускает два типа шагов. Совершенные шаги, как определено выше, и шаги дублирования. Обозначим шаг вставки через . [3] : 26
Недублирующаяся машина, допускающая ошибку дублирования, — это машина, которая гарантирует, что в каждом канале буквы чередуются между специальной новой буквой # и обычной буквой из алфавита сообщения. Если это не так, это означает, что произошло дублирование и запуск отклонен. Этот процесс позволяет закодировать любую систему каналов в машину, способную к ошибкам дублирования, при этом гарантируя, что в ней не будет ошибок. Поскольку канальные системы могут моделировать машины, отсюда следует, что машины, способные к ошибке дублирования, могут моделировать машину Тьюринга.
Характеристики
[ редактировать ]Набор достижимых конфигураций узнаваем для машин с каналами с потерями. [3] : 23 и машины, способные вносить ошибки [3] : 26 . Он рекурсивно перечислим для машины, способной к ошибке дублирования. [3] : 27 .
Проблемы и их сложность
[ редактировать ]В этом разделе содержится список задач о канальной системе и их разрешимость по сложности для вариантов таких систем.
Проблема с завершением
[ редактировать ]Задача завершения состоит в том, чтобы при заданной канальной системе решить и первоначальная конфигурация все ли пробеги начиная с конечны. Эта проблема неразрешима для идеальных канальных систем, даже если система представляет собой встречную машину. [4] или когда это одноканальная машина [3] : 26 .
Эта проблема разрешима , но она не является примитивно-рекурсивной по системе каналов с потерями. [2] : 10 Эта проблема тривиально разрешима на машине, способной вносить ошибки. [3] : 26 .
Проблема с достижимостью
[ редактировать ]Задача достижимости состоит в решении по заданной канальной системе и две начальные конфигурации и есть ли пробег от к . Эта проблема неразрешима в идеальных системах каналов и разрешима, но не примитивно-рекурсивно в системах каналов с потерями. [2] : 10 Эта проблема разрешима на машине, способной вносить ошибки. [3] : 26
Проблема с достижимостью
[ редактировать ]Проблема тупика состоит в том, чтобы решить, существует ли достижимая конфигурация без преемника. Эта проблема разрешима в системе каналов с потерями. [2] : 10 и тривиально разрешимо на машине, способной вносить ошибки [3] : 26 . Это также разрешимо на встречной машине. [6]
Проблема с проверкой модели
[ редактировать ]Задача проверки модели состоит в том, чтобы решить, является ли данная система и CTL* *-формула или LTL -формула или язык, определенный удовлетворяет . Эта проблема неразрешима в системе каналов с потерями. [3] : 23 [5]
Повторяющаяся проблема состояния
[ редактировать ]Задача рекуррентного состояния состоит в решении по заданной канальной системе и первоначальная конфигурация и государство существует ли пробег , начиная с , бесконечно часто проходя через состояние . Эта проблема неразрешима в системе каналов с потерями, даже при наличии одного канала. [3] : 23 [5] : 80
Эквивалентный конечный автомат
[ редактировать ]Учитывая систему , не существует алгоритма, который вычисляет конечный автомат, представляющий для класса системы каналов с потерями. [3] : 24 Эта проблема разрешима на машине, способной вносить ошибки. [3] : 26
Проблема ограниченности
[ редактировать ]Проблема ограниченности состоит в том, чтобы решить, конечно ли множество достижимых конфигураций. Т.е. длина контента каждого канала ограничена. Эта проблема тривиально разрешима на машине, способной вносить ошибки. [3] : 26 . Это также разрешимо на встречной машине. [6]
В конечном итоге свойства
[ редактировать ]Свойство эвентуальности , или свойство неизбежности, состоит в том, чтобы принять решение по заданной канальной системе и набор конфигураций, все ли запущены начиная с проходит настройку . Эта проблема неразрешима для беспристрастной системы каналов с потерями. [5] : 84 и с двумя другими ограничениями справедливости. [5] : 87
Свойство безопасности
[ редактировать ]Задача о безопасности состоит в решении по заданной канальной системе и обычный набор ли
Структурное завершение
[ редактировать ]Задача структурного завершения заключается в решении по заданной системе каналов если проблема завершения сохраняется в течение для каждой начальной конфигурации. Эта проблема неразрешима даже на безрецептурной машине. [4] : 342
Коммуникационный иерархический конечный автомат
[ редактировать ]Иерархические автоматы — это конечные автоматы, состояния которых сами могут быть другими автоматами. Поскольку взаимодействующий конечный автомат характеризуется параллелизмом, наиболее примечательной чертой взаимодействующего иерархического конечного автомата является сосуществование иерархии и параллелизма. Это было сочтено очень подходящим, поскольку означает более сильное взаимодействие внутри машины.
Однако было доказано, что сосуществование иерархии и параллелизма по своей сути обходится включением языка, языковой эквивалентностью и всей универсальностью. [7]
References
[edit]- ^ Jump up to: a b Abdulla, Parosh Aziz; Jonsson, Bengt (1996). "Verifying Programs with Unreliable Channels". Information and Computation. 127 (2): 91–101. doi:10.1006/inco.1996.0053.
- ^ Jump up to: a b c d Schnoebelen, Ph (15 September 2002). "Verifying Lossy Channel Systems has Nonprimitive Recursive Complexity". Information Processing Letters. 83 (5): 251–261. doi:10.1016/S0020-0190(01)00337-4.
- ^ Jump up to: a b c d e f g h i j k l m n o Cécé, Gérard; Finkel, Alain (10 January 1996). "Unreliable Channels Are Easier to Verify Than Perfect Channels". Information and Computation. 124 (1): 20–31. doi:10.1006/inco.1996.0003.
- ^ Jump up to: a b c d Mayr, Richard (17 March 2008). "Undecidable problems in unreliable computations". Theoretical Computer Science. 297 (1–3): 337–354. doi:10.1016/S0304-3975(02)00646-1.
- ^ Jump up to: a b c d e f g Abdulla, Parosh Aziz; Jonsson, Bengt (10 October 1996). "Undecidable Verification Problems for Programs with Unreliable Channels". Information and Computation. 130 (1): 71–90. doi:10.1006/inco.1996.0083.
- ^ Jump up to: a b Rosier, Louis E.; Gouda, Mohamed G (1983). Deciding progress for a class of communicating finite state machines (Report).
- ^ Alur, Rajeev; Kannan, Sampath; Yannakakis, Mihalis. "Communicating hierarchical state machines," Automata, Languages and Programming. Prague: ICALP, 1999