- •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).
Перечислимые множества.
Т2: Множество
перечислимо
оно является областью определения
вычислимой функции.
Д-во:
Пусть
множество Р перечислимо, тогда по
определению существует алгоритм А,
который выводит все элементы этого
множества и никакие другие. Пусть некий
алгоритм С подаёт на входе n и запускает
по шагам алгоритм А. как только n печатается
алгоритмом А, С печатает, н-р, 0, иначе С
ничего не выводит. Тогда этот алгоритм
вычисляет функцию f(n)=0, при n
P,
а множество Р есть область определения
этой функции.
Пусть дана некоторая
вычислимая функция f, а А – алгоритм её
вычисляющий. Р – область определения
данной функции. Рассмотрим алгоритм С,
который перебирает все натуральные
числа и для каждого запускает алгоритм
А, если печатается значение f(n), то С
печатает само n. Т.о. алгоритм С перечисляет
область определения Р вычислимой функции
f.
Т3: Множество
перечислимо
оно является областью значений вычислимой
функции.
Т4: Множество Х
перечислимо
его «полухарактеристическая» функция,
определённая на элементах Х и не
определённая вне Х, вычислима.
Полухарактеристической может быть, н-р, функция, равная 0 на элементах Х и неопределённая вне Х.
Т5: Множество натуральных чисел перечислимо, если оно либо пусто, либо есть множество значений всюду определённой вычислимой функции (другими словами, его элементы можно расположить в вычислимую последовательность).
1.4. Теорему Поста и теорему о графике вычислимой функции (с доказательством).
Теорема Поста:
Всякое разрешимое множество N0 –
перечислимо. Если множества Х и
(его дополнение до множества N0) перечислимы,
то Х разрешимо.
Д-во:
Пусть множество Х разрешимо, след-но,
по определению существует алгоритм А,
вычисляющий функцию f(n)=1, если n
X
и f(n)=0, если n
X.
Рассмотрим алгоритм С, который проверяет
принадлежность чисел 1, 2,… с помощью
алгоритма А и печатает те из них, которые
принадлежат Х. Ясно, что алгоритм С
перечисляет множество Х.
Если алгоритм С будет печатать те элементы, которые не принадлежат Х, то он будет перечислять дополнение множества Х до множества всех натуральных чисел.
Пусть множества Х
и
перечисляются алгоритмами А и В
соответственно. Для выяснения
принадлежности заданного числа n к Х
составим алгоритм С, который параллельно
выполняет по шагам А и В (сначала 1 элемент
выводится алгоритмом А, затем элемент
выводится алгоритмом В и т.д.). С
останавливается как только один из
алгоритмов А и В напечатает n (рано или
поздно ровно один из них это сделает).
Если n напечатано ал-горитмом А, то С
печатает 1, иначе – 0. Т.о. С определяет
принадлежит ли n множеству Х.
Теорема Поста гласит, что разрешимые множества – это перечислимые множества с перечислимыми дополнениями. Но перечислимые множества не обязаны быть разрешимыми.
Т6: Функция f с натуральными аргументами и значениями вычислима тогда и только тогда, когда её график F={(x,y) | f(x) определено и f(x)=y} является перечислимым множеством пар натуральных чисел.
Д-во:
Пусть f вычислима. Тогда существует
алгоритм А, перечисляющий её область
определения, т.е., печатающий все x, на
которых f определена, и алгоритм В,
вычисляющий f(x). Рассмотрим алгоритм С,
который выполняет по шагам алгоритм А
и после печати очередного значения x
выполняет алгоритм В, вычисляя f(x) и
печатая результат. Получим алгоритм,
перечисляющий множество F.
Если имеется
алгоритм А, перечисляющий F, то функция
f вычисляется таким алгоритмом В: имея
на входе n, запускаем А и ждём появления
в F пары, первый элемент которой равен
n; как только такая пара появилась,
печатаем её второй элемент и заканчиваем
работу.
