
formal_language_theory / lectures / unit_3
.pdf
Алгоритмически разрешимые проблемы, касающиеся конечных автоматов
Поскольку по предположению в T(M) цепочек длиной n l < 2n не существует, то
x1x3 2n.
Следовательно, вопреки предположению,
что x = x1x2x3 T(M) — одна из самых коротких цепочек, длина которой больше
или равна 2n, нашлась более короткая цепочка x1x3 T(M) и тоже с длиной, большей или равной 2n. Это противоречие доказывает необходимость условия 2.
131

Алгоритмически разрешимые проблемы, касающиеся конечных автоматов
Достаточность условия 2 вытекает из следующих рассуждений. Пусть существует x T(M), причём n x < 2n.
Как и ранее, можем утверждать, что существует q Q, x = x1x2x3, где x2 , и
δ(q0, x1) = q, δ(q, x2) = q, δ(q, x3) F.
Но тогда цепочки вида x1x2ix3 T(M) при любом i 0. Очевидно, что множество T(M) бесконечно.
Что и требовалось доказать.
132

Алгоритмически разрешимые проблемы, касающиеся конечных автоматов
Следствие 3.2. Из доказанной теоремы следует существование алгоритмов, разре-
шающих вопрос о пустоте, конечности и бесконечности языка, принимаемого любым данным конечным автоматом.
Действительно, алгоритм, проверяющий непустоту языка, может систематически генерировать все цепочки постепенно увеличивающейся длины, но меньшей n.
133

Алгоритмически разрешимые проблемы, касающиеся конечных автоматов
Каждая из этих цепочек пропускается через автомат. Либо автомат примет какуюнибудь из этих цепочек, и тогда алгоритм завершится с положительным ответом, либо ни одна из этих цепочек не будет принята, и тогда алгоритм завершится с отрицательным результатом. В любом случае процесс завершается за конечное время.
134

Алгоритмически разрешимые проблемы, касающиеся конечных автоматов
Алгоритм для проверки бесконечности
языка можно построить образом, только он должен тестировать цепочки длины включительно.
аналогичным генерировать и от n до 2n – 1
135

Алгоритмически разрешимые проблемы, касающиеся конечных автоматов
Теорема 3.12. Существует алгоритм для определения, являются ли два конечных автомата эквивалентными (т. е. распознающими один и тот же язык).
Доказательство. Пусть M1 и M2 —
конечные автоматы, распознающими языки L1 и L2 соответственно.
136

Алгоритмически разрешимые проблемы, касающиеся конечных автоматов
По теореме 3.6 множество
L (L |
|
L |
|
) ( |
L |
|
L ) |
1 |
|
2 |
|
1 |
2 |
||
|
|
|
|
|
распознаётся некоторым конечным автоматом M3.
Легко видеть, что множество L = T(M3) не пусто тогда и только тогда, когда L1 L2.
Следовательно, согласно теореме 3.12 существует алгоритм для определения, имеет ли место L1 = L2.
Что и требовалось доказать.
137

Алгоритмически разрешимые проблемы, касающиеся конечных автоматов
Пояснение. Необходимость утверждения
L = L1 = L2 можно доказать следующим образом от противного.
Пусть |
L = , |
но L1 L2. |
Это |
значит, |
|
например, |
что |
существует |
цепочка |
x L1, |
|
такая что x L2, |
т. е. x L 2 |
. |
Следовательно, |
||
x L1 L |
2 . Но тогда L1 L 2 |
и L , что |
противоречить предположению (L = ).
Достаточность очевидна, ибо при L1 = L2 имеем L (L2 L 2) (L1 L1) .
Next |
138 |