- •1.1. Вычислимые функции, разрешимые и перечислимые множества.
- •1.2. Основные свойства разрешимых и перечислимых множеств (с доказательством).
- •1.3. Теоремы, связывающие понятия вычислимость, разрешимость и перечислимость.
- •Разрешимые множества.
- •Перечислимые множества.
- •1.4. Теорему Поста и теорему о графике вычислимой функции (с доказательством).
- •1.5. Интуитивное понятие алгоритма, исполнитель алгоритма. Основные свойства алгоритма.
- •Свойства алгоритмов:
- •Машина Тьюринга как алгоритмическая модель. Модель Тьюринга (Тьюринга-Поста).
- •Та.2.Алгоритмически неразрешимые проблемы.
- •2.3. Нумерация, натуральная нумерация, однозначная нумерация.
- •2.4. Девятая проблему Гильберта о диофантовых уравнениях.
- •Та.3.Основные меры сложности вычисления
- •3.1.Временная и емкостная сложность.
- •3.2. Нижние и верхние оценки временной сложности.
- •3.3. Эффективность вычислений
- •3.4. Классы сложности (p, exp, np, npc).
ТА.1.Формальная теория вычислимости.
1.1. Вычислимые функции, разрешимые и перечислимые множества.
Перечислимые множества.
Множество Х называется перечислимым, если оно перечисляется некоторым алгоритмом, т.е. если существует алгоритм, который печатает (в произвольном порядке и с произвольными промежутками времени) все элементы этого множества и только их.
Такой алгоритм не имеет входа; напечатав несколько чисел, он может надолго задуматься и следующее число напечатать после большого перерыва (а может вообще больше никогда ничего не напечатать–тогда множество будет конечным).
Вычислимые функции.
Функция называется вычислимой, если существует алгоритм, её вычисляющий, т.е. та-кой алгоритм А, что если f(x) определено для некоторого , то алгоритм А останавливается на входе x и печатает f(x); если f(x) не определено, то алгоритм А не останавливается на входе x.
Пример: .
Разрешимые множества.
Множество называется разрешимым, если существует алгоритм, который по любому определяет, принадлежит ли оно множеству X.
1.2. Основные свойства разрешимых и перечислимых множеств (с доказательством).
Пересечение, объединение и разность разрешимых множеств разрешимы.
Если X и Y разрешаются алгоритмами А и В, то их пересечение разрешается алгоритмом С, который имея на входе n, выполняет алгоритм А и если результат положительный, то выполняет В, иначе выводит отрицательный от-вет. Если результат выполнения алгоритма В положительный, то выводится положительный ответ, иначе – отрицательный.
Любое конечное множество разрешимо.
Конечное множество всегда можно перебрать, сравнивая результаты с n.
Пересечение и объединение перечислимых множеств перечислимы.
Если Х и Y перечисляются алгоритмами А и В, то их объединение перечисляется алгоритмом С, который параллельно выполняет по шагам А и В (сначала 1 элемент выводится алгоритмом А, затем элемент выводится алгоритмом В и т. д.) и печатает всё, что печатают А и В. Т.о. все элементы, принадлежащие хотя бы одному из множеств Х или Y, и только они, будут напечатаны алгоритмом С. Итак, С перечисляет множество XY.
С пересечением немного сложнее – алгоритм С, который параллельно выполняет по шагам А и В (сначала 1 элемент выводится алгоритмом А, затем элемент выводится алгоритмом В и т. д.) накапливает результаты работы А и В и каждый новый элемент сверяет с накопленными до этого. Если равенство выполнилось, то последний элемент печатается. Т.о. алгоритм С напечатает все элементы принадлежащие XY, и только их. Итак, С перечисляет множество XY.
Дополнение перечислимого множества не обязано быть перечислимым
1.3. Теоремы, связывающие понятия вычислимость, разрешимость и перечислимость.
Разрешимые множества.
Т1: Множество X разрешимо его характеристическая функция f(n)=(if nX then 1 else 0) вычислима.
Д-во:Пусть X разрешимо некоторым алгоритмом А. Покажем, что характеристическая функция множества Х вычислима. В самом деле, алгоритм её вычисления таков: получив на вход число n, выполнить алгоритм А. если nX выдать на выход 1, иначе выдать на выход 0. Закончить работу. Т.о. приведённый алгоритм вычисляет характеристическую функцию множества Х.
Пусть Х есть область определения некоторой функции f, равной 1 на элементах Х и 0 вне Х, вычисляемой некоторым алгоритмом В. Тогда Х разрешается таким алгоритмом А: подать на вход n. Запустить алгоритм В. Если результат работы алгоритма В равен 1, то nX, иначе nX.