- •Содержание
- •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.14 . Система функций P ⊆ P2 называется полной, если любую функцию из P2 можно представить в виде формулы над P.
Замечание 2.1.12 . Удобно доказывать полноту системы функций, показывая, что она сводится к уже известной полной системе. Лемма 2.1.7 . Пусть даны две системы функцй P ⊆ P2 и Q ⊆ P2.
Пусть функция f (x1, x2, ..., xn) представима в виде формулы над P, и
любая функция из P представима в виде формулы над Q. Тогда функция
f представима в виде формулы над Q.
Доказательство. Пусть, U - формула над P, реализующая функцию
f . U1, U2, ..., Uk - формулы над Q, реализующие все функции g1, g2,
..., gk множества P. Тогда каждое вхождение функции gi в формулу U
можно заменить формулой Ui. Проведя такую замену, получим формулу
U t над Q. Очевидно, формула U t эквивалентна формуле U , поскольку
они отличаются заменой подформул на эквивалентные.
D
Теорема 2.1.8 . Пусть даны две системы функцй P ⊆ P2 и Q ⊆ P2. Пусть P - полная система функций, и любая функция из P предста- вима в виде формулы над Q. Тогда, Q - полная система функций.
Доказательство. Непосредственно следует из леммы 2.1.7.
D
Приведем несколько примеров полных систем функций.
Утверждение 2.1.9 . {¬, ∨, ∧} - полная система функций.
Доказательство. Рассмотрим произвольную функцию f ∈ P2.
Если f = 0, то f = fU , где U = x ∧ x.
В противном случае f /= 0. Тогда по утверждению 2.1.3 f = fU , где
σ1 σn
U = V (σ1,...,σn)
f (σ1,...,σn)=1
x1 · · · xn .
D
Следствие 2.1.10 . {¬, ∧} и {¬, ∨} - полные системы функций.
Доказательство. Докозательство очевидно следует из утверждения
2.1.9 и правил де Моргана, если заметить, что
x ∨ y = x ∧ y, и x ∧ y = x ∨ y.
Таким образом, подставив в любую формулу, выражающую функцию f в виде формулы над {¬, ∨, ∧}, указанные выражения для ∨ или ∧, можно получить эквивалентную формулу над {¬, ∧} или над {¬, ∨}.
D
Утверждение 2.1.11 . 1) Системы функций {|} и {↓} - полные системы функций.
2) Других полных систем, состоящих из одной функции от двух переменных нет.
Доказательство. 1) а) x = x | x, x ∨ y = x | y = (x | x) | (y | y). б) x = x ↓ x, x ∧ y = x ↓ y = (x ↓ x) ↓ (y ↓ y).
2) Пусть h(x, y) ∈ P2 и {h} - полная система функций.
Пусть h(0, 0) = 0. Тогда, если f (x) задана в виде формулы над {h},
то f (0) = 0. Действительно, функция f имеет вид f (x) = h(U1, U2), где
Ui - переменная x, или формула того же вида, что и f , i = 1, 2. Таким
образом, в конце концов оказывается, что f (0) = h(0, 0) = 0. Тогда,
с помощью только функции h(x, y) не может быть функция отрицания, поскольку ¬0 = 1. Следовательно h(0, 0) = 1.
Аналогично можно показать, что h(1, 1) = 0.
Теперь рассмотрим все функции от двух переменных, удовлетворяющие полученному условию: h(0, 0) = 1, h(1, 1) = 0. Всего таких функций четыре (Скажите почему).
-
x
y
↓
|
x
y
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
Как видно из таблицы, две из этих функций известны нам как стрелка Пирса и штрих Шеффера, а две другие представляют из себя функцию отрицания от аргументов x и y. Поскольку система из одной функции отрицания не является полной системой функций, утверждение доказано.
D
Утверждение 2.1.12 . {0, 1, ⊕, ∧} - полная система функций. Доказательство. Истинность этого утверждения следует из того, что любая функция из P2 представима в виде полинома Жегалкина (утв.
2.1.6).
D
Следствие 2.1.13 . Так как 1 ⊕ 1 = 0, полной системой функций является и {1, ⊕, ∧}.
Определение 2.1.15 . Пусть
K0 = {f1(x1, ..., xk1 ), f2(x1, ..., xk2 ), ..., fm(x1, ..., xkm )}.
f - суперпозиция ранга 1 (элементарная суперпозиция) функций f1, ...,
fm, если f получена одним из способов:
переименованием некоторой переменной xj функции fi, i ∈ {1, ..., m}, j ∈ {1, ..., ki}:
fi(x1, ..., xj−1, y, xj+1, ..., xki ),
где y может совпасть с любой переменной;
подстановкой некоторой функции fl вместо переменной xj
функции fi, l, i ∈ {1, ..., m}, j ∈ {1, ..., ki}:
fi(x1, ..., xj−1, fl(x1, ..., xkl ), xj+1, ..., xki ).
Множество суперпозиций ранга 1 функций из K0 обозначим
K1. Также, множество суперпозиций ранга 1 функций из Ki−1
обозначим Ki, i = 1, ∞. Функции из множества Ki будем называть
суперпозициями ранга i функций из K0.
Определение 2.1.16 . Суперпозицией функций из K0 будем называть суперпозицию любого ранга. Другими словами, f - суперпозиция
функций f1, ..., fm, если ∃t ∈ N такое, что f ∈ Kt.
Замечание 2.1.13 . По сути дела утверждение, что f является суперпозицией функций из K0, эквивалентно утверждению, что f представима в виде формулы над K0. Таким образом мы можем переформулировать определение полной системы.
Определение 2.1.17 (2.1.14’). Система функций P ⊆ P2
называется полной, если любая функция из P2 является суперпозицией функций из P.
Определение 2.1.18 . Пусть M ⊆ P2. Замыканием M называется множество
[M] = {f | f - суперпозиция функций из M}.
Определение 2.1.19 . Пусть M ⊆ P2. M - замкнутое множество функций, если M = [M].
Пример 2.1.16 .
M = {x, x}. Тогда [M ] = {x, x} = M и M - замкнуто.
M = {x}. Тогда [M ] = {x, x} /= M . Множество M - не
замкнуто.
Несложно проверить нижеследующие свойства операции замыкания.
Утверждение 2.1.14 . Пусть M, N ⊂ P2.
Замыкание множества содержит само множество:
M ⊆ [M].
Замыкание произвольного множества замкнуто:
[[M]] = [M].
Замыкание сохраняет включение множеств:
M ⊆ N ⇒ [M] ⊆ [N].
Замыкание объединения содержит объединение замыканий:
[M] ∪ [N] ⊆ [M ∪ N].
Замечание 2.1.14 . Заметим,что для доказательства замкнутости некоторого класса функций M достаточно показать, что любая суперпозиция ранга 1 функций из M лежит в M.
Обозначим множество суперпозиций ранга i функций из M за Mi. Пусть M1 = M. Тогда M2 - множество суперпозиций ранга 1 функций из M1 = M. Следовательно, M2 = M1 = M. Аналогично можно
убедиться, что Mi = M, i = 1, ∞.
Далее, когда мы будем доказывать замкнутость классов функций,
будем ограничиваться только рассмотрением суперпозиций ранга 1.
С учетом определения замкнутости можно дать еще одно альтернативное определение полноты.
Определение 2.1.20 (2.1.14”). Система функций P ⊆ P2 - полная, если [P] = P2.
Далее мы бы хотели доказать критерий, позволяющий для произвольной системы функций из P2 определить, является ли она полной. Для этого нам понадобится ввести и изучить свойства нескольких замкнутых классов функций алгебры логики.