- •Введение в дискретный анализ
- •Глава 1. Введение в теорию множеств
- •Тема 1.1. Множества и операции над ними
- •1.1.1. Основные понятия
- •1.1.2. Операции над множествами
- •1.1.3. Векторы и прямые произведения
- •Вопросы для повторения
- •Резюме по теме
- •Тема 1.2. Отношения
- •1.2.1. Основные понятия и определения
- •1.2.2. Бинарные отношения. Основные определения
- •1.2.4. Эквивалентность и порядок
- •Вопросы для повторения
- •Резюме по теме
- •Тема 1.3. Соответствия и функции
- •1.3.1. Соответствия и их свойства
- •1.3.2. Взаимно однозначные соответствия и мощности множеств
- •1.3.3. Функции и отображения
- •1.3.4. Операции
- •1.3.5. Гомоморфизмы и изоморфизмы
- •Вопросы для повторения
- •Резюме по теме
- •Глава 2. Математическая логика
- •Тема 2.1. Логика высказываний
- •2.1.1. Логические связки
- •2.1.2. Основные схемы логически правильных рассуждений
- •2.2.2. Булева алгебра
- •2.2.3. Эквивалентные преобразования
- •Вопросы для повторения
- •Резюме по теме
- •Тема 2.3. Полнота и замкнутость
- •2.3.1. Функционально полные системы
- •2.3.2. Алгебра Жегалкина и линейные функции
- •2.3.3. Замкнутые классы и монотонные функции
- •2.3.4. Теоремы о функциональной полноте
- •Вопросы для повторения
- •Резюме по теме
- •Тема 2.4. Нечеткая логика
- •2.4.1. Основные понятия теории нечетких множеств
- •2.4.2. Логические операции над нечеткими множествами
- •2.4.3. Свойства логических операций над нечеткими множествами
- •Вопросы для повторения
- •Резюме по теме
- •Тема 2.5. Нечеткие модели управления
- •2.5.1. Нечеткие операторы
- •2.5.2. Нечеткая и лингвистическая переменные
- •2.5.3. Нечеткий логический вывод
- •Вопросы для повторения
- •Резюме по теме
- •Тема 2.6. Логика предикатов
- •2.6.1. Предикаты. Основные понятия
- •2.6.2. Кванторы
- •2.6.3. Выполнимость и истинность
- •2.6.4. Эквивалентные соотношения. Префиксная нормальная форма
- •Вопросы для повторения
- •Резюме по теме
- •Глава 3. Комбинаторика
- •Тема 3.1. Комбинаторные конфигурации
- •3.1.1. Принципы сложения и умножения
- •3.1.2. Перестановки
- •3.1.3. Размещения
- •3.1.4. Сочетания
- •3.2.2. Полиномиальная формула
- •3.2.3. Формула включений и исключений
- •Вопросы для повторения
- •Резюме по теме
- •Глава 4. Теория графов
- •Тема 4.1. Основные понятия и операции на графах
- •4.1.1. Основные понятия
- •4.1.2. Способы задания графов
- •4.1.3. Операции над частями графа. Графы и бинарные отношения
- •Вопросы для повторения
- •Резюме по теме
- •Тема 4.2. Маршруты и деревья
- •4.2.1. Маршруты, пути, цепи, циклы
- •4.2.2. Дерево и лес
- •5.1.2. Способы задания автоматов
- •5.1.3. Взаимосвязь между моделями Мили и Мура
- •Вопросы для повторения
- •Резюме по теме
- •Тема 5.2. Детерминированные конечные автоматы
- •5.2.1.Основные понятия детерминированных конечных автоматов
- •5.2.2. Схема доказательства правильности конечного автомата
- •5.2.3. Произведение автоматов
- •5.3.2. Детерминизация нка
- •Вопросы для повторения
- •Резюме по теме
5.3.2. Детерминизация нка
Детерминированные конечные автоматы являются частными случаями недетерминированных. Следовательно возникает вопрос, распознают ли недетерминированные конечные автоматы больший класс языков чем детерминированные? На данный вопрос отвечает теорема показывает, что классы языков, распознаваемых НКА и ДКА совпадают.
Теорема 1. Детерминизация НКА
Для каждого НКА M можно эффективно построить такой ДКА A, что LA= LM.
Доказательство. Пусть M =< Σ, Q, q0, F, Φ > НКА. Процедура построения по нему эквивалентного ДКА состоит из двух этапов: на первом построится эквивалентный ему НКА M1, в программе которого отсутствуют переходы по ε, а на втором этапе по M1 строится эквивалентный ДКА A.
Этап 1. Устранение пустых переходов.
Рассмотрим поддиаграмму автомата M, в которой оставлены лишь ребра, помеченные ε:Dε= (Q, Eε), где Eε={(q, q’)|q’ Φ(q, ε)}. Пусть = (Q, ) - это граф достижимости (транзитивного замыкания) для Dε. Тогда ={(q, q’) |q = q’ или в Dε имеется путь из 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А, FA,ΦA>следующим образом.
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. Диаграмма ДКА