Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_po_TA.doc
Скачиваний:
27
Добавлен:
18.04.2019
Размер:
1.11 Mб
Скачать

Пример 2

Данный алгоритм преобразует двоичные числа в «единичные», то есть на выходе получается строка из N единичек, если на входе у нас было N в двоичной системе. Например, 101 преобразуется в 5 единиц:

Правила:

  1. «|0» → "0||"

  2. «1» → "0|"

  3. «0» → "" (пустая строка)

Исходная строка:

«101»

Выполнение:

  1. «0|01»

  2. «00||1»

  3. "00||0|"

  4. "00|0|||"

  5. "000|||||"

  6. "00|||||"

  7. "0|||||"

  8. "|||||"

39

Рекурсивный предикат – предикат P типа

для которого вычислима по Тьюрингу соответствующая характеристическая функция

Рекурсивными множествами являются многие обычные множества натуральных чисел: множество четных чисел, множество простых чисел и т.д.

Множество называется рекурсивно перечислимым, если оно является множеством значений некоторой вычислимой функции.

Рекурсивно перечислимый предикат – предикат P рекурсивно перечислим, если существует процедура, позволяющая устанавливать истинность P(x1,…xk); если же P(x1,…xk) ложно, то эта процедура иногда будет это устанавливать, а иногда будет продолжаться неограниченно долго.

Теорема.2. Применение логических связок , , ¬ к рекурсив-

ным предикатам дает рекурсивные же предикаты.

Теорема.2. Применение квантора к рекурсивному предикату приводит к рекурсивному же предикату.

Интуитивно предикат Р рекурсивен, если существует алгоритм, позволяющий выяснить для каждого набора {x1,…xk} слов истинно P(x1,…xk) или нет.

Обычно арифметические предикаты x  y, x + y = z, “x – простое число”, “х делит у” являются рекурсивными.

Здесь и далее под вычислимыми функциями будут подразумеваться одноместные вычислимые функции.

Рассмотрим свойства рекурсивных и перечислимых множеств.

Теорема.3. Объединение и пересечение рекурсивных множеств рекурсивны; дополнение к рекурсивному множеству рекурсивно.

Ввиду известного соответствия между теоретикомножественными операциями и пропозициональными связками эта теорема немедленно вытекает из следующей теоремы.

Теорема.3. Дизъюнкция и конъюнкция вычислимых предикатов вычислимы; отрицание вычислимого предиката вычислимо.

Теорема 3. справедлива для предикатов любой вместимости; мы, однако, докажем ее только для одноместных предикатов – этого достаточно, чтобы получить теорему 3. Для общего случая теорема

доказывается аналогично.

Теорема 4. Объединение и перечисление перечислимых множеств перечислимы.

Теорема 5. Множество тогда и только тогда перечислимо, когда оно является областью определения некоторой вычислимой функции.

Теорема.6. Множество A является рекурсивно перечислимым тогда и только тогда, когда существует разрешимый предикат R x y ( , )

такой, что x A  тогда и только тогда, когда

yR x y ( , ).

Теорема.7. Всякое разрешимое множество рекурсивно перечислимо.

Теорема8 (теорема Поста). Множество тогда и только тогда разрешимо, когда оно само и его дополнение рекурсивно перечислимы.

Теорема 9. Множество номеров самоприменимых машин Тьюринга рекурсивно перечислимо, но не азрешимо. Поскольку мы обычно отождествляем слово с его номером, вместо множества номеров мы можем говорить здесь о множестве кодов.

Теорема 10. Существуют непересекающиеся рекурсивно перечислимые множества E1 и E2 такие, что никакое разрешимое множество не может содержать E1, не имея при этом общих точек с E2. (Как иногда говорят, E1 и E2 не отделимы разрешимыми множествами.)

38

По­ми­мо двух осно­вных опе­ра­ций (под­ста­но­вки и при­ми­тив­ной ре­кур­сии), ис­по­ль­зу­ют­ся и дру­гие опе­ра­ции, со­хра­ня­ющие при­ми­тив­ную ре­кур­сив­ность фун­кций. Эти опе­ра­ции яв­ля­ют­ся про­из­во­дны­ми от осно­вных, т.е. мо­гут быть по­лу­че­ны из них и эле­мен­тар­ных фун­кций.

