Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TA.docx
Скачиваний:
88
Добавлен:
15.02.2015
Размер:
257.28 Кб
Скачать

18. Вычислимость по Тьюрингу примитивно рекурсивных функций. Суперпозиция.

Теорема 1. Если функции f(x1,x2,…,xn), g1 (x1,x2,…,xm), …, gn (x1,x2,…,xm) правильно вычислимы по Тьюрингу, то правильно вычислима и сложная функция (суперпозиция функций):

φ(x1,x2,…,xn)=f( g1 (x1,x2,…,xm),…, gn (x1,x2,…,xm)).

Доказательство: руководствуясь определением композиции машин Тьюринга, нетрудно понять, что если машина F правильно вычисляет функцию f(y), а машина G правильно вычисляет функцию g(x), то композиция этих машин вычисляет суперпозицию этих функций f(g(x)):q101x; G:q01g(x,y); F:q01f(g(x,y)).

Рассмотрим более сложную суперпозицию вычислимых функций: φ(x,y)= f(g1(x,y), g2(x,y)). Пусть машины F, G1, G2 правильно вычисляют функции f, g1, g2 соответственно. Сконструируем машину Тьюринга, правильно вычисляющую сложную функцию φ(x,y), пользуясь введенными нами машинами сдвига, транспозиции, копирования и нулевой функции:

q101x01y;

K2: 01x01yq01x01y;

G1: 01x01yq01g1(x,y);

Ц: 01g1(x,y) q 01x01y;

G2: 01g1(x,y) q01g2(x,y) ;

Б-:q01g1(x,y) 01g2(x,y) ;

F: q01 f(g1(x,y) ,g2(x,y));

q0→q00 q001 f(g1,g2).

Сконструируйте самостоятельно композицию машин, правильно вычисляющих функцию φ(x,y)= f(g1(x,y), g2(x,y), g3(x,y)). Подстановки указанного вида достаточно специфичны (все функции g имеют одно о тоже число аргументов) и не исчерпывают всевозможных подстановок, которые можно производить над функциями. Но благодаря функциям-проекторам Imn этот недостаток легко устраним: любая суперпозиция функций в функции может быть выражена через суперпозиции указанного вида и функции-проекторы. В самом деле, например, суперпозиция f(g1(x1, x2), g2(x1))может быть в требуемом виде представлена так: f(g1(x1, x2), I12 (g2(x1), g3(x1))), где g3(x1) – любая функция от х1. В свою очередь, используя подстановку и функции-проекторы, можно переставлять аргументы в функции:

f(x2, x1, x3,…,xn)=f(I22(x1, x2), I12(x1, x2), x3, …, xn);

f(x1, x1, x3,…,xn)=f(I12(x1, x2), I12(x1, x2), x3, …, xn);

поэтому можно считать, что теорема полностью доказана.

Сделаем еще один шаг на пути (в каком-то смысле аксиоматического) описания всех функций, вычислимых с помощью машины Тьюринга. Мы докажем, что всякая примитивно рекурсивная функция вычислима с помощью машины Тьюринга. Для этого остается доказать следующую теорему.

19. Вычислимость по Тьюрингу примитивно рекурсивных функций. Примитивная рекурсия.

Теорема 2. Функция φ, возникшая примитивной рекурсией из правильно вычислимых на машине Тьюринга функций f и g, сама правильно вычислима на машине Тьюринга.

Доказательство: Для краткости записей будем считать, что функция φ связана с функциями f и g следующим образом:

φ(x,0)=f(x),

φ(x,i+1)=g(x, φ(x,i)).

Обозначим F и G – машины Тьюринга, правильно вычисляющие функции f и g соответственно. Пусть x,y – произвольные натуральные числа. Требуется сконструировать машину Тьюринга, вычисляющую значение φ(x,y). Как мы уже отмечали, для вычисления φ(x,y) предстоит вычислить y+1 значений φ(x,0), φ(x,1),…, φ(x,y-1), φ(x,y).

Начальная конфигурация такова: q101x01y0. Применим к ней следующую последовательность машин Тьюринга: Б+ВГВ Б+F. В результате получим последовательность конфигураций:

q101x01y0;

Б+:01x q 01y0;

В: 01y q 01x0;

Г: 01y q 01x 01x 0;

В: 01x q 01y 01x 0;

Б+:01x 01y q 01x 0;

F: 01x 01y qα 01φ(x,0)0;

На последнем шаге, применив машину, вычисляющую функцию f(x), к конфигурации q01x, мы получим значение f(x), которое, согласно схеме примитивной рекурсии для φ, есть φ(x,0). Теперь мы можем приступить к вычислению φ(x,1), используя второе соотношение схемы примитивной рекурсии:

φ(x,1)=g(x, φ(x,0)).

Для этого применим сначала к последней конфигурации команды:

qα0→ qα+10Л; qα1→ qα+20. В результате получим конфигурацию: 01x01y-1 qα+2001φ(x,0)0. Теперь нужно подготовить ленту машины к применению машины G, вычисляющей значение g(x,φ(x,0)), то есть необходимо получить на ленте конфигурацию q01x01φ(x,0). Для этого применим к конфигурации 01x01y-1 qα+2001φ(x,0)0 последовательность машин АБ-ВБ+ВГВБ-ВБ+Б+ВБ-. Получим последовательность конфигураций:

01x01y-1 qα+2 001φ(x,0)0;

А: 01x01y-1 q 01φ(x,0)00;

Б-:01xq01y-1 01φ(x,0);

В: 01y-1q01x 01φ(x,0);

Б+:01y-101x q 01φ(x,0);

В: 01y-101 φ(x,0) q 01x;

Г: 01y-101 φ(x,0) q 01x01x;

В: 01y-101x q 01 φ(x,0) 01x;

Б-:01y-1 q 01x 01 φ(x,0) 01x;

В: 01 x q 01 y-1 01 φ(x,0) 01x;

Б+:01 x 01 y-1 q 01 φ(x,0) 01x;

Б+:01 x 01 y-1 01 φ(x,0) q 01x;

В: 01 x 01 y-1 01 x q 01 φ(x,0);

Б-:01 x 01 y-1 q 01 x 01 φ(x,0).

Теперь мы можем применить машину G и вычислить значение

φ(x,1)=g(x, φ(x,0)) : 01 x 01 y-1 qβ 01 φ(x,1).

Применим в этой конфигурации команду: q β0→qα0, зацикливающую программу. Получим конфигурацию:

01 x 01 y-1 qα 01 φ(x,1).

Начинается следующий цикл, осуществляемый командами, идущими после первого появления состояния qα. Этот цикл преобразует конфигурацию вида 01 x 01 y-i qα 01 φ(x,i) в конфигурацию 01 x 01 y-(i+1) qβ 01 φ(x,i+1), при условии, что y>i. Команда q β0→qα0 зацикливает программу, и в результате работы цикла параметр y-i будет понижаться до тех пор, пока не получится конфигурация: 01 x 0 qα 01 φ(x,y), которая в силу команды q α0→qα+10Л перейдет в конфигурацию 01 x qα+1 001 φ(x,y).

Дополнительные команды q α+10→qβ+10, А, В, О, В, Б-, А создают на ленте требуемую конфигурацию q0 01 φ(x,y), доказывающую, что функция φ(x,y) правильно вычислена на машине Тьюринга. Теорема доказана.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]