- •Дискретная математика
- •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 Параллельные вычисления
- •Рекомендованная литература
3.2.1 Метатеоремы исчисления высказываний
Для любого метаисчисления следует рассматривать теоремы, доказываемые средствами данного исчисления и метатеоремы – некоторые утверждения, касающиеся самой этой теории.
М етатеорема 1: Если истинно А , то истинно В тогда и только тогда, когда А В является тавтологией. Т.е. А В тогда и только тогда, когда А В.
С ледствие: любой логический вывод вида А В можно заменить доказательством тавтологии А В.
М етатеорема 2: Если истинно А1, А2,…, Аn В, то истинно и
(А1 А2 … Аn) В .
Следствие: любой логический вывод может быть сведен к доказательству, а любое доказательство строится на основании только аксиом. Любая же аксиома является тождественно-истинным высказыванием или общезначимой формулой. Поэтому любая теорема также будет являться общезначимой формулой.
3.2.2 Схемы исчисления высказываний
Введение допущения
Д ля доказательства А В допускаем, что А. Тогда докажем, что из А следует В (т.е. А В является тавтологией).
Резолюция – это тавтология вида:
[ ( X A) ( Y A) ] X Y = [ ( X A) ( Y A) ] X Y =
= [ ( X A) ( Y A) ] X Y = [ ( X X) ( A X) ] [ ( Y Y)
( A Y) ] = A X A Y = «истина» X Y = «истина».
Доказательство от противного
Вместо логического вывода истинности А В доказывают, что ложно (А В), т.е. ложно: (А В) = ( А В) = А В.
Нужно доказать ложность конъюнкции, состоящей из исходных посылок и отрицания заключения: А1, А2,…, Аn |– В А1 А2 … Аn В.
Метод резолюции
Основан на схеме доказательства от противного.
Алгоритм следующий:
Строится конъюнкция, состоящая из исходных посылок и отрицания заключения.
Она приводится к КНФ. Для чего :
устраняются ипмпликация и эквиваленция по следующим соотношениям:
А В = (А В) (В А); А В = А В;
по закону де Моргана опускаются все отрицания до переменных;
используя ассоциативный, коммутативный, дистрибутивный законы, раскрываются скобки;
Выписываются дизъюнкты полученной КНФ каждый в отдельную строку.
Примечание: если дизъюнкт состоит из одной буквы, то дополняют его пустым дизъюнктом , который соответствует ложному высказыванию.
Выбирают из данных дизъюнктов пару так, чтобы она образовывала исходные посылки метода резолюции, т.е., чтобы в выбранной паре посылка присутствовала с отрицанием и без отрицания: Х А, Y А.
К выбранной паре применяется метод резолюции. Получают новый дизъюнкт, который далее рассматривается наравне с оставшимися дизъюнктами.
Повторяют пункты 4 и 5 до тех пор, пока не получат пустой дизъюнкт.
Если в результате выполнения пунктов 4 – 6 выводят пусто дизъюнкт, т.е. ложь, то исходный логический вывод считается доказанным, т.к. предполагалось отрицание исходной посылки. Доказательство лжи от противного равносильно доказательству истины посылки. В противном случае вывод отвергается.
Пример: Доказать методом резолюции истинность высказывания:
А, В С |– А В , С .
А ( В С ) (А В ) С = (А ) ( В С ) ( А В ) ( С ) =
А В
В С =
А В В
С
Доказана ложь, значит исходное положение – истина.