Пусть АÌN. Множество А называют разрешимым (рекурсивным), если его характеристическая функция cА(n), определяемая так: cА(n)={1 при nÎА, 0 в противном случае}, вычислима. Иными словами А разрешимо, если существует алгоритм, определяющий по произвольному натуральному числу, входит оно в А, или нет.
Множество АÌN называется перечислимым (рекурсивно перечислимым), если оно есть множество значений некоторой вычислимой функции. Иными словами, множество перечислимо, если все его элементы и только они порождаются некоторым алгоритмическим процессом.
Теорема
Всякое разрешимое множество является перечислимым.
Доказательство: Пусть А – разрешимо, т.е. функция cА(n)={1 при nÎА, 0 в противном случае}, вычислима. Построим вычислимую функцию fА, перечисляющую множество А.
fА(n+1)=min k {cA(k)=1, k>f(n)}.
fA(0)=min k {cA(k)=1}.
Функция fА вычислима благодаря вычислимости функции cА.
Теорема
Множество А разрешимо тогда и только тогда, когда перечислимы А и`А.
Доказательство:
1. А разрешимо => А перечислимо (доказано выше)
А разрешимо =>`А разрешимо (теорема 1) =>`А перечислимо
2. Пусть А,`А перечислимы. Разрешающий алгоритм легко строится с помощью машин, перечисляющих эти множества. Решая эту задачу надо запустить обе машины, перечисляющие А и`А соответственно, и дожидаться, пока n будет сгенерировано одной из них. Так как А +`А = N, это число непременно появится. Поскольку А и`А не пересекаются, оно будет сгенерировано только одной машиной. Если оно сгенерировано машиной А, то nÎА, если`А – то nÏА.
Вопрос20.
Множество А перечислимо тогда и только тогда, когда оно есть область определения некоторой вычислимой функции.
Док-во:
Организуем процесс параллельного вычисления значений функции f для всех натуральных чисел x. Смотри чертеж. Если вычисление значения f(x0) заканчивается на каком-то такте t0 работы соответствующей машины, то мы сразу и только в этом случае объявляем, что x0 – входит в перечисляемое нами множество. Понятно, что: 1) мы построили процесс эффективного порождения некоторого множества, и значит оно перечислимо; 2) это множество – область определения данной вычислимой функции f. Итак, область определения всякой вычислимой функции – перечислима.
Следствие: Существуют перечислимые множества, не являющиеся разрешимыми.
Док-во:
Ф(n,x) – универсальная вычислимая функция (для класса всех выч. ф-ий одного переменного). В силу следствия и из теоремы об универсальной ф-ии область определения Dф – неразрешима, но согласно предыдущей теореме множество Dф перечислимо.
Вопрос 21.
Доказать теорему Райса.
Не существует нетривиальных разрешимых классов вычислимых функций.
Док-во:
Лемма: Для всякой вычислимой функции f(n, x) двух переменных существует алгоритм, по произвольному числу n0, выдающей один из номеров a(n0) функции f(n0, x) переменного x.
Док-во леммы:
Укажем программу вычисления ф-ии f(n0,x). По условию, т.к. ф-ия f(n,x) двух переменных вычислима, существует машина Tf, вычисляющая значение этой ф-ии 2-х переменных. Требуемая программа работает так: вначале имея на ленте запись числа x, делаем слева от него пропуск в одну клетку и записываем левее число n0. После этого остается запустить программу f(n,x). Описанная процедура и служит изложением алгоритма a(n0).
Замечание: В обозначениях леммы, очевидно имеем: f(n0, x)=Ф(a(n0), x).
Док-во теоремы:
Пусть w - некоторое перечислимое неразрешимое множество и пусть K – некоторый нетривиальный класс вычислимых ф-ий. Как известно нигде неопределенная ф-ия z(x) явл. вычислимой. Имеем одно из двух: либо zÎK либо zÏK. Док-во теоремы проходит аналогично в обоих случаях. Рассмотрим, например, когда zÎK. Поскольку К¹В, $xÎВ-К. Область определения ф-ии x очевидно не пуста. Построим ф-ию 2-х переменных: f(n,x)={ z(x) если nÏw; x(x) если nÎw. Покажем, что ф-ия f(n,x) вычислима. Алгоритм вычислений ее значений таков:
Запускаем алгоритм перечисления мн-ва w. До тех пор, пока он не выдаст число n – значение 1-го аргумента не делаем более ничего. Когда (и если) обнаружется, что nÎw запускаем программу вычисления ф-ии x(x) для значения аргумента х. Изложенное и есть требуемый алгоритм.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.