Двусторонний детерминированный конечный автомат
Версия от 19:33, 9 января 2015; Kabanov (обсуждение | вклад)
Определение: |
Двусторонний детерминированный конечный автомат (2ДКА) (англ. Two-way deterministic finite automaton (2DFA)) — набор из восьми элементов | , где — алфавит (англ. alphabet), — множество состояний (англ. finite set of states), — левый маркер конца строки, — правый маркер конца строки, — начальное (стартовое) состояние (англ. start state), — допускающее состояние (англ. accept state), — отвергающее состояние (англ. reject state), — функция переходов (англ. transition function).
Также должны быть удовлетворены следующие условия:
- для некоторого ,
- для некоторого ,
и
- ,
- ,
- ,
- .
Описание
Зафиксируем
, где . Пусть и . Тогда .Пример
Рассмотрим следующий язык
при .Он может быть легко распознан с помощью следующего недетерменированного конечного автомата.
Теперь построим на его основе ДКА. Мы можем построить автомат
, который запоминает последние входных символов. Следовательно, когда мы находимся с состоянии, соответствующему подстроке , и читаем очередной символ , то мы переходим в состояние, которому уже будет соответствовать подстрока . Однако, в случае автомат переходит в допускающее состояние, где в цикле может переходить на любому символу. Следует отметить, что такая стратегия строит ДКА c состояниями. Ниже представлен автомат , который распознает язык .