Прямое произведение ДКА — различия между версиями
Shersh (обсуждение | вклад) м (→Объединение ДКА) |
Kris (обсуждение | вклад) |
||
Строка 58: | Строка 58: | ||
Следовательно, надо построить пересечение двух автоматов, предварительно инвертировав во втором терминальные и нетерминальные состояния. Заметим, что меняется только набор терминальных вершин, следовательно в итоговой конструкции произведения ДКА сделаем терминальными следующие вершины <tex>T = T_1 \times (Q_2 \setminus T_2)</tex>. | Следовательно, надо построить пересечение двух автоматов, предварительно инвертировав во втором терминальные и нетерминальные состояния. Заметим, что меняется только набор терминальных вершин, следовательно в итоговой конструкции произведения ДКА сделаем терминальными следующие вершины <tex>T = T_1 \times (Q_2 \setminus T_2)</tex>. | ||
+ | |||
+ | |||
+ | Таким образом получено альтернативное доказательство [[Замкнутость регулярных языков относительно различных операций|замкнутости регулярных языков относительно теоретико-множественных операций]]. | ||
== См. также == | == См. также == |
Версия 22:23, 9 октября 2014
Определение: |
Прямым произведением двух ДКА и называется ДКА , где:
|
Содержание
Пример
Возьмем автоматы:
- .
Согласно определению:
- ...
Утверждение: |
Автомат , построенный как прямое произведение автоматов и будет их пересечением. |
Возьмем слово , которое допускает автомат и автомат . Выпишем все состояния в порядке допуска слова автоматом — и все состояния проходимые при допуске слова автоматом — . Построим список пар , где . Данный список является списком состояний в процессе допуска слова автоматом , так как:
Следовательно автомат Возьмем слово допускает слова, которые допускает автомат и автомат . , которое не допускает автомат или автомат , тогда или — нетерминальное состояние, следовательно . |
Применение
Изменив конструкцию, можно получить автомат, допускающий разность или объединение двух языков.
Объединение ДКА
Необходимо разрешать любую цепочку, удовлетворяющую первому или второму автомату. Для этого сделаем терминальными следующие вершины
. Полученный автомат удовлетворяет нашим требованиям, так как попав в какое-либо состояние из или , цепочка будет удовлетворять первому или второму автомату соответственно.Разность ДКА
Рассмотрим автомат
, то есть автомат , в котором терминальные и нетерминальные состояния инвертированы, если в автомате было опущено «дьявольское состояние», его необходимо добавить и сделать терминальным. Очевидно, он допускает те и только те слова, которые не допускает автомат , а значит, задаёт язык .Заметим, что если
и — регулярные языки, то — так же регулярный.Следовательно, надо построить пересечение двух автоматов, предварительно инвертировав во втором терминальные и нетерминальные состояния. Заметим, что меняется только набор терминальных вершин, следовательно в итоговой конструкции произведения ДКА сделаем терминальными следующие вершины
.
Таким образом получено альтернативное доказательство замкнутости регулярных языков относительно теоретико-множественных операций.
См. также
Источники информации
- Wikipedia — Deterministic finite automaton
- Lecture "Formal languages, automata and computation" : Carnegie Mellon University in Qatar
- Хопкрофт Д., Мотвани Р., Ульман Д. Введение в теорию автоматов, языков и вычислений, 2-е изд. : Пер. с англ. — М.:Издательский дом «Вильямс», 2002. — С. 152-154.