Пусть име­ют­ся фун­кции y1,y2,...,yk, и в ре­зу­ль­та­те не­ко­то­рой опе­ра­ции Á над эти­ми фун­кци­ями по­лу­че­на фун­кция j, т.е. j=Á(y1,...,yk).

Опре­де­ле­ние [Мат­ро­сов,1989,с.23].

Опе­ра­ция Á на­зы­ва­ет­ся при­ми­тив­но-ре­кур­сив­ной опе­ра­ци­ей, ес­ли из ра­вен­ст­ва j=Á(y1,y2,...,yk) сле­ду­ет, что j яв­ля­ет­ся при­ми­тив­но-ре­кур­сив­ной фун­кци­ей от­но­си­те­ль­но со­во­куп­но­сти {y1,y2,...,yk}.

Рас­смо­трим при­ме­ры час­то при­ме­ня­емых при­ми­тив­но-ре­кур­сив­ных опе­ра­ций, сле­дуя В.Л.Матросову [1989,с.23-24].

1. Опе­ра­ция вве­де­ния фик­тив­ных пе­ре­мен­ных Пусть за­да­на фун­кция g(x,y) и пусть j(x,y,z)=g(x,y). В этом слу­чае го­во­рят, что фун­кция j по­лу­че­на из фун­кции g опе­ра­ци­ей вве­де­ния фик­тив­ной пе­ре­мен­ной z.

Предложение.

Фун­кция j яв­ля­ет­ся при­ми­тив­но-ре­кур­сив­ной фун­кци­ей от­но­си­те­ль­но со­во­куп­но­сти {g}.

Доказательство.

j(x,y,z)=g(I13(x,y,z),I23(x,y,z))=Sub23(g;I13,I23).

Предложение доказано.

2. Опе­ра­ция под­ста­но­вки кон­стант Пусть за­да­на фун­кция g(x,y,z) и пусть j(x,y)=g(x,y,a). В этом

слу­чае го­во­рят, что фун­кция j по­лу­ча­ет­ся из фун­кции g опе­ра­ци­ей под­ста­но­вки кон­стант.

 

Предложение.

Фун­кция j(x,y) яв­ля­ет­ся при­ми­тив­но-ре­кур­сив­ной фун­кци­ей от­но­си­те­ль­но со­во­куп­но­сти {g}.

Доказательство.

j(x,y)=g(I12(x,y),I22(x,y),Ca2(x,y))=Sub32(g;I12,I22,Ca2).

Предложение доказано.

3. Опе­ра­ция про­из­во­ль­ной под­ста­но­вки Пусть фун­кции h1,h2 и h3 яв­ля­ют­ся фун­кци­ями, за­ви­ся­щи­ми лишь от не­ко­то­рых пе­ре­мен­ных x,y,z. Го­во­рят, что фун­кция j(x,y,z) по­лу­че­на из фун­кций g,h1,h2,h3 опе­ра­ци­ей про­из­во­ль­ной под­ста­но­вки (су­пер­по­зи­ции), ес­ли j=g(h1,h2,h3).

Пример.

Пусть да­ны фун­кции, опре­де­лён­ные тер­ма­ми g(x1,x2,x3), h1(x), h2(x,y), h3(x,y,z), а j(x,y,z)=g(h1(x),h2(x,y),h3(x,y,z)).

По­ка­жем, что j(x,y,z) - при­ми­тив­но-ре­кур­сив­ная фун­кция от­но­си­те­ль­но со­во­куп­но­сти {g,h1,h2,h3}. Фун­кцию j мож­но пред­ста­вить так:

j(x,y,z)=g(h1(I13(x,y,z)),h2(I13(x,y,z),I23(x,y,z)), h3(I13(x,y,z),I23(x,y,z),I33(x,y,z))).

Обоз­на­чим:

h1*(x,y,z)«h1(I13(x,y,z)), h2*(x,y,z)«h2(I13(x,y,z),I23(x,y,z)), h3*(x,y,z)«h3(I13(x,y,z),I23(x,y,z),I33(x,y,z)).

