Выход: M’ = (K’, V, F’, H’, S’) - детерминированный конечный автомат, допускающий тот же язык, что и автомат М.
Метод:
1. Множество состояний К’ автомата М’ состоит из всех подмножеств множества К автомата М. Каждое состояние из К’ будем обозначать [A1A2...An], где Ai Î K.
2. Функция переходов F’ автомата М’ строится следующим образом: F’ ([A1A2...An], t) = [B1B2...Bm], где для любого 1 £ i £ n существует 1 £ j £ m так, что F(Ai, t) = Bj .
3. Пусть H = {H1, H2, ..., Hk}, тогда H’ = [H1, H2, ..., Hk].
4. Пусть S = {S1, S2, ..., Sp}, тогда S’ - все состояния из K’, имеющие вид [...Si...], Si Î S для какого-либо 1 £ i £ p.
После построения из нового ДКА необходимо удалить все недостижимые состояния.
Состояние kÎK в конечном автомате M = (K, V, F, H, S) называется недостижимым, если ни при какой входной цепочке wÎV+ невозможен переход автомата из начального состояния Н в состояние k. Иначе состояние называется достижимым.
Пусть R – множество достижимых состояний; Рi – множество текущих активных состояний автомата M = (K, V, F, H, S) на i-м шаге алгоритма. Результатом работы алгоритма является полное множество достижимых состояний R.
1.
2.
3.
4. Если , то выполнение алгоритма закончено, иначе
. Перейти к шагу 3.
Рассмотрим пример, иллюстрирующий работу алгоритма преобразования недетерминированного КА в ДКА.
Пример 3.4
Пусть дан конечный автомат M = ({H, A, B, S}, {0, 1}, F, {H}, {S}), где F: F(H, 1) = B, F(B, 0) = A, F(A, 1) = B, F(A, 1) = S .
Граф переходов данного автомата выглядит следующим образом (рис. 3.10):
Рис. 3.10. Граф переходов недетерминированного КА
Очевидно, что заданный конечный автомат является недетерминированным, так как из состояния А по символу ‘1’ возможен переход как в состояние В, так и в состояние S. Преобразуем заданный НКА в детерминированный КА.
Множество состояний эквивалентного ДКА будет следующим:
Граф переходов полученного ДКА изображен на рис. 3.11.
Рис. 3.11. Граф переходов детерминированного КА
Этот автомат легко преобразовать к полностью определенному виду (рис. 3.12):
Рис. 3.12. Граф переходов полностью определенного детерминированного КА
В процессе построения распознавателей при решении вопроса о необходимости преобразования НКА в ДКА следует руководствоваться принципом разумной достаточности, так как при выполнении преобразований число состояний автомата может значительно возрасти, что, в свою очередь, влечет за собой увеличение затрат на моделирование. Поэтому не всегда выполнение преобразования автомата к детерминированному виду является обязательным.