Двусторонний детерминированный конечный автомат — различия между версиями
Kabanov (обсуждение | вклад) |
Kabanov (обсуждение | вклад) |
||
Строка 13: | Строка 13: | ||
* <tex>\delta(t, R) = (t, left)</tex>, | * <tex>\delta(t, R) = (t, left)</tex>, | ||
* <tex>\delta(r, R) = (r, left)</tex>. | * <tex>\delta(r, R) = (r, left)</tex>. | ||
+ | == Описание == | ||
+ | Зафиксируем <tex>x \in \Sigma^*</tex>, где <tex>x = a_1 a_2 a_3 \dots a_n</tex>. Пусть <tex>a_0 = L</tex> и <tex>a_{n+1}=R</tex>. Тогда <tex>a_0 a_1 a_2 \dots a_n a_{n+1} = L x R</tex>. | ||
+ | == Пример == | ||
+ | Рассмотрим следующий язык <tex>L_n = (a+b)^∗a(a+b)^{n-1}a(a+b)^∗</tex> при <tex>\forall n > 0</tex>. | ||
+ | |||
+ | Он может быть легко распознан с помощью следующего недетерменированного конечного автомата. | ||
+ | |||
+ | Теперь построим на его основе ДКА. Мы можем построить автомат <tex>A_n</tex>, который запоминает последние <tex>n</tex> входных символов. Следовательно, когда мы находимся с состоянии, соответствующему подстроке <tex>\sigma_1 \sigma_2 \dots \sigma_n</tex>, и читаем очередной символ <tex>\gamma</tex>, то мы переходим в состояние, которому уже будет соответствовать подстрока <tex>\sigma_2 \sigma_3 \dots \sigma_n \gamma</tex>. Однако, в случае <tex>\sigma_1 = \gamma = a</tex> автомат переходит в допускающее состояние, где в цикле может переходить на любому символу. Следует отметить, что такая стратегия строит ДКА c <tex>2^n + 1</tex> состояниями. Ниже представлен автомат <tex>A_3</tex>, который распознает язык <tex>L_3</tex>. | ||
== См. также == | == См. также == |
Версия 19:33, 9 января 2015
Определение: |
Двусторонний детерминированный конечный автомат (2ДКА) (англ. Two-way deterministic finite automaton (2DFA)) — набор из восьми элементов | , где — алфавит (англ. alphabet), — множество состояний (англ. finite set of states), — левый маркер конца строки, — правый маркер конца строки, — начальное (стартовое) состояние (англ. start state), — допускающее состояние (англ. accept state), — отвергающее состояние (англ. reject state), — функция переходов (англ. transition function).
Также должны быть удовлетворены следующие условия:
- для некоторого ,
- для некоторого ,
и
- ,
- ,
- ,
- .
Содержание
Описание
Зафиксируем
, где . Пусть и . Тогда .Пример
Рассмотрим следующий язык
при .Он может быть легко распознан с помощью следующего недетерменированного конечного автомата.
Теперь построим на его основе ДКА. Мы можем построить автомат
, который запоминает последние входных символов. Следовательно, когда мы находимся с состоянии, соответствующему подстроке , и читаем очередной символ , то мы переходим в состояние, которому уже будет соответствовать подстрока . Однако, в случае автомат переходит в допускающее состояние, где в цикле может переходить на любому символу. Следует отметить, что такая стратегия строит ДКА c состояниями. Ниже представлен автомат , который распознает язык .