Фун­кции h1* и h2* по­лу­че­ны из фун­кций h1 и h2 со­от­ве­т­ст­вен­но опе­ра­ци­ей вве­де­ния фик­тив­ных пе­ре­мен­ных, по­это­му h1* - при­ми­тив­но-ре­кур­сив­ная фун­кция от­но­си­те­ль­но {h1}, h2* - при­ми­тив­но-ре­кур­сив­ная фун­кция от­но­си­те­ль­но {h2}. Оче­вид­но, h3* - при­ми­тив­но-ре­кур­сив­ная фун­кция от­но­си­те­ль­но со­во­куп­но­сти {h3}. А т.к. вы­пол­ня­ет­ся ра­вен­ст­во j=Sub33(g;h1*,h2*,h3*), то j яв­ля­ет­ся при­ми­тив­но-ре­кур­сив­ной фун­кци­ей от­но­си­те­ль­но со­во­куп­но­сти {g,h1*,h2*,h3*}. При­ме­няя пер­вое свой­ст­во от­но­си­те­ль­ной при­ми­тив­ной ре­кур­сив­но­сти, по­лу­ча­ем, что j яв­ля­ет­ся при­ми­тив­но-ре­кур­сив­ной фун­кци­ей от­но­си­те­ль­но со­во­куп­но­сти фун­кций {g,h1,h2,h3}.

4. Опе­ра­ции ко­неч­но­го сум­ми­ро­ва­ния и ко­неч­но­го про­из­ве­де­ния

 

Опре­де­ле­ние [Мат­ро­сов,1989,с.25].

(1) Го­во­рят, что фун­кция f(x1,...,xn,y) по­лу­че­на из фун­кции g(x1,...,xn,z) в ре­зу­ль­та­те опе­ра­ции ко­неч­но­го сум­ми­ро­ва­ния, ес­ли для лю­бо­го на­бо­ра зна­че­ний пе­ре­мен­ных (x1,...,xn,y)

f(x1,...,xn,y)=g(x1,...,xn,0)+g(x1,...,xn,1)+...+g(x1,...,xn,y).

В да­ль­ней­шем бу­дем при­ме­нять сле­ду­ющее обоз­на­че­ние:

(2) Го­во­рят, что фун­кция f(x1,...,xn,y) по­лу­че­на из фун­кции g(x1,...,xn,z) в ре­зу­ль­та­те опе­ра­ции ко­неч­но­го про­из­ве­де­ния, ес­ли для лю­бо­го на­бо­ра пе­ре­мен­ных (x1,...,xn,y)

f(x1,...,xn,y)=g(x1,...,xn,0)×g(x1,...,xn,1)×...×g(x1,...,xn,y).

В да­ль­ней­шем бу­дем ис­по­ль­зо­вать сле­ду­ющее обоз­на­че­ние:

Пред­ло­же­ние [Мат­ро­сов,1989,с.25-26].

Опе­ра­ции ко­неч­но­го сум­ми­ро­ва­ния и ко­неч­но­го про­из­ве­де­ния при­ми­тив­но-ре­кур­сив­ны от­но­си­те­ль­но со­во­куп­но­сти {g}

Доказательство.

Рас­смо­трим опе­ра­цию ко­неч­но­го сум­ми­ро­ва­ния. Пусть

Тог­да име­ет мес­то сле­ду­ющая сис­те­ма ра­венств:

Тог­да фун­кцию f мож­но пред­ста­вить как ре­зу­ль­тат при­ми­тив­ной ре­кур­сии, т.е. f=Rec(g1,h), где:

g1«g(I1n(x1,...,xn),...,Inn(x1,...,xn),0), h(x1,...,xn,y,z)«gïI1 n+2 (x1,...,xn,y,z),...,Inn+2 (x1,...,xn,y,z),

In+1 n+2 (x1,...,xn,y,z)+1ï+In+2 n+2 (x1,...,xn,y,z).

Дей­ст­ви­те­ль­но, лег­ко про­ве­рить, что име­ют мес­то ра­вен­ст­ва:

Из спо­со­ба за­да­ния фун­кций g1 и h сле­ду­ет, что g1 и h яв­ля­ют­ся при­ми­тив­но-ре­кур­сив­ны­ми фун­кци­ями от­но­си­те­ль­но со­во­куп­но­сти {g}. Оче­вид­но фун­кция f, пред­став­ля­ющая ре­зу­ль­тат при­ми­тив­ной ре­кур­сии над фун­кци­ями g1 и h, так­же при­ми­тив­но-ре­кур­сив­на от­но­си­те­ль­но со­во­куп­но­сти, со­сто­ящей из од­ной фун­кции g.

