- •Содержание
- •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.13 . Формула вида
α0 ⊕ α1x1 ⊕ α2x2 ⊕ ... ⊕ αnxn ⊕ α12x1x2 ⊕ ... ⊕ α12...nx1x2...xn, (30)
где x1, ..., xn - логические переменные, а α0, α1, ..., α12...n - логические константы, называется полиномом Жегалкина.
Замечание 2.1.9 . Для удобства будем также использовать следующую запись:
Пример 2.1.12 .
�
I⊆{1,...,n}
α(I) xi.
i∈I
1 ⊕ X1 ⊕ x2x3 - полином Жегалкина.
Здесь n = 3, α0 = α1 = α23 = 1, а α2 = α3 = α12 = α13 = α123 = 0.
Утверждение 2.1.6 . Пусть f (x1, ..., xn) ∈ P2. Тогда функция f может быть представлена полиномом Жегалкина, причем единственным образом.
Доказательство. Для начала докажем существование такого представления для функции. Прежде всего заметим, что произвольная
функция представима в виде формулы U1 над {¬, ∨, ∧}: если f /= 0, ее
можно представить в виде СДНФ, а f = 0 представим как f = x ∧ x.
Воспользуемся законом де Моргана x ∨ y = x ∧ y и заменим все
дизъюнкции в формуле U1 на конъюнкции и отрицание. Получим
представление функции f (x1, ..., xn) в виде формулы U2 над системой
элементарных функций {¬, ∧}. Заменим в формуле U2 все отрицания
на сложение по модулю два согласно тождеству x = 1 ⊕ x. Раскроем
все скобки, пользуясь дистрибутивностью ∧ относительно ⊕, и получим
формулу вида (30).
Теперь докажем единственность. Пусть
f (x1, ..., xn) = �
α(I) xi = �
β(I) xi.
I⊆{1,...,n}
i∈I
I⊆{1,...,n}
i∈I
два различных полинома Жегалкина для функции f . Полиномы различны, когда отличаются наборы их коэффициентов α и β.
Выберем I∗ ⊆ {1, ..., n} такой, что α(I∗) /= β(I∗) и α(I) = β(I)
для любого I ⊂ I∗. Мы можем выбрать такой набор, начав с I0 =
{1, ..., n} и последовательно удаляя индексы, если указанное свойство
не выполняется. Так, если для набора индексов Ik существует I ⊂ Ik:
α(I) /= β(I), то выбираем Ik+1 = I и так далее, пока не получим Il с
искомыми свойствами.
Пусть
Тогда
σi =
( 1, i ∈ I∗, i = 1, n.
0, i ∈/ I∗,
f (σ1, ..., σn) = �
α(I) σi = � α(I) = � α(I) ⊕ α(I∗)
и в то же время
I⊆{1,...,n}
i∈I
I⊆I∗
I⊂I∗
f (σ1, ..., σn) = �
β(I) σi = � β(I) = � β(I) ⊕ β(I∗).
Таким образом,
I⊆{1,...,n}
i∈I
I⊆I∗
I⊂I∗
� α(I) ⊕ α(I∗) = � β(I) ⊕ β(I∗) =⇒ α(I∗) = β(I∗).
I⊂I∗
I⊂I∗
Противоречие с нашим исходным предположением о I∗ доказывает утверждение.
D
Замечание 2.1.10 . Полином Жегалкина является формулой над
{0, 1, ∧, ⊕}. 0 нам требуется для задания тождественно нулевой
функции. Для остальных случаев нам будет достаточно функций
1, ∧, ⊕.
Пример 2.1.13 . Рассмотрим функцию f , заданную формулой
f (x, y, z) = xy ⊃ z ∨ xy. Представим ее с помощью формулы над {¬, ∧}.
xy ⊃ z = xy ∨ z = xy ∧ z,
xy ⊃ z ∨ xy = (xy ⊃ z) ∧ xy = xy ∧ z ∧ xy
Теперь избавимся от отрицаний и раскроем скобки.
xy ∧ z ∧ xy = 1 ⊕ ((1 ⊕ (xy ∧ (1 ⊕ z))) ∧ (1 ⊕ xy)) =
= 1 ⊕ 1 ⊕ xy ⊕ (xy ∧ (1 ⊕ z)) ⊕ (xy ∧ (1 ⊕ z))xy =
= xy ⊕ (xy ∧ (1 ⊕ z)) ⊕ (xy ∧ (1 ⊕ z)) = xy.
Таким образом, единственным ненулевым коэффициентом полинома Жегалкина для функции f оказался α12 и сам полином имеет вид f (x, y, z) = xy.
Замечание 2.1.11 . Для построения полинома Жегалкина есть и более удобный способ - метод неопределенных коэффициентов. Предположим, что функция f (x1, ..., xn) задана таблицей значений для всех наборов аргументов. Нам известен общий вид полинома Жегалкина для f
�
I⊆{1,...,n}
α(I) xi
i∈I
и требуется только вычислить коэффициенты α(I).
Проходя по всей таблице значений для f будем приравнивать общий вид полинома и известное значение функции на данном наборе, тем самым последовательно вычисляя коэффициенты α.
I 1,...,n
f (0, ..., 0) =⊆{ }
α(I) 1\
i∈I
0 = α(∅). Отсюда имеем первый
коэффициент:
α(∅) = f (0, ..., 0).
f (0, .., 0, 1) = α(∅) ⊕ α({n}) ∧ 1. Таким образом,
α({n}) = f (0, ..., 0, 1) ⊕ α(∅) = f (0, ..., 0, 1) ⊕ f (0, ..., 0, 0).
f (0, ..., 0, 1, 0) = α(∅) ⊕ α({n − 1}) ∧ 1 и
α({n − 1}) = f (0, ..., 0, 1, 0) ⊕ α(∅) = f (0, ..., 0, 1, 0) ⊕ f (0, ..., 0, 0, 0).
f (0, ..., 0, 1, 1) = α(∅) ⊕ α({n − 1}) ⊕ α({n}) ⊕ α({n − 1, n}) и,
следовательно,
α({n − 1, n}) = f (0, ..., 0, 1, 1) ⊕ α(∅) ⊕ α({n − 1}) ⊕ α({n}) =
= f (0, ..., 0, 1, 1) ⊕ f (0, ..., 0, 0, 0) ⊕ f (0, ..., 0, 1, 0)⊕
⊕f (0, ..., 0, 0, 0) ⊕ f (0, ..., 0, 1) ⊕ f (0, ..., 0, 0) =
= f (0, ..., 0, 1, 1) ⊕ f (0, ..., 0, 1, 0) ⊕ f (0, ..., 0, 0, 1) ⊕ f (0, ..., 0, 0, 0)
Продолжая этот процесс мы сможем вычислить все коэффициенты и тем самым получим полином Жегалкина для функции f .
Пример 2.1.14 . Построим полином Жегалкина для функции
f (x, y, z) = xy ⊃ z ∨ xy из примера 2.1.13 с помощью метода
неопределенных коэффициентов. В общем виде полином для функции
от трех переменных выглядит следующим образом:
f (x, y, z) = α0 ⊕ α1x ⊕ α2y ⊕ α3z ⊕ α1,2xy ⊕ α1,3xz ⊕ α2,3yz ⊕ α1,2,3xyz.
Переберем все возможные наборы аргументов.
-
f (0, 0, 0) = 0 = α0
⇒
α0 = 0,
f (0, 0, 1) = 0 = α0 ⊕ α3
⇒
α3 = 0,
f (0, 1, 0) = 0 = α0 ⊕ α2
⇒
α2 = 0,
f (0, 1, 1) = 0 = α0 ⊕ α2 ⊕ α3 ⊕ α2,3 ⇒ α2,3 = 0,
f (1, 0, 0) = 0 = α0 ⊕ α1 ⇒ α1 = 0,
-
f (1, 0, 1) = 0 = α0 ⊕ α1 ⊕ α3 ⊕ α1,3
⇒
α1,3 = 0,
f (1, 1, 0) = 1 = α0 ⊕ α1 ⊕ α2 ⊕ α1,2
⇒
α1,2 = 1,
f (1, 1, 1) = 1 = α0 ⊕ α1 ⊕ α2 ⊕ α3 ⊕ α1,2⊕
⊕α1,3 ⊕ α2,3 ⊕ α1,2,3
⇒
α1,2,3 = 0.
Полином Жегалкина имеет вид f (x, y, z) = xy, что совпадает с результатом примера 2.1.13.
Пример 2.1.15 . Рассмотрим еще один пример использования метода неопределенных коэффициентов. Пусть f (x, y, z) = (x ⊕ y) ⊃ z. Пусть
f (x, y, z) = xy ∨ xz ∨ yz.
-
f (0, 0, 0) = 0 = α0
⇒
α0 = 0,
f (0, 0, 1) = 0 = α0 ⊕ α3
⇒
α3 = 0,
f (0, 1, 0) = 0 = α0 ⊕ α2
⇒
α2 = 0,
f (0, 1, 1) = 1 = α0 ⊕ α2 ⊕ α3 ⊕ α2,3 ⇒ α2,3 = 1,
f (1, 0, 0) = 0 = α0 ⊕ α1 ⇒ α1 = 0,
-
f (1, 0, 1) = 1 = α0 ⊕ α1 ⊕ α3 ⊕ α1,3
⇒
α1,3 = 1,
f (1, 1, 0) = 1 = α0 ⊕ α1 ⊕ α2 ⊕ α1,2
⇒
α1,2 = 1,
f (1, 1, 1) = 1 = α0 ⊕ α1 ⊕ α2 ⊕ α3 ⊕ α1,2⊕
⊕α1,3 ⊕ α2,3 ⊕ α1,2,3
⇒
α1,2,3 = 0.
Следовательно, полином Жегалкина для функции f будет иметь вид
f (x, y, z) = xy ⊕ xz ⊕ yz.