Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konspekt_lektsy.doc
Скачиваний:
37
Добавлен:
21.09.2019
Размер:
3.66 Mб
Скачать

5.3.2. Детерминизация нка

Детерминированные конечные автоматы являются частными случаями недетерминированных. Следовательно возникает вопрос, распознают ли недетерминированные конечные автоматы больший класс языков чем детерминированные? На данный вопрос отвечает теорема показывает, что классы языков, распознаваемых НКА и ДКА совпадают.

Теорема 1. Детерминизация НКА

Для каждого НКА M можно эффективно построить такой ДКА A, что LA= LM.

Доказательство. Пусть M =< Σ, Q, q0, F, Φ > НКА. Процедура построения по нему эквивалентного ДКА состоит из двух этапов: на первом построится эквивалентный ему НКА M1, в программе которого отсутствуют переходы по ε, а на втором этапе по M1 строится эквивалентный ДКА A.

Этап 1. Устранение пустых переходов.

Рассмотрим поддиаграмму автомата M, в которой оставлены лишь ребра, помеченные ε:Dε= (Q, Eε), где ={(q, q)|q Φ(q, ε)}. Пусть = (Q, ) - это граф достижимости (транзитивного замыкания) для . Тогда ={(q, q) |q = q’ или в имеется путь из q в q’}.

Определим НКА M1=< Σ, Q1, q0, F1, Φ1> следующим образом:

Q1= {q0} {q| существуют такие q’ Q и a Σ, что q Φ(q’0, a)}, т.е. кроме начального остаются лишь те состояния, в которые входят непустые ребра.

F1= {q| существует такое q F, что (q, q) }, т.е. к заключительным состояниям M добавляются состояния, из которых можно было попасть в заключительные по путям из ε-ребер.

Для каждой пары q Q, a Σ полагаем

Φ1(q, a) ={r| существует такое q F, что (q, q) Eε∗иr Φ(, q, a)}, т.е. в имеется a-ребро из q в r, если в DM был (возможно пустой) путь из ε-ребер в некоторое состояние q, из которого a-ребро шло в r.

Из этого определения непосредственно следует, что в НКА M1 нет пустых переходов по ε. Установим эквивалентность M и M1.

Лемма 1. .

Доказательство. Пусть w=w1w2...wt произвольное входное слово. Предположим, что w . Это означает, что в диаграмме имеется путь p = e1e2. . . et(e1= (q0=r0, r1), i= 2, . . . , t) из q0 в некоторое состояние , который несет слово w, т.е. ребро ei помечено символом wi. Из определения функции Φ1 непосредственно следует, что для любого ребра этого пути в диаграмме DM имеется путь из в ri, начало (возможно пустое) которого состоит из ε-ребер, а последнее ребро помечено символом wi. Объединив эти пути, получим в диаграмме DM путь из q0 в rt, который несет слово w. Так как rt F1, то либо rt F, либо в DM имеется путь по ε-ребрам из rt в некоторое состояние r’ F . В обоих случаях в DM имеется путь из q0 в заключительное состояние, который несет слово w, и следовательно w LM.

Обратно, пусть w LM. Тогда в DM имеется путь из q0 в некоторое заключительное состояние r, который несет слово w. Пусть r0=q0, а ri - это состояние этого пути, в которое приводит ребро с меткой wi(i = 1, ..., t). Рассмотрим отрезок этого пути между вершинами ri−1 и ri. Последнее ребро этого отрезка имеет метку wi, а все предыдущие (если они имеются) помечены ε. Тогда по определению Φ1 в диаграмме между ri−1 и ri имеется ребро с меткой wi. Объединив эти ребра, получим в путь из q0 в rt. Так как либо rt= r F , либо в DM из rt имеется путь из ε-ребер в r F , то из определения F1следует, что rt F1. Таким образом, w .

Этап 2. Детерминизация.