Ана­ло­гич­но мож­но про­вес­ти до­ка­за­те­ль­ст­во и для опе­ра­ции ко­неч­но­го про­из­ве­де­ния.

Предложение доказано (для операции конечного суммирования).

След­ст­вие [Мат­ро­сов,1989,с.26].

Опе­ра­ции ко­неч­но­го сум­ми­ро­ва­ния и ко­неч­но­го про­из­ве­де­ния со­хра­ня­ют при­ми­тив­ную ре­кур­сив­ность фун­кций.

36 Определение.   Говорят, что функция y получена из функций j и f1,...,fm операцией постановки (суперпозицией) и обозначают этот факт: y=Submn(j;f1,...,fm) или просто y=Sub(j;f1,...,fm), если y(x1,x2,...,xn)=j(f1(x1,x2,...,xn),...,fm(x1,x2,...,xn)).   Остановимся на важном применении функций проецирования, предложенном К.Гёделем (1934). Заметим, что все функции, определяемые термами fi, зависят от n переменных, а функция, определяемая термом j, имеет столько переменных, каково количество термов fi. Однако иногда требуется найти результат суперпозиции некоторых функций, но какое-то из указанных выше условий (все функции fi зависят от n переменных, а у функции j имеется столько переменных, каково количест­во функций fi) не выполнены. Тем не менее, за счет введения фиктивных аргументов и функций Imn это можно сделать. Примеры. 1. Функция y(x,y,z)=j(f1(x),f2(x,y,z),y,z) получена суперпозицией из функции j(x1,x2,x3,x4) и функций F1(x,y,z)«I13(x,y,z), F2(x,y,z)«f2(x,y,z), F3(x,y,z)«I23(x,y,z), F4(x,y,z)«I33(x,y,z). 2. Пусть j(x,y,z)«z(x,h(y,q(x)),2). Определение функции j через функции z,h,q может быть символически выражено так: j=Sub33(z;I13,Sub23(h;I23,Sub13(q;I13)),C23). "Вывод" можно записывать и следующим образом: Мы будем строить класс вычислимых функций, который будет замкнутым относительно суперпозиции функций, т.е. если он содержит некоторые функции, то он содержит и их суперпозицию. Ответ на вопрос, почему это так, даёт следующее Предложение (свойства суперпозиции). Операция подстановки сохраняет: (1) интуитивную вычислимость функций; (2) всюду определённость функций. Доказательство. (1) Если мы каким-либо образом умеем вычислять значения функций f1,...,fm и j, то ясно, как на­до вычислять значение функции y. Придадим переменным x1,...,xn некоторые значения a1,...,an. Вычислим все fi(a1,...,an). Получим b1=f1(a1,...,an),...,bm=fm(a1,...,an). Вычисляя теперь c=j(b1,...,bm), получим: y(a1,...,an)=c. Итак, если функции f1,...,fm,j интуитивно вычислимы, то и функция y интуитивно вычислима. (2) Если все функции f1,...,fm и j - всюду определённые, то функция y всюду определена. Фун­кция y будет не всюду определённой, если одна из функций f1,...,fm не всюду определена или если можно найти такие a1,...,an, что b1=f1(a1,...,an),...,bm=fm(a1,...,an), но значение j(b1,...,bm) неопределено. Предложение доказано.

