- •Дискретная математика
- •6.050102 “Компьютерная инженерия” содержание
- •1 Теория множеств 7
- •2 Математическая логика 15
- •3 Формальные теории 35
- •4 Теория графов 47
- •5 Элементы теории чисел 80
- •6 Теория алгоритмов 121
- •Введение
- •1 Теория множеств
- •1.1 Множества и подмножества
- •1.1.1 Элементы множества
- •1.2 Аксиомы теории множеств
- •1.3 Способы задания множеств
- •1.4 Операции над множествами
- •1.5 Элементы алгебры множеств
- •1.5.1 Определение алгебры множеств
- •1.5.2 Основные законы алгебры множеств
- •1.5.3 Принцип двойственности
- •2 Математическая логика
- •2.1 Функции алгебры логики (булевые функции)
- •2.1.1 Способы задания булевых функций
- •2.1.2 Логические функции одной переменной
- •2.1.3 Логические функции двух переменных
- •2.2.6 Функционально полные системы булевых функций
- •2.3 Алгебра буля
- •2.3.1 Определение алгебры. Теорема Стоуна
- •2.3.2 Законы алгебры логики
- •2.3.3 Разложения функций по переменным
- •2.3.4 Приведение логических функций
- •2.3.5 Импликанты и имплициенты булевых функций
- •2.3.6 Методы минимизации логических функций
- •2.4 Алгебра жегалкина
- •2.4.1 Преобразование функций в алгебре Жегалкина
- •2.4.2 Переход от булевой алгебры к алгебре Жегалкина
- •3 Формальные теории
- •3.1 Основные принципы построения формальных теорий исчисления
- •3.2 Определение исчисления высказываний
- •3.2.1 Метатеоремы исчисления высказываний
- •3.2.2 Схемы исчисления высказываний
- •3.3 Исчисление предикатов
- •3.3.1 Определение формальной теории pl
- •3.3.2 Принцип резолюции в исчислении предикатов
- •3.3.3 Схемы доказательств в исчислении предикатов
- •4 Теория графов
- •4.1 История теории графов
- •4.2 Основные определения
- •4.3 Способы представления графов
- •4.3.1 Матрицей смежности
- •4.3.2 Матрицей инцидентности
- •4.4 Пути в графах
- •4.4.1 Задача о кратчайшем пути
- •4.4.2 Алгоритм Дейкстры нахождения кратчайшего пути в графе
- •4.5 Транспортные сети
- •4.5.1 Потоки в транспортных сетях
- •4.5.2 Задача нахождения наибольшего потока в транспортной сети
- •4.5.3 Алгоритм Форда и Фалкерсона нахождения максимального потока транспортной сети
- •4.5.4 Транспортная задача
- •4.6 Обходы в графах
- •4.6.1 Эйлеровы графы
- •4.6.2 Алгоритм Флёри нахождения эйлерова цикла
- •4. Если получился цикл, но не ейлеров, то отбрасываем данную последнюю вершину и повторяем пункт 2.
- •4.6.3 Гамильтоновы циклы
- •4.6.4 Метод ветвей и границ.
- •4.6.5 Метод ветвей и границ в задаче о коммивояжёре
- •4.7 Деревья
- •4.7.1 Построение экономического дерева
- •4.7.2 Алгоритм Краскала
- •5 Элементы теории чисел
- •5.1 Модулярная арифметика
- •5.1.1 Алгоритм Евклида для нахождения наибольшего общего делителя
- •5.1.2 Вычисление обратных величин
- •5.1.3 Основные способы нахождения обратных величин
- •5.1.4 Китайская теорема об остатках
- •5.2 Кодирование
- •5.2.1 Оптимальное кодирование
- •5.3 Обнаружение и исправление ошибок
- •5.3.1 Общие понятия
- •5.3.2 Линейные групповые коды
- •5.3.2 Код Хэмминга
- •5.3.3 Циклические коды
- •5.3.4 Построение и декодирование конкретных циклических кодов
- •5.4 Сжатие информации
- •5.4.1 Исключение повторения строк в последующих строках
- •5.4.2 Алгоритм lzw
- •6 Теория алгоритмов
- •6.1. Основные понятия
- •6.1.1 Основные требования к алгоритмам
- •6.1.2 Блок–схемы алгоритмов
- •6.1.3 Представление данных
- •6.1.4 Виды алгоритмов
- •6.1.5 Правильность программ
- •6.1.6 Эффективность алгоритмов
- •6.1.7 Сходимость, сложность, надежность
- •6.2 Универсальные алгоритмы
- •6.2.1 Основные понятия
- •6.2.2 Машины Тьюринга
- •6.2.3 Рекурсивные функции
- •6.2.5 Тезис Черча-Тьюринга
- •6.2.6 Проблема самоприменимости
- •6.3 Языки и грамматики
- •6.3.1 Общие понятия
- •6.3.2 Формальные грамматики
- •6.3.3 Иерархия языков
- •6.4 Параллельные вычисления
- •Рекомендованная литература
1.4 Операции над множествами
Объединение
Объединением множеств А и В (обозначается А В) называется множество, которое состоит из всех тех элементов, которые принадлежат хотя бы одному из множеств А или В. Символически это можно записать так:
А В={ x x А V х В}
Например: А = {a, b, d}, B = {b, d, e, h}.
А В = {a, b, d, e, h}.
Аналогично определяется объединение произвольной (в том числе бесконечной) совокупности множеств.
Пересечение
Пересечением множеств А и В (обозначается А В) называется множество, состоящее из всех тех и только тех элементов, которые принадлежат и А, и В.
А В={ x x А & х В}
Например: А = {a, b, d}, B = {b, d, e, h}.
А В = {b, d,}.
Аналогично определяется пересечение произвольной (в том числе бесконечной) совокупности множеств.
Если D E = , то говорят, что множества D и E не пересекаются.
Разность
Разностью множеств А и В (обозначается А \ В или А В) называется множество всех тех и только тех элементов А, которые не содержатся в В
А \ В = { x x А & х В }
Например: А = {a, b, d}, B = {b, d, e, h}.
А \ В = {a}.
В \ А = {e, h}.
Свойства операции разности:
1. В отличие от операций объединения и пересечения разность является строго двухместной операцией.
Она некоммутативна, т.е. А \ В В \ А.
Если А \ В = , то А В.
4.
5. Для разности справедлив закон дистрибутивности как относительно объединения, так и пересечения
Симметрическая разность
Симметрическая разность (записывается как А + В ) и определяется следующим образом:
А + В = (А \ В) (В \ А) = (А В) \ (А В) =
= { x (x А & х В) V (х A & х В )}
Например: А = {a, b, d}, B = {b, d, e, h}.
А + В = {a, e, h}.
Свойства симметрической разности:
Симметрическая разность является строго бинарной операцией.
Учитывая, что и , то:
3. Коммутативность
4. Ассоциативность
5.
Дистрибутивность относительно операции пересечения
Дополнение множества
Если в некотором рассуждении или в рамках определенной ситуации все используемые множества являются подмножествами некоторого множества U, то это множество называется универсальным множеством (или универсумом) для данного рассуждения.
Свойства универсума:
Если X U, то X U = .
2. Если X U, то X U = U .
Дополнением (до универсума) множества Х (обозначают или X) называют множество всех элементов, не принадлежащих Х, но принадлежащих U.
= {x x X}.
Свойства дополнения:
1. .
= .
.
.
.
.
.
Если А = В, то .
Если А В, то .
Множество всех подмножеств (булеан)
Множество всех подмножеств множества А обозначают ß(А) и называется булеаном данного множества A.
Т.е. по определению: ß(А) = {B | B A}.
Ясно, что ß(А) содержит как пустое множество Ø, так и само множество A.
Пример: пусть A = {a, d, c}.
Тогда ß(А) = {Ø, {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, A}.
Очевидно, что если B A, то B ß(А) и наоборот.
Из нашего примера видно: если множество A = {a, d, c} содержит 3 элемента, то ß(А) содержит 23 = 8 элементов. В общем случае, если в множестве A n элементов, то в ß(А) 2n элементов. Поэтому множество ß(А) часто называют множеством-степенью множества A.