![](/user_photo/2706_HbeT2.jpg)
- •Оглавление
- •Глава 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. Логическая схема автомата с “памятью”
- •Вопросы и задачи
- •Литература
- •Предметный указатель
Глава 2. Элементы комбинаторики
Во многих практических случаях возникает необходимость знать возможные наборы объектов множества, удовлетворяющие определенным условиям. Такие задачи называют комбинаторными, а возможные наборы объектов - выборками.
Комбинаторные задачи оценивают с точки зрения числа выборок, а алгоритм этого выбора - с точки зрения его сложности. При этом различают сложность алгоритма по времени, т. е. числу шагов алгоритма, и по памяти, т. е. объему памяти для выполнения поставленной задачи.
Специфика комбинаторного анализа состоит в правилах выбора элементов множества Х для формирования комбинаторных объектов:
если k элементов выборки упорядочены по какому-либо правилу, то формируется кортеж длины k и их множество,
если k элементов выборки неупорядочены, то формируется подмножество мощности k и их множество.
При этом каждую выборку называют комбинаторным объектом, а их количество - комбинаторным числом.
Пусть на множестве Х={a, b, c, d} необходимо сформировать трехэлементные комбинаторные объекты. Множество таких объектов может быть:
1) А1={(a, b, c); (b, a, c); (b, c, a); (c, b, a);...(d, c, b)};
2) А2={{a, b, c}; {a, c, d}; {b, c, d}};
3) А3={(a, a, с); (a, a, b); (a, b, a); (b, a, a);...; (с, а, а)};
Для множества A1 важным является порядок следования элементов внутри выборки. Так формируется множество кортежей.
Для множества A2 важным является не порядок элементов внутри выборки, а только их различие между выборками. Так формируется множество подмножеств.
Для комбинаторных объектов A3 важным является повторяемость одного или нескольких элементов. Так формируется множество кортежей, повторяемость компонент которых задана спецификацией K={k1, k2, ..., kn}, где ki - число повторений в выборке i-го элемента.
Правила формирования упорядоченных выборок реализуются операциями размещения и перестановки, а неупорядоченных выборок - операциями их сочетания и разбиения.
2.1. Размещение из n элементов по k
Размещение без повторений. Пусть дано множество n шаров, книг, файлов и т.п., т. е. Х={x1, x2, ..., xn}, и множество k ячеек, дискет, каталогов и т. п., т. е. Y={y1, y2,...yk}. Сколько существует способов размещения каждого элемента множества Х на каждое место множества Y?
Такая операция формирует множество кортежей длины k: Аnk={(xi,..xj,..xk)}, где 1i, j, kn.
Число таких кортежей определяется формулой:
(n)k=n(n-1)...(n-k+1)=
.
Пример: .дано Х={a; b; c; d}. Разместить элементы этого множества по трем ячейкам Y={y1;y2; y3}. Сколько и какие возможны комбинаторные объекты?
Число размещений из 4 элементов по 3 без повторений есть (4)3=4!/1!=24, а множество комбинаторных объектов:
А43={(a, b, c); (a, c, b); (a, b, d); (a, d, b); (a, c, d); (a, d, c); (b, a, c); (b, c, a); (b, a, d); (b, d, a); (b, c, d); (b, d, c); (c, a, b); (c, b, a); (c, b, d); (c, d, b); (c, a, d); (c, d, a); (d, a, b); (d, b, a); (d, b, c); (d, c, b); (d, a, c); (d, c, a)}.
Размещение с повторением. Отличительной особенностью такого размещения является повторение, но не более k раз, каждого элемента множества Х в каждой выборке.
Число размещений n элементов множества X по k позициям множества Y с повторением при nk определяется формулой
(n)kповт.=nk.
Пример: дано Х={a, b}. Разместить элементы этого множества по четырем ячейкам Y={y1, y2, y3, y4}. Сколько и какие возможны комбинаторные объекты?
Число размещения двух элементов по четырем ячейкам с повторением равно (2)4повт.=24=16, а множество комбинаторных объектов А2 4 повт ={(a, a, a, a); (a, a, a, b); (a, a, b, a); (a, a, b, b);
(a, b, a, a); (a, b, a, b); (a, b, b, a); (a, b, b, b); (b, a, a, a); (b, a, a, b); (b, a, b, a); (b, a, b, b); (b, b, a, a); (b, b, a, b); (b, b, b, a); (b, b, b, b)}.
Если a=0, b=1, то эта процедура формирует множество четырехразрядных двоичных кодов: А24= {0000; 0001; 0010; 0011; 0100; 0101; 0110; 0111; 1000; 1001; 1010; 1011; 1100; 1101; 1110; 1111}.
Размещение с ограничением спецификацией. При размещении элементов согласно спецификации K={k1, k2,..kn}, т.е. при указании сколько раз можно повторять в выборке один и тот же элемент, следует обратить внимание на то, что
K=(k1+k2+...+kn)=k.
Число размещений определяется формулой:
.
Пример.: дано X={0; 1}. Необходимо сформировать кодовые комбинации по 8 символов (k=8), среди которых пять нулей (k1=5) и три единицы (k2=3). Сколько и какие возможны комбинаторные объекты?
Число размещений с ограничением спецификацией равно (2).(5, 3).=8!/5!3! =56. Следовательно, можно сформировать 56 кодовых комбинаций, в которых будет три единицы и пять нулей.
Например, в кодировке КОИ-8 прописные буквы латиницы имеют следующие коды: 01000011-С, 01000101-Е, 01000110-F, 01001001-I, 01001010-J, 01001100-L, 01010001-Q, 01010010-P, 01010100-T, 01011000-X и т. д.