Определение. Будем говорить, что функция f(x1,...,xn,y) получена из функций g и h в результате применения операции примитивной рекурсии, если: (а) для n¹0 имеют место равенства Эта система равенств называется схемой примитивной рекурсии с параметрами x1,...,xn (первое равенство называется начальным условием, а второе - рекурсивным шагом); (б) для n=0 имеют место равенства (qÎN) Эта система равенств называется схемой примитивной рекурсии без параметров. Функцию, полученную операцией примитивной рекурсии, обозначим: (а) для n=0: f(x)=Rec(q,h(x,y)) или f=Rec(q,h); (б) для n¹0: f(x1,...,xn,y)=Rec(g(x1,...,xn),h(x1,...,xn,y,z)) или f(x1,...,xn,y)=Recn(g(x1,...,xn),h(x1,...,xn,y,z)), или f=Rec(g,h), или f=Recn(g,h). Примеры (схем примитивной рекурсии). 1. g(x)«0, 2. g(x)«1, 3. g(x)«x, h(x,y,z)«z+x, h(x,y,z)«z×x, h(x,y,z)«xz, Оказывается (это можно доказать методом математической индукции), что приведённые схемы описы­вают соответственно функции:                                                                      x                                                                 x f(x,y)=x×y; f(x,y)=xy; f(x,2)=x ,...   Мы будем строить класс вычислимых функций, который будет замкнутым относительно операции при­митивной рекурсии, т.е. если он содержит некоторые функции из строящегося класса, то он содержит и результат применения к ним операции примитивной рекурсии. Ответ на вопрос, почему это так, даёт следующее Предложение (свойства операции примитивной рекурсии). Операция примитивной рекурсии сохраняет: (1) всюду определённость функций; (2) интуитивную вычислимость функций. Доказательство. (1) Действительно, пусть f=Rec(g,h), и функции g(x1,...,xn) и h(x1,...,xn,y,z) всюду определе­ны. Докажем, что функция f определена на любом наборе (x1,...,xn,y). Проведём доказательство индукцией по y. (а) y=0, тогда f(x1,...,xn,0)=g(x1,...,xn), а т.к. функция g всюду определена, то функция f на наборе (x1,...,xn,0) также определена. (б) Пусть на наборе (x1,...,xn,y) функция f определена. Тогда по определению операции примитивной рекурсии f(x1,...,xn,y+1)=h(x1,...,xn,y,f(x1,...,xn,y)). В силу всюду определённости функции h, получаем, что функция f определена на наборе (x1,...,xn,y+1), а т.к. f:Nn+1®N - арифметическая функция, то метод математической индукции позволяет сделать вывод, что функция f всюду определена. (2) Аналогично тому, как это делалось для операции подстановки, можно показать, что если фун­кции g и h интуитивно вычислимы и f=Rec(g,h), то существует и алгоритм af, вычисляющий фун­кцию f. Этот алгоритм состоит в следующем. Пусть задан некоторый набор (x1,...,xn,y). Применяем алгоритм ag, вычисляющий функцию g, к набору (x1,...,xn). В случае остановки через конечное число шагов получаем значение функции g на наборе (x1,...,xn), равное, по определению, f(x1,...,xn,0). После этого используем алгоритм ah, вычисляющий функцию h, применяя его после­довательно к наборам (x1,...,xn,0,f(x1,...,xn,0)), (x1,...,xn,1,f(x1,...,xn,1)),..., (x1,...,xn,y-1,f(x1,...,xn,y-1)). Если каждый раз работа алгоритма ah заканчивается остановкой, в результате мы получим соответ­ственно значения: h(x1,...,xn,1,f(x1,...,xn,1))=f(x1,...,xn,2),..., h(x1,...,xn,y-1,f(x1,...,xn,y-1))=f(x1,...,xn,y). Если же не произошло остановки алгоритма ag при работе на наборе (x1,...,xn) или не закончи­лась результативно работа алгоритма ah на одном из этапов (при вычислении h(x1,...,xn,yl,f(x1,...,xn,yl-1)) для какого-то ylÎ{0,1,...,y-1}), то перехода к следующему этапу никогда не произойдет, и искомый алгоритм af считаем неприменимым к набору (x1,...,xn,y). Предложение доказано. Таким образом, наш метод описания класса функций состоит в отборе функций, получаемых с помощью рекурсивных определений. МетаОпределение (содержательное). (1) Рекурсивным определением (лат.recurso, recurro) - "бежать назад, возвращаться") называется определение, которое основывается на "возвращении" от неизвестного к известному. (2) Рекурсивное определение функции - это определение, в котором значения функции для данных аргументов непосредственно определяются значениями той же функции для "более простых" аргументов или значениями "более простых" функций. Термин "более простой" следует уточнять выбором формализаций (простейшими, как правило, являются все константы).

45) Маши́на Тью́ринга (МТ) — абстрактный исполнитель (абстрактная вычислительная машина). Была предложена Аланом Тьюрингом в 1936 году для формализации понятия алгоритма.

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