Прямое произведение ДКА — различия между версиями
Kris (обсуждение | вклад) м (→Разность ДКА) |
Kris (обсуждение | вклад) м (→Применение) |
||
| Строка 30: | Строка 30: | ||
== Применение == | == Применение == | ||
| − | Изменив конструкцию, можно получить автомат допускающий разность или объединение двух языков. | + | Изменив конструкцию, можно получить автомат, допускающий разность или объединение двух языков. |
=== Объединение ДКА === | === Объединение ДКА === | ||
[[Файл:Multi_DKA_united.png]] | [[Файл:Multi_DKA_united.png]] | ||
| − | Необходимо разрешать любую цепочку удовлетворяющую первому или второму автомату, для этого | + | Необходимо разрешать любую цепочку, удовлетворяющую первому или второму автомату, для этого сделаем терминальными следующие вершины <tex>T = (T_1 \times Q_2) \cup (Q_1 \times T_2)</tex>. Полученный автомат удовлетворяет нашим требованиям, так как попав в какое-либо состояние из <tex>T_1</tex> или <tex>T_2</tex>, цепочка будет удовлетворять первому или второму автомату соответственно. |
=== Разность ДКА === | === Разность ДКА === | ||
| Строка 43: | Строка 43: | ||
Заметим, что если <tex>L</tex> и <tex>M</tex> - регулярные языки, то <tex>L \setminus M = L \cap \overline{M}</tex> - так же регулярный. | Заметим, что если <tex>L</tex> и <tex>M</tex> - регулярные языки, то <tex>L \setminus M = L \cap \overline{M}</tex> - так же регулярный. | ||
| − | Таким образом надо построить пересечение двух автоматов, предварительно инвертировав во втором терминальные и нетерминальные состояния. Заметим, что меняется только набор терминальных вершин, следовательно | + | Таким образом, надо построить пересечение двух автоматов, предварительно инвертировав во втором терминальные и нетерминальные состояния. Заметим, что меняется только набор терминальных вершин, следовательно в итоговой конструкции произведения ДКА сделаем терминальными следующие вершины <tex>T = T_1 \times (Q_2 \setminus T_2)</tex>. |
Версия 01:10, 9 октября 2014
| Определение: |
| Прямым произведением двух ДКА и называется ДКА , где:
|
Содержание
Пример
Возьмем автомат , и автомат .
Автомат будет их пересечением.
Согласно определению:
-
- ...
Применение
Изменив конструкцию, можно получить автомат, допускающий разность или объединение двух языков.
Объединение ДКА
Необходимо разрешать любую цепочку, удовлетворяющую первому или второму автомату, для этого сделаем терминальными следующие вершины . Полученный автомат удовлетворяет нашим требованиям, так как попав в какое-либо состояние из или , цепочка будет удовлетворять первому или второму автомату соответственно.
Разность ДКА
Рассмотрим автомат , то есть автомат , в котором терминальные и нетерминальные состояния инвертированы. Очевидно, он допускает те и только те слова, которые не допускает автомат , а значит, задаёт язык . Таким образом, — регулярный.
Заметим, что если и - регулярные языки, то - так же регулярный.
Таким образом, надо построить пересечение двух автоматов, предварительно инвертировав во втором терминальные и нетерминальные состояния. Заметим, что меняется только набор терминальных вершин, следовательно в итоговой конструкции произведения ДКА сделаем терминальными следующие вершины .



