- •Содержание
- •1 Элементы теории множеств. Комбинаторика. 5
- •Математическая логика: Булева аллгебра 88
- •Теория алгоритмов 129
- •Теория графов 162
- •Математическая логика: Исчисления высказываний и предикатов 207
- •Элементы теории множеств. Комбинаторика.
- •Введение
- •Примеры задач.
- •Задача о расположении конвертов
- •Задача о Ханойской башне
- •Базовые обозначения
- •Правило суммы и правило произведения
- •Основы теории множеств
- •Понятие множества
- •Парадокс Рассела
- •Подмножества
- •Операции над множествами
- •Диаграммы Эйлера-Венна
- •Прямое произведение множеств
- •Бинарные отношения и функции
- •Бинарные отношения
- •Функции
- •Специальные бинарные отношения: Отношение эквивалентности
- •Специальные бинарные отношения: Отношение порядка
- •Лексикографический порядок
- •Выборки с повторениями и без повторений
- •Размещения и сочетания
- •Треугольник Паскаля
- •Связь сочетаний и (0,1)-векторов
- •Перебор сочетаний
- •Бином Ньютона
- •Мультимножества
- •Связь мультимножеств и (0,1)-векторов
- •Полином Ньютона
- •Разбиения множеств.
- •Приложение: программа перебора сочетаний
- •Перестановки
- •Понятие перестановки
- •Группа перестановок
- •Циклы перестановки
- •Тип перестановки
- •Разложения и разбиения натуральных чисел
- •Разложения натуральных чисел
- •Разбиения натуральных чисел
- •Принцип включения-исключения
- •Принцип включения-исключения
- •Задача о беспорядках
- •Мощность объединения множеств
- •Число целочисленных решений системы неравенств
- •Математическая логика: Булева аллгебра
- •Булева алгебра. Функции алгебры логики.
- •Булевы функции
- •Формулы
- •Основные тождества
- •Разложение функции по переменным
- •Дизъюнктивная и конъюнктивная нормальные формы
- •Полином Жегалкина
- •1 ⊕ X1 ⊕ x2x3 - полином Жегалкина.
- •Полнота системы функций
- •Функции, сохраняющие ноль
- •Функции, сохраняющие единицу
- •Двойственность
- •Монотонность
- •Линейность
- •Критерий полноты системы функций
- •Теория алгоритмов
- •Машины Тьюринга
- •Понятие алгоритма
- •Машина Тьюринга
- •Способы записи машины Тьюринга
- •Стандартные конфигурации
- •Вычислимые функции
- •Алгоритмически неразрешимые задачи
- •Сложность алгоритма
- •Полиномиальная сводимость
- •Классы задач в форме распознавания свойств
- •4 Теория графов
- •4.1 Определения графа
- •Общее определение
- •Виды графов
- •Обыкновенный граф
- •Примеры графов
- •Графы Бержа
- •4.2 Изоморфизм графов
- •4.2.1 Инварианты графа
- •Операции
- •Основные операции над графами
- •Подграфы
- •Дополнение графа
- •Маршруты и связность
- •Деревья
- •Матрицы, связанные с графом
- •Матрица смежности
- •Матрица инцидентности
- •Список ребер
- •Обходы графов
- •Эйлеров цикл
- •Гамильтонов цикл
- •Задачи и алгоритмы
- •Остов минимального веса
- •Алгоритм 4.8.1 (Алгоритм Краскала).
- •Задача коммивояжера
- •Задача о клике
- •Задача о вершинном покрытии
- •Задача о гамильтоновом цикле
- •Снова задача коммивояжера
- •Алгоритм дерева
- •Математическая логика: Исчисления высказываний и предикатов
- •Исчисление высказываний
- •Пример задачи логики высказываний
- •Формальные теории
- •Формальная теория исчисление высказываний
- •Теоремы исчисления высказываний
- •Теорема о полноте исчисления высказываний
- •Независимость аксиом исчисления высказываний
- •Исчисление предикатов
- •Пример задачи логики предикатов
- •Формальная теория исчисление предикатов
- •Алфавит.
- •Формулы.
- •Аксиомы.
- •Правила вывода.
- •Интерпретация
- •Литература
Дизъюнктивная и конъюнктивная нормальные формы
σi1
σi2
σik
Определение 2.1.9 . Формула вида xi1 xi2 · · · xik , где xij -
логическая переменная, σij - логическая константа, i1 < i2 < ... < ik,
называется конъюнктом.
Определение 2.1.10 . Если f (x1, ..., xn) представлена в виде
f (x1, ..., xn) = K1 ∨ K2 ∨ ... ∨ Ks,
где K1, K2,..., Ks - различные конъюнкты, то говорят, что f
представлена в дизъюнктивной нормальной форме (ДНФ).
Если в каждый Ki входят все переменные x1, ..., xn, то говорят, что f представлена в совершенной дизъюнктивной нормальной форме (СДНФ).
Так же используют обозначения д.н.ф. и с.д.н.ф.
Утверждение 2.1.4 . Пусть f (x1, ..., xn) ∈ P2. Если f /= 0, то она представима в виде СДНФ, причем единственным образом (с точностью до перестановки конъюнктов).
Доказательство. Во-первых, отметим, что разложение функции f по всем переменным, построенное согласно утверждению 2.1.3, будет представлять собой СДНФ. Существование доказано.
Докажем единственность СДНФ. Пусть
s sf
j
f (x1, ..., xn) = I Ki(x1, ..., xn) = I Kt (x1, ..., xn),i=1
j=1
j
где Ki и Ktконъюнкты, i = 1, s, jt = 1, st. Причем, не умаляя
общности, K1 /∈ {Kt , ..., Kt }, поскольку представления в виде СДНФ
1 sf
должны быть различны.
Пусть K1(x1, ..., xn) = xσ1 · · · xσn .
1 n
s s
f (σ1, ..., σn) = I Ki(σ1, ..., σn) = σσ1 · · · σσn ∨ I Ki(σ1, ..., σn) =
i=1
1 n
i=2
s
= 1 ∨ I Ki(σ1, ..., σn) = 1,
i=2
так как σσ = 1, для любого σ ∈ E2. С другой стороны,
sf
j
f (σ1, ..., σn) = I Kt (σ1, ..., σn).j=1
j
Нетрудно заметить, что для любого Kt
= xσ
f1
1 · · ·
xσ
K
t
fn
n ∈ { 1
, ..., K
t
sf }выполняется
Kt
σf f
n
j (σ1, ..., σn) = σ1 1 · · · σσn = 0,поскольку ∃m = 1, n, σm /= σt
Таким образом f (σ1, ..., σn) = Vs
0 = 0.
f
m j=1Противоречие доказывает, что двух различных представлений функции
в СДНФ существовать не может.
D
σi1
σi2
σik
Определение 2.1.11 . Формула вида xi1 ∨ xi2 ∨ · · · ∨ xik , где xij -
логическая переменная, σij - логическая константа, i1 < i2 < ... < ik,
называется дизъюнктом.
Определение 2.1.12 . Если f (x1, ..., xn) представлена в виде
f (x1, ..., xn) = (D1) ∧ (D2) ∧ ... ∧ (Ds),
где D1, D2,..., Ds - различные дизъюнкты, то говорят, что f
представлена в конъюнктивной нормальной форме (КНФ).
Если в каждый Di входят все переменные x1, ..., xn, то говорят, что f представлена в совершенной конъюнктивной нормальной форме (СКНФ).
Так же используют обозначения к.н.ф. и с.к.н.ф.
Утверждение 2.1.5 . Пусть f (x1, ..., xn) ∈ P2. Если f /= 1, то она представима в виде СКНФ, причем единственным образом (с точностью до перестановки дизъюнктов).
Доказательство. Поскольку f /= 1, то f /= 0. Тогда по утверждению
2.1.4 у функции f существует СДНФ, которая по утверждению 2.1.3 имеет
вид:
s
f (x1, ..., xn) = I Ki(x1, ..., xn) = I
xσ1 · · · xσn .
Следовательно,
i=1
I
f (x1, ..., xn) = ¬
1 n
(σ1,...,σn)
f (σ1,...,σn)=1
xσ1 · · · xσn =
Применим правила де Моргана.
1 n
(σ1,...,σn)
f (σ1,...,σn)=0
= ¬(xσ1 · · · xσn ) =
(xσ1 ∨ · · · ∨ xσn ) =
1 (σ1,...,σn)
f (σ1,...,σn)=0
n 1 n
(σ1,...,σn)
f (σ1,...,σn)=0
= (xσ1 ∨ · · · ∨ xσn ).
1 n
(σ1,...,σn)
f (σ1,...,σn)=0
Теперь покажем единственность СКНФ. Действительно, пусть у некоторой функции f /= 1 существовало две различных СКНФ:
s sf
i
f (x1, ..., xn) = (Di(x1, ..., xn)) = (Dt(x1, ..., xn)),i=1
i=1
i
где Di и Dtдизъюнкты. Возьмем отрицание от функции f (x1, ..., xn).
s sf
i
f (x1, ..., xn) = (Di(x1, ..., xn)) = (Dt(x1, ..., xn)).i=1
i=1
Произведем преобразования по правилам де Моргана и получим
s sf
i
f (x1, ..., xn) = I Ki(x1, ..., xn) = I Kt(x1, ..., xn),
i
где Ki = Di и Kti=1
i
= Dti=1
конъюнкты, полученные по правилам
де Моргана из дизъюнктов СКНФ для функции f . Поскольку
наборы дизъюнктов {D1, ..., Ds} и {Dt , ..., Dt } различны, то и
1 sf
K1, ..., Ks} и {Kt , ..., Kt } не совпадают.
полученные наборы конъюнктов {
1 sf
Таким образом мы получили две различных СДНФ для функции
f , что противоречит утверждению 2.1.4. Противоречие доказывает единственность СКНФ функции.
D
Замечание 2.1.8 . Из утверждений 2.1.3 и 2.1.5 мы получили формулы, которые удобно использовать для построения СДНФ и СКНФ соответственно.
f (x1, ..., xn) = I
xσ1 · · · xσn . (28)
для функции f /= 0.
1 n
(σ1,...,σn)
f (σ1,...,σn)=1
f (x1, ..., xn) =
(xσ1 ∨ · · · ∨ xσn ). (29)
1 n
(σ1,...,σn)
f (σ1,...,σn)=0
для функции f /= 1.
Теперь для построения СДНФ согласно формуле (28) необходимо
выбрать каждый набор (σ1, ..., σn), для которого f (σ1, ..., σn) = 1,
и сопоставить ему коньюнкт xσ1 · · · xσn
совершенной дизъюнктивной
1 n
нормальной формы.
Аналогично строится совершенная конъюнктивная нормальная форма по формуле (29).
Пример 2.1.11 . Рассмотрим функцию f (x, y, z), заданную таблицей:
-
x
y
z
f
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
Тогда, согласно (28) СДНФ будет выглядеть следующим образом:
f (x, y, z) = x0y0z0 ∨ x0y0z1 ∨ x1y0z1 ∨ x1y1z0 =
= x y z ∨ x y z ∨ x y z ∨ x y z.
СКНФ согласно формуле (29) будет иметь вид:
f (x, y, z) = (x0 ∨ y1 ∨ z0) ∧ (x0 ∨ y1 ∨ z1) ∧ (x1 ∨ y0 ∨ z0) ∧ (x1 ∨ y1 ∨ z1) = (x1 ∨ y0 ∨ z1) ∧ (x1 ∨ y0 ∨ z0) ∧ (x0 ∨ y1 ∨ z1) ∧ (x0 ∨ y0 ∨ z0) =
= (x ∨ y ∨ z) ∧ (x ∨ y ∨ z) ∧ (x ∨ y ∨ z) ∧ (x ∨ y ∨ z).