
- •Содержание
- •1 Элементы теории множеств. Комбинаторика. 5
- •Математическая логика: Булева аллгебра 88
- •Теория алгоритмов 129
- •Теория графов 162
- •Математическая логика: Исчисления высказываний и предикатов 207
- •Элементы теории множеств. Комбинаторика.
- •Введение
- •Примеры задач.
- •Задача о расположении конвертов
- •Задача о Ханойской башне
- •Базовые обозначения
- •Правило суммы и правило произведения
- •Основы теории множеств
- •Понятие множества
- •Парадокс Рассела
- •Подмножества
- •Операции над множествами
- •Диаграммы Эйлера-Венна
- •Прямое произведение множеств
- •Бинарные отношения и функции
- •Бинарные отношения
- •Функции
- •Специальные бинарные отношения: Отношение эквивалентности
- •Специальные бинарные отношения: Отношение порядка
- •Лексикографический порядок
- •Выборки с повторениями и без повторений
- •Размещения и сочетания
- •Треугольник Паскаля
- •Связь сочетаний и (0,1)-векторов
- •Перебор сочетаний
- •Бином Ньютона
- •Мультимножества
- •Связь мультимножеств и (0,1)-векторов
- •Полином Ньютона
- •Разбиения множеств.
- •Приложение: программа перебора сочетаний
- •Перестановки
- •Понятие перестановки
- •Группа перестановок
- •Циклы перестановки
- •Тип перестановки
- •Разложения и разбиения натуральных чисел
- •Разложения натуральных чисел
- •Разбиения натуральных чисел
- •Принцип включения-исключения
- •Принцип включения-исключения
- •Задача о беспорядках
- •Мощность объединения множеств
- •Число целочисленных решений системы неравенств
- •Математическая логика: Булева аллгебра
- •Булева алгебра. Функции алгебры логики.
- •Булевы функции
- •Формулы
- •Основные тождества
- •Разложение функции по переменным
- •Дизъюнктивная и конъюнктивная нормальные формы
- •Полином Жегалкина
- •1 ⊕ X1 ⊕ x2x3 - полином Жегалкина.
- •Полнота системы функций
- •Функции, сохраняющие ноль
- •Функции, сохраняющие единицу
- •Двойственность
- •Монотонность
- •Линейность
- •Критерий полноты системы функций
- •Теория алгоритмов
- •Машины Тьюринга
- •Понятие алгоритма
- •Машина Тьюринга
- •Способы записи машины Тьюринга
- •Стандартные конфигурации
- •Вычислимые функции
- •Алгоритмически неразрешимые задачи
- •Сложность алгоритма
- •Полиномиальная сводимость
- •Классы задач в форме распознавания свойств
- •4 Теория графов
- •4.1 Определения графа
- •Общее определение
- •Виды графов
- •Обыкновенный граф
- •Примеры графов
- •Графы Бержа
- •4.2 Изоморфизм графов
- •4.2.1 Инварианты графа
- •Операции
- •Основные операции над графами
- •Подграфы
- •Дополнение графа
- •Маршруты и связность
- •Деревья
- •Матрицы, связанные с графом
- •Матрица смежности
- •Матрица инцидентности
- •Список ребер
- •Обходы графов
- •Эйлеров цикл
- •Гамильтонов цикл
- •Задачи и алгоритмы
- •Остов минимального веса
- •Алгоритм 4.8.1 (Алгоритм Краскала).
- •Задача коммивояжера
- •Задача о клике
- •Задача о вершинном покрытии
- •Задача о гамильтоновом цикле
- •Снова задача коммивояжера
- •Алгоритм дерева
- •Математическая логика: Исчисления высказываний и предикатов
- •Исчисление высказываний
- •Пример задачи логики высказываний
- •Формальные теории
- •Формальная теория исчисление высказываний
- •Теоремы исчисления высказываний
- •Теорема о полноте исчисления высказываний
- •Независимость аксиом исчисления высказываний
- •Исчисление предикатов
- •Пример задачи логики предикатов
- •Формальная теория исчисление предикатов
- •Алфавит.
- •Формулы.
- •Аксиомы.
- •Правила вывода.
- •Интерпретация
- •Литература
Функции, сохраняющие ноль
Определение 2.1.21 . Пусть f (x1, ..., xn) ∈ P2. f называют функцией, сохраняющей ноль, если f (0, ..., 0) = 0.
Множество всех функций сохраняющих 0 обозначим T0: T0 = {f (x1, ..., xn) | f ∈ P2, f (0, ..., 0) = 0}.
Утверждение 2.1.15 . Класс функций T0 замкнут.
Доказательство. Рассмотрим суперпозицию ранга 1 от функций из T0.
Пусть f (x1, ..., xn) ∈ T0 и
g(x1, ..., xj−1, xj+1, ..., xn, y) = f (x1, ..., xj−1, y, xj+1, ..., xn).
Тогда g(0, ..., 0) = f (0, ..., 0) = 0. Следовательно,
g(x1, ..., xj−1, xj+1, ..., xn, y) ∈ T0.
Пусть f (x1, ..., xn) ∈ T0 и h(y1, ..., ym) ∈ T0 и
g(x1, ..., xj−1, xj+1, ..., xn, y1, ..., ym) =
= f (x1, ..., xj−1, h(y1, ..., ym), xj+1, ..., xn).
Тогда
g(0, ..., 0) = f (0, ..., 0, h(0, ..., 0), 0, ..., 0) = f (0, ..., 0, 0, 0, ..., 0) = 0.
Получаем, что g(x1, ..., xj−1, xj+1, ..., xn, y1, ..., ym) ∈ T0.
Таким образом, [T0] = T0.
D
Замечание 2.1.15 . Тождественная функция f (x) = x лежит в классе T0. Функция отрицания f (x) = x не лежит в T0. Таким образом,
T0 /= ∅ и T0 /= P2.
Функции, сохраняющие единицу
Замечание 2.1.16 . Рассуждения этого пункта повторяют содержание предыдущего с точностью до замены 0 на 1
Определение 2.1.22 . Пусть f (x1, ..., xn) ∈ P2. f называют
функцией, сохраняющей единицу, если f (1, ..., 1) = 1.
Множество всех функций сохраняющих 1 обозначим T1: T1 = {f (x1, ..., xn) | f ∈ P2, f (1, ..., 1) = 1}.
Утверждение 2.1.16 . Класс функций T1 замкнут.
Доказательство. Доказательство полностью эквивалентно доказательству утверждения 2.1.15.
D
Замечание 2.1.17 . Тождественная функция f (x) = x лежит в классе T1. Функция отрицания f (x) = x не лежит в T1. Таким образом,
T1 /= ∅ и T1 /= P2.
Двойственность
Определение 2.1.23 . Пусть f (x1, ..., xn) ∈ P2. Двойственной функцией к функции f называется f ∗(x1, ..., xn) = f (x1, ..., xn).
Пример 2.1.17 . Пусть f (x, y, z) = xy ∨ z. Тогда f ∗(x, y, z) =
x · y ∨ z = x · y ∨ z.
Пример 2.1.18 . Пусть функция f (x, y, z) задана таблицей. Тогда, чтобы получить двойственную функцию, нужно перевернуть и инвертировать столбец значений:
-
x
y
z
f (x, y, z)
f ∗(x, y, z)
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
.
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
Определение 2.1.24 . Функция f (x1, ..., xn) ∈ P2 - самодвойственная, если f ∗(x1, ..., xn) = f (x1, ..., xn).
Обозначим за S множество всех самодвойственных функций:
S = {f | f (x1, ..., xn) ∈ P2, f ∗(x1, ..., xn) = f (x1, ..., xn)}.
Пример 2.1.19 . Пусть f = x ∨ y, f ∗ = x ∨ y = xy. f /= f ∗ и, следовательно, f ∗ не является самодвойственной.
Пример 2.1.20 . Пусть f - функция голосования:
f (x, y, z) = xy ∨ xz ∨ yz.
f
∗(x,
y,
z)
=
x
·
y
∨
x
·
z
∨
y
·
z
=
x
·
y
·
x
·
z
·
y
·
z
=
= (x ∨ y)(x ∨ z)(y ∨ z) = (x ∨ xz ∨ xy ∨ yz)(y ∨ z) =
xy ∨ xz ∨ xyz ∨ xz ∨ xy ∨ xyz ∨ yz ∨ yz = xy ∨ xz ∨ yz ∨ xyz =
= xy ∨ xz ∨ yz = f (x, y, z).
Функция голосования - самодвойственная.
Рассмотрим табличный вид функции голосования:
-
x
y
z
f (x, y, z)
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
.
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
Можно видеть, что нижняя половина столбца значений повторяет перевернутую и инвертированную верхнюю. Это верно для любой самодвойственной функции.
Утверждение 2.1.17 (Принцип двойственности).
Пусть формула U = f (U1, ..., Un) реализует функцию F (x1, ..., xm), где Ui
формулы, реализующие fi(xj1 , ..., xjk ), i = 1, n. Пусть U ∗
формулы
i i
реализующие f ∗, i = 1, n. Тогда формула U ∗ = f ∗(U ∗, ..., U ∗) реализует
i 1 n
функцию F ∗(x1, ..., xm).
Доказательство.
1
F (x1, ..., xm) = f (f1(xi1 , ..., xik), ..., fn(xj1 , ..., xjkn )).
Тогда, по определению двойственной функции
1
F ∗(x1, ..., xm) = f (f1(xi1 , ..., xik), ..., fn(xj1 , ..., xjkn )) =
1

