
- •Содержание
- •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.27 . Пусть f (x1, ..., xn) ∈ P2. Функция f - линейная, если ее полином Жегалкина имеет вид
f (x1, ..., xn) = α0 ⊕ α1x1 ⊕ α2x2 ⊕ ... ⊕ αnxn.
Обозначим L - класс всех линейных функций.
Пример 2.1.27 . x - линейная функция. Функция x ∨ y не является линейной.
Утверждение 2.1.23 . Класс функций L замкнут.
Доказательство. Рассмотрим суперпозицию ранга 1 от функций из L.
Пусть f (x1, ..., xn) ∈ L и
g(x1, ..., xj−1, xj+1, ..., xn, y) = f (x1, ..., xj−1, y, xj+1, ..., xn).
Если
то
f (x1, ..., xn) = α0 ⊕ α1x1 ⊕ α2x2 ⊕ ... ⊕ αnxn,
g(x1, ..., xj−1, xj+1, ..., xn, y) =
= α0 ⊕ α1x1 ⊕ ... ⊕ αj−1xj−1 ⊕ αj y ⊕ αj+1xj+1 ⊕ ... ⊕ αnxn.
Следовательно g(x1, ..., xj−1, xj+1, ..., xn, y) ∈ L.
Пусть f (x1, ..., xn) ∈ L и h(y1, ..., ym) ∈ L и
g(x1, ..., xj−1, xj+1, ..., xn, y1, ..., ym) =
= f (x1, ..., xj−1, h(y1, ..., ym), xj+1, ..., xn).
Пусть и
Тогда
f (x1, ..., xn) = α0 ⊕ α1x1 ⊕ α2x2 ⊕ ... ⊕ αnxn h(y1, ..., ym) = β0 ⊕ β1y1 ⊕ β2y2 ⊕ ... ⊕ βmym.
g(x1, ..., xj−1, xj+1, ..., xn, y1, ..., ym) = α0 ⊕ α1x1 ⊕ ... ⊕ αj−1xj−1⊕
⊕ αj (β0 ⊕ β1y1 ⊕ ... ⊕ βmym) ⊕ αj+1xj+1 ⊕ ... ⊕ αnxn =
= (α0 ⊕ αj β0) ⊕ α1x1 ⊕ ... ⊕ αj−1xj−1 ⊕ αj+1xj+1 ⊕ ... ⊕ αnxn⊕
⊕ αj β1y1 ⊕ ... ⊕ αj βmym.
Если некоторая переменная xi совпадает с переменной yj , сложим коэффициенты по модулю 2. Полученный полином Жегалкина линеен.
Следовательно, g(x1, ..., xj−1, xj+1, ..., xn, y1, ..., ym) ∈ L.
Таким образом, [L] = L.
D
Замечание 2.1.21 . Тождественная функция f (x) = x лежит в классе L. Дизъюнкция f (x) = x ∨ y не лежит в L. Таким образом, L /= ∅ и L /= P2.
Лемма 2.1.24 (О нелинейной функции). Пусть f (x1, ..., xn) ∈/ L.
Тогда, подставляя в f вместо аргументов константы, x, y, x, y и, возможно, навешивая отрицание над f можно получить x ∧ y.
Доказательство. Пусть f (x1, ..., xn) = I⊆{1,...,n} α(I) 1\i∈I xi и f
∈/ L.
Тогда существует I∗ ⊆ {1, ..., n}: |I∗| ≥ 2, α(I∗) /= 0. Не умаляя
общности, положим {1, 2} ⊆ I∗.
f (x1, ..., xn) =
= x1x2f1,2(x3, ..., xn) ⊕ x1f1(x3, ..., xn) ⊕ x2f2(x3, ..., xn) ⊕ f0(x3, ..., xn),
причем ∃α3, ..., αn: f1,2(α3, ..., αn) = 1. Действительно, такие α3, ..., αn
существуют, поскольку, если бы f1,2(σ3, ..., σn) = 0, ∀σ3, ..., σn ∈ {0, 1}, то
функция f приняла бы вид
f (x1, ..., xn) = x1f1(x3, ..., xn) ⊕ x2f2(x3, ..., xn) ⊕ f0(x3, ..., xn),
что противоречит нашему предположению, что {1, 2} ⊆ I∗ и α(I∗) = 1.
Рассмотрим
ψ(x, y) = f (x, y, α3, ..., αn) = xy ⊕ xf1(α3, ..., αn)⊕
⊕ yf2(α3, ..., αn) ⊕ f0(α3, ..., αn) = xy ⊕ xβ ⊕ yγ ⊕ δ.
Теперь определим ϕ(x, y), как ϕ(x, y) = ψ(x ⊕ γ, y ⊕ β) ⊕ γβ ⊕ δ. Тогда
ϕ(x, y) = ((x ⊕ γ)(y ⊕ β) ⊕ (x ⊕ γ)β ⊕ (y ⊕ β)γ ⊕ δ) ⊕ γβ ⊕ δ =
= xy ⊕ xβ ⊕ yγ ⊕ γβ ⊕ xβ ⊕ γβ ⊕ yγ ⊕ γβ ⊕ δ ⊕ γβ ⊕ δ = xy.
Таким образом, мы получили функцию ϕ(x, y) = x ∧ y, причем
ϕ(x, y) = f (x ⊕ f2(α3, ..., αn), y ⊕ f1(α3, ..., αn), α3, ..., αn)⊕
⊕ f1(α3, ..., αn)f2(α3, ..., αn) ⊕ f0(α3, ..., αn),
где добавление к x и y констант f2(α3, ..., αn) и f1(α3, ..., αn) равносильно навешиванию отрицания над переменной, если соответствующая
константа равна 1, а добавление константы f1(α3, ..., αn)f2(α3, ..., αn) ⊕
f0(α3, ..., αn) к f означает возможное навешивание отрицания над этой
функцией.
D
Пример 2.1.28 (Построение x ∧ y с помощью нелинейной функции). Пусть f (x, y, z) = x ⊃ (y ⊕ z). Построим полином
Жегалкина этой функции методом неопределенных коэффициентов.
f (x, y, z) = α0 ⊕ α1x ⊕ α2y ⊕ α3z ⊕ α1,2xy ⊕ α1,3xz ⊕ α2,3yz ⊕ α1,2,3xyz.
-
x
y
z
f (x, y, z)
0
0
0
1
α0 = 1
0
0
1
1
α3 = 0
0
1
0
1
α2 = 0
0
1
1
1
α2,3 = 0
1
0
0
0
α1 = 1
1
0
1
1
α1,3 = 1
1
1
0
1
α1,2 = 1
1
1
1
0
α1,2,3 = 0
Таким образом f (x, y, z) = 1 ⊕ x ⊕ xy ⊕ xz и функция f нелинейна.
Построим функцию ϕ(x, y) = x ∧ y. В нашем случае коэффициент
при xy не равен нулю; выделим в полиноме Жегалкина переменные x и
y.
f (x, y, z) = 1 ⊕ x ⊕ xy ⊕ xz = xy · 1 ⊕ x · (1 ⊕ z) ⊕ 1
Тогда можно положить z = 0 и в терминах леммы 2.1.24 получим, что β = 1, γ = 0, δ = 1 и
ϕ(x, y) = f (x ⊕ γ, y ⊕ β, 0) ⊕ γβ ⊕ δ = ¬f (x, y, 0)
Проверим, что ϕ соответствует конъюнкции:
ϕ(x,
y)
=
(x
⊃
(y
⊕
0))
=
x
⊃
y
=
x
∨
y
=
x
∧
y.