Анимация
JavaScript
|
Главная Библионтека 1). В частности, если машина S правильно вычисляет функцию / {х), то для каждого натурального х Р {а, дШ) = gOVm ... 0. (3) Чтобы избавиться в формуле (3) от стоящих в конце букв О, введем особую функцию G-i (5), полагая по определению: Gj (f) = первое д1аксимальное подслово вида Ii в f, Gi (г) = Л, если f не содерншт подслое вида lt+i Примитивная рекурсивность функций Gi (f) будет доказана ниже. Из формулы (3) И определения функции Gi получаем Gi (Р (й, = IM. (4) Функции М, Е* примитивно рекурсивны (п. 11.2). Формула (2) показывает, что функция Р (а, у) частично рекурсивна. Так как функция Gy примитивно рекурсивна, то функция Н (й, f) = Gi (Р (а, р)) также частично рекурсивна. Вместе с нею будет частично рекурсивной и ее представляющая функция h (а, х) = с {Н {са, сх)), где через сп обозначается слово, имеющее словарный номер п (п. 11.1). Введем еще числовые функцип g{x) = e (gOl), к {х) = 1.1, (с (1") = х). Очевидно, первая из этих функций примитивно рекурсивна, а вторая частично рекурсивна. Поэтому функция Т (а, х) = к {h (а, g (х))) является частично рекурсивной. Она и является искомой универсальной частично рекурсивной функцией. Действительно, пусть / (х) - какая-то частично рекурсивная одноместная функция. Согласно п. 12.3 / (х) правильно вычислима на подходящей машине Тьюринга S. Пусть а - шифр этой .машпны в алфавите An а = с {а) ~ номер этого шифра. Пз формулы (4) получаем И (а, д-ОТ) = 1Я--) и, следовате.льно, h {а, g (х)) = с (IW), к {h (а, g (X))) = / (х). то есть Т {а, х) = / (х), а это и означает, что Т {п, х) - частично рекурсивная универсальная функция. Нам остается показать, что примитивно рекурсивная словарная функция М (л, у, J)), обладающая свойством а), существует. Но функи,ия М, определяемая словарной рекурсией М(а, 5, Л) = у, М{а, h Г)и) = Ф{л, М {л, f, t))) (uA), заведомо обладает свойством а), если вспомогательная функция ф (й, f) примитивно рекурсивна и удовлетворяет следующему требованию: б) если й - шифр некоторой машины £ и j - произвольное машинное слово, то Ф (й, f) есть машинное слово, описывающее состояние машины £, в которое она переходит из состояния 5 после одного такта работы. В свою очередь, функцию Ф мы будем искать в впде ф(й, f) = Com;(F(u, г), ?), где Com, Ч - подходящие примитивно рекурсивные функции. Ясно, что фзнкция Ф, определенная формулой (5), заведомо удовлетворяет требованию б), если функции ¥ 1 Com удовлетворяют соответстзенно условиям в) если й - шифр машпны Тьюринга S п г - машинное слово, 5 = {и = О, 1), то ¥ (й, f) = g-iy (i; = О, 1, L, Л), где g+if - правая часть приказа g+i-u g-+if, выполняемого машиной £; г) если J - машинное слово f = Sg+uq, а Ь равно какому-нибудь слову вида (у = О, 1, L, R), то Com (b, f) равно машинному слову, получающемуся из г командой g+lu -> Ъ. Строим сначала функцию ¥. Функция St (х), равная начальной букве х, удовлетворяет словарной рекурсии: St (Л) = Л п f St (г), если фА, , St(m)= , =JJ\{u, Str; г) - [ и, если г = Л, п потому примитивно рекурсивна, функция Rest (й, г), равная части слова ?, лежащей за первым вхождением ГЛ. V. АЛГОРИТМЫ И МАШИНЫ ТЬЮРИНГА й в р, если а (: 5, и равная Л, если а (f у, удовлетворяет словарной - рекурсии: Best (а, Л) = Л и [ Rest (а, f) и, если а G ?, Rest (й, ри) = . = I Л, если йр, = TFi(Rest(a, у) а, Л; J7 (а, р)). Поэтому функция Rest примитивно рекурсивна. Наконец, функции <?„ (iO (иА), определенные схемой: С,. (р) = = первое максимальное подслово вида u+i, входящее в р, если р содержит подслова этого вида, и Gy (р) = Л, если 5 ке содержит подслов указанного вида, удовлетворяют словарной рекурсии: G„ (Л) = А и Gu{¥v) = Gu{t) {иеА,ифи), •G„(p), если Best (G„(p), ,Gu{x)u, если Rest {Gu{x), 5) = А. Gu{u) = Поэтому функции Gu (?) примитивно рекурсивны. Из функций G„(j) выше была использована функция Gi (j). Далее нам будет нулша лишь функция G (г) = = G (р). Исходя из этой функции и функций St, Sb (и. 11.2), легко уже построить и функцию ¥, обладающую свойством в). В самом деле, пусть р = Pg+iuq (и = О, 1) - машинное слово и й = сдЮд-июедЧд-пихх. .. eg«iOg""Oy„oPg"ilg-"i;„i - шифр некоторой машины S. Тогда G (i-) = St (Rest (G (j), E)) = u. Вводя примитивно рекурсивную функцию Dir J = G (p) St (Rest (G (p), p)), будем пметь Dir 5 = g i(i. Rest (e Dir j, a) = . . . eq+HqVni, Dir (Rest (e Dir p, ()) = q""Щu Поэтому примитивно рекурсивная функцпя ¥(а, г) = Dir (Rest (е Dir г, а)) заведомо удовлетворяет условию в). Аналогичным образом строится и функцпя Com. За-метпдг сначала, что равенство St (Ь~) = и {Ь~ есть обра- § 12. МАШИ1Л>1 ТЬЮРИНГА щение слова Ъ (см. и. 11.2)) означает, что и есть последняя буква слова Ъ- Условие г) мы теперь запишем на формульном языке в виде следующей схемы: Com(i), р) = fSb(p; Dirj, Ь), Bb(p; Dirp, uG{b)), еслп St(b ): если St (b") - = < Sb(p; Dirp, uG(b)O), если St(b ) Sb(p; {Вк~),С{Ь)и), если St(b~) Sb(?; G(p), G(b)O), A 0, 1, R, Bic = u, С1фА, {uA), R, Bicu, = L, Bi = u, В1СфА, если St (b~) = L, Dp = A, в остальных случаях, где для краткости положено > /?r = StRest(Gp, i), Ср = Rest (Dir f, j), Ду = Rest ((Dir ?)~, Г). Эта схема определяет значение функции Com (b, р) для любых слов !), р в алфавите А. Она подобрана так, что Com, как легко видеть, заведомо удовлетворяет требованию г). Остается лишь убедиться, что функция Com примитивно рекурсивна. Для этого преобразуем схему, заменяя указанные в ней равенства и неравенства стандартными равенствамп пустому слову при помощи следующих соотношений: а = Ь4ФБ(а, b)i5(b, й) = К, афА Wx{l, А; а) = Л, а = А и Ь = Л44-а!) = Л. После этого определяющая функцпю Com схема примет вид еслп ai = A, Com(b, х) = t)p, еслп ар = А, Л в остальных случаях. Схема (6) равносильна равенству Gom(b, )=Wp{r)i, ..., рр, А; ai, ..., ар). Так как . функции t)i up примитивно рекурсивны, то из этого равенства следует, что функция Com также примитивно рекурсивна. Итак, примитивно рекурсивная словарная функция М (а, р, t)), обладаюш;ая свойством а), построена. 12.5. Универсальные машины. В п. 8.1 множество натуральных чисел и было названо ш-универсальным, если и рекурсивно перечислимо и для каждого рекурсивно перечислимого множества 8 существует такая общерекурсивная функция g (х), что x8,g{x)U. Мнояество Ъ слов в произвольном алфавите В называется т-универсальпым, если совокупность номеров слов из Ъ ж-универсальна. Если вместо алфавита В мы будем рассматривать более широкий алфавит А, то номера слов из Ш в алфавите А будут UHHiMH. Однако легко убедиться (см. п. 11.2), что если совокупность номеров слов из вычисленная в алфавите В, является }>г-универсальной, то совокупность номеров слов иа S, вычисленных в алфавите А, будет также 7гг.-универсальной. В частности, если алфавит состоит лишь из одного символа а, то словарный номер слова а" совпадает с х. Поэтому совокупность слов {а?, . . .} (в произвольном алфавите, содержащем а) тогда и только тогда «г-универсальна, когда ??г-универсальна совокупность чисел {хо, Xi, . . . }. После этпх предварительных замечаний рассмотрим снова какую-нибудь машину Тьюринга Z с символами «0=0, dy = i, аз, . . ., Ят и внутренними состояниями до, . • -, дп- Пусть в начальный мо-мент эта машпна имеет конфигурацию, описывающуюся машинным словом (igib- Начав работать в этой конфигурации, машина либо через некоторое число тактов работы остановится, придя во внутреннее состояние д, либо будет работать вечно. Символом Ziin словимся обозначать совокупность машинных слов, описывающих те конфигурации, начиная с которых: машина через конечное чпсло тактов работы останавливается, а через Zmt обозначим совокупность всех остальных машинных слов. Определение. Машина Тьюринга £ называется универсальной, если множество tfin т-универсально. Прежде всего нам надо убедиться, что универсальные лшшины существуют. Так как т-универсальные мнр- жества чисел уже были построены в п. 8.1, то нам достаточно доказать лишь истинность следующей теоремы: Теорема 1. Если частично рекурсивная функция f (х) имеет своей областью определения т-универсаль-ное множество, то вычисляющая ату функцию машина £ универсальна. В самом деле, пусть {О, 1, а, . . ., a„j} - внешний алфавит машины £ и д„, д, . . - ее внутреиние состояния. Обозначим через Z7 область определения функции / и пусть Му - совокупность всех машинных слов вида giOl*, а 31и - совокупность тех машинных слов gOl-, для которых X f U. Ясно, что Ми есть пересечение рекурсивно перечислимой совокупности £fin и рекурсивного множества 31 у. Но если пересечение рекурсивно перечислимой совокупности и рекурсивного множества 1>г-уни-версально, то (см. п. 8.1) совокупность также ?»г-универ-сальна, что и. требовалось. Хотя теорема 1 сформулирована для одноместных функций, ясно, что аналогичная теорема верна и для многоместных функций. Известно что область определения функции Клини К {х, у) ш-универсальна (п. 8.1). Поэтому машина Тьюринга, вычисляющая К (х, у), универсальна. Понятие рекурсивного множества нами определялось через понятие рекурсивной функции. Однако его можно определить и более непосредственно в терминах теории машин Тьюринга. Пусть S5 - какое-нибудь множество слов в произвольном алфавите В. Проблемой вхождения для ?8 называют проблему отыскания алгоритма, с помощью которого для любого слова р в алфавите В можно узнать, входит р в S или нет. Говорят, что проблема вхождения для лшоже-ства аз разрешима на машинах Тьюринга, еслп существует машина Тьюринга £, обладающая следующими свойствами: а) Алфавит В входит во внешний алфавит А машпны £, А содержит символ О, не входящий в .В, 1 - символ пз В. б) Для каждого слова р в алфавите В, если р б S, то машпна £, начав работать в конфигурации дОр, после конечного числа тактов работы переходит в заключительное состояние goOlO ... 0. Еслп же р (: S5, то дтшина £ из состояния дОр переходит в зак.лючптельное состояние доО . . . 0. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 [ 40 ] 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |