- •Оглавление
- •Глава 1. Алгебраические системы 17
- •Глава 2. Элементы комбинаторики 88
- •Глава 3. Основы теории графов 101
- •Глава 4. Основы математической логики 169
- •4.1.1.4. Эквивалентные преобразования формул 179
- •4.1.4. Выполнить подстановку: 247
- •Глава 5. Основы теории алгоритмов 252
- •Глава 6. Конечные автоматы 289
- •Введение
- •Глава 1. Алгебраические системы
- •1.1 Множества
- •1.1.1. Четкие множества
- •1.1.2. Нечеткие множества
- •1.2. Соответствия, отображения и функции
- •1.2.1. Четкие отображения и функции
- •1.2.2. Нечеткие отображения
- •1.3. Отношение
- •1.3.1. Четкие отношения
- •1.3.2. Нечеткое отношение
- •1.4. Элементы общей алгебры
- •1.5. Булева алгебра
- •1.5.1. Булевы операции
- •1.5.2. Законы булевой алгебры
- •1.5.3. Формула булевой функции
- •1.5.4. Описание булевой функции
- •1.5.5. Суперпозиция булевых функций
- •1.5.6. Свойства булевых функций
- •1.5.6.1. Самодвойственные булевы функции
- •1.5.6.2. Монотонные булевы функции
- •1.5.6.3. Линейные булевы функции
- •1.5.6.4. Функции, сохраняющие “0”
- •1.5.6.5. Функции, сохраняющие “1”
- •1.5.6.6. Функционально полные системы
- •1.5.7. Разложение булевых функции
- •1.5.7.1. Днф булевой функции
- •1.5.7.2. Кнф булевой функции
- •Алгоритм преобразования формулы к скнф:
- •1.5.8. Минимизация булевых функций.
- •1.5.8.1.Минимизация днф булевой функции
- •1.5.8.2. Минимизация кнф булевой функции
- •1.6. Алгебра четких множеств
- •1.6.1. Операции над множествами
- •1.6.2. Законы алгебры множеств
- •1.6.3. Эквивалентные преобразования формул
- •1.6.4. Композиция отображений и отношений
- •1.6.5. Поиск неизвестного множества
- •1.7. Алгебра нечетких множеств
- •1.7.1. Операции над нечеткими множествами
- •1.7.2. Композиция нечетких отображений
- •1.7.3. Композиция нечетких отношений
- •1.7.4. Свойства нечетких отношений
- •Вопросы и задачи
- •Глава 2. Элементы комбинаторики
- •2.1. Размещение из n элементов по k
- •2.2. Перестановка элементов
- •2.3 Сочетание из n элементов по k
- •2.4. Разбиение множества
- •2. 5 Правила комбинаторики
- •Вопросы и задачи
- •Глава 3. Основы теории графов
- •3.1. Граф и его характеристики
- •3.2. Описание графа
- •3. 3. Числа графа
- •3.4. Операции над графами
- •3.4.1. Унарные операции
- •3.4.1.1 Поиск дополнительного графа
- •3.4.1.2. Введение и удаление вершин графа
- •3.4.1.3. Стягивание вершин графа
- •3.4.1.4. Введение и удаление ребер графа
- •3.4.1.5. Поиск плотности и неплотности графа
- •3.4.1.6. Поиск числа компонент связности графа
- •3.4.1.7. Поиск устойчивости графа
- •3.4.1.8. Поиск цикломатического числа графа
- •3.4.1.9. Поиск хроматического числа графа
- •3.4.2. Бинарные операции
- •3.4.2.1. Объединение графов
- •3.4.2.2. Пересечение графов
- •3.4.2.3. Композиция графов
- •3.4.2.4. Соединение графов
- •3.4.2.5. Прямое произведение графов
- •3.4.2.6. Изоморфизм графов
- •3.5. Некоторые алгоритмы на графах
- •3.5.1. Построение покрывающего остова
- •3.5.2. Построение остова минимального веса
- •3.5.3. Поиск кратчайших путей в сети.
- •3.5.4. Поиск максимального потока в сети
- •3.5.5. Метод критического пути в управлении
- •3.6. Нечеткие графы
- •Вопросы и задачи
- •Глава 4. Основы математической логики
- •4.1. Логика высказываний
- •4.1.1. Алгебра высказываний
- •4.1.1.1. Логические операции
- •4.1.1.2. Правила записи сложных формул.
- •4.1.1.3. Законы алгебры высказываний
- •4.1.1.4. Эквивалентные преобразования формул
- •4.1.1.5. Нормальные формы формул
- •4.1.2. Исчисление высказываний
- •4.1.2.1. Интерпретация формул
- •4.1.2.2. Аксиомы и правила введения и удаления логических связок
- •4.1.2.3. Метод дедуктивного вывода
- •4.1.2.4. Принцип резолюции
- •4. 2. Логика предикатов
- •4.2.1. Алгебра предикатов
- •4.2.1.1. Законы алгебры предикатов
- •4.2.1.2. Предваренная нормальная форма формулы
- •4.2.1.3 Сколемовская стандартная форма формулы
- •4. 2. 2. Исчисление предикатов
- •4.2.2.1. Правила подстановки
- •4.2.2.2. Правила введения и удаления кванторов
- •4.2.2.3. Правила заключения
- •4.2.2.4. Метод дедуктивного вывода
- •4.2.2.5. Принцип резолюции
- •4.2.2.6. Логическое программирование
- •4.3. Логика реляционная
- •4.3.1 Реляционная алгебра
- •4.3.1.1. Унарные операции
- •4.3.1.2. Бинарные операции
- •4.3.1.3. Правила реляционной алгебры
- •4.3.2. Реляционное исчисление
- •4.3.3. Языки реляционной логики
- •4.4. Нечеткая логика
- •4.4.1. Нечеткое исчисление
- •4.4.2. Экспертные системы
- •Вопросы и задачи
- •Глава 5. Основы теории алгоритмов
- •5.1. Рекурсивные функции
- •5.1.1. Базовые функции
- •5.1.2. Элементарные операции
- •5.2. Машина Тьюринга
- •5.2.1. Описание машины Тьюринга
- •5.2.2. Примеры машин Тьюринга
- •5.2.3. Композиция машин Тьюринга
- •5.3. Нормальные алгоритмы Маркова
- •5.4 Сложность вычислений
- •Вопросы и задачи
- •Глава 6. Конечные автоматы
- •6.1. Абстрактный автомат
- •6.1.1. Типы конечных автоматов
- •6.1.2. Описание автоматов
- •6.1.3. Автоматное моделирование алгоритмов
- •6.1.3.1. Автомат Мили - модель управляющего автомата
- •6.1.3.2. Автомат Мура - модель управляющего автомата
- •6.1.3.3. Микропрограммный автомат
- •6.1.4. Эквивалентность автоматов
- •6.1.5. Эквивалентность внутренних состояний автомата
- •6.1.5.1. Детерминированный автомат
- •6.1.5.2. Недетерминированный автомат
- •6.2. Структурный автомат
- •6.2.1. Произведение автоматов
- •6.2.1.1. Последовательное соединение автоматов
- •6.2.1.2. Параллельное соединение автоматов
- •Обратная связь автоматов
- •6.2.3. Сумма автоматов
- •6.2.4. Структурный автомат и кодирование
- •6.3. Логическое проектирование автоматов
- •6.3.1. Кодирование алфавитов автомата
- •6.3.2. Автоматы без “памяти”.
- •6.3.2.1. Формирование оператора
- •6.3.2.2. Формирование системы операторов
- •Логическая схема комбинационного автомата
- •6.3.3. Автоматы с “памятью”
- •6.3.3.1. Формирование оператора
- •6.3.3.2. Формирование оператора
- •.3.3.3. Логическая схема автомата с “памятью”
- •Вопросы и задачи
- •Литература
- •Предметный указатель
6.1. Абстрактный автомат
Абстрактным автоматом называют математическую модель дискретного устройства, имеющего один входной канал, куда поступают последовательности символов какого-то языка, один выходной канал, с которого снимают последовательности символов, возможно, другого языка и находящегося в каждый из моментов дискретного времени в каком-либо состоянии.
Слова входного языка можно представить символами множества X={x1,x2,...xn}, который называют входным алфавитом, а слова выходного языка - символами множества Y={y1,y2,...yp}, который называют выходным алфавитом.
Множество состояний автомата Q={q1,q2,...qm} называют алфавитом состояний. Понятие "состояние" автомата используют для того, чтобы установить функциональную зависимость генерируемых автоматом символов от символов входного языка при реализации автоматом заданного алгоритма. Для каждого состояния автомата qQ и для каждого символа входного языка xX в момент дискретного времени [] на выходе устройства генерируется символ yY. Эту зависимость определяет функция выходов автомата - . Для каждого текущего состояния автомата qQ и для каждого символа xX в момент дискретного времени [] автомат переходит в очередное состояние qQ. Эту зависимость определяет функция переходов автомата - .
Функционирование автомата есть последовательность состояний автомата (q1[[1]q2[2]q3[3]...) и выходных символов (y1[1]y2[2]y3[3]...) под влиянием последовательности символов на входе автомата (x1[1]x2[2]x3[3]...). Каждый символ входной последовательности считывается в дискретный моменты времени []=1, 2, 3,...Поэтому в прямых скобках. указывают моменты дискретного времени, которые называют тактами,
Математическая модель конечного автомата есть
M =X; Y; Q; ;
где X={ x1, x2,...xn } |
- |
- множество символов входного алфавита; |
Y={ y1, y2, ..yp } |
- |
- множество символов выходного алфавита; |
Q={q1, q2,...qm} |
- |
- множество символов состояний автомата; |
(QX) Q |
- |
- функция переходов автомата для отображения пары (q; x) текущего момента времени [] в состояние q очередного момента времени [+1]; |
(QX) Y |
- |
- функция выходов автомата для отображения пары (q; x) текущего момента времени [] в символ y выходного канала этого же момента времени []. |
Так как области определения функций переходов и выходов совпадают, то обобщенный оператор поведения автомата можно описать так:
, : (QX) (QY).
Функционирование автомата в дискретные моменты времени может быть описано системой рекуррентных соотношений:
Если на входе автомата слово = (x1x2x3...x), то, считывая последовательно символы этого слова, на выходе автомата генерируется последовательность символов слова по схеме:
[1]=((q[1]; x1[1]));
[2]=((q[1]; x1[1]) (q[2]; x2[2])) = ((q[1]; x1[1])(q[1]; (x1[1]x2[2])));
……………………………………………..............................................
[]=((q[1];x1[1])(q[2];x2[2])...(q[s];x[])) =
= ((q[1];x1[1])(q[1];(x1[1]x2[2]))...(q[1];(x1[1]x2[2] ... x[])));
Так как на каждом i-ом такте к слову длины (i-1) приписывается справа очередной символ (q[1]; (x1[1]x2[2]...xi[i])), то последовательность символов выходного слова можно записать так:
= ((q;x1)(q;(x1x2))...(q;(x1x2...xs)))=((q; )).
Если считывание символов входного слова выполняется последовательно слева направо, то всегда найдется такая последовательность (x1x2...xs-1)=, для которой = ((x1x2...xs-1)xs) =(xs), где =(x1x2...xs-1) –"голова" слова , а xs –“хвост" слова .
Поэтому если входное слово = (xs), то выходное слово можно записать так
=(q; ) = ((q; );xs
Это означает, что последний символ слова есть результат работы автомата, начавшего работу в состоянии q и считавшего последний символ слова , но значение этого символа зависит от всей входной последовательности .
Длина выходного слова всегда равна длине входного слова.
Изменение состояний автомата для последовательности символов слова = (x1x2x3...xs) может быть описано следующей схемой:
q[2] = (q[1];x1[1]);
q[3] = (q[2];x2[2]) = ((q[1];(x1[1]);x2[2]));
............................................................................................
q[+1] =(q[s];x[])=(..( ( (q[1];x1[1]);x2[2]);..x-1[-1]);x []),
где q[1] - начальное состояние автомата.
Так как за один такт автомат считывает один символ входного слова, то в последовательности состояний автомата можно не указывать номер такта, т. е. описывать так:
q[+1] = (... ((((q;x1);x2);x3)...x-1);x).
Если входное слово =(x), то изменение состояния автомата может быть описано так:
q[+1] = ((q, );x).
Это означает, что q[+1] есть последнее состояние автомата, начавшего работу в состоянии q и считавшего последний символ слова в момент дискретного времени .
Если функции переходов и выходов однозначно определены для каждой пары (q; x)(QX), то автомат называют детерминированным. В противном случае автомат называют недетерминированным или частично определенным.
Если функция переходов и/или функция выходов являются случайными, то автомат называют вероятностным.
Если у автомата задано начальное состояние q=q0Q, в котором он находится всегда до приема первого символа входного слова, то автомат называют инициальным.
В этом случае модель автомата записывают так:
M=X; Y; Q; ; ;q0.
Последовательность символов в слове и последовательность состояний автомата q однозначно определяются начальным состоянием автомата q=q0 и последовательностью символов во входном слове .
Отображение входного слова на выходное слово называют автоматным отображением, то есть =М(q0; ), а М называют автоматным оператором.
Автоматное отображение обладает свойствами:
входное и выходное слова имеют одинаковую длину;
yi-ый символ выходного слова зависит от всей последовательности символов входного слова, до xi-го включительно.