
- •Дискретная математика
- •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 Параллельные вычисления
- •Рекомендованная литература
2.4 Алгебра жегалкина
Алгебра над множеством логических функций с двумя бинарными операциями: конъюнкцией (), сложением по модулю 2 () и константой единицы (1) называется алгеброй Жегалкина.
2.4.1 Преобразование функций в алгебре Жегалкина
Здесь справедливы следующие законы:
1. коммутативный: x y = y x; x y = y x,
ассоциативный: x (y z) = (x y) z; x (y z) = (x y) z,
дистрибутивный: x (y z) = x y х z,
но: x (y z) (x y) (х z).
Действуют соотношения: х х = х,
x х = 0,
х 1 = х,
x 1 = х,
х 0 = 0,
x 0 = х.
Связь с булевым базисом осуществляется по следующим соотношениям:
x y = х y x y;
х y = ( х y) = (x 1) (y 1) 1 = x y x y.
2.4.2 Переход от булевой алгебры к алгебре Жегалкина
Если в СДНФ логической функции заменить операцию дизъюнкцию на операцию сложения по модулю 2, то равенство функций сохранится. В результате получим СПНФ – совершенную полиномиальную нормальную форму логической функции.
Пример: Дана СДНФ функции F = (0, 3, 6).
Т.е. СДНФ: F = x1 x2 x3 x1 x2 x3 x1 x2 x3 .
Тогда СПНФ будет: F = x1 x2 x3 x1 x2 x3 x1 x2 x3 .
Если в СПНФ логической функции заменить все переменные с отрицанием по правилу х = x 1, раскрыть скобки и привести подобные по правилу x х = 0, то получим, так называемый, канонический полином Жегалкина в следующем виде:
a0 a1 x1 a2 x2 a3 x1 x2 … an x1 x2 x3,
где аi = (0, 1).
Пример: В нашем случае канонический полином Жегалкина будет:
F = (x1 1) (x2 1) (x3 1) (x1 1) x2 x3 x1 x2 (x3 1) =
=
x1
x2
x3
x2
x3
x1
x3
x1
x2
x1
x2
x3
1
x1
x2
x3
x2
x3
x1 x2
x3
x1
x2
= x1
x2
x3
x1
x3
x1
x2
x3
1.
Примечание: Для всякой логической функции существует канонический полином Жегалкина, и при этом, только один.
3 Формальные теории
Математическая логика дает возможность изучения многих математических теорий в целом, оставаясь при этом неким «внешним» математическим аппаратом. Прежде всего математическую теорию уточняют и описывают при помощи строгого логико-математического языка. Этот процесс называется формализацией теории. Полученную в результате формализации теорию называют формальной.
3.1 Основные принципы построения формальных теорий исчисления
Определяется некоторое счетное множество символов теории, называемое алфавитом теории. Конечная последовательность символов алфавита называется выражением.
Задается некоторое подмножество выражений, называемое формулами или правильно построенными выражениями.
Задается некоторое подмножество заведомо истинных формул, называемое аксиомами.
Задаются правила вывода как некоторое отношение на множестве формул.
Определение: Если формулы F1, F2, … , Fn , G находятся в отношении R, то говорят, что формула G непосредственно выводима из формул F1, F2, … , Fn, а отношение R (F1, F2, … , Fn , G) – правило вывода G из F1, F2, … , Fn. Этот факт записывается следующим образом:
F1, F2, … , Fn
R
:
G
Формулы F1, F2, … , Fn, из которых выводится G, называются посылками, а формулы, которые выводятся (G), называются заключениями.
Определение: Выводом формулы В из формул А1, А2,, … , Аn называется последовательность формул F1, F2, … , Fm такая, что Fm = В, а любая формула Fi есть либо аксиома, либо одна из формул А1, А2,, … , Аn, либо одна из формул F1, F2, … , Fi – 1, полученных на предыдущих шагах вывода.
Факт выводимости обозначается:
А1, А2,, … , Аn В,
где А1, А2,, … , Аn – посылки, а В – заключение.
Определение: Доказательством формулы В формальной теории называется ее вывод из пустого множества формул, т.е. на основании только аксиом. Такая формула называется доказуемой в теории или теоремой.
Факт доказуемости записывается:
В.
П римечание: присоединение посылок к формулам не нарушает их выводимости:
В,
А В.
Примечание: порядок посылок не имеет значения:
А1, А2 В А2, А1 В.