
- •Содержание
- •1 Элементы теории множеств. Комбинаторика. 5
- •Математическая логика: Булева аллгебра 88
- •Теория алгоритмов 129
- •Теория графов 162
- •Математическая логика: Исчисления высказываний и предикатов 207
- •Элементы теории множеств. Комбинаторика.
- •Введение
- •Примеры задач.
- •Задача о расположении конвертов
- •Задача о Ханойской башне
- •Базовые обозначения
- •Правило суммы и правило произведения
- •Основы теории множеств
- •Понятие множества
- •Парадокс Рассела
- •Подмножества
- •Операции над множествами
- •Диаграммы Эйлера-Венна
- •Прямое произведение множеств
- •Бинарные отношения и функции
- •Бинарные отношения
- •Функции
- •Специальные бинарные отношения: Отношение эквивалентности
- •Специальные бинарные отношения: Отношение порядка
- •Лексикографический порядок
- •Выборки с повторениями и без повторений
- •Размещения и сочетания
- •Треугольник Паскаля
- •Связь сочетаний и (0,1)-векторов
- •Перебор сочетаний
- •Бином Ньютона
- •Мультимножества
- •Связь мультимножеств и (0,1)-векторов
- •Полином Ньютона
- •Разбиения множеств.
- •Приложение: программа перебора сочетаний
- •Перестановки
- •Понятие перестановки
- •Группа перестановок
- •Циклы перестановки
- •Тип перестановки
- •Разложения и разбиения натуральных чисел
- •Разложения натуральных чисел
- •Разбиения натуральных чисел
- •Принцип включения-исключения
- •Принцип включения-исключения
- •Задача о беспорядках
- •Мощность объединения множеств
- •Число целочисленных решений системы неравенств
- •Математическая логика: Булева аллгебра
- •Булева алгебра. Функции алгебры логики.
- •Булевы функции
- •Формулы
- •Основные тождества
- •Разложение функции по переменным
- •Дизъюнктивная и конъюнктивная нормальные формы
- •Полином Жегалкина
- •1 ⊕ X1 ⊕ x2x3 - полином Жегалкина.
- •Полнота системы функций
- •Функции, сохраняющие ноль
- •Функции, сохраняющие единицу
- •Двойственность
- •Монотонность
- •Линейность
- •Критерий полноты системы функций
- •Теория алгоритмов
- •Машины Тьюринга
- •Понятие алгоритма
- •Машина Тьюринга
- •Способы записи машины Тьюринга
- •Стандартные конфигурации
- •Вычислимые функции
- •Алгоритмически неразрешимые задачи
- •Сложность алгоритма
- •Полиномиальная сводимость
- •Классы задач в форме распознавания свойств
- •4 Теория графов
- •4.1 Определения графа
- •Общее определение
- •Виды графов
- •Обыкновенный граф
- •Примеры графов
- •Графы Бержа
- •4.2 Изоморфизм графов
- •4.2.1 Инварианты графа
- •Операции
- •Основные операции над графами
- •Подграфы
- •Дополнение графа
- •Маршруты и связность
- •Деревья
- •Матрицы, связанные с графом
- •Матрица смежности
- •Матрица инцидентности
- •Список ребер
- •Обходы графов
- •Эйлеров цикл
- •Гамильтонов цикл
- •Задачи и алгоритмы
- •Остов минимального веса
- •Алгоритм 4.8.1 (Алгоритм Краскала).
- •Задача коммивояжера
- •Задача о клике
- •Задача о вершинном покрытии
- •Задача о гамильтоновом цикле
- •Снова задача коммивояжера
- •Алгоритм дерева
- •Математическая логика: Исчисления высказываний и предикатов
- •Исчисление высказываний
- •Пример задачи логики высказываний
- •Формальные теории
- •Формальная теория исчисление высказываний
- •Теоремы исчисления высказываний
- •Теорема о полноте исчисления высказываний
- •Независимость аксиом исчисления высказываний
- •Исчисление предикатов
- •Пример задачи логики предикатов
- •Формальная теория исчисление предикатов
- •Алфавит.
- •Формулы.
- •Аксиомы.
- •Правила вывода.
- •Интерпретация
- •Литература
Способы записи машины Тьюринга
Для однозначного определения машины Тьюринга достаточно задать ее программу. Действительно, если мы сравним две машины с одинаковой
программой, то окажется, что они могут отличаться только элементами из множеств A и Q какой-то из машин, которые не используются ни в одной из команд. В таком случае, это символы алфавита, на которые данная машина никак (за исключением остановки) не отреагирует, или состояния, в которые она никогда не перейдет. С точки зрения обработки входных данных, между такими машинами не будет никакой разницы.
Прямой записью машины Тьюринга будет простое перечисление команд программы через запятую или в столбец, как мы это сделали в примере 3.1.1. Этот способ не очень удобен для понимания структуры программы и поиска нужной команды.
Более удобным представлением может оказаться таблица (n + 1) × k,
в которой по вертикали перечисляются символы из A ∪ {D}, а по
горизонтали состояния машины. В ячейке в строке, соответствующей
символу a, и столбце, соответствующем состоянию qi записывается qj b, если в программе данной машины есть команда qia → qj b.
Например, таблица для программы из примера 3.1.1 будет выглядеть следующим образом:
-
q1 q2
q3
D
1
q11 q21
q2L q3L
q31
При этом представлении гораздо проще быстро определить, какая команда должна выполняться в следующий момент. Кроме того, из таблицы очевидно, машина может остановиться в том и только в том случае, если она в какой-то момент окажется в состоянии q3 и ее головка будет обозревать символ 1.
Наиболее точно представляет структуру работы машины Тьюринга граф переходов. Граф переходов для машины из примера 3.1.1 представлен на рисунке 18. Каждая вершина такого графа соответствует одному из состояний машины Тьюринга, а каждая стрелка - команде программы этой машины.
Например, команде q1D → q11 соответствует стрелка от вершины q1
к ней же самой, а над стрелкой указана замена символа D на символ 1: "D : 1"; команде q11 → q2L соответствует стрелка от вершины q1 к
вершине q2 с пометкой "1 : L".
:1 :1 :1
q 1:L q
1:L q
1 2 3
Рисунок 18: Граф переходов машины M3
Стандартные конфигурации
Пусть M - машина Тьюринга с алфавитом A и множеством состояний
Q.
Определение 3.1.2 . Пусть ..., γ−3, γ−2, γ−1, γ0, γ1, γ2, γ3, ... - символы на ленте M .
Пусть существуют i, j : i ≤ j, γi, γj ∈ A, и γk = D, при k < i или
k > j. Тогда γ = γi, γi+1, ..., γj - слово на ленте машины M .
Если для любых i имеем γi = D, то говорят, что на ленте записано пустое слово: γ = Λ.
Определение 3.1.3 . Расширением слова на ленте называется запись δγσ, где γ - слово на ленте, δ и σ слова конечной или нулевой длины из символа D.
Определение 3.1.4 . Конфигурация, в которой находится машина Тьюринга в определенный момент времени, может быть представлена записью вида
τk, τk+1, ..., τl−1, q, τl, ..., τm,
где τk, τk+1, ..., τm - расширение слова на ленте, q - состояние, в котором находится машина M , а l - номер ячейки, которую обозревает головка машины.
Определение 3.1.5 . Стандартная начальная конфигурация имеет вид Dq1αD, где α - слово на ленте.
Определение 3.1.6 . Стандартная конечная конфигурация имеет вид DqβD, где q ∈ Q, β - слово на ленте; β = Λ или β = βi, ..., βj , βs /= D, при i ≤ s ≤ j.
Определение 3.1.7 . Длина слова на ленте γ -
( j − i + 1, γ = γi, ..., γj ,
L(γ) =
0, γ = Λ.
Определение 3.1.8 . Пусть, M - машина Тьюринга. M (α)
- конфигурация, в которой останавливается машина Тьюринга M , запущенная из стандартной начальной конфигурации Dq1αD.
M (α) неопределена, если M не остановится.
Определение 3.1.9 . Говорят, что машина Тьюринга M принимает слово α, если M (α) - стандартная конечная конфигурация.