1
= f (f ∗1(xi1 , ..., xik), ..., f n(xj1 , ..., xjkn )) =
), ..., f ∗n(xj1 , ..., xjkn )) =
1
= f ∗(f ∗1(xi1 , ..., xik), ..., f ∗n(xj1 , ..., xjkn )).
С другой стороны, формула f ∗(U ∗, ..., U ∗) реализует функцию
f ∗(fU ∗ (xi1 , ..., xik
1 n
), ..., fUn∗ (xj1 , ..., xjkn )) =
1 1
1
= f ∗(f ∗1(xi1 , ..., xik), ..., f ∗n(xj1 , ..., xjkn )).
Таким образом, один из способов задать функцию F ∗(x1, ..., xm)
формулой имеет вид U ∗ = f ∗(U ∗, ..., U ∗).
1 n
D
Пример 2.1.21 . Пусть,
F (x, y, z) = (x ≡ y) ⊃ (y | z) = f (f1(x, y), f2(y, z)).
f
∗(x,
y)
=(x
⊃
y)∗
=
x
⊃
y
=
x
∨
y
=
xy.
f ∗
1 (x, y) =(x ≡ y)∗= x ≡ y = x ≡ y = x ⊕ y.
f ∗
2 (x, y) =(x | y)∗= x | y = x ∨ y = x ∧ y = x ↓ y.
Тогда по утверждению 2.1.17 f ∗(x, y, z) будет иметь вид
F ∗(x, y, z) = f ∗(f ∗(x, y), f ∗(y, z)) = (x ⊕ y) ∧ (y ↓ z).
1 2
Действительно,
F ∗(x, y, z) = ¬((x ≡ y) ⊃ (y | z)) = ¬((x ≡ y) ∨ (y ∨ z)) =
=
(x
≡
y)
∧
(y
∨
z)
=
(x
⊕
y)
∧
(y
↓
z).
Следствие 2.1.18 . Пусть f (x1, ..., xn) задана формулой U над множеством функций {0, 1, ¬, ∨, ∧}. Тогда f ∗(x1, ..., xn) задается формулой, полученной из U заменой: нулей на единицы, единиц на нули,
конъюнкций на дизъюнкции, дизъюнкций на конъюнкции.
Доказательство. Пусть f = ¬f1. Это значит, что f = f0(f1), где
0
f0(x) = x. Тогда f ∗ = x = x = f0. Следовательноf ∗ = f ∗(f ∗) = f0(f ∗) = ¬f ∗.
0 1 1 1
0

