
- •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, и только они, будут напечатаны
алгоритмом С. Итак, С перечисляет
множество X
Y.
С
пересечением немного сложнее – алгоритм
С, который параллельно выполняет по
шагам А и В (сначала 1 элемент выводится
алгоритмом А, затем элемент выводится
алгоритмом В и т. д.) накапливает результаты
работы А и В и каждый новый элемент
сверяет с накопленными до этого. Если
равенство выполнилось, то последний
элемент печатается. Т.о. алгоритм С
напечатает все элементы принадлежащие
X
Y,
и только их. Итак, С перечисляет множество
X
Y.
Дополнение перечислимого множества не обязано быть перечислимым
1.3. Теоремы, связывающие понятия вычислимость, разрешимость и перечислимость.
Разрешимые множества.
Т1: Множество X
разрешимо
его характеристическая функция f(n)=(if
n
X
then 1 else 0) вычислима.
Д-во:Пусть
X разрешимо некоторым алгоритмом А.
Покажем, что характеристическая функция
множества Х вычислима. В самом деле,
алгоритм её вычисления таков: получив
на вход число n, выполнить алгоритм А.
если n
X
выдать на выход 1, иначе выдать на выход
0. Закончить работу. Т.о. приведённый
алгоритм вычисляет характеристическую
функцию множества Х.
Пусть Х есть область
определения некоторой функции f, равной
1 на элементах Х и 0 вне Х, вычисляемой
некоторым алгоритмом В. Тогда Х разрешается
таким алгоритмом А: подать на вход n.
Запустить алгоритм В. Если результат
работы алгоритма В равен 1, то n
X,
иначе n
X.