- •Дискретная математика
- •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 Определение исчисления высказываний
Исчисление высказываний – аксиоматическая теория L (logic) - совокупность правил, используемых для установления истинности утверждений, являющихся комбинациями выражений, построенных на высказывании.
Формальная теория L строится следующим образом:
1. Алфавит – множество переменных – пропозициональных букв, обозначающих высказывания:
А, В, С, . . .
2. Множество логических связок – операций над высказываниями:
, , (, ).
Формулы – правильно построенные выражения:
любая буква, обозначающая высказывание – формула,
если А и В формулы, то А, А В тоже формулы,
других формул нет.
Примечание: в формулах могут использоваться парные скобки.
Примечание: в формулах в качестве переменных могут использоваться другие формулы.
Аксиомы. Формула алгебры высказываний, которая является истинной на всех наборах переменных, называется тавтологией -тождественно – истинной формулой. Поэтому тавтологию можно принять в виде аксиомы исчисления высказываний.
Примечание: исчисление высказываний может иметь множество аксиом, но необходимо чтобы они были независимы, т.е., чтобы одна из них не выводилась из других.
Каковы бы ни были формулы A, B, C, в теории L следующие формулы являются аксиомами теории L:
(A (B A ));
((A (B С )) ((A B ) (A С )));
(( B A )) (( B A ) B )).
5. Правило вывода – в теории L только одно: сокращение посылки – формула B является непосредственным следствием формул A и A B (modus ponens). Т.е., если истинно A и истинно, что из A следует B, то истинно и B:
A , A B B.
Примечания:
Пункт 4 указывает не просто три аксиомы, а три формульные схемы, порождающие бесконечное множество аксиом при подстановке в них произвольных формул A, B, C,. Для любой произвольной формулы, очевидно, легко проверить, является ли она аксиомой, или нет, поэтому L – эффективно аксиоматизированная теория.
В логике импликация и инверсия являются функционально полной системой функций. Поэтому использование только этих двух связок достаточно для построения любых формул алгебры исчисления высказываний.
Для удобства записи формул по определению вводятся такие связки, как , , , что означает:
A B A B;
A B (A B )
A B (A B ) (B A ).
В теории L согласно определению исчисления, формальным выводом формулы B из формул - посылок A1,…, An называется последовательность формул B1 ,…, Bk , заканчивающаяся формулой B (т.е. Bk = B), причем каждая формула этой последовательности или одна из посылок A1,…, An, или аксиома, или формула, полученная из некоторых предшествующих формул из A1,…, An, по правилу вывода modus ponens. Если существует формальный вывод формулы B из формул A1,…, An, то формула B называется формально выводимой в L из формул A1,…, An, что обозначается так:
A1,…, An B или Г B, где Г = A1,…, An .
Формальным доказательством в теории L называется конечная последовательность формул B1 ,…, Bk, такая, что каждая формула этой последовательности либо аксиома, либо получена по правилу modus ponens из каких-нибудь двух предшествующих формул этой последовательности. Формальное доказательство является доказательством последней в последовательности B1 ,…, Bk формулы Bk.
Формула B называется формально доказуемой или теоремой теории L, если и только если она имеет формальное доказательство. Обозначается:
B.
Формула алгебры высказываний, которая является истинной на всех возможных наборах переменных, называется тождественно – истинной или тавтологией. Поэтому тавтологию можно принять в виде аксиомы исчисления высказываний.
Существует два способа доказательств тавтологии:
Построением таблицы истинности для данной формулы.
Упрощением исходной формулы до вида: (А А) или (А «истина»).
Пример: Доказать истинность А (В А).
Таблица 3.1 – Доказательство по таблице истинности
А |
В |
В А |
А (В А) |
и |
и |
И |
и |
и |
л |
И |
и |
л |
и |
Л |
и |
л |
л |
И |
и |
Доказательство вторым способом:
А (В А) = А ( В А) = А ( В А) = А А В =
«истина»
= «истина» В = «истина».