Идея детерминизации состоит в том, что состояниями ДКА объявляются подмножества состояний НКА. Тогда для каждого такого подмножества T и входного символа a однозначно определено множество состояний T, в которые НКА может попасть из состояний T при чтении a.

Определим по НКА M1=< Σ, Q1, q0, F1, Φ1> ДКА A=<Σ,QА, FAA>следующим образом.

QA= {Q| Q Q1},

= {q0},

FA= {Q| Q∩ F1 ∅},

ΦA(Q, a) = {q | существует такое q Q, что q Φ1(q, a)}.

Ясно, что A детерминированный конечный автомат. Следующая лемма устанавливает связь между его вычислениями и вычислениями исходного НКА.

Лемма 2. Для любой пары состояний Q, Q’’из Q и любого слова w имеем (Q, w) A(Q’’, ε)⇐⇒Q’’= {r | существует такое q Q, что (q, w) (r, ε)}.

Доказательство. Применим индукцию по длине слова w.

Базис. Пусть |w| = 0, тогда w = ε, Q’= Q’’ и утверждение выполнено. Пусть теперь |w| = 1 и w = a Σ. Тогда утверждение леммы следует непосредственно из определения ΦA(Q, a).

Шаг индукции. Предположим, что лемма справедлива для всех слов длины ≤ k, и пусть |w| = k + 1. Выделим в w первый символ: w = aw. Пусть - это такое состояние, что (Q, a) A ( , ε). Тогда ( , w) A(Q’’, ε). Так как |w| = k, то по индукционному предположению это эквивалентно тому, что Q’’= {r существует такое q что (q, w’) M1(r, ε)}. Но из определения ΦA следует, что = {q | существует такое q Q, что q Φ1(q, a)}. Объединив, эти два равенства получаем, что Q’’= {r | существует такое q Q’, что (q, w) M1(r, ε)}.

Для завершения доказательства теоремы покажем с помощью леммы 2, что .

Действительно, если слово w переводит состояние q0 в некоторое q F1 автомате М1,то положив в лемме получим, что состояния , такого что Но тогда

Обратно, если w LA, то для некоторого имеем ({q0}, w) A(Q’’, ε). Тогда в Q’’имеется некоторое состояние q F1 и по лемме 2 в автомате M1 (q0, w) M1 (q, ε)}, т.е. w .

Пример 2.

Применим процедуру из теоремы о детерминизации к НКА N1 из примера 1 (рис. 5.16).

Рис. 5.16. Диаграмма НКА

Заметим, что состояние 4 исчезло, так как в автомате N1 в него можно было попасть только по ε-переходу.

На втором этапе детерминизируем M1. ДКА A будет иметь 16 состояний:

QA= {∅, {0}, {1}, {2}, {3}, {0, 1}, {0, 2}, {0, 3}, {1, 2}, {1, 3}, {2, 3}, {0, 1, 2}, {0, 1, 3}, {0, 2, 3}, {1, 2, 3}, {0, 1, 2, 3}}.

Во множество заключительных состояний войдут состояния, содержащие заключительное состояние 3 автомата M1:

FA= {{3}, {0, 3}, {1, 3}, {0, 1, 3}, {0, 2, 3}, {1, 2, 3}, {0, 1, 2, 3}}.

Функция переходов ΦA определена в следующей таблице

На самом деле нас интересуют лишь те состояния, в которые можно попасть из начального состояния {0}. Несложный анализ показывает, что их только три: {0, 1}, {0, 2} и {0, 1, 3}. Остальные состояния не достижимы из {0} и, следовательно, не влияют на работу автомата A. Их можно отбросить. Таким образом, в диаграмме автомата остаются 4 состояния, показанные на рис. 5.17.

Замечание. В рассмотренном примере у построенного ДКА A оказалось не больше состояний, чем у исходного НКА N1. К сожалению, это не всегда так. Существуют примеры НКА с n состояниями, для которых эквивалентные ДКА содержат не менее 2n состояний.

Рис. 5.17. Диаграмма ДКА

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]