
- •Введение в дискретный анализ
- •Глава 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. Детерминизация нка
- •Вопросы для повторения
- •Резюме по теме
Вопросы для повторения
1.Конечный автомат это?
2.В чем отличие конечного автомата и просто автомата?
3.Назовите множества, которые описывают конечный автомат?
4.Приведите различие модели автомата Мили и Мура?
5.Приведите способы задания автоматов?
6.Как осуществляется переход от автомата Мили к модели автомата Мура?
7. Как осуществляется переход от автомата Мура к модели автомата Мили?
8.Сформулируйте достоинства и недостатки различных способов задания автоматов?
9.Что такое функция переходов?
Резюме по теме
Показан способ принятия решений при помощи конечных автоматов. Даны основные характеристики и способы представления информации конечными автоматами. Выявлена структура автомата с его набором множеств, таких например, как множество входных и выходных значений. Рассмотрены способы задания автоматов. Приведены наиболее часто используемые автоматы Миля и Мура, а так же показано их отличие в работе. Рассмотрена взаимосвязь между моделями автоматов Миля и Мура, где показан переход из одной модели в другую и наоборот.
Тема 5.2. Детерминированные конечные автоматы
Цель: ознакомиться с детерминированными конечными автоматами.
Задачи:
Рассмотреть основные понятия детерминированных конечных автоматов.
Изучить схему доказательства правильности автомата.
Показать как осуществляется произведение автоматов.
5.2.1.Основные понятия детерминированных конечных автоматов
Конечные
автоматы часто используются для
определения тех или иных свойств слов,
т.е. для распознавания языков: автомат,
распознающий некоторый язык L
должен по произвольному слову w
ответить на вопрос w
L?.
Для решения такой задачи функция выходов
может быть заменена на проверку того,
в какое состояние переходит автомат
после получения входного слова w
принимающее или отвергающее.
Детерминированный конечный автомат (ДКА) – распознаватель - это система вида
A =< Σ, Q, q0, F, Φ, >,
включающая следующие компоненты:
Σ = {a1, . . . , am} (m ≥ 1) конечное множество - входной алфавит;
Q = {q0, . . . , qn−1}(n ≥ 1) конечное множество - алфавит внутренних состояний;
q0 Q начальное состояние автомата;
F
Q
множество принимающих (допускающих,
заключительных) состояний;
Φ : Q Ч Σ → Q функция переходов, Φ(q, a) это состояние, в которое переходит автомат из состояния q, когда получает на вход символ a.
Функцию Φ называют программой автомата A и задают как список из mn команд вида qiaj→Φ(qi, aj).
Удобно
также задавать функцию Φ
с помощью описанной выше таблицы размера
n
m,
строки которой соответствуют состояниям
из Q,
а столбцы символам из входного алфавита
Σ, в которой на пересечении строки qi
и
столбца aj
стоит
состояние Φ(qi,
aj).
Как и автоматы-преобразователи, автоматы-распознаватели можно представлять с помощью размеченных ориентированных графов, называемых диаграммами.
Диаграмма ДКА A =< Σ, Q, q0, Φ > это ориентированный мультиграф DA= (Q, E) с помеченными ребрами, в котором выделена вершина начальное состояние q0 из каждой вершины q Q выходит |ΣX| ребер, помеченных символами a Σ так, что для каждой q Q и каждого символа a Σ имеется единственное ребро из q в вершину q0 = Φ(q, a) с меткой a.
Скажем, что представленный последовательностью ребер путь p = e1e2. . . et в диаграмме несет слово w = w1w2. . . wt, если wi это метка ребра ei(1 ≥ i ≥ t). Если q начальная вершина (состояние) этого пути, а q’его заключительная вершина, то будем говорить, что слово w переводит q в q’.
Работа конечного автомата-распознавателя состоит в чтении входного слова и изменению состояний в зависимости от его символов.
Конфигурация ДКА A =< Σ, Q, q0, F, Φ, > - это произвольная пара вида (q, w), в которой q Q и w Σ∗ (напомним, что через Σ∗ обозначено множество всех слов в алфавите Σ, включающее и пустое слово ε).
На множестве конфигураций введем отношение перехода за один шаг: ├А
(q,
w) `A(q’,
w’)
w
= aw’,
Φ(q,
a) = q’.
Если w = ε, то положим для каждого q Q: (q, ε) ├А(q, ε).
Через
обозначим
рефлексивное и транзитивное замыкание.
Содержательно,
(q,
w)
(q’, w’)
означает, что автомат A,
начав работу в состоянии q
на слове w
= w1.
. . wl
через
некоторое конечное число шагов 0
≤ k ≤ l
прочтет первые k
символов слова
w
и перейдет в состояние q’,
а w’=
wk+1
. . . wl
это непрочтенный остаток слова w.
ДКА A распознает (допускает, принимает) слово w, если для некоторого q F (q0, w) (q, ε), т.е. после обработки слова w автомат переходит в принимающее состояние.
Язык LA, распознаваемый (допускаемый, принимаемый) автоматом A, состоит из всех слов, распознаваемых этим автоматом:
LA= {w | A распознает w}.
Язык называется, конечно автоматным, если он распознается некоторым ДКА.
Из этого определения, в частности, следует, что ε LA q0 F . Один и тот же язык может распознаваться разными автоматами.
Автоматы A и B называются эквивалентными, если совпадают распознаваемые ими языки, т.е. LA= LB.
Определение распознавания слова и языка можно легко перевести на язык диаграмм.
Лемма 1. Автомат A распознает (допускает, принимает) слово w, если для некоторого q F в диаграмме DA имеется путь из q0 в q, который несет слово w, т.е. w переводит q0 в заключительное состояние q.
Доказательство можно провести индукцией по длине слова w.
Таким образом, язык LA, распознаваемый автоматом A, состоит из всех слов, которые переводят в его диаграмме DA начальное состояние q0 в заключительные состояния из F .
Во многих случаях удается доказать, что язык L конечно автоматный, непосредственно построив распознающий его автомат. Для этого нужно постараться разбить множество всех входных слов на конечное число классов однородных, эквивалентных слов, т.е. слов, получение которых на входе одинаково влияет на возможность их продолжения до слов распознаваемого языка. Затем для каждого такого класса создать состояние автомата и определить переходы между этими состояниями. Часто полезно бывает выделить одно состояние для представления ошибочных слов, для которых ни они сами, ни любые их продолжения не входят в язык.
Пример 1.
Рассмотрим язык L, состоящий из всех слов в алфавите Σ = {a, b}, которые начинаются на aa и содержат нечетное число символов b.
Для
выделения слов, начинающихся на aa
создадим начальное состояние q0,
которое первый символ a
будет
переводить в состояние q1,
а второй символ a
будет
переводить q1
в
состояние q2.
Ясно, что все слова, которые начинаются
на ab,
ba, bb сами
не входят в язык L
и все их продолжения также ошибочны.
Заведем для них ошибочное состояние
q!.
Остальные слова естественно разбиваются
на два класса: т.е., в которых четное
число символов b,
и те, в которых число таких символов
нечетно (они и принадлежат L).
Так как после получения aa
число b
четно, то для представления слов первого
класса будем использовать состояние
q2,
а для представления слов второго создадим
состояние q3,
которое и будет заключительным. В
результате получаем автомат, диаграмма
которого представлена на рис. 5.14. Здесь
начальное состояние отмечено стрелкой
,
а заключительное состояние отмечено
двумя окружностями.
Рис. 5.14. Диаграмма автомата А
Проверим работу этого автомата, например, на входном слове w = aaababa. При его чтении порождается следующая последовательность конфигураций:
(q0,
aaababa)
(q1,
aababa)
(
(q2,
ababa)
(
(q2,
baba)
(
(q3,
aba)
(
(q3,
ba)
(
(q2,
a
()(q2,
ε).
Заключительное состояние этого вычисления q2 не является заключительным.
Следовательно,
w
LA.
Если же мы рассмотрим в качестве входа
слово w1=
wb =aaababab,
то, продолжив на один шаг приведенное
выше вычисление, получим, что (q0,
w1)
(q3,
ε).
Следовательно, w1
LA.
Проверка показала, что на двух входах автомат A работает верно. Как установить, что он построен корректно, т.е. верно работает на всех входных словах и распознает L?