- •Г.С. Розаренов, в.А. Шаруда дискретная математика Учебное пособие
- •Воронеж 2008
- •Воронеж 2008
- •Введение
- •1. Множества
- •1.1. Основные понятия
- •Упражнения
- •1.2. Операции над множествами
- •Упражнения
- •1.3. Диаграммы Венна
- •Упражнения
- •1.4. Доказательства
- •Упражнения
- •1.5. Векторы, прямые произведения, проекции векторов
- •Упражнения.
- •2. Алгебра логики
- •2.1. Функции алгебры логики
- •2.2. Формулы. Реализация функций формулами
- •2.3. Эквивалентность формул. Свойства элементарных функций. Принцип двойственности
- •2.4. Разложение булевых функций по переменным. Совершенная дизъюнктивная нормальная форма
- •2.5. Полнота и замкнутость
- •2.6. Проблема минимизации булевых функций
- •Упражнения.
- •2.7. Упрощение д.Н.Ф. Тупиковые (относительно упрощения) д.Н.Ф.
- •Упражнения.
- •3. Язык логики предикатов
- •3.1. Основные понятия логики предикатов
- •3.2. Истинные формулы и эквивалентные соотношения
- •Упражнения.
- •4. Теория графов
- •4.1.Основные понятия
- •Г раф изоморфен
- •4.2. Способы задания графов
- •Матрица инцидентности (ij)
- •4.3. Операции над частями графа
- •4.4. Маршруты, пути, цепи, циклы
- •4.5. Дерево и лес
- •4.6. Сети
- •Упражнения.
- •5. Введение в теорию алгоритмов
- •5.1. Предварительные обсуждения
- •5.2. Блок-схемы алгоритмов
- •5.3. Машины Тьюринга
- •5.4. Некоторые операции над машинами Тьюринга
- •5.5. Рекурсивные функции
- •6. Автоматы
- •6.1. Определение основных понятий
- •6.2. Изоморфизм и эквивалентность автоматов
- •6.3. Сети из автоматов
- •6.4. Синхронные сети
- •6.5. Программная реализация логических функций
- •Заключение
- •394026 Воронеж, Московский просп., 14
6. Автоматы
6.1. Определение основных понятий
Определение: Конечным автоматом (автоматом) называется система S={A,Q,V,, }, в которой A={a1,…, am}; Q={q1,…, qn}; V={v1,…, vk} – конечные множества (алфавиты), а : QAQ и : QAV – функции, определяемые на этих множествах.
А называется входным алфавитом, V- выходной алфавит, Q – алфавит состояний, - функция переходов, - функция выходов. Если, кроме того, в автомате S выделено одно состояние, называемое начальным (q1), то такой автомат называется инициальным и обозначается (S,q1), таким образом, по неинициальному автомату с n состояниями можно n различными способами определить инициальный автомат. Поскольку функции и определены на конечных множествах, их можно задавать таблицами. Обычно две таблицы сводятся в одну : QA=QV. Эта таблица называется таблицей автомата или просто автоматной таблицей.
Пример 1: Таблица задает функции переходов и выходов для автомата с алфвитами: A={a1, a2, a3}; Q={q1, q2, q3, q4}; V={v1, v2}
Таблица 20
q\a |
a1 |
a2 |
A3 |
q1 |
q3,v1 |
q3,v2 |
q2,v1 |
q2 |
q4,v1 |
q1,v1 |
q1,v1 |
q3 |
q2,v1 |
q3,v1 |
q3,v2 |
q4 |
q4,v1 |
q2,v1 |
q1,v2 |
Еще один способ задания автомата – ориентированный мультиграф, называемый графом перехода или диаграммой переходов.
Вершины графа соответствуют состояниям; если (qi,aj)=qk и (qi,aj)=Ve, то из qi в qk ведет ребро, на котором написаны aj и Ve.
Кратные ребра не обязательны, например два ребра из q2 в q1 можно заменить одним ребром, на котором написаны обе пары q3|V1 и q2|V1.
Для любого графа переходов в каждой вершине qi выполнены следующие условия, которые называются условиями автоматности и корректности:
1) для каждой входной буквы аj имеется ребро, выходящее из qi, на котором написанно aj (условие полноты);
2) любая буква aj встречается только на одном ребре, выходящим из qi (условие непротиворечивости и детерминированности).
Для данного автомата S его функции S и S могут быть определены не только на множестве А всех входных букв, но и на множестве А всех входных слов. Для любого входного слова
,
Это традиционное определение с “многоточиями”. Немного точнее читается индуктивное определение:
1) (qi, aj) задается автоматной таблицей S;
2 ) Для любого слова A* и любой буквы aj
(qi, aj)= ( (qi, ) ,aj). (6.1)
С помощью расширенной функции определятся расширенная функция
(qi, aj)= ( (qi, ) ,aj). (6.2)
Зафиксируем в автомате S начальное состояние q1 и каждому выходному слову поставим в соответствие слово в выходном алфавите:
=(qi, aj1) (qi, aj1, aj2)… (qi, aj1, aj2 ,…,ajk) (6.3)
Это соответствие, отображающее входные слова в выходные слова, называется автоматным отображением , а также автоматным (или ограниченно детерминированным) оператором, реализуемым оператором (S,q1).
Иногда говорят кратко – оператор (S,q1) или оператор S (если автомат S инициальный), и записывают S (q1,)= и S()=.
Число букв в называют длиной слова и обозначают || или l(). Автоматное отображение также удобно определить индуктивно:
(6.4)
Автоматное отображение обладает двумя свойствами, которые следуют из (6.3) и (6.4):
1. слова и S()= имеют одну длину:||=||;
2. если =12 и S(12)=12, где |1|=|1|, то S(1)=1. Другими словами: образ отрезка длиной i равен образу отрезка той же длины.
Свойство 2 отражает тот факт, что автоматные операторы – это операторы без предвосхищения, т.е. операторы, которые перерабатывая слово слева направо не «заглядывают вперед»: i-я буква выходного слова зависит только от i букв входного слова (пример оператора с предвосхищением – оператор отражения, ставящий в соответствие слову слово , здесь первая буква выходного слова равна последней входного).
Введенные определения (6.1)-(6.4) наглядно интерпретируются на графе переходов. Если зафиксированна вершина qi, то всякое слово = однозначно определяет путь длины к из этой вершины (обозначим его (qi, )), на к ребрах которого написаны соответственно буквы , поэтому (qi, )- это последняя вершина пути (qi, ); (qi, )- выходная буква, написанная на последнем ребре пути (qi, ), а отображение S(qi, ) – слово, образованное к выходными буквами на к ребрах пути (qi, ).
Пример 2: Для автомата S с заданной таблицей:
(q2, a3a2)= (q2, a3a1)=q3,
(q2, a3a1a1)=q2,
(q2, a3a2)=v2,
(q2, a3a1)=v1,
(q2, a3a1 a1)=v1,
S(q2, a3a2)= v1v2,
S(q2, a3a1)=v1 v1,
S(q2, a3a1 a1)=v1 v1 v1.
Состояние qj называется достижимым из состояния qi, если имеется входное слово , такое, что (qi, )= qj.
Автомат S называется сильно связным, если его входной алфавит состоит из одной буквы: А={a}, а все слова имеют вид ааа..а.
П ример 3:
Таблица 21
Q |
a |
1 |
3,0 |
2 |
4,0 |
3 |
4,0 |
4 |
7,0 |
5 |
4,2 |
6 |
5,0 |
7 |
6,1 |
8 |
9,0 |
9 |
9,1 |
Автоматная таблица и граф автономного автомата, задаваемый таблицей (входные буквы на ребрах опущены); выходной алфавит V={0,1,2}. Здесь и далее символы состояний qi для краткости заменены их индексами.