Двоичный двухголовочный автомат
Cтандартные схемы могут моделировать (в уточненном ниже смысле) двухголовочные автоматы, что позволяет свести проблему пустоты этих автоматов к проблеме пустоты схем. Такое моделирование можно осуществить более простым способом, если использовать специальный класс двухголовочных автоматов, а именно класс двоичных автоматов, работающих со словами над алфавитом {0, 1}. Следующая лемма устанавливает связь между классом всех двухголовочных автоматов и специальным подклассом двоичных автоматов.
Лемма. Существует алгоритм преобразования двухголовочных автоматов в двоичные двухголовочные автоматы (ДДКА), сохраняющий пустоту автоматов(построенный двоичный автомат Аb пуст тогда и только тогда, когда пуст исходный автомат А).
Доказательство. Пусть ДКА А над алфавитом V = {a1, a2, ...an} имеет множество состоянийQА = {q1k, q2k, …, qkk}, где верхний индекс (k = 1, 2) определяет номер активной головки. Преобразование этого автомата в двоичный начнем с кодировки символов и слов из V* словами в алфавите {0, 1} по следующему правилу:
код (#) = 0;
код (ai) = 11....10 (i = 1, …, n);
код (aai) = код (a) код (ai).
Так как символ # кодируется нулем, то любому непустому слову на ленте автомата А соответствует двоичное слово на ленте автомата Аb, оканчивающееся двумя нулями. Автомат останавливается, прочитав два нуля подряд (или 0, означающий пустое слово).
Автомат A преобразуется в двоичный автомат Ab так, как показано на графах рисунка 1.9. Каждый фрагмент графа А (рисунок 1.9, а) заменяется фрагментом (рисунок 1.9, б) для Аb.
После замены добавляются фрагменты (рисунок 1.9 в, г).
Множество состояний автомата Аb включает:
а) все старые состояния из QА;
б) для каждого старого состояния qjkn новых состояний, n - число символов алфавита V;
в) два новых состояния r11 и r21.
Заключительными состояниями автомата А являются заключительные состояния автомата Аb.
Вершины Sa (останов допускающий) и Sr (останов отвергающий) носят на графе вспомогательный характер в графе Аb.Они отмечают тот факт, что автомат прочитал два нуля подряд и остановился в заключительном состоянии (случай Sa) или в незаключительном состоянии (случай Sr).
Легко убедиться, что автомат Аь допускает двоичное слово р тогда и только тогда, когда оно является двоичным кодом слова из V*, допускаемого автоматом А. Таким образом, из пустоты автомата А следует пустота автомата Аь, и наоборот.
На рисунке 1.10, а приведен граф ДКА A допускающий только те слова в алфавите V = {a, b, c}, в которых символ a встречается не меньшее число раз, чем символы b и c, вместе взятые. Заключительное состояние R={q01}. На рисунке 1.10, б приведен граф ДДКА, построенный по автомату А (10 – код символа a, 110 – код b, 1110 – код c).
По заданному ДДКА возможно построить ССП и наоборот, что позволяет решить задачу разрешимости (не разрешимости) свойств ССП, так как эта задача для ДДКА решена.
Дата добавления: 2015-07-18; просмотров: 1004;