
- •Предисловие
- •Вычислимые функции
- •Разрешимые множества
- •Перечислимые множества
- •Перечислимые и разрешимые множества
- •Перечислимость и вычислимость
- •Универсальные функции и неразрешимость
- •Универсальные функции
- •Диагональная конструкция
- •Перечислимое неразрешимое множество
- •Перечислимые неотделимые множества
- •Простые множества: конструкция Поста
- •Нумерации и операции
- •Главные универсальные функции
- •Вычислимые последовательности функций
- •Главные универсальные множества
- •Свойства главных нумераций
- •Множества номеров
- •Новые номера старых функций
- •Изоморфизм главных нумераций
- •Перечислимые свойства функций
- •Теорема о неподвижной точке
- •Неподвижная точка и отношения эквивалентности
- •Программа, печатающая свой текст
- •Системный трюк: ещё одно доказательство
- •Несколько замечаний
- •m-сводимость и свойства перечислимых множеств
- •m-сводимость
- •m-полные множества
- •m-полнота и эффективная неперечислимость
- •Изоморфизм m-полных множеств
- •Продуктивные множества
- •Пары неотделимых множеств
- •Вычисления с оракулом
- •Машины с оракулом
- •Эквивалентное описание
- •Релятивизация
- •Несравнимые множества
- •Арифметическая иерархия
- •Операция скачка
- •Классификация множеств в иерархии
- •Машины Тьюринга
- •Зачем нужны простые вычислительные модели?
- •Машины Тьюринга: определение
- •Машины Тьюринга: обсуждение
- •Ассоциативные исчисления
- •Моделирование машин Тьюринга
- •Двусторонние исчисления
- •Полугруппы, образующие и соотношения
- •Арифметичность вычислимых функций
- •Программы с конечным числом переменных
- •Машины Тьюринга и программы
- •Арифметичность вычислимых функций
- •Теоремы Тарского и Гёделя
- •Прямое доказательство теорем Тарского и Гёделя
- •Рекурсивные функции
- •Примитивно рекурсивные функции
- •Примеры примитивно рекурсивных функций
- •Примитивно рекурсивные множества
- •Другие виды рекурсии
- •Машины Тьюринга и рекурсивные функции
- •Частично рекурсивные функции
- •Вычислимость с оракулом
- •Оценки скорости роста. Функция Аккермана
- •Литература
- •Предметный указатель
- •Указатель имён
14 |
Вычислимость, разрешимость и перечислимость |
[гл. 1] |
Теорема 1. Пересечение и объединение перечислимых множеств перечислимы.
Если X и Y перечисляются алгоритмами A и B,
то их объединение перечисляется алгоритмом, который параллельно выполняет по шагам A и B и печатает всё, что печатают A и B. С пересечением немного сложнее | результаты работы A и B надо накапливать и сверять друг с другом; что появится общего | печатать.
4. Проведите это рассуждение, используя какое-либо другое эквивалентное определение перечислимости.
Как мы увидим, дополнение перечислимого множества не обязано быть перечислимым.
5. Иногда говорят о так называемых «недетерминированных алгоритмах» (оксюморон, но распространённый) | такой алгоритм включает в себя команды типа
n := произвольное натуральное число
(достаточно, впрочем, команды « n := 0 или 1», так как произвольное число можно формировать по битам). Недетерминированный алгоритм (при одном и том же входе) может действовать по-разному, в зависимости от того, какие «произвольные» числа будут выбраны. Докажите, что перечислимое множество можно эквивалентно определить как множество чисел, которые могут появиться на выходе недетерминированного алгоритма (при фиксированном входе).
6. Докажите, что если множества A N и B N перечислимы, то их декартово произведение A × B N × N также перечислимо.
1.4. Перечислимые и разрешимые множества
Теорема 2. Всякое разрешимое множество натуральных чисел перечислимо. Если множество A и его дополнение (до множества всех натуральных чисел) перечислимы, то A разрешимо.
Если принадлежность числа к множеству A мож-
но проверить некоторым алгоритмом, то A и его дополнение перечислимы: надо по очереди проверять принад-
[п. 5] |
Перечислимость и вычислимость |
15 |
лежность чисел 0; 1; 2; : : : и печатать те из них, которые принадлежат A (или те, которые не принадлежат A).
В другую сторону: если у нас есть алгоритм, перечисляющий A, а также другой алгоритм, перечисляющий дополнение к A, то для выяснения принадлежности заданного числа n к A надо запустить оба эти алгоритма и ждать, пока один из них напечатает n (мы знаем, что рано или поздно ровно один из них это сделает). Посмотрев, какой алгоритм это сделал, мы узнаем, лежит ли n в A.
Этот факт называют теоремой Поста .
Она говорит, что разрешимые множества | это перечислимые множества с перечислимыми дополнениями. Напротив, перечислимые множества можно определить через разрешимые:
Теорема 3. Множество P натуральных чисел перечислимо тогда и только тогда, когда оно является проекцией некоторого разрешимого множества Q пар натуральных чисел. (Проекция получается, если от пар оставить их первые компоненты: x P y(hx; yi Q).)
Проекция любого перечислимого множества пере-
числима (перечисляющий алгоритм должен лишь удалять вторые члены пар), так что проекция разрешимого множества тем более перечислима.
Напротив, если P | перечислимое множество, перечисляемое алгоритмом A, то оно есть проекция разрешимого множества Q, состоящего из всех таких пар hx; ni,
что x появляется в течении первых n шагов работы алгоритма A. (Это свойство, очевидно, разрешимо.)
1.5. Перечислимость и вычислимость
Мы видели, что перечислимое множество можно определить в терминах вычислимых функций (например, как область определения вычислимой функции). Можно сделать и наоборот:
Теорема 4. Функция f с натуральными аргументами и значениями вычислима тогда и только тогда, когда её
16 |
Вычислимость, разрешимость и перечислимость |
[гл. 1] |
график
F = {hx; yi | f(x) определено и равно y}
является перечислимым множеством пар натуральных чисел.
Пусть f вычислима. Тогда существует алгоритм,
перечисляющий её область определения, то есть печатающий все x, на которых f определена. Если теперь для каждого из таких x вычислять ещё и значение f(x), получим алгоритм, перечисляющий множество F .
Напротив, если имеется алгоритм, перечисляющий F , то функция f вычисляется таким алгоритмом: имея на входе n, ждём появления в F пары, первый член которой равен n; как только такая пара появилась, печатаем её второй член и кончаем работу.
Пусть f | частичная функция с натуральными аргументами и значениями. Образ множества A при f определяется как множество всех чисел f(n), для которых n A
и f(n) определено. Прообраз множества A при f определяется как множество всех тех n, при которых f(n) определено и принадлежит A.
Теорема 5. Прообраз и образ перечислимого множества при вычислимой функции перечислимы.
В самом деле, прообраз перечислимого множе-
ства A при вычислимой функции f можно получить так: взять график f, пересечь его с перечислимым множеством N × A и спроектировать на первую координату.
Рассуждение для образов аналогично, только координаты меняются местами.
7. Пусть F | перечислимое множество пар натуральных чисел. Докажите. что существует вычислимая функция f, определённая на тех и только тех x, для которых найдётся y, при котором hx; yi F, причём значение f(x) является одним
из таких y. (Это утверждение называют иногда теоремой об униформизации .)
8.Даны два пересекающихся перечислимых множества X
иY . Докажите, что найдутся непересекающиеся перечисли- мые множества X0 X и Y 0 Y , для которых X0 Y 0 = X Y .
[п. 5] |
Перечислимость и вычислимость |
17 |
9. |
Диофантовым называется уравнение, |
имеющее вид |
P (x1; : : : ; xn) = 0, где P | многочлен с целыми коэффициентами. Докажите, что множество диофантовых уравнений, имеющих целые решения, перечислимо. (Оно неразрешимо: в этом состоит известный результат Ю. В. Матиясевича, явившийся решением знаменитой «10-й проблемы Гильберта».)
10.Не ссылаясь на доказательство теоремы Ферма, пока-
жите, что множество всех показателей n, для которых существует решение уравнения xn + yn = zn в целых положительных числах, перечислимо. (Как теперь известно, это множество содержит лишь числа 1 и 2.)
11.Покажите, что всякое бесконечное перечислимое множество можно записать в виде {a(0); a(1); a(2); : : : }, где a |
вычислимая функция, все значения которой различны. (Указание: в ходе перечисления удаляем повторения.)
12.Покажите, что всякое бесконечное перечислимое множество содержит бесконечное разрешимое подмножество. (Указание: воспользуемся предыдущей задачей и выберем возрастающую подпоследовательность.)
13.Покажите, что для всякой вычислимой функции f существует вычислимая функция, являющаяся «псевдообратной» к f в следующем смысле: область определения g совпадает с областью значений f, и при этом f(g(f(x))) = f(x) для всех x, при которых f(x) определено.
14.Действительное число называется вычислимым, если существует вычислимая функция a, которая по любому рациональному " > 0 даёт рациональное приближение к с ошиб-
кой не более ", т. е. | − a(")| 6 " для любого рационального
" > 0. (Рациональное число является конструктивным объектом, так что понятие вычислимости не требует специального уточнения.)
(а) Докажите, что число вычислимо тогда и только тогда, когда множество рациональных чисел, меньших , разрешимо.
(б) Докажите, что число вычислимо тогда и только тогда, когда последовательность знаков представляющей его десятичной (или двоичной) дроби вычислима.
(в) Докажите, что число вычислимо тогда и только тогда, когда существует вычислимая последовательность рациональных чисел, вычислимо сходящаяся к (последнее означа-
18 |
Вычислимость, разрешимость и перечислимость |
[гл. 1] |
ет, что можно алгоритмически указать N по " в стандартном "-N-определении сходимости.)
(г) Покажите, что сумма, произведение, разность и частное вычислимых действительных чисел вычислимы. Покажите, что корень многочлена с вычислимыми коэффициентами вычислим.
(д) Сформулируйте и докажите утверждение о том, что предел вычислимо сходящейся последовательности вычислимых действительных чисел вычислим.
(е) Действительное число называют перечислимым снизу, если множество всех рациональных чисел, меньших , перечислимо. (Перечислимость сверху определяется аналогично.) Докажите, что число перечислимо снизу тогда и только тогда, когда оно является пределом некоторой вычислимой возрастающей последовательности рациональных чисел.
(ж) Докажите, что действительное число вычислимо тогда и только тогда, когда оно перечислимо снизу и сверху.
Дальнейшие свойства вычислимых действительных чисел см. в задаче 23.