f ∗ = f ∗(f ∗, f ∗) = f ∗ ∧ f ∗.
0 1 2 1 2
0
Пусть f = f1 ∧ f2. Другими словами, f = f0(f1, f2), f0(x, y) = x ∧ y. Тогда f ∗ = x ∧ y = x ∨ y иf ∗ = f ∗(f ∗, f ∗) = f ∗ ∨ f ∗.
0 1 2 1 2
Пусть f = 0. Тогдa f ∗ = 1. Пусть f = 1. Тогда f ∗ = 0.
Пусть
f
=
x.
Тогда
f
∗
=
x
=
x
=
f
.
D
Пример 2.1.22 . Пусть, f (x, y, z) = 0 ∧ x ∧ y ∨ 1 ∧ y ∧ z. Тогда,
f
∗(x,
y,
z)
=
f
(x,
y,
z)
=
¬(0
∧
x
∧
y
∨
1
∧
y
∧
z)
=
= (0 ∧ x ∧ y) ∧ (1 ∧ y ∧ z) = (1 ∨ x ∨ y) ∧ (0 ∨ y ∨ z).
Пример подтверждает утверждение 2.1.18.
Пример 2.1.23 . Пусть, f (x, y, z) = (0 ∨ x)(y ∨ xz). Тогда
f
∗(x,
y
,
z)
=
¬((0
∨
x)(y
∨
x
∧
z))
=
¬(1
∧
x)(y
∨
x
∧
z))
=
=
(1
∧
x)
∨
(y
∨
x
∧
z))
=
(1
∧
x)
∨
(y
∧
(x
∨
z))).
Пример подтверждает утверждение 2.1.18.
Утверждение 2.1.19 . Класс функций S замкнут.
Доказательство. Рассмотрим суперпозицию ранга 1 от функций из S.
Пусть f (x1, ..., xn) ∈ S и
g(x1, ..., xj−1, xj+1, ..., xn, y) = f (x1, ..., xj−1, y, xj+1, ..., xn).
Тогда
g(x1, ..., xj−1, xj+1, ..., xn, y) = f (x1, ..., xj−1, y, xj+1, ..., xn) =
= f ∗(x1, ..., xj−1, y, xj+1, ..., xn) = f (x1, ..., xj−1, y, xj+1, ..., xn) =
= g(x1, ..., xj−1, xj+1, ..., xn, y).
Следоваетльно g(x1, ..., xj−1, xj+1, ..., xn, y) ∈ S.
Пусть f (x1, ..., xn) ∈ S и h(y1, ..., ym) ∈ S и
g(x1, ..., xj−1, xj+1, ..., xn, y1, ..., ym) =
= f (x1, ..., xj−1, h(y1, ..., ym), xj+1, ..., xn).
Тогда
g(x1, ..., xj−1, xj+1, ..., xn, y1, ..., ym) =
= f (x1, ..., xj−1, h(y1, ..., ym), xj+1, ..., xn) =
=
f
(x1,
...,
xj−1,
h(y1,
...,
ym),
xj+1,
...,
xn)
=
= f (x1, ..., xj−1, h∗(y1, ..., ym), xj+1, ..., xn) =
= f ∗(x1, ..., xj−1, h∗(y1, ..., ym), xj+1, ..., xn) =
= f (x1, ..., xj−1, h(y1, ..., ym), xj+1, ..., xn) =
= g(x1, ..., xj−1, xj+1, ..., xn, y1, ..., ym)
Получаем, что g(x1, ..., xj−1, xj+1, ..., xn, y1, ..., ym) ∈ S.
Таким образом, [S] = S.
D
Замечание 2.1.18 . Тождественная функция f (x) = x лежит в классе S. Конъюнкция f (x) = x ∧ y не лежит в S. Таким образом, S /= ∅ и S /= P2.
Лемма 2.1.20 (О несамодвойственной функции). Пусть
f (x1, ..., xn) ∈/ S. Тогда, подставляя в f вместо аргументов x и x можно
получить константу.
Доказательство. Пусть (α1, ..., αn), αi ∈ {0, 1}, такой набор, что f (α1, ..., αn) = f (α1, ..., αn). Такой набор обязан существовать в силу несамодвойственности функции f .
Рассмотрим функцию ϕ(x) = f (xα1 , ..., xαn ). Тогда
ϕ(0) = f (0α1 , ..., 0αn ) = f (α10, ..., αn0) = f (α1, ..., αn) =
= f (α1, ..., αn) = f (1α1 , ..., 1αn ) = ϕ(1).
Следовательно ϕ(x) - константа.
D
Пример 2.1.24 (получение константы из несамодвойственной функции). Пусть f (x, y, z) = x ⊃ (y ⊕ z). Это несамодвойствен-
ная функция, поскольку
f (0, 1, 0) = 0 ⊃ (1 ⊕ 0) = 1 = 1 ⊃ (0 ⊕ 1) = f (1, 0, 1).
Тогда ϕ(x) = f (x, x, x) - константа. Действительно,
ϕ(x) = x ⊃ (x ⊕ x) = x ⊃ 1 = 1.