- •Оглавление
- •Глава 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.3.1. Кодирование алфавитов автомата
Пусть таблицей 6.41 дан минимизированный абстрактный автомат.
Таблица 6. 41 |
|
Таблица 6. 42 |
||||||
текущие qi |
xX |
|
текущие qi |
xX |
||||
1 |
2 |
3 |
|
1 |
2 |
3 |
||
q1 |
q2; 1 |
q2; 0 |
q3; 0 |
|
001 |
010; 1 |
010; 0 |
011; 0 |
q2 |
q1; 0 |
q2; 1 |
q2; 1 |
|
010 |
001; 0 |
010; 1 |
010; 1 |
q3 |
q4; 1 |
q2; 0 |
q1; 0 |
|
011 |
100; 1 |
010; 0 |
001; 0 |
q4 |
q1; 0 |
q5; 1 |
q4; 1 |
|
100 |
001; 0 |
101; 1 |
100; 1 |
q5 |
q3; 0 |
q5; 1 |
q3; 1 |
|
101 |
011; 0 |
101; 1 |
011;1 |
В данном автомате X={1, 2, 3}, Y={0, 1}, Q={q1, q2, q3, q4, q5}.
Число разрядов в регистрах входа и выхода структурного автомата и в регистре внутренних состояний должно быть:
log2|X|=log23n=2,
log2|Y|=log22n=1,
log2|Q|=log25n=3.
Поведение автомата при кодовом описании сигналов представлено в таблице 6.42.
6.3.2. Автоматы без “памяти”.
Выбор состава и структуры комбинационного автомата начинают с исследования функциональной зависимости булевой функции от компонент булевого вектора. При этом минимизируют число двоичных переменных в описании одной или нескольких, полностью или частично определенных булевых функций. Аналитические приемы минимизации состава и структуры одной, полностью определенной булевой функции были изложены в 1.5.8.
Ниже будет рассмотрен инженерный способ минимизации числа двоичных переменных в описании одной или нескольких, полностью или частично определенных булевых функций.
6.3.2.1. Формирование оператора
В основе метода лежит использование таблиц специального вида - диаграмм Вейча или карт Карно.
В диаграммах Вейча каждой клетке присваивается номер, значение которого в двоичной системе счисления записывается в клетку. Каждый разряд кода есть двоичная переменная булевого вектора. Число клеток диаграммы должно быть 2n, где n - число двоичных переменных. Особенность нумерации клеток заключена в том, что любые две рядом расположенные клетки отличаются в кодовой конфигурации не более, чем в одном разряде. Это позволяет для одинаковых значений булевой функции “склеивать” соседние клетки диаграммы и описывать их сокращенными элементарными конъюнкциями или дизъюнкциями двоичных переменных, имеющими одинаковое значение. Так можно объединить по вертикали и/или по горизонтали две, четыре и восемь смежных клеток. Следует обратить внимание, что кодовые конфигурации клеток левого и верхнего краев диаграммы отличаются от кодовых конфигураций клеток правого и нижнего краев также только в одном разряде, что позволяет “склеивать” и крайние клетки.
На рис. 6.20 представлены диаграммы Вейча для булевых векторов (x1, x2, x3), (x1, x2, x3, x4) и (x1, x2, x3, x4, x5, x6). В этих диаграммах каждая клетка таблицы описана двоичным кодом длины три, четыре и шесть. Вне поля таблицы указаны имена двоичных переменных.
На рис. 6.21 представлены карты Карно для булевых векторов (x1, x2, x3), (x1, x2, x3, x4) и (x1, x2, x3, x4, x5, x6). В этих картах нет наборов двоичных переменных, но вне поля таблицы указаны имена булевых переменных. Это позволяет в клетках карты указывать значения булевой функции.
Каждую клетку карты Карно можно описать элементарной конъюнкцией или элементарной дизъюнкцией двоичных переменных, используемых в карте Карно. Если в клетке карты указано значение функции f=1, то эта клетка может быть описана элементарной конъюнкцией СДНФ. И наоборот, если в клетке указано значение f=0, то – элементарной дизъюнкцией СКНФ (см. 1.5.7). Множество клеток карты Карно, где f=1, описывают дизъюнкцией элементарных конъюнкций СДНФ. И наоборот, множество клеток карты Карно, где f=0, описывают конъюнкцией элементарных дизъюнкций СКНФ.
Левый край строки карты Карно примыкает к правому, а верхний соответствующего столбца - к нижнему. Если карту Карно свернуть в трубку, то крайние клетки отличаются между собой значением только одной двоичной переменной (см. рис. 6.20).
|
|
Для f(x1, x2, x3, x4) |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
X1 |
|
|
|
|
|
|||
Для f(x1, x2, x3) |
|
X2 |
|
|
|
|
|
|
|
|
|
||||||||
|
X1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
X2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X3 |
|
|
|
|||
Для f(x1, x2, x3, x4, x5, x6) |
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
X5 |
|
|
X5 |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
X1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
X2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X4 |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X3 |
|
|
|
|
|
|
|
|
|
|
|
|
|||
Рис. 6.21. Карты Карно (x1, x2, x3), (x1, x2, x3, x4) и (x1, x2, x3, x4, x5, x6) |
Любые смежные клетки карты Карно также различаются между собой только одной двоичной переменной. Так как смежные и крайние клетки карты Карно различаются между собой значением только одной двоичной переменной, то их можно “склеить” и описать сокращёнными нормальными формами формул, воспользовавшись законами противоречия и дистрибутивности. При объединении двух смежных клеток карты сокращённая конъюнкция (или дизъюнкция) имеют (n-1) двоичную переменную. При объединении четырёх клеток формируется сокращенная нормальная форма, содержащая (n-2) двоичных переменных, а при объединении восьми - (n-3) двоичных переменных.
Пусть булева функция четырех двоичных переменных задана таблицей 6.43 и отображена на карте Карно (см. рис.6.22).
Таблица 6.43. |
|
|
|
|
|
|
|||||
x1 |
x2 |
x3 |
x4 |
|
|
|
x 1 |
|
|
|
|
0 |
0 |
0 |
0 |
0 |
|
x2 |
1 |
1 |
0 |
0 |
|
1 |
0 |
0 |
0 |
0 |
|
* |
1 |
1 |
1 |
x4 |
|
0 |
1 |
0 |
0 |
0 |
|
|
0 |
0 |
1 |
1 |
|
1 |
1 |
0 |
0 |
1 |
|
|
0 |
* |
0 |
0 |
|
0 |
0 |
1 |
0 |
0 |
|
|
|
x3 |
|
|
|
1 |
0 |
1 |
0 |
* |
|
|
Рис 6.22. Карта Карно |
||||
0 |
1 |
1 |
0 |
0 |
|
|
|||||
1 |
1 |
1 |
0 |
1 |
|
||||||
0 |
0 |
0 |
1 |
1 |
|
||||||
1 |
0 |
0 |
1 |
0 |
|
||||||
0 |
1 |
0 |
1 |
1 |
|
||||||
1 |
1 |
0 |
1 |
* |
|
||||||
0 |
0 |
1 |
1 |
1 |
|
||||||
1 |
0 |
1 |
1 |
0 |
|
||||||
0 |
1 |
1 |
1 |
1 |
|
||||||
1 |
1 |
1 |
1 |
1 |
|
Анализ карты показывает, что в четырех смежных клетках, описываемых кодами 0111, 0011, 0101 и 0001, булева функция имеет значение “1” ”.
Следовательно, =1=x1x2x3x4x1x2x3x4 x1x2x3x4 x1x2x3x4=x1x3x4(x2x2)x1x3x4(x2x2)= x1x3x4x1x3x4 =x1 x4(x3x3)=x1 x4
В четырех крайних по вертикали клетках, описываемых кодами 0110, 0100, 0010 и 0000 – значение ”0”.
Следовательно, =0=(x1x2x3x4)(x1x2x3x4)(x1x2x3x4)(x1x2x3x4)= =((x1x2x4)x3x3)((x1x2x4)x3x3)=(x1x2x4)(x1x2x4)= (x1x4)x2x2=(x1x4).
Есть по две смежных клетки, имеющих одинаковые значения функции.
Например, для =1 это клетки, имеющие коды 1100 и 1110, 1110 и 1111, 1111 и 0111, для =0 - это 1000 и 1001, 1001 и1011, 1000 и 0000.
Булевы функции для этих пар клеток могут быть описаны сокращенными нормальными формами:
=1=x1x2x4 x1x2x3x2x3x4,
=0=(x1x2x3)(x1x2 x4)(x2x3x4).
Множество клеток, в которых булева функция имеет значение “0” или “1”, позволяет сформировать минимальную ДНФ или КНФ из числа сокращенных. На рис.6.23 узором выделены возможные варианты минимальных ДНФ и КНФ.
a ) |
x 1 |
|
|
|
|
c) |
x 1 |
|
|
|
||
x2 |
1 |
1 |
0 |
0 |
|
|
x2 |
1 |
1 |
0 |
0 |
|
* |
1 |
1 |
1 |
x4 |
|
* |
1 |
1 |
1 |
x4 |
||
|
0 |
0 |
1 |
1 |
|
|
0 |
0 |
1 |
1 |
||
|
0 |
* |
0 |
0 |
|
|
|
0 |
* |
0 |
0 |
|
|
|
x 3 |
|
|
|
|
|
x 3 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
b) |
x 1 |
|
|
|
|
d) |
x 1 |
|
|
|
||
x2 |
1 |
1 |
0 |
0 |
|
|
x2 |
1 |
1 |
0 |
0 |
|
* |
1 |
1 |
1 |
|
|
* |
1 |
1 |
1 |
x4 |
||
|
0 |
0 |
1 |
1 |
|
|
0 |
0 |
1 |
1 |
||
|
0 |
* |
0 |
0 |
|
|
|
0 |
* |
0 |
0 |
|
|
|
x 3 |
|
|
|
|
|
x 3 |
|
|
Рис. 6.23. Карты Карно для таблицы 6.43.
Минимальные ДНФ:
для карты а) min(x1, x2, x3, x4)=x1x4x1x2x4 x1x2x3 ,
для карты b) min(x1, x2, x3, x4)=x1x4x1x2x4x2x3x4.
Минимальные КНФ:
для карты c) min(x1, x2, x3, x4)=(x1x4)(x1x2x4) )(x1x2x3),
для карты d) min(x1, x2, x3, x4)=(x1x4)(x1x2x4)(x2x3x4).
В двух клетках карты не определены значения булевой функции (помечены знаком “*”). Анализ позволяет допустить для кода 1101 значение f=1, для кода 1010 значение f=0.
Тогда минимальная ДНФ min(x1, x2, x3, x4)=x1x4x1x2,
Минимальная КНФ min(x1, x2, x3, x4)=(x1x4)(x1x2).