
- •Содержание
- •1 Элементы теории множеств. Комбинаторика. 5
- •Математическая логика: Булева аллгебра 88
- •Теория алгоритмов 129
- •Теория графов 162
- •Математическая логика: Исчисления высказываний и предикатов 207
- •Элементы теории множеств. Комбинаторика.
- •Введение
- •Примеры задач.
- •Задача о расположении конвертов
- •Задача о Ханойской башне
- •Базовые обозначения
- •Правило суммы и правило произведения
- •Основы теории множеств
- •Понятие множества
- •Парадокс Рассела
- •Подмножества
- •Операции над множествами
- •Диаграммы Эйлера-Венна
- •Прямое произведение множеств
- •Бинарные отношения и функции
- •Бинарные отношения
- •Функции
- •Специальные бинарные отношения: Отношение эквивалентности
- •Специальные бинарные отношения: Отношение порядка
- •Лексикографический порядок
- •Выборки с повторениями и без повторений
- •Размещения и сочетания
- •Треугольник Паскаля
- •Связь сочетаний и (0,1)-векторов
- •Перебор сочетаний
- •Бином Ньютона
- •Мультимножества
- •Связь мультимножеств и (0,1)-векторов
- •Полином Ньютона
- •Разбиения множеств.
- •Приложение: программа перебора сочетаний
- •Перестановки
- •Понятие перестановки
- •Группа перестановок
- •Циклы перестановки
- •Тип перестановки
- •Разложения и разбиения натуральных чисел
- •Разложения натуральных чисел
- •Разбиения натуральных чисел
- •Принцип включения-исключения
- •Принцип включения-исключения
- •Задача о беспорядках
- •Мощность объединения множеств
- •Число целочисленных решений системы неравенств
- •Математическая логика: Булева аллгебра
- •Булева алгебра. Функции алгебры логики.
- •Булевы функции
- •Формулы
- •Основные тождества
- •Разложение функции по переменным
- •Дизъюнктивная и конъюнктивная нормальные формы
- •Полином Жегалкина
- •1 ⊕ X1 ⊕ x2x3 - полином Жегалкина.
- •Полнота системы функций
- •Функции, сохраняющие ноль
- •Функции, сохраняющие единицу
- •Двойственность
- •Монотонность
- •Линейность
- •Критерий полноты системы функций
- •Теория алгоритмов
- •Машины Тьюринга
- •Понятие алгоритма
- •Машина Тьюринга
- •Способы записи машины Тьюринга
- •Стандартные конфигурации
- •Вычислимые функции
- •Алгоритмически неразрешимые задачи
- •Сложность алгоритма
- •Полиномиальная сводимость
- •Классы задач в форме распознавания свойств
- •4 Теория графов
- •4.1 Определения графа
- •Общее определение
- •Виды графов
- •Обыкновенный граф
- •Примеры графов
- •Графы Бержа
- •4.2 Изоморфизм графов
- •4.2.1 Инварианты графа
- •Операции
- •Основные операции над графами
- •Подграфы
- •Дополнение графа
- •Маршруты и связность
- •Деревья
- •Матрицы, связанные с графом
- •Матрица смежности
- •Матрица инцидентности
- •Список ребер
- •Обходы графов
- •Эйлеров цикл
- •Гамильтонов цикл
- •Задачи и алгоритмы
- •Остов минимального веса
- •Алгоритм 4.8.1 (Алгоритм Краскала).
- •Задача коммивояжера
- •Задача о клике
- •Задача о вершинном покрытии
- •Задача о гамильтоновом цикле
- •Снова задача коммивояжера
- •Алгоритм дерева
- •Математическая логика: Исчисления высказываний и предикатов
- •Исчисление высказываний
- •Пример задачи логики высказываний
- •Формальные теории
- •Формальная теория исчисление высказываний
- •Теоремы исчисления высказываний
- •Теорема о полноте исчисления высказываний
- •Независимость аксиом исчисления высказываний
- •Исчисление предикатов
- •Пример задачи логики предикатов
- •Формальная теория исчисление предикатов
- •Алфавит.
- •Формулы.
- •Аксиомы.
- •Правила вывода.
- •Интерпретация
- •Литература
Алгоритмически неразрешимые задачи
В силу интуитивности понятия алгоритма, вопрос о существовании алгоритмического решения некоторого класса задач оставался без ответа. Избавиться от неопределенности позволил тезис Тьюринга-Черча, который устанавливает соответствие между интуитивным понятием алгоритмически разрешимой задачи и понятием машины Тьюринга, которое возможно изучать с формально-математической точки зрения.
Тезис Тьюринга-Чёрча: Любой алгоритм в интуитивном смысле этого слова может быть представлен эквивалентной машиной Тьюринга.
Физический тезис Тьюринга-Чёрча: Любая функция, которая может быть вычислена физическим устройством, может быть вычислена машиной Тьюринга.
Этот тезис позволяет нам четко определить алгоритмически неразрешимую проблему, как проблему, для которой не существует решающей ее машины Тьюринга. Из теоремы 3.1.1 следует, что существуют функции, которые нельзя вычислиь с помощью машин Тьюринга, а значит алгоритмически неразрешимые задачи существуют. Далее в этом параграфе приведем пример такой функции.
Определим функцию "Продуктивность" следующим образом:
( fM (0), fM (0) - определена,
Продуктивность(M ) =
0, иначе .
Пример 3.1.3 . Машина Тьюринга на рисунке 21 имеет продуктивность 2, поскольку запущенная на пустой ленте она рисует две единички и останавливается. Машина Тьюринга на рисунке
:1 :1
q 1:L q
1 2
Рисунок 21: Машина с двумя состояниями и продуктивностью 2
22, запущенная на пустой ленте, не останавливается, а рисует бесконечную последовательность единиц. Ее продуктивность - 0.
:1 :1
q 1:L q
1 1:L 2
Рисунок 22: Машина с двумя состояниями и продуктивностью 0
Определение 3.1.12 . Введем функцию максимальной продуктивности машины Тьюринга с n состояниями.
p(n) = max
M – м.Т. с n состояниями
Продуктивность(M ), n ∈ N.
Чтобы получить функцию N0 → N0, доопределим функцию p в нуле:
p(0) = 0.
Лемма 3.1.2 (о свойствах фукнции p(n)). Пусть n ∈ N0. Тогда
1) p(n + 1) > p(n) (монотонность), 2) p(n + 9) ≥ 2n.
Доказательство. 1) Пусть M - такая машина Тьюринга с n
состояниями, что Продуктивность(M ) = p(n). Построим машину M t
на основе машины M согласно рисунку 23, добавляя к машине одно состояние и увеличивая продуктивность на единицу. M (Λ) = Dqn 1...1 D,
p (n )
:1
q M q
1:L q
1 n n+1
Рисунок 23: Машина M !
а машина M t содержит дополнительное состояние и две новые команды qn1 → qn+1L и qn+1D → qn+11 которые сдвигают головку на
одну ячейку влево и дорисовывают дополнительную единицу, так что
M t(Λ) = Dqn+1 1...1
p (n ) + 1
D. Мы получили машину Тьюринга M t с n + 1
состоянием и продуктивностью p(n) + 1. Следовательно
p(n + 1) ≥ Продуктивность(M t) = p(n) + 1 > p(n).
2) Построим машину M tt на основе машин Mn из примера 3.1.1 и M×2
из примера 3.1.2 согласно рисунку 24: машина Mn рисует n единиц а
машина M×2 удваетвает это число. Поскольку у машины Mn n состояний, а у M×2 - 9 состояний, то у машины M tt n + 9 состояний. Таким образом, M tt(Λ) = Dqn+9 1...1 D. Тогда
2n
q1 Mn
1:1
n q
q
n+1Mx2
qn+9
Рисунок 24: Машина M !!
p(n + 9) ≥ Продуктивность(M tt) = 2n.
D
Теорема 3.1.3 (об алгоритмической неразрешимости задачи вычисления функции p(n)). Не существует машины Тьюринга
T , для которой fT (n) = p(n) для всех n ∈ N0.
Доказательство. Пусть такая машина T существует и пусть у нее k состояний. Построим машину M с n + 2k состояниями таким образом, чтобы ее продуктивность была равна p(p(n)):
M (Λ) = Dqn+2k 1...1 D.
p (p ( n ))
Машина M получается путем соединения машины Mn с n состояниями из примера 3.1.1 с двумя копиями машины T (рис. 25); всего у машины M n + 2k состояний. Проверим, что продуктивность такой машины p(p(n)). Сначала на пустом слове работает машина Mn и рисует на ленте n единичек:
Mn(Λ) = Dqn 1...1 D.
n
Затем работает копия машины T с состояниями qn+1, ..., qn+k. Получая в качестве аргумента n, машина вычисляет функцию p(n):
T (D 1...1 D) = Dqn+k 1...1 D.
n
p (n )
q Mn
q 1:1 q
T q 1:1 q T q
1 n n+1 n+k n+k+1 n+2k
Рисунок 25: Машина с продуктивностью p(p(n))
Последней работает копия машины T с состояниями qn+k+1, ..., qn+2k, вычисляя максимальную продуктивность от своего аргумента:
T (Dqn+k 1...1 D) = Dqn+2k 1...1 D.
p (n )
p (p ( n ))
Следовательно, искомая машина M построена.
По построению, у машины M n + 2k состояний. Следовательно,
p(p(n)) = Продуктивность(M ) ≤ p(n + 2k).
Тогда, p(n) ≤ n + 2k по первому пункту леммы 3.1.2. Так как последнее неравенство верно для любого натурального n, то оно верно и для n + 9:
p(n + 9) ≤ n + 2k + 9. Из второго пункта леммы 3.1.2 следует, что
2n ≤ p(n + 9) ≤ n + 2k + 9.
Следовательно, n ≤ 2k + 9, что противоречит произвольности выбора номера n, так как 2k + 9 заведомо известная константа. Противоречие доказывает невозможность существования машины Тьюринга T ,
вычисляющей функцию максимальной продуктивности.
D
Задача 3.1.1 (проблема остановки машины Тьюринга). Пусть N (M ) - номер машины Тьюринга M согласно нумерации, использованной в доказательстве утверждения 3.1.1. Существует ли такая машина Тьюринга Ms, что для любой машины Тьюринга M
( Dq1D, M (Λ) - определено,
Ms(1...1) =
N (M )
DqD, M (Λ) - неопределено.
Следствие 3.1.4 . Проблема остановки машины Тьюринга алгоритмически неразрешима.
Доказательство этого факта основывается на теореме 3.1.3. Его идея сводится к тому, что если бы существовала машина, способная определить остановится ли произвольная машина Тьюринга, нам удалось бы построить и машину Тьюринга, вычисляющую максимальную продуктивность машины Тьюринга с n состояниями.
Смысл алгоритмической неразрешимости проблемы остановки машины Тьюринга состоит в том, что не может существовать алгоритма, который, получая на вход описание произвольного алгоритма, мог бы определить, завершит ли последний работу за конечное время, или его выполнение будет зациклино.
Можно привести другие примеры. Например, алгоритмически неразрешимой является задача о выводимости формулы в исчислении предикатов.
Задача 3.1.2 . Пусть A - формула исчисления предикатов. Выводима ли A в исчислении предикатов?
Теория N P -полных задач