- •Оглавление
- •Глава 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.2. Перестановка элементов
Предельный случай размещения, когда число ячеек, (стеллажей, дискет и т. п.) равно числу шаров (книг, файлов и т. п.). Эта операция активно применяется при сортировке и индексации данных.
Число перестановок равно (n)n=n(n-1)...1=n!
Пример: дан массив букв {a, b, c, d}. Сформировать все возможные перестановки.
Число перестановок равно 4! = 4321=24.
Множество комбинаторных объектов:
a b c d b a c d c a b d d a b c
a b d c b a d c c a d b d a c b
a c b d b c a d с b a d d b a c
a c d b b c d a c b d a d b c a
a d b c b d c a. c d a b d c a b
a d c b b d c a c d b a d c b a
2.3 Сочетание из n элементов по k
Сочетание без повторений. Пусть дано множество Х={x1;x2;...;xn} и множество Y={y1; y2;...;yk}. Сколько существует подмножеств множества Х мощности k, отличающихся между собой хотя бы одним элементом?
Число сочетаний из n по k без повторения определяют по формуле:
Пример: пусть дано множество {a, b, c, d}. Сколько и какие подмножества можно сформировать для n=4 и k=3?
Число сочетаний из 4 по 3 без повторения равно
,
а множество комбинаторных объектов:
C43={{a, b, c}; {a, b, d}; {a, c, d}; {b, c, d}}.
Пример: каждому играющему в домино выдается 7 костей из 28. Сколько существует различных комбинаций костей, которые игрок может получить в начале игры?
Число возможных комбинаций в начале игры определяется числом сочетаний из 28 костей по 7, т. е. .
Сочетание с повторением. Отличием такой комбинаторной операции является возможность многократного использования в выборке, но не более k раз, одного и того же элемента множества Х. Число сочетаний с повторением равно:
,
а множество возможных комбинаторных объектов есть
Сn повтk={{x1, x1, x1,..}; {x1, x2, x2,..}; {x2, x2, x3,..}..}.
Пример: пусть Х={a, b, c, d}. Сколько и какие подмножества можно сформировать из четырех элементов по три с повторением?
Число сочетаний
а множество комбинаторных объектов:
С3.2= {{a, a, a}; {b, b, b}; {c, c, c}; {d, d, d}; {a, a, b}; {a, a, c}; {a, a, d};
{ b, b, a}; {b, b, c}; {b, b, d}; { c, c, a}; { c, c, b}; {c, c, d}; {d, d, a,}; {d, d, b}; {d, d, c}; {a, b, c}; {a, b, d}; {a, c, d}; {b, c, d}}.
2.4. Разбиение множества
Число Стирлинга второго рода. Если Y есть набор подмножеств Y={Y1;Y2;...;Yk}, то отображение множества Х={x1;x2;...;xn} на Y определит разбиение множества X на подмножества Х1;Х2;...;Хk, при выполнении следующих условий:
i=1kXi=X;
XiXj=, для ij; 1i, jk;
Xi, для 1ik;
|X1|+|X2|+...+|Xk| = |X| = n.
Каждое подмножество Хi называют блоком разбиения множества Х, а само разбиение обозначают Bk(Х)={Х1; Х2;...;Хk}.
Число возможных разбиений множества Х на подмножества определяют числом Стирлинга второго рода S(n; k), где n - мощность множества X, а k –число формируемых подмножеств по правилу:
S(n;
0)=0 для
n>0;
S(n;
n)=1 для
n0;
S(n; k)=S(n-1; k-1)+tS(n-1;
k) для
0<kn.
Пример: дано множество Х={a, b, c, d}. Выполнить его разбиение на два одноэлементных подмножества и одно двухэлементное, т.е. Y={Y1, Y2, Y3}, где |Y1|=1, |Y2|=1, |Y3|=2. Сколько и какие подмножества можно сформировать?
Число разбиений по формуле Стирлинга равно:
S(4, 3)=S(3, 2)+3S(3, 3)=S(3, 2)+3, S(3, 2)=S(2, 1)+2S(2, 2)=S(2, 1)+2; S(2, 1)=S(1, 0)+1S(1, 1)=0+1. |
S(4, 3)=3+2+1=6,
а множество подмножеств есть:
B3(4)={{{a}, {b}, {c, d}}; {{a}, {c}, {b, d}}; {{a}, {d}, {b, c}}; {{b}, {c}, {a, d}}; {{b}, {d}, {a, c}}; {{c}, {d}, {a, b}}}.
Пример: дано множество Х={a, b, c, d, e, f}. Разбить на два трехэлементных подмножества, т.е. Y={Y1; Y2}, где |Y1|=3; |Y2|=3. Сколько подмножеств можно сформировать?
Число таких разбиений по формуле Стирлинга равно:
S(6, 2)=S(5, 1)+2S(5, 2),
S(5, 2)=S(4, 1)+2S(4, 2),
S(5, 1)=S(4, 0)+1S(4, 1)= S(4, 1),
S(4, 2)=S(3, 1)+2S(3, 2),
S(4, 1)=S(3, 0)+1S(3, 1)= S(3, 1).
S(3, 2)=S(2, 1)+2S(2, 2)= S(2, 1)+2,
S(3, 1)=S(2, 0)+1S(2, 1)= S(2, 1),
S(2, 1)= S(1, 0)+1S(1, 1)=0+1=1.
S(6, 2)= 1+215=31.
Следовательно, существует 31 способ разбиения шестиэлементного множества на два трехэлементных подмножества.
Булеан множества. Множество подмножеств универсального множества U, включающее в себя пустое подмножество, одно-, двух- и т. д. до n-элементного подмножества, называют булеаном B(U). Каждое подмножество формируется сочетанием без повторения элементов универсального множества |U|=n по числу элементов формируемого подмножества i=0, 1, 2,..n.
, где i= 0, 1, 2,...n.
Пример: дано U={a, b, c, d}.
Булеан множества U есть B(U)={; {a}; {b}; {c}; {d}; {a, b};
{a, c}; {a, d}; {b, c}; {b, d}; {c, d}; {a, b, c}; {a, b, d}; {b, c, d}; {a, c, d}; {a, b, c, d}}.