Книга
Книга
ПРОБЛЕМЫМАТЕМАТИЧЕСКОЙ ЛОГИКИ
СЛОЖНОСТЬ АЛГОРИТМОВИ КЛАССЫ ВЫЧИСЛИМЫХ ФУНКЦИЙ
Сборник переводов
Под редакцией
В. А. КОЗМИДИАДИ и А. А. МУЧНИКА
ИЗДАТЕЛЬСТВО «МИР» Москва 1970
УДК 510: 164
Сборник содержит работы по актуальным проблемам математической логики, еще не получившим достаточного освещения в отечественной литературе. Эти работы посвящены оценкам сложности алгоритмов и вычислений, классификациям рекурсивных функций и различным типам вычислительных устройств, связанных с такими классификациями. В частности, значительное место занимают исследования «ограниченных» машин Тьюринга и обобщений конечных автоматов. В ряде работ изучаются множества слов, распознаваемых обобщенными автоматами, причем обнаруживаются связи с грамматиками, введенными в работах Н. Хомского.
Книга рассчитана на лиц, интересующихся современными проблемами математической логики, теории алгоритмов, теории автоматов, математической лингвистики и теории вычислительных машин.
Редакция литературы по математическим наукам
Инд. 2-2-322-70
ПРОБЛЕМЫ МАТЕМАТИЧЕСКОЙ ЛОГИКИ
Редактор Л. Г. КрыловХудожественный редактор В. И. ШаповаловТехнический редактор Л. П. КондюковаКорректор И. С. Додолева
Сдано в производство 5/XI 1969 г.Подписано к печати 22/VTI 1970 г.
Бумага тип. № 160X90V/16 = 13,50 бум. л. Печ. л. 27. Уч.-изд. л. 24,53
Изд. № 1/5516 Цена 1 р. 94 к. Зак. 375
ИЗДАТЕЛЬСТВО «МИР» Москва, 1-й Рижский пер., 2
Ордена Трудового Красного ЗнамениЛенинградская типография № 2 имени Евгении СоколовойГлавполиграфпрома Комитета по печати при Совете Министров СССРИзмайловский проспект, 29
ПРЕДИСЛОВИЕ
Теория алгоритмов возникла и оформилась в самостоятельную дисциплину в 30—40-х гг. нашего века. Примерно в это же время, а также в последующие годы были получены решения ряда классических алгоритмических проблем математической логики, алгебры и топологии. В дальнейшем наметилась связь теории алгоритмов с кибернетикой: проектированием вычислительных устройств, программированием, моделированием биологических объектов (хотя в довольно скромных пока масштабах), математической лингвистикой. Обнаружилось, что бывают алгоритмические проблемы («рекурсивно») разрешимые и неразрешимые. Последние даже различают по «степеням неразрешимости». Однако и теоретически и особенно практически важно уметь устанавливать, насколько «легко» разрешима та или иная проблема, какими средствами (типами алгоритмов, вычислительных устройств и т. п.) она разрешима, сколь сложными могут быть программы алгоритмов и соответствующие им вычисления.
В соответствии с этим стали изучаться ограниченные классы алгоритмов, реализуемых логическими сетями, контактными схемами, конечными и растущими автоматами. Много исследований, начиная с известных работ Дж. Риордана и К. Шеннона, было посвящено получению оценок сложности алгоритмов подобного рода, решающих ограниченные алгоритмические проблемы типа вычислений булевых функций, многочленов и т. д. Конечные автоматы и особенно их обобщения стали хорошим средством описания моделей реальных языков и языков программирования.
С другой стороны, изучение самих вычислимых функций привело к выделению некоторых довольно простых и вместе с тем достаточных для большинства приложений классов функций: примитивно рекурсивных, элементарных по Кальмару и т. д., а затем были предложены некоторые классификации рекурсивных функций в работах А. Гжегорчика, П. Акста, Дж. Клива, Р. В. Ричи. (Переводы этих работ вошли в предлагаемый читателю сборник, образуя в нем первый цикл, связанный с рекурсивными классификациями.)
Каждый алгоритм задается программой, согласно которой производятся операции над «текущей» информацией, находящейся в «памяти», а исходная информация определяется конкретной задачей, которую разрешает данный алгоритм. Указанные выше понятия уточняются при каждой формализации основного понятия — алгоритма. Последовательность операций при приме-
нении алгоритма 91 зависит от исходных данных задачи х = (хь ..., xh) и называется вычислением C^v (xb..., xk). Если сложность алгоритма, грубо говоря, характеризуется длиной его программы, то сложность вычисления характеризуется числом операций («временем»), количеством используемой «памяти» и другими величинами. Известны проблемы, разрешимые в принципе сравнительно простыми алгоритмами, основанными на переборе сверхастрономического числа вариантов (например, оптимальные алгоритмы в шахматах), но с очень «сложными» вычислениями, и, наоборот, встречаются довольно сложные алгоритмы, сравнительно быстро приводящие к цели — вычислению «функции» фа (хь ... ,х&), значение которой является решением задачи с параметрами хь ..., хк. Всякое ограничение перебора связано с усложнением алгоритма. Особенность алгоритмов, реализуемых формулами, контактными схемами и логическими сетями без обратных связей, состоит в том, что число необходимых операций находится в прямой (а часто и в прямо пропорциональной) зависимости от «сложности» схемы, т. е. алгоритма. Однако такими схемами охватывается лишь очень узкий класс алгоритмов.
На оценках сложности алгоритмов основан алгоритмический подход к определению случайности и количества информации, развиваемый в последние годы в работах А. Н. Колмогорова), П. Мартин-Лёфа ), Л. И. Левина и др.
Вопросы сложности алгоритмов, вычисляющих булевы функции, рассматривались в работах В. А. Кузьмина) и А. А. Маркова). Оценкам сложности «начальных отрезков» неразрешимых алгоритмических проблем разрешения посвящены работы Я. М. Барздиня), М. И. Кановича и Н. В. Петри).
Ряд работ посвящен другим вопросам сложности алгоритмов 1).
С оценками сложности вычислений связан другой подход к классификации вычислимых функций. (Связь между аналитическим и «сложностным» подходами исследуется в статье Р. В. Ричи для «сложности», измеряемой длиной ленты машины Тьюринга, используемой при вычислении. В общей постановке этот вопрос рассмотрен в добавлении А. А. Мучника (стр. 123— 138), в котором также дается обзор работ по классификации рекурсивных функций.)
Первые оценки сложности вычислений для конкретных предикатов и функций были получены в конце 50-х и начале 60-х гг. в работах Г. С. Цейтина, М. О. Рабина и Б. А. Трахтенброта и его учеников. Однако здесь сразу же пришлось столкнуться с большими трудностями, связанными с получением «хороших» нижних оценок (т. е. оценок, близких к верхним) для памяти и особенно времени вычисления. (Этим вопросам посвящены статьи Ф. Хенни, Дж. Хартманиса, П. М. Льюиса и Р. Стирнза, П. Фишера.) Специальный, но важный класс предикатов, вычислимых «в реальное время», рассматривался М. Рабином и А. Розенбергом (см. их статьи и в данном сборнике).
Развитие математической лингвистики и языков программирования привело к изучению специальных классов рекурсивных предикатов (на множествах слов) — контекстных и бесконтекстных (или контекстно-свободных) языков. Верхние оценки для сложности распознавания таких языков приводятся в статьях Дж. Хартманиса, П. М. Льюиса, Дж. Хартманиса и Р. Стирнза, Д. Янгера, Т. Касами и в добавлении к последней.
Абстрактный аксиоматический подход к изучению сложности алгоритмов и вычислений предложен М. Блюмом, который установил замечательные результаты о существовании «бесконечно оптимизируемых» в смысле сложности классов рекурсивных предикатов. Точный смысл высказанного утверждения и полное доказательство можно найти в двух статьях М. Блюма, заключающих этот сборник.
Мы надеемся, что настоящий сборник представит интерес для многих математиков, логиков, кибернетиков и тех, кто специализируется в области современного программирования и ма
’) Брейбарт Ю. Я., Козмидпади В. А., О двух подклассах машин Тьюринга, сводимых к конечным автоматам, ДАН СССР, 187, № 1 (1969), 9—10; Остроухое Д. А., Об оценках сложности нормальных алгорифмов, ДАН СССР, 184, № 6 (1969), 1292—1293; Маранджян Г. Б., О некоторых свойствах асимптотически оптимальных рекурсивных функций, Изв. АН Арм. ССР, 4, вып, 1 (1969), 3—22; Маранджян Г. Б., Иерархия рекурсивных функций и асимптотическая аддитивность, ДАН Арм. ССР, 48, № 4 (1969), 193—197.
тематической лингвистики. По затронутым здесь проблемам на русском языке (кроме отдельных статей в научных журналах) опубликованы обзоры П. Фишера 1965 г. 9 с обширной библиографией, А. Ахоу и Дж. Улмана) и Л. А. Гусева и И. М. Смирновой), а также курс лекций Б. А. Трахтенброта). В указанном курсе лекций подытожены и систематически излагаются результаты об оценках сложности вычислений на машинах Тьюринга (полученные вплоть до конца 1966 г.) и аксиоматическая теория сложности алгоритмов и вычислений, но почти не затрагиваются вопросы классификации (аналитической) рекурсивных функций. К сожалению, этот курс издан небольшим тиражом и мало доступен широкому кругу читателей. Это побудило нас включить в сборник переводы нескольких статей, обладающих большими методическими достоинствами (см., например, статью Ф. Хенни на стр. 223), содержание которых частично перекрывается работами советских математиков Я. М. Барздиня, Б. А. Трахтенброта, Р. В. Фрейвалда и других, опубликованными в советской печати (см. «Алгебра и логика» за 1963— 1967 гг.).
Для понимания большинства статей достаточно знакомства с элементами теории алгоритмов, например, в объеме первых трех глав и § 12 книги А. И. Мальцева), а читателю статей о распознавании языков полезно было бы прочесть обзор Н. Хомского) и упомянутые выше обзоры по теории языков.
В. А. Козмидиади А. А. Мучник
9 Фишер П., Многоленточные и бесконечные автоматы, Кибернетический сборник (новая серия), вып. 5, «Мир», 1968, стр. 64—80.
I. КЛАССИФИКАЦИЯ РЕКУРСИВНЫХ ФУНКЦИИ
НЕКОТОРЫЕ КЛАССЫ РЕКУРСИВНЫХ ФУНКЦИЙ1)
А. Гжегорчик
ВВЕДЕНИЕ
В этой статье исследуется возрастающая последовательность ^°, ^’1,... классов рекурсивных функций. Каждый класс ^п замкнут относительно операций подстановки и операции ограниченной рекурсии. Исходными являются примитивно рекурсивные функции. Поэтому (^cz^, где 5? —класс примитивно рекурсивных функций. Говоря точнее, 31 = 5 ^ Следовательно, в опре- п
делении класса 91 операцию рекурсии нельзя исключить или заменить операцией ограниченной рекурсии.
Отдельно рассматриваются классы ^° и ^3. Для каждой функции f е ^° существует число к^ такое, что Цп)<п-\-к0 для всех п. Однако каждое рекурсивно перечислимое множество перечислимо некоторой функцией класса ^0. Мы начнем с исследования класса ^3. Это класс функций, элементарно вычислимых (элементарных) по Кальмару.
ПРЕДВАРИТЕЛЬНЫЕ ЗАМЕЧАНИЯ
1. Функции, нумерующие пары. Мы назовем функциями, нумерующими пары, каждую тройку функций Р, Q, R, определенных над неотрицательными целыми числами и удовлетворяющих следующим условиям:
P(Qz, Rz^z,
Q(P(x, у^ = х,
R^P^x, УП = У-
Функции, которые удовлетворяют этим трем формулам, устанавливают взаимно однозначное соответствие между множеством пар неотрицательных целых чисел и всем множеством неотрицательных целых чисел. Функции Q и R являются обратными для функции Р. Первый элемент пары, представимой z, является значением функции Qz, а второй элемент есть значение функции Rz.
^Grzegorczyk A., Some classes of recursive functions, Rozprawy Matematiczne, IV, Warszawa, 1953.
Например, следующие три функции являются функциями, нумерующими пары, с вышеописанными свойствами:
Р(х, у) — 2х *(2у + 1)—Г,
Qz, равная наибольшему целому числу и, такому, что г + 1 делится на 2й;
2+1,
Другими примерами функций, нумерующих пары, являются следующие функции /, К, L
кх, у) = у (х + у) (х + у + 1) + X =;
Kz = z — —~ и (и + 1)’ гДе ^ — наибольшее целое число, такое, что -— и {и + 1) ^ z;
Lz, равная неотрицательному решению уравнения (z/ + 7^2)2 + ЗК? + уI
—— = z, т. е. Lz = uKz.
Имеем ЦКг, Lz) = z, КЦ^ уЦ = х, 1ЦЦх, У^^У-
Функции, нумерующие пары, позволяют нам образовать функции троек, например
Цх, у, z) = P^x, Р(у, z)) или S(x, у, z) = l(x, Цу, z)), которые устанавливают соответствие между множеством троек чисел и самим множеством чисел. Обратными к Т функциями являются
Т{и = Qu, Ци = QRu, Ци = RRu.
Аналогично все конечные наборы чисел могут быть представлены натуральными числами.
Буквы Р, Q, R и /, К, L будут впоследствии обозначать тройки функций, нумерующих пары.
Универсальные функции. Все рассматриваемые в дальнейшем функции определены на множестве неотрицательных целых чисел и принимают целые значения. Мы будем употреблять названия «целое число» и «число» только в смысле «неотрицательное целое число». Прописными буквами 98, Щ, 91, S^ обозна-
!) Приведенные в оригинале функции I, К, L не удовлетворяют свойствам функций, нумерующих пары. Поэтому мы их заменили функциями, связанными с обычным пересчетом пар натуральных чисел вдоль прямых x-Vy = ~ const. — Прим, перее.
чаются классы функций. Если 98— класс функций, то через ^п обозначается класс функций от п аргументов, принадлежащих ЭВ.
Класс 98 замкнут относительно операции подстановки, если он замкнут относительно следующих трех операций.
Операция подстановки (с упепози ци и) функций. Если 98 включает в себя функции f и g, заданные выражениями
И^Ь Х2, . . ., хк_ь Xk, Xk + b . . ., Хп\ g^yxУт).
то он включает в себя функцию, называемую подстановкой функции g в функцию f вместо к-то переменного, которая записывается следующим образом:
f(xb .... xk_b g(yb ..., ym), xk+b ..xj.
Операция идентификации переменных. Если класс 96 включает в себя функцию f (хь ..., Xj,..., х^,..., хт), то этот класс включает в себя также функцию, полученную идентификацией переменных Xj и хк и заменой их переменной у и записываемую как f (хь ..., у,..., у,..., хт). Переменная у отличается от всех переменных Xt.
Операция подстановки константы. Если класс 96 включает в себя функцию f (хь ..., Xk,..., хт), то он также включает в себя функцию f (xi,..., 0,..., хт), получаемую из функции f подстановкой 0 вместо к-й переменной.
Например, класс ^ линейных функций, т. е. класс функций / вида
/(^ь • • > хп) = кххх + к^ + ... + кпхп + к0, где кх, ..., кп > О,является наименьшим классом, содержащим исходные функциих + 1, х + у и замкнутым относительно операций подстановки.
Функция F (хь ..., хп, /) от п + 1 аргументов называется универсальной функцией для класса 98п при условии, что каждая функция f(xi,..., хп) от п аргументов принадлежит 96 и тогда и только тогда, когда существует число I, такое, что для всех хь...,хп ^хх,...,х^ = Р^хх,...,хпЛУ
Например, функция F^х, t) = (Qt + 1)х + Rt универсальна для класса функция F(xbx2,/) = (Jd + l)*i + (T^f+l^H- + T^t универсальна для класса ^2.
Очевидно, что если класс 96 содержит парные функции и замкнут относительно операции подстановки, то универсальная Функция РДх^ ..., xn, /) для класса 98п может быть определена с помощью универсальной функции F (х, /) для класса 9Вх. Именно, можно положить
■ ^2Ub Х^ t) = РЩхХ, Х2), /).
И вообще
Fn Uiхт t) = FU(xt, I (х2, ..., /(х„_ь х^ ...)), t).
Если класс функций 96 замкнут относительно операций подстановки и содержит функцию х + 1, то универсальная функция для класса 96п не принадлежит классу 96. Если F(x,t)— универсальная функция для класса 96 х, то для F, принадлежащей классу 96, функция F(x, х) + 1 принадлежит 96 х. Следовательно, для некоторого t F ^х, х) + 1 = F (х, /). Это приводит к противоречию: F(/,/) + 1 — F(/,/).
Отношения данного класса. Мы будем отождествлять множества с отношениями одного аргумента. Понятие отношения будет связано с понятием функции данного класса. Скажем, что отношение п элементов R^xx,..., хп) является отношением класса 96 тогда и только тогда, когда существует такая функция \ класса 96, что имеет место следующая эквивалентность:
R (хь ..., х^ = f (хь ..., хп) = О для всех хь ..., хп.
Пусть х — у обозначает разность, определенную для неотрицательных целых чисел: х — у = х— у, если х>у, и х — у = О, если х < у.
Теорема 1.1. Если 96 является классом функций, замкнутым относительно операции подстановки, и 96 включает функции х + 1, х + у, х — у, то множество отношений класса 96 замкнуто относительно операций исчисления высказываний.
Доказательство. Если R^xx,..., хп) и S(yx,..., ym) являются отношениями класса 96, то существуют функции f и g, которые удовлетворяют эквивалентностям
R(xvXn) = f<xx, ..., х„) = 0, S(z/b ..., ym^gky\» ....Ут) = 0
В соответствии со следующими очевидными свойствами арифметики неотрицательных целых чисел1):
а = 0. b = 0. = .а + b = 0, ~(а = 0)=1—а = 0
можно вывести эквивалентности
~R(xb ..., xj= 1 — f(xb ..х„) = 0,
R (xiх„). S (х„ ..., x„). = J (xb ..., x„) + g (X]xj = 0.
Эти эквивалентности показывают, что отношение, являющееся дополнением к отношению R, и отношение, являющееся
’) А. В здесь и далее обозначает конъюнкцию утверждений А и В; ~А — отрицание А. — Прим, перев.
логическим произведением отношений R и S, принадлежат классу 96. Поскольку все остальные конечные логические операции (операции исчисления высказываний) могут быть определены через конъюнкцию (логическое произведение) и отрицание (дополнение), логические операции не выводят из класса 96.
Следствие 1.2. Вместо функций х -V \, х -V у и х — у с целью определения логических операций исчисления высказываний на отношениях можно использовать функцию х^.
Доказательство. Имеем
~(а = 0) = 0а = 0, а = 0.Ь = 0. = ./ = 0.
Следовательно,
~R(xx, xn). = .0f(*iх”)= 0,
R Uiх„У S(yxym\ = .^ (Х1x„))°= 0.
Пусть ^ будет класс полиномов, определенных следующим образом: ^ является наименьшим классом, который включает исходные функции х + \, х -V у, х — у, х-у и замкнут относительно операций подстановки.
Например, отношения <, <С =, ¥= принадлежат классу ^, поскольку имеют место эквивалентности
х<у. = .Цх + 0 —у) = 0,
х^у. = Лх — у) = 0,
X = у. = .(х —y) + (i/ —х) = 0, Х^= у. = .1 — [(х —у) + (у — х)] = 0.
ЭЛЕМЕНТАРНЫЕ ФУНКЦИИ
Определение. Понятие элементарной функции введено Кальмаром ^ Этот класс шире, чем классы, рассмотренные в предыдущем разделе. В большинстве случаев для практических приложений оказывается достаточно элементарных функций. В соответствии со слегка упрощенным) определением Кальмара класс элементарных функций <8 — это наименьший класс, (1°) включающий исходные функции х + 1, х + у, х — у, (2°) замкнутый относительно следующих операций: операции подстановки,
0 См. Петер [4], стр. 82, 83 русского перевода.
операции ограниченного суммирования и ограниченного умножения, которые устанавливают, что если F(xx>... ,xn,t) принадлежит классу ^, то этот класс включает в себя функции f и g, определенные так:
f (хь ..., хп, у) = s F (хь ..., хп, Z),
Ку
g(xb ..., хп, у) = п F<xvхп, 1\
К У
Здесь операции 2 и П обозначают конечную сумму и произ- Ку Ку
ведение *)
2 F^a) = F^ O)+F(n, 1)++ F(u, у\
Ку
П F(u, i) = F^ 0).f(u, !)• ... -Г(u, у). Ку
Например, х«у, ху, х\ являются элементарными функциями:
х • у = 2 (U + О — i) — х = ((х + 0) — 0 + (х + 1) — 1 + ...
К У
• •• + (х 4- у) ~ у) ~ х. Положим
Цх, у^ = х«*х = п (x + Z)—Z,
У
х» = (1 — (1 — у)). /(х, у — 1) + (1 — у)
(что необходимо для х° = 1) и
g(x)= П (<+0. x! = g(x^-l).
Другие элементарные функции будут определены посредством некоторых операций, которые в свою очередь могут быть определены с помощью операций, указанных в определении класса ^.
Операция ограниченного минимума. Это операция перехода от функции ^(п, х) от п + 1 аргументов к функции f(u, у) = = ^х<.у [F(u,x) = 0] от п + 1 аргументов, определенной следующим образом:
цх ^ у [Г (и, х) = 0] =цх ^ у [Г (и, х) = 0] =наименьшему х^у, такому, что F (и, х) = = 0, если такой х существует,
цх ^ у [Г (и, х) = 0] =
цх ^ у [Г (и, х) = 0] =
0, если не существует х^у, для которого F (и, х) = 0.
^ Для упрощения обозначений мы употребляем готические буквы при обозначении наборов переменных, например и есть сокращение, обозначающее «1, ,. „ uv
Теорема 2.1. Класс ^ замкнут относительно операции ограниченного минимума.
Доказательство. Если Ft^y) принадлежит классу S и если функция g удовлетворяет условию
£ (11, х) = ^у < х [F (и, у) = 0],
то функция g также принадлежит классу S. А именно, функция g может быть определена посредством операции ограниченного суммирования следующим образом. Сначала определим вспомогательную функцию /
/(и, У^^ДХ^Т^ i)\
Ку
а затем положим
g(u, x) = ( 2 (1 — f(u, y))V (1 — (( 2 (1 ~Ж «/)Й —x' \y^x/ \\ \y<x/
Заметим в первую очередь, что f(u, у) = 0 в том и только в том случае, если для каждого i^-у мы имеем Р(иД) + 0. Условия /(н, t/) = 0 и 1 — f(u, у)= 1 эквивалентны.
Следовательно, сумма 2 (1 (и, у)) содержит столько единиц, сколько найдется чисел среди у = 0, 1, 2, ..., х, для которых из I ^ у следует, что F (и, П =/= 0. Если среди чисел у = 0, 1, 2, ..., х существует такое наименьшее число а^х, что F(u, а) = 0, тогда, конечно, только для чисел у<а верно, что для каждого i^y имеем f (u, z) =/= 0. Следовательно, только для у<а верно, что 1 — f(u, у) = 1; отсюда
2 (1 — f (и, у^ = а,
У^Х
потому что эта сумма содержит столько единиц, сколько существует чисел меньших, чем а. Поскольку а^.х, эта сумма меньше, чем х + 1. Отсюда следует, что второй сомножитель в определении ^(и, х) в этом случае равен 1 и g‘(u,x) = a.
Если такого числа а^,х, что ^(и, я) = 0, не существует, то для каждого у^-х верно, что для всякого i^-у ^(и, 0=^0, т. е. для всякого у ^ х 1 — f (и, у) = 1 и
2 (1 — f(u, t/)) = x+ 1,
У^х
ибо эта сумма содержит х + 1 единицу. Второй сомножитель в определении функции g в таком случае равен нулю и g-(u,x)=0, что также согласуется со значением операции ограниченного минимума, как она была определена выше.
Заметим, что в (i) и (ii) операция минимума была определена посредством операции, которая преобразует функцию F(u,x) в функцию f (и,;/), определенную следующим образом:
f (и, у) = 2 1—F(u, i\
Ку
Назовем эту операцию операцией суженного ограниченного суммирования. Это замечание может быть выражено в следующей форме общего заключения.
Следствие 2.1а. Если класс 86 замкнут относительно операций подстановки и суженного ограниченного суммирования и содержит функции х — у и о(х,у) = х-(1 —у). то 96 замкнут относительно операции ограниченного минимума.
Элементарные отношения. Отношения класса S будем называть элементарными.
Будем говорить, что отношение Tl^y^ определено из отношения R с помощью операции навешивания ограниченного квантора существования, если имеет место следующая эквивалентность:
т(«, у).^. 2 Я(и, х). = .2{х<у./?(и, х)}).
ХСуX
Отношение S^y^ определено посредством операции навешивания ограниченного квантора общности, если верна эквивалентность
S(U, у). = .Ц Я (и, х).^.П{х<у.->.Я(и, х)}).
уX
Теорема 2.2а. Класс элементарных отношений замкнут относительно логических операций навешивания ограниченных кванторов.
Доказательство. Если R является элементарным отношением, т. е. существует такая элементарная функция Д что
R^ х) = !(уц х) = 0,а отношения Т и S определены, как это было сделано выше, тосуществуют элементарные функции g и h, такие, что(а) 7 (и, у) = /г(и, у) = 0,
Такие функции могут быть прямо определены с помощью операций суммирования и умножения:
A (u, y) = П f (и, х), g(u, z/) — 2 Ци, х\х^ух^у
Легко доказать, что обе эти функции удовлетворяют эквивалентностям (а) и (Р).
Можно также доказать следующее утверждение.
Теорема 2.2b. Если класс 98 замкнут относительно операции ограниченного минимума и подстановки, то класс отношений класса 98 замкнут относительно операции навешивания ограниченного квантора существования.
Доказательство. Если f е 8? и f (и, х^ = 0 = /?(и, х^, то функция
h (и, z/) = f (it, px < у [f (u, x) = 0]) принадлежит классу 98.
Легко видеть, что
h (it, z/) = 0. = . 2 f(u, x) = 0.
x<y
Следовательно, класс 98 также замкнут относительно операции навешивания ограниченного квантора существования.
Также можно доказать, что если класс 96 замкнут относительно операций исчисления высказываний, то класс 98 замкнут относительно операции навешивания ограниченного квантора общности. Это следует из хорошо известного логического правила де Моргана
П ^(Н. х). = .~( 2 хй.х^у\хСу/
Из теоремы 1.1 следует, что класс элементарных отношений замкнут относительно операций исчисления высказываний. Так, отношения «меньше чем», «равно», «делит» и класс1) простых чисел являются элементарными, поскольку они определяются следующим образом:
х ^ у = х — у = 0; х = у. = .х ^ у. у ^ х\
X < у = Х^у.~(.Х = уУ х\у.= 2 X • г = у,
prime (х) = / П У 1х: -> :у= 1. V .у = х I. х^2.
I У<х)
’) Автор называет некоторый класс (чисел) элементарным в том и только том случае, когда отношение «быть элементом классу» является элементарным. — Прим. ред.
Отсюда, например, следует, что указанные ниже функции являются элементарными:
[у] = уг С х [х + 1 с у • (г + 1)]
(целая часть частного х]у)\
г и. у^ = х — (у [у])(остаток от деления х на у);
х+= Xх; х++=хх+
(вспомогательные функции);
[]/x]=pz^x[2y^x. J JI /у ^х. -> .t ^2 11L I /<хjJ
(целая часть корня).
Операции максимума. В дальнейшем мы используем две следующие операции максимума:
(шах х ^ г) [Z? (и, х)] = цх ^ г Г/?(и, х) • ^ П ж». о--» ./<41 IU<zIJ
(наибольшее х^г, для которого имеет место отношение /?(и, х)) и
Max F (и, х) (для х ^ г) = F (и, рх ^ г J Ц F (и, t) ^ F (и, х) U U^2) /
(максимальное значение функции F(u,x) для х^г). Как следует из их определений, эти операции не выводят из класса ^.
Простые числа. Простые числа будут играть важную роль в дальнейших рассмотрениях. Последовательность простых чисел определена как элементарная. Следующие функции и отношения являются элементарными:
ехр (у, k) = (max х^у) (kx | у)(наибольший показатель-х, для которого у еще делится на кх\,xNy. = .prime (х). prime (у). х > у. Ц (у < z. prime z. -» z = х}
(х является следующим простым числом за у);
х Рг к. = .2|exp (и, 2) = 2. prime (х) .ехр (о, х) =
= й + 2. п п Fprime (г), prime (/). z | и. 11 у. -^*
<<(6+2)+ ^ < < L
-> . У {ш |у. wNz. ехр (о, w) = ехр (о, z) + 1)11 «^t"Jj
^х является k-м простым числом);
pk = цх ^ ^k + 2)+ [х Pr k\
(k-е простое число).
Согласно последнему определению, 2 = ро, 3 = рх и т. д. Число у, которое фигурирует в определении (I), есть число вида
у = 22 • З3 • 54 ... р^2.
В соответствии с этим определением это число удовлетворяет тому условию, что в его разложении на простые сомножители показатель каждого следующего простого числа на единицу больше, чем показатель предыдущего простого числа. Поскольку имеет место известное из теории чисел неравенство
то (II) является адекватным определением последовательности рк.
Представление конечных последовательностей чисел. Определенные выше функции позволяют многими способами представлять конечные последовательности чисел одним числом. Этот метод часто применяется в теории вычислимых функций. Конечную последовательность чисел т0, ..., mk представляет число 2т_mb
0 • 3 х ... pkk-
Числа m^...,mk являются показателями степеней соответствующих простых чисел в разложении числа т: т^ехр (т, р^. Поэтому вместо выражения:
Существует конечная последовательность чисел т^ ..., mk) таких, что
R^mo, ..., тк\ можно сказать:
Существует такое неотрицательное число т, что
Я(ехр(/п, рй\ ..., exp(m, р^).
Это представление конечных последовательностей употребляется прежде всего для элементарных формулировок рекурсивных определений 9.
9 Другой метод представления конечных последовательностей был дан Гёделем. Для каждой конечной последовательности чисел а0, ..., ап существуют такие два числа и, и, что г (u, 1 + и (г + 1))= at (см. Робинсон [5] и Гёдель [1]).
Операция ограниченной рекурсии. Класс 86 замкнут относительно операции ограниченной рекурсии, если он удовлетворяет следующим условиям:
если g, h, j— функции класса 86 и функция f удовлетворяет условиям
(a) f (u, 0) = g(u),
(b) f (u, x + 1) = h (u, x, f (u, x)),
(c) f (u, x)</(u, x),
то функция f также принадлежит классу 86.
Условия (а) и (Ь) — обычные условия рекурсивных определений функций, применяемых в арифметике.
Условие (а) определяет начальное значение f, а условие (Ь) выражает значение / для следующего числа в зависимости от ее значения для предыдущего числа с помощью функции h. При этом значение f определяется для каждого значения переменного х. Таким образом, функция f(u,x) однозначно определяется условиями (а) и (Ь). Условие (с) ограничивает эту возможность определения теми функциями, которые не превосходят некоторую другую функцию, содержащуюся в классе 86.
Примеры. Если класс 86 замкнут относительно операции ограниченной рекурсии 9 и содержит функции S(x) = х + 1 и ху, то он также включает функции х + у и х • у, поскольку эти функции могут быть определены посредством ограниченной рекурсии. Полагая
U^x^ у) = ух° = у,
gM = U<M У\ Му> X, z) = U2(y, U2(x, S(z))),Ш x) = S(yfw,
можно легко доказать, что функция f(y, х) = у + х удовлетво* ряет схеме
(а) Цу, 0) = ^^),
(b) f(y, х+ A = hAy> х, f(^, х)),
(с) f(y, xXiAy, х).
Имея функцию у + х, аналогичным образом положим gM = UAy^ о), hAy, х, z^ = uAx, y + z) и видим, что умножение удовлетворяет условиям (а) у 0 = g2 (у),
(Ь) у • (х+ A = hAy. х, у • х), (с) У-Х^ h (у, х).
!) И подстановки. — Прим. ред.
В дальнейшем, применяя операцию рекурсии, мы не будем ни записывать тождественные функции Ux, U2 (Ux(x, у) = х = = U2^y.x^, которые нужны были лишь из формальных соображений, ни определять вспомогательные функции g, Л, а будем прямо записывать формулы рекурсии, например, заменив формулы в (А) и (В) следующими более простыми эквивалентными им формулами:
у + 0 = у,у • 0 = 0,
у + (х+!) = $(#+ х), у-(х+l) = z/ + (z/-x),
у + х ^ Sxs«;у • х ^ SxSy.
Эти формулы, конечно, имеют тот же смысл, что и формулы в (А) и (В). Далее, если мы определяем функцию одного аргумента f(x), то схема (I) легко приводится к схеме
(a) m = gW,
(II) (b) f (х + 1) = Л (х, f (х)),
(с) f(x)</(x).
Определение функции х\ может служить примером применения схемы (II):
0! = S (0),
(х + 1)! = х! • S(x),
х! ^ Xх.
Теорема 2.3. Класс $ замкнут относительно операции ограниченной рекурсии.
Доказательство. Если функции f, g, h, j удовлетворяют условиям (а), (b) и (с) схемы (I), то
(l)g = f(u, х) тогда и только тогда, когда существует конечная последовательность чисел т0, ..., тх, такая, что
^о= ^ 00> т! = А(п, 0, m0), m2 = A(u, 1, mJ,mx = h (u, х — 1, mx_x\ # = mx.
Таким образом, числа m0, ..., mx удовлетворяют условиям Wo=g(u), mkJrX = h^\\, k, mh), которые точно определяют каждое из них. В соответствии с описанным выше методом представления конечных последовательностей числам т0,..., тх можно сопоставить число пг = 2т° • З™1 • ... • р^* Таким образом, тг- = = ехр(т, р^; следовательно, индуктивное условие mft+1 = —Ци^ть) эквивалентно следующему:
exp(m, ^+1) = А(и, к, ехр(т, рк)\
Следующая эквивалентность вытекает из эквивалентности (1). Полагая
р (х, И) = р(+2)-Мах / (и, г) при г<х, имеем
у = f (и, х) =2 Iexp(m, 2) = g(u). А .у =
т < F (х, и) I
= exp(zn, pj. IHexp(m, pfc+i) = A(u, /г, ехр(т, р*))]}.
Поскольку рх является наибольшим простым сомножителем в разложении т и тг^/(и, /), то ехр(т, р^ А^ахЦ\\, I) для i ^ х. Таким образом, верхняя оценка для числа т достаточна. Обозначим через R{y, и, х) отношение в правой части эквивалентности (2). Отношение R является элементарным, если элементарны функции g,h,j. Из эквивалентности (2) следует, что функция f может быть определена через операцию ограниченного минимума посредством отношения R так:
f(u, x) = py^j^ x)[R(y, it, х)].
Итак, функция f элементарна.
Эквивалентные определения класса элементарных функций !).
Пусть ^х— наименьший класс функций,
1° содержащий исходные функции х+1, х — у, ху и
2° замкнутый относительно следующих операций: операции подстановки, операции ограниченного минимума.
Теорема 2.4. Класс 8' совпадает с классом 8.
Доказательство. Первое включение 8'а 8 следует из того, что ху принадлежит классу 8 и что этот класс замкнут относительно операции ограниченного минимума (теорема 2.1).
Для доказательства того, что 8 с 8\ нужно установить, что х + у принадлежит 8* и что класс 8Г замкнут относительно операций ограниченного суммирования и ограниченного умножения. Заметим, что, согласно следствию 1.2 и теореме 2.2b, класс 8' замкнут относительно операций исчисления высказываний и операций навешивания ограниченных кванторов.
Далее, отношения «меньше чем», «больше чем» и «равно» также являются отношениями класса 8'\
х<:у. = .х—у = 0; х = у. = .х^у.х^у.
Теперь легко видеть, что класс S' замкнут относительно двух операций максимума, поскольку они определяются посредством операций ограниченного минимума и навешивания ограниченных кванторов. Поэтому следующие функции и отношения принадлежат классу <F':
X^y = yZ<^\My^W
Далее, х+, х++, х\у, prime(х), ехр(х, #), xNy, рх суть функции и отношения класса ^х, поскольку они определены посредством функций и операций, о которых доказано, что они принадлежат ^х; это легко усмотреть из структуры их определений. Отсюда следует, что класс ^х замкнут относительно операции ограниченной рекурсии, так как в доказательстве теоремы 2.3 схема рекурсии была сведена к операциям ограниченного минимума, навешивания ограниченных кванторов и к функциям, описанным выше.
Теперь можно легко доказать с помощью схемы рекурсии, что операции ограниченного суммирования и ограниченного умножения не выводят из класса ^z. Именно, предположим, что функции f и g определены через ограниченное суммирование и ограниченное умножение функции F из класса #' соответственно:
Ци, х) = 2 F (II, z); g(u, х) = п ^(н, i).i С хi < х
Легко доказать, что функции f и g удовлетворяют условиям (а), (Ь) и (с) операций ограниченной рекурсии:
f(u, 0) = F(u, 0),
f(u, x+l) = Hu, xH^u, 1),
f (it, x)< (x + 1) • (Max F (u, z) при z < x),
g(n, 0) = F(u, 0),
g(u, X + 1) = g(n, x) • F(11, X + 1), g(u, x)<(MaxF(u, z) при z<x)x+I.
Итак, функции f и g также принадлежат классу ^х. Поэтому класс ^х замкнут относительно всех операций класса ^ и включает в себя исходные функции класса ^, откуда следует SclS'.
Мы доказали тем самым, что классы ^ и S' совпадают.
Обозначим через S" наименьший класс функций,
1° включающий х + 1 и х^ в качестве исходных функций,
2° замкнутый относительно операций подстановки и ограниченной рекурсии.
Теорема 2.5. Класс SM тождествен классу S.
Доказательство. Включение <§rr czz^ следует из теоремы 2.3. Остается доказать обратное включение ef с: У". Мы докажем его косвенным образом, показав, что ^ cz g", и используя теорему 2.4.
Легко показать, что оставшаяся исходная функция класса ^, а именно х — у, и следующие функции: Р(х) = х — 1, х + у, х-у принадлежат классу ^/х.
Эти функции удовлетворяют условиям схемы рекурсии:
Р(0) = 0,Р(х + 1) = х,Р(х)<х,У + 0 = у,у + (х + 1) = (у + х) + 1, у + х^(уЛ- 1)х+1;Р(0) = 0,Р(х + 1) = х,Р(х)<х,У + 0 = у,у + (х + 1) = (у + х) + 1, у + х^(уЛ- 1)х+1;у — 0 = у>У— U + V) = P(y — х), у — х^у, у0 = 0, у-(х+1) = у-х + у, У • х^у\у — 0 = у>У— U + V) = P(y — х), у — х^у, у0 = 0, у-(х+1) = у-х + у, У • х^у\
Р(0) = 0,
Р(х + 1) = х,
Р(х)<х,
У + 0 = у,
у + (х + 1) = (у + х) + 1, у + х^(уЛ- 1)х+1;
Р(0) = 0,
Р(х + 1) = х,
Р(х)<х,
У + 0 = у,
у + (х + 1) = (у + х) + 1, у + х^(уЛ- 1)х+1;
у — 0 = у>
У— U + V) = P(y — х), у — х^у, у0 = 0, у-(х+1) = у-х + у, У • х^у\
у — 0 = у>
У— U + V) = P(y — х), у — х^у, у0 = 0, у-(х+1) = у-х + у, У • х^у\
Докажем, что класс S" замкнут относительно суженной операции ограниченного суммирования: если F г^,г и f(u, х) = = 2 0 ~ ^(и> 0), то f^^'y поскольку / можно определить схемой ограниченной рекурсии:
f(u> 0)=1—/Ди, 0),
f(u, х + l) = f (u, х) + (1 — F(u, х + 1)), f (u, x) <x + 1.
Таким образом, из следствия 2.1 вытекает, что класс ^" замкнут относительно операции ограниченного минимума. Поэтому ef'czef" и, согласно теореме 2.4, У cz %". Значит, классы и ^" тождественны друг другу.
Пусть S,M обозначает наименьший класс,
Г включающий в качестве исходных функций х+1, х — у> х-у, ху ^
2° замкнутый относительно операции подстановки и операции ограниченного суммирования.
Теорема 2.6. Класс $,И тождествен классу S.
Доказательство. ^,м содержится в ^ по определению. Обратно, ^cz^, так как, согласно следствию 2.1а, ^,м замк-
нут относительно операции ограниченного минимума. Отсюда и по теореме 2.4 = W"\
Доказанные выше теоремы устанавливают, что при базисной операции подстановки и базисе исходных функций х+1, х+у, х — у, х-у, ху ограниченные операции суммирования, минимума и рекурсии эквивалентны. Можно также доказать, что каждая из упомянутых операций эквивалентна любой из следующих: операция ограниченного умножения, две операции максимума и операция минимального значения:
Min F (и, х) (для х ^ z) = цу ^ F (и, 0) [ 2 У = F (и, z)l.
Доказательство этих теорем предоставляется читателю.
Итак, класс элементарных функций может быть определен как содержащий упомянутые выше исходные функции и замкнутый относительно операции подстановки и одной из семи вышеперечисленных операций. Поэтому эти операции будут называться элементарными.
3. КЛАССЫ, ОСНОВАННЫЕ НА ОГРАНИЧЕННОЙ РЕКУРСИИ
Кроме класса ^, мы также исследуем другие классы функций, основанные на операции ограниченной рекурсии. С этой целью мы докажем несколько теорем более общего характера.
Будем говорить, что класс функций 8? индуктивно определим посредством начальных функций fi, ..., fn и операций 01, ..., Os, если 96 является наименьшим классом, содержащим функции fi, ..., fn и замкнутым относительно операций 01, ..., Os. Будем называть класс 96 индуктивно определимым, если он индуктивно определим посредством операций, описанных в этой статье.
Теорема 3.1. Если 96 индуктивно определим посредством операций подстановки, а также операций 0k{, ..., 0ks, определенных на функциях одного аргумента и не выводящих за пределы класса функций одного аргумента, и 96 включает нумерующие пары функции 1, К, L, то класс 96i *) индуктивно определим.
Для упрощения доказательства предположим, что 96 включает исходные функции fi(x, у), ...» Д(х, у) двух аргументов и функции ^+1(х), ..., fb+t(x) одного аргумента; докажем, что класс 96 \ совпадает с классом 96*, являющимся наименьшим классом, включающим исходные функции) fi (Кх, Lx), ...
9 Напомним, что через 96 х обозначается множество функций одного аргумента из класса 9В.— Прим, мерее.
.... fh(Kx,Lx), fh+iMfk+tU)* Kx, Lx, Цх,х^, /(x,0), /(О, x) и замкнутым относительно операций Okx..,.. Oks и Оь 02, где Оь если f(x) и g^ принадлежат 36*. то f(g(x)) принадлежит 35*; 02: если f принадлежит 35*. то 1 (Kx. f(Lx)) и /(/(/<х),Лх) также принадлежат 35* XY Включение 35* cz 85 \ очевидно. Исходные функции класса 86* принадлежат классу Э6\. а операции, упомянутые в определении класса 86*. не выводят из 86\. Обратное включение будет установлено с помощью некоторых лемм. Если / — функция одного аргумента, то п-я итерация функции f будет обозначаться через fn. Таким образом, f°(x)=x. fn+i(x) =f{fn(x)). Положим Cnx = KLn-]xt откуда С\Х = Кх. C2x = KLx. Далее,
<ХХхп, у) = 1 (х„ /(х2/<х„, у)
Из свойств нумерующих пары функций /, К, L следует, что
Ci (хххп, у) = Xt для 0 < i ^ п,
L" (ххХп, у) = У, CnLmX = Сп+тХ,
(х,Хп, (ухут, г)) = (хъ Хп, Ухут, 2).
Лемма 1. Если f. g^86*. то функция Kj^xY gVx^ также принадлежит 85*.
Доказательство. Согласно 02, функции ЦКх. g(Lx)) и ЦЦК^.Ех) принадлежат 85*. Отсюда функции
ЦЦКЦх. х)), ЕЦх. x)) = /(f(x), xY
HKiqW, х), g(L/(f(x), x))) = Z(f(x), g(x))
также принадлежат 36* благодаря операции 0\.
Лемма 2. Если Y. ..., jk принадлежат 86*. то функция (/\(х), ..., /Дх)) также принадлежит 85*.
Доказательство. Поскольку /2, /1 е 36*. то, согласно лемме 1, функция
hto) = Hh(A jx(x))
также принадлежит ^*. Предположим, что лемма верна для k = п, т. е. что (/п(х), ...,/1(х)) принадлежит ^*. По лемме 1 функция
</п + 1 U)/1 (х)> = I kin + X И. (in (х), . . ., /1 (х)>)
!) Как сообщил в частном письме автор, операцию 02 можно заменить более простой О^: если функции f(x) и g(х) принадлежат классу 85*. то lkYxV §W) также принадлежит 85*. — Прим, перев.
также принадлежит 35*, так что наша лемма верна для 6 = ^+1. Итак, мы доказали по индукции, что для каждого к функция (/\(х), ..., ix^x^ принадлежит 98*.
Лемма 3. Если jx, ..., ^е ЭВ*, то функции
f М = (jx (х), ..., jk (х), 0>,
g (х) = (h Мjt (х), 0, /;+1 (х), .... jft (х), 0)
также принадлежат ЭВ*.
Доказательство. Классу ЭВ* принадлежит функция (//Дх),0) (получается из /(х, 0) подстановкой, т. е. операцией OJ. Отсюда Цх) также принадлежит ЭВ*, и по лемме 2
й(х) = </<+1(х), . ,.,/Дх), 0> = </i+i(x)у^—Дх),Цькх\ 0»е^\
Аналогично получается для /(0, h(x)) (из Ц0,х)) и g(x) = (/1 (х), ..., Мх), /(0,/г(х))) также по лемме 2.
Лемма 4. Если f(x{, ..., хп) является функцией класса 36, то f'(x) = ЦСхх,..., Спх) является функцией класса 35*.
Доказывается индукцией по порядку функции f в классе 35 х).
Если f является исходной функцией двух аргументов класса 35, Цх, у) = fi(x, у), \^1^к, то функция fi(Kx, Lx) является исходной функцией класса 35*. Этот класс включает в себя также функции Кх, ЦКх,КЕх) (по О2) и
ЦКЖх, К Lx), ЕЦКх, KLx)) = fi(Kx, KLx) = f.(Cvx, C2x^ = f'M
Теперь предположим, что для всех функций g и h порядка ниже, чем п, соответствующие функции g' и Н/ принадлежат классу 35* и что f является функцией порядка п. Мы докажем, что /' также принадлежит 35*. Функция f получена из некоторых функций порядка ниже, чем п, посредством операций подстановки или какой-либо из операций 0^, ..., 0^. Следовательно, нам нужно рассмотреть следующие случаи:
Функция f получена посредством операции подстановки из функций g и h
fUlXft, yb .... ym) =
= g (xb ..., xn, h (yb .... ym\ x„+lxfe\
!) По-видимому, здесь автор имеет в виду обычное индуктивное определение порядка функции по глубине построения, при котором исходным функциям приписаны порядки 0. — Прим. ред.
По индуктивному предположению отсюда следует, что функции g'M-gV^x, ..., С*+1х), К ^ = Н^Схх» ..., С^
принадлежат 35*. 35* включает в себя Ctx для любого t. Отсюда, согласно лемме 3, следует, что функция (Сп+1х, ... .Сп+тх, 0) также принадлежит 35*. Таким образом, 35* включает
^ ((Спл-^х> • • • > Сп^.тх> 0» h ^Cn^.xxt ..., Cti^-^^x^
j (х) (С хх,..., Cnxt h (C^+iX,..., Спл-щХ^ Сп,^.т^.хх1 ..., С0^
(по лемме 3), а также функцию
g U (х) ™ g (CiX, ..., Спх, h (Сn + iX, ..., С^^^х),
Сп+т-нХ) . . Ст + кх) = f (х).
} получается из функции g отождествлением к-й и j-й переменных, т. е.
f (Xb Xn) = g (xb . . ., X/, . . . , Xfc_b Xh Xfc + h ..., xj.
По индуктивному предположению g'^35\ тогда 35* включает также (по лемме 3) функцию
/(х) = (CiX, ..., С/Х, ..., C^-iX, С/Х, Cfe + ix, ..., Спх, 0),
а следовательно, и функцию Г (х) =£'(/(*))• С. f получается из g подстановкой константы
f (xb . . . , X^-i, Xfc + b ..., xn^ =
= g*(^ixk_b О, xkuxj и gr ^96*. Положим
(x) = (Cxx, ..., Ck_xx, 0, Ских, ..., Cnx, 0); /96*
по лемме 3, поэтому функция f^x) =g'(j (x)) также принадлежит 35*.
D. Если f получается из g и h посредством одной из операций Окх> ..., Oks, то f, g и h являются функциями одного аргумента. Имеем
g' to = g (.КД h' (x) = h <Kx\ g {x) = g' U (x, x)),h^ = h'U^x, x)), f'to = HKx\
Поэтому если g', h' e SB*, to g, h g SB* и fj'e SB* в соответствии с определением SB*.
Доказав лемму 4, установим по индукции включение
88х cl SB*.
Если f(х) — функция порядка 0 в классе Я?, то f(x)=^ = fn+i(x) (1^/^0 и f принадлежит классу <^* как исходная функция.
Предположим теперь, что все функции класса ^ь порядок которых в классе 96 ниже, чем п, принадлежат 96*. Докажем, что функция f(x) порядка п в классе 96 также принадлежит классу 96*.
Будем различать два случая.
f получена из функций одного аргумента посредством операций Оь 0^^ ..., Oks> откуда f^96\ потому что операции 01, Ок^ ..., Oks не выводят из класса 96*.
Функция f получена из некоторой функции двух аргументов F(x,y) посредством одной из операций подстановки, т. е. f^ = F(x, х\ или f(x") = F(x> 0), или f(x) = F(O, х).
По лемме 4 функция F'(x) = F(Cxxt С2х) принадлежит 96*. 96* включает в себя функции
/(/(х, /(Ах, 0)),
/(/</(х, х), /(А/(х, х), 0)) = (х, х, 0),а также и функции (х, 0, 0) и (0, х, 0). Легко показать, чтоF (х, х) = F'^x, х, 0)),F(x, 0^ = F4(x, 0, 0»,Е(0, х) = А'«0, х, 0».
Таким образом, в каждом возможном случае функция f принадлежит классу 96*. Поэтому классы 96\ и 96* тождественны.
Теорема 3.2. Класс Sx индуктивно определим.
Доказательство. Операция ограниченного суммирования может быть определена таким образом, что она функцию F (х) преобразует в функцию f(x):
f(x) = s FU^Lx^YY
i < Kx
!) Введенную ранее операцию ограниченного суммирования можно выразить, например, так: пусть h (ц хь ..., х^е^ (/г>0) и g (у, хь ..., хп) = = 2 ^’ ^Ь •••> Хп). Положим
F(x) = /i(axсга+1Х),
5 FUU,Lxn- i^Kx Тогда g (y, Xb...,Xn) = f «у, xb .... xn^\ — Прим. ped.
Таким образом, из теоремы 3.1 вытекает, что класс ^ может быть основан на этой операции и на операциях О] и О2. Класс Sk также является индуктивно определимым для каждого k>0.
Мы будем говорить, что функция f(x) растет быстрее, чем любая функция класса 98, если для всякой функции g е 98 существует такое число п0, что для каждого х> nQ имеет место неравенство f(x)>g(x).
Функция f (хь..., хп,..., xh) называется неубывающей относительно п-го аргумента, если для всех хь ..., х^ и у неравенство хп ^у влечет
f (хь ..., хп, . . ., Xfc)< f (Xiу, хк\
Функция, неубывающая относительно каждого своего аргумента, называется просто неубывающей. Функция называется возрастающей, если она удовлетворяет сформулированному выше условию с заменой неравенства ^ на строгое неравенство <.
Далее, будем говорить, что функция g мажорирует функцию Л если f(u)<g(u) для всех и.
Теорема 3.3. Если классы 98 к Щ индуктивно определимы посредством операции подстановки и, быть может, посредством операции ограниченной рекурсии и если класс 98 включает в себя неубывающие функции, которые мажорируют (все) исходные функции класса °Ц, то для всякой функции f класса ^ можно указать некоторую неубывающую функцию f' из класса 98, которая мажорирует f и имеет столько же аргументов, сколько их имеет функция f.
Доказательство. Доказательство проводится по индукции относительно порядка функции f в классе ^.
Для исходных функций это свойство предполагается (в условии теоремы) выполненным.
Если для любых функций g, h, j порядка ниже, чем п, существуют такие неубывающие функции g', h', /', что
g(x, yXg'(x, у),
(П) WtjKh^,
/(x, uX/'(x, u),
и f — функция порядка n в классе ^ то, коль скоро f получена подстановкой функций f (х, у) = g (х, h (у)), f мажорируется неубывающей функцией g'(x,h' (у)), поскольку из (I), (II) и из факта неубывания g' следует, что
Кх, y) = g(x, h(y))^g'(x, h^^g'^x, h'^Y
Если, однако, f получена из функции g отождествлением переменных, например х и у, или подстановкой константы, например вместо у, то неубывающая функция f\ полученная из g' применением той же операции, мажорирует /.
Из неравенства (I) следует, что
5(у. yXgXy, У). g(x, 0)^g'(x, 0).
Наконец, если f получена из функций gyh,j ограниченной рекурсией и условие (с) операции ограниченной рекурсии имеет вид
f(x, u)</(x, u),
то из неравенства (III) следует, что / мажорирует f.
Теорема 3.4. Если 96 и ^ индуктивно определимы посредством операции подстановки и, кроме того, быть может, посредством операции ограниченной рекурсии, если класс 96 включает неубывающие функции, которые мажорируют исходные функции класса °Ц, и если f растет быстрее любой функции из класса 96\, то f растет быстрее любой функции из класса °Ц\.
Доказательство. По теореме 3.3 каждая функция g^^x мажорируется определенной функцией g* ^96\, что означает
g (М < g' ^
для любого х. Если f растет быстрее, чем g', то существует такое п, что для х^ п имеем g'(x) <f (х). Отсюда для х^п имеем также неравенство g(x)<f(x), которое означает, что / растет быстрее g.
Теорема 3.5. Если 96 и ^ включают функцию следования и индуктивно определимы операциями подстановки и, быть может, другими операциями и если для каждой функции класса 961 существует функция класса О^ которая мажорирует ее, то класс 96 не содержит универсальной функции для класса ^х»
Доказательство. Если F(n, х)—универсальная функция для класса ^i, тогда если бы класс 96 включал в себя ^(п,х), то 96х должен был бы содержать функцию F(x, х) + !. Последняя мажорируется определенной функцией g^^x- Поскольку F — универсальная функция для ^ь то существует такое п, что g(x) = F (п, х) для каждого х. Подставляя, однако, сюда х = п, получаем противоречивое неравенство
F (/г, п) = g (п) ^ F (п, п) + L
Аналогично, универсальная функция для класса 98 и не входит в класс 98. И все же универсальная функция для класса, который замкнут только относительно операций подстановки, может быть всегда определена с помощью ограниченной рекурсии 9-
Теорема 3.6. Если класс 98 содержит нумерующие пары функции 1, КД и индуктивно определим операциями подстановки, а класс ^ индуктивно определим операциями подстановки и ограниченной рекурсии и ^ содержит такую функцию h(n,x), что Цх)<к(п,х), если f имеет порядок п в классе 98 х, тогда класс ^ содержит универсальную функцию для класса 981).
Доказательство. По теореме 3.1 класс 98 х индуктивно определим посредством операций Ох, 0^.
Функция F(n,x), универсальная для класса 98 х, может быть определена следующим образом:
F (О, х) =
(а) исходныефункции для класса 98х\
(Ь) для п^к(Ь) для п^кF (п+ I, х) =F (п+ I, х) =F^k, х) = ;
(Ь) для п^к
(Ь) для п^к
F (п+ I, х) =
F (п+ I, х) =
F(Tx(n), F(Т2(п), х)), когда Г3(п) = 0, ЦКх, F(Tx(n\ Lx))> когда Т3(п) = 1, ЦЕДДп), Кх\ Lx), когда Г3(п)>Г,
(с) F (п, x)^h (п, х).
Случай Гз(п)=0 соответствует операции Ох.
Случаи ТДп)=^ и Г3(п) >1—операции О2.
Легко заметить, что, обратно, если ^ включает функцию F (п, х), универсальную для 98\, то класс ^ включает также функцию h(n, х), которая обладает свойством, указанным в теореме, а именно
Н^п, х) = X F kns I) + L
i < х
^ Точный смысл этого высказывания, по-видимому, уточняется в теореме 3.6. — Прим. ред.
КЛАССЫ ^п
Рассмотрим следующую последовательность вычислимых функций:
foU. У) = У + 1, Л (х, у) = х + у, f2(x, у) = (х + 1) • (у+ 1); для и ^ 2
L+1(O, У) = Му+1, У+1),fn + lU+h y) = fn+lU fn + lU. У))-
Докажем некоторые свойства этой последовательности, которые будут нужны в наших дальнейших рассмотрениях.
Теорема 4.1. /п(х, у)> у для п > 1.
Доказательство по индукции.
Если п = 2, то f2U* У^ = (^ + 1) е (У + 1) >У-
Предположим теперь, что эта теорема справедлива для данного п>\ при любых х и у. Тогда она справедлива также для п+1. Действительно, из индуктивного предположения следует, что
fn+i(0, y) = f„(y+ 1, у + 1) >у + 1 >у.
Предположим, что неравенство fn+i (х, у) >у имеет место для данного х и любого у. Тогда оно выполняется также для х+1: fn+t (х + 1, У) = f„ + l (х, f„+l (х, у) )>fn + 1 (х, у) > у.
Таким образом, теорема верна для всех х и п.
Теорема 4.2. fn+I (х+1, у) >fn+i (х, у) для п^О.
Доказательство. Для п ^2 теорема справедлива в силу теоремы 4.1:
fn+l(x+ L У^=1п+Лх, к+Дх, yY^LvAx, У\
Для п — 0, 1 непосредственно проверяем:
х + 1 + у > х + у; (х + 2) • (у + 1) > (х + 1) • (у + 1).
Теорема 4.3. fn(x,y + 1) >fn(x,y) для п>0.
Доказательство. Для п = 0, 1 мы проверяем теорему непосредственно. Для п>2 докажем ее по индукции. Предположим, что теорема справедлива для данного п и любых х и у. Отсюда и из теоремы 4.2 получаем
fn+v (О, У + 1) = fn (У + 2, у + 2) > fn (у + 1, у + 2) >
>My+L y+i) = fn+i^ yY
Предположим, что теорема 4.3 верна для данных х и п+1 и для любого у. Установим, что она верна также для х+1: /п+1 (х + 1, у + 1) = fn+1 (х, f„+i (х, у + 1)) > f„+i (х, f„+1 (х, у)) = = /«+1(^+1, у)-
Теоремы 4.2 и 4.3 означают, что каждая из функций fn(x,y) для п>0 является строго возрастающей относительно обоих аргументов. Как мы увидим, функции fn для п>3 не являются элементарными, но они вычислимы. Посредством последовательности fn можно определить следующую последовательность классов вычислимых функций. Пусть ^п — наименьший класс,
включающий х+1, Ux(x, у)=х, U^x,y^ = у, fn(x,y) как исходные функции и
замкнутый относительно операций подстановки и ограниченной рекурсии.
Последовательность классов ^п обладает следующими свойствами.
Теорема 4.4. ^3 является классом элементарных функций.
Доказательство. Функция f3 является элементарной:/з(0, y) = (y + 2)2, f3(L у) = ((у + 2)2 + 2)2 и т.д.
Вообще f3 легко можно определить с помощью ограниченной рекурсии:
g(0, у) = у; ^U + h y) = fe(x, у) + 2)2;
g (X, у) < (у + 2у^х; f3 (х, yXg (2х, у).
В классе ^3 также можно определить функцию х«:
х + 0 = х; х • 0 = 0 = U2 (х, 0); х° = 1;
х + (у + 1) = (х + у) + 1; х (у + 1) = ху + х; xy+1 = х« • х;
x + y<h(x, уУ x-y^fsix, уУ xy^f3(x, УУ
Таким образом, исходные функции класса ^3 принадлежат ^, и обратно. По теореме 2.5 классы ^3 и ^ замкнуты относительно одних и тех же операций. Следовательно, они совпадают.
Теорема 4.5. Класс ^° включает нумерующие пары функции Qx = Ех = х — \Ух]2, Rx и Qnx и замкнут относительно операции ограниченного минимума.
Доказательство. Посредством операций класса ^° можно определить следующие функции:
О(х) = и^х. 0);
UXU> у, z)=Ux(x, Ux(y3 2));
U^x, у, z^UtlJMx, у), г);
UaVx, У, 2)= U^x, U^y, г));
Р^ = х 1: Р^=0^\ P(x+\)=Ux(x, Р(х)), P^^Ux (х, х);
х — у:х — 0 = U1 (х, х),
Ху + 1) = U^x, у, Р(х ~ у)), х - у <U , (х, у);
а(х, у) = х • Оу = х • (1 — у): о(х, 0) = [/] (х, х),
а(х, у+ 1) = О((73(х, у, а(х, у))), а(х, уХ Ux(x, у);
т (х, у) = х + Оу:т(х, О) = х+1,
т(х, у + 1) = £7,(х, у, т(х, у)), т(х, уХ £7, (х, у)+ 1;
г(х, у) = остатку от деления х на у:
г (0, у)= О (у),
г(х + 1, у)= идх, о(г(х, у)+ 1, 1 ^-(у^(г(х, у)+ 1)))), r(x, уХ U^x, у);
функция [у]:
XHttfLг(,+1'
у] < U1 (х, у);
[ф^]:
[/0] = 0,
[/ГП] = т([/Я ([V^J+ 1)^[б^-г]), [Vxl^t/Jx, х);
Е(0) = 0, Е(х+1) = о(£(х)+1, Е (х) ^ Ux (х, х);
Qx = Ex,
Q°(x) = x, Qn+4x) = Qmx^, Qn(x)^Ux(x, n);
F(0, y) = O(y),
H7(x+1, y) = x^W<x, y), 2-^-T(l--(y^Q(x)), Q(x)^y)), Г (х, yXt/i(x, y).
Функция W удовлетворяет уравнению
Г(х+ 1, у)=Г(х, уН09х^И.
Значение функции W^x,y^ равно числу таких чисел s<x, для которых Qs — y (т. е. избыток s над ближайшим квадратом равен уУ
Rx=W (х, Qx).
Функции Qx, Rx— нумерующие пары функции (отличные о г тех, что были определены в § 1). Функция Qx каждое свое значение принимает бесконечно много раз. Функция Rx показывает, сколько существует чисел s<x, удовлетворяющих равенству Qx = Qs.
Функция Р^х,уУ которая им соответствует, не принадлежит, конечно, классу ^°.
Предположим, что F принадлежит классу ^°. Следовательно, ^° включает также функцию, которая определяется следующим образом:
f (u, 0)= 1—F(u, 0),
Ж x+l) = T(f(u, х), F(u, x + 1)),
f (u, x) < U2^, x + 1).
Легко видеть, что
f (U, x) = s 1 — F (u, iy
Отсюда следует, что суженная операция суммирования не выводит из класса ^°. Из следствия 2.1а вытекает, что класс ^° замкнут относительно операции ограниченного минимума.
Теорема 4.6. Для каждого п класс Sn замкнут относительно операции ограниченного минимума. Отношения класса S^ замкнуты относительно операций навешивания ограниченных кванторов и относительно операций исчисления высказываний.
Доказательство. Данные выше определения можно повторить для каждого класса (^п, поскольку ^° cz ^п. Отсюда по теореме 2.2b мы заключаем, что каждый класс ^п замкнут относительно операции навешивания ограниченных кванторов1). Далее, согласно эквивалентностям
— х = 0..~(х = 0),
а(х, 1 —у) = 0. = .х = 0. V»у = 0,
*) Из теоремы 2.2b следует лишь замкнутость относительно операции навешивания ограниченного квантора существования. Замкнутость g" относительно операции навешивания ограниченного квантора общности следует из дальнейшего. — Прим. ред.
отношения класса <^п замкнуты относительно операций исчисления высказываний.
Теорема 4.7. ^n cz S^.
Доказательство1). Покажем сначала, что для п > О имеет место следующее неравенство:
L+i (х, У) > fn (х, у).
Для п= 1 имеем
f2(x, y) = (x + l)-(y-H)>x + y = f,(x, у).
Для п >2 мы рассуждаем так: если х = 0, то выполняется неравенство (а)
f» + l(0, У) = Му + 1, у+ 1) >fn(O, у), поскольку fn является строго возрастающей функцией (теоремы 4.2 и 4.3).
Предположим, что для каждого у
fn+ЛЬ, y^>L^> уУ
Отсюда ввиду того, что fn+i — строго возрастающая функция, получаем
fn+i (fe + 1, у) = f„+l (fe, fn+1 Цг, у)) >
> fn+. (6, №u^> fn O> fn (6, У)) = fn {k + 1, y),
и по индукции также получаем (a).
Это неравенство поможет нам доказать, что в классе ^n+1 функции ft (для i4n) могут быть определены посредством ограниченной рекурсии.
Действительно, из неравенства (а) следует, что для 0<i^.n (0) fit*. y)<fn+l(x, у).
Например, если п>\ (или п>2), то легко можно определить x-Vy (или х-у и х^, как мы это сделали в классе ^3. Следовательно, имеют место включения
^cz^cz^cz^cz^1 для п>3.
Предположим теперь, что для п>2 и для 1<п функции ft определены в классе ^n+1, и докажем, что в этом случае fi+i
’) Автор подразумевает нестрогое включение ^пг^пЛ"х. Строгое включение будет доказано позже (теорема 4.9). — Прим. ред.
также принадлежит классу ^n+1. Функция fw удовлетворяет условиям
fi + i(0, у) = Щу+1, у + 1),
(y) fz+i U + 1. у) = f»+i U, A+i (*. y)).
fi+iU> y)<L+i(^> y)-
Эти условия определяют функцию fw и позволяют вычислять ее значения. Но эта схема не является простой схемой ограниченной рекурсии).
Функция fw> однако, может быть определена в классе с?^1 посредством операции минимума способом, аналогичным тому, которым функции, удовлетворяющие обычной схеме ограниченной рекурсии (теорема 2.3), определяются посредством операции минимума, а именно с применением последовательности простых чисел рп. Различие состоит только в том, что здесь мы употребляем двойную последовательность простых чисел, определенных как р(х, у) = Рр(х,^ где Р(х, у) — функция, нумерующая пары).
Полагая) F (х, t/^p^x, fn+i(x, y)^x+Wn+ixx+v 11 имеем
fi + l(*. У)=ф2</л + 1(х, у)Г 2 {z+l =
LmCF (х, t/)
= exp (m, p^x, у)). Ц {exp (m, p (0, u))0. -> .exp (/n, p (0, v)) =
= Mv + l, u + D+l} • П {/¥=0Л =t, v, w < m
= exp(m, p(^ + l, v))• -> .exp (m, p^w, y))^0}}].
Число m, употребляемое в этом определении, обладает следующим свойством: простое число p^w, v) присутствует в разложении т с положительным показателем, когда ^v^w,^ необходимо для вычисления значения функции /\+1(х, у) в соответствии с определением (у).
Легко также доказать, что если exp(m, p^w, w))=^0, то exp(m, p^w, iFn = fw^ u)+l.
Отсюда следует, что если ft^S111"^ то fi+i ^ ^^ для i^n. Все функции fi для i ^ п могут быть последовательно определены в классе ^n+1. Таким образом, класс Й’п+1 включает все
исходные функции предыдущих классов и, следовательно, включает также все эти классы.
Можно легко показать, что для п > 2 классы ^п замкнуты относительно операции ограниченного суммирования. Подобно этому для п>3 классы ^п замкнуты относительно операции умножения и т. д. Каждый последующий класс замкнут относительно большего числа ограниченных операций. Класс ^4 замкнут относительно операции
£2 РЦ, u) = f (х,
I < X
Доказательство этой теоремы предоставляется читателю.
Пусть Ж" является наименьшим классом, который включает функции /, К, L, х + у, х, fn и замкнут относительно операции подстановки. По теореме 3.1 класс Ж? индуктивно определим, а именно это будет наименьший класс, включающий функции х2, Кх, Lx, fnWx, Lx\ /(0, х)1) и замкнутый относительно операций: 1) Ох (суперпозиции) и 2) суммирования функций (т. е. если f, ge^b то f(x) + g'(x) также принадлежит Ж")2).
Теорема 4.8. Если f — функция порядка к в классе 7Р\ (где п ^ 2), то
fUXU^, х).
Доказательство основано на теоремах 4.1—4.3. Исходные функции удовлетворяют неравенству (6), поскольку
х2 < (х + 2)2 = f3 (0, х) < fn+! (О, х); Кх, Lx х < fn (0, х);
fn Щх, Lx) ^ fn (х, х) < fn (х + 1, х + 1) = fn+1 (0, х);
/ (0, х) = 2M.1L <[х + 2)2 = f3 (О, Х) < fn+x (о, X).
^ В оригинале среди исходных функций класса ^ функция /(0, х) не содержится. Необходимость ее введения обусловлена тем, что приводимые автором функции / (х, у) = (х + уУ + х, Кх = х — \У х]2, Lx = [К х] — Кх не являются функциями, нумерующими пары (см. сноску на стр. 10). — Прим. ред.
Предположим, что g и h— функции порядков / и к соответственно в классе ^” и что они удовлетворяют неравенству (S). Пусть к^ I, тогда
g W < fn+1 (^ xV h (x) < f„+! (A, x).
Отсюда, поскольку f„+i — строго возрастающая функция, получаем
g№Y^< fn+\Vt, А(х)) < fn+i(^, fn+i^, х)) = fn+l(k + 1, x).
Далее, применяя неравенство (а) теоремы 4.7, получаем g (х) + h (х) < 2f„+1 Vh, х) < VLaa (^ х) + 2)2 =
= f3 (0, fn+l (k, х) X frt + t (k + 1, х).
Поэтому если f — функция порядка к + 1, полученная из функций g и К посредством одной из операций 1) или 2), то
fW<fn+i(^ + 1, х).
Таким образом, мы доказали теорему по индукции.
Теорема. 4.9. Функция fn+i(x,x) растет быстрее, чем любая функция класса cf?•
Доказательство. Для п^2 из теоремы 4.8 следует что если / — функция порядка к в классе ^Т и х^к, то
fW<fn+l(x, х).
Отсюда /п+1(х, х) растет быстрее любой функции класса W\ и в соответствии с теоремой 3.4 растет быстрее, чем любая функция класса ^Г, так как исходные функции класса S^ мажорируются возрастающей функцией /п(^+1,у+1) класса ЖЧ Для n = 0, 1 можно непосредственно проверить справедливость нашей теоремы. Легко можно доказать, что если / имеет порядок к в классе ^°, то /(х)<х + 2Ь-Ц. Аналогично, если / порядка к в классе ^^ то /(х) < (х + 1) *2\
Отсюда функция 2х растет быстрее любой функции / ^ ^° и (х+1)2 растет быстрее, чем всякая функция / класса ^Ч Таким образом, мы получили, что ^ncz^n+1, ^п ^= ^п+1.
Теорема 4.10. Класс отношений &п для п>2 является наименьшим классом, включающим исходные отношения
/?i(x) = x = 0, R^x, у) = х = у+1, /?3(х, у, z^ = x = y\
R^x, у, z) = x = y -^2, Rs^x, у, г) = х = /п(у, г),
R6^» у, 2) = x^fn(y + 1, 2+ 1), R^xt y) = RQ(x, у, у)
и замкнутым относительно операций исчисления высказываний и навешивания ограниченных кванторов.
Доказательство. Под операцией навешивания ограниченного квантора существования мы подразумеваем операцию, которая преобразует отношение U в отношение V, определенное следующим образом:
V (х, у, и) = 2 Re (2. X, у) • и (х, у, z, и). г
В частности, отношение V может иметь одно переменное.
Пусть ^ обозначает наименьший класс отношений, включающий описанные выше исходные отношения и замкнутый относительно определенной только что операции. Из доказанной перед этим теоремы прямо следует, что ^ включает класс отношений класса S41.
Для доказательства обратного включения нам понадобятся некоторые утверждения, доказанные ниже.
Будем говорить, что выражение А (х, ух> ..., у^ оценивает х посредством ух, ..., ут при условии, что выражение А имеет вид
2 R6U. zb z2) • ^6(zb z3, z^ ... R6(zk, yb y^ zx, zy ..., z^
и каждое из переменных х, 21, ..., zk оказывается первым аргументом в одном из выражений, охватываемых отношением R^. Кроме того, переменное х представлено лишь в одном отношении R^ и если выражение Rq{z^ z^ Zh) представлено в выражении Л, то Kj^k и 1<1г^к.
Очевидно, если выражение Л(х, ух> ..., у^ оценивает х посредством ух, ..., ут и 5(х, ух, ..., у^ и) является отношением класса то выражение
2^(х, уь ..., уту В^х, Уь .... ут, и) X
также является отношением класса ^*.
Лемма 4.11. Для каждой функции ^ух, ..., ут) класса ^п существует оценивающее выражение А^х,ух, .... ут), такое, что имеет место импликация
x^f{yiут).-*.А(х, yb ym).
Доказательство. Rg^x, yx, y2) является оценивающим выражением для исходных функций класса ^nl). Если функ-
ции g и h имеют оценивающие выражения Д и В, удовлетворяющие следующим импликациям:
x<g^yx, .ук).->.А^х, уь ..., ук),x^h(,y, м\->.В^х, у, и),
тогда выражение 2S(^> z, и)- А (2, уь ..., ук) эквивалентно оценивающему выражению для функции
НУь-... У^ ^) = h(g(yb . Ук). Ю, поскольку импликация
x^hlglyx, ..ук\ п).->.55(х, 2, и). А (2, уь ..., ук)
2
следует из импликаций, приведенных выше. Оставшиеся операции: отождествление переменных, подстановки констант и ограниченной рекурсии — не представляют никаких трудностей.
Доказав лемму 4.11, мы в свою очередь докажем по индукции, что для каждой функции f^^n при п>2 отношение х = f (уь • Ут) принадлежит классу ^. Для исходных функций соответствующие отношения являются исходными в классе ^- Предположим, что для функций g и h соответствующие отношения G и Н принадлежат классу ^:
x = gUb u). = .G(x, у, и),
x = h^yx, ..., ут). = .Н (х, ух, ут);
тогда получаем эквивалентность
* = £(Л(Уь • • •> Ут). и). =
= -2 {Л (2, уь • • •, Ут)* Н (2, уь . . ., ут\ G (х, 2, U) }, z
где А является оценивающей функцией для функции к. Таким образом, это отношение соответствует функции, полученной подстановкой. Далее ,
х = g(0, и). = .2{^б(2> х, х). Rx (2). G (х, 2, и)),
X = g (у, у). = -2 {^6 (2> У* у\ Z = y-G (х, z, у)},
х = ци ^ у [^(у, и) = 0]. = .2{^б(2> х, х). Ri (з). х ^ у. G (х, z, и) 2
•П {#6 (у> х, х). и < х. . ~ (G (z, и, и))}. V ■ Ri (х)
•П №> (у > У. у\у^у--* kG (z, у, и))}}.
Отношения ^, ~, < могут быть определены в ^* посредством отношения R4.
Поскольку для п>2 класс ^п может быть определен как класс, замкнутый относительно операций подстановки и ограниченного минимума, мы доказали, что для каждой функции fe^n отношение х = f(yx, ..., ym) = F(xf ух, ..., ym) принадлежит ^. Отсюда §\ включает также отношение
Чг/1Ут) = 0. = .S{fl6(z. уь у,). ^(z). F(z, уь .у^.
Таким образом, класс ^ включает все отношения класса ^
Теорема 4.12. Для п>2 класс ^n+1 включает универсальную функцию для класса ^.
Доказательство. Если п>2, то класс ^х является наименьшим классом, включающим некоторые исходные функции и замкнутым относительно операций суперпозиции, суммирования функций f(х) + g(х) и ограниченного минимума функций одного аргумента
h (х) = Ц2 < Кх [g (/ (2, Lx)) = 0].
Отсюда функцию F^n,x), универсальную для ^, можно определить следующим образом:
/ДО, х) =
исходные функции для ^ь
F (&о, х) = а для п>ко
F(n+ 1, х) =F(n+ 1, х) =Р^Тхп, Р^Т^п» х)), когда Г3п = 0, Р(Тхп, х) + Р^Т^п» х), когда Т3/г = 1, ^^KxVF^Txti, /(2, Lx)) = 0], когда Т3/г>1.
F(n+ 1, х) =
F(n+ 1, х) =
Эти рекурсивные определения могут быть приведены к определениям, сформулированным с помощью ограниченного минимума; это можно сделать посредством двойной последовательности простых чисел р^х, у), как мы это сделали при доказательстве теоремы 4.7. Числа, существование которых предполагается в определениях этого типа, можно легко оценить сверху с помощью функции fn+i. Завершение доказательства предоставляется читателю.
Обозначим через 91 класс примитивно рекурсивных функций.
Теорема 4.13. Класс 91 является объединением классов ^п.
Доказательство. Заметим, что fo, fbf2^^?, и если fn^9£, то fn^i^g? (в соответствии с теоремой, доказанной Р. Петер [3]), так как fn^x определяется посредством операции рекурсии со вставками, которая не выводит из класса 91.
Отсюда для каждого п fn^9l. Класс 91, будучи замкнут от* носительно примитивной рекурсии, замкнут и относительно ограниченной рекурсии. Отсюда
Лемма 4.14. Если f является функцией порядка не выше п в классе 91\, то f е ^п+3.
Доказательство. Мы исследуем класс 91\, как он определен Р. Робинсоном [5, теорема 3, стр. 940]. Исходные функции класса 91\, а именно х + 1 и Ех, принадлежат ^3.
Предположим, что функции g и h порядка не выше к удовлетворяют лемме: g,h^3k+3. Тогда g(x) + /i(x) и g(/i(x)) также принадлежат классу Зк^3, поскольку каждый класс ^п+3 включает функцию x-Vy и замкнут относительно операции подстановки. Тем более эти функции принадлежат классу З^^3, который включает функцию hx$Y Именно, если h^Sk^3, то по теореме 3.3 существует некоторая неубывающая функция hf ^Ж^3, такая, что h' мажорирует h, потому что класс Ж^3 включает возрастающую функцию ^+3(х+1, #+1), которая мажорирует исходные функции класса ^ft+3. Пусть К' является функцией порядка I в классе Ж7^3. По теореме 4.8 для каждого х справедливо неравенство
h^^K kxX^^^l, х\
Отсюда имеет место неравенство
(е) h(H4o)<fk+Ai + y, о).
Это неравенство удовлетворяется для у=0, поскольку
А<0> (0) = 0 < 1 = f2 (0, 0)<ffe+4(Z, 0).
Предположим, что неравенство (е) имеет место для у. Тогда согласно (6) неравенство (е) выполняется также для у+1:
^y+140) = /t(//y40))<ffe+4(Z, /г(у)(0))<^+! (Z, ^н 0))<
^ffe+4^ + У> 1к+4^ + У, 0)) = fk+4^ + (У + 1)> 0).
Тем самым мы доказали по индукции неравенство (е) для всех у. Отсюда если /(х) = /iW(0), то функция f может быть
определена в классе ^+4 посредством ограниченной рекурсии:
f(0) = 0,Цх+1) = Л(/(х)),f«<h+4(/ + *. 0).
Таким образом, если f имеет в классе Й\ порядок 6+1, то f е
Таким образом, рекурсией по к мы доказали лемму 4.14.
Из леммы 4.14 прямо следует, что каждая функция f класса 5? принадлежит некоторому классу последовательности $к. Пусть f является функцией к аргументов f(xi, ..., х^ и принадлежит классу 5?, тогда мы определим функцию V как
Ш = КСхх, С2х, ..., Скх\
Функция f' принадлежит Ях. Пусть f' является функцией порядка п в классе ^ь Тогда из леммы 4.14 следует, что f'e ^п+3. Класс ^п+3 также включает функцию f(xi, ..., хк) =f'({xx, ... ...А, 0)).
Будем говорить, что операции (совокупность операций) Окх. ..., Oks являются недостаточными для получения класса й?, если для каждого конечного числа функций gx, ..., gk. принадлежащих классу 88, существует такая функция f класса 88, которая не может быть получена посредством операций Okv .... Oks при исходных функциях gx, ..., gk-
Теорема 4.15. Операции подстановки и ограниченной рекурсии недостаточны для получения всех примитивно рекурсивных функций.
Доказательство. Если gx, ..., gk принадлежат 52, то из теоремы 4.13 следует, что существует такое п, что все функции gx, ... gh принадлежат ^п, потому что классы ^п образуют возрастающую последовательность (теорема 4.7). Поскольку операции ограниченной рекурсии и подстановки не выводят из класса ^п, то эти операции недостаточны для получения функции fn+i, которая принадлежит классу ^^^
В связи с классами ^п возникают перечисленные ниже проблемы.
Являются ли операции ограниченной рекурсии и ограниченного минимума эквивалентными при наличии операции подстановки и конечного числа исходных функций, принадлежащих классам ^° (или (F1^2))?
Аналогичная проблема, относящаяся к операциям ограниченного суммирования и ограниченной рекурсии.
Может ли универсальная функция для класса ^? при* надлежать классам или ^2?
Можно ли характеризовать класс отношений Зп для п<3 подобно тому, как характеризуется класс отношений Зп для п^З (теорема 4.10)? Можно ли аналогичным образом охарактеризовать отношения одного аргумента класса 3^
Эквивалентна ли операция, которая описана на стр. 39 (перед теоремой 4.8) и относительно которой замкнуты классы Зп для п > 3, операции ограниченной рекурсии?
Выводит ли из класса 3й операция ограниченной двойной рекурсии 9?
Определим следующую последовательность функций:
fUx» у) = у+1, f^x, у) = х + у;
для п > 1
^+1(0, у)= 1,f^,(x+l, ^-М+Цх, у\ у>
Пусть ^п обозначает наименьший класс, включающий исходные функции х+1, ^i(x, у), U2(x, у^ fn(x,y) и замкнутый относительно операций подстановки и ограниченной рекурсии. Можно ли для классов 2Гп доказать теоремы), аналогичные теоремам для классов ^п?
Являются ли операции) подстановки достаточными для получения класса ^п?
Обозначим через й2 класс функций, полученных посредством двойной рекурсии. Является ли операция единичной (single) рекурсии достаточной для получения класса ^2? Аналогичный вопрос для других классов кратно рекурсивных функций).
ПРИЛОЖЕНИЯ КЛАССА Зо
Функции класса 3° могут быть использованы в канонической форме вычислимых функций. Пусть и[/?(...х...)] обозначает единственное х, такое, что R^...x...y
Теорема 5.1. Каждая вычислимая функция может быть представлена в виде f(и) =Л(ix[B(u, х)=0]), где А и В являются функциями класса 3й.
!) С. С. Марченков установил, что замыкание класса З™ (п ^ 2) относительно ограниченной двойной рекурсии совпадает с классом Зп+Х всех функций из Зп+Х, ограниченных функциями из 3^ (см. стр. 130 настоящего сборника).—Прим, перев.
Доказательство. Из теоремы, которую доказала Дж. Робинсон [6, стр. 712, теорема 4] вытекает, что класс ^ вычислимых функций является наименьшим классом, содержащим х+1, х + z/, Ex как исходные функции и замкнутым относительно операции подстановки и операции эффективной инверсии f-1(y) = = juu[f (я) = у], когда f принимает все значения.
Функции x+L х + у, Ех легко могут быть представлены в требуемой форме:
х + 1 = vy \у = х + 1], Ex = vy Yy = ExV
X + у = 12 [г ^ у. г^ х. z — х = yY
Из доказательств теоремы 4.5 следует, что отношения в скобках принадлежат классу ^°. Теперь предположим, что fug заданы в форме
f(u) = Л(и [В(и, х) = 0]),
g^, ty = C(vz[D(v, V, 2) = 0]), где Л, В, С, D е ^°.
Мы установим, что функции, которые могут быть получены из этих функций операциями, допустимыми в классе , также можно задать в такой форме.
Операция подстановки:
g(J^ ^^C^YD^A^xYB^ х) = 0]}Л, 2) = 0]) =
= CRlwYD(A(<M V, Rv) = 0.B^ Qv) = 0]),
поскольку два числа х = tx[B(n, х) =0] и 2 = 12[В(Лх,9, 2) =0] могут быть заменены на одно число у = В(х,2), так что x = Qy, а z = Rl\ где Р. Q, R являются функциями, нумерующими пары.
По теореме 4.5 отношение под знаком i-операции принадлежит классу ^°.
Операция эффективной инверсии.
Положим:
S(z, и). = .В(0, QD2) = 0.n(/>0.^.B(y, RQu^'z) = <
xt = ix [B(t х) = 0].
Легко видеть, что
12 [S(2, v)] = Р(Р(. . . P(XQt xj, Х2), . .., Ху).
Отсюда
Ху = R (12 [5 (2, о)]),и, таким образом,Ut^Akx^AR^XS^, <)]).
Из равенства (I) следует, что
К (и) = 12 [S (2, v)]
есть функция возрастающая. Отсюда следует, что
Г1 (у) = 1^ [f (О = у] = ^ ИЯ (iz [S (г, 01) = у] =
= Qus [S (Rs, Qs). ARRs = у],
потому что наименьшее s = P(z, I) соответствует наименьшему /, если число 2 = i2[S(2, /) = 0] = h^ возрастает с ростом Л
Поскольку, согласно теоремам 4.5 и 4.6, отношение S принадлежит классу 8\ то класс 8й содержит такое отношение Г, что
Vх (у) = Qus [Г ($, у)].
Это означает, что
Г* (у) = Qis [г(s, у) П ~кТ(и, у))].
Отношение под знаком i-операции в этом случае также принадлежит классу 8й, поскольку операции навешивания ограниченных кванторов не выводят из класса 8\
Операции отождествления переменных не вызывают никаких трудностей.
Теорема 5.2. Каждая вычислимая функция может быть представлена в форме
f^^Q^xVA^ и) = 0]),
называемой канонической формой [6, стр. 716; 2, стр. 727], где Q и А принадлежат классу 8° и Q является фиксированной функцией, определяющей первый элемент пары.
Доказательство. Нам известно из предыдущей теоремы, что f может быть выражена как
f^-A^x^x, и) = 0]), и отсюда
f (u) = Q (ix [Qx = ARx. В (Rx, и) = 0]).
Теорема 5.3. Каждое рекурсивно перечислимое множество перечислимо некоторой функцией класса 8°.
Доказательство. Существует элемент а, такой, что а е X. Множество X перечисляется некоторой функцией f, которая может быть задана в следующей канонической форме:
f(v) = Q(nx[F(x, у) = 0]).
Q и F принадлежат 8° в соответствии с теоремой 5.2.
Имеют место следующие эквивалентности:
и г X. = .2 w = f (v). = .2 ^ = Qx. x = m/[F (у, v) = 0]. =
= .2 и = Qx. F^x, y) = 0. JI F^y, v)=#0.= V, Xy<x
^ .^H (u, y, x) = 0. = .2 н (u, Qy, Ry) = 0, v, Xу
где H — некоторая функция, принадлежащая ^° в силу теоремы 4.5. Из приведенных выше эквивалентностей следует, что если множество X бесконечно, то оно перечисляется функцией
/■(у, г) = |ли^г + а[Я(и, Qy, Ry) = 0],
а следовательно, и функцией g^ = j(Qu, Rv). Эти функции принадлежат классу ^°, потому что этот класс замкнут относительно операции ограниченного минимума и z + а = =z + 10) + ... +На), где а— константа.
ЛИТЕРАТУРА1)
Godel К., Ober formal unentscheidbare Satze der Principia Mathematica und verwandter Systeme I, Monatshefte fur Math, und Phys., 38 (1931), 173—198.
К1 e e n e S. C., General recursive Functions of Natural Numbers, Math. Annalen, 112 (1936), 727—742.
Peter R., Ober den Zusammenhang der verschiedenen Begriffe der rekur- siven Funktionen, Math. Annalen, 110 (1934), 612—632.
Peter R., Rekursive Funktionen, Budapest, 1951. (Русский перевод: Петер P., Рекурсивные функции, ИЛ, М., 1954.)
Robinson R. М., Primitive recursive Functions, Bull. Amer. Math. Soc., 53 (1947), 915—942.
Robinson J., General recursive Functions, Proc. Amer. Math. Soc., 1 (1950), 703—718.
7*. R 6 d d i n g D., Ober die Eliminierbarkeit von Definitionschemata in der Theorie der rekursiven Funktionen, Z. math. Logik und Grunlag. der Math., 10, № 4 (1964), 315—330.
8*. R 6 d d i n g D., Darstellung der (in Kalmar-Csillag’schen Sinne) elementa- ren Funktionen, Arch. math. Logik und Grundlagenforsch., 7, № 3—4 (1965), 139—158.
9*. R d d d i n g D., Ober Darstellung der elementaren Funktionen, II, Arch, math. Logik und Grundlagenforsch., 9, № 1—2 (1967), 36—48.
10*. Ritchie R. W., Classes of recursive functions based on Ackermann’s functions, Pacif. J. Math., 15, № 3 (1965), 1027—1044.
!) Звездочкой отмечена литература, добавленная при переводе. — Прим. ред.
КЛАССЫ ПРЕДСКАЗУЕМО ВЫЧИСЛИМЫХ
ФУНКЦИЙ 1)
Р. В. Ричи
ВВЕДЕНИЕ
В этой работе мы изучаем последовательность классов вычислимых функций, сложность вычисления которых можно сравнительно просто предсказать. Класс рекурсивных функций состоит из таких функций, для которых существуют механические процедуры для получения значений из аргументов. Однако этот класс, так как он включает все вычислимые функции, должен содержать функции со сколь угодно сложными вычислениями. Существуют различные более ограниченные классы функций, которые легко вычисляются каким-либо способом, однако это в большой степени происходит за счет интуиции. Приятное исключение составляет класс F — функций, вычислимых) конечными автоматами. Но этот класс слишком ограничен: он не содержит даже умножения. Мы строим иерархию более содержательных классов функций; каждый из них определяется как класс таких функций, сложность вычисления которых «предсказывается» функцией из предыдущего класса.
Известно, что класс F числовых функций, вычислимых конечными автоматами, содержит сложение и замкнут относительно явных преобразований) и композиции. В частности, он содержит линейные функции). Этот класс F берется в качестве исходного класса, так как эти функции вычисляются наиболее просто: по входу сразу печатается выход. Для получения большего класса рассматриваем класс функций, вычислимых (в двоичной системе счисления) на машинах Тьюринга, использующих ленту, длина которой ограничена более простой функ
’) Ritchie R. W., Classes of predictably computable functions, Trans. Amer. Math. Soc., 106 (1963), 139—173.
цией, именно функцией из F. Обозначим этот новый класс не рез Fv Продолжая таким образом, определяем Ft как класс функций, вычислимых на машинах Тьюринга, которые используют ленту длиной, ограниченной функцией из F^\. Таким образом, мы измеряем сложность вычисления на машине Тьюринга длиной ленты, необходимой для этого вычисления. (Отсюда мы, конечно, можем получить и некоторые границы для числа шагов в вычислении.)
Мы можем интерпретировать счетное объединение ^ классов Ft следующим образом.
Каждая функция, вычислимая на машине, у которой объем памяти, необходимой для вычисления, есть функция, допускающая предсказуемое вычисление (на машине, требующей меньше памяти, чем данная) с помощью функции F, или функция, ограничивающая вычисление, в свою очередь имеет предсказуемое вычисление и т. д., должна принадлежать 9". Обратно, каждый элемент ST содержится в некотором Ft и, значит, должен вычисляться в этом смысле не более чем с I предсказаниями. Таким образом, мы говорим об ST как о классе предсказуемо вычислимых функций и рассматриваем классы Ft как образующие подразбиение по сложности класса 9" всех предсказуемо вычислимых функций.
Исследуя ^, мы обнаруживаем сначала, что каждый индивидуальный класс Ft содержит тождественную функцию и функцию следования. Затем мы показываем, что он содержит также функции fi, где fi (х) есть 2х и fw (х) определяется как fi(fito). Далее мы показываем, что каждый класс Ft замкнут относительно явных преобразований и что объединение всех Ft замкнуто относительно композиции и ограниченной рекурсии1). Комбинируя эти факты, получаем, что класс ^ элементарных функций (Чиллаг—Кальмар, см. [4, 6]) содержится в 9". Затем доказываем обратное включение, показывая тем самым, что элементарные функции в точности совпадают с предсказуемо вычислимыми функциями.
Последние три раздела этой статьи посвящаются более детальному анализу классов F^ для чего требуется новая арифметизация машин Тьюринга, которая и проводится в приложении 3. В этих заключительных разделах показывается, что каждый из классов Ft включает класс ^2, определенный Гжегорчиком [3], и каждый класс Ft можно определить без ссылки на машины Тьюринга.
В последнем разделе показывается, что последовательность классов отношений, характеристические функции которых лежат
в Fit образует подразбиение класса всех элементарных отношений. Таким образом, идеи, развитые в этой статье, дают классификацию по сложности вычисления не только для функций, но и для отношений и разрешающих процедур.
ОПРЕДЕЛЕНИЕ КЛАССОВ Ft
В терминах обычных определений машин Тьюринга [1, 4] нетрудно доказать теорему 1, сформулированную ниже, почти в точности повторив стандартные рассуждения из [4, стр. 330,331]. Единственная модификация, необходимая для того, чтобы избежать слишком расточительного расхода ленты, заключается в следующем: все записи, которые уже больше не будут использоваться, стираются, а образовавшиеся пробелы уничтожаются. Поскольку это достаточно очевидно, мы опускаем детали и будем довольствоваться лишь наброском доказательства теоремы.
Определим размер ленты, использованной при вычислении Xb...,Xq, как максимум длин лент 1^ встречающихся в мгновенных описаниях Xi. Будем обозначать размер ленты, использованной при вычислении f(xi,..., хп), через1) а^хх,..., хп), а длину ленты, на которой записаны числа хх,...,хп, через /(xi,..., хп). Обозначая сокращенно Хь ... ,хп через х, получаем следующие результаты:
Теорема 1.(а) Если hug вычислимы и f определяется посредством равенства
Цх, y) = h(x, g(y)),
ТО
af(x, у) = Цх, у) + max [l(x) + ag (у), aft(x, g(y))]> п
где /(х) = 2 l(Xi) + (n— 1), так как, записывая на ленте хх, ..., хп> мы разделяем их пробелами.
Если h, g вычислимы и f определяется из них примитивной рекурсией, т. е. f(x, 0) = gW и f(x,s(y)) = h^x, у, f (х, у)), где s(y) —функция следования (у + 1), то
af(x, у) = 2р(х, y) + max рпах(аА(х, 2, f(x, 2))), ^(x^j.
Для явных преобразований^ получаем, что если g вычислима и f(xb ... ,хп) = g (^Ь • • • > ^), то
Of (Хц ее., Xrt) Ug (^ 1 > • • • , 6fc) 4“ ^ (Xb • • • , Xrt).
Доказательство. Мы приведем только набросок доказательства пункта (Ь); остальные пункты доказываются аналогично. В силу рекурсивного определения f(x, у) требуется вычислить Л(х, 0, g (x) ), Цх, 1,/i (х, 0, g(x))) и т. д. В каждом из этих вычислений значений функции h фигурируют аргументы х, поэтому удобно предположить, что при вычислении функции на машине Тьюринга начальные аргументы неизменно остаются на ленте. Так, мы считаем, что данные машины Zg и Zh работают таким образом, что в конце на ленте написаны и начальные входы и вычисленные значения функций. (Это соглашение принято, например, в [4, стр. 320].) Принимая это во внимание, мы можем построить машину Zb на ленте которой в начале работы написано (х, у), а в конце—(х, у, f (х, у)). Мы приводим здесь последовательность лент машины на различных узловых этапах вычисления и предоставляем читателю детальное построение такой машины. (Приведенная ниже последовательность написана в предположении, что у >2; если у есть 0 или 1, то вычисление завершится быстрее.)
х у у X g(x)х у у X g(x)Переписывается у, вычисляется g^x).Переписывается у, вычисляется g^x).переписывается х,переписывается х,
х у у X g(x)
х у у X g(x)
Переписывается у, вычисляется g^x).
Переписывается у, вычисляется g^x).
переписывается х,
переписывается х,
х|у у |x|g(x)|o g(x)х|у у |x|g(x)|o g(x)Печатается g(x).Печатается g(x).0, переписывается0, переписывается
х|у у |x|g(x)|o g(x)
х|у у |x|g(x)|o g(x)
Печатается g(x).
Печатается g(x).
0, переписывается
0, переписывается
Стирается самое жается пробел.Стирается самое жается пробел.левое g (х), уничто-левое g (х), уничто-XУУ | X0gwh(x, 0, g (х))XУУ | X0gwh(x, 0, g (х))х у у х 0 g(x)х у у х 0 g(x)X у у X 1 f (х, 1)X у у X 1 f (х, 1)
Стирается самое жается пробел.
Стирается самое жается пробел.
левое g (х), уничто-
левое g (х), уничто-
X
У
У | X
0
gw
h(x, 0, g (х))
X
У
У | X
0
gw
h(x, 0, g (х))
х у у х 0 g(x)
х у у х 0 g(x)
X у у X 1 f (х, 1)
X у у X 1 f (х, 1)
Так как у не 0, вычисляется /г(х, 0, g(x)) = = f(x, 1).
Вычисляется s(0), стирается g(x), уничтожается пробел.
х у у-\ х 1 f (х, 1) А (х, 1, f(x, 1))х у у-\ х 1 f (х, 1) А (х, 1, f(x, 1))**х у у —к х к /(х, к^ h(x, к, /(х, fe))|х у у —к х к /(х, к^ h(x, к, /(х, fe))|и т.и т.д.д.
х у у-\ х 1 f (х, 1) А (х, 1, f(x, 1))
х у у-\ х 1 f (х, 1) А (х, 1, f(x, 1))
*
*
х у у —к х к /(х, к^ h(x, к, /(х, fe))|
х у у —к х к /(х, к^ h(x, к, /(х, fe))|
и т.
и т.
д.
д.
Из у вычитается 1; так как у — 1 ^ О, вычисляется
A(x,l,f(x,l))=f(x,2).
х у 1 X у-1 f (х, у-1) h(x, у-1, f(x, у-1))
X у 1 х у Цх, у)X у 1 х у Цх, у)Vi)x,y-1, f (х, у — 1)) — f (х, у)}.
X у 1 х у Цх, у)
X у 1 х у Цх, у)
х | у | / (х, у)х | у | / (х, у)Вычисляется s(y — 1), стирается f(x, у — 1), уничтожается пробел.
х | у | / (х, у)
х | у | / (х, у)
Из 1 вычитается 1, в результате получается 0, стирается 0, х, у, уничтожается пробел.
Пусть в приведенном выше вычислении к есть целое между О и у, такое, что ah (х, к, f (х, к)) = max ah (х, 2, f (х, 2)). Наи- 0<г< у-1
больший размер использованной ленты достигается при получении одной из трех лент, отмеченных выше звездочками. Если это будет при получении первой ленты, то он равен /(х, у)+. + Цу) + agW + 2, где 2— количество пробелов, разделяющих числа на ленте и не учтенных еще в Цх, у). Если это будет при получении второй ленты, то он равен 2[Z(x, у) + l(g(x))] + 3, и, наконец, в последнем случае, он равен Цх,у)А-Цу— к^А- + я^(х, &, f (х, &))+2. Заметив, что aF(z)^ Цх) + ЦР^х)) + 1 для любой функции F(z), мы можем заменить каждую из двух первых оценок на верхнюю границу 2[Z(x, у) + tig(x)], а третью оценку на 2Z(x,у) + ah^x, к, f,(x, к)). Таким образом, показано, что во всех случаях размер использованной ленты меньше или равен границе, данной в пункте (Ь) теоремы.
Полученные в теореме 1 оценки будут использованы в дальнейшем для классификации числовых функций. Как было уже замечено, функции из F являются простыми: их вычисление не только очень быстро, но также использует память (ленту), необходимую лишь для того, чтобы записать выход (на фиксированное число ячеек больше, чем нужно для записи входа). В приложении 2 мы приводим необходимые результаты о конечных автоматах и классе F. Читатель, который не знаком с ко-
печными автоматами, может справиться о них в этом приложен НИИ.
Таким образом, мы выбираем класс F функций, вычислимых (в двоичной системе счисления) конечными автоматами, в качестве исходного класса и используем эти функции, чтобы получить более широкие классы функций, для вычисления которых требуется больше времени и ленты. Рассматриваем класс Fx всех числовых функций f, вычислимых на машинах Тьюринга, для которых функция Пу, дающая размер ленты, использованной при вычислении f, ограничена функцией из F, т. е. Fi— это класс всех функций f, таких, что Пу ограничена функцией, вычислимой некоторым конечным автоматом.
В этом месте нужно сделать два замечания. Во-первых, мы предполагаем, что наши функции кодируются на машинах Тьюринга в двоичной системе счисления, а не в унарной, которая обычно используется в теории вычислимости. Но это соглашение гораздо ближе к реальной вычислительной практике и потому дает более естественные классы Ft; оно выгодно еще и потому, что эти классы получаются более широкими, чем если бы мы использовали унарную систему счисления). Второе замечание заключается в том, что мы требуем только, чтобы а^ была ограничена функцией из F, но не требуем, чтобы сама сц принадлежала F. Это не только упрощает наши последующие доказательства), но также оказывается ближе к реальной вычислительной практике. На практике получают верхнюю границу для объема памяти, необходимой при вычислении, причем эта граница не обязательно достигается.
Учитывая эти замечания, читатель может легко убедиться в том, что умножение и функция ах для любой фиксированной константы а принадлежат Fv Функция 22 не принадлежит Fx, так как длина 22 есть 2х + 1 (и, следовательно, число ячеек использованной ленты не меньше этой величины). Но функция 2х + 1 не принадлежит F, так как она не удовлетворяет послед-
ней теореме приложения 2. Так как 2х принадлежит Рх, то длина 22 (а также, как легко можно показать, и размер ленты, необходимой для вычисления) лежит в Рх. Теперь определяем класс F2 всех функций /, таких, что а^ лежит в Рх, и т. д.
Точнее, мы дадим следующее определение.
Определение 1. Числовая функция f принадлежит классу Рх тогда и только тогда, когда
она вычислима и
) существует функция g е Р, такая, что аДхх,..., хп)^ ^CgV^ хп) для всех n-ок (хь ..., хп) неотрицательных целых чисел (короче, а/ ограничена функцией из F).
Для каждого i > 1 Ft есть класс всех вычислимых функций f, таких, что а^ ограничена функцией из Р^_х. Мы называем объединение всех классов Ft классом предсказуемо вычислимых функций и обозначаем его через РГ.
Очевидно, что Рг строго включен в Pw (Z^l), так как
2х ^FXi 2 лежит в F^, но не лежит в Fx, 2" принадлежит F3t но не принадлежит Р2 и т. д.
В следующих двух разделах мы исследуем свойства классов Рг и показываем, что их объединение #* совпадает с классом элементарных функций.
СВОЙСТВА КЛАССОВ Ft
В этом разделе мы будем устанавливать свойства замкнутости классов Ft относительно явных преобразований, композиции и рекурсивных определений. Для явных преобразований имеем следующий простой результат.
Лемма 1. Каждый класс Ft замкнут относительно явных преобразований.
До к а з ательство. Если f (хь ...» хп) = g (^, ...» £т) для geFb тогда af(xb ..., x^-ttg^, ..., ^Ч-Цхь ..., хп\ где ag^Ft-v Но функция а^, определенная равенством
аАХХ' Х^ = ag^l’
есть явное преобразование функции ag и ag^F^_Xs если l> 1, или ag^F, если i = 1. Таким образом, по индукции, так как F замкнут относительно явных преобразований, получаем, что этим свойством обладает и каждый класс Р^
Что касается композиции, то лемма 2, сформулированная ниже, показывает, где лежит композиция функций, цока же мы
отметим, что результат композиции может лежать в более высоком классе иерархии. Например,
2х (= Fv 22Х г F2, 2^ е F3 и т. д.
Лемма 2. Для любых положительных целых I и j если he Ft и ge Fh то f е Fi+h где f (х, у) = h (х, g (у)).
Доказательство. Докажем сначала, что если g и g' лежат в Fb то функция f'(x, у) = g(x) + gz(y) тоже лежит в Fj. Заметим, что размер ленты, необходимой для сложения двух чисел, равен числу ячеек, необходимых для их записи: мы можем писать сумму прямо над аргументами. Таким образом, а^ (х, у) = ag(x) + аДу), так как, чтобы вычислить fz(x, у), мы можем сначала вычислить g(x) и ^'(у), а затем сложить два результата. Отсюда, если Fj-х замкнут относительно сложения, то и Fj тоже замкнут. Так как F замкнут относительно сложения (см. приложение 2), мы получаем наш результат индукцией. Далее, если g^Fj и h^F, то fz(x, у) = /г (х, g(y)) лежит в Ръ так как по приложению 2 а^(х, g(y) )^ /(х) + l(g{y)) + К. Но это не превосходит суммы /(х) + ag^ + К» которая лежит в Fj-i, значит, f'^Fj, так как, чтобы вычислить fz(x, у), мы можем сначала вычислить g(y)t а затем вычислить h, примененную К X и g^).
Вернемся теперь к доказательству самой леммы. Рассмотрим сначала случай, когда г = 1, a j произвольно. По теореме 1(b) имеем ^(х, у)<аь(х, g(y)) + ag(y) +/(х), где акеРн ag^Fj_x. Из предыдущих рассуждений получаем, что первый член неравенства лежит в Fj, так что feFj+i, как и следовало ожидать. Теперь предположим, что лемма верна для i = k, j произвольно и что heF^. Тогда имеем й^еД, откуда по индуктивному предположению ан (х, g (у)) е Fk+j и, следовательно, f(x, у)е е F^+^+j, что и завершает доказательство.
Чтобы иметь обозначения для функций 2х, 22 и т. д., введем следующее определение.
Определение 2. Пусть f0(x) = х и fwU) — 2f/(x) для всех t> 1.
Покажем теперь, что не только fi^Fi, но и каждая функция из Fi ограничена ft в следующем смысле. Если f^Fit то для некоторой константы К f (х) < f^K max(x, 1)), где max(x, 1) есть наибольшее из чисел хх, ..., хп, 1.
Лемма 3. Для любого i> 1 и любой f е Fi существует целое К, такое, что f(x) < ft^K max(x, 1)) и аДх) < f^x (К шах(х, 1)).
Доказательство. Если f ^ Fx, то аДх") < К max(x, 1) по последней теореме приложения 2. Следовательно,
f (х) < 2'lf <x)1 < 2af(х) < 2* тах (х’ ° = л кК max (х, 1)).
Предположим теперь, что лемма верна для Ftl и докажем ее для Fw. Так как feFw, то а/(х) < f<(Kmax(x, 1)). Тогда имеем
f (х) < f, (Z [f (х)]) < f 1 (af (х)) < f, (А (/( max (x, 1))) =
= A+i^max(x, 1)), что и завершает доказательство этой леммы.
Теперь мы можем доказать лемму 4. Она утверждает, что ограниченная рекурсия!) не выводит из ST* Фактически она указывает конкретный класс F^ в котором будет лежать функция, определенная ограниченной рекурсией.
Лемма 4. Для любых положительных целых i и к если h е F^ ] ^Fk и g е F^h, тогда f е Р^ь где f определяется из g, h и j посредством ограниченной рекурсии. (Следуя Гжегорчику, говорим, что f определяется из g, h и j при помоги ограниченной рекурсии, если f (х, 0) = g(x), f (х, s(y) )=h(x, у, f (х, у)) и f (х, z/)^ <j(x, у); т. е. f определяется примитивной рекурсией из g и h и f ограничена j.)
Доказательство. По теореме 1(b)
аДх, у^ ^ 2 [max <тах а^ (х, хД(х, г)), а^(х)А + Цх, z/)l.
По лемме 3 и условию, что f(x, z) ^j(x, г), имеем «f (x, у)<
^ 2 [max [max A-i (/< max (x, z, tk kK' max (x, z)))), ^(x)] +/ (x, y)l.
L 12 < У1J
Отсюда мы получаем
af(x, y)<
<2 [max Vfi-\kK max (x, y, fk\K' max (x, y)))), ag(x)]+/(x, y)X < 2 [f^] ^Ktk kK' max (x, y))) + ag (x) +1 (x, y)].
!) Конечно, мы не можем надеяться на то, что объединение |J F^ за- z=i мкнуто относительно примитивной рекурсии; для вычисления функции, определенной при помощи примитивной рекурсии, по нашей схеме потребуется лента с длиной, зависящей от самой f, так как появится член аЦх, z, f(x, z)). Но так как мы имеем границу для f, то можем ограничить и а^. Такая граница для функции, определенной при помощи примитивной рекурсии, была введена еще Гжегорчиком [3] в понятии ограниченной рекурсии.
Покажем теперь, что мы ограничили а^ функцией из F^w-i- Во- первых, так как fi (Д' max(x,у)), очевидно, лежит в Fx, то по лемме 2 ЬД' max(x, у)) принадлежит Fk. Так как Fk замкнут относительно сложения, то K-fh^K7 max(x,у)) лежит в Fk; далее, по лемме 2 композиция h-\ с этой функцией лежит в F^_xw. Поскольку F^_wk = F(iW_x замкнут относительно сложения, мы получаем желаемый результат, откуда следует, что f е Fi+k.
Объединяя наши результаты, получаем следующую теорему.
Теорема 2. Класс Ж элементарных функций содержится в объединении 9" последовательности классов F^
Доказательство. Гжегорчик показал [3, теорема 2.5], что ^ — это наименьший класс функций, содержащий функцию следования и экспоненциальную функцию ху, который замкнут относительно явных преобразований, композиции и ограниченной рекурсии ). Как уже было замечено, каждый класс F^ содержит функцию следования; по леммам 1, 2 и 4 ур{ замкнуто отно- сительно трех необходимых операций. Чтобы доказать теорему, нам осталось только показать, что экспоненциальная функция принадлежит (J Fie Действительно, х^ лежит в F2 (применяем один раз ограниченную рекурсию к функции х-у, взяв в качестве границы 2 —мы опускаем непосредственные выкладки).
РАВЕНСТВО ^ И ^
Мы только что показали, что ^ ^ (J ^ = ^- Докажем те- i=i
перь обратное включение. Для этого мы проведем арифметизацию классов Ft в ^.
Выполненная в [1, стр. 56—62] арифметизация машин Тьюринга приводит к элементарному отношению Тп для каждого положительного целого пик элементарной функции2) U. Мы должны модифицировать эту арифметизацию, так как в [1] числовые функции кодируются наборами 1 и любой выход рассмат-
ривается как изображение числа п, если лента содержит п единиц, распределенных на ней любым способом. Наше же соглашение кодировать числа цепочками из 0 и 1 (т. е. в двоичной системе счисления) требует, чтобы выходная лента в точности состояла из двоичного представления числа: только в этом случае она рассматривается как числовой выход.
К счастью, нужное нам видоизменение этой арифметизации оказывается очень простым. Мы должны изменить только функции MR и Corn и отношение Fin. Получающаяся в результате арифметизация дает элементарные U и Тп, такие, что п-мест- ная функция f вычислима (в двоичной системе счисления) тогда и только тогда, когда существует число 20, такое, что для всех хь ..., хп
f (х) = и (min у [Tn(z0, х, у)]).
Чтобы выполнить это, переопределяем MR так, чтобы MR(n) было гёделевым номером ленты, которая состоит в точности из двоичного представления п; переопределяем Corn так, чтобы Согп(х) = п тогда и только тогда, когда MR(n) = х, и, наконец, переопределяем Fin так, чтобы Fin(x, 2) было верно тогда и только тогда, когда Fin(x, 2) верно в смысле Дэвиса, а также лента, входящая в описание с номером х, есть двоичное представление некоторого числа. Элементарные определения MR, Corn и Fin даны в приложении 1.
Предположим, что n-местная числовая функция f принадлежит Ft. Тогда, в частности, она вычислима, так что сухцест- вует 20, для которого
f (х) = и (min у [Тп (z0, х, z/)]).
Для того чтобы показать, что функция f элементарна, достаточно показать, что у, рассматриваемое как функция от х, ограничено некоторой элементарной функцией g. Ибо тогда
f (х) — и ^miny^g^xHTn^Zo, х, z/)]), где правая часть элементарна.
Чтобы показать, что существует элементарная функция g, которая ограничивает у, рассуждаем следующим образом. Максимальное число ячеек ленты, которые могут быть использованы на каком-нибудь шаге вычисления на данной машине Тьюринга Z, есть а^х). По лемме 3 это меньше, чем /г(х), где
/z(x) = fz_1(/(max(x, 1)),
и согласно [3] функция h элементарна. Машина Z имеет конечное число m символов, которые могут появляться на ленте. Таким образом, число различных лент, которые могут возникнуть при вычислении, меньше, чем тМх\ кроме того, у Z
конечное число внутренних состояний, например й. Следовательно, общее число мгновенных описаний Z (а значит, и число шагов 9), которые могут появиться в данном вычислении, меньше, чем j(x) = k • h(x) • mh(x\ где /(х) является элементарной функцией х. Предположим теперь, что ^(х)— максимальный из гёде- левых номеров мгновенных описаний, возникающих в этом вычислении. Тогда граница ^(х) равна) [Рг (/(х) ^^У^ , так как она превышает число всех последовательностей длины /(х), гё- делев номер каждого члена которых меньше ^(х). Следовательно, функция g элементарна, если функция q такова же. Чтобы показать, что q элементарна, допустим, что М — максимальный из гёделевых номеров всех внутренних состояний Z и символов, которые могут появляться на ленте Z. Тогда мы можем положить
^(х) = [Рг (А(х) + l)^]fl(x)+1.
Следовательно, g элементарна. Как мы уже говорили, отсюда следует, что любая функция f из Ft элементарна.
Таким образом, мы только что показали, что ^ = (J F^^. -i= 1
Вместе с теоремой 2 это дает нам следующий основной результат.
Теорема 3. Класс 9" предсказуемо вычислимых функций есть в точности класс элементарных функций, т. е. 9~ = $.
КЛАССЫ F И ^2
Класс 9Г предсказуемо вычислимых функций определяется в терминах сложности вычислений на машинах Тьюринга. Однако, доказав, что этот класс совпадает с классом $ элементарных функций, мы охарактеризовали ST в теоретико-числовых терминах, не ссылаясь на машины Тьюринга. В этом разделе мы закладываем основу для подобной характеристики каждого индивидуального класса Fv
В предыдущем разделе мы получили некоторые сведения о порядке роста и свойствах замкнутости классов F^ Ясно, однако, что полученных результатов не достаточно для того, чтобы охарактеризовать эти индивидуальные классы. Рассмотрим, напри-
*) Если бы число шагов в вычислении было больше /(х), то Z дважды достигла бы одного и того же мгновенного описания и поэтому стала бы повторять цикл мгновенных описаний и никогда бы не остановилась.
мер, функцию h из Fv, где h (х, у) = 2х • у. Тогда лемма 2 гарантирует нам, что результат подстановки fi вместо какого-нибудь аргумента h есть функция из Р2; в действительности же мы можем легко показать, что f^pY, где f (х, у} = 2х-2^ = Н^х, 2^. Конечно, это выполняется потому, что h зависит от своего второго аргумента скорее «мультипликативно», чем «экспоненциально», точнее, потому, что ан имеет вид ^(х, у) = д(х)+ К1{у) для некоторых q ^Р, К^О. Вообще имеем следующий результат.
Лемма 5. Предположим, что функция h е Ft обладает тем свойством, что существует q^Ft-Y, такая, что а^х, i/)^^(x) + ■VKHyY Тогда функция f, определенная посредством f(x, z) = = h^x, g(z)), принадлежит Fb если только g принадлежит F b Далее, если g, h и j принадлежат Ft и а^Дх, у, z)^q(x, y^-V Л-КЦ2) c qeFH, то функция f, определенная из них ограниченной рекурсией, принадлежит Ft.
Доказательство.
«f (х, z) < ah (х, g(z)) + ag (z) + / (x)<
< у (x) +/(Zg (z) + аДг) + / (x)<
<y(x) + (7< + 1) аг(г) + Z(x),
где q, ag e F,_i и поэтому f e Ft.
Qf (x, z/X 2 [max [max (ah (x, 2, f (x, z))), ag (x)] + I (x, y)l ^ L Lz<yJJ
^ 2 [max [max (y (x, z) + Kit (x, z)), ag (x)l +1 (x, y)[ ^ L [z < уJJ
1^2 [max |'max(y (x, 2) + Klj (x, 2)), аг(х)} +1 (x, z/)j
^2 |max pnax(<7(x, z) + 7<a/(x, z)), a#(x)j +/(x, y)j.
Здесь мы воспользуемся леммой 3, чтобы получить монотонные функции, и, продолжая, получим
Of (х, у) ^ 2 [max [max lji-\ (Ki max (x, z)) +
L lz<y
+ Kfi-i<K2max(x, z))), ^(x)^ +/(x, y)j <
< 2 [max [/,_! (Ki max (x, y)) +
+ Kti-\ kK2 max (x, y)), ag (x)] +1 (x, y)].
Так как max(f, G)^,F + G, мы получаем [eFb что и требо- валось показать.
Наше описание каждого F t будет существенно использовать функции с «мультипликативным» свойством, встречающимся в посылках леммы 5. Сейчас мы сконцентрируем наше внимание на особенно полезном подклассе F' класса Fx (который, как мы покажем, есть в точности класс ^)), все элементы которого обладают этим «мультипликативным» свойством.
Определение 3. F' есть класс всех вычислимых функций f, для которых размер ленты, используемой в вычислении f(xi,..., хп), не превосходит произведения некоторой константы Kj на /(%!,..., xn). Т. е. для всех Хь ..., хп
^f ^h • • • * Х^ ^ (^1Р • • * P-^fZ-^lP • • • Р-^п • • • -^1Р • • • P-^n) =
= Kf (I (^i) + I (x2) + ... + I (xn) 4- (n — 1)).
Приступим к получению различных свойств замкнутости F\
Лемма 6. Класс функций F' замкнут относительно явных преобразований, композиции и ограниченной рекурсии.
Доказательство, (а) Пусть g е Р, аё(хь ..., х^^ ^КДхь .хт) и f(xb ..., x„) = g(^, ..., gm). Тогда по теореме 1
Qf С^Ь • • • > Хп) ^ KJ (^1> • • • > ^т) + (Хь • • • > Х„)>
и так как Ц^, ..., ^^СЦх^ ..., хп) (для некоторой константы С, зависящей' от того, какие ^ являются константами, а какие — переменными), мы имеем, что
^f (*1. • • • > xj ^ (KgC + 1) I (хь ..., xj.
Таким образом, в качестве Kf можно взять ^C+l.
Пусть g, h е F', ag ^ Kgl, ah < KJ и f определяется посредством f(x, y) = /i(x, g^)). По теореме 1 мы имеем (используя, что I (х, у) = I (х) +I (у) +1 и 1g (у) < ag (у) < KJ (у))
af (х, у) < [/ (х) + / (у) + 1] + max [/ (х) + Kgl (у), Kh V (х) +
+ 1g (У) + 1)1 < Г (х) +I (у) + 1] + Kh V (х) + KJ (У) + 1] <
<[(^ + 1)^]Нх, у).
Итак, К) можно взять равным (Кь. + l)^g-
Пусть g, h, j е F' и Kg, Kh, Kj — связанные с ними константы. Пусть f определяется из g, h, j при помощи ограниченной рекурсии. Тогда по теореме 1
af (х, уХ 2 [max [max (AV (х, 2, f (х, z))), Kgl (x)j + / (х, y)j <
^2 [max [max(^/(x, z) + KhKjl (x, z)) + Kh. Kgl (x)l +1 (x, y)l ^
L2 < уIJ
[max VKJ (x, y) + KhKjl (x, y) + Kh. Kgl (x)] +1 (x, y)] <
< 2 [max (Kh (Kj + 2), K^ 4- 1] - Z (x, y).
Таким образом, мы можем положить Kt равным 2[max (Kh(Kj + 2) ЛД + 1].
В качестве примера использования этой леммы мы можем показать, что сложение и умножение суть функции из F'. Очевидно, что функция следования вычисляется на машине Тьюринга, использующей ровно на одну ячейку больше, чем необходимо для записи входа. Далее, сочленение 9 тоже принадлежит F\ а сложение определяется из функции следования посредством рекурсии, ограниченной сочленением. В свою очередь умножение определяется из сложения посредством рекурсии, ограниченной сочленением, так что сложение и умножение принадлежат F'.
Для того чтобы объединить наши сведения о классе F\ формулируем следующую теорему (это просто краткое изложение леммы 6 и предыдущего абзаца):
Теорема 4. F' содержит класс S^ (где &2 есть наименьший класс, содержащий функции следования и умножения и замкнутый относительно явных преобразований, композиции и ограниченной рекурсии).
Охарактеризуем теперь класс F' без ссылок на машины Тьюринга или ограниченные вычисления. Мы только что показали, что ^2 является подклассом F'. Оставшаяся часть этого раздела Посвящается арифметизации F' в пределах ^2 и, следовательно, Установлению равенства этих двух классов. Так как определение является чисто теоретико-числовым, то это дает нам желаемое описание Р.
!) Сочленение (двоичное) есть функция, которая, будучи применена к Числам с двоичными представлениями апап-\ ... а^о и bmbm_x ... bxb0. Дает число, двоичное представление которою есть rtntzn_1 ... axaobmb гп_х ... ... bxb0. Например, сочленение 10 и 11 есть 1011, а сочленение 0 и 11 есть 011 — число 3.
Мы начнем с рассмотрения границы вычисления функции f, налагая на нее требование принадлежать F\ Чтобы фиксировать обозначения в этом обсуждении, предположим, что машина, вычисляющая f, имеет гёделев номер 2, обладает к внутренними состояниями (конфигурациями) и использует на ленте три символа). Если аргументы суть xi,...,xn, то длина наибольшей ленты, которая может встретиться, есть К- Цх\,..., хп) (по определению F'y Поскольку каждая ячейка ленты может содержать один из трех различных символов, число возможных лент, которые могут встретиться в вычислении f (хь ..., хп), не больше Зк*1^хп\ Таким образом, число возможных мгновенных описаний меньше, чем 3K*Z ^p х^ • к • Цхь .хп\ Однако мы можем заменить эту границу на
[U1 + 1) . . . (х„ + 1 )] /< . 22™-0 . к . [х, + . . . + Хп + (п - 1)], которую мы будем обозначать через bn< z(xi,..., х„), ибо ^i кЧ*») <[2z(^i^л)]2^
= [2Z№) ... 2Z(xn)j2./< . ^Л-Гр.^
< [2" • (x, + 1) ... (x„ + I)]2 * • 22'КЛп'х\
Так как Ьп>г получена с использованием только сложения и умножения, то функция bn> 2(xi,..., хп) принадлежит, очевидно, ^2.
Чтобы использовать включение Ь^ в ^2, мы следующим образом переделаем нашу арифметизацию. Мы заменим обычное представление f (хь ..., хп)
U (min у [Tn(z, хь .хт г/)])
для этого фиксированного значения 22) на
Un.2(XV Хп' minZ/[^.^(-^l* •••• Хп’ Ж
Здесь отношение Тп, 2 имеет место для хь ..., хт у тогда и только тогда, когда у есть число мгновенных описаний вычисления, начинающегося с (хь ..., хп\ на машине с номером 2. Далее, Un,z есть число на ленте в у-м мгновенном описании этого вычисления (если на ленте представлено некоторое число,
О-в противном случае). Так как по сказанному выше Тп, г (х, у) означает, что у <Ьп,г^х\ имеем
f (Х) = UV г ^ min У < Ьп, г (Х) | ^ ЛХ, ^1 )•
Таким образом, как только мы сможем показать, что Un, г и Tn, z лежат в ^ и связанном с ним классе ^ отношений1) соответственно, мы покажем, что f лежит в ^2 и вообще Ргг^.
Чтобы дать точные описания Тп,2 и Un,z, рассуждаем следующим образом. Предположим, что мы провели арифметизацию машин Тьюринга в пределах класса ^2 функций и класса ^2 отношений. Предположим, в частности, что мы определили функции Initn, Yield и Decode в ^2 и отношение Fin в ^2 со следующей интерпретацией. Initn (хп ... , xj есть гёделев номер мгновенного описания (некоторой) машины Тьюринга в ее начальном состоянии, когда она рассматривает в стандартном положении вход (хп .. . , xj на ленте; Yield (х, 2) есть (гёделев) номер того мгновенного описания, которое непосредственно следует за мгновенным описанием с номером х на машине с номером 2; Decode (х) есть число, изображенное лентой заключительного мгновенного описания, (гёделев) номер которого есть х (если эта лента является двоичной записью числа, в противном случае Decode (х) есть 0); и, наконец, Fin(x) верно тогда и только тогда, когда х есть (гёделев) номер заключительного мгновенного описания (в котором машина останавливается).
Читатель, знакомый с работой Гжегорчика [3] или Смульяна [8] и обладающий небольшими познаниями в области перечислимых множеств, смог бы самостоятельно убедиться в том, что такую арифметизацию можно выполнить, хотя обычная арифметизация при помощи степеней простых чисел выводит1) из ^2. Детально такая арифметизация проводится, в, приложении 3.
!) Класс ^2 определяется и исследуется в [3]. Его можно определить как класс всех отношений, характеристические функции которых лежат в ^2. (Мы уславливаемся обозначать через X* класс отношений, характеристические функции которых лежат в классе X, для любых классов X функций.)
Если даны функции Init„, Yield, Decode и отношение Fin, мы можем построить функцию Un, z и отношение Tn,z следующим образом. Для каждого фиксированного значения г определяем функцию Yieldz, полагая Yieldz(x) = Yield (х, г). Так как ^2 замкнут относительно явных преобразований, эта функция лежит в S2. Теперь при помощи ограниченной рекурсии, примененной к Yieldz, получаем H^ z, значение которой от аргументов (хь...,хп>у) есть мгновенное описание у-го шага вычисления на машине с номером г, начинающегося с ленты, представляющей n-ку (хь ..., хп);
Нп,А"^ 0) = Init„(х),
Н„,z (х, s (у)) = Yieldz (Я„, z (х, у)),Нп, г (х, у) < Ьп, г (х).
Здесь ограничение на Нп>г вытекает просто из того требования, что длина используемой ленты меньше, чем К-Цх). Отсюда следует, что наибольшее число, которое может встретиться на ленте, меньше 2K‘lw, что в свою очередь меньше, чем 6n,z(x).
Теперь мы определим отношение Тп, 2, полагая
Тп, г (х, у) = Fin \Нп, 2 (х, у)].
Поскольку НП12 принадлежит ^2, мы получаем Тп,2^^. Наконец, Un, 2(х, у) равно такому числу, которое отвечает мгновенному описанию с номером Hn,z^x, у\ Таким образом, мы полагаем просто
Un, 2 (х, у) = Decode \Нп, 2 (х, у)]
и получаем, как и ожидалось, Un, 2(х, у)е^2. Этот результат мы подытожим в теореме 5.
Теорема 5. Функция f принадлежит F' тогда и только тогда, когда существует число z, такое, что для всех Х\, ..., хп
f (х) = и'п, г (х, min у < bn, г (х) Vin, г (х, у)] ).
Доказательство. Если такое z существует, оно является номером машины Тьюринга, вычисляющей функцию из F'. Однако по определению Un, 2 эта машина вычисляет функцию f. Обратно, если f^F', существует машина, например, с номером z, которая ее вычисляет, и опять по определению Un. 2 и Тп,? теорема выполняется.
Следствие. S2 = F\
Доказательство. По теореме 3 имеем ^гРг. Теорема 5 показывает, что Fr так как Un.z лежит в ^2 и Tnt z лежит в ^.
ОПИСАНИЕ КЛАССОВ Ft
В предыдущем разделе мы заявили, что, прежде чем охарактеризовать классы F^ мы получим подклассы классов F^ которые удовлетворяют условиям леммы 5 и, кроме того, содержат такие функции, как 2х-у. Теперь, когда мы изучили класс F\ мы в состоянии это сделать. Именно, мы видим теперь, что сам F' удовлетворяет условиям леммы: любая функция из F' зависит «мультипликативно» от каждого аргумента. Зафиксируем номер некоторого аргумента (например, й-й) и расширим F' насколько это возможно посредством таких применений явных преобразований, композиции и ограниченной рекурсии, которые сохраняют эту «мультипликативную» зависимость от й-го аргумента. Таким образом, с каждым классом X, содержащим F\ мы связываем подкласс Хк (для любого й^1), который состоит из функций, зависящих «мультипликативно» от своих к-х аргументов.
Определение 4. Если дан класс X функций, содержащий класс F\ определяем подкласс Хк класса X, требуя, чтобы функция f е X принадлежала Хк тогда и только тогда, когда выполняется одно из следующих условий:
(a)
(b)7U1Xn) = g^xU) для h^n, geX и далее g^X для каждого I такого, что ^t = xh;
f(xb .хь ух, .... </m) = А(х„ ..., xb g^ ... Ут», где либо (I) £</ и ИеХ'', либо (II) k = / + m, heXl+1 и geXm;
Кхь .... хк-и 0) = g(xx, ..., xk_x\
f(xb ..., x6_b s(y)) = /i(xixb-x, у, Hxiхк-х, у)), f(xхк_ь yKi^хк-х, у),
где geX, h^Xk()Xk+l и j^Xk.
Лемма 7. Если f^Fi, то af(xi, ..., x^^q^Xx, ..., хк_г, хк+1, .... хп) + К • 1(хк) для некоторого целого К^О и некоторой q^Ft_x.
Доказательство. f^Fi означает, что либо feF', либо она образуется из функций Е\ при помощи правил (Ь), (с)
или (d). Если f^F\ то лемма, очевидно, выполняется, так как а^ (х, у, 2)<К • [/(шах(х, у, 2))] <К • [/(х, у, 2)] =
= K-V (х, у) +!] + /<• 1<х\
Доказательство завершается непосредственно индукцией по числу применений (Ь), (с) и (d) в определении f.
Из лемм 5 и 7 следует, что если n-местная функция h лежит в Fl и g лежит в Fb тогда функция f принадлежит Fb где Цхъ .хп_ь уь ..., Ут^Н^, ..., ^-b ^^ь • •> Ут))- Далее, если (п + 1)-местная функция h^Fl^ и g,j^Fb тогда функция f также принадлежит Fb где
f(xh .xn_b 0) = g(xb .хп_х\
f{xb xn_b s^ = h^xx, xn_v У, Цхх, хп_ъ у^ и
fUi, ...» xn_b yXj(xx, .xn_b yY
Чтобы подытожить эти результаты, введем следующие два определения и затем сформулируем теорему 6.
Определение 5. Будем говорить, что класс X (функций) замкнут относительно подстановок в функции класса У, если для любых h^Y и g^X будет f^X, где f(x, y) = /z(x, g^Y
Определение 6. Будем говорить, что класс X замкнут относительно ограниченной рекурсии по отношению к функциям из класса У, если для любых h^Y, g, j^X будет f^X, где
f (х, 0) = g (х),
f(x, s (у)) = й(х, у, f(x, у)),f (х, у) < / (х, у).
Теорема 6. Каждый класс F{ содержит класс ^2 и функции fxof для любой f^Fi_x. Далее, он замкнут относительно явных преобразований, подстановок в k-местные функции из F1 и ограниченной рекурсии по отношению к (й + 1)-местным функциям из Fi^1 для всех к^\.
Доказательство. Принадлежность fxof классу F^ следует из леммы 2. Замкнутость относительно явных преобразований есть результат леммы 1. Для доказательства остальных утверждений комбинируем леммы 5 и 7.
Следствие. Fi замкнут относительно подстановок в функции из ff2 и ограниченной рекурсии по отношению к функциям 82.
Свойств классов Рг, описанных в теореме 6, достаточно, чтобы охарактеризовать эти классы. Мы сделаем это, определив сначала классы F^ которые, как мы потом докажем, в точности совпадают с классами F^.
Определение 7. Для каждого положительного целого i класс Ft есть наименьший класс X функций,-включающий ^2 и содержащий функции fi of для любой f^Fi-ъ если г > 1, или f^F, если t=l, который замкнут относительно явных преобразований, подстановок в fe-местные функции из Хк и ограниченной рекурсии по отношению к функциям от (й + 1) аргумента, лежащим в ЛТ^1, для всех k^ 1. (^ определены корректно, поскольку существуют классы X, удовлетворяющие этим условиям, и, так как Хп П Yn = (X fl У)п, пересечение таких классов снова удовлетворяет условиям.)
Определение 7 предназначено для того, чтобы отразить свойства классов Ft, перечисленные в теореме 6, так что мы немедленно получаем, что Ft ^ F^ Объединим непосредственные следствия из наших предыдущих результатов и этого определения.
Теорема 7. Для всех i^ 1 Ft ^ Fb Ft cz Fm, F^^2 и Ft cz ^.
Доказательство. F^Fi по теореме 6, F^F^i no определению, ^2 cz Ft снова по определению. To, что Ft cz очевидно, так как умножение и 2х лежат в_^.
Перейдем к доказательству того, что Рг = F^. Итак, каждая элементарная функция лежит в некотором Рь Заметим кстати, что этот результат дает новое описание класса ^ в терминах специального вида подстановок и рекурсий, появляющихся выше в определении 7.
Чтобы_завершить описание классов Fb мы хотим доказать, что F< ^ Ft. Для этого мы берем за образ_ец доказательство того, что F' ef-, т. е. мы определяем Tn, z^ (F^ и Un, 2, Ь1п,2^ Ft и показываем, что если f^Fb то
f (х) = Un, г (х, т\п у ^Ьп, г(х)[^,г(х, у)]).
Мы покажем в действительности, что
min у < Ьп, 2 (х) [Тп, 2 (х, у)]
определяет функцию из F, и что U‘MeFi+1. Таким образом, будет показано, что f(x) есть результат подстановки функции из Ft в (/г + 1)-местную функцию из Р"+1 и, следовательно (по определению 7), Цх) должна лежать в Р{. Докажем сначала
теорему, необходимую для того, чтобы установить эти включения О-
Лемма 8. Для любой f е F^1 функция F, значение которой от (хь ..., хп, у) равно количеству z, не превосходящих у и таких, что f(xx, ..., хп, 2) = О, принадлежит F^V
Доказательство. Начнем с определения функций р, — и т из ^2.
p^s^ = x р^^хp^s^ = x р^^хх — 0 = хх — s (z/) = р (х — у) х — у^х т (х, 0) = s (х)т (х, S (у)) = X т (х, y^s ^ Так как feF?+lх — 0 = хх — s (z/) = р (х — у) х — у^х т (х, 0) = s (х)т (х, S (у)) = X т (х, y^s ^ Так как feF?+lх — у есть 0, если х^у, и х — у в противном случае.х — у есть 0, если х^у, и х — у в противном случае.т (х, у^ есть s (х), еслиу = 0, и х в противном случае.где. Хп, S^y^Yт (х, у^ есть s (х), еслиу = 0, и х в противном случае.где. Хп, S^y^Yто и функция teFi + x , хп, у, z) = r(z, f(xb . .то и функция teFi + x , хп, у, z) = r(z, f(xb . .р^ есть число, предшествующее х.
p^s^ = x р^^х
p^s^ = x р^^х
х — 0 = х
х — s (z/) = р (х — у) х — у^х т (х, 0) = s (х)
т (х, S (у)) = X т (х, y^s ^ Так как feF?+l
х — 0 = х
х — s (z/) = р (х — у) х — у^х т (х, 0) = s (х)
т (х, S (у)) = X т (х, y^s ^ Так как feF?+l
х — у есть 0, если х^у, и х — у в противном случае.
х — у есть 0, если х^у, и х — у в противном случае.
т (х, у^ есть s (х), если
у = 0, и х в противном случае.
где
. Хп, S^y^Y
т (х, у^ есть s (х), если
у = 0, и х в противном случае.
где
. Хп, S^y^Y
то и функция teFi + x , хп, у, z) = r(z, f(xb . .
то и функция teFi + x , хп, у, z) = r(z, f(xb . .
Теперь определяем F при помощи ограниченной рекурсии по отношению к t, так что по определению 7 FeFi+x:
F(xb .х„, 0) = 1 — f (xb .хп, 0),
F (xb ..., xn, s (z/)) = t (xb ..., xn, y, F (x,x„,z/)),
F(xb .x„, y^<s(yY
To, что F — искомая функция, следует из замечаний, что I— г есть 1, если 2 — 0, и 0 в противном случае и что т прибавляет 1 тогда и только тогда, когда ее второй аргумент есть 0.
Теорема 8. Если f^Fi+\ то функция g, определенная посредством g(xX1_. .xm у^ = min z ^у [f (xb ..., xn, z) = 0], также принадлежит F^V
Доказательство. По лемме 8 F^F^1. Применяя лемму 8 к самой F, мы получаем, что функция G е jF?+1, где G(x, у) равна количеству г, меньших, чем у + 1, для которых F ^х, г) = 0.
’) Мы следуем методу, использованному в [3] для доказательства того, что ограниченная минимизация допускается в широком множестве классов,
Но Т(х, 2) = О означает, что нет таких ^^2, для которых ^x,w^=0. Таким образом, G(x, у) есть в точности количество 2, меньших, чем у+ 1, и таких, что для каждого ^-<2 f(x, w)=h Ф 0, т. е. G(x, у) есть наименьшее 2^ у, такое, что f(x, 2) = О, если такое 2 существует, и у + 1, если такого г не существует. Чтобы изменить G так, чтобы G(x, у) = 0, если такого 2 не существует, определим функцию о е ^2.
о (х, 0) = х
о (х, s (z/)) = 0 о (х, у^хо (х, s (z/)) = 0 о (х, у^ха (х, у) есть х, если у = 0, и 0 в противном случае.
о (х, s (z/)) = 0 о (х, у^х
о (х, s (z/)) = 0 о (х, у^х
Заметим теперь, что G(x, у) — у есть 0 тогда и только тогда, когда G(x, у^^-у. Следовательно, o(G(x, у), G(x,y)~y) есть в точности нужная функция g. Отсюда g лежит в Ft*1 по определению.
Следствие. Если R^^F^^ и g^Fb то h^=Fb где
h (хь ..., хП) уь ..., у^ = min 2 < g ^ух. ..., у^ [/? (хь ..., хп, 2)].
Доказательство. По определению ^F^X, R имеет характеристическую функцию f^F^V Значит, функция / лежит в F^X где /(хь ..., хп, у) = min 2^ у \R (xb ..., хп, 2)]. Но к есть результат подстановки g _вместо (п+1)-го аргумента /, так что по определению 7 А ее Fb
Это следствие позволит нам заключить, что n-местная функция f лежит в Fb как только мы покажем, что
f (х) = Un, г (х, min у < Ьп, г (х) \Т1п, 2 (х, у)]),
где Un, z, bn, z и Тп,2 лежат в F^X Ft и (F^xX соответственно.
Определяем теперь bn,2, Un, г и Тп, 2 аналогично определениям Ьп, 2, Un, г и Тп, z, данным в конце предыдущего раздела, и показываем, что они лежат в нужных классах. Предположим, что мы рассматриваем вычисление некоторой функции из F^ на машине Тьюринга с номером 2 с к (внутренними) состояниями и тремя символами, которые могут появляться на ее ленте. Если даны аргументы (xi,...,xn), то размер использованной ленты меньше, чем ft-\ (К max(xi, . xn, 1)), по лемме 3. Отсюда число мгновенных описаний вычисления меньше, чем
З^-1 ^^^ 1п . к • ft^x (К max(x, 1)).
Это в свою очередь меньше, чем величина
[fi(^(^i + ••• + хп + О)]2 • & е ft-l (^Ui + ••• + ^+1)),
которую мы назовем bVz- Так как умножение есть функция из ^2 и каждый Ft замкнут относительно подстановок в функции из ^2, то каждый класс Ft должен быть замкнутым относительно умножения. Поэтому так как t\W^xx-V... . . . +Х„+ОД—^^!) . . . /,(х„) • 2]^, то ft (К (х, 4- ... +х„+1)) лежит в Fx. Следовательно, fi(K(xx + ... + хп 4- 1)) лежит в Ft по предложению в определении 7, гарантирующему, что fxof^Ft для любой f^F^x. Используя замкнутость F{ относительно умножения, получаем, что Ьп.г^Р^
Теперь мы можем определить функцию HniZi где Нп, 2(х, у^ есть номер мгновенного описания на у-м шаге машины с номером 2, если задан вход (хь ..., х^. Это определение есть в точности результат замещения границы ЬП1г в Нп>г на Ьп.г*
Hn,z<x. 0) = Init„(x),
Нп. г(х, s(y}) = Yieldz(//^.z(x, yj),Нп, г (х, у) < bn, г (х).
Так как Yield^^ S°2 и bn,z> очевидно, л_ежит в F”+1, эта рекурсия определяет Н1п,г как функцию из F"+1 (по определению 7). Теперь определяем Uln,z и Tn.z. где Un, 2(х, у) есть число на ленте в у-м мгновенном описании этого вычисления, и Тп,г(х, у) верно тогда, когда у есть количество мгновенных описаний в вычислении,
Un, г (х, у) = Decode (Нп. г (х, у)),
Т\, Z (х, у) = Fin ^Н^, г (х, у)).
Так как функция Decodes^2 и отношение Fine^, имеем Un,t F^' и Tn. e(f"+1)„. Таким образом,
min у < bn, z (х) [Т1п, г (х, у)]
определяет функцию из Fj по следствию из теоремы 8. Получаем теорему 9.
Теорема 9. Функция f лежит в Ft тогда и только тогда, когда существует число г, такое, что
f(x) = Un,z(x, тту^Ь^г^Тп^х, у)]).
Следствие. Для всех положительных целых') i F^ = Ft*
КЛАССЫ (F,)* ОТНОШЕНИЙ
Мы знаем, что класс Ft строго включен в Fw и что
(J Рг = ^. Поэтому мы знаем также, что для соответствующих /=1
классов отношений имеет место (F^ (Л+ik и и^^* = ^*6 i = l
Сейчас мы покажем, что в действительности включение (.F^ в №+1)* является строгим. Таким образом, эти классы подразделяют класс элементарных множеств (и отношений) на классы согласно трудности разрешающей процедуры.
Часто говорят, например, что разрешающая процедура Тарского для теории первого порядка действительных чисел [9] сложнее, чем метод истинностных таблиц для исчисления высказываний. После того как мы покажем, что классы (Ft)* образуют подразбиение элементарных множеств, мы сможем уточнить это утверждение. Нужно заметить только, что метод истинностных таблиц принадлежит классу Fx, а процедура Тарского (согласно расчетам автора) принадлежит) F&. Это кажется вполне достаточным подтверждением распространенного
!) Это следствие дает доказательство того, что ^ = (J Fb без ссылок /=1
на наши рассуждения в разд. 3. Мы показали в теореме 2, что ^ ^ ^J Ft, и
сомнения относительно программирования последнего разрешающего метода и надежды на немедленные результаты).
Прежде чем показать, что существует отношение, принадлежащее (Fi+1)*, но не принадлежащее (Рг)^ заметим, что, хотя функция fi+i не лежит в Р^ отношение Цх, y)Vfw to =у\ лежит в (^г)^. Действительно, оно лежит в ^, что читатель может легко проверить. В этом смысле сложность ft зависит почти исключительно от скорости ее роста. Если дано достаточно ленты, чтобы написать ответ, то вычисление лежит в ^2. Однако характеристическая функция, принадлежащая Fw и не принадлежащая Р^ является в строгом смысле более сложной, чем функция из Ft. Дополнительная длина ленты в действительности используется для вычислительных целей, а не просто для того, чтобы записать большой ответ.
Чтобы показать, что (Р^^ф (/^i) *, мы строим в Fw характеристическую функцию Фг со следующим свойством. Ф?(2,х) принимает значение 0, если f(x)=O, где /(х) —функция, вычислимая на машине Тьюринга с номером 2, и фг(2,х) равна 1 в противном случае. Далее, с помощью обычной процедуры диагонализации показываем, что Фг ^ Р^ так что отношение, характеристическая функция которого есть Ф2, лежит в ^F^y)^ но не лежит в (Ei)*.
Чтобы определить Ф2, мы используем арифметизацию из приложения 3 для получения нового Т-предиката и функции U, которые являются функциями от 2. Начнем с определения ограничивающей функции Ьп из Fw для числа шагов в вычислении некоторой гг-местной функции из Р^ Мы могли бы сделать это, положив просто
Ьп (2, х) = bn, 2 (х) =
= Vf i (К • (Х1 + + Хп + 1) )]2 • к • f^Y (/( • (X! + . .. +xrt+l)), где К и к суть числа, зависящие только от 2. Так как каждой машине Тьюринга соответствует бесконечно много гёделевых номеров2), мы можем выбрать гёделев номер 2 так, что К и к будут оба меньше 2. Следовательно, мы можем заменить каждое из них на 2 и использовать для ограничивающей функции определение
Ьп^> Х) = (2 * (Х1 + • • • + + I))]2 " 2 ' fi-1 • (Л + + Хп + 1)).
Так как Fx замкнут относительно умножения, г(хх + .. . + хп + 1) лежит в Fv Таким образом, /г(2-(х^.. .+xn+1)) принадлежит Fw по лемме 2, и, значит, bn^Fi^x.
Определим теперь Нп, Тгп, Uln и функцию Ч^ следующим образом:
НЦг, х, 0) = Initrt(x),
Нп (г, х, 5 (у)) = Yield (я^ (2, х, у\ 2),
Hn(z, х, у)< bn^. х),
Un (2, х, у) = Decode (Я„(2, х, у)\
ТЦг, х, у) = Рш(Нп<2, х, у^,
Ч^(г, х) = U^z, х, min #<Х(2, х)[т„(2, х, у)]).
Если f^Fi, то по лемме 3 существует число К, такое, что ^(x)<f2_i(/<-max(x, 1)). Тогда по сказанному выше f вычисляется на машине Тьюринга, гёделев номер 2 которой больше К. Число шагов в вычислении f(x) меньше, чем Ьп,2 (х), так что для любой функции f е F^ существует число 2, такое, что
f(x) = ^(2, X).
Определим теперь характеристическую функцию Фг (от двух аргументов), полагая
Ф/ (2, х) = о (1, 1 — ^ (2, х)),
так что имеем ФД2, x) = min(l, /(х)), если машина с номером 2 вычисляет одноместную функцию f. Далее, Ф^р^х» так как Ч^ была построена в Fi+V
Чтобы показать, что Ф^РЬ предположим противное. Тогда функция 0 также лежит в Fb где 0(х) = 1 — Ф/(х, х), и, так как 0 есть одноместная функция, принимающая значения 0 или 1, существует 20, для которого 0(х) = Чг}(2о, х) = ФД20, х).
В частности, 0(2О) = ФД20, 20), но по определению 0(2о) = = 1 — Фг(20, 2О)=#Фг(2о, 20), что является противоречием. Это доказывает сформулированную ниже теорему 10, так как отношение, характеристической функцией которого является Фг-, лежит в (Fi+i)*, но не лежит в (F^^.
Теорема 10. Для каждого положительного целого i (Fi)* строго включен в {Fi+X)^
ПРИЛОЖЕНИЕ 1
ЭЛЕМЕНТАРНЫЕ ОПРЕДЕЛЕНИЯ MR, CORN И FIN
В [1] вводится соглашение обозначать So символом р, а 1 вводится для Si. Условимся обозначать 0 через S2. Так как символу 5г- соответствует в [1] гёделев номер 24г’+7, то р, 1 и 0 получают гёделевы номера 27, 211 и 215 соответственно. Следуя гёде- левой нумерации, использованной в [1], имеем, что каждой ленте, состоящей из р, 1 и 0, соответствует единственный номер; например, лента 10р1 имеет гёделев номер 211 • З15 • 57 • 711. Используя функцию сочленения введенную в [1], мы можем записать этот номер как 211 *215 *27 *2И. (Мы будем свободно использовать здесь эти соглашения.)
Чтобы определить MR, введем сначала элементарные множества (1-местные отношения) Zeros и Ones и элементарную функцию S. Первые два говорят сами за себя, последняя, будучи применена к гёделеву номеру ленты, представляющей п, будет выдавать гёделев номер ленты, представляющей п+1:
Zeros(x) ^(Vy^^^(у) = 1 А (Зг, ^)^х[2 * у *w = х\->у = 215], OnesM^tVy^^ty)- 1 А (32, ^х[2 * у * w = х]-> у = 2й], S (х) = min у ^ (х * х * х) {(Эг)^ [2 * 215 = х А 2 * 2Н = у] V
V (Эг, w, v)^y [г * 215 * w = х A Ones (w) A Zeros (v) A
A 2 (^) = 2 (v) A 2 * 211 * -о = у] V
V (3v)^y[Ones (x) A Zeros (v) A 2^ = 2(v) A2H*o = y]).
Здесь «^(x) есть число символов в последовательности с гёде- левым номером х (как определяется на стр. 58 в [1]).
Определим теперь MR при помощи ограниченной рекурсии:
MR(0) = 211,
MR(n+l) = S(MR (n)),MR(n)<(Pr(n+ l),5)n+'.
Тогда Corn определяется просто как MR-1, т. е.
Corn (х) = min у ^ х [MR (у) = х].
Сделав одно изменение в определении Fin, получаем
Fin(x, 2) ^ ID (х) А ТМ(г) Д (3F, G, г, s)<x((x = F * Y * 25 * G) AA IC H A Al (s) A (3//)<x [MR (y) = F * 2% G] A
A (Vn)c^(2)[(lGZ(nGZ2) ^ г) V (2GZ(«GZ2) ^ s)]}.
ПРИЛОЖЕНИЕ 2
МАШИНЫ ТЬЮРИНГА И КОНЕЧНЫЕ АВТОМАТЫ
В этом приложении мы даем формальные определения машины Тьюринга и вычисления на такой машине. Затем мы определяем «вычисление на машине Тьюринга, представляющей собой конечный автомат», и класс F числовых функций, вычислимых таким образом. Мы завершаем это приложение доказательством некоторых свойств F, которые необходимы для основной части этой статьи.
Определение 1. Алфавит — это конечное множество, элементы которого называются символами и которое всегда содержит в качестве элемента символ |3 (так называемый пустой символ).
Определение 2. Машина Тьюринга Z в алфавите А есть четверка (S, m, s0, f), где S — конечное множество, s0, f — элементы S и т\ А X (S — {/}) -> А X S X {1, — 1, 0}. Мы называем S множеством состояний Z, s0 — начальным состоянием, f — заключительным состоянием и т — функцией перехода.
Определение 3. Если дана машина Тьюринга Z=(S, т, s0, f) в алфавите Л, определяем мгновенное описание Z как тройку (/, s, р), где t — конечная последовательность элементов из А, р — положительное целое, не превосходящее длины /, и s — элемент из S. Мы называем t лентой машины Z, р— номером воспринимаемой ячейки и s — состоянием Z.
Лента машины Z может удлиняться вправо и имеет фиксированную самую левую ячейку, обозначенную числом 1. Возможность удлинения ленты вправо является причиной появления трех последних пунктов в определении операции-^, приведенном ниже. Эти пункты разрешают прибавление дополнительной ячейки с пустым символом в ней, если машина сходит с правого конца ленты, а также обеспечивают выбрасывание из рассмотрения самого правого пустого символа, если машина его больше не воспринимает. '
Определение 4, Если дана машина Тьюринга Z=(S, т, s0J) в алфавите Д, определяем операцию —► между мгновенными описаниями Z следующим образом. Х-> У (Z) означает, что выполнено одно из следующих условий (здесь X и У—мгновенные описания Z и а^ Ь^— символы алфавита А для всех положительных целых С);
X = (^1. . .а^ s, р) и У = (61- • .bm s'. р'\ причем at = 6У для всех / ^ р, т^ар, s) = ^bp, s', р' — р) и либо р<п, либо р-р'
X = (^ ... ап_хап, s, п} и Y =Цах ... an_xbn^ s', п + 1), где т^, s) = (bn, s', 1).
X = (^ ... ап_хап, s, п)н Y = (ax an_xbn, s', п- 1), где т^ап. s) = (bn, s', — 1) и bn ^ р.
X = (^ ... ап_хап, s, п) и Y = ^ах ... ап_х, s', п - 1), где т^ап, s) = (р, s', — 1).
Определение 5. Вычисление на машине Тьюринга Z в алфавите А есть конечная последовательность Хх, ..., Xq мгновенных описаний Z, такая, что для всех i= 1, ..., q—1 Xi —>XW (Z) и Zg = (f, f, p) для некоторой конечной последовательности t элементов А и некоторого целого р. Мы говорим, что Хх начинает это вычисление и что Xq — результат Хх.
Определение 6. Если дано подмножество D множества ТА всех конечных последовательностей элементов алфавита А. то говорят, что функция ср: D-*TA вычисляется на машине Тьюринга Z в алфавите А, если выполняются следующие условия. Для каждой последовательности t ^ D существует вычисление на Z, начинающееся с (/, s0, 1), причем результатом (/, So, 1) является ^^Л»?) для некоторого р.
Кодируя числовые функции в двоичной системе счисления, зафиксируем алфавит {0, 1, р} как алфавит, в котором работают все машины Тьюринга, вычисляющие числовые функции. Мы будем часто опускать слова «в алфавите {0, 1, р}», когда будет идти речь о машинах Тьюринга, вычисляющих числовые функции. Определим теперь вычисление числовых функций следующим образом.
Определение 7. Будем говорить, что машина Тьюринга Z в алфавите {0, 1, Р} вычисляет функцию f от п неотрицательных целых аргументов с неотрицательными целыми значениями, если она вычисляет функцию f': D-^T^.vh где
D есть множество всех строк ^1Р^2р ... Р^п Для п-ок (^1,^2, ..., аЛ из области определения f,
f' (^р ... P&J определяется как f ^ах, ..., а^.
Здесь х означает двоичную запись неотрицательного целого х.
Это завершает наши формальные определения машин Тьюринга и вычислений на таких машинах. В приложении 3 мы приводим арифметизацию этих машин и получаем некоторые результаты, нужные для разд. 4 — 6 этой статьи.
Обратимся теперь к конечным автоматам. Здесь нам удобнее всего рассматривать их как машины Тьюринга, которые вычисляют несколько отличным (и очень ограниченным) способом. Вычисление на такой машине всегда начинается с крайней правой ячейки входной ленты, и далее машина сдвигается на
одну ячейку влево на каждом шаге вычисления. В таком вычислении машина может удлинять ленту влево на столько, на сколько это необходимо. Поэтому здесь удобно считать, что ячейки занумерованы справа налево. Мы уточняем эти замечания в следующих определениях.
Определение 8. Если дана машина Тьюринга 2=(S,m,s0, f) в алфавите Д, мы определяем операцию -*F между мгновенными описаниями Z следующим образом. X-^pY^Z) означает, что выполняется одно из следующих условий, где X и Y—мгновенные описания Z и а^ и Ь^— элементы А.
X = ^апап.х ... аха^ s, р) и Y = ^bnbn_x ... bxb^ s', р + 1), где р<п, bj = ai для всех j^p и m (яр, s)=(6p, s', —1).
X = ^апап-х ... аха0, s, п) и Y = ^bnan_x ... аха^ f, п + 1), где т(ап, s) = (bn, f, — 1).
X = Unan-\ • • * ^о, s, n) и У = $bnan_x ... axa0, s', n + 1), где m^an, s) = (bn, s', —1) и s'#=L
Определение 9. F-вычисление на машине Тьюринга в алфавите А есть конечная последовательность Хь ..., Xq мгновенных описаний 2, такая, что
Xi-^ FXiJrX^Z^ для всех Z=l, ..., q — 1 и
Xx = V, s0, 0) и Xq = ^V, f, /(П)>
где t и t'— конечные последовательности элементов А и /(/') означает длину последовательности t'.
Мы говорим, что /Yi начинает вычисление, a Xq является результатом Хр
Определение 10. Если дано подмножество D множества ТА всех конечных последовательностей элементов алфавита А, говорят, что функция Ф: D— ТА вычисляется на машине Тьюринга Z, представляющей собой конечный автомат в алфавите А, если выполняются следующие условия. Для каждого t^D существует F-вычисление на 2, начинающееся с (/, s0, 0), причем (Ф(/), f,/(Ф(/))) есть результат (/, s0, 0).
Когда функция Ф вычисляется на машине Тьюринга 2, представляющей собой конечный автомат, мы говорим о Z как о конечном автомате и о Ф как о функции, вычислимой на этом конечном автомате. Таким образом, когда мы ссылаемся на конечные автоматы, мы подразумеваем просто машины Тьюринга, которые выполняют только F-вычисления; когда мы говорим о вычислении на конечном автомате 2, мы имеем в виду F-вычисление на машине Тьюринга 2. Мы будем свободно использовать эту сокращенную терминологию на протяжении всей статьи.
Теорема 1. Если Ф вычисляется конечным автоматом Z с k незаключительными состояниями, тогда для каждого аргумента
I из области определения Ф длина Ф(/) не больше, чем k + /(/), где 1(f) —длина ленты t.
Доказательство. По определению 8, после того как Z прочтет все символы /, он продолжает двигаться влево, читая пустые символы на каждом шаге (пока не достигнет заключительного состояния и не остановится). Однако если он попадает дважды в одно и то же состояние, в то время как читает эти пустые символы, то он должен зациклиться и будет работать бесконечно долго. Так как к есть число различных незаключительных состояний Z и t принадлежит области определения Ф, то Z должен попасть в заключительное состояние f не позже, чем через к шагов после прочтения последнего символа I. Таким образом, длина Ф(/) не превосходит к-\-Ц1У
Поэтому, а также из-за других серьезных ограничений, наложенных на функции, вычислимые конечными автоматами, принятые методы кодирования числовых входов отличаются от кодирования, указанного в нашем определении 7 для машин Тьюринга. (См., например, [2, стр. 31].)
Чтобы ввести п числовых аргументов в машину Тьюринга, каждое число записывают в двоичной системе, и эти п двоичных строк пишут по порядку на ленте, разделяя их пустыми символами. Можно представить себе, что числа в машину подаются последовательно, одно за другим. Напротив, в конечный автомат числа подаются параллельно; последняя значащая цифра каждого из п чисел читается на первом шаге вычисления, следующая значащая цифра каждого числа — на втором шаге и т. д. Чтобы упростить обозначения, ограничим наши рассуждения функциями одного или двух аргументов. (Единственной дополнительной трудностью, возникающей при рассмотрении общего случая, является неудобство обозначений.)
Предполагается, что конечные автоматы, вычисляющие функции одного аргумента, работают в алфавите Л1 ={р, 0, 1}. Называем строку символов из этого алфавита кодом, неотрицательного целого п, если она имеет вид р ... ^п, где п— (единственная) запись п в двоичной системе счисления. Так, например, ppiOl и 101 суть коды числа пять, но ни 0101, ни 101р не являются кодами. Определяем теперь вычисление числовых функций одного переменного.
Определение 11. Говорят, что конечный автомат в алфавите Д1 вычисляет функцию f от неотрицательных целых с целыми неотрицательными значениями, если он вычисляет некоторую функцию f': D->T^, ц, такую, что
D есть множество всех п записей (в двоичной системе счисления) неотрицательных целых п;
f'(n) есть код Цп^.
Прежде чем определять вычисление числовой функции двух переменных, мы введем еще два соглашения. Во-первых, будем предполагать, что конечный автомат, вычисляющий такую функцию, работает в алфавите
(Р Р Р 0 1 0 0 1 Пл — < > > >> > , > >>
2 Ipoippoioip
Мы будем иногда писать
Р вместоО вместо1 вместоР вместоО вместо1 вместопустогопустогосимволасимволасимвола q>Р Гсимвола q>Р Г
Р вместо
О вместо
1 вместо
Р вместо
О вместо
1 вместо
пустого
пустого
символа
символа
символа q>
Р Г
символа q>
Р Г
Таким образом, мы можем говорить об Ах как о подмножестве Л2. Во-вторых, для каждой пары (т, п) неотрицательных целых определяем строки ти и пт из элементов алфавита Ах следующим образом. Предположим (без ограничения общности), что запись числа п в двоичной системе содержит на к знаков больше, чем запись т^к^Оу Тогда пт есть просто п, двоичная запись п, a т^ есть р ... pm с к символами р. Таким образом, тп и пт суть коды тип соответственно; они имеют одинаковую длину, и один из них совпадает с двоичной записью числа. Пусть теперь дана пара (т, п), пусть тп = аха2... ар и nm = bxb2... bPt где сц и Ь^ — элементы Ах. Тогда мы обозначаем через (т, п) ленту
аха2 ... ар
bxb2 ... Ьр
в алфавите Л2.
Определение 12. Будем говорить, что конечный автомат Z в алфавите А2 вычисляет функцию f от пар неотрицательных целых с неотрицательными целыми значениями, если он вычисляет некоторую функцию f': D->Tav. такую, что
D есть множество всех лент (т, п) для всех пар (т, п) неотрицательных целых;
f^m.n) есть код f(m,n). (В этом определении мы отождествляем алфавит Ах с подмножеством А2.)
Подобным же образом можно определить вычисления на конечных автоматах числовых функций любого числа переменных. Мы предполагаем, что эти определения проведены, и обозна-
чаем через F класс всех числовых функций любого числа переменных, которые вычисляются на конечных автоматах.
В качестве примера рассмотрим функцию следования и сложение. Функция следования вычисляется на конечном автомате Z, который действует следующим образом. При входе О Z выдает |31, при входе 1 Z выдает 10, при входе 10 Z выдает pi 1 и т. д. (Пустые символы в выходе появляются потому, что вычисление не может завершиться, пока не будет прочитан пустой символ слева от входа.) Построение такой машины предоставляется читателю. Сложение вычисляется на автомате, у которого множество пар «вход —выход» содержит, например, такие пары:
I!"гI
И
|»101. риооо).| 10011 1/
Можно легко построить также конечный автомат, вычисляющий произвольную константную функцию С^ от п аргументов или функцию выбора <7? от п аргументов, определенные, например, в [4, стр. 197].
Теперь мы хотим установить некоторые свойства класса F числовых функций, вычислимых на конечных автоматах. Желаемыми свойствами являются свойство замкнутости относительно композиции и явных преобразований и свойство линейной ограниченности в подходящем смысле. Приведем непосредственное доказательство замкнутости F относительно композиции. Мы построим конечный автомат, вычисляющий g°h, где (g0 h^ (#) = g(h(y)), если даны автоматы, вычисляющие g и К. 1Лъ\ опустим детали доказательства того, что этот конечный автомат действительно работает, так же как и обобщение на случай композиции функций произвольного числа переменных.
Предположим, что одноместные числовые функции g и h вычисляются на конечных автоматах Zg = (Sg, mg, sg0, fg) и Zh = (Sh, nth, sm, fh) соответственно. Чтобы сократить определение автомата для композиции g^h, мы вводим следующие сокращения. Для а е Ль Sh ^ $h и sg е Sg;
пусть ah = a и s'h = fh, если sh = fh; в противном случае пусть ан = х и s'h = y, где т^сц s^ = ^x, у, —1);
пусть a' = ah и s' =fg) если sg = fg; в противном случае пусть а' = и и s'g = -o, где mg^afl1 ss) = (u) у, —1).
Теперь определяем функцию
т': А{ X [(Sg X SJ - ^fg. Ш ~> АхХ (Sg X S,) X {- 1},полагая m^a, ^sg1 s^^a', (s', s'), —1), и, наконец, полагаем
Zgoh = (^g^ ^h' m^ (Sg(P ShoY Qg’ h))'
Чтобы убедиться, что ZgOh вычисляет goh, предположим, что Zg 0 h находится в состоянии (s^, sh) на n-м шаге вычисления, начинающегося с ленты /, и что 2^, будучи применен к /, выдает ленту V. Тогда sh есть состояние, в которое попадает Zh на n-м шаге вычисления, начатого с ленты /, a sg есть состояние, в которое попадает Zg на п-м шаге вычисления, начатого с ленты V. Индуктивное доказательство того, что Zgoh вычисляет go к, базируется непосредственно на этом замечании и предоставляется читателю.
Замкнутость F относительно явных преобразований является следствием предыдущих результатов. Пусть f (xi, ..., хп) = = 5‘(^ь • ••> ^). Если ^i = Xj, определяем функцию ft, полагая fi(xXi ..., xn) = U,}(xx, ..., хп\ и, если ^ есть константа, полагаем fi (хь ..., хп) = С^хх, ..., х^. Каждая ^ лежит в F по предыдущим рассуждениям. Так как
f(x„ Хп) = g (h (xb Хп\ Mxb Хп))
и F замкнут относительно композиции, то f е F.
Так как множество линейных функций можно определить как замыкание сложения, функций выбора и константных функций относительно композиции и явных преобразований, то мы знаем теперь, что каждая линейная функция лежит в F. Хотя не каждая функция из F является линейной, любая функция из F ограничена некоторой линейной функцией в смысле, указанном следующей теоремой.
Теорема 2. Если f(xXi ..., хп) из F, то существует такое неотрицательное целое К, что для всех хь ..., хп f (хь ..., хп) < <K-max(xi, хп, 1).
Доказательство. Для всякого целого у обозначим через /(у) длину двоичной записи у. Сразу получаем, что у <2Иу)<.2 • шах (у, 1). С помощью определений 11 и 12 (и их обобщений) устанавливаем, что для конечного автомата запись п-ки (хь ..., Хп) есть лента длины /[шах^, ..., хп, 1)]. Введем сокращение х для Хь ..., хп. Теперь по теореме 1
этого приложения существует такое к, что I [/ (х)] <Z [шах(х, !)] + &. Теорема следует из этого неравенства, ибо / (х) < 2Z [^(х)1 < <2^2'^<х,1)]<2^.тах(х> 1).
ПРИЛОЖЕНИЕ 3
АРИФМЕТИЗАЦИЯ
В этом приложении мы хотим провести арифметизацию машин Тьюринга, вычисляющих числовые функции, и сделать это в пределах весьма ограниченного класса функций. Мы должны отказаться от представления последовательностей степенями простых чисел и, как это было указано в основной части статьи, обратиться к более экономному способу. Мы уже решили действовать с сочленением строк символов, ибо кажется, что этот процесс подсказан самими операциями машин Тьюринга. Так, продолжая, мы будем следовать Смульяну [8] и используем двузначную 9 запись целых положительных чисел строками из единиц и двоек. Эта запись имеет техническое преимущество перед двоичной, так как устанавливает взаимно однозначное соответствие между строками конечной длины и (натуральными) числами. Легко видеть, что всякое целое положительное число имеет единственное представление в виде суммы членов вида at-2\ где at есть 1 или 2, и числу ап*2п + + аи_х • 2П-1 + ... + ао • 2° соответствует строка anan_i ... а0.
В [8] Смульян исследовал класс отношений, которые он назвал рудиментарными отношениями, над целыми положительными числами. Это наименьший класс отношений, содержащий (двузначное) сочленение и замкнутый относительно явных преобразований, булевых операций и ограниченной квантификации. Здесь сочленение есть отношение, определенное следующим образом: г называется сочленением х и у (пишем г = ху)), если двузначная запись z есть хпхп_\ ... xQymym_x ... у^ где хп ... ... Хо и ут ... уо суть двузначные записи х и у. Мы хотим применить в нашей арифметизации рудиментарные отношения и, чтобы это осуществить, покажем сейчас, что всякое рудиментарное отношение содержится в
Гжегорчик [3] показал, что класс ^ замкнут относительно явных преобразований, булевых операций и ограниченной квантификации, а Смульян [8, стр. 30—31, 77—80] доказал, что
всякий класс, замкнутый относительно этих операций и содержащий отношения сложения и умножения, будет содержать и сочленение. В [3] показано также, что <^2 содержит функции сложения и умножения. Чтобы установить наш результат, мы доказываем следующую теорему.
Теорема 1. Если функция f лежит в ^2, то отношение F принадлежит ^ где F (хь ..., x^^f^Xx, ..., хп_х^ = хп.
Доказательство. Предположим, что f^^2, определяем отношения R и S, полагая /?(х, y) = f (х) — у = 0 и S (х, у) = =y — f(x) = 0. R и S лежат в ^, так как их характеристические функции g и h можно определить так: ^(х, у) = = 1 — (1 — (f(x) —у)) и /г(х, t/) = 1 — (1 — (у —Цх)). Но тогда R П S есть отношение из ^,, и оно в точности совпадает с нужным отношением, так как
(ЯПЗ)(х, y)=R^x, y)AS(x, y)^f(x)^y Л у <f(x)^f(x) = у.
Следствие1). Класс рудиментарных отношений включен в класс ^.
Теперь мы можем провести нашу арифметизацию, используя только рудиментарные отношения, т. е. определяя отношения из сочленения при помощи явных преобразований, булевых операций и ограниченной квантификации. Определяем сначала некоторые отношения, которые будут использоваться в дальнейшем:
х,х2 ... хп = y=(3z2, z3zn_\^u
[z2 = X,X2 A z3 = z2x3 A ... ^ztг_1 = zn_2xn_1 ^y = zn_xxn^, xBy=x = y\/ (3^ [xz = У) (читается „х — начало уи\ хЕу=х = у V (32)<у \zx = у\ (читается „х — конец z/“), хРу=хВу V хЕу V (32ь z^y lzixz2 = yl (читается „х — часть у“),
tally (х)= ~2Рх (читается „х есть подсчет", т. е. строка из 1),'
/ (х) = I (у)М32)<х [tally (z) А г < х < 2z Л z < у < 2z] (читается „длина х равна длине у“),
/(х) = 5 • Z(yW32)<x[tally(z)A О^)<у[tally (ш) М<у> =
= / (ш) Л / (z) = / (х) Л wwwww = z] ].
После этих предварительных построений мы можем приступить к арифметизации машин Тьюринга (определенных в приложении 2), т. е. мы можем закодировать описания машин Тьюринга и вычисления на машинах Тьюринга числами (записанными в двузначном обозначении) и числовыми функциями соответственно. Тогда мы сможем выражать свойства машин Тьюринга через свойства функций, как это требуется в разд. 4—6. Для этого мы сопоставим каждому состоянию машины Тьюринга Z = (S, m, s0, f) число вида 11... 11. В частности, мы условимся сопоставлять число 1 начальному состоянию s0 и число 11 заключительному состоянию f.
Мы обозначаем три символа алфавита 0, 1, р, которые могут встретиться на ленте, числами 1, 2 и 11 соответственно и обозначаем элементы 1, —1 и 0, принадлежащие области значений функции т, при помощи 1, 2 и И соответственно (т. е. 1 обозначает сдвиг ленты влево, 2 — сдвиг вправо и 11—отсутствие сдвига). Для удобства запоминания различных чисел, обозначающих состояния, символы на ленте и команды сдвига, введем следующие сокращения:
St (x) = tally (х)So W = * = 1f ^ = х = 11А (х)=х = 1\/х = 2\/х = 11L ^=х = 1R^ = x = 2N^ = x= 11St (x) = tally (х)So W = * = 1f ^ = х = 11А (х)=х = 1\/х = 2\/х = 11L ^=х = 1R^ = x = 2N^ = x= 11(х есть номер состояния),
St (x) = tally (х)
So W = * = 1
f ^ = х = 11
А (х)=х = 1\/х = 2\/х = 11
L ^=х = 1
R^ = x = 2
N^ = x= 11
St (x) = tally (х)
So W = * = 1
f ^ = х = 11
А (х)=х = 1\/х = 2\/х = 11
L ^=х = 1
R^ = x = 2
N^ = x= 11
(х есть номер состояния s0),
(х есть номер состояния f),
(х есть номер символа алфавита), (х есть число, обозначающее сдвиг влево),
(х обозначает сдвиг вправо),
(х обозначает отсутствие сдвига ленты).
Полное описание машины Тьюринга Z = (S, т, s0, f) (в алфавите {0, 1, р}) получается перечислением s0, f и m, ибо, зная т, мы знаем и S, так как т: ЛХ(3— {f}) -> А ХЗХ{1,—1,0}. Поскольку у нас есть соглашение относительно обозначений для s0 и f, нам необходимо лишь указать т, чтобы полностью определить Z. Мы задаем т таблицей пятерок (л, s, a', s', р), такой, что т^а, s) = (a', s', р). Таким образом, чтобы определить номер машины Тьюринга Z, мы определяем вначале множество Quint номеров пятерок (a, s, a', s', р); множество Table чисел, являющихся номерами таблиц (списков) пятерок (a, s, a', s', р); отношение Quint, которое верно для х и у, если х является номером пятерки, встречающейся в таблице с номером у; множество Fn номеров таблиц, являющихся функциями (т. е. таблиц пятерок,
у которых не существует двух различных пятерок с двумя одинаковыми первыми элементами), и, наконец, множество ТМ чисел, которые суть номера машин Тьюринга. ТМ является множеством всех номеров Fn, таких, что для каждого состояния s из S — {/} существует пятерка в списке, начинающаяся парой (О, s), а также пятерка, начинающаяся парой (l,s), а также пятерка, начинающаяся парой (|3, s) (так что область определения функции есть все множество Лх(5— Ш)).
Чтобы определить Quint, мы должны представить пятерку чисел одним числом. Для достижения этой цели мы, следуя Куайну [7] и Смульяну [8], представим последовательность чисел посредством «разделенного сочленения», т. е. записывая их одно за другим с промежутками между ними. Эти промежутки должны обладать тем свойством, что они позволяют разложить единственным образом «разделенное сочленение» в последовательность, которую оно представляет. Чтобы определить Quint, замечаем, что каждый элемент у пятерки удовлетворяет одному из отношений Л (у), R(y), L^yV N(y), St (у). Так как строка 22 не встречается ни в одном из этих элементов пятерок, мы используем 1221 в качестве промежутка. Тогда строка, не начинающаяся и не оканчивающаяся на 1221, но содержащая четыре вхождения 1221 и не содержащая вхождений 222, однозначно интерпретируется как некоторая пятерка (упорядоченная пятерка). Например, 212211111221112211112212 представляет пятерку (2, 111, 1, 11, 2). Вообще мы определяем множество Quint следующим образом:
Quint(х) = (З^ь х2, х3, х4, х5)^х [xi 1221х21221х31221х41221х5 = х А
А Л (хО A St (х2) А - f (х2) А Л (х3) A St (х4) А A (R (я5) V L ^ V N (х5))].
Так как таблица — это просто последовательность пятерок, мы пользуемся аналогичным способом, чтобы изобразить последовательность пятерок одним числом. Теперь роль промежутка играет 12221, так как 22 — самая длинная строка из 2, которая появляется в пятерках. Остальные определения, ведущие к ТМ(х), говорят сами за себя.
Table (х) = (12221) Вх А (12221) Вх А ~ (2222) Рх А
А <у^х [(12221 у 12221) Рх ^ - (222) Ру -> Quint (у)]
Quint (х, y) = Quint (х) A Table(y) А (12221x12221) Ру,
Quint ((xb х2, х3, хм х5), у^Ох)^ [Quint (х, у)Ах =
= х, 1221х31221х31221х41221х5],
Agree(x, у) = (хь х2^х\^хх\22\х2\22\^ Вх/\
Л (хх1221х21221) By -> х = yY
Fn (x) = Table(x) Л (у, z^x [Quint (у, х) Л Quint (2, х)->
Agree (у, 2)], ТМ (x)^Fn (х) Л (у)^х{(ЗУь у2, у3, у4)<х
[Quint^ух\22\у\22\у2\22\у3\22\у^ V
V Quint (у11221у21221у31221у1221у4) Л
Л у#=!!)]->(З^ь 22, 23, wx, w2, w3, vb v2) o3)<x [Quint ((1, y, 2b 22, 23), x) A Quint ((2, y, ^b w2) ^3), x) A A Quint ((11, y, ub u2, v3), x)]}.
В дополнение к номерам машин Тьюринга нам нужны номера лент и мгновенных описаний, чтобы мы могли анализировать вычисление функции на машине Тьюринга числовыми методами. Мы сопоставим число 1221«i 122Ы2. ап-11221ап1221
ленте Я1Я2 • • • а^-ха^ где сц е {0, 1, |3} и 0=1, 1 = 2, (3 = 11. Тогда, чтобы сопоставить некоторое число мгновенному описанию (t,s, р), мы заменяем сначала положительное целое р на номер Р первых р символов ленты t. Например, в ^xa^a^s,^ мы заменяем 3 на номер aia2a3, т. е. на 1221ах1221а21221аз1221. Теперь мы сопоставляем описанию (^, s, р) номер T\222\S\222\P, где Т — номер ленты / и S — номер состояния s. Формально мы получаем
Таре (х) = (1221) Вх Л (1221) Ех Л - (222) Рх Л
Л (у)сх [(1221 у 1221) Рх Л - (22) Ру-> А (у)].
ID(x, у, 2, ш)=[х = y!2221zl2221w Л Таре(у) Л
Л Таре(ш) Л wBy Л St (2)].
ID(x)=(3y, 2, w)^x(ID(x, у, 2, ш)].
В нашем определении вычисления на машине Тьюринга одно мгновенное описание приводило к другому при помощи операции ->, определенной в четыре этапа. Сейчас мы отобразим каждый этап в определении функции Yield (где первые три являются подслучаями первого пункта определения —>).
Yields (х, у, z)=TM (г) Л (3xb х2, ab zJ^O^, ^^[ID(x, х^^г, гь Xiti]1221) Л
Л ID (у, Xia2x2, z2, Xifl21221) Л
Д Quint ((ab zb а2, z2, 11), z)],
Yield^x, у, 2) = ТМ(г) Д (3xb х2, ab 2!)<д.(3а2 а3, г2)<у
[ID(x, х^, 1221а3х2, zb х1а|1221)Д
Л ID (у, х|й21221д3х2, z2, Xia21221a31221) Д
Л Quint ((ab 2b а2, z2, 1), 2)],
Yieldk(x, у, z)=TM(z) Д (Зхь х2, аь а3, х^ДЗа-ь z^
[Quint ((ab zx, а2, z2, 2), 2) Л
Л ID(x, х1а31221а11221х2, хх, х1а31221 i, 221) Д
Л ID (г/, хха31221а21221х2, 22, Xja31221)],
Yield2(x, у, г)=ТМ (г) Д (Зх„ а„ г1)<д.(3а2, 22)<у
[Quint ((аь zb а2, z2, 1), 2) Л
Л ID(x, ххах1221, гх, ххах1221) Д
ЛЮ(у, хха21221Ш221, г2, хха21221Ш221)],
Yield3(x, у, г) = ТМ(г) Д (3xb ab а3, 2|)55х(Зй2, 22)<@
[Quint ((аь zb а2, z2, 2), г) Д
Л ID(x, хха31221ах122\, zu xxa31221axi221) Д
Д ID {у, хха31221а21221, z2, х1а31221)],
Yield4(x, у, 2)=ТМ(г) Д (3xb ab а3, Zi)^x(322)<ff
[Quint ((ab 2h 11, z2, 2), 2) Д
ДЮ(х, хха31221ах1221, zx, х1а31221а11221) Д
Д ID (г/, Xja31221, z2, Xja31221)[,
Yield (х, у, 2) = [Yieldla(x, у, 2) V Yields(х, у, 2) V
VYieldlc(x, у, 2)VYield2(x, у, z^V
VYield3(x, у, z) V Yield4(x, у, 2)].
Поскольку отношение Yield принадлежит §^, следующее определение показывает, что функция Yield двух переменных также принадлежит ^2. Смысл этой функции достаточно ясен: Yield(х,г) есть тёделев номер мгновенного описания, которое непосредственно следует за мгновенным описанием с номером х на машине Тьюринга с номером 2,
Yield (х, 2) = min у ^ х • 2 [Yield (х, у, 2)].
Вычисление на машине Тьюринга заканчивается тогда, когда достигается мгновенное описание с заключительным состоянием f. Так что мы определяем Fin(x) как множество чисел х, кото-
рые являются номерами мгновенных описаний, содержащих состояние f,
Fin(x)=(3y, z)<x[ID(x, у, 11, г)].
Теперь мы хотим арифметизовать вычисления числовых функций, но, прежде чем мы сможем сделать это, мы должны найти метод перевода неотрицательных целых, записанных в двоичной системе счисления, в положительные целые, закодированные в двузначном коде. Точнее, нам нужна функция е из ^2, отображающая взаимно однозначно неотрицательные целые в положительные целые. Мы фактически неявно использовали такую функцию при арифметизации лент, когда мы сопоставляли гё- делев номер 1 целому 0 и гёделев номер 2 целому 1. Распространяя это сопоставление на всю двоичную запись произвольного неотрицательного целого, получаем соответствующий двузначный код некоторого положительного целого числа. Фактически эта замена 0 на 1 и 1 на 2 повсюду в двоичной записи целого п приводит к двузначному коду числа
п + 2!№~' ++ 21 + 2° =/г + 2Z — 1.
Таким образом, определяя функцию е посредством е^п) = = п + 21^—1, получаем нужный перевод неотрицательных целых в положительные целые. Теперь мы должны показать, что двуместное отношение 8 принадлежит ^, где е(х,у) = е(х) = у.
Чтобы завершить это, мы определяем сначала в Й’2 функцию остатка г (как это было сделано в [3]), функцию /, значение которой равно удвоенному первому аргументу, если второй аргумент есть 0, и в точности первому аргументу в противном случае, и, наконец, функцию 2Z<4 Тогда, так как ^2 замкнут относительно сложения и операции урезанной разности -^- (см. [3]), мы покажем, что функция е принадлежит ^2, и по теореме 1 ее?*. г, t и 21^ определяются следующим образом:
г (о, у) — ог ^ у) есть оста_
г (s (Д у) = or [s (г (х, у)), 1 — (у — s (г (х, у)))] ■ ток от деления х
г(х, у^уна У’
t (х, 0) = 2 • х '
t(x, s (у)) = х • t (х, у) = 2 • х, если у = 0, и х в противном Цх, у)^2х> слУчае-
r(s(x\ 2zw)L2Z(x)^2.(x+l).
Теперь, когда мы показали, что отношение е, которое выполняется для х и у тогда и только тогда, когда е^х) =у, принадлежит ^ мы готовы к анализу вычислений числовых функций. Такое вычисление определяется последовательностью мгновенных описаний, в которой начальная лента имеет вид хфхзР ... ... Хп-фхп и заключительная лента имеет вид хо, где xt есть двоичное представление числа Xi. NVb\ начинаем с определения отношения Code, где Code (у, х) имеет место тогда и только тогда, когда у есть гёделев номер ленты х. Из этого отношения мы сможем затем определить функцию Decode, которая дает число (если таковое имеется), представленное на ленте в заключительном мгновенном описании, и для каждого п отношение Encode^, где Encoden(xi, ..., хп, у) имеет место тогда и только тогда, когда у — гёделев номер ленты хф ... хп-\$хп. Наконец, при помощи Encoden мы затем определим функцию Initn, которая дает гёделев номер начального мгновенного описания, лента которого содержит двоичную запись п аргументов Initn, взятых в том же порядке. Из этих определений мы выводим
Code (у, х)=Таре (у) А (3«)<г/ (е (х) = u A (z, w^g
{[zBu A wEz A (ay = 1 V ay = 2)] —>
-> (3v)<y \»By A I W = 5 • I (z) A (1221 ay) Eu]}}, Decode (x) = min y^x [ID (x) A (3Z)<* [(212221) Bx A Code (z, y)]},
Encode» (xb ..., xn, x)=(3</b ..., yn)<x [Code (yb xO A ...
... A Code <yn, xn) A
Ax-^llf/2 .yn_x 11U
Init» (xb ..., x„) = min ay <26'"+19 • [(X[ + 1) • ... • (x„ + I)]5 {(3+)<w [Encode» (xb .... x„, x)A
A (3y)<x U (</) = 9 A z/Bx A
Aay = xl2221112221y]]}.
Граница для ay определяется из условий /(ay) =/(х) + 20 и /(х) =5-(Z(xi)+.. . + /(хп))+4 + 6 • (п—1), так что
ау <2 • 2Z(1£,) = 2 • 25'(z^‘)+ +z^"^)+|8+б-« =
= 26-«+19. (2< (*0 . ,,, . 2Z М)5 <
^26 "+19 - [(x, + 1) - ... .(x„ + l)]5.
ЛИТЕРАТУРА
Davis М., Computability and unsolvability, McGraw-Hill, New York, 1958
El got С. C., Decision problems of finite automata design and related arithmetics, Trans Amer. Math. Soc., 98 (1961), 21—51.
Grzegorczyk A., Some classes of recursive functions, Rozprawy Mate- matyczne, Warzsawa, 1953 (Русский перевод см. стр. 9—49.)
К 1 е е n е S С.. Introduction to metamathematics, Van Nostrand, Princeton, N. J., 1952. (Русский перевод: Клини С. К., Введение в метаматематику, ИЛ, М., 1957.)
Myhill J., Linear bounded automata, WADD Technical Note, 60—165, Univ Pennsylvania Report, Nr. 60-22, June 1960.
Peter Rozsa, Rekursive Funktionen, Akademiai Kiado, Budapest, 1957, 76—86. (Русский перевод: Петер P., Рекурсивные функции, ИЛ, М, 1954.)
Quine W. V., Concatenation as a basis for arithmetic, J. Symb. Logic, 11 (1946), 105—114.
S m u 11 у a n R. M., Theory of formal sistems, Annals of Mathematics Studies, № 47, Princeton Univ. Press, Princeton, N J., 1961.
Tarski A., A decision method for elementary algebra and geometry, Project RAND Report R-109, The RAND Corporation, Santa Monica, Calif., 1957.
ИЕРАРХИЯ ПРИМИТИВНО РЕКУРСИВНЫХ ФУНКЦИЙ !)
Дж. П. Клив
ВВЕДЕНИЕ
Гжегорчик [1] построил цепь типа со ^с^ с^с... классов рекурсивных функций, где ^3 есть множество К элементарных по Кальмару функций и (J ^л является множеством Р при- п = 0
митивно рекурсивных функций. Ричи [2] построил цепь типа со F° cz Fx cz F2 cz... классов функций, так что Р есть множество функций, вычислимых на конечных автоматах, Fw есть класс функций, вычислимых на машинах Тьюринга, которые используют при вычислении ленту с длиной, являющейся функцией (тех же аргументов) из F\ и (J Fn = К- Таким образом, п =0
у Ричи сложность вычисления измеряется длиной ленты, необходимой для его выполнения.
В этой статье строится со2-цепь классов функций, вычислимых на одной разновидности вычислительных машин. Получение свойств этих функций зависит, однако, от эквивалентного определения, данного с помощью простого типа рекурсии (теорема 1). Вместо машины Тьюринга оказалось удобным использовать «неограниченные машины с регистрами»2) (Шепердсон и Стургис [3]), известные как «/-ограниченные машины». Этот метод обладает тем преимуществом, что, во-первых, он ближе к реальной вычислительной практике, так что можно свободно использовать такие понятия, как «код команды», «диаграмма переходов», «программа» и т. д., и в то же время удается избежать произвольных представлений чисел в машинах Тьюринга.
Если дано множество 5 функций, то можно определить код команды для /-ограниченной машины и, следовательно, построить «S-программу». Понятие «шага» в вычислении есть понятие относительно 2. Если определить сложность вычисления как число шагов, необходимых для вычисления, то метод Ричи построения классов функций дает цепь типа со Е(2)о^
Е(2) 1Е(2)2 ^... классов со свойствами, подобными свой-
ствам последовательности F°, F\ F\ ... . Итак, пусть Е^-х — множество константных функций, E^i— множество функций, вычислимых на /-ограниченных машинах при помощи 2-программ и таких, что число шагов, необходимое для вычислений, есть функция (тех же аргументов) из E(2)t-i. Следовательно, каждому множеству 2 функций соответствует цепь типа со2 Eq ^ Ех ^ Е2 ^ ... ^ Е^г+8 ... классов рекурсивных функций, где
Ео =Е^0, '
E^r+s== Е (E^s,
Etor = U ^^ } г, s < о.(1)
i < юг
Е^ = (J Еь
Z < to2,
Итерация функций, роль которой в построении примитивно рекурсивных функций была изучена Р. М. Робинсоном [4], занимает естественное место в получении свойств классов ^Ету Так, каждый класс Е^г-м) есть замыкание относительно композиции множества Е(ЕШГ) функций, определенных из EtoT совместной итерацией (теорема 2.1.2). Некоторые замечательные свойства этих классов устанавливаются ниже в теореме 2.
Особый интерес представляет случай 2 = {+, Х,6} (ф,)/) = 0, 1 в соответствии с х ф у или х = у\ Тогда Ео^^4*2 для s^l, следовательно, К = Е^ Р = Е^.
СЛОЖНОСТЬ ВЫЧИСЛЕНИЙ НА /-ОГРАНИЧЕННЫХ МАШИНАХ
Неограниченная машина с регистрами (URM) ранга г состоит из г регистров Rx, R2, . R^ каждый из которых может содержать любое натуральное число. Содержимое регистров, также обозначаемое через Ri, R2, ..., Rr, может быть изменено программой; символы ”R?\ "Rr” появляются как адреса в командах.
Пусть N обозначает множество натуральных чисел. Пусть далее 2 — счетное множество функций, определенных на N со значениями в N, и пусть ^п’ 11 обозначает подмножество функций из 2 от п переменных. Если 2 содержит +, х, 6, то ^-команда для URM есть элемент множества 3(2)1)23, где
3(2) — множество ^-арифметических команд, построенное из 2 следующим образом. Каждой F<^^n’^ соответствует множество 3(E) команд
F (Rap Ra2, ..Rart)->Rp, ai> «2, . . ., art, p = 1, 2, . . .,
т. е. „поместить/7^, Ra2, ..., Rart) в R^, уничтожив предыдущее содержимое Rp“. Тогда
з(2)= и 3(f).
23 есть множество Ui (а, 0)}, Z, а, р = 1, 2, ..., команд выбора !) для распознавания содержимого Rb i = 1, 2, ... .
Конечная последовательность {/(1), /(2), ..., /(ц)} членов 3(S) U® называется ^-программой, если
Цп)^^,
из / (m) = Ji (а, р), 1 ^ т ^ п, следует а ^ п и р ^ п. 21(5) обозначает множество всех 2-программ.
Ранг г (/) 2-команды / определяется как
г(/) = 1г(/) = 1max(a!, a2, ..., an, Р), если I = F ^Rax, ..., Ran)->R^ max(Z, a, p),если / = /t(a, p).
г(/) = 1
г(/) = 1
Ранг ЦР) последовательности P = {/(1), ..., Цп)^ команд есть
r(P) = шах (г (/(1)), ...» гЩпУ).
Команды 2-программы Р = {/(1), ..., /(п)} выполняются последовательно на URM ранга > г(Р): сначала /(1), затем /(2),..., пока не встретится команда выбора, скажем Цт) = Ji(a, р). /(т) решает, которая из двух команд будет выполняться следующей— /(а), если Ri=\, либо /(Р), если Ri=£=L 1{т) есть динамический стоп в Р, если /(m) = Ji(m, ту Коль скоро такой стоп достигается в процессе вычисления, программа продолжает выполнять Цт) согласно Р, однако содержимое регистров остается неизменным. Заметим, что программа вовсе не обязана иметь динамический стоп.
Пусть Р есть S-программа ранга ^п и D^P)—множество (п + 1)-ок (хь ..., хп, уУ таких, что если Р начинает работать с Ri = Xi для 1 ^i-^n и Ri = 0, Z> п, то динамический стоп достигается с R\ = y. Тогда Р вычисляет (частичную) функцию f п переменных тогда и только тогда, когда Dn^P) является графиком f. Можно показать, что f является частично рекурсивной функцией тогда и только тогда, когда существует 2-программа, вычисляющая ее на URM.
Более узкий класс функций получается, если снабдить URM устройством, которое гарантирует нам, что вычисления всегда
!) В оригинале «jump orders». — Прим, перев.
имеют конечную длину. Таким образом, J-ограниченная машина <JNY^ ранга г есть URM ранга г вместе со специальным регистром J, на который не распространяется действие арифметических команд; S-программы, определенные точно так же, как и для URM, подчиняются следующим ограничениям, налагаемым на них регистром L
Никакая команда не может выполняться, если 7 = 0.
После выполнения команды выбора из I вычитается 1. Следовательно, если S-программа начинает работать на JM с п > 0 в J, то машина останавливается (но это не динамический стоп!) с 0 в J сразу после выполнения в процессе вычисления
п-й команды выбора. Число в J поэтому определяет количество двуисходных) решений, выполняемых в процессе вычисления на 2-программе.
2-программе Р = {/(1), ..., /(6)} естественным образом соответствует ориентированный граф G (Р) — диаграмма переходов Р, вершины которого соответствуют командам выбора, а ребра — последовательностям арифметических команд, встречающихся в процессе вычисления с помощью Р между двумя последовательными командами выбора (Петер [5]).
Пусть r = r(PY предположим, что Р имеет команды выбора Щщ^ = JatmApW, q(m)), Km<s, где /i</2< ... <h = k. Положим 0*=l и Г = (цт) (jm ^ p (z)), Г = (pm) Um ^ Я (z)) Для l^m^s. Тогда G (P) (рис. 1) состоит из вершины К(0), вершин К (1), ..., N (s), соответствующих Цн\ ..., /(/,), и ребер b (0), b (i), с $, 1 ^ z ^ s, где
N (z), К (Г) — начальная и конечная вершины Ь(Г), 1 ^z^s;
N (z), ^(z**) —начальная и конечная вершины c(z), l^z^s;
b (z) соответствует последовательность Qz арифметических команд:
V<P$)» ./(/i.-1)}- если Р^<Ь*& 1 <^<s»
_ {0} (пустая последовательность), если
[/НО =/г«& 1 S1 V U = 0&/! = 1],
{/ (1), ..., / (/i — 1)}, если г = 0 & /1 > 1;
с (г) соответствует последовательность Qi :
М/(</(/)),/(/^— 1)}, если q (t) < j.^ &l^i^s,
{0}, если ^q (z) = /.^ & 1 z sj.
Вычислению с помощью P соответствует путь в G(P), начинающийся в N^Oy Если путь достигает вершины N уу соответствующей /а(г)(р(0, qU^y то далее он идет по ребру b(fy если Ра(П=У и по cWt если Ra№EV Если Р начинает работать на JM с J = n, то вычисление, начинающееся в N (0), образует путь в G^P) длины п; ^-сложность вычисления определяется числом п, т. е. числом двуисходных решений (выборов), производимых в процессе вычисления.
Пусть Н есть функция на Nn. Говорят, что функция f, определенная на Nn, (h, НУ вычислима, если существуют число / и S-программа Р, такие, что, начав работать с J = h{x\, ..., хиу Ri = Xt для l<z<zz, /?г = 0 для n<Km, JM ранга пг^ >шах(/, г(Р)) останавливается с Rj = f(x\, ..., хпУ Мы пишем f = \P,HY f также определена на Nn.
КЛАССЫ ФУНКЦИЙ, ВЫЧИСЛИМЫХ НА /ОГРАНИЧЕННЫХ МАШИНАХ
Если использовать понятие «сложность вычисления», введенное в разд. 2, то метод Ричи построения классов вычислимых функций дает последовательность Е(2)о, Е(НУ, Е^ну, ... ...,£(2)со, определенную посредством
(2)(2)£(2)0 = {flf = [P, НА, Рее 91(2), Н^СУE^r+x = U\f = VP, А]. Ре 91(5), кеЕ(Ж
(2)
(2)
Е^Й= (J E^V
г < 0)
где С является множеством константных функций. Легко проверить, что г <s влечет Е (2)г г Е(2)5.
Цепь {Е(2)г} классов может быть охарактеризована также рекурсиями. Пусть U^Xx» ..., хт^ = хь если г>/, и 0 в противном случае; S* = SU {t/z} и Cl (2*) — замыкание 2* относительно композиции. Пусть также At е= Cl (2*)[n> n, m ^ п. Рассмотрим рекурсии (совместные итерации):
Ri (хь • • •, хт» 0) = хь если 1 ^ I ^ т, 0, если т < i ^ п» 1 Rt (хь ..., хт» у + 1) = Ai {Rx (xb ...» хт»у\ ...» Rn (xb ..., xm, у)). j (3) F(2) обозначает совокупность функций R, определенных совместной итерацией из С/(2*).
Теорема 1. Функция f» определенная на Nn, является (Н» 2)- вычислимой тогда и только тогда, когда существует функция R^ F ^n+}A\ такая, что^хх» ...» xn) = R{xx» ...» хп» h(xx»...» хп)).
Здесь co-цепь {£ (2)г} можно продолжить за со до со2, используя процесс, определенный в (1). Это равносильно построению для каждого предельного трансфинитного числа сог нового множества ^Е^) арифметических команд, которое затем используется для вычисления функций в Etor+s» I^s^cd. То, что построение стягивается к со2, ясно из следующего соображения. Пусть P = V^Y •••> /(^)}есть ^-программа. Команды /(г), 1^г^£, построены из функций Fr^E^. Однако если РГ€=Е^, то существует число ат» такое, что Fr^E^ar» 1 ^г^б. Если z = max(ab ..., ak\ то Р является В^-программой. Следовательно, построение (2) с 2 = £ю2 дает цепь, уже содержащуюся в {£г}, г<со2.
Свойства со2-цепи ^ЕД, г<ю2» определяются, конечно, множеством 2, из которого строится исходное множество арифметических команд. Особый интерес представляют „нормальные" множества. 2 является нормальным» если С1 (2*) содержит строго возрастающую функцию h^y\ такую, что для всякой функции g^Cl ^*^п' существует целое m и что f (m, max ^х^) > > g^X\» ...» хп) для всех хь где f определяется рекурсией f (0, у) = у + 1, f (д + 1» у) = ЦЦп» у)). Если 2 = {+, X» б}, то 2 нормально с h (у) = (у + I)2.
Теорема 2 !).
Пусть а<т и f^E[^a+r> gi^ Е^*Д для X^i^n; тогда если F (хь ..., хтН (gx (xb ..., х J, ..., gn (xb ..., x J), to n ,—1]
Г jCtoa+r+s-
Если а<ю, то F (EJ ^ ^(а+о и СЦЕ (£юа)) = Е® (а+1).
2. Если 2 — нормальное множество функций, то Er a Es, г < $ < со2.
Если ^ — нормальное множество функций, a<to,
К, ..., xn, ^ = g<xx, ..., хп\
f(xb х„, у + 1) = А(хь ..., х„, у, f(xb хп, у)),
то f е £m+1, ", m = <oa + max(r, 1).
Ecau'S—нормальное множество функций, а<го, he Е^+$1\ s>0, §еЕ^+' и существует функция ЬеЙ^’Д такая, что Цххxn, y^h^xxхп, у}, еде
f(xb ..., хп, 0) = g(xb ..., х„),
f(xb ..., х„, у+ \)^h(xx, ..., х„, у, f(xx, ..., хп, у)),
тогда fe£m+1’", где m = ша + max (г, s + ty
Если S — нормальное множество, тогда для всех г, 1 ^ г ^ со2, Ег замкнуто относительно операций ограниченного суммирования и умножения, т. е. если F ^Е[^+1,1\ то f, geE^1'", где
К, .... хп, у) — 2 F<xb ..., хп, I),Ку
g (xb ..., хп, у) = п F (хь ..., хп, i).Ку
Рекурсивные равенства, определяющие работу /-ограниченных машин, приводят естественным образом к получению классов Ет с помощью совместной итерации, с другой стороны, ограниченная рекурсия играет решающую роль в порождении классов ^г Гжегорчика. Так, ^п определяется как наименьший класс функций, содержащий х + 1, U\\x, у^ = х, U2U» У^ = У^ fn^x»y) и замкнутый относительно подстановки и ограниченной рекурсии, причем
(4)(4)ЬДх, у^ = у+1,fl (х, у) = х + у,f2(x, у) = (х+1)(у+ 1),( L+1 (0, У) =fn(y+l, У + I),ДЛЯ П ^ I Ul U + 1, у) = fn + l (X, Ul (X, У)).
(4)
(4)
Соотношение между этими двумя последовательностями классов устанавливает
Теорема 3. Если 2 = {+, X, 6}, тогда для s^l EtoS = ^s+2.
4. ПРЕДСТАВЛЕНИЕ ПРОГРАММ СОВМЕСТНЫМИ РЕКУРСИЯМИ
Обозначения. Согласно определению функции, вычислимой на JM, результат вычисления берется из наперед заданного регистра после того, как программа остановится. Естественно расширить определение до функций со значениями в Nn (для всякого п^ беря результаты вычислений из наперед заданной n-ки регистров. Следующие определения устанавливают обозначения для функций из Nm в Nn, которые удобны для выражения свойств функций, вычислимых при помощи 2-программ.
Если А обозначает n-ку (а^ а^ ..., ап^ объектов (функций или чисел), тогда (Л)г обозначает r-ю компоненту А, если г^п, и 0, если г > п. Если не возникает недоразумений, мы пишем Ат вместо (Л)г.
Пусть S —множество функций натурального аргумента. Тогда Stm*11 обозначает подмножество функций m переменных в S. Stm’ п] обозначает множество n-ок (Ль Л2, ..., А^, где A^S^’ 11, l^Z^/г. Таким образом, если Ле5|тл1, то А отображает Nm в NP. Пусть M[m* п^ обозначает множество всех функций на Nm со значениями в N".
Если Ле5[т'rtl, Ве8^т\ то АВ определяется посредством (АВ\ (%) = At (By (%), ..., Bm(x^ для всех xeN/ и l^Z^/г. Если S замкнуто относительно композиции, то AB^Su’n\ Im обозначает ([/Г, U^ .Um\
С 2-программой Р ранга г и йеМ^’!,(5^г) свяжем функцию л(Р, A)eM[r*rl, такую, что для всех XeN5 если Р работает на JM ранга г с (Rb ..., Р^ = ГГ и J = h(X\ то Р останавливается с (/?ь ..., R/) = ti(P, h)lf(X).
Говорят, что функция А г M[rt’ m] (й, 2)-вычислима, йеМ^’11, если существуют числа а(1), ..., а(т) и программа Р, такие, что r = r^^ max (a(s)) и At = (л (Р, hr^I^Y,^ \^i^m.
l<s</n
Для m = 1 это определение совпадает с прежним определением на стр. 98.
Определение классов Е (S)r в (2) может быть теперь расширено: Е^^Г^ есть множество функций ЛеМ[и,т1, таких, что
существует НеЕ^* п, для которой А является (й, 2)-вычи- слимой.
Заметим, что если А е Е (S)^’ ^^ то Д/е Е (2)^’1]. Однако нужно еще доказать, что если fb ..., fm е Е (S)^’ 1], то (fifm)^E (£)*"’ "” (следствие 3).
Пусть F, G е М"’ ". Мы пишем F^G, если для всех XeN" F(X^i^G (X), и определяем F + G посредством (F+G)(X) = = F(X)+G(X). Определим max (F, G) как max(F, G)(X)= = max(F(X), G(X)).
Если ЛеМ1"’"1, то Ax определяется рекурсивно: А0 = In, Ах+' = ААХ. Это дает нам краткое обозначение для совместных рекурсий (3). Так как из At е Cl (S*)1"- " имеем Л = (Л,, ..., Лп)е е Cl (S*)["’nl, то, следовательно, и для X е N"1 имеем
(Rb .... RnHX, У) = АУ1^(Х).
Таким образом, Rts F ^Ут+Х’1^ тогда и только тогда, когда существуют А е Cl (S*)[rt’nl, п^т и /^м, такие, что Rt (X, у)= ^AyS (X))t,
Нам будут полезны функции J, К. L, нумерующие пары *): /(x>y) = .(£±J/)(£+jM^
L (2) = [Щ8£+11±1] (/< (2) + 1).
Они связаны тождествами ЦК^ Lz^^z, КЦх, у^=х, LJ (х, у) = у. Далее мы будем пользоваться функцией |Зт, такой, что для XeNm
pm(X) = J№, (... ]^Хт_ъ ЦХт_ь Хт^ ...)).
Если 2 содержит {+, Х,б}, то
/sE(S)i2a12),
К,Ье=Е^л\ ^теЕ^+1’х\
Представление программ. С командой I = f(Ra? ••, Ra^ ~> —>Ro и числом m^r^ свяжем функцию qm^^^m,rn\ где для XeNm
f Хь если 1 ^ Z ^ m и Z В, (^WW)^ нх х . если z_g
Если команда / выполняется на URM U ранга m с Ri = Хь l^Z^m, то после окончания ее выполнения ^дт^П W)i будет помещено в Ri. Следовательно, если С = {/(1),...,/(й)} является последовательностью S-арифметических команд ранга т. то после окончания работы С на U с Ri = Х^ l^Z^m, (qm^Q (Xh ..., Xm^i будет помещено в Rb где
qm^ = qmU^qm(Hk-l^ ... qmU ^\
Ясно, что qm{C) е СЦ^*^’ m]-
Если С есть нулевая последовательность команд, то полагаем qm (С) = 1т.
Пусть А е Cl^y^ т\ тогда, вообще говоря, невозможно найти последовательность С 2-арифметических команд, использующих только R\,.. ., Rm. такую, что qm^ = А. Тем не менее, используя дополнительные регистры как «рабочее пространство», А можно вычислить в следующем смысле: существует последовательность С (ранга n>m) 2-арифметических команд, такая, что <дДСМп\ = Аь \^1^т. Здесь и далее 2 з з{Х,+,6}; 0^С/(Х,+,6), где 0(х) = 0]). Следовательно, 0 е С/(2*)[1’1]. Отсюда следует, что для каждой В е С1 (2*)[гп’ т ] можно построить такую последовательность С ранга п^ ^т^х^т.т^ 2-арифметических команд, что
ШсМТ\ШсМТ\Вь оиТ,Вь оиТ,1 ^Z ^ т\1 ^Z ^ т\т <i^.n.т <i^.n.(5)(5)
ШсМТ\
ШсМТ\
Вь оиТ,
Вь оиТ,
1 ^Z ^ т\
1 ^Z ^ т\
т <i^.n.
т <i^.n.
(5)
(5)
Таким образом, если С работает на URM ранга п и Ri = х^ для 1 -< Z -< m, Ri = 0 для Z > т, то в регистрах R^ 1 ^ Z ^ m, будут помещены (В(х))г-, в остальных — нули. Отсюда сразу следует лемма 1.
Лемма 1. Пусть /ieMiui, А е Cl ^т-^. Тогда если D^ = = AhWIlm{X'), то D (h, ^-вычислима.
Обращение леммы 1 и дальнейшие следствия устанавливают соотношение между понятиями «2-программа» и «совместная 2-итерация».
^ 0(х) = д(х, х + д(х, х)). — Прим. ред.
Лемма 2. Пусть Р = {/(1),.. .,/(&)} есть ^-программа ранга г, имеющая команды выбора I(/i), ... J(js). Тогда существует такая функция Л е С1^*УГ^Х’ ,+Д что если Р начинает работать на URM с Rt = Х^ 1 ^ z ^r, X eNn, то при m-й команде выбора I(jp), встречающейся в вычислении при помощи Р,
U"7r%,W),.=U"7r%,W),.=Кь р.Кь р.еслиеслиеслиеслиl<zl<zi = г + 1.i = г + 1.
U"7r%,W),.=
U"7r%,W),.=
Кь р.
Кь р.
если
если
если
если
l<z
l<z
i = г + 1.
i = г + 1.
Доказательство. Заметим сначала, что 1, z, ze е С/({Х, +, 6}), где1)
[ 1, если х = 1,_[ 1, если х=#1,
1(х)^1, 2 (х) = л= l Л1
( 0, если х^1;10, если х = 1.
Функция А будет построена на основании диаграммы переходов G (Р) программы Р (разд. 2). G (Р) состоит из вершин N (Г), X^i^s, и ребер 6(z), O^z^s, c(i\ 1 ^z^s. Ребрам 6(z), с(^ соответствуют последовательности Qu Qi S-команд и, следовательно, функции qT(Q*^ qr(QT) ^ С1(^У ’ \ С вершиной N (Г) свяжем функции [/(1)еМ|г,г1 и Н°еМ[г’и, где
и? m - г <^„ „,) ч, Ш (х)+2 и. ,„) ч, (q7), m.
1 ^ г ^ s, 1 ^ / ^ г;
J^V еслиХа(0=1,
,qr^P если Ха(0^1, XeNr, 1</<s, Kj<r;
V<0> (I>1,
Hi,W=ZZ(Xa(i)) + r2(Xa (,.)) =
Г, если Xa(f)=l, Г\ если А^^М,Г, если Xa(f)=l, Г\ если А^^М,XeNr, l<z<s.XeNr, l<z<s.
Г, если Xa(f)=l, Г\ если А^^М,
Г, если Xa(f)=l, Г\ если А^^М,
XeNr, l<z<s.
XeNr, l<z<s.
Таким образом, если в процессе вычисления при помощи Р при достижении вершины N (z) (Рь ..., Rr) = X, следующей достигнутой вершиной будет N^V^X^), при этом (Рь ..., R^ = №(Х\ Пусть Рг+ДХ, у) обозначает индекс z вершины N^. соответствующей у-й команде выбора, встречающейся при работе Р над X. и пусть RAX, у), X^i^r, обозначает содержимое регистров Rj в этот момент — работа Р над XeNn начинается с Af(O) при Ri(X, 0) = Xiy \^i<.r. Тогда содержимое регистров в момент выполнения (z/+ 1)-й команды выбора выражается через содер-
}) 1(х)=д(х,х), г(х) = d(x, 1 (х)), 2(х) = 6(0(х), г(х)). — Прим, ред»
жимое регистров в момент выполнения у-й команды выбора следующим образом:
R^X, у+А^^ЛАРг+ЛХ, у), ПиТОШ, у), RAX, у)),
_ Qr^p еСЛИ РацЛХ' У^1 И Rr + AX’ У^1’ - Лг№р еслл РаиАх-У^х и Rr+Ax>y^ = i’ ^Д/(№, у), Rr+AX, у)), 1</<г,
Rr+i (X, у + 1) = 2 б <Rr+x (X, у), z) Vw (Rx (X, у\ Rr (X, у)),
1=0
_ ( Г, еслиRa у) (X, у) = 1иRr+X (X, у) = I,
“U”, еслиRaaAX, у^1иRr+X (X, у) = z,
^.^(Х, у), Rr+AX, у)).
Однакотаккак qr(Q?), qr (q7) г Cl (S*/'’ r\тоU^'e C/(s‘)'r’r|*
И11 e Cl(2*/r1\ а такжеA, e Cl (S*)lr+I>’LСледовательно,
A = (Д1, ..., Лг+1)C/(S*)lr+1, r+". Отсюда следует, что
№U,y), Rr+AX, y)) = AyC+AX).
Содержимое регистра R; в момент выполнения m-й команды выбора /(/р) при работе Р над Л" есть поэтому
RAX, /тг) = (Дт/"+1№)/,1^/^г,
Rr+x(X, m) = р = (AmIr+i W)r+i, ч. т. д.
Отсюда сразу следует
Следствие I. Пусть В есть (h,^-вычислимая функция в ММ, т1. Тогда
существуют числа аь аг,..., czm и функция А е С/(2*)МН> такие, что
(В w )MAh (X) \, к/<т;
существуют функции Ri(X,y)^F(5), l^f^m, такие,
{B^XA^RAX, h(X)).
Из следствия 1 и равенств (2) может быть получена нормальная форма функций из классов Е (S)r. Пусть feE^r"’11.
Тогда существуют г+1 функций Rt е F (2)[rt+1,1], O^t^r, и число т, так что
ЦХ^КДХ, Rr-dX, RAX, RAX, mA ...))(6)
(фактически мы можем всегда предполагать т =1 ).
Следовательно,
E^^ClkF№(7)
Включение (7) будет усилено до равенства в следствии 5 разд. 5.
Из следствия 1.2 и леммы 1 непосредственно вытекает теорема 1.
Из построения Л на стр. 104 ясно, что представление функций совместными итерациями, устанавливаемое теоремой 1, зависит от того, содержит ли 5 множество {X, +,6}. Разумеется, всякое исходное множество функций 2, такое, что С/(2*)^ ^{ + ,Х,д}, дает тот же самый результат. Выбирая 2 более простым множеством функций, можно получить более тонкую классификацию начала цепи {Ег}, О^г^со2, однако такой выбор влечет за собой отказ от единой формы получения иерархии с помощью совместной итерации и композиции (теорема 2.1.2).
На основании теоремы 1 мы можем определить без ограничения общности множество S-программ как множество 21(2) =
= U С/(2*)1г*г]. Если Л е Cl (2*)[г,г], то г есть ранг г (Л) функ- г = 1
ции Л.
Из равенства (5), следствия 1 и леммы 1 имеем
Следствие 2.
£(2)о = С/(2*) и Е^гЕ^.
СВОЙСТВА ПРОГРАММ И КОМПОЗИЦИЯ ФУНКЦИЙ
Для того чтобы построить композицию функций, вычислимых на URM программами, следует иметь в виду, что условие останова определяется однозначно самими программами. Так, чтобы вычислить f(g(x)), необходимо отождествить команду останова программы g с начальной командой программы f. Условие останова JM-программы определяется, однако, /-регистром, а нс программой. Поэтому возможность композиции функций, вычислимых на JM, зависит от построения программ специального вида, известных как «самоограниченные (SL) программы».
Пусть ЛеМ[л’т] и ф еС/(2*)^-^\ р > max(n, m). Тогда ф является SL ^-программой для Л, если существуют числа
а(1), ..., а(т) и функция у, определенная на N", такие, что
1 ^ Z ^ т;
/ г „ X ( 0, ф(г, ХМфШ = | ь/ г „ X ( 0, ф(г, ХМфШ = | ьr> у W;r> у W;1 ^ f ^ m и если г ^ у W, если г>у(Х).
/ г „ X ( 0, ф(г, ХМфШ = | ь
/ г „ X ( 0, ф(г, ХМфШ = | ь
r> у W;
r> у W;
у называется С-пределом для гр, a q) (г, X) — сигналом. Таким образом, гр обладает «внутренним» пределом для числа итераций, необходимых для того, чтобы завершить вычисление гр^(¥) и, кроме того, получить значение сигнала, изменяющегося от 0 до 1
SL 2-программу гр можно включить в объемлющую программу Г; сигнал для гр служит началом вычисления другой частью программы Г после того, как вычисление гр^(Х) уже завершено. Так, предположим, что © е= 91 (2)[r*rl. Пусть еще XeNr, УеМ^ и
1 ^^Г, 1 ^ Z < р.1 ^^Г, 1 ^ Z < р.ГДХ, YMiWp, IHXtWp, 1), rr+tH, YHM
1 ^^Г, 1 ^ Z < р.
1 ^^Г, 1 ^ Z < р.
Если тогда ZgN", п<р, то
UUаа. №)wcmv.. о).
U
U
а
а
, (-фу(2,/"(г)), (-фу(2,/"(г))г^х, Гр (z)) =г^х, Гр (z)) =если m^y(Z);
, (-фу(2,/"(г))
, (-фу(2,/"(г))
г^х, Гр (z)) =
г^х, Гр (z)) =
если т = у (Z) + 1; (@"-v(2)-im> (^(z^^^.., ^®№^p_v если m>y (Z) + 1?
т. е. вычисление 0 от X будет эффективным только тогда, когда сигнал для гр изменяется от 0 до 1.
Заметим, что если Л вычисляется на SL 2-программе с С-пределом g и если существует такая F е Е (2)^’ 1], что F^g, то AW^Fmrp(,X)\w l<i<m, а также ЯеЕр^Г1.
Следующая лемма, устанавливающая свойства SL программ, доказывается стандартным применением вышеизложенных положений.
Лемма 3.
Пусть Ft е М^’ 1], l^f^m, вычислимы SL ^-программами соответственно с С-пределами fb ..., f^ и пусть Фе г Cl (2*)""’ °. Тогда Ф (Fb ..., F^e М1"1 11 и (Fb .... Fm) е М1"'т| вычислимы SL ^-программами с С-пределами max(fb .. .>fm)+ 1.
Пусть F = [Р, О]. Если G можно вычислить SL ^-программой с С-пределом g, то F можно вычислить SL ^-программой с С-пределом G + g + 1.
Если ЛеМ[т* п\ ВеМ^ можно вычислить SL ^-программами соответственно с С-пределами f, g, то АВ можно вычислить SL ^-программой с С-пределом fB + g + 1.
Пусть feM[n+2J] определена посредством
f(X, ^ 0) = z, ЦХ, г, у^П-ЦХ, у, f(X, г, у}\
Если h можно вычислить SL ^-программой с С-пределом g, то f можно вычислить SL ^-программой с С-пределом
у-'
KU, У, z>=^g<X, г, ЦХ, 2, г)) + 2у+1.
г=0
Индукцией по г из леммы 3.1 мы получаем
Следствие 3. Если Дь .Am е Е (S)J."’ " и ФеСЦГ^'^, то существуют функции feM(ге’ 11 и Е^Е^Л\ f<F, такие, что (Ль ..., А^ и Ф(ЛЬ • Лт) вычислимы SL ^-программами с С-пределами f. Следовательно, (Ль ..., Лт) е £* (S),”' m] и Ф(Аъ...,Ат)^Е(^- ".
Из леммы 3.2 и следствия 3 индукцией по г получаем, что все функции в (J Е^т можно вычислить SL ^-программами, г < со
Следовательно, индукция по г в лемме 3.3 дает
Следствие 4. Если АеЕ(#п\ В^Е^'т\ то АВе
Теорема 2.1.1 следует отсюда немедленно.
Из следствия 4 ясно, что класс E^to замкнут относительно композиции.
Следствие 5. C7(F(S)) = E^)to.
Доказательство. Следствие 2 дает F (2) ^ Е (2)1 г — E ^to. Так как E(^)to замкнуто относительно композиции, то СЦЕ^^Е^. Однако из (7) разд. 4 Е^^аЦЦЖ Следовательно, Cl ^Е (5)) = Е (S)w, ч. т. д.
Теорема 2.1.2 следует из следствий 2 и 5.
НОРМАЛЬНЫЕ МНОЖЕСТВА ФУНКЦИЙ
Пусть S — множество функций одного переменного. Тогда, если f — функция одного переменного, / мажорирует S, если для каждой g^S существует число п, такое, что Цх) > g(x) для всех х > п.
Лемма 4. Предположим, h ее Е (2)о * п. Пусть f(0, #) = #+!, f(n+l, y> = h^^n, у)), F^n, у^ = Нп, у), FN + X(n, y) = f(FNVM\y\ Если h строго возрастающая и для всякого п и всякой geE^o* 11 существует число т, такое, что для всех XeNn справедливо ^пг, maxто
для любых Nun если k ^ = F N (п, у), то к^Е (2)^’п; для каждого п если Цх, y)=FN(x, у\ то I^E^n^V
для всякой geE^NJ1 существует число т, такое, что для всех XeN^ справедливо FN(m, max Xtj> g(X);
для каждого N если k(x) = FN (x, x), to &g£(2)^,4!1i и к мажорирует E (S)^’1J.
Доказательство этой леммы легко проводится индукцией по N. пп
Замечание. 1) Если ZeN", то положим 2 ^—2 Xv Тогда / = 1
п
2 ^ £ (#• 11 и
2 (X) > шах №).
Следовательно,
FN^m, 2 ^) F N (m, шах Х\
По следствию 4 FN^m, 2)е£(^)^’ 1]-
Если 2 — нормальное множество функций, то, так как С1 (2*) = Е (2)0, E(2)o’1J содержит функцию h со свойствами, сформулированными в лемме 4.
Из леммы 4.3 следует
Следствие 6. Если 2 нормально, то E^NcE^№ N = 0, 1, 2,.
Лемма 5. Если 2 нормально, таковым является и Е (2)й.
Доказательство. Так как 2 нормально, существует функция h со свойствами, сформулированными в посылках леммы 4.
Пусть h*^ = h<x,xY Тогда h* ^ F^yxHdE^to и является строго возрастающей.
Пусть /* определяется рекурсией f* (0, у) =y-Y 1, /* (^+1, у) — = h*j* (п, у). Так как по следствию 5 E(2)to = CZ(E(2)to), то, для того чтобы доказать нормальность E^to, достаточно показать, что для каждой g^E^o существует число пг, такое,
что для всех X справедливо g(X) < f* (т, max X). Фактически в силу леммы 4.2 необходимо только показать, что для любых N и п существует т, такое, что F^^n1x^<Y уп.ху
Теперь f (n, х) > n + 1. Следовательно, Р0(п, x^^F^O, xY Индукцией по N и т получаем FN(n, х)^^+п(0, х), Fm(0, х)< <f*^m,xY Следовательно, FN(n, х) < f* (N + п, х), ч.т. д.
Теорема 2.2 следует теперь из леммы 5 и следствия 6.
ОГРАНИЧЕННАЯ РЕКУРСИЯ
Пусть S — класс функций. Функция f определена ограниченной рекурсией из S, если существуют такие функции g, h, к е S, что
Щ1хп, 0) = ^(хь ..х„),
Щь х„, у + 1) = /г(хь .... х„, у, Цхъ .... х„, у)), f(xb хт у^1Цхь v ., хт у).
Из леммы 3 следует, что если g, h е Е(2)ю, то можно построить для f SL 2-программу л. Если 2 нормальное и k^E^Y^ лемма 4 и следствие 4 позволяют отыскать границу для С-пре- дела л в одном из классов Е(2)г; таким образом, для f имеем:
«Лемма 6. Пусть 2 — нормальное множество функций.
Если кеЕ^"+2Л\ gsE^1'" и если ЦХ, O) = gCO, / (X, у + 1) = h (X, у, f (X, у)), то feE (2)‘Г+1- ”, и = max (г, 1).
Если ИгЕ(S)s"+2, 1], s>0, ge Е(2)^’ 11 и существует такая функция кгЕ(2)<"+1, !1> что для всех XeN" справедливо f(X, y)^k(X, у), где UX. O^gW. ЦХ, y+l) = h(X, у,ЦХ, у)), то f е£(5)ц+1’21, ц = тах(г, s + ty
Пусть ЦХ, у^ = 2 F^X, z), g(X, у)= П F<X, i\ Из леммы 3.1 следует, что если Рб£(2)^+1,11, то f, gG£(2)$,"+1,11. Таким образом, каждый класс Е (S)r замкнут относительно операций ограниченного умножения и суммирования. Более того, если 5 —нормальное множество, то класс E^q замкнут относительно ограниченной рекурсии.
Пункты 1, 2, 3 теоремы 2.3 сразу следуют из лемм 5 и 6.
ИЕРАРХИЯ ГЖЕГОРЧИКА КЛАССОВ ПРИМИТИВНО РЕКУРСИВНЫХ ФУНКЦИЙ
Для установления результатов этого раздела целесообразно свести совместную итерацию к простой итерации, используя функции, нумерующие пары. Пусть 2 s Cl(S*UУ.К, L^.
Из стандартного представления (равенство (6)) функций £(S)W вытекает
Лемма 7. Пусть 2 нормально, и пусть РЦ^ПЛЛ’^ — множество функций_П, определенных на Nn+1, где R(X, у) = КФу$т1т(Х), т^п, Фе^1,11. В этом случае ^^Е^^’^ тогда и только тогда, когда существуют функции Rx, ..., Rsg Ff (Х), такие, что
№=RAX, RAX, RS(X, 1) ...)).
Отсюда непосредственно следует, что
СЦРЧ^^Е^.(8)
Далее, так как К, ^т^Е^, имеем
СЦГЧЕ^^ Eto (s+1).(9)
Множество К элементарных по Кальмару функций является наименьшим классом функций, содержащим х + 1, ху и замкнутым относительно подстановки и ограниченной рекурсии (Гже- горчик [1]). Приведенная ниже лемма 8 является аналогом результата Ричи.
Лемма 8. Если 2 = { + , X, 6}, то Е^ = К.
Доказательство. (1) К^Е^. Мы будем пользоваться леммой 7, чтобы показать, что Р'^^К, где Р7^) есть множество функций R(X, у^ = КФУ$пг1тиС), ®SS1'’11.
Во-первых, J, К, L, +, X, 6 е К. Следовательно, S ^ К. В таком случае достаточно доказать, что функции Т, где
TU, 0) = х, Т(х, у+1) = ФТ(х, у)=Фу+'(х)(10)
и Ф g ^'-Ч, принадлежат Л12’Ч. s = { + , х,6} нормально с Цу)— = (у+1)2. Пусть f определяется посредством f (0, у) = у +1, Цп+ 1,у) = Щ(п, у)). Тогда f (х, у)< 24 (у + I)22 = Н (х, у) и НеКУ^У Так как /<(х + у + I)2, (х + у + 1)2еС/(2*) '), г ^ Кг, то для каждой функции Ф g S существует такое число k, что f(&, х)>Ф(х) для всех х. Следовательно,
H(ky, x)>f(ky, х)>Фу(х)=Т(х, у).(11)
Из (10), (11) следует, что Т определяется ограниченной рекурсией из элементарных функций и поэтому Т ^ К. Таким образом, Р7^) ^ К, и, следовательно, по лемме 7 K^E^to.
К^Е(^ w. Из теоремы 2 получаем, что Eto замкнут относительно композиции и ограниченной рекурсии. Далее,
9 В оригинале I е С/(2*). — Прим, перев.
функции х + 1, ху содержатся в £0 и Ех соответственно. Следовательно, К ^ Eto.
На основании (1) и (2) имеем К = Ет. ч. т. д.
Теперь может быть доказана теорема 3, показывающая, что последовательность {£г}, co^r^co2, является для г^З уточнением иерархии {^г} Гжегорчика.
Теорема 3. Если S = { + , X, б}, то для s^ 1 £ws = ^s+2.
Доказательство. Гжегорчик показал, что ^3 = А. Теорема, следовательно, верна для s = 1. Мы докажем, что предположение £tos = SHs влечет ^3+s f^s+i) и ^3+s ^ Em^xy Теорема будет отсюда следовать индукцией по s.
Пусть m = s + 2, и пусть fm определена как в (4). Если gm(x) = fm(x + 1, х 4- 1), то по индуктивному предположению gm ' Ems*
Пусть G (у, х) = §уЦх). Тогда по теореме2.3.1 G ^Etos+V Далее, fm+Лу, x) = G (2У, х\ Однако если &(z/) = 2y, то k^Eto^EtoS. Следовательно, по теореме 2.1.1 fm+x е EtoS+v Так как Em (s+i) замкнут относительно ограниченной рекурсии и x+l, U^ U^^E^ ТО Г^Е«№
Можно легко показать, что если h ее ^п, то существует х, такое, что для всех у
A(y)^fn+i(^t У?У(12)
Предположим, ЧТО Ems ^ ^s+2, и пусть Фе£^1]. Тогда из (12) следует, что существует такое число £, что для всех х
ФИ^^+1(^> х").
По индукции отсюда следует, что
ФУ(хХ^+1(у + ^, х).(13)
Однако если Цу, х) = fm+x (у 4- k, х), то l^S^V А так как ^m+l ^ §т^ то фе^1, (13) определяет Ф^(х) ограниченной рекурсией в g^x. Следовательно, так как Л, рте^3, то ЕЦЕтз) ^ g3^1, а при помощи (9) заключаем, что £w(s+1) == = СЦЕЦЕтз^^СЦ^^^^Ч ч.т.д.
Следствие 7. Eto2 является множеством примитивно рекурсивных функций.
Доказательство. Имеем Р = (J ^ = (J EtoT, ч. т. д. п=о г«0
!) См., например, [1]. — Прим, перев.
Гжегорчик показал также, что для п > 2 класс ^п+1 содержит универсальную функцию для класса ^Г. Обобщая, можно показать, что если 2 — конечное нормальное множество функ- ции, то для I г < (о множество b^+f содержит универсаль- иую функцию для Е^;
ЛИТЕРАТУРА
. Grzegorczyk A., Some classes of recursive functions, Rozprawy Ma- tematyczne, 4 (1953), 1—46. (См. стр. 9—49 настоящего сборника.)
R i t c h i e R., Classes of recursive functions of predictable complexity, Thesis, Princeton.
. Shepherdson J., Sturgis H., Computability of Recursive Functions, Journ Assoc. Comp. Mach., 10 (1963), 217—255.
Robinson R. M., Primitive recursive functions, Bull. Amer. Math. Soc., 53 (1947), 915—942.
Peter R., Graphschemata und rekursive Funktionen, Dialectica, 12 (1958), 373—393.
ИТЕРАЦИЯ ПРИМИТИВНОЙ РЕКУРСИИ)
П. Акст
В [2] примитивно рекурсивные функции классифицированы в иерархию <^п, /г = 0, 1, 2, ..., основанную на операции ограниченной примитивной рекурсии. В [1] эта иерархия, начинаясь с (^4, конструируется с помощью некоторых методов перечисления, описанных в [4]. В данной работе иерархия примитивно рекурсивных функций строится на еще одной основе, именно на подсчете числа итераций схемы примитивной рекурсии. При этом мы указываем, каким образом она связывается с иерархией из [2] и [1].
Функции fn и классы ^п определены в [2]). (I), ..., (V) — примитивно рекурсивные схемы из [3]. Для п = 0, 1, 2, ... определим класс Кп примитивно рекурсивных функций следующим образом: ф еУ(н тогда и только тогда, когда <р вводится посредством одной из схем (I), (II), (III) или (IV), если данные функции ф, хь Хт — уже построенные функции из K7U или посредством (V), если п > 0 и данные функции ф, х ^ Кп-ь Немедленно следует, что Кп — Кп' и что является классом примитивно рекурсивных функций.
Теорема 1. Для всех n fn^ Кп-
Доказательство (индукция по п). Рассмотрим сначала п = 0, 1, 2.
Если п = 0, то fn(b,a) = a7 и ХЬа^а^е Ко-
Если n = 1, то fnU^ а) = b 4- а. Так как Xba(b 4- а) задается посредством
f Ь + О = Ь,
( b 4- а7 = (Ь 4- а\
и Xbb и Хсс7 принадлежат Ко, Xba(b 4- а) е К\. Если п = 2, то fn(b, а) = Ь' • а7. Так как Xba(b7-a7) задается посредством
f У • 0х = Ь7,
I Ь' • а7 = Ь7 • а 4- Ь7
и Xbb' и Xbal.b Л-а) принадлежат Кь то Xba(b' • а') е Ki. Если п>^. допустим (индукционное предположение), что )пеКп. Отметим, что ХЬУ задается посредством
2° = 1,
так что Х62ь е Ki. Поэтому если определить
an,(0, a^f^a', а'),
anAb\ aWnl^nAb, а))', (апДЬ, а^.
то 1пДЬ, сД = «.п/^3, а) и а^еКп-. Так как Ks — Kn-, п^2, мы имеем fn'^Kn'- Это завершает доказательство.
Теорема 2. Ко ^ ^ К\ ^ ^ и, если п^2, Кп — ^ и КпФ ^П*
Доказательство. Немедленно следует, что Ко — ^°- Чтобы показать, что К\^^\ достаточно показать, что если ф введена примитивной рекурсией с данными функциями из Ко» то <р ограничена функцией из ^^ Чтобы сделать это, покажем сначала индукцией по числу применений схем, не выводящих из Ко» чт0 Для любого а ее Ко имеются Z, 1 ^ i ^ п, и к, такие, что
а(ар ..., а^^ а^ = а. + k; далее, вводя ф примитивной рекурсией, предположим, что ф (ау ..., а^^а^ 2^/^п, и х(^ь bn'X.b^, X^j^n'. Индукция по ах показывает, что ф(яр ..., а^^а^. если /=1, ^ а^ + at • ку если j = 2, ^а^, если 2</<м. Таким образом,
<р(аР .a^^(av .а^ = а^ + а^ + а. • к^ + af^ и £е£\
Но К^ф^. Из доказательства теоремы 1 следует, что Ха 2а г Ki\ в силу [2, теоремы 3.4 и 4.8] для каждой одноместной функции фЕ^2 имеется такое к, что ф ограничена посред- 22^ +1 ством Xafs(k, а). Далее f3(k, а) ^(а + 2/, где г = 2[2,
стр. 29] 9, и Хаф + 2)г в свою очередь мажорируется для каждого к функцией Ха2а. Однако для ф е Ki можно показать индукцией по числу применений схем, что имеются значения к и к^ j = \, ..., п, и перестановка aix ..., а1п чисел ах, ..., ап, такие, что для р (ар ..., ап) = к + aix exp atx ... exp aix exp at2 ... ...expain с к. вхождениями at.. /=1,..., n, в степень, ф(аь ..., an)^ рфх,..., a^. Функция p e ^3. Следовательно,
9 См. стр. 34 настоящего сборника. — Прим. ped.
если ф вводится примитивной рекурсией, то функция, ограничивающая ф, существует в ^3. Для случая п > 2 может быть использовано [1, Corollary Lemma 3], чтобы показать индукцией по п. что каждая функция из Кп, полученная примитивной рекурсией, ограничивается некоторой функцией из ^п и, следовательно, что если ф е Лп, то фЕб^. Наконец, мы дополним начатое обсуждение, показав, что для п >2 имеется одноместная функция уп е ^n, которая для каждого к мажорирует Xafn'(k, а) и, следовательно [2, теоремы 3.4 и 4.8], любую одноместную функцию из ё11. Таким образом, для п ^ 2 К^фё^. Для п = 2 применяется рассуждение, проведенное выше. Для п ^ 2 пусть уП'определяется из у„ посредством уг(^) = 2а и
М0’ a) = Yn(«).
а) = у„(б„,(6, а))
и уП' (а) = бпДх (а), а), где х(а) = (а 4- 4)г • ^, г = 2 .Так как хЕ^3, то бп, ^п €= Кп Для я^З. При этом уп — монотонно возрастающая функция. Теперь индукцией по п, п^З, показываем, что ^п ограничивает а^. Если п = 3, отметим, что а4(а) = ^Да', а^ = аз(аз(аз • • • аз(°')- • •)) с 2а повторениями а3 (обозначим ар°1 (аЭ), причем а3(а7) = f3(a", а") ^(о + 4)г, где г определено, как выше. Однако Хау3(а) ограничивает 2° повторений (а + 4)г повторений ХаУ. Если п > 3, то в силу монотонности уп и по индукционному предположению ап, (а) = ар° 1 (а7)ур°,! (а')
^ y^J^l (а7) = yrt (а). Таким образом, для п^З уп(а) ^ апДа), и если а>к, то уп(а)> f^ (£, а).
Следствие. Кп ^ Kns причем Кп =£ Кп*.
Доказательство. Уже было отмечено, что Кп ^ Кп'. По теореме 2 для всех п Кп — ^п и для п ^2 КпФ^п- Так, для п^А Кп'ФКп- Так как Ха^-а^Кх и так как для каждой одноместной функции фе/(0 имеется такое к, что ^(а)^.а + к, Кх ф Ко.
Теорема 3. Для каждого п имеется такое пг, что ёп cz Km-
Доказательство. В силу [2, теорема 4.12] если п > 2, тогда ^п включает нумерующую функцию для одноместных функций из ёп. Эта нумерующая функция примитивно рекурсивна и, таким образом, для некоторого m принадлежит Кт. Мы можем выбрать m > 2. Тогда каждая функция из ё11 принадлежит Кт, так как она может быть задана только нумерующей
функцией с помощью функций, нумерующих пары и принадлежащих К^. Аналогично [2, теорема 4.12] доказывается, что ^4 включает нумерующие функции для ^°, Sx и <^2.
ЛИТЕРАТУРА
Axt Р., Enumeration and the Grzegorczyk hierarchy, Zeitsch. f. math. Logik und Grundlagen d. Math, 9, № 1 (1963), 53—65.
Grzegorczyk A., Some classes of recursive functions, Rozprawy Mate- matyczne, 4 (1953), 1—44. (Русский перевод см. стр. 9—49.)
К lee ne S. C., Introduction to metamathematics, Van Nostrand, 1952. (Русский перевод: Клини С. К-, Введение в метаматематику, ИЛ, М, 1957.)
Kleene S. С., Extension of an effectively generated class of functions by enumeration, Colloquium Mathematicum, 6 (1958), 67—78
ИТЕРАЦИЯ ОТНОСИТЕЛЬНОЙ ПРИМИТИВНОЙ РЕКУРСИИ )
П. Акст
В [1] примитивно рекурсивные функции классифицированы в иерархию типа со в соответствии с числом применений схемы примитивной рекурсии в примитивно рекурсивном определении функции. Мы распространяем этот результат, давая релятивизированную версию этой иерархии. Метод, используемый нами, дает другое доказательство теоремы иерархии из [1]. Аналоги дополнительной информации, предоставляемые методом из [1], будут приведены ниже.
Приспособив обозначение и определение из [1] для /, м>0 и произвольной /-местной функции х, определим Кп как класс функций, примитивно рекурсивных относительно х, которые вводятся одной из примитивно рекурсивных схем ( ), (I),..., (IV), (V) из [2]), где в схеме ( ) 0 = {х}, в схеме (IV) вспомогательные функции ф, хь X™— уже построенные элементы из Кп и в схеме (V) п > 0 и вспомогательные функции ф, ^еКи-ь
Очевидно, что (J Кп есть множество всех функций, прими- п
тивно рекурсивных относительно х, и что Кп^Кп-н- Чтобы установить иерархию, мы покажем с помощью двух теорем, что 1\П 1\п + \»
*) Axt Р., Iteration of relative primitive recursion, Math. Annalen, 167, № 1 (1966), 53—55.
Теорема 1. Если для некоторого п Кп = Кп^\, то любая функция, примитивно рекурсивная относительно х, принадлежит* Кп.
Доказательство. Мы покажем индукцией по г, что для любого г из фЕ^+г следует ф е/<^; для каждого г проводится индукция по числу итераций примитивно рекурсивных схем ( ), (I), ...,(¥) в определении ср в Кп^г (глубина ф в Кп+^ Для случаев, соответствующих схеме, посредством которой <р была введена. Случаи 0, ..., 4 очевидны. Для случая 5 заметим, что вспомогательные функции примитивной рекурсии принадлежат Knvn следовательно, и Кп по допущению индукции по г. Таким образом, фе/(п+1, и следовательно, по условию теоремы ф^К*. Итак, для всех г Кп = Кпл-г, т. е. каждая функция, примитивно рекурсивная относительно х, принадлежит Кп.
Теорема 2. Каково бы ни было п, существует функция, примитивно рекурсивная относительно х, которая не принадлежит Кп.
Доказательство. Производящая функция х [3, стр. 680] является возрастающей по всем своим переменным и примитивно рекурсивной относительно х. Например, для I = 2
х (6, а) = п Pz exp п Pi exp (х (t, /) + 1).i < bj < a
Для удобства нашего доказательства при I = 0 положим, что х есть Ха Ц р(. Для данной /-местной функции х не будет ни- I < а
какой путаницы, если мы обозначим х(а,..., а) через х(а). Теперь определим возрастающие функции уо и у0, которые примитивно рекурсивны относительно х,
’ у’(0, а) = х(а'),
. Yo(^> а) = х(у*(6, а)),
Y0(«) = Y;(a, а).
Доказательство проводим индукцией по п. Для п = 0 мы покажем индукцией по глубине фЕ^, что существует число Ь, такое, что если а = шах[аь ..., a^V то ф(яР ..., ^)<Yq(^> а); Среди случаев, соответствующих схемам ( ), (I), . .., (IV), посредством которых ф была введена в Kq> случаи 0, ..., 3
очевидны. В случае 4 ф (a}, ..., ak) = ф (%i (яь ...» ак\ ... ..., Xm(^b СЦ^\ По допущению индукции по глубине ф и вследствие монотонности Уо существуют числа &0, 6Ь .Ь^ такие, что для я^шах[яь ..., akY *= L • • •>
^(«Р^<^0’ а)>
Хг(Орa^^i' а).
Заметим, что & = тах[&0, ^ь •••> Ь^ может быть использовано для замещения в этих неравенствах Ьо и Ьь Таким образом, ^(cv .... cm)<V0(b, V0(b, сТ)^ для всех ct < у* (b, а), Z= 1, ..., m. Отсюда
Ш(а1- .... ak\ .... Xm(a,ak^<
<<b, ^b, «))^Yo^b + 2, a), если a = max[ab ..., afe]1). Таким образом, для любой ф g АГо и для a = max[ab ..., ак^>Ь имеем ф(^ь ..., а^ <^Q^a\ Итак, уо^/Со, уо —возрастающая функция, примитивно рекурсивная относительно х. Следовательно, базис индукции по п доказан.
Для п^О определим функции у* и чп следующим образом:
' Y*+1(0, а) = у„(а),
. ^п*ЛЬ\ Ф = чДч;+ДЬ, а)),Y„+i(a) = Y*+1(a, а) + L
Пусть Нп-н — класс функций, полученных примитивной рекурсией с вспомогательными функциями из Кп* Предположим по индукции, что у* и чп возрастающие и примитивно рекурсивные и что для каждой фе/(« существует число Ь, такое, что если а = max [tip ..., аД, то ф(ар ..., ^)<Y^(&, ^), и если к тому же а является достаточно большим, то ф^, ..., ak) < уп(а).
В оригинале Уо(^, Уо(^> ^)) = Уо(2^+1, а), что, как легко видеть, Yo(6> Yo(^> g)) = x(x(... х(^х(.. ;^ ...)) + !)...)).
b + 1 раз b + 1 раз
В то же время
Уо (26 + 1, а) = х(х( ... х (а') ...)).
26 4- 2 раза
^-Прим. перев
В индукционном шаге рассмотрим два случая в зависимости от того (для фе/Cn+i), Ф принадлежит Н^\ или нет.
Случай 1. ^^Нпл-х- По предположению индукции для вспомогательных функций ф, х примитивной рекурсии, из которых ф была получена, существуют константы Ьо и Ь^ такие, что
Ф^, .а^уЦ^, а) и х(«Р с,а2,..., ak)<y,n(bi, а),
если я = шах [ah с, а2, ..., ак\. Далее, используя монотонность у*, для 1=1, ..., к и для любого b получим az<y*(6, aY таким образом, Ф(1, а2, ..., afe) = x(0, ф^» • • •> akY а2. • •ак) < < у*(60 + ^i + а) для а = шах[а2, ..., akY Индукцией по аь положив d = bo + b{ + 1 *), получим
ф(аР а2, ..., а6) = х(аР ф(«Р а2, ..., аД а2а6)<
<Vn(da'p d)<y*nW, а),
если а = шах[ар ау ..., аД. Теперь у*№', ^<Vn(da\ da'^= = Nn(daz>) и, как легко можно проверить, y„+i является возрастающей, так как Yn является также возрастающей, а da' <Vn_^d, а). Итак, yn(da')< yn(y*+1 {d. aY^^^d', aY Таким образом, для любой феЯп+1 существует число Ь, такое, что Ф^!, ..., а^Х^пнО^ aY если a = max[ap ..., ак\.
Случай 2. Ф^//п+1. В этом случае ф вводится посредством одной из схем ( ), (I), ..., (IV) с вспомогательными функциями, принадлежащими //п+ь Доказательство, подобное тому, которое было проведено в шаге индукции в базисе с у*+Р играющей роль у*, показывает, что для каждой функции ф, явно определяемой через функции из Н^\» существует число Ь, такое, что
Ф (ар ..., ak} < у^+1 (Ь, aY если а = шах [ар ..., ак\
Учитывая случаи 1 и 2 и то обстоятельство, что класс функций, явно определяемых через функции из //п+ь совпадает с /<п+ь получаем, что yn+I^/(n+i. Для проведения индукции
В оригинале в качестве d выбрано max [60, bj + 1. Однако в этом случае не проходит базис индукции (а^ = 1) ввиду
Yn ^dav а) = Yn V, а) - у» (1 + max [Z>0, 6J, а) < у^ (60 + &i + 1, а). ?—Прим. ред.
нужно учесть, что уп+1 — функция, примитивно рекурсивная относительно х, а так как у*+1 возрастающая, то yrt+1 является возрастающей. Доказательство на этом заканчивается.
Следствие. Для всех n^O Кп^Кп^х.
Доказательство. По теореме 2 не существует п, такого, что каждая функция, примитивно рекурсивная относительно х, принадлежит Кп. Отсюда по теореме 1 ни для какого п К?п = Кпа-х не имеет места.
ЛИТЕРАТУРА
Axt Р., Iteration of primitive recursion, Zeitschrift fUr mathematische Lo- gik und Grundlagen der Mathematik, 11, № 3 (1965), 253—255. (Русский перевод см. в настоящем сборнике, стр. 114—117.)
Klee ne S. С., Extension of an effectively generated class of functions by enumeration, Coll. Math., 6 (1958), 67—78.
К lee ne S C., Recursive functions and intuitionistic mathematics, Proc. International Congress of Mathematicians, 1 (1950), 679—685.
Добавление редактора
О ДВУХ ПОДХОДАХ к КЛАССИФИКАЦИИ РЕКУРСИВНЫХ ФУНКЦИЙ
А. А. Мучник
Один способ классификации рекурсивных функций восходит к истокам теории алгоритмов и связан с порождением тех или иных классов рекурсивных функций из множеств (обычно конечных) достаточно простых исходных функций посредством различных вычислимых операций. Так строятся классификации Петер, Гжегорчика, Акста, Клини. При этом обычно возникает растущая иерархия (цепочка) классов по некоторому трансфинитному типу. Такой подход можно было бы назвать аналитическим. (В последнее время с помощью алгебраических методов изучаются классы рекурсивных функций, образующие подалгебры в алгебрах относительно тех или иных вычислимых операций. При этом обычно идут «сверху — вниз — в стороны» в отличие от аналитического подхода «снизу — вверх».) В сравнительно недавнее время появились работы, в которых вычислимые функции классифицируются по сложности их вычисления, а также работы, устанавливающие связь между аналитическим и «сложностным» определением классов рекурсивных функций (см. статью Р. В. Ричи в настоящем сборнике). В нашем добавлении мы рассматриваем этот вопрос в общей постановке.
Одна из проблем, поставленных А. Гжегорчиком в статье «Некоторые классы рекурсивных функций» (см. настоящий сборник, стр. 9—49), состоит в выяснении того, можно ли в определении классов §п (п = 0, 1, 2,...) исключить операцию ограниченной примитивной рекурсии. Эта проблема была решена положительно для классов Sn при п>3 Рёдингом [7], а для S^— Марченковым [4]. (Вопрос о классах 8^ и Sx до сих пор открыт). Доказательства у этих авторов используют сложную технику. Интерпретация классов Sn (п^2) как классов функций, вычислимых на машинах Тьюринга при некоторых ограничениях на длину используемой ленты, позволяет дать простое доказательство этих результатов. Кроме того, мы опишем общий метод для нахождения конечного базиса (относительно суперпозиции, а также других операций) во многих классах рекурсивных функций.
Будем говорить, что функция <р(м, хь ..., хд, //) является квазиуниверсальной (к. у.) для ^-местных функций алгебры 21 = = (О, *, Оь ..., Оь ...) (здесь G есть некоторый класс функций; * — операция суперпозиции; Оь.. .,Оь... — некоторые вычислимые операции) относительно системы функций Н, если для всякой функции) Xxi... Xkf (хь..., Хь) е G существует число п0 и функция Xxi ... Xkg(xi,... , х^) е С1а (Я) (здесь ClG(H) обозначает множество функций, порождаемых с помощью операций сигнатуры аиз Я), такие, что
fUi, ..., xfe)=qp(n0, xb ..., х^, g(xi, ..., x^.
Если, кроме того, f (xi,. .. , xk) = qp(м0, Xi,..., Хь, h^xx,..., x^)) ДЛЯ ВСЯКОЙ функции Й(Хь • • . , Xfc)> g^(Xh . . . , Xfe), то функцию ф назовем максимально универсальной (м.у.) для G относительно Н. Класс вычислимых функций Ф назовем o-Q-U (o-M-U-Y полным, если 1) он содержит к. у. (м.у.) функцию ср (п, х, у) для класса Ф1 всех одноместных функций от х из Ф относительно конечного множества Н а Ф; 2) класс Ф замкнут относительно операций из а); 3) класс Ф содержит константу 0, х + 1 и какую-нибудь тройку функций /(х, у), К(2), L(2), нумерующих пары, т. е. таких, что)
/(/<2, £2) = 2; 7</(х, у) = х; Ы{х,у) = у.
Очевидно, что всякий о-М-(/-полный класс является g-Q-U-пол- ным.
Теорема. Всякий g-Q-U-полный класс содержит конечный базис относительно о.
Доказательство. Выберем в качестве базиса Б в G множество функций ЯЩср, 0, х + 1, /}• Пусть функция f (xi, ..., хА)е eG. Обозначим через Im^xx,..., xm) функцию
X = / (Х}, / (Х2,/ (xw_i, Х^ . . .)).
Тогда Ху = Кх = Ках, х2 = KLx = К2х, х3 = KLLx = К^х,... ..., xm-x = KLm~2x = Km-iX, хт = Lm-XM = Ктх, где L^(x) обозначает i-ю итерацию функции L(x). Рассмотрим функцию fi W = f №x>..., KmxY Очевидно, согласно определению g-Q-U* полного класса, fi е G. Но тогда найдутся число п0 и функция
g(x), являющаяся суперпозицией функций из Н, такие, что fi (*) = Ф (по, х, g (х)), т. е. fi е С1а (5). Легко видеть, что
f (хJ, . . ., Хт) = fi \Im (Xj, ..., х^)],
а так как !т принадлежит С1а (5), то теорема доказана. Из этой теоремы можно извлечь разнообразные следствия. Сначала докажем, что каждый класс <^п при п>2 является *-Л1-^-полным. Условия 2 и 3, как известно, для этих классов выполняются.
Рассмотрим некоторую универсальную машину Тьюринга (МТ) 3№ с алфавитом {0, 1,р, X} (X— пустой символ, р —разделительный символ), которая по входному слову РрХ вычисляет функцию фр(х), где Р — код программы некоторой машины Тьюринга, а X — двоичный код числа х (оба кода в алфавите {О, 1}). Пусть п—номер Рп при лексикографической нумерации всех слов в {0, 1}. Будем считать п также номером машины с кодом программы Рп. Положим ф {п, х) = ф/^ (х); очевидно, что ф(п, х)— частично рекурсивная функция (ч.р.ф.), универсальная для одноместных ч.р.ф. ф(х). Введем функцию ^*^n>x,yV равную результату вычисления на ЗИ с исходной записью Рп^^ если вычисление укладывается на ленте длины [log2 у], в противном случае ф*(п, х, у) положим равной 0. Очевидно, что можно построить МТ, вычисляющую ф*(п, х, у) и использующую при этом не более чем [log2 м] + [log2x] + [log2 у] + 3 квадрата ленты. Согласно результатам Ричи (см. его статью в настоящем сборнике), функция Хпху^* {п, х, у)^ F' = ё>2. Нетрудно показать, что она является м. у. функцией для одноместных функций алгебры (^2, *) относительно Н = {(х + I)2}. Действительно, согласно Ричи, Хх j .. . Xkf (xi,.. ., xk) е F' тогда и только тогда, когда существует МТ с двоичным рабочим алфавитом (не считая р и X), вычисляющая f (хь ..., xk) на ленте длины, не пре/ k\
восходящей CJ 2[log2(^z + 0] + С2, где Ci и С2 — постоянные, v=i/
зависящие от f. Следовательно, feF^g*2 тогда и только тогда, когда существуют такие натуральные числа п0, т, сх и с2, что f (х) = ф(п0, х, g(x)), где g^x^ сххт + с2. Но очевидно, что всякая функция вида сххт + с2 мажорируется некоторой итерацией полинома (х+1)2, откуда следует, что ^(.п.х.у)—м.у. функция для (^2, относительно {(х + I)2}. Вместо (х + I)2 можно взять f2(x, у) — функцию Гжегорчика. Аналогично устанавливается, что ^*Vn.x,y^ является м. у. функцией для алгебры (г > 2) относительно \$Дх>уУь где fr(x,y) есть г-я функция Гжегорчика (стр. 33). Вместо fr(x, у) можно взять г-ю
функцию Аккермана, определенную следующей схемой:
Рх (х) = х + 2; р^ (х) = 2х;
Рг+1(0)=1,/Для г
Pr + lU + 1) = Рг(^г + 1(х))
Известно, что ХхрДх^^<от (г = 0, 1,2,...) и что при определении классов <^г можно исходить из функций Аккермана (см. [15]).
Строгое доказательство этого факта проводится индукцией по г; положим gr(x) = fr(x, х). Нужно установить,
что каждая функция f из ^! мажорируется) некоторой функцией Ci -gTi s(x) + с^ (или Сх -p^sU) + с2), где gr, i (х) = =grU^ a gr,s+i(x) =gr(gr>s(x)) ^pTlS определяются аналогично);
что каждая функция f(x) из ^[ вычислима на некоторой машине Тьюринга с лентой длины, не превосходящей Ci 'Sr, s (х) + с2, где s, сх и с2 зависят от f и 9№;
что при г >2 для всех s, Сх и с2>0 справедливо утверждение
Xnxtp* (п, х, Сх • gr, 5 (х) + с2) ^ ^г.
Эти факты полностью доказаны Я. Б. Казановичем [1] (их можно установить методом Ричи; см. его статью в настоящем сборнике).
Следствие (Марченков, Рединг). В каждом классе ^г (г >2) существует конечный базис относительно суперпозиции.
Напрашивается следующая классификация примитивно рекурсивных функций по типу оз, близкая к предложенной Казановичем [1].
Определим класс FT)S функций так: Xxi ... ХкЦхх, ..д^е ее FTi ч тогда и только тогда, когда существуют натуральные числа п^ s, Сх и с2, такие, что
fUb .Х6) = ф*(п0, 4U1Xfe\ С| • gr,sUkUb .X^Hc^,
т. e. функция f вычислима на некоторой машине Тьюринга с двоичным кодированием чисел, но произвольным рабочим алфавитом и с рабочей зоной (т. е. длиной ленты), нс большей чем2)
при г ^2 (J Fr>s = ^r. При г = 2 получаем систему классов
{^2, s}, образующую иерархию подклассов $2, близкую к той, которая определяется в [2] посредством вычисления функций из S’2 на многоголовочных автоматах. Некоторое представление о классе F2)S дает верхняя (достижимая) оценка скорости роста: каждая функция f (хь ..., хп) из F2)S ограничена некоторым полиномом от хь ...,хп степени, не большей чем 2п -s. При г = 3 Fr,s = F&1 где Fs— класс Ричи (s = 1, 2, ...). На первый взгляд кажется, что такая классификация зависит от выбора функций gT) s(x), однако иерархия {К, s} возникает естественным, «предсказуемым» (predictable) образом, подобно тому, как у Акста [6] (см. перевод в настоящем сборнике) строится система классов Кп кп = 0, 1, 2,...). Исходными являются чрезвычайно простые функции:
О, х+1, ОЦх, у) = х, U^x,y> = y.
Они образуют систему Бо. (Ко = С/*(Б0)•) Применим ко всем парам функций f, g ^Ко от п и п + 2 переменных соответственно операцию примитивной рекурсии. Обозначим полученное множество через Бх. Замкнем его по суперпозиции. Полученный класс обозначим через К\. Затем опять применим один раз примитивную рекурсию к парам (f, g) из К\ и т. д. Акст доказал, что (J Кп равно П1 — классу всех примитивно рекурсивных п
функций [6].
Парсонс [24] явно выписал базис (из сравнительно простых функций) для со3, а Швихтенберг [8] доказал, что Кп = <^n+1 для всех п > 3. (Включение ^п ^ Кп ^ &n + i доказал Акст.) В. А. Козмидиади [3] построил иерархию растущих автоматов, вычисляющих примитивно рекурсивные функции, индуцирующие иерархию Гжегорчика — Акста, начиная с S'3. Система классов FT)S является подразбиением системы {^} (г>3) или ^Л *)• Положим
Бо = 5о U {<р* (я, х, у\ I, К, Б}.
(При этом выберем /, К и L достаточно «простыми» из S2\ см. например, статью Гжегорчика в настоящем сборнике, стр. 10.) Ко = СК (Бо) = ^2. Исходя из Бо, будем строить классы KT,S) где s является «глубиной суперпозиций» функций из Бг, а Кг = = СЦб'г\ Здесь надо оговорить, что в аргументы допускается
подстановка функций Ux^x,yV U2(x,y) и 7m(xh xm^ которая не учитывается при подсчете глубины суперпозиции функций из Кг, а также фиксировать некоторый способ перехода от Кг к Бг+1 путем построения функции тг(х) =т(г,%), универсальной ДЛЯ ОДНОМеСТНЫХ функций ИЗ Кг (^г+1 = 5^U{r(r, х)}.) Тот факт, что для всякой конечной системы функций Л ={фЬ ..., ф;} с помощью одной примитивной рекурсии и нескольких суперпозиций относительно A U5oU{x+y, х — у, х -у^ можно построить функцию, универсальную для всех одноместных функций из С/*(Л), устанавливается с помощью техники, изложенной в работах [10] или [11, § 5.2] (можно даже вместо С1ДА) взять замыкание А по операциям суперпозиции и ограниченной примитивной рекурсии). Можно показать, что класс KT,S совпадает с классом jPr+2, s+c, где с—постоянная, зависящая от способа построения универсальной функции для Кг (г, s = 0, 1, 2, ...). Таким образом, класс F^ s является классом функций, полученных из Бо с помощью г примитивных рекурсий и s + const «существенных» суперпозиций (т. е. без учета подстановок функций Im^ U1, и2) типа Рт(Рг(*. *PAXV.)).
Итак, общий способ построения иерархий рекурсивных функций предсказуемым образом таков: некоторые «достаточно простые» функции выбираются в качестве исходных — это система Б. Наиболее простой вычислимой операцией, порождающей новые функции из Б, является суперпозиция. С/*(Б) разбивается на подклассы по числу использованных суперпозиций. Затем для класса С/*(Б) строится универсальная функция с помощью примитивной рекурсии. Смысл примитивной рекурсии как операции над f и g состоит в том, что при этом один из аргументов «регулирует» число суперпозиций (некоторого специального вида) функции g. (Это обстоятельство особенно наглядно проявляется в частном случае примитивной рекурсии — итерации.) Все другие виды рекурсий, сводящиеся к примитивно рекурсивным, связаны с теми или иными суперпозициями функций f и g в схеме рекурсии (см. [11, § 3; 13, § 3—8]1)). Дальнейшее раз
витие классификации рекурсивных функций связано с операцией двойной рекурсии /?2, при которой один из аргументов «регулирует» число применений операции примитивной рекурсии над преобразуемыми функциями. Известно, что для класса одноместных функций, примитивно рекурсивных относительно конечного множества функций А = {фЬ ..., ф/}, можно построить универсальную функцию, являющуюся дважды рекурсивной относительно Л (см. [10; 11, § 5]). (Таким путем Клини, используя систему О' обозначений для конструктивных ординалов, основанную на примитивной рекурсии, пытался построить растущую, т. е. вполне упорядоченную, иерархию всех общерекурсивных функций [10]. Однако на этом пути встретились серьезные трудности [12].) Далее идут операции тройной, ... 6-кратной, ... и трансфинитных рекурсий [13, § 10—15]. Возможность эффективного продолжения классификации связана с построением достаточно далеких эффективных унивалентных систем обозначений для конструктивных ординалов [10]. Проблема оказалась тесно связанной с теорией доказательств, а именно с иерархией арифметических теорий [16, 17]. Действительно, всякая частично рекурсивная функция может быть задана системой равенств термов с одним выделенным термом, соответствующим вычисляемой функции1) ф(х). В нормальной форме Клини ф(х) = — р[ру7(х, у)], где р и Т примитивно рекурсивны. Общерекурсив- ность ф(х) означает, что ЧхЗуТ (х, у\ Если эта формула выводима в классической арифметике, то ф(х) называется доказуемо рекурсивной. Теорию таких функций развил Фишер [18]. Однако ими никак нс исчерпывается множество всех общерекурсивных функций, как показывает обычная диагональная процедура, поскольку множество выводимых в классической арифметике формул вида ЧхЗуТ (х, у^ с примитивно рекурсивным Т является рекурсивно перечислимым. Истинность формулы ЧхЗуТ(х> у) можно пытаться установить посредством вывода в теории, являющейся расширением классической арифметики посредством однократного, а затем двух, трех и т. д. применений конструктивного правила Карнапа и трансфинитных пополнений арифметики. При этом возникает картина, совершенно аналогичная расширяющейся иерархии классов общерекурсивных функций Клини. Подробное исследование трансфинитных расширений классической и конструктивной арифметических теорий проведено А. Г. Драгалиным [17].
*) Через х обозначен набор аргументов (хь ..., хп), где п — 1, 2, ..
Представляют интерес некоторые проблемы, связанные с двойной рекурсией (проблемы 6 и 9 статьи Гжегорчика, стр. 46). Операция ограниченной («bounded») двойной рекурсии R^-b над функциями G, Я, h и Е определяется так:
Г (0, x^h^x\
F^n-Y\. ^ = Н^п^\, F^n. F^n, 0)), F kn, 0)),
F (n + 1, x + 1) = G k^ + 1, x, F (n + 1, xY F^n, F (n, x 4- 1))),
F {n, x)^E kn, xY
(Без последнего неравенства имеем обычную упрощенную схему двойной рекурсии /?2.)
Нетрудно показать, что операция R^-b, будучи применена к функциям G, Я, h и Е из класса ST, дает функцию из класса ^r+1. Марченков установил, что замыкание класса ST относительно операции Rs-b (класс (З^1) есть в точности подкласс класса ^r+1, состоящий из функций, ограниченных функциями из ST (так, например, ^3 есть класс функций из ^3, ограниченных функциями из ^2 или, проще говоря, полиномами).
Верны строгие включения
Таким образом, класс П1 примитивно рекурсивных функций замкнут относительно ограниченной двойной рекурсии. Интересно отметить, что классы ST кг^^) не имеют конечного базиса относительно суперпозиций. (Этот факт установлен студентом МГУ В. Альперовичем в 1968—1969 гг.) Аналогичные результаты должны иметь место для ограниченных 6-кратных рекурсий.
Классификацию Гжегорчика можно продолжить, взяв последовательность функций Цг^кх^ (ц = 0, 1, 2,...) из [10], где п(0)— 1, n(u+ l) = 2nW, а через Су обозначается класс функций, примитивно рекурсивных относительно hykx) кпки^ является обозначением для ординала, соответствующего натуральному числу и в системах О и О' Клини [10]). Однако можно построить последовательность значительно более простых, чем h^kx^ функций еикх^ порождающих классы С^ посредством лишь суперпозиций и примитивных рекурсий, основываясь на скорости роста eukx^ причем eu+i(x) будет получаться из еикх) с помощью одной двойной рекурсии. Идея построения еикх) такова: Si (х) = Вкх, х), где В(п, х) — функция Аккермана, а п— число примитивных рекурсий, необходимых для получения функции ^хВкп, х). Далее берем итерации функций еДх): f (0, х) = ех (xj, bkn-F 1 > х) = ехукп. х)]. Пусть (х) = / (х, х) (диагональная про-
цедура). Далее полагаем
f2(0, x) = fi(x), f2(n + 1, x) = h(f2(n, x)),f2(x) = f2(x, x)
(опять «диагональ»). Подобным же образом определяются функции MXV Полагаем е2(х) = fx(x) («диагональ» на следующей ступени); функции еи(х) для ц>3 строятся аналогично. Этот метод получения все более быстро растущих функций дает «мажорантную» иерархию Фефермана [12].
Классы СП(а) разбивают класс П2 по количеству использованных двойных рекурсий. Эти построения можно, конечно, продолжить и дальше по конечным и бесконечным ординалам [13, § 11 —13]. Идея Клини, вероятно, состояла в том, что всякой общерекурсивной функции объективно присуща некоторая «сложность», которую можно оценить конструктивным ординалом (а не его обозначением). Акст в [9] доказал !), что (J CnW = и = \
= П2 (П2— класс дважды рекурсивных функций, который, как легко установить, не содержит конечного базиса относительно примитивно рекурсивных операций).
Другой возможный путь продолжения классификации П1 аналогичен методу Акста определения Кп с заменой примитивной рекурсии на двойную. Получающиеся при этом классы совпадают с классами Сп№ а эти последние замкнуты относительно ограниченной двойной рекурсии. Отсюда следует, что в П2 нет конечного базиса относительно операций * и R\ (примитивной рекурсии), т. е. проблема 9 в статье Гжегорчика (стр. 46) решается отрицательно. Строгое доказательство этих фактов связано с весьма громоздкой техникой. (Здесь опять-таки можно использовать м. у. для ^CnW *, /?i) относительно Н = (еи(х)} функцию ф*(м, х, 2).) Продолжение классификации связано с fe-кратными рекурсиями.
Хотя выше было отмечено, чем интересны классы кратно рекурсивных функций, однако практически математики и вычислители, как правило, имеют дело с функциями, не выходящими
9 В [9] получены следующие результаты: 1) для всякого ординала а < со2 и любых обозначений у и z в О' для а Су = Сх, 2) |J Су = П2 и 1у! <со
(J Су — П3 (П3 — класс всех 3-рекурсивных функций), где | у | есть I у I < и2
ординал, обозначенный в О' числом у. Акст же установил, что для некоторых ординалов а ^ со3 классы Су могут отличаться друг от друга для разных у, таких, что \у\ * а. Этот результат был значительно усилен Феферманом [12], доказавшим, что ^ Су является классом всех общекурсивных функций.
I у I—««
за пределы П1 и даже <S\ Это дает нам основания вернуться к рассмотрению проблем, связанных с этими классами.
Иной, чем описанный выше подход к классификации ГК по типу со2, предложен в статье Клива из данного сборника. Его классы функций Etor+s+i (г, s = 0, 1, 2, ...) определяются предсказуемым образом посредством ограничений на число операций SS-машины Шепердсона — Стургиса [14], налагаемых функциями из класса E^s. Для s = 0 число операций ограничивается постоянной, зависящей от вычисляемой функции. Когда определены все классы Е^т^ при данном г, Клив полагает Еакг+п = (J Etor+s и рассматривает SS-машины, элементарными 5 = 1
операциями которых являются функции из Eto^\> В качестве исходных операций для SS-машин классов Е^т берется множество Cl*(S*), где 2* = SU{t7z(^b ^n) = xit 1 < i п}. Если 2 = { + , X, 6}, где
( 1, если х = у, 6 (М) = Л/
[0, если хфу.
то Е^г = ^г+2, где г>1 (основной результат). Открытым остается вопрос о соотношении между классами Etor^s и Frt 5, определенными в нашей статье.
Далее мы рассмотрим классы сравнительно просто вычислимых рекурсивных функций. Пусть Q — класс функций f(xb..., хп), вычислимых на подходящих машинах Тьюринга с длиной ленты, не большей, чем некоторый полином ^/(log(xi + 1), ..., log(xn + 1)) (Р/ зависит от f).
Теорема. Класс Q является M-U-полным^ и замкнут относительно ограниченной рекурсии.
Набросок доказательства. Очевидны включения ^^Q^Fx. Поэтому условие 3 М-(7-полноты выполнено. Далее, пусть f(y) и g(x) —две одноместные функции из Q. Докажем, что f(g"(x)) также принадлежит Q (в случае многоместных функций доказательство аналогично). Вычисление f(g(x)) происходит так: сначала МТ вычисляет g^ на ленте длины ^Р^(х). Поскольку результат вычисления умещается на этой ленте, то
g (х) < ^8 (10g2 (Х+ °) <2^ 10g2^ + I) + c2>
!) Здесь и далее подразумевается, что (Q,*) является М-Р-полной алгеброй, т. е. под М-^/-полнотой класса функций подразумевается *-Л1-С/-пол- нота.
где с, сь г и с2 зависят только от g и МТ. Затем МТ вычисляет функцию f от g(x), используя при этом ленту длины
/ <С 2Сз log$(g (х)+1)+с4<;2Г5 Хоё^ (х+^+сб
где постоянные с3, с4, t, г, с5 и с6 зависят от f, g и МТ. Итак, Xxf(g(x))eQ. Введенная ранее функция ф*(я, х, у) служит м. у. функцией для Q относительно (х(х)}, где х(х) = (х + 2)log2 (х+2), так как итерациями х(х) можно промажорировать любую экспоненту от полинома от log2(x+l), а, с другой стороны, Xxx(x)^Q. Итак, Q есть Л1-£7-полный класс. Пусть f(x, у) и h(x) —функции из Q и
g(O) = co; g(x+ i) = f(x, g^y, gW^h^.
Для вычисления g(0), т. е. по существу для записи с0, потребуется зона МТ порядка log с0 (с0 может быть произвольно большим числом). Для вычисления g(l) МТ вычисляет f(0, g(0)), для чего ей нужна рабочая зона, не большая, чем РДО, log2(g(0) + 1). (Полином Pj можно выбрать монотонным с целыми положительными коэффициентами.) Перед вычислением g(x+ 1) на ленте МТ записаны двоичные коды х и g(x), причем длина кода g(x) не превосходит log2(A(x) + 1) + 1, так как g(x)^/i(x). Вычисление f(x, g(x)) поэтому потребует ленты длиной не более чем P/(log2(x + 1), log2(/z (х) + 1)) + + Iog2(x +1)4- log2(A(x) + 1) + c<P(log2(x + 1)), так как А(х), как и всякая функция из Q, мажорируется некоторой функцией вида 2P^(log2(x+1)), где Рк — полином, зависящий от К.
Теорема доказана.
Теорема. Класс ТР функций, вычислимых на машине Тьюринга с полиномиальным замедлением, т. е. за время, не превосходящее некоторый полином (зависящий от выбранной функции) от аргументов функции, при унарном кодировании значений вычисляемых функций, является M-U-полным. Класс ТР замкнут относительно ограниченной примитивной рекурсии.
Доказательство. Известно, что ТР^^2. (Открытым остается вопрос: равны ли эти классы?) Поэтому в ТР содержатся функции /, К, L. Легко проверить замкнутость ТР относительно суперпозиций. Далее пусть ХхЦх) и ХхуЦх, у) принадлежат ТР и
g^=Co, g(x+l) = f(x, g(x)), g(x)^h(x).
Вычисление g(x + 1) производится на МТ, которая предварительно вычислила g(0), g(l), g(x), и к этому моменту на ленте МТ записаны коды х и g(x). Машина начинает вычис-
лять f(x, g(x)), для чего ей требуется время /х+1 ^ Л^» £(х)) ^ ^РДх, й(х)), где Pt— монотонный полином, но так как h^^ *<Pi(x), то Zx+i ^ Р^ (х). Время вычисления g(x+l), таким образом, не превосходит 2 ?2 (2) = Рз W №. Pi и Р3 —некоторые полиномы).
Рассмотрим функцию
Ф* (п, х, /) =Ф* (п, х, /) =Фп (х), если для вычисления фп(х) на n-й МТ достаточно времени /;
Ф* (п, х, /) =
Ф* (п, х, /) =
О в противном случае.
Подходящая МТ с тремя головками производит вычисление Ф*(п, х,/) за время T<c/-log2^. Поэтому ф* е ТР (при переходе к универсальной МТ с одной головкой время увеличивается не более чем в квадрат [19]). Нетрудно показать, что ф* является м. у. функцией для ТР относительно Н = {(х + I)2}. Теорема доказана.
Теорема. Класс ТРЕ функций {/}, вычислимых на машинах Тьюринга с k-ичным (£ > 2) кодированием чисел за время, не превосходящее некоторый полином (зависящий от f) от длин кодов аргументов, является M-U-полным.
Этот класс «изоморфен» классу словарных (в алфавите из к букв) примитивно рекурсивных функций, вычислимых с полиномиальным замедлением. Класс ТРЕ на самом деле не зависит от выбора к при 6 >2. М. у. функцией для него служит Ф* (п, х, /) относительно Н = {(х + l)log2 и+1)]. Доказательство аналогично предыдущему.
Теорема. Класс ЕР функций f(xx, ..., хп), вычислимых на многоленточных МТ с k-ичным кодированием (к >2) чисел за время Т (хь ..., хп) ^ с • шах [х. log' (х. + 1)} + ^ и таких, что f (хь ..., хп)< с2 • шах {х. Io gg (х. + 1)} + с^, где с, ср г, су с3 и s — постоянные, зависящие от f и МТ, является M-U-полным.
Из результата Хенни и Стирнза (см. их статью в настоящем сборнике) следует, что для каждой такой МТ существует двуленточная МТ с алфавитом {0, 1,рД}, которая моделирует работу первой МТ за время СТ log Т. Поэтому ясно, что в определении класса ЕР вместо многоленточных многоголовковых машин можно взять двуленточные МТ с одной головкой на каждой ленте. Теперь построим трехленточную МТ 9М3, универсальную для двуленточных, записывая в двоичном коде программы двуленточных машин на третьей ленте. Номер п двуленточной
машины обычным образом определяется двоичной записью ее программы. Тогда 8М3 моделирует работу двуленточной машины с номером п с замедлением не более чем в clog2n раз. Рассмотрим функцию ф*(п, х,/), модифицированную так, что п теперь является номером двуленточной МТ. Эта функция вычислима на пятиленточной МТ ЗИ за время Т -^ ct \og2 х^ т. е. она принадлежит LP. Можно показать, что ф* является м. у. функцией для LP относительно Н = {xlog2(x + 2) + 1}, а также замкнутость LP относительно суперпозиции и наличие в LP функций /, К, К т. е. Л1-(/-полноту LP.
Каждый из приведенных выше классов можно разбить на подклассы по числу «существенных» суперпозиций, подобно тому, как классы Кг и ^г подразбиваются на подклассы KT,S-
Вышеуказанные примеры укладываются в некоторую общую схему. Рассмотрим какую-нибудь функцию Хх Слк^п.х^ сложности вычисления ^-местной частично рекурсивной функции (ч. р. ф.) Ххф(/г, х), удовлетворяющую аксиомам Блюма (см. статью М. Блюма в настоящем сборнике, стр. 401—422), где ф(п, х) = фп(х)~ универсальная ч. р. ф., а х = (х^ ..., х^ (k = 1, 2, 3, ...). Введем предикаты Т^п, х, у) и S (п, х, у). Т^п, х, у^ означает, что Сл (п, х) = у, a S^n, х, у^ = Сл^п. х)^у (если ф(п, х) не определена, то условно полагаем Сл(п, х) = оо). Пусть ф(п, х, у)—ч. р. ф., такая, что Т (п, х, у^-*^^ х, у) = = ф(п, х) и ф(п, х, у) = 0, если "ЗТ(п, х, у), а
ф* (п, х, у) =ф* (п, х, у) =ф (п, х),0,ф (п, х),0,если S (п, х, у\если П 5 (п, х, у\
ф* (п, х, у) =
ф* (п, х, у) =
ф (п, х),0,
ф (п, х),0,
Из аксиом Блюма следует, что ф и ф* общерекурсивны.
Пусть Г — некоторый класс ч. р. ф. Класс Г и функций ХхСлп(п, х) (6 = 1, 2, 3, ...) определяют два класса ч. р. ф.
Кх (Г, Сл) и Кч (Г, Сл6).
Кх есть класс ч. р. функций
{Xxf (х) | (В/г0, Эу е Г) (f (х) = ср (п0, х) & Г (п0, х, у (х)))}, а
Kt = {Xxf (х) | (Зп0> Ву е Г)(Цх) = ф(«0> x)&S(n0, х, у(х)))}.
Класс Г назовем классом точных функций сложности для Ki и классом верхних границ сложности для Кг- Если для функции Фь кп^ я, У) (ф^ (^,У)) найдется вычисление, такое, что его
функция сложности (некоторая верхняя граница функции сложности) принадлежит Г, то функцию ф^ (ф^) мы назовем универсальной (максимально универсальной) для ^-местных функций класса Ki (Кг) относительно Г.
Если к тому же класс Fez Ki (Fez Кг) и порождается системой функций Н zF посредством операций *, Оь ..., 0^ ..., то ф(ф*) назовем к. у. (м. у.) функцией для Ki (Кг) относительно Н и сигнатуры [*, 01, ..., О/, .. .]. Если класс Г таков, что К1(Кг) содержит систему Бх функций 0, х + 1, ф{ (ф*) и /, К, L (т. е. эти функции могут быть вычислены с допустимой сложностью) и замкнут относительно суперпозиций, то К1(Кг) также порождается операциями *, Oh ..., Оь ... из //U{5i\{K, L}}. Исследование классов точных функций сложности (конструируемых в терминологии Стирнза, Харманиса и Льюиса) для различных вычислений представляет большой интерес, хотя их полное описание обычно дать не удается (по этому поводу см. [21—23]). Значительно легче описываются классы верхних границ (мажорант) для допустимых сложностей вычисления. (Эти классы не обязательно состоят из всех мажорант для функций сложности ) Например, для класса ^3 элементарных функций таким является
J 2max(xr ..., х^А
класс (22'/ относительно времени или памяти
(длины ленты) вычисления, а в качестве Н можно выбрать {2х}. Обычно класс Г состоит из монотонных функций и сравнительно просто определяется аналитически, а класс Кг характеризуется скоростью роста функций из Г. Это обстоятельство, быть может, впервые проявилось в работе Аккермана (1927 г.), где была построена вычислимая функция, мажорирующая любую примитивно рекурсивную функцию и носящая имя автора. С тех пор на протяжении 40 лет основанные на скорости роста соображения неоднократно встречались во многих работах (например, в работах Гжегорчика (1953 г.), Б. А. Трахтенброта [5] (1956 г.), Ричи (1962—1963 гг.), В. А. Козмидиади и С. С. Марченкова (1965— 1967 гг.), Я. Б. Казановича (1967 г.)), связанных с классификацией рекурсивных функций и вычислений.
Таким образом, класс функций, вычислимых не более чем с заданной сложностью, характеризуется быстротой роста функций сложности.
Отметим, что наибольший интерес представляют такие классы функций сложности вычислений, которые инвариантны относительно выбора возможно более широкого класса вычислительных устройств (или вычислительных алгоритмов). Такими, например, являются классы, определяемые порядком используемой при вычислении памяти, выраженной в битах (например, длина ленты машины Тьюринга), или классы TP, TPL и т. п. Основная трудность применения описанной выше схемы состоит в таком определении сложности вычисления, при котором все функции класса Г порождаются конечной системой функций Н, К2^Г и в классе К2 содержится м. у. относительно Н функция. До сих пор не удалось применить эту схему к классам ^° и Sx Гжегорчика, классу функций, элементарных по Сколему, классу функций, вычислимых с линейным замедлением на многоленточных машинах Тьюринга, и некоторым другим. Вероятно, здесь требуются более тонкие методы.
ЛИТЕРАТУРА
Казанович Я Б., Классификация примитивно рекурсивных функций с помощью машин Тьюринга, Проблемы кибернетики, вып. 22, ДА, 1970.
Козмидиадч В А, Марченков С. С., О многоголовочных автоматах, Проблемы кибернетики, вып. 21, М, 1969, 127—158.
Коз м и ди ад и В. А., О бесконечных автоматах, Проблемы кибернетики, вып. 23 (в печати).
Марченков С. С., Устранение схем рекурсий в классе ^2 Гжегорчика, Матем заметки, 5, № 5 (1969), 561—568.
Трахтенброт Б. А., Сигнализирующие функции и табличные операторы, Уч. зап. Пенз. пед. ин-та, IV (1956), 75—87.
А х t Р., Iteration of primitive recursion (См. стр. 114—117 настоящего сборника.)
Rodding D, Uber die Eliminierbarkeit von der Definitionsschemata in der Theorie der rekursiven Funktionen, Zt. math. Log Grundlag Math. 10, № 4 (1964), 315—330
Schwichtenberg H., Recursiontiefe und Grzegorczyk-Hierarchy, Arch. math. Log. Grundlagenforsch., B. 12, H. 1—2, 85 (1969).
A x t P., Note on the 3-recursive functions, Zt. math. Log. Grundlag. Math., 7, № 1 (1961), 97—98
Klee ne S. C., Extension of an effectively generated class of functions by enumeration, Colloquium mathem., 6 (1958), 67—78.
Мальцев А. И., Алгоритмы и рекурсивные функции, «Наука», М, 1965, стр. 105—ПО
Fefe rm an S., Classification of recursive functions by means of hierarchies, Trans. Amer. Math. Soc., 104 (1962), 101 —122.
Петер P., Рекурсивные функции, ИЛ, M., 1954.
ShepherdsonJ. С., Sturgis Н Е., Computability of recursive functions, Jour. ACM, 10 (1963), 217—255.
Ritchie R. W., Classes of recursive functions based on Ackermann’s function, Pacif. J. Math., 15, № 3 (1965), 1027—1044.
Fefe rm an S., Transfinite recursive progressions of axiomatic theories, Jour. Sy mb. Log., 27, № 3 (1962), 259—316.
Драгалин А. Г., Трансфинитные пополнения арифметики, ДАН СССР, 189 (1969), № 3.
Fisher Р., Theory of provable recursive functions, Trans. Amer. Math Soc., 117 (1965), 494—520.
Hartman is J., Stearns R. E., On the computational complexity of algorithms, Trans. Amer. Math. Soc., 117 (1965), 285—306. (Русский перевод: Хартманне Д., Стирнс Р., О вычислительной сложности алгоритмов, Кибернетический сборник (новая серия), вып. 4, 1967.)
A h о A., Ullman J., The theory of languages, Math. Syst. Theory, 2, № 2 (1967), 97—125. (Русский перевод: Ахо у А., У л ь м а н Д., Теория языков. Обзор, Кибернетический сборник (новая серия), вып. 6, 1969.)
Фрейвальд Р. В., О порядке роста точных временных сигнализирующих для тьюринговых вычислений, Алгебра и лосика, Семинар, 5 (1966), № 5, 85—94.
Трахтенброт Б. А., О нормированных сигнализирующих для тьюринговых вычислений, Алгебра и логика, Семинар, 5 (1966), № 6, 61—70.
Stearns R. Е., Н а г t m a n i s J., Lewis P. M., Hierarchies of memory limited computations, IEEE Conf. Rec. on Switching Circuit Theory and Logical Design, Ann Arbor, Mich., Oct. 1965. (См. стр. 301—319 настоящего сборника.)
Parsons Ch., Hierarchies of primitive recursive functions, Zeitsch. f. math. Logik und Grundlagen d. Math., 14, № 4 (1968), 357—376.
О СЛОЖНОСТИ ВЫЧИСЛЕНИИ НА МАШИНАХ ТЬЮРИНГА
ВЫЧИСЛЕНИЯ В РЕАЛЬНОЕ ВРЕМЯ И РЕКУРСИВНЫЕ ФУНКЦИИ, НЕ ВЫЧИСЛИМЫЕ В РЕАЛЬНОЕ ВРЕМЯ Ч
Ямада
ВВЕДЕНИЕ
В результате последних достижений в технике цифровых вычислительных машин эти машины становятся все более и более сложными по конструкции. Становится невозможным изучить все логические свойства вычислительной машины. Отсюда как следствие все возрастающее внимание к теории автоматов — абстрактных моделей вычислительных машин. Поскольку теория автоматов — абстрактная теория, она может и не давать результатов, непосредственно переносимых на машины, но должна давать углубленное понимание природы рассматриваемых проблем. Хороший обзор теории автоматов можно найти в [1].
Общеизвестно, что можно рассматривать машины Тьюринга как математические модели цифровых вычислительных машин [2]. Дело в том, что мы всегда можем, по крайней мере теоретически, построить эквивалентную машину Тьюринга для любой цифровой вычислительной машины [3]. Однако именно в силу своей большой общности машины Тьюринга не являются наилучшей формой для изучения всех аспектов цифровых вычислительных машин. Например, когда мы рассматриваем специальную вычислительную проблему, вообще говоря, трудно, а порой невозможно дать априорную оценку числа шагов, необходимого для получения решения. Из этих соображений многие исследователи работали на разных машинах Тьюринга, каждая из которых логически определяется в терминах некоторых ограничений [4—7]. Эти ограничения делают машины подкласса намного слабее, чем наиболее общие машины Тьюринга. С другой стороны, в силу того, что эти ограничения дают возможность использовать некоторые дополнительные свойства машин Тьюринга, общие для всего подкласса, мы можем исследовать эти машины более основательно. Более того, подкласс машин Тьюринга часто
9 Yamada Н., Real-time computation and recursive functions not realtime computable, IRE Trans. EL Comp., EC-11 (1962), 753—760.
дает нам модель цифровой вычислительной машины, более реалистичную в частных аспектах.
Настоящая работа, которая является попыткой построить математическую модель для цифровых машин, касается класса многоленточных машин Тьюринга, которые с некоторыми ограничениями применяются для вычислений некоторого класса функций в реальное время. Употребляя цифровую вычислительную машину, важно знать время, необходимое для вычисления данной функции. Однако, как известно автору, не было попыток исследовать общую теорию такого рода1). В качестве начала в этом направлении автор исследовал вычисления в реальное время некоторых рекурсивных функций посредством подкласса машин Тьюринга. Эта работа не претендует на полноту, и необходимы дальнейшие исследования. Тем не менее результаты предыдущих исследований положены в основу этой статьи и сведены в разд 2. В качестве примера в разд. 3 рассмотрено построение некоторой машины из рассматриваемого класса для вычисления полиномов. Для детального рассмотрения интересующегося читателя отсылаем к первоисточнику [8]. В разд. 4 этой статьи мы даем дальнейшую разработку теории и устанавливаем основную теорему, согласно которой вне зависимости от правил вычисления существует подкласс рекурсивных функций, которые не могут быть вычислены в реальное время. Автор полагает, что читатель знаком с основами теории машин Тьюринга и рекурсивных функций [2, 3].
ВЫЧИСЛЕНИЯ В РЕАЛЬНОЕ ВРЕМЯ С ПОМОЩЬЮ НЕКОТОРОГО КЛАССА МАШИН ТЬЮРИНГА
В этом разделе приведены более ранние результаты, полученные автором [8].
Рассмотрим однозначную функцию/ одного переменного, которая всегда принимает целое значение /(х) для любого положительного целого значения аргумента х. (В настоящей работе мы ограничиваемся этим классом функций. Рассмотрение более общих классов функци?! — возможное направление будущих исследований.)
Определим бесконечное множество А натуральных чисел Л = №; xeN, /(х)>0),(1)
где N — множество всех положительных целых чисел. Таким образом, А есть положительная область значений /’ при целом аргументе х. (Если / — рекурсивная функция, то А — рекурсивно
9 В годы, последующие за опубликованием данной статьи, появились работы, в которых исследовался вопрос о времени, необходимом для вычисления функций на машинах Тьюринга и других автоматах. — Прим. ред.
перечислимое множество.) Мы назовем / определяющей функцией множества А и А множеством, определенным f.
Далее определяется метод вычислений в реальное время. Пусть М — автомат с одним двоичным входом и одним двоичным выходом. Пусть /(^—значение на входе (0 или 1) в момент времени / и U(/)—значение на выходе в момент /, где 1 = = 1, 2, 3, .... Говорят, что М есть С-машина1) для А (или для /) тогда и только тогда, когда
^(/)=1, когда /(0=L а 2/(1) бЛ, ... I / = 1 )
U(0 =0 в противном случае.
Другими словами, в момент времени / на выходе стоит 1 в том и только в том случае, если на входе в этот момент стоит 1 и число моментов времени, в которые на входе было 1, является элементом множества А; это справедливо для любой входной последовательности ЦГ) и для любого /. Мы говорим также, что А (или f) С-вычислимо, если существует такая машина М. (Заметим, что С-вычислимое множество необходимо является рекурсивным, ибо любое рекурсивно перечислимое множество, которое может быть перечислено в порядке возрастания значений, есть рекурсивное множество.) Название «счетчик» [при переводе выбран термин «С-машина». — РедД вызвано тем, что машина считает единицы во входной последовательности /(Z), и, как только их число становится элементом множества А, на выходе появляется 1. Так работает наша условная машина. Теперь предположим, что Цх) монотонно возрастает в зависимости от х, и кроме того, fW> 0 для всех х > 0; тогда в С-машине для f выход в i-й раз равен 1 в тот момент, когда вход в f^-и раз становится равным 1. Когда автомат может работать таким образом в зависимости от f для всех х > 0, говорим, что этот автомат является вычислителем (computer) в реальное время. Конечно, это нс единственный способ определить вычислитель в реальное время. При вычислениях в реальное время, определенных таким образом, для того чтобы вычислить /(%), нужно тем больше времени, чем больше х, если f монотонна. Необходимо сохранять скорость каждого логического шага вычислений конечной, как будет показано позднее, когда мы определим структуру М. А пока представьте, что мы определили вычисления в реальное время посредством воспроизведения результатов вычислений, например в виде записи ровно f(x) символов при вычислении f(x) в пределах предписанного конечного времени. То
’) В оригинале «counter» — счетчик. Термин С-машина выбран потому, что для появляющегося ниже производного термина «countable» не удается найти хороший эквивалент. — Прим, перев.
гда машина М должна записывать по мере возрастания /(х) все большие количества символов за ограниченное время. Но это равносильно требованию, чтобы скорость М становилась произвольно большой по мере возрастания f(x), что невозможно физически.
Поскольку наша интерпретация вычислений в реальное время дана в терминах С-вычислений, мы предполагаем вникнуть в сущность вычислений в реальное время с помощью детального изучения С-машин. Хотя предположения относительно входа С-машин и дают большие возможности, желательно устраивать дело так, чтобы автомат выдавал на выходе в г-й раз 1 в том и только том случае, когда прошло ровно f(i) моментов времени; для этого достаточно подавать на вход последовательность единиц. (В этом случае вход просто служит метрономом.) Грубо говоря, мы хотим, чтобы М была многоленточной машиной Тьюринга с одним двоичным входом и одним двоичным выходом. (Ленты не могут использоваться в качестве входа и выхода ) В точных терминах М есть автомат, удовлетворяющий следующим условиям, которые не обязательно являются независимыми друг от друга:
Машина М детермирована и имеет один двоичный вход и один двоичный выход.
М состоит из управляющего устройства (процессора) Р с конечным числом состояний и конечного числа лент. Р может писать, стирать и читать символы на лентах и может передвигать ленты вправо или влево. Каждая лента управляется отдельно.
Все ленты рассматриваются, как в теории Тьюринга, — они могут расти в оба конца безгранично по мере надобности. Число различных символов, используемых на лентах, конечно.
Одна операция М состоит либо из записи символов на ленте (в том числе и стирания), либо из передвижения ленты на один квадрат. Существует определенный предел для числа операций, которые машина М может выполнять в единицу времени. (Этот предел определяет скорость работы М.)
Входной символ 0 не изменяет («внутреннего») состояния Р, не влечет за собой написание или уничтожение символа на ленте, равно как и движение какой бы то ни было ленты. Входной символ 1 вызывает всегда по крайней мере одно из этих действий.
Выше приведено точное определение С-машины М. Здесь нужно заметить, что определенный таким образом класс автоматов есть особый подкласс машин Тьюринга. Они могут иметь более одной растущей ленты. С-машинам позволено начинать работу с лентами, на которые нанесены начальные записи конечной длины. Из условия 4 также следует, что верхняя гра-
ница для емкости памяти машины М в момент времени / есть p-n-t, где р— число операций на одной ленте за один момент времени, п— число используемых лент, t — число моментов времени, протекших с начала работы. Таким образом, достижимая емкость памяти растет самое большее линейно относительно времени.
В терминах точного определения С-машины М теперь ясно определение С-вычислений, приведенное выше. Главным содержанием работы [8] было установление классов С-вычислимых функций. Главные результаты, полученные в этой работе, следующие (f, g, h — функции, с и k — положительные целые константы) :
Если М конечна (что означает, либо что М вообще не имеет лент, либо что М никогда нс использует более, чем определенную ограниченную часть каждой из лент), то каждая С-вычислимая функция представима в виде линейного двучлена, за исключением начальных вычислений конечной длины.
Если исключить из рассмотрения С-машины, упомянутые в п. 1, то общее состояние С-машины М нс может быть одним и тем же в моменты f и /, где 14= 1\ если только входная последовательность между V и / не состоит из одних нулей. Общее состояние определяется как информация о внутреннем состоянии, записанные на лентах последовательности символов и просматриваемые на каждой ленте квадраты.
Любая функция одного переменного, данная в виде полинома с целыми коэффициентами, С-вычислима.
Если f и g С-вычислимы, то функции, заданные следующими выражениями, С-вычислимы:
f(x) + g(x).
IIl/f(x).g(x).
iv. Hf(°-
ttoW
f(x)fiW.
f(x) — g(x) при условии, что существуют с> 1 и &, такие, что f(x + 6) — f(x) ^{с/(с— 1)} • [^(х + k) — g(x)].
Функция, определенная следующим образом, С-вычислима:
/?(!) = с,Л(х + \') = С*Цх\
Если ^/(0 С-вычислима и f(x + fe)^f (x) + ^-j ^ х^ 7(0
для некоторых е>1 и k, то С-вычислима и f.
Если функция двух переменных h вводится как определяющая функция множества А, где А = {А (х, у) |х, у, Н (х, у) — натуральные числа} и если f и g С-вычислимы, то С-вычислимы следующие функции:
h^x, у) = f(х) + {(у), если для некоторого к Цх + к)">
/г(х, у) = f (х + у) + g(x), если для некоторого к
f(x + £+ l)-f(x+ l)>g(x)-g (1);
Если А и В — С-вычислимые множества, то Л U В, А П В и ~А также С-вычислимы.
Любая С-машина (из класса, определенного выше) с лентами, которые могут расти в оба конца, имеет эквивалентную С-машину с полуограниченными лентами.
Любая С-машина с п лентами имеет эквивалентную С-машину только с 2П внутренними состояниями.
И. Любая С-машина имеет эквивалентную С-машину всего с двумя символами.
Доказательства всех этих результатов основаны на построении С-машин для решения задач. Большинство из них связано с использованием свойств абстрактных логических сетей. Построение С-машины для полиномиального множества, приведенное в следующем разделе, даст пример такого доказательства. Это построение довольно прозрачно по сравнению с теми, которые использованы для доказательства других результатов [8].
С-ВЫЧИСЛИМОСТЬ ПОЛИНОМИАЛЬНЫХ МНОЖЕСТВ
Пусть р — полином м-й степени с целыми коэффициентами р <х^ апхп-V ап_ххп"х + ... 4-а^ + ао,
где ап > 0. Тогда полиномиальное множество А (р) определяется как бесконечное множество, состоящее из элементов р(0), р(1),у(2),'
Например, если мы возьмем полином р(х)=х2, то А (р) будет множеством всех точных квадратов. (Легко проверить, что единственными полиномиальными множествами, С-вычислимыми на конечных автоматах, являются множества, определяемые линей-
ными полиномами. Более того, все линейные полиномы С-вычис- лимы таким образом.)
Теорема 1. Каждое полиномиальное множество является С-вычислимым.
Доказательство. Доказательством будет являться построение С-машины для данного множества. В силу основного свойства полинома существует kOl такое, что для всех к > /г0 полиномы р^ монотонно возрастают, где р^—разности, определяемые ниже. Для такого числа £0 строится следующая таблица разностей:
/>№)+ 1)Р (^о + 2)Р (^о + 3)Р (к0 + 4)Р &> + 5)/>№)+ 1)Р (^о + 2)Р (^о + 3)Р (к0 + 4)Р &> + 5)/И^о + З) ^"(^о + З) ^"(&о + 4) ^"(йо + 5)/И^о + З) ^"(^о + З) ^"(&о + 4) ^"(йо + 5)/Р№ (к0 + /г)^Р№ (k0 + п + 1)'/Pw (к0 + п + 2)/Р№ (к0 + /г)^Р№ (k0 + п + 1)'/Pw (к0 + п + 2)/РЧк» + 1) ^>/(£0 + 2) ^р' (^о + 3) ^р,(^о + 4) ^р' (&0 + 5)
/>№)+ 1)
Р (^о + 2)
Р (^о + 3)
Р (к0 + 4)
Р &> + 5)
/>№)+ 1)
Р (^о + 2)
Р (^о + 3)
Р (к0 + 4)
Р &> + 5)
/И^о + З) ^"(^о + З) ^"(&о + 4) ^"(йо + 5)
/И^о + З) ^"(^о + З) ^"(&о + 4) ^"(йо + 5)
/Р№ (к0 + /г)
^Р№ (k0 + п + 1)
'/Pw (к0 + п + 2)
/Р№ (к0 + /г)
^Р№ (k0 + п + 1)
'/Pw (к0 + п + 2)
где
(3)(3)РЧО = р(0-р(г- 1),р'ЧО = рЧО ~ рЦг - 1),
(3)
(3)
pw (г) = р^—^ (г) — р^1-^ (г — 1).
Хорошо известно, что pW^ = п\ап для всех г. Другими словами, р можно характеризовать с помощью p^V р'(k0 + 1),... ..., р^Ч^ + nV а не ап, йп-А' • • •, ^о- Более того, легко видеть, что существует к ^ к0, такое, что условие
рЧг + ^> Р'Цг+ п") +рш (г + п^+ ... +р{п}(г + п) (4) выполнено для всех г > к в силу того факта, что р' есть полином (м—1)-й степени и все полиномы в правой части (4) имеют меньшие степени. Взяв это к вместо к^ в вышеприведенной
таблице разностей, мы строим для А(р^ С-машину с п лентами:
р' (& + м)
тхТ2Т3тхТ2Т311
тх
Т2
Т3
тх
Т2
Т3
р'Цк + пХ-1
1 ... 1"
t
р'" (k + n)- 1
1 ... 1
t
pw(^+n+ 1)- 1
Тп 1 1 ... 1
Стрелки под лентами обозначают символы, которые считывает машина. Употребляя эти ленты, машина выполняет в те моменты времени, когда на вход поступает символ 1, следующие операции:
Один шаг вправо в каждый момент на Тх.
Одновременно с 1 продвигается вправо на Тп и влево на Т^-х. записывая 1 на Тп_х до тех пор, пока не будут исчерпаны все 1 на Тп. В следующий момент пишет 1 на Тп_х.
После 2, но все еще одновременно с 1 продвигается вправо на Тп-х и влево на Тп-^ записывая 1 до тех пор, пока все 1 на Тп_х не будут исчерпаны. В следующий момент пишет 1 на Тп_2.
Повторяет процедуру с (7\_2, 7\_3), (Гп_3, Гп_4), ... .(Г3, Т2у все еще совпадающую с 1. (В силу (4) на Тх еще есть 1.)
После этих шагов все еще продолжает 1, пока все 1 на Тх не будут исчерпаны.
Затем продвигается вправо на Т2 и Тх, записывая 1 на Тх до тех пор, пока все 1 на Т2 не будут исчерпаны. После этого пишет 1 на Г], выдает на выходе 1, продвигается на один шаг на Т2. Т^ .... Тп влево и считывает крайние правые символы на лентах.
Когда вышеприведенный процесс закончен, ленты в силу (3) выглядят следующим образом:
р' (fe + n + 1)
Тг11 ... 1"
tр"(k + n + ‘)-1
7*21 1 ... 1
t p"'(fc + n+l) - 1
Г311 ... Г
pw (k + п + 2) — 1 = р(п\1г + n+ 1) - 1
Tn1 1 ... 1
Для каждой ленты Т^ здесь существенно использовано равенство р'^ =Р'(Г — О "Vp^V—1) +• • -4-р^пЧг—О- Легко проверить, что общее число единиц на входе, требуемых, чтобы выполнить описанные операции, есть р^к-уп-у 1). Это в точности приращение нашего полинома р от р^к-Уп) до р(^4-п+1). Следовательно, если мы устроим машину так, что в момент подачи р(к-уп) -го входного символа 1 будут выполнены описанные выше начальные условия для лент, то следующие входные единицы приведут к вышеописанным операциям, по окончании которых мы сосчитаем значение р(^ + ^+1).
Установление начальных условий для лент и отсчет р(к-ум) входных символов являются конечными операциями, которые могут быть выполнены конечным автоматом. Когда вычислено p(fe + n+l), ленты имеют вид, сходный с начальным с той разницей, что количество единиц на каждой ленте изменилось в соответствии с изменившимся на 1 аргументом функций. Кроме того, обозреваются символы на правых концах лент, а не на левых, как это было при начальном расположении. Следовательно, если мы снова начнем производить все те же операции с лентами, но выполняя все передвижения в противоположном направлении, мы по их окончании сосчитаем р(^ + м + 2). Затем машина повторяет те же операции, сдвигая головки назад и вперед и руководствуясь одним из двух наборов правил, приведенных
выше. В результате машина может вычислять р(& + я + 3), р(6 + я + 4) и т. д. до бесконечности. Таким образом, у нас есть вычисление функции р, начиная со значения аргумента £ + ^+1. Осталось показать, как вычисляется р для значений аргумента между 1 и к-Уп. Поскольку вычисление (положительных) значений от р(1) до р^к-уп^ выполняется с помощью конечного числа операций, добавление конечного автомата решит вопрос. Действительно, эти вычисления выполняются подачей выходного символа 1 в подходящие моменты начального отрезка времени вплоть до р^к-Уп) момента. Таким образом, мы показали принцип С-вычисления функции р посредством простого описания механического поведения машины. Ее поведение может также быть строго описано в терминах (растущего) графа состояний. Доказательство окончено.
В качестве частного примера построим С-машину, которая вычисляет Л={п3; м = 0, 1,2, . ..} для входного символа 1. Таблица разностей в этом случае такая:
Ох
> 1 X
8х >12х
>19х
27<>18х.
у37х .•
64х .•е
Поскольку 6+12<19, равенства p'"(£ + 3) = 6, Рз'(& + 3)=12 и р' (& + 3) = 19 удовлетворяют (4). Именно мы можем выбрать начальный вид лент следующим образом:
19
П 11 ... 1t11
5
Т3 Mill
Поведение С-машин можно описать в терминах множества /V-ок, что является легкой модификацией множества пятерок, использованного Тьюрингом в [2]. Хотя М-ки имеют различные формы, типичный их вид следующий:
к- ^=Х’ S,,\' Л'.,MV 1,. иу
где
п — число лент машины,
<7Z —текущее состояние процессора Р,
Szp .Sin — наблюдаемые в данный момент на лентах Ть ..., Тп символы,
S/p ..., S^ —новые символы, которые нужно записать на лентах Ть .. ., Тт
Nkv ..., Mkn— движения по лентам Тъ ..., Тп, q; — следующее состояние Р, U — выходной символ.
Теперь представим полиномиальную С-машину в терминах этих Л/-ок. Входной символ 0 не оказывает на машину никакого действия, а вход 1 вызывает следующие операции. Звездочки на месте символов ленты означают, что остаются написанные на лентах символы (или что записываются идентичные им символы) L, R и * на месте движений означают сдвиг на единицу влево, вправо и отсутствие движения соответственно.
1.
9o
Hl,
*** ***
91
1
2.
91
111,
***, ***
92
0
8.
9?
111,
*** ***
98
1
9.
98
UI,
***, ***
99
0
26.
925
Hl,
***. ***
926
0
27.
926
111,
*** ***
927
1
(Это и есть начальный сегмент; отметьте строки 1 (=13), 8 ( = 23), 27 (=33), которые имеют выход 1.)
q^111,***,RLRq230
<728Ю1,*1*,RLRq^O
^/28ЮО,*1*,R** <729
q29100,* * *,R** 4^9
<729010,1**,RR*q30 0
<73O010,1**,RR*<73o 0
<73O000,100,*LLq3X 1
Таким образом, следующая выходная единица появляется в момент 64 (=43), а ленты выглядят в этот момент следующим образом:
37.
Г11 1
17
Т21 1 ... 1
t
5
Гз Mill t
Следующие шаги являются зеркальным отражением вышеприведенных шагов относительно движения:
(^з1 1 1 1» ***, LRL <^з2 6
q32 101, *1*, LRL q32 0
q32 100, * * *, 7,** q зз 0
qзз 100, ***, Tv** q33 0
q33 010, 1**, LL* q34 0
q34 010, 1**, LL* q34 0
q34 000, 100, *RR q27 1
Затем весь процесс повторится от q2i до qst- Это конец построения С-машины для точных кубов.
Нужно отметить, что запись на 73 не растет во времени. Это верно и в общем случае полинома п-й степени, только записи на п— 1 ленте удлиняются. Другим моментом, который мы должны здесь отметить, является то, что, если дана определяющая функция f, задача вычислений сводится к последовательному вычислению f(l)—f(0), f(2) — f(l), f(3)—f(2) и т. д. Другими словами, если мы определяем приращение F функции f как
FM = fU^ l)-f (Х), х>0,
то перед машиной стоит задача вычислять F(х) заново для каждого х=1, 2, 3 и т. д. Это просто следует из того факта, что поскольку вычислено f(x), то и f(x+l) во многом вычислено, и чтобы получить f(х-f-1), требуется единственное дополнительное вычисление—вычисление разности f (х + 1) j (х).
РЕКУРСИВНЫЕ ФУНКЦИИ, НЕ ЯВЛЯЮЩИЕСЯ С-ВЫЧИСЛИМЫМИ В РЕАЛЬНОЕ ВРЕМЯ
По ходу рассуждений, приведенных в предыдущих разделах, встает вопрос, являются ли решительно все рекурсивные функции вычислимыми описанным образом. Легко поверить, что не все рекурсивные функции С-вычислимы, ибо условие реального времени накладывает на действия машины Тьюринга по-настоящему строгое ограничение. Однако доказательство отсутствовало. В настоящем разделе мы устанавливаем существование рекурсивных функций, которые не являются С-вычислимыми.
Сначала докажем предварительную теорему о С-машинах.
Теорема 2. Если функция f С-вычислима С-матиной, у которой до начала вычислений на лентах записаны слова конечной длины, то существует эквивалентная С-маишна с первоначально пустыми лентами.
Доказательство. Доказательство довольно простое. Независимо от того, какие (непустые) слова записаны первоначально на лентах у исходной машины, в процессе вычислений они будут просмотрены машиной хотя бы один раз спустя конечное число шагов с начала вычислений. В противном случае некоторые части слов никогда не будут использованы, и их можно стереть перед началом вычислений.
Пусть m— наименьшее число операций, которое требуется головкам машины, чтобы просмотреть все символы на лентах по крайней мере по одному разу. Пусть также п— наибольшее из расстояний между двумя любыми символами на любой ленте к концу просмотра начальных слов так, как это описано выше. Очевидно, т^п. Также очевидно, что поведение машины во время первых т шагов есть событие с конечным числом состояний и его можно моделировать конечным автоматом. Слова, которые записаны на лентах через т тактов работы, можно получить за п тактов, если начинать вычисления с пустыми лентами. Следовательно, на начальном отрезке действий исходную машину можно заменить описанными выше моделирующей машиной и автоматом, создающим содержание лент. Получившаяся С-машина эквивалентна исходной, как и утверждает теорема.
Здесь мы напоминаем читателям, что существует конечный алгоритм для нумерации всех С-машин, представленных в виде множества наборов длины N (А/-ок), как это обсуждалось в предыдущем разделе, или в другом подобном виде [2, 3]. Эта процедура есть точный аналог нумерации всех машин Тьюринга с помощью гёделевских номеров. Поэтому мы не вдаемся
в детали. Знание этого факта позволяет перейти к доказательству следующей теоремы.
Теорема 3. Существует счетный бесконечный класс рекурсивных функций, не вычислимых в нашем специальном классе машин Тьюринга (С-машин^).
Доказательство. Доказательство основано на «диагональном» методе. Без потери общности предполагаем в доказательстве, что входная последовательность любой С-машины всегда состоит только из единиц. Пусть Сь С2, ... — последовательность С-машин, в которой Ct либо С-машина с гёделевским номером I, либо некоторая С-машина, на входе которой всегда О, если i не является гёделевским номером ни для какой С-машины. Поскольку каждой С-машине с первоначально пустыми лентами соответствует некоторый гёделевский номер, она, очевидно, должна появиться среди машин Сь С2, ..., которые занумерованы описанным образом. В дополнение к этому теорема 2 устанавливает, что для любой С-машины с первоначально непустыми лентами существует по крайней мере одна эквивалентная С-машина с первоначально пустыми лентами. Следовательно, все С-машины, определенные нами, представлены в нумерации.
Теперь предположим, что существует С-машина К со следующим выходом. В момент t выход К есть отрицание выхода машины Ct в момент t. Выход К отличается от выхода любой С-машины из всей приведенной последовательности по крайней мере в один момент времени. Поэтому К или другая С-машина с таким же выходом не может быть в нумерации всех С-машин. Но мы знаем, что наша нумерация содержит все возможные С-машины. Следовательно, С-машина К не существует. Вопрос о том, является или нет п номером набора символов, решается алгоритмически. Затем решить вопрос о том, имеет ли последовательность с номером п форму, представляющую С-машину в нашем определении, можно с помощью рекурсивной процедуры. Далее, если последовательность символов представляет С-машину, мы можем заставить эту машину начать работу с пустыми лентами и проработать п тактов, а затем посмотреть выход в п-й момент. Это рекурсивная процедура. Наконец, отрицание выхода также является рекурсивной процедурой. Следовательно, композиция всех этих процедур — рекурсивная процедура. Более точно, множество 3 всех t, таких, что выход К в момент / есть 1, является рекурсивным; но, так как К не содержится среди С-машин, это множество С-невычислимо. Определим теперь функцию f следующим образом: f (1) — наименьший элемент S, f(%+l) есть наименьший элемент множества S, от-
личный от всех f(l), f(2), ..., f(x). Поскольку S рекурсивно, то и f рекурсивно. Но, если бы / была С-вычислимой функцией, S было бы С-вычислимым множеством. Следовательно, /— рекурсивная С-невычислимая функция.
Поскольку мы получили С-невычислимую функцию, можно построить счетное бесконечное семейство С-невычислимых рекурсивных функций, употребляя т как параметр следующим образом:
fmW = Hx) + g(m),
где g— монотонно возрастающая функция, которая принимает целые значения при целых значениях т. Простейший пример — g^m^m. Можно показать, используя теорему, сформулированную в п. 4) (I) разд. 2, что fm, полученные таким образом, С-невычислимы, если f С-невычислима. Заметим, что множества, определяемые семейством fm, не пересекаются.
Мы использовали здесь метод доказательства, похожий на тот, которым доказывают, что существуют функции, нс являющиеся рекурсивными. Однако имеется существенное различие. В доказательстве упомянутой теоремы мы утверждаем, что, поскольку функция, построенная с помощью диагонального процесса, нс может быть представлена никакой машиной Тьюринга из занумерованных, такая нумерация всех машин Тьюринга невозможна. Следовательно, не существует рекурсивной функции/, такой, что /(%)=!, если х— гёдслевский номер машины Тьюринга, представляющей рекурсивную функцию, и /(х)=0 в противном случае. Это проистекает из того факта, что мы не всегда можем решить за конечное число шагов, является ли х гёдслсвским номером машины Тьюринга, представляющей рекурсивную функцию. Другими словами, если мы в течение п шагов вычислений проверяем, дает ли машина выход для данного входа, для машины всегда существует возможность давать выход на (п+1)-м шаге или позже, сколь большим ни взять п. В доказательстве нашей теоремы мы были свободны от этой трудности, потому что должны были проверить выход С-машины Сн только при t = k, что является конечным процессом.
Вышеприведенная теорема доказана в связи с классом С-ма- шин, определенных в разд. 2. Однако теорема может быть далее обобщена следующим образом.
Теорема 4. Независимо от того, каковы конструкция и операции машины, если только они рекурсивно определены и результат вычислений определяется числом единиц, поданных на вход к моменту данного выхода, существует бесконечное счетное
множество рекурсивных функций, которые не вычислимы в классе машин, определенных таким образом.
Доказательство. Если мы внимательно просмотрим доказательство теоремы 3, то увидим, что нам нс понадобились иные условия, накладываемые на структуру машины, кроме данных в теореме. Детали доказательства оставляем читателям.
Теорема 4 в действительности является следствием теоремы 3, или наоборот. Однако машины, используемые в теореме 4, сильно отличаются от машин из теоремы 3, и по этой причине мы приводим теоремы отдельно. В качестве примеров машин этого класса упомянем следующие:
Мы можем начинать работу с непустыми лентами.
Могут быть машины, у которых ленты имеют более, чем по одной рабочей головке.
Переменная скорость работы может быть определена рекурсивной функцией (если нс считаться с физической возможностью реализации).
Легко сформулировать другие примеры.
ЗАКЛЮЧЕНИЕ
Мы рассмотрели некоторые результаты, связанные с вычислениями в реальное время. Однако автор чувствует, что это не более, чем начальная попытка. То установление связей между входом и выходом, которое мы использовали, ни в косм случае не является единственно возможным1). Исследования должны вестись также для такого устройства: результат вычисления f(fe) дастся в виде содержания лент в момент, когда подается С(^)-й вход, где С— некоторая функция к. Другие связанные с этим проблемы предлагаются в исследовании [8].
Настоящую попытку можно расценить как стремление развить теорию машин Тьюринга с ограничениями, наложенными на число шагов вычислений. Это можно противопоставить изучению теории машин Тьюринга с различными ограничениями на длину лент, предпринятому Майхиллом [5], Рабином, Скоттом [6], Шепердсоном [7], Ричи [9] и другими.
Нужно также заметить, что после того, как настоящая работа была написана, Зигель [10] получил, в частности, такие результаты:
не каждая С-вычислимая функция примитивно рекурсивна;
не каждая монотонно возрастающая примитивно рекурсивная функция С-вычислима.
*) Дальнейшие исследования в этом направлении проводились в [11, 13] и других работах. — Прим. ред.
Машины, которые он использовал для классификации рекурсивных функций, определены в разд. 2. Дальнейшее обобщение классификации, основанное на машинах, используемых в теореме 4, определяет возможное направление будущих исследований.
ЛИТЕРАТУРА
McNaughton R., Theory of automata, a survey, Advances in Computers, vol 2, F. L. Alt, Ed., Academic Press, Inc., N. Y., 1961.
T u r i n g A. M., On computable numbers, with an application to the Entscheidungsproblem, Proc. London Math. Soc., ser. 2, 42 (1936), 236— 265. («Correction», ser. 2, 43 (1937), 544—546.)
Davis M., Computability and unsolvability, McGraw-Hill Book Co., Inc., N. Y„ 1958.
L e e C. Y., Various models and examples of automata, in Programming concepts, automata, and adaptive systems, 1960 Summer Session, College of Engrg, Univ, of Michigan, Ann Arbor.
M у h i 11 J., Linear bounded automata, WADD Tech. Note 60—165 and University of Pennsylvania, Philadelphia, Moore School Rept. № 60-22, June 1960.
Rabin M. O., Scott D., Finite automata and their decision problems, IBM J. Res. and Dev., 3 (1959), 114—125. (Русский перевод: Кибернетический сборник, вып. 4, ИЛ, М., 1962.)
Shepherdson J. С., The reduction of two-way automata to one-way automata, IBM J. Res. and Dev., 3 (1959), 198—200. (Русский перевод: Кибернетический сборник, вып. 4, ИЛ, М., 1962.)
Yamada Н., Counting by a class of growing automata, Moore School of Electrical Engrg.; University of Pennsylvania, Ph. D. dissertation, June 1960.
Ritchie R. W., Classes of recursive functions of predictable complexity, Princeton University, Princeton, N. J., Ph. D. dissertation, 1961. (См. также стр. 50—93 настоящего сборника.)
Siegel J., Some theorems about Yamada’s restricted class of recursive functions, IBM Thomas J. Watson Research Center, Yorktown Hgts., N. Y., IBM Res. Paper RC-510; 1961.
ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА
Hartmanis J., Stearns R. E., On the computational complexity of algorithms, Trans. Amer. Math. Soc., 117 (1965), 285—306. (Русский перевод: Хартманис Дж., С т и р н з Р. Е., О вычислительной сложности алгоритмов, Кибернетический сборник (новая серия), вып. 4, «Мир», М., 1967, стр. 57—85.)
Трахтенброт Б. А., Тьюринговы вычисления с логарифмическим замедлением, Алгебра и логика, Семинар, 3 (1964), 33—48.
Rabin М. О., Real-time computation, Israel J. of Math., 1, № 4 (1963), 203—211. (См. стр. 156—167 настоящего сборника.)
ВЫЧИСЛЕНИЯ В РЕАЛЬНОЕ ВРЕМЯ1)
М. Рабин
При формулировке задачи вычислений на машинах Тьюринга предполагается, что исходные данные (скажем, числовое значение аргумента, для которого нужно вычислить значение функции) записаны на ленте машины и машина работает, выполняя вычисления. На число шагов («время»), необходимых для того, чтобы закончить вычисления, не накладывается никаких предварительных ограничений. Функции, вычислимые таким образом, — это в точности все рекурсивные функции.
С точки зрения общей теории вычислений весьма интересно проникнуть в сущность вычислительных процессов, при которых на время вычислений наложены некоторые ограничения.
Одно естественное ограничение заключается в том, что если входные данные состоят из п символов, то требуется выполнить вычисления за п основных шагов — один шаг на один входной символ. Мы можем предположить, что входная последовательность поступает в машину по одному символу за единицу времени и что машина выполняет одну элементарную операцию на один выходной символ. Мы по-прежнему будем считать наши машины машинами Тьюринга, которые, однако, могут иметь более одной ленты. Вычисления, которые выполняются таким образом, будут называться вычислениями в реальное время (на машине Тьюринга). Отмстим, что наши системы могут служить математическими моделями для вычислительных машин (с внешней памятью на лентах), которые используются для так называемого управления «в реальное время».
В частности, если результат вычислений для любого входа О или 1, то можно считать, что машина определяет некоторое множество, именно множество тех входных последовательностей, которые дают 1. Неформально мы можем также сказать, что машина распознает, содержится данная входная последовательность в множестве, определенном машиной, или нет.
Имеется несколько результатов (наиболее значительные у Ямады [2]) о вычислениях в реальное время на машинах Тью-
9 Rabin М., Real time computation, Israel J. of Math., 1, № 4 (1963), 203—211.
ринга. Они идут главным образом по линии установления возможности определенных вычислений в реальное время. Понятие вычислений в реальное время интересно обобщается Хартмани- сом и Стирнзом [1].
В отличие от случая конечных автоматов здесь нет четкой внутренней характеристики класса множеств, которые определимы в реальное время. Действительно, прежде чем давать полную характеристику, мы, вероятно, должны приобрести некоторую интуицию относительно осуществимости и неосуществимости определенных задач в реальное время.
Наш основной результат состоит в том, что существует проблема распознавания, которая может быть решена в реальное время, если использовать две ленты, и не может быть решена в реальное время, если использовать только одну ленту. Результат имеет очевидные приложения, касающиеся вопроса о сравнительных возможностях вычислительных машин с одной или большим количеством лент при использовании их в устройствах управления в реальное время.
В разд. 6 мы обсуждаем различие в трудности доказательств невозможности некоторых вычислений. В качестве иллюстрации дается пример задачи, которая неожиданным образом может быть решена в реальное время на одной ленте (теорема 3).
Результат об относительных возможностях вычислений на одной ленте в сравнении с вычислениями на двух лентах — лишь пример из трудной области оценки «степени сложности вычислений». Мы надеемся, что некоторые идеи нашего доказательства, в особенности понятие узкого места (bottleneck) в вычислениях, можно распространить применительно к другим задачам из этой же области.
МАШИНЫ ТЬЮРИНГА, РАБОТАЮЩИЕ В РЕАЛЬНОЕ ВРЕМЯ
Модель вычислений в реальное время, с которой мы работаем, такая же, как у Хартманиса и Стирнза [1] и у Ямады [2].
Многоленточная машина Тьюринга во входном алфавите 2 есть конечный автомат М, у которого имеется конечное множество S состояний и рабочий алфавит W = {а, ..., ап}. Одно из состояний (назовем его s0) мы отличаем от других как начальное состояние. Подмножество F ^S выбирается в качестве множества выделенных конечных состояний. Машина имеет к двусторонних бесконечных линейных рабочих лент tx, ..., t^ которые разделены на квадраты. Имеется головка, способная читать и писать и воспринимающая в любой данный момент один квадрат на каждой из рабочих лент. М может принимать на входе ое2. Мы всегда предполагаем, что рабочий алфавит
содержит пустой символ и по крайней мере еще один символ, так что 2 ^ п.
Работа машины определяется функцией
М(а, s, а1? azJ = (s/, X,Хк,ayJ,
где oeS, s, s'eS, ai,ajGl^, X€g {0, 1, — 1}. Мы будем говорить об этой функции как о таблице fe-ленточной машины Тьюринга. Интерпретация состоит в том, что если на входе а и М в состоянии s читает а/^ на ленте /г, 1^г^£, то М перейдет в состояние s', напишет a/f в квадрате, который она воспринимает на ленте /г, и сдвинет каждую ленту tT на один квадрат влево, вправо или не сдвинет вовсе, смотря по тому, равно ли Хт 1, —1 или 0. Это действие М называется элементарной операцией.
Замечание. Когда М пишет символ a е V в некотором квадрате, содержимое этого квадрата предварительно стирается. Написание пустого символа из W означает просто стирание содержимого квадрата.
Множество всех конечных последовательностей в алфавите 2 будет обозначаться 2*.
Определение 1. О последовательности х = сн ... ор е 2* говорят, что она допускается машиной М, если из состояния $опри пустых рабочих лентах М под действием последовательности х при помощи элементарных операций закончит свою работу в состоянии, принадлежащем F (т. е. в момент времени р машина М находится в выделенном состоянии).
Множество всех последовательностей, допустимых машиной М, называют множеством, определимым М, и обозначают Т(М). Множество Т с 2* называют определимым в реальное время (или распознаваемым), если существует многоленточная машина Тьюринга М, такая, что Т = Т(М).
В частности, Т называют определимым в реальное время с Помощью к лент, если для некоторой машины М с к лентами Т(М) = Г.
Совершенно ясно, что термин «реальное время» хорошо подходит для такого способа работы. Если х— последовательность длины р— вводится в машину М за р единиц времени, то посмотрев в момент времени р на состояние машины, мы узнаем, допустима или нет последовательность х. Таким образом, между восприятием исходных данных и их переработкой нет задержки во времени.
Мы ограничиваемся рассмотрением проблем распознавания. Простое исследование показывает, однако, что проблема вычис*
лений в реальное время может быть легко сведена к проблеме распознавания. Таким образом, наши ограничения не влекут потерю общности.
МНОЖЕСТВО Т2
Пусть 2 = {я, 6, 0, 1, а, р}. Слова из символов {а, 6} будем называть ab-словами и множество ab-слов обозначать через А. Слова в алфавите {0, 1} будем называть 01-словами и множество их обозначать через Z.
Если х = 0102 ... Оп-лОт то по определению %* = onan-i ... ... О2П1.
Определение 2.
Г2 = Vuyau* \ие A, v ^ Z) и {wvpv* | и ее Д, у ZY
Лемма 1. Множество Т2 определимо в реальное время двуленточной машиной.
Доказательство. Мы опишем работу двуленточной машины М, для которой Т2 = Т^Му Читатель может проверить, что такой способ работы действительно реализуется в виде некоторой таблицы машины.
По мере поступления яЬ-слова и М будет записывать его на своей первой ленте. Когда будет поступать 01-слово и, М будет записывать его на своей второй ленте. В зависимости от того, какой из символов а или р последует за входным словом ии, М будет просматривать в обратном направлении первую или вторую ленту. М окончит работу в выделенном состоянии тогда и только тогда, когда последовательность w, идущая вслед за а (или р), совпадет с последовательностью, которая получается просмотром в обратном направлении первой (второй) ленты.
Теорема 1. Множество Т2 не определимо в реальное время одноленточной машиной. Следовательно, вычисления с двумя лентами в реальное время обладают большими возможностями, чем вычисления в реальное время с одной лентой.
ПРЕДВАРИТЕЛЬНЫЕ ЛЕММЫ
Чтобы доказать, что Т2 нс определимо в реальное время одноленточной машиной, предположим противное, именно что некоторая одноленточная машина М определяет Т2 в реальное время. Пусть число состояний М будет m и число букв в рабочем алфавите будет п. На протяжении последующих разделов
(3—5) М всегда будет обозначать эту фиксированную одноленточную машину, для которой Т2=^(^)-
Определение 3. Если w— входная последовательность машины М, то рабочей зоной t(w^ машины М при последовательности w назовем последовательность квадратов ленты, на которых побывала машина М во время подачи входа w.
Если х— последовательность квадратов на ленте или последовательность символов, то /(%) будет обозначать длину, т. с. число элементов х.
Пусть х — входная последовательность; кодом х мы будем считать последовательность символов на квадратах рабочей зоны Z(x), состояние машины М и се положение на ленте в конце подачи входной последовательности х.
Лемма 2. Существует числовая константа с>0, такая, что для любого иеА и любого целого 1>0 существует ugZ, такое, что 1^=1 и ci ^1(1 (uv)).
Доказательство. Существует 21’ последовательностей ие2, таких, что /(y)=L Поскольку после ио на входе может появиться р, то, если Vi 4= о, тогда иох и ио должны иметь разные коды. В противном случае и ио^о* и иофо* будут допускаться машиной М.
Пусть Ц1(ио^ ^£ для всех уе2, Цо) =1. Тогда существует самое большее nk'k-m различных кодов для входов ио. Следовательно, У^пк-к-т. Если i велико, то и к велико, так что можно предполагать кт^.пк (мы предполагаем 2<п). Таким образом, У^п2к, и, следовательно,
1 In 2
Мы можем взять ci= yj^;- ^то ci будет пригодно для всех i, больших, чем некоторое iQ; для достаточно малого с лемма будет выполняться при всех i.
Лемма 3. Существует, целое d>0 (зависящее только от машины М), такое, что для любого не Аи любого целого ОЦи) существует последовательность ugZ, /(9)=^ такая, что a) ci ^СЦЦио)), б) не более чем 1/5 квадратов рабочей зоны Цио) посещались машиной М более чем d раз.
Доказательство. Выберем последовательность о ^ Z, Z(v) = i, для которой выполняется (а). Пусть dx— число, такое, что больше чем 1/5 квадратов Цио) посещались машиной М более чем dx раз. Тогда общее число шагов работы машины превышает dx - (\ф)1Ц(ио)) ^ (\!6)dxci. Но, поскольку М работает
в реальное время, число шагов ее работы над входом ио в точности равно /(w) 4-/(у)^ 2l Таким образом, ~-d1cZ^2Z и dx ^ 10/с. Число d = [10/с 4- 1] удовлетворяет (б).
КВАДРАТЫ УЗКОГО МЕСТА
Доказательство нашей главной теоремы основывается на том, что при подаче определенной входной последовательности на рабочей ленте машины образуются квадраты узкого места, через которые информация не может протекать в достаточном количестве. Понятие узкого места можно уточнить следующим образом:
Определение 3. Пусть mA, и ^ Z. Квадрат B^t^uu^ называется квадратом узкого места рабочей зоны Цис), если
h t(uv) Н
t(u)
в
R
Е
l(u) + 1 < Ifo)
Рис. 1.
под действием входа ии машина проходит через В не более чем d раз (где d выбрано по лемме 3), 2) В лежит вне рабочей зоны Ци), 3) длина той части Ции), которую отделяет В и которая не содержит /(и), превышает /(ц)4- 1.
Лемма 1. Для любого и^А существует v е Z, такое, что зона Ции) имеет квадрат узкого места.
Доказательство. Пусть i— натуральное число, такое, что 5/(ц) 4-5<cZ, и, кроме того, Ци^ ^1. По лемме 3 существует последовательность и е Z, такая, что ci ^.ЦЦии)) и менее чем 1/5 часть квадратов t^uu^ посещалась машиной более чем d раз. Получаем l(t(u))^. Ци) 4- К ci/5 ^ЦЦии^б. Разделив t^uu^ на пять равных частей (если Z(/(wc)) не делится на 5, рассуждение изменяется очевидным образом), мы видим, что либо на левом, либо на правом конце Цис) есть отрезок длины (2/5)l{t(uv)), который не содержит квадратов Ци). В этом отрезке рассмотрим 1/5 часть Ции), которая не примыкает к концу этой зоны. Поскольку менее чем 1/5 квадратов/(цу) посещались машиной более чем d раз, существует квадрат В, лежащий
в выбранной нами 1/5 части зоны, в котором машина побывала самое большее d раз. Наконец, между В и концом Ции) лежит по крайней мере (1/5) I (/(uv) )> ci^ >/(u) + 1 квадратов. Таким образом, В — квадрат узкого места.
ДОКАЗАТЕЛЬСТВО ГЛАВНОЙ ТЕОРЕМЫ
Пусть и^А, ueZ, такие, что на зоне t^wu^ есть квадрат узкого места В. Для определенности предположим, что В справа от зоны /(и). Когда на вход подается ии, машина в некоторый момент времени приходит в первый раз на крайний правый квадрат Е зоны Ции) (рис. 1). Пусть w^Z — начальный отрезок последовательности у, такой, что подача uw приводит к первому посещению квадрата Е. Таким образом, Ции^ и t(uw) имеют одинаковый крайний правый квадрат Е и В является квадратом узкого места также и для t^uwY
Обозначим первый квадрат справа от В через R. Переходом, машины М через В будем называть либо движение М из В в В, либо движение из R в В. Состояние машины М при переходе— это состояние, в которое машина переходит, достигая R (в первом случае) или достигая В (во втором). Заметим, что переходом М через В не считается элементарная операция машины, которую машина начинает и заканчивает в В.
Под действием входа uw машина М будет сначала посещать зону t^, а затем, когда на вход будет подаваться последовательность w, машина передвинется в квадрат Е. Пусть Рх, р^ ..., рт— последовательные переходы через В (г = 1 не исключается). Переходу р\ соответствует сдвиг из В в R, переходу р2— сдвиг из R в В и т. д. Пусть состояние машины М при переходе pt будет $;, 1 ^ Z ^ г. След1) в квадрате узкого места В — это набор длины г + 1 вида (е, $ь $2, . ..,sr), где е = 1, если В справа от Ци), или е = —1, если В слева от Ци), а $ь s2) ..., sr определены выше. Понятия перехода и состояния при переходе очевидным образом переносятся на случай, когда В слева от Ци).
Теперь вспомним, что чйсло г переходов через В не больше чем d. Тогда существует не более N
N = 2т 4- 2m2 + ... + 2md различных следов в квадратах узкого места, где m— число состояний машины М.
Пусть g— число, такое, что N<2&. Для любого ueA, l^=g пусть v^Z есть 01-последовательность, такая, что Ции) имеет квадрат узкого места Ви,н пусть w означает отрезок
*) В оригинале scheme. — Прим. ped.
входной последовательности и, подача которого приводит к первому посещению машиной крайнего правого квадрата Еи зоны Z(zw). Должны быть две различные последовательности иь w2 е Д, /(nJ = /(u2) = g, такие, что квадраты узкого места Ви. и Ви. имеют одинаковые следы, например (l»Si,s2, .,., sr).Заметим, что е = 1, т. е. BUl справа от Ци^, 1= 1, 2.
Пусть
uxwx=uxex ...г^...^..,^... е^,
= и^х ... д ... 6 ... д ... 6 ,* 1 т । ^^2 г ит । ।
где е, дс={0, 1}, ertl —входной символ в момент посещения машиной М квадраты BUx при первом переходе через ВПх, 8/г2 —входной символ в момент времени, когда М находится в BUx при втором переходе через BUli и т. д. до е<, аналогично для dmp 6m,, ... во второй последовательности и2до2. После подачи на вход ertr+i(6mr+1) машина впервые посещает крайний правый квадрат Еих(ЕиУ
Мы подошли к главной части нашего доказательства. В последовательности uxwx заменим для каждого нечетного 1^/^ ^г —2 отрезок 8«.+1 ... ^nlvx~\ последовательностью 6m/+i ... ... бтт-ь Далее, заменим 8rtf+i ... 8nf+i на 6m7.+i ... 6mr+l. Назовем получившуюся последовательность uxw'v Заметим, что все изменения были сделаны в части wx входной последовательности. Мы получаем, что uxwx и u^w^ имеют одинаковые следы при переходах через BU[ и Ви. соответственно, а наши изменения касались только символов, подаваемых в моменты времени между посещениями BUx (при этом машина была справа от Ви^ или подаваемых после последнего посещения Ви.. Легко установить с помощью индукции по Z, 1 ^Z^r+ 1, что uxwx имеет тот же след (1, sp ..., sr) и что для каждого входного символа епр j нечетное и 2^/^г + 1, часть ленты справа от BUx имеет тот же вид, что и часть ленты t^xaj^ справа от Ви. при подаче на вход 6тр кроме того, состояния М в моменты подачи соответствующих входов совпадают. Зоны t(uxw^ и t^w^ имеют квадраты Ви и Ви. соответственно со следующими свойствами. Зона Ци^ лежит вся слева от Вир Z=l, 2. Части зон tQixwz^ и t (u2w^v лежащие справа от соответственно Вщ и Вип имеют длину, строго превосходящую I (z^) = / (u2) = g. Как уже было сказано, после подачи uxw\ и и2о/2 машина М находится в крайних квадратах EUx и EUz соответствующих зон, части ленты от BU1 до EUi и от Ви? до Еи. имеют один и тот же
вид, состояния машины в обоих случаях совпадают. Предположим теперь, что как за и^', так и за u2w2 следует входная последовательность аи*. Поскольку их + и2, имеем
uxw'au* е Г2, u2w2au*x ^ Т2,
но l(au*^ = g-Vi меньше, чем расстояние между Еи. и BUb i = 1, 2. Поскольку М работает в реальное время и выполняет не более одного передвижения на один входной символ, после подачи на вход аи*х она будет оставаться справа от Ви.. Таким образом, машина М в обоих случаях начинает работу в одном и том же состоянии и при одинаковых записях на ленте. Следовательно, после подачи uxwxau\ и u2w 2ащ машина также будет в обоих случаях находиться в одном и том же состоянии, а значит, нс сможет допустить одну последовательность и отвергнуть другую. Мы пришли к противоречию.
Анализ приведенного выше доказательства показывает, что мы можем получить из него точную информацию относительно того, где данная одноленточная машина не сможет правильно решить, содержится ли последовательность х в Т2. Мы сформулируем результат без детального доказательства, поскольку оно уже содержится в предыдущем изложении.
Теорема 2. Пусть М имеет m состояний и п символов в рабочем алфавите. Пусть
с = > d = [—+11 и N = 2ш + 2т2 + ... + 2md.
2 In п L с J
Пусть g — наименьшее натуральное число, такое, что N <2^, и пусть i— наименьшее число, такое, что 5g < ci и im^nt Тогда существует последовательность хе2*, такая, что 1{х)^ <C2g + i + 1 и NV допускает х, если х^Т2, или отвергает х, если х^Т2.
ОБЩЕЕ ЗАМЕЧАНИЕ ПО ПОВОДУ ДОКАЗАТЕЛЬСТВ НЕВОЗМОЖНОСТИ
Нам бы хотелось коротко сравнить результат теоремы 1 и ее доказательство с другими результатами, касающимися невозможности вычислений на различных математических машинах. Имеющиеся в литературе доказательства невозможности распадаются на два класса. В некоторых ситуациях, когда мы хотим для двух классов А и В математических машин или вычислительных процедур показать, что существует функция, вычисли-
мая с помощью процедуры из В, но не вычислимая никакой процедурой из Л, мы можем использовать диагональный метод. Класс В достаточно богат, чтобы содержать некоторую процедуру, в каком-то смысле универсальную относительно Л, и эта процедура используется для диагонализации всех процедур в Л. Доказательство того, что существует общерекурсивная функция, которая не примитивно рекурсивна, принадлежит именно к такому типу. Класс общерекурсивных функций содержит функцию, которая-нумерует все примитивно рекурсивные функции, и эта функция испрльзуется в диагональном методе.
Второй метод, главным образом применяемый к математическим машинам, состоит в том, чтобы показать, что машины из класса Л не могут хранить информацию необходимую для выполнения определенной задачи. Например, рассмотрим множество Т = (0п10п\п = 1, 2г,..}, где 0п означает последовательность из п символов 0. Чтобы показать, что Т не определимо никаким конечным автоматом, мы замечаем, что, как только п превышает число m состояний М, автомат не может запомнить, сколько нулей было в последовательности 0п, а следовательно, не всегда может решить, выполняется ли в последовательности 0^10^ равенство п = к.
Теорема 1 не прибегает ни к одному из этих методов. Двуленточные машины Тьюринга, работающие в реальное время, нс обладают достаточными возможностями для диагонализации множества всех одноленточных машин Тьюринга, работающих в реальное время. При этом объем хранимой информации на одной ленте такой же, как и на двух. Таким образом, не применим ни один из методов.
Когда класс алгоритмов попадает в эту промежуточную область, где алгоритмы недостаточно сильны для использования диагонализации, но не достаточно слабы для доказательств с помощью оценки информационной емкости, доказательства неосуществимости определенных вычислений довольно трудны. Нам пришлось прибегнуть к тонкому анализу рассматриваемых вычислительных процедур; трудности заключались в обозрении всех возможностей. Таким образом, имеется потребность в новой технике для решения этого класса задач. Нужно заметить, что многие из наиболее интересных вопросов о неосуществимости вычислений попадают в эту промежуточную область.
МНОЖЕСТВО, РАСПОЗНАВАЕМОЕ НА ОДНОЛЕНТОЧНОЙ МАШИНЕ
Когда мы рассматриваем множество Т^ у нас возникает интуитивное чувство, что оно не распознаваемо в реальное время
на одноленточной машине. В самом деле, рассматривая способ, которым вход ии, и^А, v^Z, кодировался двуленточной машиной (доказательство леммы 1), мы видим, что на одной лепте машине придется закодировать и и у в том виде, в котором они поступают на вход. В конце кодировки и машина М находится далеко от Ци); если подать теперь aw* на вход, М не сможет сравнить его с и. Эти рассмотрения весьма далеки от доказательства, так как они относятся только к наиболее очевидному способу кодирования, а в доказательстве невозможности мы должны принимать во внимание все мыслимые способы кодирования.
Ниже приведен пример множества Ть которое очень похоже на Г2 и к которому неприменимы описанные интуитивные рассуждения. Оказывается, с помощью более сложного кодирования Тх распознаваемо на одноленточной машине. Пусть S = {а, 0, а, |3}, и пусть
T^f^OVlw,/п = 1, 2, .. JUl^OVln, m = \, 2,
Заметим, что Тх имеет то же строение, что и Т2, только мы не употребляем b и 1.
Теорема 3. Множество Тх распознаваемо в реальное время на одноленточной машине.
Доказательство. Мы опишем работу машины М, не вдаваясь в подробности ее устройства.
Когда поступает последовательность ап, М печатает строку х символов а. Но машина будет печатать символ а и сдвигаться вправо лишь для каждого второго входного символа. Так, в конце подачи ап на рабочей ленте будет последовательность х из м/2 символов а, и М стоит в правом конце х. Когда поступает первый входной О, М печатает 0 в правом конце х. Во время подачи О™ на вход М будет сдвигать всю последовательность х влево от квадрата, в котором записан 0. Машина будет делать это, стирая а в правом конце х, проходя в левый конец х, записывая там а и возвращаясь к правому концу х. Все это делается со скоростью одна элементарная операция на один входной символ.
Теперь мы различаем два случая. Если за символом а на вход поступает а\ машина должна проверить, равна ли длина последовательности х (быть может, смешенной от своего первоначального положения на ленте) числу &/2 (или (£/2) — 1, если машина находится внутри х в процессе перехода справа налево), т. е. машина проверяет равенство к = п, а значит, и условие а^^аа^ е Тх. Обозначим квадрат, на котором стоит машина М внутри х, через Е. Когда на входе a, М отмечает Е и сдвигается вправо до одному квадрату на входной символ, пока не
доберется до правого конца. Ясно, что М перейдет в левый конец х, а затем опять в квадрат Е. Получаем, что п = к в том и только в том случае, когда после подачи к входных нулей М оказывается в Е. Если на вход поступает р и затем следует 0й, то М должна проверить, равно ли к числу т ранее поданных на вход нулей. Машина делает это, сдвигая х вправо обратно к квадрату, в котором записан 0. Сдвиг вправо производится обращением процедуры, ранее использованной для сдвига влево. х возвратится в первоначальное положение при подаче к входных 0 в том и только в том случае, когда к = т, т. е. a"OmpOA G Гь
Во всех других случаях, когда вся входная последовательность не имеет вида а^^аа^ или 6ZnOmpOA, можно легко устроить дело так, чтобы машина отвергала эту последовательность. Таким образом, М воспринимает те и только те входные последовательности, которые образуют Ть
ЛИТЕРАТУРА
Hart man is J., Stearns R. E., On the computational complexity of algorithms, Trans. Amer. Math. Soc., 117, № 5 (1965). (Русский перевод: Кибернетический сборник (новая серия), вып 4, М., 1967.)
Yamada Н., Real-time computation and recursive functions not real-time computable, IRE Trans. El. Computers, EC-11 (1962), 753—760. (Cm. стр. 139—155 настоящего сборника.)
ЯЗЫКИ, ОПРЕДЕЛИМЫЕ В РЕАЛЬНОЕ ВРЕМЯ)
А. Розенберг
ВВЕДЕНИЕ
Основная проблема теории искусственных языков состоит в нахождении эффективного алгоритма синтаксического анализа. Если автоматическое устройство на каждом шаге воспринимает новый входной символ и решает вопрос о принадлежности к языку немедленно после считывания последнего входного символа, то такой автомат в каком-то смысле распознает язык за минимально возможное время. Автоматы, которые действуют таким образом, называются автоматами, работающими в реальном масштабе времени, а класс языков, задаваемых такими автоматами, называется классом языков, определимых в реальное время. В работе исследуются свойства класса автоматов, работающих в реальном масштабе времени, и класса языков, определимых этими автоматами.
В разд. 2 дается определение и описание свойств рассматриваемой модели.
В разд. 3 доказывается замкнутость относительно операций класса R языков, определимых в реальное время. В частности, показывается, что R является булевой алгеброй, что R замкнут относительно минимизации, относительно инверсии конечного преобразования в реальном времени и относительно умножения справа на регулярное множество. С использованием замкнутости R относительно объединения строится пример существенно неоднозначного бесконтекстного языка, определимого в реальное время.
В разд. 4 содержатся результаты, касающиеся незамкнутости класса R. Доказывается, что R незамкнут относительно сцепления даже с регулярными множествами, незамкнут также относительно итерации) и относительно обращения. Рассматриваются также некоторые менее важные операции, а именно отображе-
ние, осуществляемое при помощи последовательностной машины, операции взятия производного и частного и операция максимизации. Как следствие этих результатов получается пример языка, который определим в «дважды реальное время», но не принадлежит классу R. В заключение показывается, что существует детерминированный бесконтекстный язык (Гинзбург и Грей- бах [2]), не принадлежащий классу R, и тем самым устанавливается место R в лингвистической иерархии. Доказательства отрицательных результатов опираются только на подсчет количества доступной для автомата информации как функции времени. Это соображение позволяет перенести наши результаты на более широкий класс машин, включающий большинство устройств, списанных в литературе при исследовании работы в реальном масштабе времени. Такой подход выдвигает некоторые проблемы, касающиеся этих новых классов автоматов.
В разд. 5 отмечаются некоторые проблемы, относящиеся к определимости в реальное время, и доказывается их алгоритмическая неразрешимость. В частности, заметим, что неразрешима проблема, является или нет данный язык определимым в реальное время.
ИСХОДНАЯ МОДЕЛЬ
Предполагается знакомство с понятиями алфавита, слова в алфавите (цепочки) и множества слов (языка), так же как и с различными операциями над словами и языками.
Обозначим через L^ длину слова L Для конечного множества А обозначим через ^(Д) число элементов множества А. Если через А X В обозначить прямое произведение множеств А и В, то [ДР определяется следующими рекурсивными соотношениями:
W-A,
VA\l+ = А X [Л]\
Исследуемая модель представляет собой многоленточную машину Тьюринга со входом, рассмотренную у Хартманиса и Стирнза [5] и у Рабина [8].
При данном п д-ленточная машина Тьюринга имеет управляющее устройство с конечным числом состояний и п бесконечных в обе стороны лент, на каждой из которых расположена головка, способная считывать и записывать. До начала работы машина находится в выделенном начальном состоянии, а головки стоят на произвольных клетках первоначально пустых рабочих лент (мы будем обозначать пустой символ через /). Множество
состояний машины разделяется на две группы: «голосующие» состояния и «автономные» состояния.
Находясь в голосующем состоянии, машина воспринимает очередной входной символ. На основе текущего состояния, входного символа и символов, считываемых с рабочих лент, машина изменяет свое состояние, и каждая головка независимо от других записывает на своей рабочей ленте не более одного символа из вспомогательного алфавита и сдвигается не более чем на одну клетку вправо или влево. Начальное состояние обязательно должно быть голосующим.
Находясь в автономном состоянии, машина не воспринимает входного символа; но она выполняет очередной шаг работы так, как описано выше, в зависимости только от текущего состояния и от символов, считываемых с рабочих лент.
Голосующие состояния в свою очередь подразделяются на допускающие и отвергающие состояния. Входная последовательность допускается (соответственно отвергается) п-ленточной машиной Тьюринга, если, исходя из начального состояния с пустыми рабочими лентами, при данной последовательности, подаваемой на вход символ за символом, машина совершает последовательность элементарных шагов, описанных выше, и заканчивает работу в допускающем состоянии (соответственно не делает этого).
Многоленточная машина Тьюринга со входом работает в реальном масштабе времени, если все ее состояния голосующие. Хорошо известно, что ограничение «реального времени» очень сильно суживает возможности машины Тьюринга.
Дадим формальное определение
Определение 1. n-ленточной машиной Тьюринга со входом (короче, просто машиной) называется восьмерка (/(p, Ка> 2 IF, М, S, so, Г), где’
Кр и Ка — непересекающиеся конечные множества (соответственно голосующие и автономные состояния);
2 — алфавит входных символов; W — рабочий или вспомогательный алфавит, содержащий I;
М — функция перехода из состояния в состояние, отображающая {КР X S X OT)U (^ X [Wl^) в Кр U Ка\
S —функция действия, отображающая {КР X 2 X[U7]^) U \3{KaXVWA^B\{RT L, W}]” ХОТ;
So — начальное состояние, элемент множества КР;
F— множество допускающих состояний, подмножество множества Кр.
Если на 2 и IF не наложено никаких дополнительных требований, мы часто будем обозначать машину просто (КР, К„ М, S, s0, F).
Конфигурация машины (КР, КаА, W, М, S, s0, F") есть упорядоченный набор из (п + 2) элементов С = (^, t, х^ту^ ..., х^туА где ^ — состояние, t— слово в алфавите 2, Хг и у г — непустые цепочки из IF*, а т— специальный маркер (не из IF), указывающий положение головок на рабочих лентах. Если q— элемент Кр, a q77— элемент Ка, пишем
(^, at, xxiixmvxyxxnunmvny^-*^q', t, x'xmy'xx>/n) или
VA t, xu{mvxyv ..., x^nw^-Aq, t, x7vmy7v ..., x7nmy7^ где a ^ 2, t g= 2*, ut и vt из IF, xz и yt из IF*, a xz и у'. — непустые цепочки из IF*, если выполнены следующие условия:
q7 = M^q, a, иь ..., un) ( соотв. q7 = М (q77, щ, ..., un));
если S(q, a, ub .и„) (соотв. S(g", yb .yn)) равно (Db DZl Dn, o/b ..., о/„), где каждый символ D< принадлежит множеству {/?, L, /V}, а каждый символ wt принадлежит 1F, то для / = 1, 2, ..., п слово x7tmy7t графически равно XiUimwiyi, XimutWiyi или XiUiWitnyi в соответствии с тем, равно ли Di символу N, L или R ’).
Будем писать
C = (q, t, ххтуххптуп^С' = ^', t', х'хту'хх'пту'п\
если либо С = С7, либо существует последовательность конфигураций Сь ..., Си, в которой Ci = С, Ch = С7 и Ci Cw для каждого L
Вычислением цепочки t в алфавите 2 на машине Тьюринга со входом называется последовательность конфигураций (^о, ts 1ml, ..., Im I) = Со, Сь ..., Cj, ..., где Ci —► Ci+1 для каждого i. Вычисление называется полным, если для некоторого k Ch = (qA, Х\ту\, ..., хптуА где X — пустая цепочка, a q— голосующее состояние из КР. (Легко проверить, что вычисление полно тогда и только тогда, когда машина останавливается, и что состояние q, если оно существует, определяется единственным образом.) Машина допускает цепочку t, если существует полное вычисление I, которое заканчивается допускающим состоянием, т. е. если
(s0, t, Im I, ..., Iml}=^{q, X, Ximyb ..., xnmy^, где q принадлежит множеству F. Машина отвергает t, если она не допускает t.
Определение 2. Пусть ^—вычислимая монотонно возрастающая функция натурального аргумента с натуральными значениями. Машина Тьюринга со входом работает с временной функцией 3 (р), если для любого входного слова t длины р существует полное вычисление / на данной машине длиной не более чем 3 (р) + 1.
Наибольший интерес для нас представляют те машины, которые работают с временем 3(р)=р.
Определение 3. Многоленточная, а именно n-ленточная, машина Тьюринга со входом есть машина, работащая в реальном масштабе времени (сокращенно МРВ или n-МРВ), если она имеет вид (Кр, 0, М, S, s0, F). Для краткости мы часто будем обозначать подобные машины просто (К, М, S, s0, F).
Для МРВ понятие допускаемой или отвергаемой цепочки может быть усилено следующим образом: цепочка t = ax ... am ^пг^^ из 2* допускается (отвергается) n-МРВ Т, если вычисление t на машине Т есть последовательность Со, ..., Ст и состояние машины Т в конфигурации Ст принадлежит множеству F (соответственно K\F).
Обозначим через Л(Т) множество цепочек — язык, определяемый (или допускаемый) машиной Т. Класс языков, допускаемых всевозможными n-МРВ, обозначается R и называется классом языков, определимых в реальное время (сокращенно ЯРВ).
Замечание. Число клеток рабочих лент, которые n-МРВ может пройти при обработке входа 1, очевидно, не превышает nL^. Отсюда вытекает, что любой язык из R определяется детерминированным линейно-ограниченным автоматом (Курода [6]) и что R есть подкласс класса контекстных языков.
Как будет показано в разд. 4.8, этот подкласс собственный.
СВОЙСТВА ЗАМКНУТОСТИ ОТНОСИТЕЛЬНО ОПЕРАЦИЙ
В данном разделе доказывается замкнутость класса R относительно некоторых операций.
Булевы операции
Теорема 1. Класс языков, определимых в реальное время, замкнут относительно дополнения, пересечения и объединения. Иначе говоря, класс R образует булеву алгебру.
Доказательство. Пусть X и У— языки, определяемые соответственно n-МРВ Тх = (Kx, Мх, Sx, s0, Fx") и m-MPB Ту = = ^Ky, Му, Sy, /о, Fy). Тогда:
X, дополнение языка X, определяется п-МРВ
Тх = (Кх» Мх. Sx> s0, Кх \ Fх\
В самом деле, Тх работает точно так же, как Тх, только вместо ответа «да» дает ответ «нет» и наоборот. Очевидно,
д(тх)=лсьа=j.
В предположении, что Тх и Ту работают в одном и том же входном алфавите, пересечение языков X и Y допускается (n + m)-ленточной машиной Ту = (Kv. MV,SV. и0, Fv^ у которой
Ку = КхХКу;
для (s. t) из Кх X KY. wv. .... wnm Wx и w\. .wfm из WY Mv^s, t),a, wwn, w'w^) = {Mx(s,a, Wj..., №„)} X X {Mr(t a, ®;O);
если Sx(s, a, a>] wa> = (Dv ..., D„, pb ..., p„) и
61M> T0
M^s> t), o, wxwn, w;w^) =
= <DXDn, D'x, .... D'm, P,P„. d,dm>;
y0 = (sq, to);
Fv = FxXFy.
Машина Ту имитирует работу Тх на лентах 1, 2, ...» я, а работу Ту —на лентах (м+1), . ., (п+пгу В результате Ту допускает входное слово тогда и только тогда, когда его допускают и Тх и Ту; следовательно,
Д(Тг) = Д(Тх)ПД(Тк) = ^Г|Г.
(в) Замкнутость R относительно объединения следует из п. (а) и (б) и из законов де Моргана. Ч. т. д.
Очевидно, множества А=^Ьчз; ij^l^ и В = (агЫсэ\ ц/>1} оба определимы в реальное время. Поскольку ЛП6 не является бесконтекстным языком, а Л Об существенно неоднозначен (см. Гинзбург и Уллиан [4]), теорема 1 дает следующие два следствия:
Следствие 1.1. Существуют языки, определимые в реальное время и не являющиеся бесконтекстными.
Следствие 1.2. Существуют существенно неоднозначные бесконтекстные языки, определимые в реальное время.
Рабин [8] доказал, что если Ti и Т2 — одноленточные МРВ, то может случиться, что язык Л(Т!)иЛ(Т2) (а значит, и
4 (Ti) ПЛ (T2)) определим двуленточной МРВ, но не определим одноленточной МРВ. Это дает основание предполагать, что конструкция (б) из теоремы 1 дает наилучшее решение вопроса о количестве рабочих лент.
Умножение справа на регулярное множество. В этом разделе доказывается, что если множество А определимо в реальное время, то для любого регулярного множества В множество АВ определимо в реальное время. Как будет показано в разд. 4.1, множество В А не обязательно будет определимым в реальное время; это первый «асимметричный» результат, касающийся R.
Определение 4. Конечным автоматом во входном алфавите 2 называется четверка Т = (К, М, s0, F), где
^ — конечное множество состояний;
М — функция перехода, отображающая К X 2 в К\
s0 ^ К — начальное состояние;
F ^ К ~ множество допускающих состояний.
Любой конечный автомат, таким образом, представляет собой 0-МРВ.
Язык, определяемый конечным автоматом, называется регулярным множеством. Таким образом, любое регулярное множество определимо в реальное время.
Теорема 2. Если А—язык,, определимый в реальное время, a R— регулярное множество, то язык AR определим в реальное время.
Доказательство. Пусть А задается при помощи п-МРВ
Тд = (Ка, Мд. Sa, s0, РД
a R задается конечным автоматом
^r^Wr, Мр, £0, Fp).
Тогда п-МРВ
Т^/? = кКдр, МАр, SARi uOi FАр),
определенная ниже, распознает множество AR.
Кдр = Кд X 2^, где 2К означает множество всех подмножеств множества К.
Пусть и = (s, X), где s е Кд и X ^ Кр. Для о из 2 и к^, ..., wn из 1Г
MAR^u, о, wv ..., w^ =
(Мл($, о, w^..., to„)} X/{MU (J {Мд^’ ^iV если \ tex/
MA(s, о, ^рwn^ принадлежит F А;
{MA(s, о, wx,^n)} X / (J {М#(/, о)Й в противном
v^x/
случае.
SAR^u, о, г^, ..., wn) = SA^s, о, wx, ..., wn\
(4) «0 = 1(4) «0 = 1(s0, О, если s0 принадлежит FA)
(4) «0 = 1
(4) «0 = 1
(s0, 0) в противном случае.
Far = Vu^KaR: u = (s, X) и XRFr^ 0}.
Доказательство того, что А (Тлр) = А (Тл) А (Тр) = AR, опускается ввиду очевидности. Ч. т. д.
3.3. Инверсия преобразования в реальном масштабе времени. В разделе показано, что прообраз ЯРВ при отображении, осуществляемом конечным преобразователем, работающим в реальном масштабе времени, также будет определим в реальное время. Ниже (разд. 4) будет показано, что прямой образ языка из R при отображении, осуществляемом последовательностной машиной (вырожденный случай преобразователя, работающего в реальном масштабе времени), не обязательно будет определим в реальное время.
Многоленточный преобразователь, работающий в реальное время (сокращенно /г-ПРВ), представляет собой по существу п-МРВ с выходом. Говоря более формально, /г-ПРВ есть восьмерка
U = (Q, 2, И, Д, N, S, Р, q0\ где
Q— множество состояний U;
2—входной алфавит U;
V — рабочий (вспомогательный) алфавит U;
Д—выходной алфавит U;
N — функция состояния, отображающая Q X 2 X [V]n в Q;
S — функция действия, отображающая Q X 2 X [V]n в [{/?, L, Х}Г X №
Р — функция выхода, отображающая QX2X[rf в Д*;
^0 ^ Q — начальное состояние.
В общих чертах /г-ПРВ работает так же, как и н-МРВ, но имеются два основных отличия. Во-первых, /г-ПРВ не имеет
выделенных допускающих состояний. Во-вторых (что важнее), на каждом элементарном шаге n-ПРВ выдает выходное слово — слово в выходном алфавите А, возможно, пустое.
Пусть U = (Q, S, V, A, N, S, Р, q0) есть n-ПРВ. Выходная функция Р может быть очевидным образом продолжена на множество всех входных последовательностей; а именно если q из Q, о из 2, wb ..., wn из И, то для любой цепочки ох в алфавите 2
Р^Ъ ох, wb ...» wn) = P(q, о, юь ..., w^P^t, х, их, ..., и^, где t = N(q, о, шь ..., wn), а пь ..., ип— символы, читаемые на рабочих лентах машины U после шага, определяемого состоянием q, входным символом о и рабочими символами ^ь ..., wn. Для каждой цепочки х в алфавите 2 обозначим через U(x) слово P^q^xJ, ..., /) в алфавите А. Затем обозначим через Еи число
Lu = max{L(P(^, о, wb ..., ^n))}.
q^Q ore S wt s V
Если заданы язык А и п-ПРВ U, прообразом А при отображении U называется множество
и-1(Л) = {х; U(x) принадлежит Л}.
Наше доказательство замкнутости R при отображении, обратном осуществляемому n-ПРВ, основано на том, что, когда ПРВ работает над входом длины А, на каждой рабочей ленте изменяется не более чем к символов.
Предполагая известным понятие временной функции, введенное у Хартманиса и Стирнза [5], мы начинаем доказательство теоремы с установления ряда вспомогательных результатов (см. определение 2).
Теорема 3 (Хартманне и Стирнз [5]). Если язык А определим за время L(t)+E(L(t)), E(L(t))^Q, то для любого к>^ язык А определим за время L(t)+{k-E(L(t))]x).
В частности, имеем
Следствие 3.1. Если А определим за время cL^ при [с — 1 1
—I L (t) для любого к>0.
^ Если х — действительное число, то [х] означает наименьшее целое Число &? такое, что k ^ х.
Значение теоремы 3 состоит в том, что по любой м-лен- точной машине Тьюринга при любом целом г можно построить другую n-ленточную машину, которая делает за один элементарный шаг все те операции на рабочих лентах, которые первоначальная машина делала за г шагов между двумя очередными считываниями входных символов.
К сожалению, n-ленточная машина, распознающая множество А за время 2Л(/), не всегда может быть заменена какой- либо m-ленточной машиной, работающей в реальном масштабе времени. В разд. 4.3 приводится пример языка А, распознаваемого за время 2L(/), но не принадлежащего классу R. Однако если такое сжатие г шагов в один шаг достаточно, чтобы ускорить машину Тьюринга до реального масштаба времени, то алгоритм Хартманиса и Стирнза [5, теорема 2] дает эффективный метод этого ускорения. В частности, если n-ленточная машина Тьюринга воспринимает входную последовательность с постоянной скоростью, этот алгоритм дает нам эквивалентную n-МРВ. Покажем теперь, что машина, определяющая и-1(Л) для А из R, относится к этому специальному виду.
Теорема 4. Если А есть ЯР В, a U — преобразователь, работающий в реальном масштабе времени, то и-ЦЛ) также есть ЯР В.
Д о к а з ательство. Пусть ЯРВ А определяется на м-МРВ Т = (К, A, W, М, S, s0, F\ и пусть U = (Q, 2, V, A, N, R, Р, ^0) m-ПРВ. Отметим, что А является входным алфавитом Т и выходным алфавитом U. Тогда (/и + п)-ленточная машина T' = (Lp, La, 2, W U И, м', S', so, F') задает U-1(4) за время (с 4- 1)£(/), где с = Ьи.
Lp = К X Q X {А}, где А —пустое слово;
La пусто (т. е. Т' работает в реальном времени), если с = 0; в противном случае La = К X Q X (J А\ где А^ множе- i^c
ство всех слов в А длины I.
Пусть а — символ из 2; ^(, ..., wn — из W, а иь ..., vm — из V;
для (s, q, X) из Lp
M'^qA), a, wb wa, у,vm) =
= (s,NVh a, vb ..., vm), P (q, a, vb ..., vm))
И
S'«s, q, X), a, wxwn, V]ym) =
= (N, ..., N, Db . .., Dm, wb ..., wn, иь ..., um),
n раз
где
R(q, a, vh vm) = (Dh .Dm, и}, .ит);
для (s, q, bt,..., br) из L0(r>l и &z — буквы из А) М' (<s, q,bx ... br), wt, ..., wn,yt ..., vm) =
= (M (s, b„ wh wn), q, x), где
x = b2...br для г>1 и x = L для r = l, и
S4<s, q, bx ... br\ Wx, .wn, yb .ym) =
= (DX, ..Dn, N, .... N, Ux, .un, yb . ..,ym), m раз
где
S(s, bx, wit ..., Wn) = <Dx, .O„, ub .un);
s' = (s0, q0, X);
F' = F X Q X {M-
Таким образом, T' попеременно имитирует то работу Т на лентах 1, 2,,.., п, то работу U на лентах п + 1,..., п + т. Из описания Т' явствует, что Л(Р) = и-1(Л(Т)) = и_1(Л). В то же время Т' считывает очередной входной символ не более чем через с шагов на рабочих лентах. Прибавляя лишние «холостые» операции, можно добиться того, чтобы Р читала с постоянной скоростью с шагов на входной символ. Тогда, если бы мы могли сжать с шагов машины Т' в один, мы могли бы избавиться от автономных состояний и тем самым ускорить Т' от времени (с + 1)£(0 до реального масштаба времени. Именно это и делает алгоритм Хартманиса и Стирнза. Таким образом, используя вышеописанную конструкцию и этот алгоритм, мы можем эффективно построить (n + m)-MPB Т", такую, что
А (Т") ^ А (Г) = U-1 (А). Ч. т. д.
Обобщенной последовательностной машиной (ОПМ) называется О-ПРВ. Имеем как следствие из теоремы 4
Следствие 4.1. Если А есть ЯРВ, a G есть ОПМ, то С-1 (Л) также есть ЯРВ.
Следствие 4.2. Если некоторый гомоморфный образ1) языка А определим в реальное время, то и сам язык А определим в реальное время.
!) Гомоморфизм множества 2* в множество А* — это отображение h, такое, что Н^ = X, Ца) — цепочка из А* для каждого а из 2 и Цсц ... ah) = h^ay) . .h(ak) для каждой цепочки щ ... ah элементов 2. Для 4^2* образом А при гомоморфизме h является множество h^A)= Vh^x)-. х из 4}.
В разд. 4.4 будет показано, что прообраз ЯРВ при отображении, осуществляемом недетерминированной ОПМ, не всегда будет принадлежать R.
Минимизация. Доказывается замкнутость R относительно операции минимизации.
Мы скажем, что слово х есть собственное начало слова у (пишем х < у^, если существует непустое слово г, такое, что у = xz. Для языка А определим множество min Л = (у: у ее А, и если х < у, то х^А}.
Теорема 5. Класс языков, определимых в реальное время, замкнут относительно минимизации.
Доказательство. Пусть А — ЯРВ, задаваемый на м-МРВ Т = (Л, М, S, $0, Л). Тогда min Л задается при помощи м-МРВ Tmin = (/</, м\ S', s0, F), где
К' = КШ где d — символ, не принадлежащий К;
Для о из 2 и ^н ..., wn из №
M4s, а, ьуь ..=
( М (s, о, wp ..., wn\ если se/(\F,
I d,если seF,
M'(d, o, ..., wn) = d\
S'(s, о, wb ..., w„) = S(s, o, wh ..., wn) для s из К, S^d, о, wb .^[{W'Xf^, .wn)Y
Машина Tmin подражает действиям T до тех пор, пока Т не допустит какое-либо начало входного слова; после этого Tmin переходит в «мертвое» состояние d. Ясно, что A (Tmin) =min А (Т). Ч. т. д.
Можно определить оператор max, симметричный оператору min. Как показано в разд. 4, класс R не замкнут относительно max, что дает нам еще один несимметричный результат.
Сохранение числа лент. До сих пор мы тщательно избегали упоминания о минимальном числе лент, необходимом для распознавания какого-либо ЯРВ. Общий вопрос, будет ли (м+1) -МРВ обладать строго большей порождающей способностью, чем л-МРВ, все еще остается открытым. Рабин [8] показал, что 2-МРВ существенно сильнее, чем 1-МРВ. Однако можно утверждать следующее:
Замечание. Обозначим R(n) класс языков, определимых при помощи /ьМРВ Тогда для всех п
R(n) замкнут относительно дополнения;
R(n) замкнут относительно объединения и пересечения с регулярными множествами;
R(n) замкнут относительно умножения справа на регулярное множество;
R(n) замкнут относительно отображения, обратного к осуществляемому на ОПМ;
R(n) замкнут относительно минимизации.
Замечание. R(l) не замкнут ни относительно объединения и пересечения, ни относительно отображения, обратного к осуществляемому на ПРВ.
Более подробное изучение R(n) является предметом дальнейших исследований.
СВОЙСТВА НЕЗАМКНУТОСТИ
Приведем примеры некоторых операций, не сохраняющих определимость в реальное время.
Сцепление. Доказывается незамкнутость R относительно сцепления даже с регулярными множествами. Доказательство опирается на ряд определений и лемм.
Определение 5. Пусть А — множество слов. Бинарное отношение Efe(modЛ) для слов х и у определяется следующим образом: xEhy(modЛ), если для всех слов г длины, не превышающей k, слово хг принадлежит А тогда и только тогда, когда слово уг принадлежит А.
Очевидно, Е^ (mod Л) является отношением эквивалентности.
Лемма 1 (Хартманис и Стирнз [5]). Если Т есть п-МРВ с d состояниями и w рабочими символами (включая /), то число классов эквивалентности 9 по E/Jmod Л(Т)) не может превосходить d-w^2k^n.
Ограничимся рассмотрением того случая, когда алфавит 2 имеет по меньшей мере две буквы. Можно предположить, что {0, 1} Е S.
Определим язык)
Р = {1Ш ЮОхрЕ*: хе2*, ^ 2* \ 2*112*, р^2}.
Лемма 2. Язык Р определим в реальное время.
В самом деле Р определим в реальное время PDS-автоматом (Гинзбург и Грейбах [2]).
Наша цель показать, что 2*Р не определим в реальное время. Мы выполним это, исследуя скорость роста индекса отношения Ей (mod 2*Р).
*) Называемое индексом отношения. — Прим. ред.
Определение 6. Для всех целых т обозначим через Хт множество всех слов длины т в алфавите {0, 1}, таких, что ни одно из них не содержит вхождения двух последовательных единиц.
Числа Фибоначчи определяются так: (1) а0 = ах = 1; (2) для п > 1 ап = а^-х + ап_2. Из теории уравнений в конечных разностях известно, что для достаточно больших п ап >(1,6)?г.
Лемма 3. Для всякого т > 0 число слов в Хт (обозначим его через ^ (т)) в точности равно (т + \уму числу Фибоначчи.
Доказательство. Индукция по т.
Базис: ^(1) = 2 = а2 и % (2) = 3 = а3, так как
%! = {0,1} и Х2 = {00, 01, 10}.
Предположение индукции: пусть для j^r, >£ (/) = aw. Индукционный шаг: элементы Xr+1 могут быть получены из элементов ХТ следующими путями:
Если t содержится в Хт, то 0/ содержится в Хг+1. Это дает >& (г) слов для Xr+b
Если t содержится в Хт, 1/ содержится в Xr+i тогда и только тогда, когда первый символ t есть 0.
Из (1) видно, что это дает в точности %(r—1) слов для Xr+i. Очевидно, Хг+1 исчерпывается шагами (1) и (2), откуда % (г + 1) =(г) + % (г - 1) = аглл -У ar = arW Ч. т. д.
Существует, как легко видеть, в точности 2^w) подмножеств Хт. Мы покажем, что каждое ненулевое подмножество определяет класс эквивалентности отношения £m+i(modS*P), отличный от всех других.
Определение 7. Для каждого слова t^ из Хт образуем слово ai = lUill00 длины т + 6.
Для каждого ненулевого подмножества Yt = {/i,..., Ц множества Хт (1 ^i^.2^M — 1) образуем слово бг- = aia2a3... ar длины (т + 6) г.
Лемма 4. Если слово t принадлежит Y^ г Хт. то 6$tT принадлежит ^*Р.
Очевидна из построения бг-.
Положив k = m + 1, мы получим лемму 5.
Лемма 5. Для бг и Yt из определения 7 6^6; (mod S*P) только тогда, когда Yt = Y^.
Доказательство. Положим Yi ф Y Тогда существует слово /, принадлежащее либо У^ЧУ^, либо Yj \ Y^ Положим,
не теряя общности, чю / принадлежит Yt \ Yj. По лемме 4 бгр/т принадлежит S*P. Утверждается, что 6jPZr не содержится в ^Р. Пусть б^р^ содержится в ^Р. Это предполагает по определению Р, что 6j имеет подслово вида 11x1100, такое, что х не содержит подряд двух вхождений единиц и x = t. Однако по построению 6j = 1 ИИ 100. . .1 lZrl 100, причем Yj = (Zb ..., Zr}. Поэтому все подслова б; вида 11x1100, где L(x) = т и х не содержит подряд двух вхождений единиц, имеют в точности вид ШДЮО, где ta содержится в Yj. Значит, если 6^tT содержится в ^*Р, то / содержится в Yj, что противоречит предположению (что Ze УгХУ^). Мы пришли к выводу, что 6j$tT не содержится в И*?, если t не содержится в У,. Поскольку L(Z)=m, мы можем показать, что dyE/A^mod S*P) только тогда, когда Yj=Yj\ ч. т. д.
Так как все 6г (1 ^Z ^ 2^(пг) — 1) содержатся в различных классах эквивалентности отношения Efe(modS *Р), доказана еще
Лемма 6. Число классов эквивалентности отношения Е^ (mod 2*Р) не меньше чем- 2^^ — 1.
Теперь мы в состоянии показать, что ^*Р не принадлежит R.
Теорема 6. Класс языков, определимых в реальное время, не замкнут относительно сцепления.
Доказательство. Предположим противное, т. е. что /г-МРВ Т определяет ^Р. По лемме 1 число классов эквивалентности отношения Efctmod^ (Т)) не может превзойти ek=d • иХ2^!)”. Далее, для больших *k ^ {k} = ак^х> {\,^)k^x. Поэтому число классов эквивалентности отношения E\(modS*P) удовлетворяет для больших к неравенству
2(1.5)ft<2«(fc-O_ ! ^индекс £fc(modS*P).
(1 5)^
Так как 2 >е£для достаточно больших к, Т не может определять S*P вопреки предположению; таким образом, ^*Р не содержится в R. Мы нашли два ЯРВ 2* и Р, сцепление которых не является ЯРВ, ч. т. д.
Поскольку S* — регулярное множество, доказано
Утверждение 1. Класс языков, определимых в реальное время, не замкнут относительно сцепления с регулярным множеством.
Итерация. Используя результаты разд. 4.1, мы покажем, чю R не замкнут относительно операции итерации множеств. Доказательство вытекает из нескольких общих результатов.
Пусть ^ — класс языков. Мы назовем ^ приемлемым (admissible), если
^ замкнут относительно объединения и пересечения с регулярными множествами,
существует язык L в алфавите 2, принадлежащий классу и такой, что если 6 символ не из 5, то £{6} принадлежит ^, в то время как 2*£{6} нет.
Теорема 7. Если <8? — приемлемый класс языков, то 8? не замкнут относительно итерации.
Доказательство. Пусть L — некоторый элемент ^, удовлетворяющий пункту (б) определения приемлемости, и пусть б — символ, не принадлежащий алфавиту 2 языка L. Поскольку 2* — регулярное множество, язык Н = £{6} U 2* принадлежит ^. Утверждается, что Н* не принадлежит ^.
Положим противное, т. е. что Н* содержится в Я?. Тот факт, что 2*{б}— регулярное множество, необходимо влечет, что / = = Н* П 2*{б} содержится в ^. Однако легко видеть, что / = = 2*£{б} и, следовательно, не может содержаться в ^. Мы заключаем отсюда, что ^ не замкнут относительно итерации. Ч. т. д.
Лемма 7. R— приемлемый класс языков.
Доказательство. Замкнутость R относительно объединения и пересечения следует из теоремы 1. Чтобы проверить пункт (б) определения приемлемости, рассмотрим язык Р из разд. 4.1. Так как R замкнут относительно умножения справа на регулярное множество, то £{6} содержится в R для всякого символа б. Далее, доказательство теоремы 6 показывает, что 2*Р{6} не содержится в R (последний символ б не влияет на доказательство). Ч.т. д.
Ввиду приемлемости R получаем следующую теорему.
Теорема 8. Класс языков, определимых в реальное время, не замкнут относительно операции итерации.
Замечание. Доказательства теорем 6 и 8 показывают также, что и класс языков, определимых в реальное время на PDS- автоматах, не замкнут относительно сцепления и итерации.
Обращение. Здесь доказывается, что R не замкнут относительно обращения. Опираясь на это доказательство, мы покажем, что существуют языки, определимые за время 2£(/) (и поэтому по следствию 3.1 за время (1 + в) £(/)), но не определимые в реальное время.
Язык Q, определяемый ниже, будет ЯРВ, в то время как его обращение не будет ЯРВ. Q есть множество последовательно-
стей вида /₽0011 tx 11001П211 ... 001 UJ1, где (1)/, tx, ..., th принадлежат Хт для некоторого т и р^{0, 1} и (2) по крайней мере для одного i ее {1, ..., £}, it = tT, т. е. обращению начального отрезка I рассматриваемого слова.
Лемма 8. Язык Q есть ЯРВ.
Доказательство. Мы дадим набросок действий двуленточной машины Тьюринга (2-МРВ) Т, которая определяет Q. Заинтересованный читатель легко восстановит детали.
Работа Т происходит следующим образом:
Пока читается начальный отрезок t входа, Т копирует t на каждой из своих рабочих лент, убеждаясь, что t не содержит подряд двух вхождений единицы.
Как только поступает tx, Т сравнивает на ленте 1, равно ли tx обращению t ^t\ = tTY Если Ь{1Х)Ф L(tY Т переходит в мертвое состояние; если tx = tT, Т переходит к шагу (4); если tx Ф tT, Т переходит к шагу (3).
Как только поступает t^ (соотв. UwY Т сравнивает на ленте 2 (соотв. на ленте 1) t^ (соотв. ^г+i) с tT, одновременно восстанавливая ленту 1 (соотв. ленту 2) так, что головка находится на крайнем правом квадрате. Если/Д^г) (соотв. L(/2i+1))=^ ФЕ^, Т переходит в мертвое состояние; если t^ (соотв.^ж) = = tT, Т переходит к шагу (4); в противном случае Т повторяет шаг (3).
Убедившись в том, что некоторое Е = tT, Т проверяет на первой ленте, чтобы все подслова t^ были длины L^Y Т переходит в допускающее состояние только тогда, когда она заканчивает воспринимать отрезок ^11, причем Е(^=Е^.
Расположение головок и лент показано на рис. 1. Ясно, что Т определяет Q в реальное время. Ч. т. д.
Теорема 9. Класс языков, определимых в реальное время, не замкнут относительно обращения.
Доказательство. Заметим, что QT является1) подмножеством 2*Р из разд. 4.1. Доказательство теоремы 6 показывает, что QT не есть ЯРВ. Незамкнутость R относительно обращения следует, таким образом, из леммы 8 и доказательства теоремы 6. Ч. т. д.
Лемма 9. Язык QT определим за время 2L(tY
Доказательство. Трехленточная машина Тьюринга, определяющая QT, просто копирует вход на одной из своих лент
QT—обращение языка Q, состоящее из всех слов, являющихся обращениями слов из Q. — Прим ред.
и затем переходит к повторению действий 2-МРВ из леммы 8. Трехленточная машина отвергает всякое слово
ПЛНООН^ПОО ... шдюорг,
такое, что L(/)¥=L(6),— вот для чего она определяет конец входного слова. Детали опять предоставляем читателю.
Мы имеем следующий результат.
Утверждение 2. Существует язык, который определим за время 2L{t) и, следовательно, за вреАя (1 + s)L(t) для любого е > О, но который не определим в реальное время.
Рис. 1. а—ленты Т после чтения /ц б — ленты Т после чтения t^l-xX в — ленты Т после чтения /2/.
Преобразователи. Результаты разд. 4.1 позволяют нам легко доказать незамкнутость R относительно отображений с помощью различных устройств. Последовательностная машина есть 0-МРВ (Q, 2, А, М, R, q^, такая, что R (выходная функция) отображает Q X 2 в А. Вспомним язык Р из разд. 4.1. Р — язык в алфавите 2 = {0, 1, р}. Поэтому, если положить А = {а, &}, где а и b не принадлежат 2, очевидно,что \*Р есть ЯРВ. Рассмотрим последовательностную машину (ПМ) U=({^0}, 2 U А, 2, М, R, q0\ где (1) для о из 2 U A, M(q0, а) = = q0 и где (2) R(q0, a) = R(qQ, 0) = 0; R(q0, b) = R(q0, I)=l, R(qOl Р) = Р- Ясно, что U (А*Р) = {0,1}*Р, а этот язык, как мы знаем, не принадлежит классу R.
Теорема 10. Образ языка, определимого в реальное время, при отображении последовательностной машиной может не быть определимым в реальное время.
Следствие 10.1. Образ ЯРВ при отображении об об именной последовательностной машиной не обязательно является ЯРВ.
Следствие 10.2. Гомоморфный образ ЯРВ не обязательно является ЯРВ.
Следует из того, что гомоморфизм — это отображение, определяемое ОПМ с одним состоянием.
Следствие 10.3. Образ ЯРВ при отображении, осуществляемом преобразователем, работающим в реальном масштабе времени, может не быть ЯРВ.
Наконец, покажем, что прообраз ЯРВ при отображении недетерминированной последовательностной машиной может не быть ЯРВ. Недетерминированная последовательностная машина есть шестерка U = (Q, 2,Д, М, R, Qo), где Q — конечное множество состояний, 2 — входной, а Д — выходной алфавиты, М — функция, отображающая QX2 в 2^, R— отображение QX2 в Л* и Qo ^ Q — множество начальных состояний. U действует очевидным способом. Образ U(x)= (J R(q, х) слова х, если R
Qo
распространено на Q X 2*, есть теперь множество слов, а именно множество, полученное проходом по всем путям, описываемым U (посредством М-отображения) под действием входа х.
Рассмотрим теперь недетерминированную последовательностную машину U, определенную следующим образом: S ={0, 1,р},
А = {а, 0, 1, р}, Qo = {?o. <7i),
м |
0
1
LL
1 0 i 1 !
1?
<?0
{<7о. <7i)
too. <7i)
{<73}
<fo
a
a
p
<71
(9b 92>
too qJ
(<72}
<71
0
1
p
<?2
{<72}
to2}.
{<73}
?2
a
a
p
<7з
(<7з)
to3}
{43}
<?3
0
1
p
Язык L =\utv^tT; /е{0, 1}*, и, ие{а}*; р^{0,1, а}} есть ЯРВ. Прообраз L при отображении U есть
U”‘(Z.) = {x: U(x)f|L#=0} = {x7yp/r: х,/,уе{0, 1У, р {0, 1,а}}.
Доказательства теоремы 6 в разд. 4.1 достаточно, чтобы показать, что IJ-1(L) не содержится в R.
Утверждение 3. Прообраз ЯРВ при отображении недетерминированной последовательностной машиной может не быть ЯРВ.
Производные и частные. В этом разделе мы докажем, что ни производное1), ни частное ЯРВ по регулярному множеству не определимо в реальное время.
Определение 8. Пусть А и В — языки. Производное А по В (обозначается ОВ(Д)) есть множество
D^A^ = ^у: хугА для некоторого х ^ В\
В терминологии Гинзбурга и Спеньера [3] DB(,A) есть левое частное Л по 5 и обозначается там В \ А.
Вспоминая язык Q из разд. 4.3, мы рассмотрим множество V последовательностей вида
/рп^ноон^ноошдкж
где (1) ^,^,...,^а принадлежат Хт для некоторого т, а Р ^ (0, 1} и (2) по крайней мере для одного i е (1,..., й} tt = tT.
Лемма 10. Язык V есть ЯРВ.
Доказательство. 2-МРВ, которая определяет V, действует почти так же, как 2-МРВ, которая определяет Q (лемма 8), за исключением того, что, встречая второе вхождение р, она сравнивает, совпадает ли конечная цепочка с начальной. Из рис. 1 (б) и (в) видно, что это всегда возможно. Ч. т. д.
Теорема 11. Производное ЯРВ по регулярному множеству не обязательно определимо в реальное время.
Доказательство. По лемме 10 V есть ЯРВ, множество А = {0, !}*{₽} регулярно. Однако Da(V)=Qt, которое, как мы показали, не определимо в реальное время (теорема 9). Ч. т. д.
Теперь, рассматривая результат разд. 4.1, мы покажем, что частное множества из R по регулярному множеству не обязательно определимо в реальное время.
Определение 9. Пусть А и М— множества слов. Частное А по В (обозначается Д/6) есть множество Д/6 = (х: ху ^ А для некоторого у е В}.
В терминологии Гинзбурга и Спеньера [3] Д/В— правое частное А по В.
Вспоминая множества Р и ^*Р из разд. 4.1, мы определим R как множество всех лент вида
xl \m00y^tT6aL w+4aL (/)+6,
!) Термин «производное» (derivative) был впервые введен Бжозовским (Brzozowski, Derivatives of regular expressions, /. ACM, 11 (1964), 481—494).
где х, у принадлежат 2*, t г (2* \ 2*112*), а — элемент 2, через ак обозначена цепочка а ... а и р, б —символы, не принадле-
k раз жащие 2.
Лемма 11. Язык R определим машиной 2-МРВ.
Доказательство. Как и в предыдущей лемме, мы неформально опишем работу 2-МРВ Т, которая допускает R.
Т копирует входные символы на ленте 1, пока она не встретит символ р. Тогда она запоминает следующие входные символы на ленте 2, пока не встретится первое б. В этот момент головка ленты 1 (соотв. ленты 2) стоит на крайнем правом символе скопированной цепочки хШПООу (соотв. £т).
Во время восприятия цепочки a^WAW Т двигает ленты 1 и 2 так, что в момент восприятия второго б головка ленты 2 находится на самом левом непустом символе ленты 2, а головка ленты 1 находится на некотором символе отрезка хПШООу. Заметим, что если входная лента действительно принадлежит R, то головка ленты 1 должна находиться на самом левом символе отрезка ШПООу.
Во время восприятия конечной последовательности aW т проверяет, содержит ли лента 2 tT, где начальный отрезок длины £(0+ 6 правее головки ленты 1 есть 11^1100. Т приходит в допускающее состояние, если это последнее условие выполнено.
Ясно, что А (Т) = R. Ч. т. д.
Рассмотрим регулярное множество А = {б}{я}*{б}{я}*. Ясно, что R/A = 2*Р, которое, как мы показали в теореме 6, не определимо в реальное время. Поскольку R принадлежит R, А — регулярное множество и RIA не принадлежит R, нами доказана следующая теорема.
Теорема 12. Частное языка, определимого в реальное время, по регулярному множеству может не быть языком, определимым в реальное время.
Максимизация. Последней мы рассмотрим операцию максимизации.
Пусть L — язык, тогда max L = {х: х е L, и если х < у, то У
Теорема 13. (А. Р. Мейер1)). Существует ЯРВ L, такой, что max L не определим в реальное время.
9 Частное сообщение.
Доказательство. Мы предполагаем знакомство с понятиями универсальной машины Тьюринга и арифметизации машин Тьюринга. Рассмотрим арифметизацию машин Тьюринга (МТ), в которой каждое натуральное число х соответствует МТ. Мы предположим, что целые числа закодированы двоичным кодом. Возьмем универсальную машину Тьюринга Т и определим язык Н. Н есть множество всех последовательностей вида x^z, где
х содержится в {1}{0, 1}*, р не содержится в {0,1}; z е {0}*;
универсальная МТ Т обнаруживает за не более чем L(z)— L(x) шагов, что МТ, соответствующая номеру х, закодированному в двоичном коде, останавливается, получая на вход х. Иначе говоря, Т при данном х успевает вычислить за не более чем L(z)— L(x) шагов предикат (Зм) Г(х, х,/г)).
Теперь определим язык L:
L = {l}{0, I}* {P}U
Н по определению определим машиной 1-МРВ). 1-МРВ копирует вход на своей рабочей ленте до тех пор, пока не встретит символ р. Затем она двигает обратно свою рабочую ленту по одной клетке на каждый приходящий 0, пока не достигнет левого конца х. С этого момента она имитирует один шаг универсальной МТ Т для каждого приходящего на вход 0. 1-МРВ переходит в допускающее состояние, когда она обнаружит, что Т остановилась, ответив «ДА» на вход х, и остается в этом состоянии до тех пор, пока не перестает получать символы 0 на вход.
Так как Н есть ЯРВ, то по теореме 1 язык L также ЯРВ. Однако легко убедиться в том, что
max L = {хр: х е {1}{0, 1}*, р ^ {0, 1} и Vn 1 Г(х, х, п)}, что не является даже рекурсивным множеством. Поскольку каждый ЯРВ контекстный и, значит, рекурсивный, мы заключаем, что maxL не определим в реальное время. Ч.т. д.
Распространение результатов. В этом разделе мы покажем, что отрицательные результаты, полученные в предыдущих разделах, справедливы и для более широкого класса машин,
включающего почти все модели, которые могут быть использованы для изучения вычислений в реальное время. Для всякого п класс языков, определимых n-мерными итеративными сетями конечных автоматов (Коул [1]), не замкнут относительно итерации. Возвратимся снова к отношению Ен (mod Д) (определение 5).
Определение 10. Класс машин ЗЯ есть класс полиномиальноограниченных машин, если для каждой машины М из ЭЯ существуют константы с и п, такие, что для fe> 1 индекс отношения E^mod Д (М)) не превосходит ск .
Мы укажем несколько примеров классов полиномиальноограниченных машин.
Класс многоленточных машин Тьюринга, работающих в реальном масштабе времени.
Для всякого п класс многоголовочных машин Тьюринга с n-мерными лентами, работающих в реальном масштабе времени.
Для всякого п класс /i-мерных итеративных сетей конечных автоматов, работающих в реальном масштабе времени.
Внимательного рассмотрения доказательств разд. 4 доста* точно, чтобы доказать теорему 14.
Теорема 14. Пусть ЭЯ — класс полиномиально-ограниченных машин.
Если класс языков L^3R), определимых ЧЯ-машинами, включает класс языков, определимых работающими в реальное время PDS-автоматами, то L^R^ не замкнут относительно сцепления даже с регулярным множеством относительно итерации и относительно отображения последовательностной машиной.
Если класс языков, определимых ^-машинами, включает класс языков, определимых 2-МРВ-машинами (^что необходимо есть частный случай (а)), то £(ЗЯ) не замкнут относительно обращения и операций взятия производных и частных.
Можно заметить, что все языки, определимые с помощью любого класса машин из указанных выше, рекурсивны. Поэтому они не замкнуты относительно максимизации ввиду 4.6.
Положение R в лингвистической иерархии. В разд. 2 мы отмечали, что R —подкласс класса контекстных языков. Результаты разд. 3 и 4 показывают, что R не сравним с бесконтекстными (КС-) языками; так, существуют КС-языки (например, S*P из разд. 4.1), не являющиеся ЯРВ, и существуют языки, определимые в реальное время (такие, как ^anb71cn: n> I}), не являющиеся КС-языками. В этом разделе мы представим пример де-
терминированного КС-языка, не принадлежащего R. Это полностью закончит обоснование рис. 2, на котором показано положение R в классической лингвистической иерархии.
Пусть L — множество всех последовательностей
О^КУМ ... O^-qo^VO^-i+i,
где
Y (0. 1};
г>1, ^>1(l^Z^r);
Ю^г.
Легко убедиться в том, что L— детерминированный КС-язык. Мы покажем, что L не принадлежит R, рассматривая индекс отношения Ev (mod L) при росте р.
Регулярные множества
Рис. 2. Положение R в лингвистической иерархии.
Замечание. Коул [1] и автор [10] независимо нашли другой пример детерминированного КС-языка, не принадлежащего R. Мы рассматриваем L из-за его простоты.
Теорема 15. Существует детерминированный КС-язык, не определимый в реальное время.
Доказательство. Предположим, что язык L определим n-MPB Ted внутренними состояниями и w рабочими символами.
Рассмотрим подмножества L\, L^ ... языка L, такие, что для всякого целого пт Lm есть множество всех последовательностей
O^lO^l ... 06'--1106j-Ys0fe'—5+1
из L с kt ^ m (1^/^г). Как легко убедиться, число классов эквивалентности отношения Еm^T (mod Ц для данного г не меньше чем mr. Рассмотрим две различные начальные последовательности
^^О^Ю"2! ... 0\ 1</г,hr^m,
ИИ
И
И
т.т./2 = 0te40fe2i ... оЧ 1<&ь ..., ^
т.
т.
Тогда ясно, что существует последовательность u = \a0b с я + Ь < •^m + r, такая, что t\U принадлежит Lm и, следовательно, L, в то время как t^u не принадлежит Lm и, следовательно (по определению Lmy не принадлежит и L. Теперь из леммы 1 мы знаем, что число классов эквивалентности отношения Em+r (mod А (Т)) не может превзойти d • wn • w^™^. Однако легко убедиться, что для достаточно больших г и т тТ>ст^Т для любой константы с.
Отсюда следует, что Т не может определять L, что противоречит нашему предположению. Ч. т. д.
ПРОБЛЕМЫ РАЗРЕШИМОСТИ
Мы вкратце напомним несколько неразрешимых проблем, относящихся к определимости в реальное время. Доказательства легко вытекают из неразрешимости комбинаторной проблемы Поста [7].
Теорема 16. (а) Проблема*, является ли произвольный язык ЯРВ, алгоритмически неразрешима.
Следующие проблемы алгоритмически неразрешимы для двух ЯРВ X и Y:
пусто ли Х>
совпадает ли X с S*?
бесконтекстен ли X?
регулярен ли X?
пересекаются ли X и У?
будет ли Хс у?
равны ли X и У?
ЛИТЕРАТУРА
. Cole S. N., Real-time computation by iterative arrays of finite-state machines, Doctoral thesis, Rep. BL-36 by Staff of Harvard Computation Lab. to Bell Telephone Labs., 1964.
Ginsburg S, Greibach S. A., Deterministic context free languages, IEEE Conference Record on Switching Circuit Theory and Logical Design, IEEE Pub. 16C13, 1965, 203—220 ]).
Ginsburg S., Spanier E. H., Quotients of context free languages, /. ACM, 10 (1963), 487—492.
Ч См также статью тех же авторов под тем же названием в Inform, and Contr., 9 (1966), 620—648. — Прим ped.
Ginsburg S., U 11 i a n J., Ambiguity in context free languages, J. ACM, 13 (1966), 62—89
Hartmanis J, Stearns R. E., On the computational complexity of algorithms, Trans. Amer. Math. Soc., 117, № 5 (1965), 285—306. (Русский перевод: Кибернетический сборник (новая серия), вып. 4, М, 1967.)
К и г о d a S., Classes of languages and linear-bounded automata, Inform, and Contr., 7 (1964), 207—223.
P о s t E., A variant of a recursively unsolvable problem, Bull. Amer. Math. Soc., 52 (1946), 264—268.
Rabin M. O., Real time computation, Israel J. Math., 1 (1963), 203—211. (См. стр. 156—167 настоящего сборника.)
Rosenberg A. L, On the nonclosure of the real time definable sets under concatenation, closure, and reversal, IBM Res. Rep. RC-1572, 1966.
Rosenberg A L, A remark on real-time definable languages, IBM Res. Note NC-616, 1966.
МОДЕЛИРОВАНИЕ МНОГОЛЕНТОЧНОЙ МАШИНЫ
ТЬЮРИНГА НА ДВУЛЕНТОЧНОЙ 9
Ф. К. Хенни, Р. Е. Стирнз
ВВЕДЕНИЕ
Изучение вычислительной способности устройств, подобных вычислительным машинам, было начато Тьюрингом [1], который установил, что механически вычислимые функции являются как раз теми, которые могут быть вычислены устройством с конечным числом состояний и с одной бесконечной лентой, при помощи которой происходит считывание и запись информации. Такое устройство называется машиной Тьюринга. Посредством несущественных изменений способов ввода и вывода информации машина Тьюринга может быть использована для других задач, таких, как генерирование последовательностей и распознавание множеств. Таким образом, функции, последовательности и множества могут быть классифицированы как «вычислимые» или «невычислимые» в зависимости от того, могут ли они быть определены с помощью подходящей машины Тьюринга.
После появления современных быстродействующих вычислительных машин интерес к задачам, связанным с возможностью вычислений, распространился на вопросы, касающиеся «трудности» или «сложности» вычислений. Одним из плодотворных подходов к измерению сложности вычисления является оценка времени, необходимого для этого вычисления. Будем говорить, гго, какова бы ни была целочисленная функция Т^, данная функция, множество или последовательность Т(п)-вычислимы гогда и только тогда, когда некоторая (соответствующим образом модифицированная) машина Тьюринга за Т^ операций вычисляет n-й член последовательности или (при другой постановке задачи) обрабатывает последовательность длины п. Ниже будут рассмотрены три варианта машины Тьюринга, к которым применяется этот критерий сложности. Все эти модели имеют устройство с конечным числом состояний, управляющее одной или несколькими бесконечными лентами. Заметим, что использование более чем одной ленты не дает машине никаких дополнительных преимуществ, но тем не менее некоторые вычисления могут быть сделаны с меньшим, чем на одноленточной машине,
!) Hennie F. С., Stearns R. Е., Two-tape simulation of multitape Turing machines, Journal of ACM, 13, № 4 (1966), 533—546.
числом операций, и, кроме того, применение более чем одной ленты делает машину Тьюринга более похожей на цифровые вычислительные машины.
Основная задача теории вычислительной сложности — это определение того, какие преимущества дает вычисление на кх- ленточной машине по сравнению с й2-ленточной машиной. Эта задача интересна не только сама по себе, так как от скорости, с которой машина с фиксированным числом лент имитирует последовательность машин с произвольным числом лент, зависит проведение известных доказательств, основанных на канторов- ском диагональном методе. Такие приложения исследуются нами ниже при рассмотрении конкретных моделей.
Хартманис и Стирнз [2] показали, что одноленточная машина может моделировать работу fe-ленточной машины за время, не большее, чем квадрат времени работы й-ленточной машины. Хенни [3] показал, что имеются случаи, в которых доведение числа лент от двух до одной в действительности требует квадрата времени вычисления. Таким образом, моделирование может быть произведено достаточно эффективно только с использованием более чем одной ленты.
Целью данной статьи является описание схемы, при помощи которой двуленточная машина Тьюринга за nlogn операций может имитировать работу многоленточной машины Тьюринга, произведенную за п операций. По сравнению со схемой, использующей одну ленту, эта схема позволяет улучшить соответствующие результаты, получаемые при помощи диагонального метода. Такие приложения будут рассмотрены в последующих разделах.
ПРЕДВАРИТЕЛЬНЫЕ ЗАМЕЧАНИЯ
Цель этого раздела — более подробное описание рассматриваемых нами объектов. Однако как определения, так и доказательства по необходимости должны быть в какой-то степени неформальными, так как строгое изложение потребует слишком много места и затруднит понимание простых принципов, на которых основана рассматриваемая конструкция.
Опишем основную модель многоленточной машины Тьюринга как вычислительную машину с конечным автоматом в качестве управляющего устройства. Этому управляющему устройству подчинено фиксированное число лент, каждая из которых линейна, не ограничена в обе стороны и разделена на бесконечную последовательность квадратов. Управляющее устройство имеет на каждой ленте одну считывающую головку, которая обозревает один из квадратов данной ленты. Имеется конечное число
различных символов, которые могут быть записаны в квадратах лент. Каждая комбинация считываемых головками символов вместе с состоянием управляющего устройства однозначно определяет машинную операцию. Машинная операция заключается в том, что на каждом квадрате, обозреваемом головкой, печатается символ, ленты независимо друг от друга сдвигаются на один квадрат влево или вправо или же остаются на месте, а также изменяется состояние управляющего устройства. Машина после этого готова выполнить следующую операцию, которая определяется лентами и состоянием управляющего устройства. Если данная операция не требует сдвига лент, изменения символов, записанных на лентах, или изменения состояния, тогда говорят, что машина остановилась.
Для того чтобы использовать машину для вычислений, нужно задать машине некоторые значения в качестве входных данных и получить выходные данные. В последующих разделах рассматриваются различные способы реализации входа и выхода, хотя при моделировании они не имеют особого значения, так как для оценок важны лишь основные машинные операции.
Таким образом, задача заключается в моделировании основной модели; ввод входной и вывод выходной информации не имеют значения. Обычно под «моделированием» мы понимаем просто процесс имитации одной за другой операций, осуществляемых данной машиной.
МЕТОД МОДЕЛИРОВАНИЯ
Набросок построения. Цель этого раздела — описать метод быстрой имитации поведения данной fe-ленточной машины Мк подходящей двуленточной машиной М2. Основная единица процесса имитации, называемая шагом, состоит в моделировании действий, которые Мк совершает в течение одного движения. В начале каждого шага имитации М2 должна иметь на своих лентах запись того, что в настоящий момент имеется на лентах Мк> и помнить положение считывающих головок относительно лент. За время своего шага М2 должна не только изменить свою запись, отражающую ситуацию на лентах Мк, но и также перегруппировать эту запись таким образом, чтобы мог быть осуществлен удобный доступ к тем символам, которые будут в дальнейшем использоваться Мк.
Одну из лент М2 будем называть лентой памяти. Представим себе, что эта лента разделена на к горизонтальных дорожек, каждая из которых соответствует одной ленте Мк. В свою очередь каждая дорожка разделена на верхний и нижний уровни так, как показано на рис. 1. На каждом из маленьких
квадратиков может быть записан любой из ленточных символов Мн и некоторый «маркер». Предполагается, что головка, обозревающая ленту памяти, воспринимает все квадраты одного столбца при выполнении одной операции. Такой специфический способ чтения ленты памяти соответствует традиционной модели машины Тьюринга, так как вектор символов, записанный в данном столбце этой ленты, можно считать отдельным символом расширенного внешнего алфавита.
Один из столбцов ленты памяти называется внутренним столбцом. Столбцы слева и справа от внутреннего столбца объединяются в группы, называемые зонами памяти; t-я зона памяти, как показано на рис. 1, содержит ровно 2г’-1 столбцов. Таким образом, число столбцов в t-й левой (или правой) зоне памяти в точности на 1 больше, чем общее число столбцов в первых Ц—1) левых (соответственно правых) зонах памяти. В начале работы границы зон памяти не отмечены; в процессе моделирования М2 отмечает их специальными символами.
Такая организация ленты памяти может показаться сперва странной, но она дает возможность эффективно провести моде- пирование Мд. Нижний уровень каждой дорожки используется для запоминания символов, имеющихся на лентах Мд. Так, в частности, все символы, считываемые с лент Мд в начале моделирования, размещены во внутреннем столбце. После каждого шага моделирования М2 перестраивает свои предшествующие записи так, чтобы последующие символы, которые должны быть прочитаны машиной Мд, помещались во внутреннем
столбце. Эта перестройка осуществляется путем воспроизведения символов на второй ленте М2 и переписывания их затем обратно в нужную зону ленты памяти. Если М2 сдвигает все символы на каждом шаге, то время, необходимое для имитации п шагов работы Мк, не меньше чем п2.
Для того чтобы уменьшить время моделирования, М2 должна работать таким образом, чтобы в течение шага имитации она сдвигала только небольшой отрезок около внутреннего столбца и оставляла на месте большую часть записанной информации. Такие ограниченные сдвиги повлекут за собой то, что некоторые сдвигаемые отрезки переместятся на место, занятое несдвинутыми символами. В таких случаях, пока не освободится место на нижнем уровне, будет заполняться верхний уровень дорожки. Для каждого такого отрезка избыточных символов на другой стороне внутреннего квадрата должен быть отведен соответствующий промежуток. Эти промежутки остаются свободными, пока не потребуются в дальнейшем.
Количество символов, которые должны быть сдвинуты в течение каждого шага, определяется размерами зон памяти и числом избыточных символов, записанных на верхнем уровне. Размеры зон памяти выбираются таким образом, чтобы в г-й зоне памяти помещался избыток, получающийся в результате перемещения символов на первых i—1 зонах памяти.
Число шагов, необходимых для осуществления таких преобразований, близко к минимуму, и имитация может быть проведена достаточно эффективно.
В частности, будет показано, что п операций Мк могут быть промоделированы на М2 самое большее за п log п операций.
Описание моделирования. В начале каждого шага моделирования символы, считываемые Мк со своих лент, должны находиться на соответствующих дорожках ленты памяти М2 во внутреннем столбце. Тогда М2 для того, чтобы произвести изменения символов, требуемые на этом шаге, и определить направления, в которых должны сдвинуться ленты Мк, необходимо только прочесть внутреннюю колонку. Разумеется, для того чтобы подготовиться к следующему шагу моделирования, М2 необходимо так перестроить свою запись на ленте памяти, чтобы те символы, которые Мк должна будет считать, попали во внутренний столбец. Это преобразование является основным в моделировании и будет подробно рассмотрено ниже. Так как алгоритм в основном одинаков для каждой из лент Мк, мы ограничимся рассмотрением одной ленты и соответствующей дорожки ленты памяти Л12.
В каждый момент времени только некоторые квадраты дорожки будут использоваться для хранения символов, записанных на соответствующей ленте Mfe.
Будем называть квадраты, в которых хранятся некоторые символы с ленты Мк, полными, в противном случае будем называть квадраты пустыми. В начале каждого шага моделирования ситуация на каждой ленте Мк будет записана на соответствующей дорожке ленты памяти М2 в соответствии со следующими правилами.
На любом уровне каждой зоны памяти квадраты либо все полны, либо все пусты. Заметим, что нужно различать пустые квадраты и квадраты, используемые для хранения пробелов. Если ленты Мк первоначально пусты, то лента памяти М2 также пуста, но нижние уровни каждой дорожки хранят пробелы, тогда как верхние уровни пусты.
На каждой дорожке, если верхний уровень г-й левой (правой) зоны памяти полон, нижний уровень той же зоны должен быть также полон и оба уровня г-й правой (левой) зоны должны быть пустыми. С другой стороны, если нижний уровень t-й левой (правой) зоны пуст, то верхний уровень той же зоны должен быть пуст и оба уровня t-й правой (левой) зоны должны быть полны. Верхний уровень во внутреннем столбце всегда пуст, а нижний уровень, в дальнейшем называемый внутренним квадратом, всегда полон. В начале моделирования верхний уровень каждой зоны будет пуст, а ее нижний уровень — полон.
Символы на каждой дорожке должны быть записаны так, чтобы соответствующая запись на ленте Мк могла быть получена следующим образом. Начиная с самого левого непустого символа данной дорожки читается слева направо то, что записано в зонах памяти, причем пустые зоны игнорируются. Слева от внутреннего квадрата символы, хранящиеся на нижнем уровне данной зоны, считываются раньше тех, что записаны на верхнем. Справа от внутреннего квадрата этот порядок меняется.
В качестве примера на рис. 2, а изображена типичная конфигурация, которая может быть записана на дорожке ленты памяти. Буквы изображают символы внешнего алфавита Мк) а пустые квадраты изображают пробелы. Читатель может убедиться, что эта конфигурация удовлетворяет правилам 1 и 2. И в соответствии с правилом 3 она изображает запись
... thequickgrayfoxjump ...
на ленте Мк, причем под считывающей головкой Мк находится символ «у».
Предположим, что конфигурация символов, изображенная на рис. 2,а, в начале некоторого шага моделирования записана на одной из дорожек ленты памяти Л12 и что в следующий момент времени Мн печатает вместо символа, который она считывает, символ «т», а также сдвигает ленту вправо. Для моделирования этого действия М2 должна напечатать во внутреннем квадрате символ «т» и изменить конфигурацию символов на дорожке таким образом, чтобы символ «а» попал во внутренний
ооC_JLS_-L t h е q и iC_JLS_-L t h е q и i^-Внутренний квадрат^-Внутренний квадрат
о
о
C_JLS_-L t h е q и i
C_JLS_-L t h е q и i
^-Внутренний квадрат
^-Внутренний квадрат
Внутренний квадрат
6
^Внутренний квадрат
Рис. 2. Два последовательных упорядочивания.
квадрат и удовлетворялись правила 1 — 3. Это может быть достигнуто, как показано на рис. 2, б, путем сдвига символа «а» во внутренний квадрат и помещения только что напечатанного символа «т» на верхний уровень первой справа зоны памяти.
Предположим теперь, что на следующем шаге вычисления Мн печатает вместо символа, который она считывает, символ «Б и сдвигает ленту еще на один квадрат вправо. В этом случае перестройка конфигурацци символов будет осуществляться сложнее. Символ, который должен быть сдвинут во внутренний квадрат, находится на верхнем уровне третьей слева зоны памяти. Просто сдвинуть этот символ во внутренний квадрат, оставив третью зону памяти без изменения, невозможно, так как каждый уровень зоны памяти должен быть или целиком полным, или целиком пустым (правило 1). Наиболее быстрый способ восстановить правильную конфигурацию — это переместить все символы из верхнего уровня третьей зоны памяти в нижние уровни левой первой и второй зон памяти. Размеры зон памяти выбраны таким образом, что три из этих символов
заполнят первую и вторую зоны, а четвертый символ «г» займет внутренний квадрат.
Для того чтобы правило 2 было выполнено, необходимо, чтобы верхние уровни двух первых правых зон памяти были пусты, а нижний уровень третьей правой зоны памяти должен быть заполнен. Однако число символов, записанных на верхних уровнях двух первых правых зон, вместе с символом «г», сдвинутым из внутреннего квадрата, как раз равно числу квадратов в нижнем уровне третьей правой зоны памяти. Таким образом, символы могут быть расположены так, как на рис. 2, в, и такая конфигурация, удовлетворяя правилам 1 и 2, точно отражает ситуацию, которая возникла на рассматриваемой ленте Мк.
Основываясь на примере, изображенном на рис. 2, установим теперь основные правила перегруппировки символов на дорожках ленты памяти М2. Допустим, что соответствующая запись уже произведена и что М2 имитирует сдвиг ленты вправо, тогда правила будут следующими.
Найти первый непустой квадрат влево от внутреннего квадрата. Пусть i есть номер левой зоны памяти, содержащей этот квадрат.
Если верхний уровень i-й левой зоны памяти полон, то переписать символы, расположенные на нем (в соответствующем порядке), на нижние уровни первых (i—1) левых зон памяти, а самый правый из них поместить во внутренний квадрат. Если верхний уровень l-й левой зоны памяти пуст, то перегруппировать символы, расположенные на нижнем уровне» тем же способом.
Все символы, расположенные на обоих уровнях первых (Z—1) правых зонах памяти, вместе с символом, сдвинутым из внутреннего квадрата, переписать (в соответствующем порядке) на нижние уровни первых (/—1) правых зон памяти, причем избыточные символы записываются на г-ю зону. Запись идет на нижний уровень этой зоны, если он свободен; в противном случае используется верхний уровень.
Если Мк сдвигает свою ленту не вправо, а влево, то в этих трех правилах достаточно переменить местами слова «левый» и «правый». В любом случае процесс перестановки символов будем называть упорядочиванием степени I. Переход от конфигурации, изображенной на рис. 2,6, к конфигурации, изображенной на рис. 2, в, является упорядочиванием третьей степени. В данном случае применена первая часть правила 5, так как верхний уровень третьей левой зоны памяти полон. Переход от рис. 2, а к рис. 2, б является упорядочиванием первой степени, в котором применена вторая часть правила 5. Рис. 3 иллюстрирует менее тривиальное приложение правила 5 для того
случая, когда верхний уровень пуст. На этом рисунке изображено упорядочивание третьей степени. Мы считаем очевидным, что данная процедура работает, т. е. происходит упорядочивание конфигурации, удовлетворяющей правилам 1—3, и, таким образом, применимы правила 4—6. Читатель может легко проверить это сам на примерах.
Напомним, что мы рассматривали только одну из лент Мк и соответствующую ей дорожку ленты памяти М2. На каждом шаге имитации М2 должна упорядочить каждую дорожку своей
аа• • t h е q и i• • t h е q и iк с дк с дг аг аот)от)и m р •и m р •
а
а
• • t h е q и i
• • t h е q и i
к с д
к с д
г а
г а
от)
от)
и m р •
и m р •
t- Внутренний квадрат
ббt ht hг а у fг а у fе q и TJcJkJgjTJrjTJu^е q и TJcJkJgjTJrjTJu^
б
б
t h
t h
г а у f
г а у f
е q и TJcJkJgjTJrjTJu^
е q и TJcJkJgjTJrjTJu^
L Внутренний квадрат
Рис. 3. Упорядочивание третьей степени.
ленты памяти и такое упорядочивание определяется правилами, данными выше. Конечно, упорядочивания, выполняемые в данный момент на различных дорожках, нс обязательно будут иметь одну и ту же степень. Более того, обычно они имеют разную степень, так как ленты Мк могут последовательно сдвигаться в разные стороны.
Реализация процедуры упорядочивания. Мы рассмотрели процедуру упорядочивания и сейчас покажем, как эта процедура реализуется подходящей двуленточной машиной Тьюринга М2. Предположим, что во время выполнения данной операции Мк происходит сдвиг, ленты вправо. Машина М2 печатает символ во внутреннем квадрате и сдвигает головку своей ленты памяти в левую сторону до тех пор, пока под головкой не будет находиться квадрат, в котором записан символ из внешнего алфавита М^. Когда головка ленты памяти проходит некоторый квадрат во время своего движения налево, на второй, или копирующей, ленте М2 отмечается один квадрат. Таким образом, когда головка ленты памяти достигает требуемого символа, число квадратов, отмеченных на копирующей ленте, будет как раз равно 2i-1, где I есть номер зоны памяти, содержащей этот символ.
Далее М2 начинает переписывать символы с соответствующего уровня i-й зоны памяти на отмеченные квадраты копирующей ленты. Когда эти отмеченные квадраты будут заполнены, головка ленты памяти дойдет до левого края i-й зоны. Если этот край зоны памяти предварительно не отмечен, то ставится специальный маркер. Далее головка двигается в обратную сторону, пока она не вернется к левому краю (I—1)-й зоны памяти, и начинается перепись скопированных символов на нижние уровни первых I—1 зон Во внутренний квадрат будет занесен последний оставшийся символ.
Затем М2 переписывает содержимое первых i—1 правых зон памяти на копирующую ленту. Разумеется, для того чтобы М2 переписала эти символы в правильном порядке, она должна распознавать границы зон памяти. Заметим, что границы первых I—1 зон памяти с обеих сторон внутреннего квадрата должны быть отмечены в результате предыдущих упорядочиваний более низких степеней. После того как содержимое первых i—1 правых зон памяти размещено на копирующей ленте, М2 начинает переписывать эту информацию на нижние уровни первых i—1 правых зон памяти и на соответствующий уровень i-й зоны. Машина распознает i-ю зону как первую зону с пустым верхним уровнем. Когда все символы переписаны, достигается правая граница i-й зоны памяти, и М2 отмечает эту границу, если она уже не была отмечена. Таким образом, выполнение упорядочивания i-й степени обеспечивает разметку границ i-й зоны памяти. Так как упорядочиванию i-й степени должны предшествовать упорядочивания всех меньших степеней (см. лемму 2), на ленте уже будут стоять маркеры, отмечающие границы зон памяти с меньшими номерами, и, таким образом, перепись символов может быть произведена, как показано выше.
Далее головка М2 возвращается к внутреннему квадрату и очищает отмеченные квадраты на копирующей ленте. Теперь упорядочивание закончено, и машина начинает упорядочивать следующую дорожку ленты или переходит к следующему шагу имитации. Заметим, что в процессе выполнения упорядочивания i-й степени М2 не нужно обрабатывать квадраты ленты, расположенные за i-ми зонами памяти. Кроме того, весь процесс состоит из некоторого числа движений головок внутри зон памяти и соответствующего отрезка копирующей ленты. Таким образом, число движений головок, необходимое для выполнения упорядочивания i-й степени, пропорционально числу квадратов в первых i зонах памяти с обеих сторон внутреннего квадрата.
Время имитации. Вернемся теперь к задаче оценки времени, необходимого М2 для имитации п операций вычисления,
производимого Мк. Будет показано, в частности, что это время пропорционально и log и. Это будет сделано путем доказательства нескольких простых лемм, в каждой из которых рассматриваются упорядочивания, производимые на одной дорожке.
Лемма 1. Число операций М^ необходимое для выполнения упорядочивания i-й степени, меньше чем р2\ где р есть константа, не зависящая от L
Доказательство. Как уже было отмечено, число операций, необходимое для выполнения упорядочивания i-й степени, самое большее пропорционально числу квадратов, содержащихся в первых i зонах памяти с обеих сторон внутреннего квадрата. Но это число квадратов как раз равно
1 -V^^ ^^ - 1 <4 - 2\/=1
и, таким образом, общее время пропорционально 2г".
Лемма 2. Перед первым упорядочиванием степени, большей чем I, и между двумя любыми упорядочиваниями степеней, больших чем I, должно быть произведено по крайней мере одно упорядочивание степени L
Доказательство. В результате каждого упорядочивания степени, большей чем I, верхние уровни каждой из двух 1-х зон памяти становятся пустыми. Эти зоны в начале имитации также являются пустыми. Однако перед упорядочиванием степени, большей чем I, верхний уровень одной из двух i-x зон памяти должен быть полон, так как иначе должно выполняться упорядочивание меньшей или равной i степени в соответствии с правилами 4 и 2. Но верхний уровень i-й зоны памяти может быть заполнен только при выполнении упорядочивания i-й степени.
Лемма 3. Перед первым упорядочиванием степени, большей чем I, и между двумя любыми упорядочиваниями степеней, больших чем i, должны быть произведены по меньшей мере 2^! — 1 упорядочиваний степеней, меньших или равных L
Доказательство. Проведем доказательство индукцией по I. Для i = 1 лемма очевидна. Допустим, что утверждение справедливо для всех I, меньших чем некоторое целое пг. Рассмотрим два упорядочивания сх и с2 степеней, больших чем пг. По лемме 2 между сх и с2 должно выполняться хотя бы одно упорядочивание с3 степени пг. Но по предположению между сх и с3 должно быть произведено по меньшей мере 2т~2—1 упорядочивания и между Сз и с^ найдется по меньшей мере 2т~2—1
упорядочиваний. Таким образом, общее число упорядочиваний между С\ и с2 по меньшей мере равно 2т-1— 1. Так как подобное рассуждение проходит, если с2 есть первое упорядочивание степени, большей чем i, лемма доказана.
Лемма 4. Пусть п^ есть число упорядочиваний степени I, выполняемых в процессе имитации первых п шагов работы Мк. Тогда Пг^п121-2.
Доказательство. Перед первым упорядочиванием степени i и между любыми двумя последовательными упорядочиваниями степени i должны выполняться по лемме 3 по меньшей мере 22’-2—1 упорядочиваний меньшей степени. Следовательно, самое большее одно упорядочивание из 2г’~2 последовательных упорядочиваний может быть степени I, и, таким образом, из п последовательных упорядочиваний самое большее п/21~2 могут быть степени I.
Лемма 5. ni = 0 для i > 2 + log2 п.
Д о к а з а т е л ь ст в о. Если f>2 + log2n, то по лемме 4
21°^2 «*21°^2 «*
21°^2 «*
21°^2 «*
Так как п^ должно быть целым, то nt = 0.
Лемма 6. Общее число операций, необходимых М2 для выполнения всех упорядочиваний на одной дорожке в процессе моделирования первых п операций М^ не превосходит 40n(2 + log2n).
Доказательство. Время, необходимое М2, есть
Т = 2 ti^b гДе ti — время, необходимое для упорядочивания z = l
i-й степени. Но в соответствии в леммой 5 моделирование проводится только до i = log2n + 2. Далее, применяя леммы 1 и 4, имеем
log п+2log П+2Т = ^j t^n^р2 Hj,i = lz=ilog п+2log П+2Т = ^j t^n^р2 Hj,i = lz=ilog п+22 ₽4^ = 4Mlog« + 2), i-1log п+22 ₽4^ = 4Mlog« + 2), i-1
log п+2log П+2
Т = ^j t^n^р2 Hj,
i = lz=i
log п+2log П+2
Т = ^j t^n^р2 Hj,
i = lz=i
log п+2
2 ₽4^ = 4Mlog« + 2), i-1
log п+2
2 ₽4^ = 4Mlog« + 2), i-1
что завершает доказательство.
Наконец, рассмотрев упорядочивания, выполняемые на всех дорожках, докажем следующую теорему:
Теорема 1. Число операций М2, необходимое для имитации п операций Мк, не превосходит anlog2fi для п>1, где а есть константа, не зависящая от п.
Доказательство. Произведение максимального числа операций, выполняемых на каждой дорожке, на общее число дорожек есть
^кп (log2 ^ + 2) С 12pto log2 ^ № log2^.
Можно показать, что существует константа а7, такая, что в худшем случае число операций М2, необходимых для имитации п операций Мк> равно самое меньшее aTz log2ft. Таким образом, результаты теоремы 1 являются лучшими из тех, что можно получить изложенным методом. Читатель может проверить, что наихудшая ситуация возникает в том случае, когда некоторая лента Мк сдвигается в одном и том же направлении на каждом шаге вычисления,
ГЕНЕРАТОР ПОСЛЕДОВАТЕЛЬНОСТЕЙ
Генератор последовательностей — это многоленточная машина Тьюринга, у которой с некоторыми состояниями управляющего устройства связаны выходные символы. Он начинает свою работу в некотором выделенном начальном состоянии и с пустыми лентами. В процессе своей работы он иногда попадает в состояния, с которыми связаны выходные символы. Последовательность (бесконечная) этих выходных символов называется порождаемой этой машиной последовательностью. Бесконечная последовательность w называется Т (^-вычислимой тогда и только тогда, когда существует некоторый генератор последовательностей М, который выдает п-й член w за Т(п) или меньше операций. В таком случае говорят, что машина работает за время Т(п).
Теорема 2. Если последовательность w порождается к-лен- точной машиной за время Т^ и Т(п)^п, то эта последовательность может быть порождена двуленточной машиной за время T(n)\og2T (п).
Доказательство. Было показано (теорема 1), что двуленточная машина имитирует данную й-ленточную машину за время aT(n)log2 Т(п), где а есть некоторая константа. Машина М2 затем может быть преобразована в машину М2, которая за каждую операцию выполняет а или больше операций машины М2. Такое ускорение вычисления подробно рассмотрено Хартманисом и Стирнзом [2], и в результате время вычисления оценивается следующим образом:
Т' (п) ^ шах [ц, Т (ц) log Т (ц)].
Но если Т(л)> п и п > 1, то имеем
Г^СТ^ log ГН
что завершает доказательство.
Монотонно возрастающая функция U(п) называется вычислимой в реальное время [4] тогда и только тогда, когда существует генератор последовательностей, который на /~й операции печатает единицу, если / = U(i) для некоторого t, и печатает нуль в противном случае. Другими словами, Щп) вычислима в реальное время, если ее характеристическая последовательность является ^-вычислимой. Теперь мы получим первый результат, не связанный с числом лент.
Теорема 3. Если Щп?) — функция, вычислимая в реальное время, а Т^ — вычислимая функция и
inf
то существует бинарная последовательность w, которая U(п)- вычислима, но не Т (п)-вычислима.
Доказательство. В основном доказательство такое же, как доказательство теоремы 9 в работе Хартманиса и Стирнза [2], но «закон квадрата», используемый там, заменяется нашей теоремой 2. Основная идея доказательства — это порождение последовательности w генератором, который работает за время U ^ и вычисляет достаточное количество членов каждой Т (п)- вычислимой бинарной последовательности w' для того, чтобы напечатать по крайней мере один член последовательности w, отличный от соответствующего члена последовательности w'. Рассмотрим сейчас только основные этапы доказательства.
Пусть Mi есть двуленточный генератор последовательностей с бинарным выходом, имеющий номер i при некотором перечислении всех таких машин Тьюринга. Далее построим «диагональный» генератор последовательностей D, который должен решить три задачи. Одна из этих задач заключается в имитации одной за другой начальных частей вычислений, выполняемых Мх, М2, и т. д. Второй задачей является порождение в реальное время характеристической последовательности функции U ^nY Третьей является порождение (не обязательно в реальное время) характеристической последовательности функции T(nYogT(nY
Так как D имитирует каждую машину Mt, то она следит за числом операций, необходимых Mt для порождения выходных символов. Число этих операций сравнивается с вычисленным значением Т (п) log Т (п) для того, чтобы проверить, работает
ли Mj за время, ограниченное Т^п) log Т(п)- Гот факт, что эта проверка не может не отставать от имитации М^ не имеет значения. Важно то, что каждая Mi, которая не укладывается за время Г(п) log Г(п), может быть в конечном счете обнаружена и исключена из дальнейшей работы.
Так как машина D должна работать за время С7(п), то она строится таким образом, чтобы печатать выходные символы в соответствии с единицами характеристической последовательности функции U(n). В момент порождения /-й единицы возможны два случая. Во-первых, D может нехватить времени для вычисления /-го выходного символа. В этом случае D печатает некоторый произвольный символ, скажем 0. Вторая возможная ситуация заключается в том, что D уже определила /-й выходной символ моделируемой машины. В этом случае D печатает символ, дополнительный к определенному ею выходному символу моделируемой машины.
Имитация каждой машины Мг продолжается до тех пор, пока не возникнет одна из следующих ситуаций:
D определяет, что Mi не укладывается за время 7(zi)log Т(п) -
D вычисляет /-й выходной символ машины Mi за время ЩП, причем (/(/)—время, прошедшее с начала работы D. Заметим, что если Mi укладывается за время Г(л) log Г(/т), то в конечном счете должна возникнуть ситуация (б). Действительно, предположим, что имитация машины Mi начинается после того, как уже произведено Bi операций, и что самое большее Ci операций необходимо для имитации одной операции Mt. Тогда, так как
inf= n
должно существовать некоторое /, такое, что
Sz + Czr(/) log Г(/^^
При возникновении ситуации (а) или (б) D прекращает ими тацию Mt и начинается имитация Mw.
Пусть теперь w'— некоторая бинарная последовательность, порождаемая за время Т^. В силу теоремы 2 эта последовательность w' может быть порождена двуленточной машиной М за время T(n)log Г(п). В процессе своей работы D в конце концов имитирует машину М и печатает в качестве своего /-го выходного символа символ, дополнительный к /-му выходному символу машины М. Таким образом, последовательность w, порождаемая D, отличается по крайней мере одним символом от последовательности w\ что завершает доказательство.
МАШИНА ТЬЮРИНГА СО ВХОДОМ
Так же как и генератор последовательностей, машина Тьюринга со входом является многоленточной машиной Тьюринга, выходы которой связаны с состояниями управляющего устройства. Кроме того, машина со входом имеет специфический ввод входной информации. Машина начинает работать в фиксированном начальном состоянии и с пустыми лентами. После восприятия входного символа она производит некоторое число операций, пока не попадает в состояние, с которым связан выход. После этого машина готова воспринять следующий входной символ, и процесс повторяется. Говорят, что конечная последовательность входных символов допускается машиной, если после ее переработки машина попадает в состояние с выходом 1. Множество R конечных последовательностей Т(п) -распознаваемо (машиной со входом) тогда и только тогда, когда существует машина Тьюринга со входом М, которая перерабатывает любую входную последовательность длины п за Т(п) операций, и R является множеством конечных последовательностей, допускаемых М.
Теорема 4. Если множество R распознается k-ленточной машинной Тьюринга со входом за время Т (п), то оно распознается двуленточной машиной со входом за время Т (n)\ogT (п).
Доказательство. Доказательство по существу не отличается от доказательства теоремы 2.
Теорема 5. Если U(n) —вычислимая в реальное время функция, а Т^п)— вычислимая функция и
то существует множество R, которое U (п)-распознаваемо, но не Т (п) -распознаваемо.
Доказательство. Пусть w— бесконечная последовательность из теоремы 3. Определим R как множество входных последовательностей длины п для всех п, таких, что п-и член w есть единица. Очевидно, что R является U (п) -распознаваемым. С другой стороны, легко видеть, что «Т (п) -распознаватель» может быть преобразован в генератор последовательностей w, что противоречит теореме 3.
МАШИНА ТЬЮРИНГА С ЗАПИСЬЮ НА ЛЕНТЕ
Машина Тьюринга с записью на ленте —это многоленточная машина Тьюринга с двоичным выходом, связанным с некоторыми состояниями, кроме того, одна из лент машины рассма-
тривается как входная лента. Машина начинает работать в фиксированном начальном состоянии, а на входной ленте записано некоторое слово. Это слово ограничено с обеих сторон пустыми квадратами, и его самый левый символ находится под считывающей головкой. При обработке каждого входного слова машина в конце концов попадает в состояние (заключительное), с которым связан выход. Говорят, что входное слово допускается в том и только в том случае, когда этот выход есть 1. Множество R конечных слов Г(м)-распознаваемо (машиной с записью на ленте) тогда и только тогда, когда существует машина Тьюринга с записью на ленте, которая обрабатывает любое входное слово длины п за Т^ операций и допускает в точности слова из R.
Теорема 6. Если множество R распознается к-ленточной машиной Тьюринга с записью на ленте за время Т (п), то оно может распознаваться двуленточной машиной с записью на ленте за время Т(n)\ogT(п).
Доказательство. Опять доказательство по существу не отличается от доказательства теоремы 2.
Теорема 7. Если U (п)—вычислимая в реальное время функция, то существует множество конечных последовательностей R, которое U (п)-распознаваемо машиной с записью на ленте, но не Т (п)-распознаваемо, где функция Т (п) такова, что
Т (л)log Т (м)Т (л)log Т (м)= 0.= 0.
Т (л)log Т (м)
Т (л)log Т (м)
= 0.
= 0.
Доказательство. Построим машину D с записью на ленте, которая имеет входной алфавит {0, 1} и распознает множество R за время Е(п). Эта машина интерпретирует каждое входное слово как двоичное представление целого числа. Основной частью работы D является моделирование вычисления, производимого t-й двуленточной машиной Тьюринга с записью на ленте при обработке данного, входного слова. Две ленты D выделяются для того, чтобы использовать их для записи ситуаций на лентах моделируемых машин М^.
Перед началом работы D измеряет длину входного слова и отмечает ее на вспомогательной ленте. Затем это слово, подходящим образом закодированное, копируется на соответствующую ленту. Далее происходит подготовка к имитации машины М^ И наконец начинается имитация вычисления, выполняемого Мг при обработке данного входного слова.
Машина D порождает характеристическую последовательность функции Щп) и сравнивает число единиц в этой после-
довательности с длиной входного слова, отмеченной на вспомогательной ленте. Как только число единиц в порождаемой последовательности станет равным длине данного входного слова, D останавливается, и, таким образом, ее работа укладывается за время ЩпУ Если в этот момент времени D уже промоделировала работу М,- и определила, допустимо ли данное входное слово, то она печатает символ, дополнительный к выходному символу Мь Если же D не закончила имитацию работы Mi (т. е. имитация Mt не укладывается за время U(n)Y то печатается некоторый произвольный символ, например 0.
Так как D обязательно останавливается независимо от данного входного слова, то она распознает некоторое множество входных слов, которое мы обозначим R. По построению R является U(п)-распознаваемым. Покажем теперь, что R не T^nY распознаваемо. Действительно, предположим, что R является Т (п) -распознаваемым некоторой многоленточной машиной Тьюринга. Тогда в соответствии с теоремой 6 оно должно быть Г(n) log Т (п) -распознаваемо некоторой двуленточной машиной Тьюринга Мк. Если целое число й, представленное в двоичной форме, подается машине Мк в качестве входного слова длины /7, то вычисление потребует самое большее Т(п) log Т (п) операций. Оценим теперь число шагов, необходимое для имитации того же самого вычисления на машине D. Определение длины входного слова потребует самое большее п операций, а переписывание входного слова требует не больше чем ап операций, где а есть некоторая константа. Обозначим через Вк число операций, необходимых для того, чтобы подготовиться к имитации, и через Сн максимальное число операций, которое необходимо D для имитации одной операции Мк. Тогда общее число операций, которое необходимо D для имитации работы, совершаемой М^ равно
п + ап + Bk + СкТ (п) log Т (п\
Эта величина должна быть ^ U (п) для того, чтобы D успела завершить имитацию. Но, так как между Щп) и Т^п) имеется определенная в условии связь, всегда можно выбрать п достаточно большим, чтобы
п + ап + Вк + СкТ (п) log Т (az) < U (п\
Входное слово с длиной, равной или превосходящей эту критическую величину п, может быть получено просто добавлением достаточного количества нулей к левому краю двоичного разложения к. Результаты обработки этого слова машинами D и Мк различны, и, следовательно, они не могут распознавать одно и то же множество. Таким образом, установлено, что R нераспознаваемо за время 7\nY и доказательство завершено.
Основные теоремы 3, 5 и 7 могут быть резюмированы следующим образом. Если функция Т^ вычислима и Щп) вычислима в реальное время, причем U(п) растет быстрее, чем произведение некоторой константы на Г (я) log Г (/т), то существует вычислительная процедура, которая может быть произведена за время U(м), но не за время Т^п).
ЛИТЕРАТУРА
Turing А. М., On computable numbers, with an application to the Ent- scheidungsproblem, Proc. London Math. Soc., 2, 42 (1936—1937), 230—265; Correction, ibid., 43 (1937), 544—546.
H a г t in a n i s J., Stearns R. E., On the computational complexity of algorithms, Trans. Amer. Math. Soc., 117 (May 1965), 285—306. (Русский перевод: Хартманне Дж., Стирнз Р. Е,, О вычислительной сложности алгоритмов, Кибернетический сборник (новая серия), вып. 4, «Мир», 1967, стр. 57—85.)
. Н е n n i е F. С., One-tape, off-line Turing machine computations, Inform, and Contr., 8, № 6 (Dec. 1965), 553—578. (См. стр. 223—248 настоящего сборника.)
. Yamada H., Real-time computation and recursive functions not real-time computable, IRE Trans. EC-11 (1962), 753—760. (См. стр, 139—155 настоящего сборника.)
МЕТОДЫ ПЕРЕВОДА И СЛОЖНОСТЬ
ВЫЧИСЛЕНИЙ ])
С. С. Раби, П. К. Фишер
ПРЕДВАРИТЕЛЬНЫЕ ЗАМЕЧАНИЯ
Эта статья продолжает исследование (начало которому положили Хартманне и Стирнз [1]) вычислительной сложности двоичных последовательностей, порождаемых многоленточными машинами Тьюринга. Многоленточная машина Тьюринга состоит из управляющего устройства (процессора), некоторого числа линейных лент, каждая из которых не ограничена в обе стороны и разбита на бесконечное множество ячеек (квадратов— squares), и головок на каждой из лент (головки могут читать и писать в обозреваемой ячейке соответствующей ленты; эта ячейка находится «под» головкой). На ленте могут быть символы лишь из конечного множества, а управляющее устройство может находиться только в конечном числе внутренних состояний. Машинная операция полностью определяется состоянием процессора и символами, находящимися под головками на лентах, и состоит в печатании символов в каждой из ячеек под головками, сдвигании каждой из лент самое большее на одну ячейку в любом направлении и изменении состояния процессора. Исходя из некоторого начального состояния и набора пустых лент, машина порождает двоичную последовательность на специальной односторонней выходной ленте. Пусть Т(п) является строго возрастающей монотонной функцией неотрицательных целых чисел с такими же значениями; мы будем называть двоичную последовательность
а = (az) = a0aia2 ...
Т-вычислимой (а е ST) тогда и только тогда, когда существует многоленточная машина Тьюринга, порождающая а так, что an печатается не более чем за Т(п) операций. (В обозначениях мы следуем Хартманису и Стирнзу [1].) Темой этой статьи является сложность классов ST, где Т— вычислимая монотонная функция.
Назовем характеристической последовательностью множества А неотрицательных целых чисел двоичную последователь-
9 Ruby S. S., Fischer Р. С., Translational methods and computational complexity, IEEE Conf. Rec. VI Ann. Symp. on «Circuit theory and logic design», 1965, pp. 173—178.
ность а = aoaia2 ..., такую, что для всех п ап = 1 тогда и только тогда, когда п^А. Можно заметить, что существует взаимно однозначное отображение ф множества вычислимых монотонных функций в множество вычислимых двоичных последовательностей, задаваемое посредством ф(7) = сс тогда и только тогда, когда а является характеристической последовательностью области значений Т. (Это отображение не будет «на», поскольку каждая последовательность, связанная с монотонной функцией, содержит бесконечное число единиц.)
Имея в виду это соответствие, мы назовем монотонную функцию Т^ U^nyвычислимой функцией или T^Fu тогда и только тогда, когда связанная с ней последовательность U- вычислима, т. е. ф(Т) ^Su.
Каждой многоленточной машине Тьюринга можно сопоставить T^Fn (т. е. Fu, где Щп) = пУ где Т^п) выражает число операций машины до того, как будет напечатана n-s\ выходная цифра. По этой и другой причинам элементы Fn называются функциями, вычислимыми в реальное время [3]. Аналогично элементы Sn называются последовательностями, вычислимыми в реальное время.
Далее будет использован следующий результат Ямада [3]:
для целых £>0 функции п\ (6 + l)n, n\^Fn;
если Т, U^Fn, то функции Т (n) + U (п), T^nyU^n\ к-Т(пу Т^и^у, T(n)^^Fn.
5Г-ИЕРАРХИЯ
Хартманне и Стирнз [1] показали, что если с> 0 — постоянная, то для всех Т
St = Sc.t.
Другой их основной результат состоял в том, что для любой вычислимой монотонной функции Т множество ST является рекурсивно перечислимым. Поскольку множество всех бесконечных вычислимых двоичных последовательностей не является рекурсивно перечислимым, тб отсюда следует, что существует бесконечно много различных классов сложности. Хартманне и Стирнз показали далее, что бесконечное частично упорядоченное множество классов сложности имеет бесконечное линейное упорядоченное подмножество. Этот результат был получен с использованием диагонального метода и того факта, что вычисление, производимое за Т^ операций на некоторой многоленточной машине, можно осуществить за (Т(п))2 операций на одноленточной машине Тьюринга. Точная формулировка этого результата такова.
Теорема (Хартманис и Стирнз). Если Т и U суть функции, вычислимые в реальное время, и
infП~> ООinfП~> ОО(Г^) )2UW(Г^) )2UW= 0,= 0,
inf
П~> ОО
inf
П~> ОО
(Г^) )2UW
(Г^) )2UW
= 0,
= 0,
то
Su ST ^ 0
(т. е. класс Su— Sr непуст).
Следовательно, Sn, SnZ, Sn7, Snm ..., S 2k_x ... образую! (относительно включения) бесконечное линейное упорядоченное множество классов сложности.
Вопрос о том, верно ли, например, что S^ отличается от STI, был решен Хенни и Стирнзом [2]. Они показали, что вычисление, требующее Т(п) операций на многоленточной машине Тьюринга, можно осуществить на двуленточной машине Тьюринга за T(n)log2 Т(п) операций. Тогда, применяя диагональный метод, можно доказать теорему.
Теорема (Хенни и Стирнз). Если Т и U — функции, вычислимые в реальное время, и
inf= 0, то 5и-8т^ 0.
П->оо U W
Таким образом, для TeFn ST\+e строго содержит ST и частично упорядоченное множество классов сложности содержит плотное подмножество.
К сожалению, предположение Хартманиса и Стирнза о том, что inf = 0 влечет Su~ST^= 0, остается недоказанным.
Очень сильный критерий Tlog2T Хенни и Стирнза не позволяет решить вопрос: верно ли, что Sn2n #= S2n? Цель настоящей заметки — предложить другой подход к изучению структуры классов сложности Su и Ри, который сводит вопросы о некоторых классах сложности к вопросам о других, быть может, более «доступных» классах.
ПОДХОД, ОСНОВАННЫЙ НА ПЕРЕВОДЕ
Следующая лемма интересна сама по себе и необходима для некоторых теорем, приводимых ниже.
Лемма. Если T^Fn и a^ST, то существует многоленточная машина Тьюринга, вычисляющая а, = а^а^ .,. в точности да время Т (п).
Доказательство. По теореме «умножения на постоянную» Хартманиса и Стирнза существует машина Тьюринга, вычисляющая сс так, что ссп печатается за время, меньшее чем 7 (az)/2. Эта машина, счетчик реального времени для 7, счетчик реального времени для 7/2 и три дополнительные ленты Аь А2 и А3 комбинируются для следующей процедуры. Начинает работу 7/2-машина, вычисляющая ос. Все элементы ос, вычисленные ко времени 7(1 )/2, записываются по порядку на ленте Др В момент 7(1)/2 (или (7(1)4- 1)/2, если 7(1) нечетно) вычисление сс приостанавливается, и лента Д1 прокручивается назад до тех пор, пока не достигается начало цепочки (ccj). В этот момент лента Ах содержит а^-о • • • ^, для кх ^ 1.
В то время как лента Ах прокручивается назад, на ленте А3 записываются кх единиц. Вычисление сс задерживается до момента 7(1), а в этот момент выдается осх. Вычисление сс возобновляется до момента времени (Т (kx + 1) + 7(1) )/2 = 7(1) 4+ (7(fei+ 1)—7(1))/2, а этот момент может быть отмечен счетчиком 7/2 (который также был приостановлен от момента 7(1 )/2 до 7(1)) и с помощью единиц с ленты А3 (которые постепенно стираются на этом этапе). На этом этапе работы машины все новые вычисленные элементы сс записываются на ленту А2.
В момент (7(fei + 1)4- 7(1))/2 вычисление сс и работа счетчика 7/2 опять приостанавливаются. В этот момент лента А2 содержит а^1 + 1 ... аЛ2 для некоторого Й2^^14- 1. Лента А2 прокручивается назад, записывая на ленте Д3 (к2— кх) единиц. От момента окончания прокручивания назад ленты А2 до момента 7(^1 4-1) работа машины состоит только в выдаче результатов описываемым ниже способом.
7-счетчик машины работает параллельно со всем описанным выше и сигнализирует машине, что надо печатать символы а2, а3, ..., а^ в моменты 7(2), 7(3), ..., Т (кх) соответственно. Таким образом, к моменту Т(кх 4- 1) лента Д1 опять оказывается пустой.
Процесс повторяется снова: новые члены сс записываются на ленте Ах по мере их появления до момента (7(fe24-l)4- 4-7(fei 4- 1))/2, а элементы ос, хранимые на ленте Д2, печатаются на выходе в моменты времени Т (kx 4- 1), T(kx 4-2), ...
Т^ и т. д.
Пусть кружок обозначает композицию функций, т. е. U о V(п) = [/(V(n)y Теперь мы можем сформулировать основную теорему.
Теорема 1. Пусть R и V принадлежат Fn. Тогда для всякого U, такого, что Sy or — SUor ¥= 0, Sy — Sy 0.
Доказательство. Пусть « — последовательность из Svor — Su or, а ^ — машина, порождающая а точно за V (/?(^)). Определим последовательность символов р, такую, что
( ап, если к = R (п) для некоторого п, Вл = ) ~
(ив противном случае.
Очевидно, что 0eSy, так как последовательность 0 может быть порождена ^ в сочетании с машиной, вычисляющей V ^ в реальное время и печатающей нули в каждый момент V(n), где п не является значением R. Предположение V е Fn обеспечивает существование такой машины для V. Запишем в табличной форме:
0
Номер символа
Число операций
0
0
V(O)
0
1
V(l)
0
2
И (2)
•
0
Я(0)-1
V(Z?(O)-1)
а0
Я(0)
V (Я (0))
0
R (0) + 1
V(/?(0)+l)
0
/?О)-1
v^(l)-l)
а.
«(1)
HM)
0
«(1)+1
V (/?(!)+!)
•
•
•
Теперь предположим, что peStz. Пусть ^ есть машина, (/-вычисляющая 0. Так как FT' печатает только R^-e цифры 0, ее можно видоизменить так, чтобы она порождала ап за U^R^n^ операций. Но это противоречит первоначальному предположению о том, что а е Sy OR — Suor. Таким образом, 0eSy — Su.
(1)(1)Теорему 1 можно использовать для доказательства некоторых результатов относительно Su- (и ^-иерархии. Например,
(1)
(1)
Snl ^ *$(п4-1)!«
АВ
Доказательство. Рассмотрим Sni cz S^+di с: 5(П+2)!. Sm#= S(n+2)I ввиду J^^^T =0-
Следовательно, включение А или включение В должно быть собственным. Если В собственное, то, полагая R(n) = n+ 1, U(n) = n\, V (п) = (п + 1)1 и применяя теорему 1, получаем 5п| 5= S(n+i)i, т. е. включение А является собственным в любом случае.
S2n ^ Sn2n, и вообще
^2N ^N2^
2П ]
гдеN = 22 J •
Доказательство. Докажем это для класса S самого низкого порядка; другие случаи аналогичны. Рассмотрим
ав
S с S п = S cz S
222П-2222
Как и выше, критерий Г log Г влечет S2n^S,n х^^ поскольку
22"10ё22П п11Ш ^г = 0.
п->оо (2п + п)2^2 +п'
Таким образом, по крайней мере одно из включений А или В является собственным. Если А собственное, то, полагая /? (лг) = 2™, (7(м) = 2п, V(fz) = n-2n и применяя теорему 1, получаем S2n ^ Sn2n. Если В — собственное включение, то, полагая
R (п) = 2" + л, U (n) = 2n, V ^ = п • 2П
и применяя теорему 1, такжр получаем S2n ^ Sn2n.
82П2 ^ Sn2 2п?.
Доказательство. Из предыдущего имеем
S2(22»-')2 = S^ S^n = S^n_Xy ^-XY-
В силу результатов Ямада R (п) = 22П~"1 = 2^п^ удовлетворяет предположению теоремы 1. Полагая (7(n) = 2n, a V^ = n -2^, мы докажем собственное включение.
В каждом из этих примеров (и многих других подобных) приведено собственное включение Зц^Зу, где не удовлетворяется критерий Хенни — Стирнза, a Нт-^р^ = с> О или даже равен оо.
Таким образом, каждый пример дает уточнение иерархии. Приложения теоремы 1 используют следующее общее свойство S ^-иерархии.
Следствие. Цля любых U, T^Fn Su^SUoTii влечет Su^ Suot, где Tk(ti) обозначает к-кратную композицию Т (г. е. если некоторое число внутренних композиций расширяет класс, то и одна композиция расширяет его\
Доказательство. По предположению одно из включений в последовательности Зц cz SUoT cz SUoT oT cz ... clSUoTi? должно быть собственным.
Пусть j будет такое число, что Зи oTf^ Зи oTf^. Полагая U (az) = U (az), V (п) = U (Т (az) ), R (az) = Tj (az) и применяя теорему 1, получаем утверждение следствия.
Следующие предположения, будь они верны для Т, U, R е Fn, помогли бы уяснить свойства перевода в иерархии.
(A) Sj^Sy влечет для всех R St 0 r^ Зи о r (см. теорему 2); (В) 8т^8и влечет для всех R Srot^ Srou (обращение (В) ложно);
(С) Sr | Зи тогда и только тогда, когда
Sr^-TW ^ Sr^-UM*
Теорема 1 позволяет «переводить» некоторые собственные включения между классами высокого порядка (например, Suor и Sv о/?) в собственные включения между классами низшего порядка (например, Su, Sv). В следующем разделе мы дадим пример, когда происходит обратный перевод.
СУЩЕСТВЕННЫЕ ФУНКЦИИ
Допустимая функция Т называется существенной для Su 5= Sv тогда и только тогда, когда существует двоичная последовательность а с ап = 0, если только к не равно T(az) для некоторого az и aeSy— St;. Основой для этого определения служит следующий результат.
Теорема 2. Если U, Т ^ Fn и Т является существенной функцией для Su^Sy, то Su от^ Sy о т*
Доказательство. Пусть a^Sv — Su есть такая последовательность, что ад = 0, если неверно, что к = Т (п) для некоторого п. Тогда ат = ат (0)аг (1)аг (2) ... ^ Sy о т — Sv о т. Если ST— машина Тьюринга, которая ^-вычисляет а, то aTW порождается за V^T^n)) операций машины ЕГ. Поскольку T^Fn, то все выходы, кроме Т(0), Т^, ..., Т(/2)-го выходов Т, могут быть исключены за V(T(az)) операций. В результате машина будет V(T(n)) -вычислять ат. Если вдобавок ат порождается машиной ^х, которая вычисляет ат точно за время (7(Т(гг)), то, выдавая на выход 0 на Щк)-Й операции, когда к не является значением Т, можно изменить FT' так, чтобы она порождала а^ за <7(&) операций, что противоречит условию теоремы.
Справедливо также обращение теоремы 2.
Теорема 3. Из V, TeF», SU(tW)^ 8у(т(пн следует, что Т является существенной функцией для Sv ^ Sy.
Доказательство. В доказательстве теоремы 1 0 является последовательностью, которая делает Т существенной функцией.
Если R(T(n^—существенная функция для Su 5 Sy, то R существенна для Su ^ Sy, так как любая последовательность а, с помощью которой устанавливается существенность R оТ, такую же роль играет в отношении R.
Теорема 4. U, Ге Fn; lim -^|^- = q влечет существенность R для ST ^ Su для любого R е Fn.
ТогдаТогдаДоказательство. Рассмотрим любое R^Fn.
Тогда
Тогда
St or^l Su о r потому, что
Um w-yk^ |im
n->ooU (R (fl) )m-»oo E(.?l)
По теореме 3 R существенна для ST ^ ^и-
/^-ИЕРАРХИЯ
Наряду с Stz-иерархией обычно рассматривают тесно с ней связанную (напомним, что Т ^Fv тогда и только тогда, когда ф(Т)е5ьг) Еи-иерархию. Классы Fu обладают интересными
функциональными свойствами. Можно сказать, что у Fu есть некоторый статус «естественного» разделения вычислимых монотонных функций. Например, если U е Fn, то класс Fu замкнут относительно композиции. Этот факт является следствием из следующей теоремы «перевода».
Теорема 5. Если U е Fn, то Т ^ Fu тогда и только тогда, когда U оТ Fn.
Доказательство. Предположим, что T^Fu. Поскольку U^Fn, по лемме машину £Г для ср(7) можно выбрать так, чтобы она печатала q>VHn в своей О(п)-й операции. Машина, которая печатает выходы машины FT, когда их печатает машина Г, и 0 в остальные моменты, порождает ср (77 °Т) в реальное время. Действительно, пусть последовательность а — выход этой машины; тогда 6^ = 0, если только не имеют места fe=U^n) и п=Т(Г) для некоторого I, но это является определением ^(UoTy Обратно, предположим, что 2ГГ порождает ^(UoT) в реальное время. Пусть ^/х порождает в реальное время $((/). Если печатать выход ^' только тогда, когда текущий выход ^/z есть 1, получим машину, которая ^-вычисляет <р(Т); п-й выход этой новой машины соответствует (/(п)-му символу cp(UoT), который будет 1 тогда и только тогда, когда п = Т (/) для некоторого I, но это является определением ср(7).
Следствие. Если V е Fn, то для всех U, Т ^ Fv имеем Ъ о Т ее Fv
Доказательство. Предположим, что UoT^FVl тогда по теореме 5 V ° U о Т фРп. Но U Fv влечет (по той же теореме), что V о U е Fn, следовательно, теорему 5 можно применить снова для вывода Т ^. Fy 0 и^ Ру, что противоречит условию (в действительности для доказательства в условии достаточно принять, что Т г Fy о иУ
Вышесказанное дает возможность предположить, что можно обобщить все результаты Ямады, т. е. доказать, что для VeFn класс Fу замкнут относительно композиции, сложения, умножения и экспоненцирования, а это, конечно, желательные свойства для функциональной иерархии.
ЗАКЛЮЧЕНИЕ
Приложение метода перевода будет зависеть в итоге от доказательства теорем мультипликативного, экспоненциального и других типов перевода, аналогичных теоремам 1 и 5, где фигу^ рирует композиционный перевод. Некоторую надежду на это дает тот факт, что класс Fn наряду с композицией замкнут относительно других операций. Теорема 1 подсказывает возмож-
ное направление исследований Su- и ^и-иерархий. Можно привести некоторые соображения для установления свойств замкнутости классов Fu и Su. Заслуживает внимания также рассмотрение подклассов классов сложности, связанных с машинами Тьюринга с фиксированным числом к лент.
ЛИТЕРАТУРА
Hartman is J., Stearns R. E., On the Computational Complexity of Algorithms, Trans. Am. Math. Soc., 117 (1965), 285—306. (Русский перевод: Хартманне Дж., С т и р н з Р. Е., О вычислительной сложности алгоритмов, Кибернетический сборник (новая серия), вып. 4, «Мир», М., 1967, стр. 57—85.)
Н е n n i е F., Stearns R. Е., Two-tape simulation of multi-tape Turing machines, /. ACM, 13, № 4 (1966), 533—546. (См. стр. 194—212 настоящего сборника.)
Y a m a d a H., Real-time computation and recursive functions not real-time computable, IRE Trans. El. Comp., EC-11 (1962), 753—760. (См. стр. 139—155 настоящего сборника.)
ВЫЧИСЛЕНИЯ НА ОДНОЛЕНТОЧНОЙ МАШИНЕ
ТЬЮРИНГА С ЗАПИСЬЮ НА ЛЕНТЕ1)
Ф. К- Хенни
ВВЕДЕНИЕ
В этой работе мы будем рассматривать машины Тьюринга, которые на каждом данном шаге своих вычислений могут производить следующие действия: а)менять текущий символ на ленте, обозреваемый считывающей головкой; Ь) сдвигать каждую из своих лент на один квадрат влево или вправо; с) менять свое внутреннее состояние; d) останавливаться. Будем считать, что каждый шаг для своего выполнения требует ровно одну единицу времени. Для того чтобы исследовать полное время, требующееся для вычисления данной функции, удобно различать online и off-line тьюринговы вычисления. Эти два типа вычисления различаются только способом, которым входные данные поступают в машину и выходные данные порождаются ею. В on-line вычислениях (или в вычислениях на машине Тьюринга со входом) входные данные поступают в машину по одному символу за единицу времени на специальное входное устройство. Каждый входной символ требует от машины выдачи через специальное выходное устройство соответствующего выходного символа. Вообще говоря, машина не может сделать это в непосредственно следующий момент времени, так как она должна затратить некоторое время, вычисляя требуемый выходной символ. В то же время новый символ не может быть подан на входное устройство, пока машина вычисляет выходной символ, который соответствует предыдущему входному. Таким образом, каждый выходной символ есть функция исключительно предшествующего входного символа. В работах [1—3] используется эта модель машины Тьюринга.
В off-line вычислениях (или в вычислениях на машине Тьюринга с записью на ленте) входные символы записываются на одной из лент машины перед началом вычислений. Результаты вычислений получаются тогда и только тогда, когда машина останавливается, и их можно считать либо словом, записанным на одной из лент, либо внутренним состоянием, в котором находится машина после остановки.
!) Hennie F. С., One-tape, off-line Turing machine computations, Information and Control, 8, № 6 (1965), 553—578.
В этой работе мы будем рассматривать только вычисления с записью на ленте, в частности такие вычисления этого типа, которые имеют только два возможных выхода. Эти выходы, представляемые символами 0 и 1, могут считаться отождествленными с заключительными состояниями машины.
Все ленты, используемые при вычислениях с записью на ленте, предполагаются односторонне бесконечными, ограниченными слева и не ограниченными справа. Это не вызывает уменьшения возможностей или скорости вычисления и удобно для последующего анализа.
Перед началом вычисления входное слово должно быть записано на левом конце одной из лент машины, предназначенной для этой цели. Входное слово имеет конечную длину, и остальные квадраты ленты пусты.
В начальный момент считывающая головка обозревает крайний левый непустой квадрат и машина находится в начальном состоянии. Затем машина совершает последовательность операций, определенную ее внутренней структурой. Если машина останавливается в состоянии, которое обозначает выход 0, то будем говорить, что она отвергает входное слово; если она останавливается в состоянии, которое обозначает выход 1, то будем говорить, что она допускает входное слово. Если машина всегда останавливается через конечное время независимо от того, какое входное слово представлено ей, то будем говорить, что она распознает множество входных слов, которые порождают на выходе 1.
Можно считать, что такие машины классифицируют входные слова на те, которые машина допускает, и на те, которые она отвергает. В большинстве случаев мы будем иметь дело с машинами, которые всегда останавливаются независимо от представленного им конкретного входного слова. Число основных операций, которое требуется машине, чтобы допустить или отвергнуть входное слово, будет называться временем вычисления для этого входного слова. Если Т^— такая функция, что время вычисления для каждой входной последовательности длины п меньше либо равно Т^п), тогда говорим, что вычисление на машине ограничено Т(п). Аналогично, множество входных слов, которое распознает машина, назовем распознаваемым за время Т^п).
Эта работа исследует поведение одноленточных машин Тьюринга с записью на ленте с двумя целями: первая цель — развить метод для описания вычислений на таких машинах и вторая— применить этот метод к проблеме нахождения хороших нижних границ времени, требующегося для распознавания различных множеств слов.
В разд. 2 дается понятие «следа» и изучаются свойства этого понятия, которые делают его важным аналитическим средством для одноленточных вычислений с записью на ленте.
В разд. 3 определяются нижние границы для времени вычисления. В частности, в разд. 3,А описывается множество слов, время распознавания которого должно быть более чем Cin2/logQ, однако не превосходит C2n2/logQ, где Ci и С2— соответствующие константы, Q — число внутренних состояний машины Тьюринга, распознающей это множество.
В разд. 3, В рассматривается более общее время вычисления вида Кпр, где К и р— действительные константы. Для времени вычисления этого вида может быть установлен следующий результат: каковы бы ни были числа р и q, где 1 -^ q<p ^2, существует множество слов, время распознавания которого пропорционально пр, однако его нельзя распознать за время пропорциональное п^, предполагая, что распознавание происходит на одноленточной машине Тьюринга с записью на ленте.
СЛЕДЫ
Определения. Напомним, что вычисления с записью на ленте начинаются с соответствующего входного слова, записанного на одну из лент машины. Ограничим наше рассмотрение машинами, имеющими только одну ленту. Эта лента должна быть использована не только для записи входных слов, но также и для любых промежуточных записей в процессе вычисления. Как было уже указано, удобно предполагать, что лента бесконечна вправо, но слева ограничена. Входное слово занимает конечный сегмент на крайнем левом конце ленты, а оставшаяся часть ленты пуста. Перед началом вычислений считывающая головка устанавливается на крайний левый квадрат входного слова. Можно потребовать, чтобы этот квадрат был помечен специальным символом, чтобы считывающая головка не сошла с ленгы. В вычислениях, рассматриваемых в этой работе, такой специальный конечный маркер не является необходимым, и мы не будем его рассматривать. Включение конечного маркера не потребует существенных изменений в дальнейшем обсуждении.
В этой работе термины лента и слово мы используем для обозначения двух различных понятий. Термин лента, если не оговорено противное, означает бесконечную цепь квадратов, в которые можно записывать некоторые символы. Если необходимо сослаться на часть ленты, то мы будем использовать термин сегмент ленты. В частности, если ta обозначает конечный сегмент на левом конце ленты и если 1ь означает оставшийся бесконечный сегмент той же ленты, то символ tatb можно использо-
вать для обозначения всей бесконечной ленты. Термин «слово», с другой стороны, означает последовательность символов, записанную на ленте в данный момент. Такая последовательность должна всегда иметь конечную длину. В большинстве случаев будет необходимо ссылаться только на слово, записанное на ленте машины Тьюринга перед началом вычислений. Тогда мы будем говорить о начальной ленте и входном слове, которое она содержит. Когда описываются вычисления на машинах Тьюринга, удобно считать, что считывающая головка движется по ленте, а лента остается неподвижной.
Зигзагообразная линия на рис. 1 показывает примерный путь считывающей головки в течение всего процесса вычисления. Мы
ШТГЕЕШТТШ^
Рис. 1. Путь вычислений»
будем обычно рассматривать этот путь как пройденный по самому входному слову и игнорировать способ, которым меняется слово в течение всего процесса вычисления. С другой стороны, нас будут интересовать внутренние состояния, в которые попадает машина на каждом шаге своих вычислений, и мы будем обозначать путь этими состояниями.
Рассмотрим теперь два соседних квадрата ленты, обозначенных, например, X и Y на рис. 1, и отметим точки в вычислении, в которых головка пересекает границу между двумя квадратами. Так как каждое вычисление начинается с того момента, когда считывающая головка находится на левом конце ленты, то каждое нечетное пересечение между двумя данными соседними квадратами должно быть пересечением слева направо; аналогично каждое четное йересечение должно быть справа налево. Пусть 5(f) —состояние машины в момент i-го пересечения границы между двумя квадратами. Тогда последовательность C = S(1), S(2),..., S(i),... назовем следом !), порожденным данной машиной Тьюринга на границе между двумя квадратами.
!) След соответствует понятию схемы, использованной Рабином [3]. [Понятие следа независимо ввел и исследовал Б. А. Трахтенброт [4*, 5*]. Он же и Я. М. Барздинь доказали утверждения, эквивалентные теореме 1 и следствию 1 [4*, 6*]. — Перее, и ред}
Содержательно след описывает способ, которым машина передает информацию посредством своих внутренних состояний, переходя с одной стороны границы на другую. Определение следов, связанных со всеми границами, которые машина достигает в процессе вычисления, эквивалентно определению каждого основного шага в этом вычислении. В частности, общее время вычисления равно общему числу пересечений, которое делает машина. Если число пересечений назвать длиной следа, то общее время вычисления равно сумме длин всех следов. Очевидно, машина остановится при данной начальной ленте тогда и только тогда, когда она порождает конечное число непустых следов, каждый из которых конечной длины.
Основные свойства. Хотя мы прежде всего интересуемся машинами, которые должны всегда в конце концов останавливаться независимо от начальной ленты, мы временно ослабим эти ограничения. Тогда машина с записью на ленте может реагировать на начальную ленту трояко: может остановиться и допустить ленту, может остановиться и отвергнуть ленту или может продолжать вычисления бесконечно. Две начальные ленты называются эквивалентными относительно данной машины тогда и только тогда, когда они либо обе допускаются машиной, либо обе отвергаются, либо на каждой из них машина никогда не закончит вычисления.
Теорема 1. Пусть tatb— начальная лента, состоящая из конечного сегмента ta и следующего за ним справа бесконечного сегмента ленты tb. Заметим, что tQ не обязательно совпадает с частью ленты, которая изначально непуста.
Аналогично пусть tctd— начальная лента, состоящая из конечного сегмента tc и следующего за ним справа бесконечного сегмента td.
Предположим, что tatb и tctd эквивалентны относительно данной машины Тьюринга М. Пусть Ci и С2— следы, порожденные машиной на границе между ta и tb и tc и td соответственно. Если Сх равен С^, то справедливы следующие утверждения.
Начальные ленты tQtb и tatd эквивалентны относительно данной машины М.
Вычисления, производимые над tatb и tatd, порождают следы на соответствующих границах частей лент ta, которые должны быть тождественными.
Вычисления, производимые над tatd и tctd, порождают следы на соответствующих границах частей лент td, которые должны быть тождественными.
Другими словами, часть /с ленты Ud можно заменить на tQ без изменения конечного результата на ленте, если след между ta и td не меняется. Рис. 2, а, б показывают типичные пути гипотетической машины Тьюринга на лентах tQtb и tctd. Если след, порожденный на границе между tQ и tb, равен следу, порожденному на границе между /с и td, как показано, тогда вычисление, произведенное на ленте tQtd, должно идти путем, показанным на рис. 2, в. Это изображение делает теорему интуитивно почти очевидной, и поэтому мы не хотим давать ее строгого доказательства. Приведем полезное следствие, почти непосредственно вытекающее из теоремы 1.
б6
Рис. 2. Иллюстрация теоремы 1.
Следствие 1. Если для начальной ленты txt2t$ след, порожденный данной машиной М на границе между /1 и t2, равен следу, порожденному на границе между t2 и t^ то (А) ленты txt2ts и tits эквивалентны относительно машины М; (В) ленты txt2t^ и txt2t2t^ эквивалентны относительно машины М.
Другими словами, если одинаковые следы встречаются по обе стороны одного и того же сегмента ленты, то этот сегмент может быть удален и соседние сегменты соединены без изменения конечного результата вычислений либо дополнительный экземпляр (или экземпляры) данного сегмента может быть вставлен внутрь без изменения конечного результата вычисления.
Доказательство. Часть (А). Пусть ta, tb, tc и td представляют соответственно сегменты ленты /ь t2t3, txt2 и /3. Тогда tatb и tctd — тождественные ленты (а именно txt2t^ и, конечно, будут эквивалентны относительно машины М. Тогда по теореме 1 tatb и tatd должны быть эквивалентны. Но tatb = txt2t^, a tatd = txt^
Часть (В). Пусть /а = ^2, tb^h, tc=tx и td = t2t^, и снова воспользуемся теоремой.
Хотя теорема 1 и следствие 1 достаточны для установления временных границ, обсуждаемых в следующем разделе, мы про-
ведем более детальное исследование идеи, затронутой в теореме. Этим мы можем добиться лучшего понимания соотношения между понятием следа и более привычным понятием внутреннего состояния в приложении к автоматам. Теорема 1 описывает ситуацию, в которой можно сегмент /с, являющийся левым концом ленты Ца, заменить другим сегментом ta без изменений результата вычислений. В частности, это может быть сделано, если существует вторая лента tQtb, которая эквивалентна К и для которой машина порождает тот же самый след в правом конце сегмента /о, что и в правом конце сегмента tc. Такие сегменты, как tQ, tCl встречающиеся на левом конце ленты, назовем левоконечными сегментами. Рассмотрим теперь отношение между двумя левоконечными сегментами tx и t^ выполняющееся тогда и только тогда, когда /2 можно всегда подставить вместо tx независимо от полного слова, в котором последний встречается. Очевидно, такая подстановка возможна только тогда, когда каждый след, встречающийся на конце tx, можно встретить на конце /2- При этом необходимо точное понимание процедуры, определяющей, может ли данный конечный след встретиться на правом конце данного левоконечного сегмента. Это невозможно сделать, рассматривая все ленты, содержащие данный левоконечный сегмент, так как, вообще говоря, необходимо было бы проделать бесконечное число вычислений, чтобы убедиться, что данный след не встречается на конце данного сегмента. Вместо этого для любой данной машины Тьюринга, конечного левоконечного сегмента t и конечного следа C = S(1), ..., S(X) мы можем провести следующий эксперимент.
Начнем эксперимент, помещая машину в начальное состояние и заставляя ее обозревать крайний левый квадрат L
Если машина, покидая сегмент t в i-й момент времени (КХ), находится в состоянии S(0, то переведем ее в состояние S(i+1) и отправим назад в самый правый квадрат t.
Если машина останавливается внутри t, или впадает в некоторый цикл внутри t, или покидает t таким образом, что правило 2 не выполняется, то эксперимент заканчивается.
Очевидно, такой эксперимент закончится через конечное число шагов. Если в конце эксперимента след на правом конце t есть в точности С, то говорим, что сегмент t имеет след С на своем правом конце. Если длина С нечетна, то в конце эксперимента машина находится вне сегмента L В этом случае С будет называться переходным следом для t. Если длина С четна, то в конце эксперимента машина находится внутри сегмента t. Если машина останавливается и выдает на выходе 1, то след С называем допускающим следом для t, в противном случае С называется недопускающим следом для t ‘
Теперь предположим, что каждый конечный след, принадлежащий данному левоконечному сегменту ленты Л, принадлежит некоторому другому сегменту /2. Далее предположим, что каждый непереходный след, допускающий для Л, допускающий и для /2. Тогда рассмотрим произвольную ленту, в которой /1 встречается как левоконечный сегмент и на которой машина производит конечные вычисления.
Из теоремы 1 следует, что /2 может быть заменен на /1 без изменения результата работы машины над первоначальной лентой или следов, встречающихся в части ленты справа от Л.
Наконец, предположим, что а) каждый след, принадлежащий /1, принадлежит и /2, и обратно; б) каждый непереходный след, допускающий для tx, допускающий и для /2, и обратно. Тогда левоконечные сегменты /1 и /2 можно взаимно заменять без изменения результата вычислений.
Классифицируя левоконечные сегменты ленты в соответствии со следами, которые они имеют, и в соответствии с теми из них, которые являются допускающими, можно показать, что эта классификация порождает классификацию входных слов, соответствующую некоторому автомату.
С. Простые приложения. Теперь поучительно рассмотреть специальный случай, в котором следы, порожденные машиной, не превосходят некоторой длины, скажем К. Другими словами, машина никогда нс проводит в одном и том же квадрате своей ленты более чем К единиц времени. Легко видеть, что если машина никогда не бывает в любом данном квадрате своей ленты более чем К раз, то существует лишь конечное число различных следов, которые могут встретиться в любом квадрате. Далее, существует только конечное число различных подмножеств этих следов. Если известно подмножество следов, которые могут порождаться машиной в данном квадрате ленты, тогда можно определить подмножество следов, которое может порождаться машиной в следующем квадрате справа. Следовательно, машина может точно с таким же успехом побывать в каждом квадрате точно один раз, передвигаясь по ленте слева направо в соответствии с подмножествами следов. Эта нить рассуждений приводит нас к следующей теореме.
Теорема 2. Если длина каждого следа в каждом вычислении данной одноленточной машины Тьюринга с записью на ленте не превосходит К, то существует автомат, распознающий в точности то же самое множество входных слов, что и данная машина Тьюринга1).
т) Утверждение теоремы 2 доказано Б. А. Трахтенбротом [4*]; в [7*] установлены близкие друг к другу верхняя и нижняя оценки для числа состояний автомата, существование которого утверждается в теореме 2.—Прим. перев. и ред.
Доказательство. Доказательство заключается в показе того, что множество слов, которое распознает данная машина Тьюринга, можно представить как объединение некоторого числа классов конечного право-инвариантного отношения эквивалентности.
Для любой данной машины Тьюринга и для любого данного конечного числа К существует не более конечного числа различных следов, длина которых не превосходит К. Далее, число подмножеств этих следов конечно.
Каждому конечному левоконечному сегменту ленты ставим в соответствие след длины К или меньшей длины, который он имеет на своем правом конце и который является либо переходным, либо допускающим, либо недопускающим; в соответствии с этим происходит разбиение таких сегментов на классы.
Теперь предположим, что два конечных левоконечных сегмента /1 и /2 принадлежат к одному и тому же классу, как только что описано. Тогда рассмотрим любые левоконечные сегменты ленты вида Мх, где tx— конечный сегмент со следом длины ^К. Очевидно, любой след, который принадлежит Л/х, будет также принадлежать и /2/х, и обратно, так как в эксперименте, описанном в разд. 2, В,/1 можно заменить на /2 без изменения следов в части tx. Далее, любой непереходный след, который является допускающим для txtx, будет допускающим также для /2/х и любой непереходный след, не допускающий для txtx, будет не допускающим также и для t^tx.
Таким образом, txtx и /2/х принадлежат одному и тому же классу левоконечных сегментов ленты. Так как это верно для любого /х, то вышеописанная классификация есть конечное право-инвариантное отношение эквивалентности.
Мы должны показать теперь, что множество допустимых входных слов есть объединение некоторого числа классов эквивалентности. Пусть слово р допустимо данной машиной Тьюринга. Если q— другое слово, то, в случае когда оно из того же класса эквивалентности, q должно быть допустимым машиной, так как мы видели, что элементы данного класса эквивалентности можно заменять друг на друга без изменения результата работы машины над лентой, содержащей данный левоконечный сегмент. Следовательно, если один элемент некоторого класса эквивалентности допустим, то каждый элемент этого класса должен быть допустим. Аналогично если некоторый элемент класса недопустим, тогда в этом классе ни один элемент не допустим. Отсюда следует, что множество допустимых слов образует объединение некоторого числа классов эквивалентности. Поэтому получаем, что множество допустимых слов можно распознать автоматом, что и требовалось доказать.
Теорема 2 устанавливает, что если некоторая машина Тьюринга тратит на посещение любого своего квадрата ленты не более чем некоторое фиксированное число единиц времени, то она может быть заменена автоматом.
Далее предположим, что максимальное время, которое затрачивает машина на посещение каждого квадрата, не ограничено, однако ограничено в среднем время на квадрат входного слова. Другими словами, предположим, что полное время вычисления на машине не превосходит Кп, где /г —длина входного слова. В таком случае машина может порождать на некоторых границах очень длинные следы, тогда как на других границах
Рис. 3. Лента с несколькими уровнями.Рис. 3. Лента с несколькими уровнями.
Рис. 3. Лента с несколькими уровнями.
Рис. 3. Лента с несколькими уровнями.
достаточно короткие. Но, несмотря на это, можно показать, что любую машину Тьюринга такого типа можно также заменить автоматом.
Прежде чем доказывать этот факт, заметим, что мы можем ограничить наше внимание машинами Тьюринга, которые никогда не покидают входных частей своих лент, т. е. частей лент, на которых написаны исходные слова. Предположим, что время вычисления машины М не превосходит Кп. Такая машина, конечно, не может посетить более чем (К— \)п пустых квадратов ленты. Построим теперь новую машину М\ ленты которой разделены на К уровней, как показано на рис. 3. Символы, которые могут встречаться теперь в квадратах новых лент, представляют упорядоченные комбинации из К символов первоначальных лент, по одному символу на каждом уровне клетки ленты. Верхний уровень новой ленты используется для записи входного слова, в то время как оставшиеся К— 1 уровней рассчитаны на (К—1)^ квадратов пустой ленты, которые может использовать машина М. Машина М' начинает работу только с символов, которые встречаются в верхнем уровне ее ленты, и работает точно так же, как и М в начале своих вычислений. Однако, если М пытается выйти за пределы входной последовательности в пустую часть ленты, М' возвращается обратно и работает в обратном направлении во втором уровне своей ленты. Если М
двигается за п-й квадрат пустой ленты, М' продолжает работать в правом направлении в третьем уровне своей ленты. В результате пустая часть ленты машины М складывается зигзагообразным образом во входную часть ленты. Хотя мы не даем деталей, ясно, что всегда возможно построить таким образом машину М', которая распознает то же самое множество входных слов, что и данная машина М.
Теорема 3, Если время работы одноленточной машины Тьюринга ограничено функцией Т^п)=Кп, где К — константа, тогда существует автомат, который распознает в точности то же самое множество входных слов, что и данная машина Тьюринга1).
Доказательство. Доказательство состоит в том, что показывается, что если полное время вычислений ограничено числом Кп, тогда время пребывания в любом квадрате ленты должно быть ограничено числом 2KQK-VK, где Q— число внутренних состояний. Тогда утверждение теоремы будет немедленно следовать из теоремы 2.
Предположим, что машина Тьюринга имеет Q внутренних состояний и устроена таким образом, что никогда не выходит за пределы входного слова. Затем предположим, что в процессе вычисления на некотором входном слове машина порождает след, длина которого больше чем 2KQK-VK. В частности, пусть /г0 — наименьшая длина входного слова, на котором машина порождает такой «длинный» след.
Выберем теперь некоторое входное слово длины п., на котором машина порождает след такой длины, и рассмотрим вычисление данной машины по преобразованию этого слова. Пусть s есть число следов в этом вычислении, длина которых меньше чем К. Имея в виду, что общее время вычисления Т равно сумме длин всех следов в вычислении, мы имеем
Кп. > Т (no) > 2QKK + К + (по - 1 - s) К,
отсюда
s>2QK
однако число различных следов длины, ме,ньшей чем К, есть
К-1
I1Qi<QK-L
1 = 1
так как данная машина имеет только Q состояний.
Следовательно, среди более чем 2QK границ, в которых след является «коротким», должны существовать по крайней мере три
!) В [4*] доказано, что теорема 3 остается верной для Т(п), таких, что lim Т (п) / (/г log /г) = 0. — Прим,, перев. и ред.
границы, в которых след одинаковый. Назовем эти границы bx,b2 и Ь^ и пусть Ьо— граница, в которой имеется «длинный» след.
По крайней мере две из границ Ьх, Ь2 и Ь^ должны находиться по одну и ту же сторону от Ьо. Предположим, что Ьх и Ь2 расположены так, как показано на рис. 4.
Теперь построим новое входное слово, удаляя часть первоначального слова между Ьх и Ь2 и соединяя концы кусков друг с другом. В соответствии со следствием 1 следы, которые порождает данная машина, производя свои вычисления на новой лен-
Удаление
Рис. 4. Иллюстрация теоремы 3.
те, должны быть тождественны тем следам, которые порождаются на соответствующих границах старой ленты. В частности, так как Ьо находится вне части старой ленты между Ьх и Ь2) то вычисления на новой ленте порождают след, длина которого больше чем 2KQK-VK. Длина нового слова меньше чем п0. Однако п0 определялось как наименьшая длина входного слова, на котором машина порождает «длинный» след. Следовательно, предположение, что на некотором конечном входном слове машина порождает след длины больше чем 2KQKA-K, ведет к противоречию. Следовательно, нет ни одного следа, порожденного машиной, длины, большей чем 2KQKA-K, независимо от входного слова, представленного машине. В соответствии с теоремой 2 должен существовать автомат, распознающий то же самое множество входных слов, что и данная машина Тьюринга. Ч. т. д.
Теореме 3 легко дать следующую интерпретацию.
Предположим, что некоторое множество входных слов можно распознать одноленточной машиной Тьюринга, время вычисления которой для входного слова прямо пропорционально длине соответствующего входного слова.
Тогда это же множество слов можно распознать одноленточной машиной Тьюринга, время вычисления которой для входного слова в точности равно длине этого слова. Эта последняя
машина Тьюринга просто перемещается слева направо по своей ленте подобно автомату. Таким образом, вычислительные возможности одноленточных машин Тьюринга не возрастают, если разрешить времени вычисления изменяться от п до Кп.
Интересно сравнить этот результат с соответствующими результатами относительно других способов вычислений. Используя методы Хартманиса и Стирнза [2], можно показать, что если некоторое множество слов можно распознать на одноленточной машине Тьюринга за время КТ^п^ тогда его можно распознать за время Т(п), предполагая Т^>п2. Другими словами, если время вычисления достаточно большое (больше чем п2), то увеличение времени вычисления на постоянный множитель не увеличивает вычислительных возможностей одноленточной машины Тьюринга. Кажется разумным предположение, что это верно для любой функции Г(п), однако понятие следа, по-видимому, неудобно в установлении этого результата для Т^>п, а методы Хартманиса и Стирнза, по-видимому, неудобны для Т^-Сп2. В настоящее время неизвестно, возрастают ли вычислительные возможности машины Тьюринга при увеличении времени вычисления от Т^ до КТ^, если п2 ^ Т ^ > п. Сходные вопросы можно поставить для двуленточных машин с записью на ленте. Снова при увеличении времени вычисления от Т^ до КТ(п) вычислительные возможности машины не возрастают при Т(п)>п2. Однако при увеличении времени вычисления с п до Кп, очевидно, возрастают и вычислительные возможности двуленточных машин. Где в точности между пип2 использование постоянного множителя не меняет вычислительных возможностей машины, еще не известно, однако очевидно, что прибавление второй ленты изменяет эти возможности для машин с записью на ленте.
Дальнейшие различия между одно- и двуленточными машинами излагаются в следующем разделе.
ВРЕМЕННЫЕ ГРАНИЦЫ ДЛЯ ОДНОЛЕНТОЧНЫХ ВЫЧИСЛЕНИЙ
А. Распознавание множества S. Мы рассмотрим теперь проблему определения верхних и нижних границ времени, необходимого для распознавания некоторых множеств входных слов на одноленточных машинах с записью на ленте. Во-первых, приведем пример множества слов, для которого можно показать, что минимально необходимое время вычисления Т(п) заключено в границах
С i n2/log Q < Г (n) < C2n2/log Q,где п— длина входного слова и Q — число внутренних состоя-
ний машины, производящей эти вычисления. Таким образом, для этого множества слов оптимальное время вычисления растет как п? и может быть определено с точностью до постоянного множителя. С помощью некоторой модификации этого множества получаем множества, оптимальное время по вычислению которых растет как любая степень в пределах между 1 и 2 и может быть определено с точностью до постоянного множителя.
Слова, рассматриваемые в этом разделе, суть слова в алфавите {0, 1, 2). Удобно предполагать, что слова состоят из блоков 0 и 1, разделенных блоками из одних 2. Так, слово 010112022201022 состоит из шести блоков.
Пусть теперь множество S определяется как множество слов в алфавите {0,1,2}, которые удовлетворяют следующим условиям.
Каждое слово состоит в точности из трех блоков: блок изО и 1, следующий за ним блок из 2 и следующий за ним блок из 0 и 1.
Длины всех трех блоков равны между собой.
Слово из 0 и 1, стоящее в первом блоке, равно слову из 0 и 1, стоящему в третьем блоке.
Так, слова 020, 110222110 и 001102222200110 принадлежат S, а 002, 1122110, 1212 и 010222011 не принадлежат S.
Нетрудно построить одноленточную машину Тьюринга, которая распознает множество S.
Возможно, наиболее естественно предложить машине проделать последовательность сквозных прохождений входного слова слева направо. При каждом таком прохождении машина сравнивает один символ из первого блока с соответствующим символом третьего блока и отмечает при этом один символ во втором блоке. Таким образом, машина может определить, содержит ли слово три блока одинаковой длины и равен ли первый блок третьему.
Общее время, требующееся при таком вычислении, равно произведению числа прохождений на число шагов при каждом прохождении. Если входное слово допускается, то каждое прохождение требует для перемещения туда и обратно 4^/3 шагов и должно быть произведено п/3 прохождений. Таким образом, мы можем ожидать, что общее время вычисления приблизительно равно 4п2/9. Незначительно большее время может потребоваться при рассмотрении недопустимого входного слова. Хотя мы не даем конструкции, существует машина Тьюринга, имеющая восемь состояний, распознающая множество S и работающая при этом вышеописанным образом. Можно показать, что время 4
ее работы Т(/г) =-д-/г2 + /г. Вычисления станут быстрее, если сконструировать такую машину, которая в течение одного прохож-
дения сравнивает два или более символов из первого и третьего блоков. В частности, если машина при каждом прохождении сравнивает к символов, то число прохождений, а следовательно, и общее время вычисления уменьшаются приблизительно в к раз. Но такая схема вычисления требует, конечно, много состояний. Не вдаваясь в детали, можно заметить, что если при каждом прохождении машина сравнивает к символов, то ее можно устроить с не более чем (к-А-\^2к+х состояниями. Можно показать, что соответствующее время вычисления при этом не превосходит
Т^г + 4„ (для 8).
где Q — число внутренних состояний и логарифм берется по основанию 2. Таким образом, множество S можно распознать на одноленточной машине Тьюринга с записью на ленте, время вычисления которой для больших п растет прямо пропорционально п? и обратно пропорционально log Q, равному числу бит внутренней памяти.
Попытаемся теперь найти хорошую нижнюю границу для наилучшего возможного времени вычисления в терминах числа состояний и длины входного слова.
Предположим, что нам дана одноленточная машина Тьюринга с записью на ленте, имеющая Q внутренних состояний и распознающая множество S.
В последующем обсуждении мы будем рассматривать только допустимые входные слова некоторой произвольно выбранной длины п, где п кратно 3. Существует, конечно, ровно 2п/3 таких слов. Для каждого из таких слов машина, проводя вычисления, порождает конечные следы в каждой из (п—1) границ внутри слова. Посмотрим, какие из этих следов должны быть различными и какие могут быть одинаковыми. Так как мы рассматриваем только допустимые слова, то из теоремы 1 и следствия 1 следует, что два следа могут быть одинаковыми в том и только в том случае, если результат соединения сегмента ленты, находящегося слева от одного из следов, с сегментом ленты, находящимся справа от другого из следов, дает допустимое слово. Легко показать, что это может произойти, только если два следа встречаются на соответствующих местах внутри первого (или третьего) блока двух различных вычислений и если слова, находящиеся слева (справа) от этих двух следов, тождественны. В таком случае, разрезая две начальные ленты в рассматриваемых границах и меняя их левые (правые) концы, мы не изменяем всего слова в целом. При любом другом расположении двух следов, разрезая начальную ленту или ленты в некоторых границах и соединяя концы, получаем по крайней мере одно
недопустимое слово. Следовательно, следы, встречающиеся на этих границах, должны быть различными.
В частности, все следы, встречающиеся на границах внутри центрального блока допустимых слов длины я, должны быть различными. Если мы рассмотрим две границы внутри центрального блока одного и того же слова, то, удаляя сегмент между границами, получаем в результате допустимое слово без достаточного числа двоек. Если мы рассмотрим две границы внутри центрального блока различных слов, то, меняя концы, получим в результате слово, в котором не совпадают первый и третий блоки. Если бы следы на этих двух границах были тождественны, то это противоречило бы следствию 1 или теореме 1. Мы можем теперь использовать этот факт при определении нижней границы для максимального времени, которое должна затратить данная машина при работе над некоторым допустимым словом длины п. Так как использованные доводы не принимают во внимание следы, встречающиеся в первом и третьем блоках, то нельзя утверждать, что мы получим наилучшую возможную границу. Однако рассмотрение всех следов требует довольно длинного доказательства, в то время как время вычисления при нашем подходе возрастает в два раза.
Пусть s означает число различных следов, длина которых не превосходит X = /z/(31ogQ)—1, где Q — число состояний данной машины, а логарифм берется по основанию 2. Заметим, что число различных следов длины 1 есть Q, число следов длины два есть Q2 и т. д. Следовательно,
s= 5 q-^q^1 = Q»/(31°g<2) = 2"/3 (для Q>2).
Z = 1
Однако число допустимых слов длины п в точности равно 2^/3, которое больше чем s. Так как один и тот же след не может встречаться в центральной части при двух различных вычислениях, то мы видим, что не достаточно одних только «коротких» следов, чтобы они встречались в центральной части при каждом вычислении. -
Отсюда существует такое вычисление, преобразующее допустимое слово длины п, для которого длина каждого следа в центральной части превосходит X.
Количество времени, которое должна затратить данная машина при этом вычислении, равно сумме длин следов, встречающихся в этом вычислении. Соответственно количество времени, затраченное машиной в центральном блоке слова, есть по крайней мере (м/3)(Х+1), так как в этом блоке существует zz/З точек и в каждой точке длина следа Х+1 или более. Отсюда общее время вычисления по крайней мере n2/(9 log Q).
Если учесть все следы в вычислении, преобразующем допустимое входное слово длины п, то эту нижнюю границу можно удвоить. Таким образом, если п кратно 3, должно существовать некоторое допустимое слово длины п, над которым машина работает по крайней мере 2n2/(91ogQ) единиц времени.
Итак, если множество S распознается одноленточной машиной Тьюринга с Q состояниями, то соответствующее время вычисления должно превосходить 2n2/(9 log Q), где п кратно 3, однако может не превосходить 2n2/log Q + 4п. В частности, для Q = 8 время вычисления должно превосходить 2п2/27, в то время как мы знаем, что можно построить машину с восемью состояниями, время работы которой не превосходит 12/г2/27 + /1. Таким образом, для больших п оптимальное время вычисления на машине с восемью состояниями определяется в пределах коэффициента 6.
Поучительно постараться определить, хотя бы неформально, почему верхняя и нижняя границы различаются множителем 6.
Для того чтобы это сделать, нужно соответствующим образом понять задачу одноленточной машины по передаче данных, когда она проходит через различные границы своей ленты. Уменьшение времени вычисления достигается тем, что каждый индивидуальный член следа должен нести больше информации. Конечно, фиксируя число внутренних состояний, мы фиксируем также максимальный «объем» информации, который может быть передан каждым отдельным членом следа. Если достигается наименьшее возможное время вычисления, то каждый член следа используется на полную мощность. Отсюда для любого выбора внутреннего состояния и целого числа I должен найтись след, в котором данное состояние встречается на r-м месте.
Возвращаясь к вышеописанному методу для распознавания множества S, мы видим, что некоторые члены следов не используют полностью своих возможностей по передаче информации.
В частности, всякий раз когда машина двигается справа налево, она, завершив одно прохождение, просто возвращается в начальную точку следующего, и полезной информации почти не передается. Таким образом, все члены следов с четными номерами почти полностью затрачиваются впустую.
Ввиду уже одного этого факта мы должны ожидать, что требуемое время вычисления при настоящем методе будет почти в два раза больше, чем данное нижней оценкой.
Производительность реализации уменьшается и другими «внутрисимвольными» ограничениями, которые машина накладывает на свои следы. Эти ограничения возникают главным образом из-за необходимости машине знать, в каком блоке входного слова находится ее считывающая головка. Таким образом*
обязанность машины вести «домашнее хозяйство» отрывает ее от основной работы по передаче информации о входном слове, и это значительно уменьшает вычислительную производительность машины. Способом борьбы с этим обстоятельством должно быть изменение метода, использованного при распознавании множества S. В случае модификации вычислительной схемы и значительного расширения внешнего алфавита становится возможным сконструировать машину с восемью состояниями, время вычисления которой приблизительно равно удвоенной данной нижней границе. Таким образом, в этом частном примере можно получить относительно высокую производительность передачи информации; первоначально данная нижняя граница будет относительно хорошей.
Нужно помнить, однако, что доводы, использованные для получения нижней границы времени вычисления, не учитывают того обстоятельства, какие встречающиеся следы может породить одноленточная машина Тьюринга. Так как модель машины Тьюринга сама налагает ограничения на следы, которые могут встречаться в данном вычислении, то нельзя ожидать, что аргументы, аналогичные аргументам этого раздела, приведут к хорошей нижней оценке для всех проблем распознавания1).
Проблема распознавания множества S интересна по нескольким причинам.
Во-первых, она иллюстрирует приложение понятия следа к проблеме определения минимального времени вычисления. Во- вторых, она дает специфический пример вычислительной проблемы, для которой можно получить достаточно близкие верхние и нижние границы времени. В-третьих, она дает некоторое представление о соотношении между следами, данной вычислительной схемой и «производительностью» этой схемы. Наконец, она дает информацию о соотношении скоростей одно- и двуленточных машин, которая рассматривается ниже.
Рассмотрим проблему построения двуленточной машины Тьюринга с записью на ленте, которая распознает множество S. Такая машина начинает свои вычисления, если входное слово записано на одной из ее лент, называемой входной лентой. Вторая лента, называемая внешней лентой, перед началом вычислений полностью пуста. Простой способ выполнения желаемого вычисления состоит из следующих трех шагов.
Шаг 1. Машина продвигает обе свои ленты справа налево, переписывая первый блок входного слова на внешнюю ленту. Общее время, требующееся для этого шага, равно длине первого блока.
Шаг 2. Машина продолжает двигать входную ленту налево, но теперь внешняя лента продвигается слева направо, так что машина проходит назад над словом, которое только что было записано на этой ленте.
Таким образом, машина сравнивает длину второго блока (входной ленты) с длиной первого блока (внешней ленты). Если длины не одинаковы, вычисление немедленно прекращается. Если длины одинаковы, машина обозревает первый символ третьего блока входной ленты и первый символ первого блока внешней ленты. В любом случае время, необходимое для этого шага, не превосходит числа символов во втором блоке входного слова.
Шаг 3. Машина продвигает обе ленты справа налево, сравнивая слово, которое находится в третьем блоке (входной ленты), со словом, которое находится в первом блоке (внешней ленты). Время, необходимое для этого шага, не превосходит числа символов в третьем блоке входного слова. Таким образом, если п — длина всего входного слова, общее время, необходимое для вычисления, не более п; время вычисления ограничено, конечно, функцией T^=n.
Итак, для приведенного примера время наилучшего вычисления, которого можно достичь в случае одноленточной машины с записью на ленте, пропорционально квадрату времени наилучшего вычисления, которого можно достичь в случае двуленточной машины. С другой стороны, из работы Хартманиса и Стирнза [2] известно, что если данная двуленточная машина завершает свои вычисления за Т2 (ц) единиц времени, то должна существовать одноленточная машина, которая завершает свои вычисления за время С^Дп)]2, где С — константа. Другими словами, переходя от двуленточной машины к одноленточной, никогда не нужно требовать более чем квадрата времени вычисления. Однако теперь мы имеем пример, в котором квадрат необходим. Таким образом, «закон квадрата» Хартманиса — Стирнза не может быть, вообще говоря, улучшен.
В. Порядок скорости роста для других множеств. Множество S есть пример проблемы распознавания, для которой необходимое время вычисления растет пропорционально п2 и которую можно разрешить за время, пропорциональное п2. Таким образом, мы можем считать п2 «порядок скорости роста»,
связанным с распознаванием на одноленточной машине Тьюринга. В этом разделе мы вкратце рассмотрим проблемы распознавания с другими порядками скорости роста, в частности порядками скорости роста вида где р— рациональное число между 1 и 2.
В качестве первого примера мы хотим исследовать множество входных слов, время распознавания которого растет как пХ Это множество аналогично множеству S и отличается от него относительными длинами трех блоков. Новое множество, обозначенное как множество R, состоит в точности из тех слов, которые удовлетворяют каждому из следующих условий.
Каждое слово состоит в точности из трех блоков: блок из 0 и 1, следующий за ним блок из 2 и следующий за ним блок из 0 и 1.
Пусть п обозначает длину всего слова, а х— длину первого блока. Тогда
х есть степень 2,
п равно х2.
Слова, находящиеся в первом и третьем блоках, тождественны. (Отсюда следует, что первый и третий блоки имеют одинаковую длину.)
Таким образом, слово 0111222222220111 принадлежит множеству R, в то время как 011122220111 не принадлежит R, так как его длина не равна квадрату длины первого блока. Множество R удобно распознавать машиной, вычисления которой состоят из двух последовательных стадий. На первой стадии машина определяет, удовлетворяются ли условия 1 и 2; на второй стадии определяется, удовлетворяется ли условие 3. Условие 1 можно очень просто проверить, проходя ленту один раз, на что требуется только п единиц времени. Условие 2(A) эквивалентно требованию, что logx есть целое число, в то время как условие 2(B) эквивалентно требованию, что log х = (1/2) log п. Следова-
1оепрохождение | V | |v | | У | | У | I У I IУ I
2ое прохождение |у|у|у| |у|у|у| |у|у|у|
3ье прохождение [y^IZIZIZE^^
^прохождение [j^CZIZEZ]^^
Р ц с. 5, Метод для определения логарифма,
тельно, машина, построенная для проверки условия 2, вычисляет логарифмы х и п.
Машина, вычисляющая целую часть логарифма по основанию 2 от длины блока ленты, проделывает последовательность сквозных прохождений блока. При каждом прохождении она отмечает специальным символом первый, третий, пятый и т. д. ранее не отмеченные квадраты, как показано на рис. 5. Число прохождений, необходимых для того, чтобы отметить все квадраты, на единицу больше, чем целая часть от логарифма длины этого блока. Далее, длина блока будет степенью 2 (и ее логарифм будет целым) тогда и только тогда, когда правый крайний квадрат в блоке отмечается последним.
Машина, определяющая, удовлетворяется ли условие 2, должна выполнять две маркерные операции: одну над целым словом, другую над первым его блоком. Эти две операции можно различить, используя различные маркерные символы. Более удобно сконструировать машину так, что она делает два прохождения по целой ленте для каждого прохождения первого блока. Тогда условие 2 удовлетворяется тогда и только тогда, когда две маркерные операции завершаются на одном и том же прохождении и в каждом случае последний символ отмечается на последнем прохождении. Каждое прохождение требует самое большее 2п единиц времени, и максимальное число необходимых прохождений пропорционально логарифму п. Таким образом, общее время, необходимое для проверки условий 1 и 2, не более чем ctinlogrz, где <xi — константа. Наконец, условие 3 можно проверить способом, аналогичным использованному при распознавании множества S. Машина опять делает последовательность прохождений ленты и при каждом прохождении сравнивает один символ первого блока с одним символом из третьего блока. Время, требующееся на каждое прохождение, меньше чем 2м, в то время как число прохождений х = п?^. Таким образом, время, необходимое для проверки условия 3, меньше чем ^ri1^ и время, необходимое для полного вычисления, меньше чем 2n^ + а^ log п, которое меньше чем а^к- Другими словами, множество R можно распознать за время, растущее так же, как и п^2. Что порядок скорости роста п3<2 необходим для распознавания R, можно установить с помощью приемов, аналогичных использованным в предыдущем разделе. Если мы не касаемся конкретного коэффициента пропорциональности, то достаточно рассматривать только следы, которые порождаются в центральном блоке допустимых слов длины п. Заметим, что существует в точности 2п различных допустимых слов длины п (предполагая п степенью 4). С другой стороны,
число различных следов, длина которых не превосходит
р, = n'/i/log Q — 1, есть 2 Q* <Q^+1 = 2" 2 (для Q^2).
Z = 1
Таким образом, коротких следов меньше, чем вычислений, и некоторое вычисление должно иметь в центральном блоке только следы, длина которых больше чем ц. Так как число границ в центральном блоке по крайней мере п/2, то общее время, требующееся для этого вычисления, по коайней мере
^) = ^+l)|=2^Q-
Другими словами, для любого фиксированного числа состояний время вычисления, необходимое для распознавания множества л, должно расти пропорционально rt*\
Определение множества R можно теперь модифицировать так, чтобы описанные множества имели различные порядки скорости роста в интервале от п до п2.
Следующие условия определяют множества слов, порядок скорости роста которых п^^, где q, г — целые и q < г;
Каждое слово состоит в точности из трех блоков: блок из О и 1, следующий за ним блок из 2 и следующий за ним блок из 0 и 1.
Пусть п обозначает длину всего слова, и пусть х обозначает длину первого блока. Тогда
х есть степень 2?.
х = п>.
Слова, находящиеся в первом и третьем блоках, равны.
Машину, распознающую такое множество, можно сконструировать почти таким же способом, что и машину, распознающую множество R. Как и прежде, условие 1 совсем легко проверяется. Условия 2(A) и 2(B) одновременно эквивалентны следующим требованиям:
(1Д?) log х = (1 /г) log /г = целое.
Следовательно, в то время как машина вычисляет логарифмы х и п. она выполняет последовательность из г прохождений целого слова, затем q прохождений первого блока, затем снова г прохождений целого слова и т. д. Условие 2 удовлетворяется тогда и только тогда, когда (а) маркерная операция для целого слова заканчивается после некоторого целого числа к последовательностей из г прохождений;
маркерная операция для первого блока заканчивается после того же целого числа к последовательностей из q прохождений;
на последнем шаге каждой маркерной операции отмечается последний квадрат соответствующего сегмента ленты, т. е. logx и log п — целые числа.
Условие (3) можно проверить обычным образом. Общее время вычисления не более чем
а4л log п + ауг Vtqlr^ ^ а6гг1+^.
То, что порядок скорости роста п^чк необходим для распознавания данного множества, можно показать способом, аналогичным тому, который использовался для множества R.
С. Общие результаты. Результаты, полученные в двух предыдущих разделах, можно объединить в следующую теорему.
Теорема 4. Для любого рационального числа р в интервале 1 < р 2 существует множество входных слов Sp, такое, что (а) Sp можно распознать за время вычисления, меньшее чем
С\{р, QW>
Sp нельзя распознать за время вычисления, меньшее чем С2(р, Q)nP,
где Ci и С2— функции только от р и числа внутренних состояний, используемых при вычислении^.
Следствие 4. Если р и q— два действительных числа в интервале \^.q<p^,2, тогда существует множество входных слов, которое может быть распознано за время вычисления, пропорциональное пр, и не может быть распознано за время вычисления, пропорциональное пч.
Доказательство. Выберем, во-первых, такое рациональное г, что q <г < р. Тогда в соответствии с теоремой 4 должно существовать множество слов, которое можно распознать за время СДг, Q)nr, однако нельзя распознать за время C2(r, Q)nr. Так как Сх (г, Q^nT < Сх ^r, Q)nP, то это множество, конечно, можно распознать за время, пропорциональное пр. Теперь предположим, что существует некоторая машина с Q состояниями, которая распознает то же самое множество за время Сп^. Однако для достаточно большого п Сп^ < СДг, Q)nr, что противоречит предположению. Таким образом, это множество нельзя распознать за время вычисления, пропорциональное п^, ч. т. д.
Как ранее подчеркивалось, кажется разумным предположение, что если некоторое множество входных слов можно распознать на одноленточной машине Тьюринга с записью на ленте за время КТ^, тогда его можно также распознать за время Т^ при условии Т^^ п. Другими словами, кажется разумным предположить, что всякое вычисление можно ускорить в
постоянное число раз, используя дополнительные внутренние состояния. Однако, согласно теореме 4, это есть наилучшее ускорение, которое можно получить для произвольной проблемы распознавания, по крайней мере в интервале времени вычисления от п до п2.
Кроме того, допустимое время не нуждается в очень сильном возрастании для того, чтобы обеспечить машинам способность распознавать новые множества. Согласно следствию 4, увеличение любой временной границы пр (1^/><2) всего в пе раз (е > 0) расширяет вычислительные способности одноленточных машин. Итак, иерархия классов сложности (Хартманис и Стирнз, [2]) всюду плотна по крайней мере в интервале от п до п2.
4. ЗАКЛЮЧЕНИЕ
Следы дают удобное средство описания способа, которым в одноленточной машине Тьюринга передается информация из одной части ленты в другую. Их роль можно сравнить с ролью внутренних состояний автомата.
Наличие данного состояния в автомате определяет один класс из конечного числа классов, который содержит входное слово, полученное машиной. Наличие данного следа при вычислении на машине Тьюринга определяет два класса: один, который содержит часть начальной ленты слева от следа, и другой, который содержит часть начальной ленты, лежащей справа от следа. В каждом случае определяется один класс из бесконечного числа классов.
Таким образом, внутреннее состояние и след дают некоторую информацию о входном слове, которое поступило в соответствующую машину. В то время как внутреннее состояние дает информацию только о слове, которое встречается по одну сторону от границы (прошлое), след дает информацию о словах, которые встречаются по обе стороны от границы. Далее, состояние автомата может обозначать только конечное число предшествующих классов, в то время как след машины Тьюринга может обозначать бесконечное число пар классов слов. Когда мы работаем с автоматом, часто можно сделать вывод, что два особым образом выбранных входных слова должны привести машину в различные внутренние состояния для того, чтобы машина в дальнейшем вела себя надлежащим образом. Почти таким же образом часто возможно сделать вывод, что следы, встречающиеся на особым образом выбранных границах в одном или более вычислениях, должны быть различны, для того чтобы машина Тьюринга, их порождающая, вела себя соответствующим образом для всевозможных входных слов. Знание того, что состояния, получающиеся в результате некоторых вход-
ных слов, должны быть различны, дает нам возможность установить границу числа состояний автомата. Знание того, что некоторые следы должны быть различны, также дает нам возможность установить нижнюю границу времени, требующегося для вычислений на одноленточной машине Тьюринга. К сожалению, такие границы обычно не так просто получить, как аналогичные границы для числа состояний автомата.
Временные границы, полученные рассмотрением следов, не обязательно должны быть близкими. Существуют две причины для этого. Во-первых, не всегда целесообразно принимать во внимание все различные следы, которые существуют среди следов, порождаемых данной машиной Тьюринга. Так, может быть, необходимо не учитывать часть работы машины при получении нижней границы времени вычисления. Во-вторых, доводы, использованные для получения границ, предполагают, что машина использует свои следы для передачи информации с максимальной эффективностью. Практически это не всегда возможно либо потому, что машина должна вернуться, «идя с пустыми руками» из некоторой отдаленной части своей ленты, либо потому, что она должна затратить значительное время на организацию или на кодирование данных для приведения их к виду, в котором они могут быть использованы в другой части ленты.
Это последняя проблема, проблема кодировки данных в удобной форме, мешает использованию очень полезной идеи следа для проблем, требующих времени вычисления больше чем п2. Так, рассмотрим экстремальный случай, в котором все следы во всех вычислениях на всевозможных входных словах длины, меньшей либо равной п, должны быть различны. Даже в этом случае доводы, использованные в предыдущем разделе, требуют среднего времени вычисления, растущего так же, как п2. Это максимальная скорость роста при идеальных условиях для сообщения каждому квадрату ленты полной информации о символах, первоначально записанных в каждом другом квадрате ленты. Это, конечно, хитрость, так как просто сообщения этих данных недостаточно. Информация должна быть передана в такой форме, чтобы она могла быть правильно интерпретирована машиной в точке, в которой делается вывод относительно допустимости или недопустимости слова. Так как этот вывод должен быть сделан сведением к устройству с конечным числом состояний (чьи входы есть состояния машины Тьюринга, а внутренние состояния есть символы ленты), то размер каждого отдельного следа ограничен. В таких случаях длина следа может быть много больше длины, определяемой рассмотрением только передачи данных, и вообще время вычисления может быть намного больше, чем определяемое доводами в разд. 3. Хотя идею следа
можно распространить на двуленточные машины с записью на ленте, но опа, по-видимому, неудобна для получения временных границ для таких машин. Возможно, наиболее уместный прием для рассмотрения вычислений на двуленточной машине — считать, что считывающая головка двигается в плоскости; координаты точки в этой плоскости определяются положением головки на каждой из двух лент. Тогда возможно определить след как последовательность внутренних состояний, в которых машина входит в данный квадрат на плоскости и выходит из него. К сожалению, кажется, нет прямых аналогов теоремы 1 или следствия 1, которые применимы к случаю плоскости, и, следовательно, весь метод нахождения нижних границ не проходит. Несмотря на ограниченную область приложения, понятие следа может быть использовано для получения определенных результатов о некоторых вычислениях на машинах Тьюринга. Разумеется, класс одноленточных машин Тьюринга с записью на ленте — один из немногих классов машины Тьюринга, для которых могут быть сделаны такие сильные утверждения, как теорема 4. Наиболее важным результатом является то, что этот класс машин Тьюринга является единственным, для которого годится любая идея, отражающая возможности и способности концепции конечного числа внутренних состояний.
ЛИТЕРАТУРА1)
Yamada Н., Real-time computation and recursive functions not real-time computable, IRE Trans. Electron. Computers, EC-11 (1962), 753—760. (Cm. настоящий сборник стр. 139—155.)
Hartmanis J., Stearns R. E., On the computational complexity of algorithms, Trans. Am. Math. Soc., 117, № 5 (1965), 285—306. (Русский перевод: Кибернетический сборник (новая серия), вып. 4, 1967.)
R a b i n М. О., Real-time computation, Israel J. Math., 1 (1963), 203—211. (См. настоящий сборник стр. 156—167.)
. T р а х т е н б р о т Б. А., Тьюринговы вычисления с логарифмическим замедлением, Алгебра и логика, Семинар, 3, № 4 (1964), 33—48.
. Трахтенброт Б. А., О нормированных сигнализирующих для тьюринго- вых вычислений, Алгебра и логика, Семинар, 5, № 6 (1966), 61—70.
. Б а р з д и н ь Я. М., Сложность распознавания симметрии на машинах Тьюринга, Проблемы кибернетики, вып. 15, 1965, 245—248.
. Ф р е й в а л ь д Р. В., О порядке роста точных временных сигнализирующих для тьюиринговых вычислений, Алегбра и логика, Семинар, 5, № 5 (1966), 85—94.
. Б р е й т б а р т Ю Я., К о з м и д и а д и В. А., О двух подклассах машин Тьюринга, сводимых к конечным автоматам, ДАН СССР, 187, № 1 (1969), 9—10.
За период, прошедший со времени написания этой работы, получено довольно много результатов, примыкающих к затронутой автором тематике. На ряд статей даются ссылки в подстрочных примечаниях (они дополнительно внесены в список литературы и отмечены звездочками), некоторые работы упомянуты в предисловии и в добавлении редактора к первому разделу настоящего сборника. — Прим. ред.'
ВЫЧИСЛЕНИЯ НА МАШИНАХ ТЬЮРИНГА
СО ВХОДОМ 9
Ф. К. Хенни
ВВЕДЕНИЕ
Одной из мер сложности функции является время, необходимое для вычисления этой функции на машине Тьюринга. Так как конкретная модель машины Тьюринга может существенно повлиять на время вычисления, то часто различают вычисления «с записью на ленте» и «со входом». Коротко говоря, при вычислении с записью на ленте все (конечное) слово входных символов должно быть написано на одной из машинных лент до начала вычисления, в то время как при вычислении со входом символы входного слова поступают в машину последовательно. Некоторые аспекты машин с записью на ленте обсуждались в предыдущей работе [1]; настоящая же работа касается лишь машин со входом.
Машина со входом начинает вычисление на пустых лентах и получает входные символы по одному за каждый шаг до специального заключительного символа. В ответ на каждый входной символ машина должна выработать соответствующий выходной символ на специальной выходной ленте. Между получением входного символа и выдачей соответствующего выходного символа машина должна выполнить некоторое число вычислений. Однако (+1)-й входной символ должен поступать в машину тогда и только тогда, когда машина выработала i-й выходной символ. Таким образом, машина со входом может мыслиться как реализующая преобразование входных последовательностей в выходные последовательности, в которых i-й символ выходной последовательности зависит только лишь от первых I символов входной последовательности. Если выходной алфавит машины есть {0, 1}, то эту машину можно рассматривать как распознающую множество входных последовательностей, для которых последний символ в соответствующей выходной последовательности есть 1.
На каждом шаге вычисления машина со входом способна изменить символы, появляющиеся под ее читающими головками,
сдвинуть каждую из ее лент на один квадрат в любом направлении и переменить внутреннее состояние. Общее число шагов, которые машина должна совершить, чтобы выдать выходные символы, связано с данной входной последовательностью и называется временем вычисления для этой входной последовательности. Если Т (zz) — функция, такая, что время вычисления для каждой входной последовательности длины п меньше или равно Т(п), то говорят, что машина работает с временной границей Т^пу Входно-выходное преобразование, реализуемое машиной, будет называться «вычислимым с границей (или за время) 7(zz)»; множество последовательностей, распознаваемых машиной, будет называться «распознаваемым с границей (или за время) Т^п)».
Эта работа касается определения нижних границ времени вычисления некоторых входно-выходных преобразований и взаимосвязи между временем вычисления и размерностью лент машины Тьюринга. В разд. 2 рассматриваются одномерные ленты и описывается входно-выходное преобразование, для которого можно найти хорошую нижнюю границу времени вычисления. Метод, использованный при установлении этой границы, применяется в разд. 3, где показано, что увеличение размерности ленты от 1 до 2 иногда может значительно уменьшить время, требуемое на выполнение преобразования. Этот результат обобщается в разд. 4, где показано, что для многомерных лент «закон квадрата» Хартманиса — Стирнза [2, 3] не может быть значительно улучшен и что имеется существенная разница между размерностью и количеством лент машины Тьюринга.
ОДНОМЕРНЫЕ ЛЕНТЫ
В этом разделе исследуется вопрос о времени вычисления, необходимом для выполнения некоторого входно-выходного преобразования на машине Тьюринга с входом (on-line), которая использует одномерные ленты. Это преобразование может быть описано следующим образом. Машина Тьюринга снабжается сначала последовательностью входов, представляющих информацию, записанную на ленте (лентах) машины. Эта информация кодируется в форме блоков из нулей и единиц равной длины. После того как указанное число информационных блоков прочитано, машина переходит ко второй последовательности входов, также состоящей из блоков равной длины из нулей и единиц. Когда каждый из этих новых блоков прочитан, машина должна решить, был или нет такой же блок в первой части входной последовательности, а на выходе поставить 1 или 0 соответственно.
В разд. 2, А это преобразование описывается более детально и указывается, как его можно реализовать с верхней временной границей, пропорциональной п2. В разд. 2, В определяется нижняя граница времени вычисления всякой машины, которая реализует это преобразование. Эти две границы сравниваются и обсуждаются в разд. 2, С.
Множество А. Входные последовательности, связанные с преобразованием, рассмотренным в этой части, являются последовательностями в алфавите {0, 1,2}, в то время как выходные последовательности берутся в алфавите {0, 1}. Машина, которая выполняет преобразование, должна дать на выходе 1 только лишь в ответ на вход 2 и только лишь тогда, когда предшествующая входная последовательность удовлетворяет каждому из следующих условий:
предшествующая последовательность состоит из блоков равной длины из 0 и 1, последовательные блоки отделены одной цифрой 2;
общее число блоков превышает 2\ где к есть число нулей и единиц в каждом блоке;
набор из 0 и 1, который появляется в самом последнем блоке, равен набору по крайней мере одного из первых 2й блоков.
В качестве примера рассмотрим входную последовательность 012002012102002112012, которая состоит из семи блоков длины fe = 2. Для этой входной последовательности выходные символы, соответствующие каждому нулю или единице в этой последовательности, должны быть 0. Так как 2^ = 4, то условие Ь) требует, чтобы выходы 0 производились также для каждой из первых четырех двоек в последовательности. Пятая двойка заканчивает блок, набор которого равен набору второго блока; условия а), Ь), с), таким образом, удовлетворяются, и выдается выход 1. С другой стороны, выход, соответствующий шестой двойке, есть 0, так как эта двойка заканчивает блок, набор которого не появляется среди первых четырех блоков. Наконец, выход 1 дается в ответ на последнюю двойку. Полные входная и выходная последовательности следуют ниже вместе с некоторыми другими парами входных и выходных последовательностей:
вход 012002012102002112012 вход 0120112012112012 выход 000000000000001000001 выход 0000000000000000
вход 10020012000210021102 выход 00000000000000000000
вход 10020012000200020112100210020002111201121102100201 выход 00000000000000000000000000000000000000010000000100
При исследовании поведения машин, которые реализуют это конкретное входно-выходное преобразование, мы займемся сначала входными последовательностями, которые состоят более чем из 2й блоков некоторой общей длины к, отделенными единственной двойкой. Первые 2к блоков в такой последовательности называются базой последовательности, а оставшиеся блоки — хвостом последовательности. Выходной символ, выработанный в ответ на двойку, которая заканчивает блок в хвосте последовательности, будет рассматриваться как выход, связанный с этим блоком. Наконец, мы обозначим множество входных последовательностей, для которых соответствующая выходная последовательность заканчивается символом 1, через А. Тогда, например, последовательность 012002012102002112012 есть член множества А. Ее база состоит из четырех блоков 012002012102, а ее хвост — из трех блоков 002112012. Выходы, связанные с тремя хвостовыми блоками, суть 1, 0 и 1 в порядке их появления.
В соответствии с обычной терминологией машина, которая выполняет входно-выходное преобразование, описанное выше, является одной из машин, которая распознает множество А. Нетрудно себе представить, как можно построить такую машину. Когда ей подан первый блок из 0 и 1 входной последовательности, машина отмечает длину этого блока на одной из своих лент. Этот отмеченный сегмент служит потом эталоном, с которым могут сравниваться длины последующих блоков. Когда читаются блоки базовой части входной последовательности, машина сравнивает их длины, записывает их на вторую ленту и образует соответствующую последовательность выходных нулей. Конечно, машина должна определить, когда все базовые блоки прочитаны; для этого она должна вычислить значение 2^ (6 определяется длиной первого блока) и подсчитать число воспринятых блоков.
Когда считываются нули и единицы хвостового блока, машина записывает их на третью ленту и образует соответствующую последовательность выходов из нулей. Как только блок заканчивается двойкой, машина начинает сравнивать только что записанный хвостовой блок с каждым из ранее записанных базовых блоков. Если найден блок, равный ему, то машина дает на выход 1, в противном случае на выход подается 0. Каждый хвостовой блок обрабатывается аналогично.
Рассмотрим теперь время, которое нужно машине, чтобы выработать выходы, связанные с данной входной последовательностью. Очевидно, что наибольшее время вычисления будет в том случае, когда все блоки имеют одинаковую длину, так как коль скоро восприняты два блока различной длины, то образование всех последующих выходов делается тривиальным. Напо-
мним далее, что 2к есть функция, вычислимая в реальное время [4]. Поэтому блоки в базе входной последовательности могут быть проверены на длину, записаны и пересчитаны в реальное время. Выход, связанный с базой последовательности, может быть образован с такой же быстротой, с какой поставляются входы. Поэтому в определении наибольшего времени вычисления нам нужно рассмотреть только лишь входные последовательности, содержащие более 2к блоков. Заметим, наконец, что выходы, связанные с нулями и единицами хвостовых блоков, могут быть выработаны с такой же быстротой, с какой поступают соответствующие входные символы; единственно «трудные» выходы суть выходы в конце блоков.
Чтобы сравнить хвостовой блок с одним из записанных базовых блоков, машина должна просмотреть два набора, сравнивая их символ за символом. Если длина каждого блока есть#, то требуемое на это время состоит в точности из к единиц времени. Однако хвостовой блок может сравниваться со всеми записанными базовыми блоками, и читающая головка, которая рассматривает хвостовой набор, должна возвращаться к началу этого набора для следующего сравнения. Поэтому время, нужное для того, чтобы сравнить один хвостовой набор со всеми различными базовыми наборами, должно быть 2к2к. К этому времени мы должны добавить время, необходимое на возвращение соответствующей читающей головки к началу записанных базовых блоков, чтобы машина была в позиции для сравнения следующего хвостового блока. Таким образом, в общем мы имеем ^к^ + (# + 1)2^ <3(# + l)2fe единиц времени для обработки каждого хвостового блока.
Если число хвостовых блоков есть %, то время, необходимое для записи базовой части входной последовательности и для сравнения каждого из хвостовых блоков, самое большее есть
7* = (А + 1) 2ft + Зх (6 + 1)2*.
С другой стороны, общее число символов во входной последовательности есть
n = {k+ 1)2* + х(й + 1),
п2 = (^ + I)2 2м + 2х (& + I)2 2% + х2 (£ + I)2 >
>(Z?+ l)2* + 3x(Z? + 1)2* = Л
Поэтому число единиц времени, нужное для обработки входной последовательности длины п, всегда меньше чем п\ и множество А распознается с временной границей Г(/г) = п2.
(Более детальные вычисления показывают, что А распознаваемо с границей rz2/Iog2 п, но граница п? достаточна для наших целей.)
Нижняя граница времени при распознавании множества А. Целью этого раздела является получение нижней границы времени вычисления, нужного для распознавания множества А. Для этого будет показано, что каждая машина, которая распознает А, должна тратить некоторое минимальное количество времени на переработку определенных входных последовательностей. Конечно, точное количество времени, нужное машине, зависит от ее параметров: числа лент, числа ленточных символов, которые она использует, и т. д. С другой стороны, мы знаем из предыдущей части, что множество А распознаваемо с временной границей Т(п) = п2, так что будет достаточно рассмотреть машины, которые работают с этой границей. Предположим поэтому, что нам дана машина М со входом, такая, что она
а) распознает множество А с временной границей Т(п) = п2, Ь) имеет t лент, s ленточных символов и Q внутренних состояний.
Мы докажем, что вычисления на такой машине нс могут быть выполнены с временной границей
Сп2
/ log s log2 п '
где С есть подходящая константа и п— длина входной последовательности.
При доказательстве этого результата удобно использовать обобщение понятия «состояние». Пусть конфигурация машины Тьюринга в данный момент означает:
внутреннее состояние машины в данный момент;
наборы символов, которые имеются на лентах машины в данный момент;
позиции этих наборов по отношению к читающим головкам машины.
Таким образом, конфигурация машины в данный момент единственным образом определяет, как эта машина будет реагировать на последующую входную последовательность. Длина конфигурации есть максимальное расстояние между самым левым и самым правым непустыми символами по всем ленточным наборам. Заметим, что если машина работала / единиц времени, то длина ее конфигурации не может превышать t.
Чтобы найти нижнюю границу времени вычисления данной машины М, мы рассмотрим только лишь такие вычисления, которые машина выполняет на некоторых ограниченных множествах входных последовательностей Ль А^ Л3 и т. д. Каждый элемент множества Ак содержит в точности 2ft+1 блоков длины й, разделенных единственной двойкой, т. е. каждый член Ак со-
держит базовый сегмент из 2h блоков, за которыми следует хвостовой сегмент из 2й блоков. Никакие ограничения не накладываются наборы из 0 и 1, которые присутствуют в базовых или хвостовых блоках. Например, последовательность 012002002102012102102012 относится к множеству Д2.
Мы теперь хотим найти нижнюю границу максимума времени, которое машина М должна потратить при обработке индивидуальных элементов множества Да, при помощи к, t, s, Q. Каждое вычисление, которое машина М выполняет на элементах Да, можно разбить на две части: вычисление при обработке базы входа и вычисление при обработке хвоста. Мы будем игнорировать детали первой части и остановимся на конфигурации, в которой пребывает машина после первой части. Таким образом, мы можем думать о первой части вычисления как об акте отображения базового сегмента в элементе из Да в такую конфигурацию машины, в которой машина М начинает обработку хвостовой части входной последовательности.
Конкретное отображение базовых сегментов на машинные конфигурации, в которых машина М может оказаться, сильно влияет на время, которое М при вычислениях должна потратить на хвостовые части. Таким образом, один из путей минимизации общего времени вычисления для членов из Да есть «оптимизация» отображения, т. е. выбор отображения, для которого подходящим образом построенная машина при вычислении на хвостовых частях должна будет тратить времени как можно меньше. Конечно, само отображение должно быть таким, чтобы его можно было выполнить относительно быстро, именно с границей Т(п) = п2. Однако для наших целей удобнее рассмотреть отображения из более широкого класса, полностью игнорируя время, которое потребовалось бы машине Тьюринга для выполнения отображения. Выбор оптимального отображения из большего класса приведет к минимальному времени вычисления на хвостовых частях, которое по крайней мере так же мало, как и полученное при выборе отображения из меньшего класса «быстро реализуемых» отображений.
Рассмотрим теперь множество отображений базовых сегментов из Да на машинные конфигурации, удовлетворяющих следующим условиям:
Каждая конфигурация указанного отображения совместна с машиной М, т. е. она включает t лент, s ленточных символов и Q внутренних состояний, используемых М.
Длина каждой конфигурации в отображении равна самое большее 4(£ + 1)222А—максимальной длине конфигурации, которая может встретиться в процессе вычисления, выполняемого М на одном из элементов Да.
Каждая конфигурация, которую дает отображение, есть конфигурация, в которой машина М работала бы «корректно» на некотором единственном хвостовом блоке. Это означает следующее. Предположим, что машина М находится в конфигурации, соответствующей некоторому произвольно выбранному базовому сегменту из ЛА, и машине М подан произвольно выбранный хвостовой блок длины к. Тогда М должна дать на выходе к нулей, а затем 1 и 0 в соответствии с тем, есть ли данный хвостовой набор в данном базовом сегменте.
Время, которое нужно М, чтобы произвести к + 1 выходов, указанных в 3), зависит от конкретных базового сегмента и хвостового блока и конкретного отображения. Максимум этого времени по всем базовым сегментам из Ак и по всем хвостовым блокам длины к называется временем, сравнения, связанным с данным отображением. Из определенного множества отображений выберем одно, имеющее наименьшее время сравнения; обозначим это отображение через F^, а соответствующее время сравнения — через wk. Заметим, что это отображение Fk определенно существует. Только лишь конечное число отображений удовлетворяет 1) и 2), и только лишь конечное число входных последовательностей потребуется рассмотреть при проверке 3) и при определении минимального времени сравнения.
Следующим шагом является получение нижней границы w>k. Ее определяет следующая лемма 1).
и 12й — log Q — Hog s — 1
Лемма 1. wk>-.
R2/ log s
Доказательство. Заметим сначала, что число машинных конфигураций, которые различаются или внутренними состояниями, или ленточными наборами, появляющимися в х квадратах по обеим сторонам от читающих головок машины, равно
Qst(2x + 1))
где величина /(2 + 1) — общее число занятых квадратов. В частности, если мы положим 1
— ^^ — lQg Q~t l°g s — 1^^2/ log s ’
TO Q?(2^ + >)= QS^-to8 Q-0/log$= /-I <j
Распределим далее базовые сегменты из Ан по классам в соответствии с наборами из 0 и 1, которые входят в их блоки.
*) В этой работе все логарифмы берутся по основанию 2.
Зак как существует 2й различных наборов длины к, то число таких классов 22 — 1. Выберем по представителю из каждого класса и определим для каждого представителя машинную конфигурацию, в которую он отображается посредством Ек. Пэ крайней мере два из этих представителей базовых сегментов должны отобразиться в конфигурации, у которых одинаковы внутренние состояния и наборы, появляющиеся в хк квадратах под читающими головками, так как число конфигураций, которые отличаются только что указанными элементами, меньше чем 22^ — 1. Обозначим эти два базовых сегмента через Oi и оо.
Должен существовать по крайней мере один набор из 0 и 1, который находится в одном и только одном из сегментов oi и о2. Посмотрим, что случится, если М находится в конфигурации, соответствующей Oi или 02, и на М подан один хвостовой блок, содержащий критический набор. Чтобы вычислить выход М для этого хвостового блока, нужно определить, соответствует ли конфигурация М сегментам Qi и 02. Но такое определение необходимо влечет за собой проверку по крайней мере одного символа, который будет удален более чем на хк квадратов от читающей головки. Так как время, нужное для М, чтобы передвинуть такой символ под соответствующую читающую головку, превышает х^, то мы установили wk > хк. Ч. т. д.
Напомним, что отображения базовых сегментов в машинные конфигурации, которые машина М проходит, включаются в отображения, из которых было выбрано Fk. Но по определению Fk есть отображение, для которого максимум количества времени, которое М должна потратить на первом хвостовом блоке, наименьший. Таким образом, если машина М использует свое собственное отображение, чтобы подготовиться для проверки хвостовых блоков, то она в самом худшем случае не может иметь на первом хвостовом блоке меньше времени вычисления, чем в случае с F^. Другими словами, должна существовать входная последовательность в множестве Ак, на которой машина М потратит по крайней мере w^, единиц времени на первом хвостовом блоке.
Интуитивно кажется, что процесс сравнения одного блока в хвосте последовательности в сущности не зависит от процесса сравнения следующего блока и что наихудший случай вычисления времени безотносителен к позиции хвостового блока. Чтобы проверить это предположение, мы должны доказать, что в процессе сравнения блоков в начале хвоста М не может переупорядочить свои записи таким образом, чтобы ускорить сравнение более дальних блоков. Основой доказательства будет то, что если бы такое переупорядочение было возможно, то можно
было бы найти отображение, которое «лучше», чем Fk. (Читатель, который предпочитает поверить интуиции, в этом месте может просто прочитать утверждение леммы 2, а потом перейти к теореме 1.)
Доказательство облегчается, если члены из Ак изображаются деревом, по одному пути в дереве для каждого члена из Ак. Так
Рис. 1. Дерево для множества Av
как каждая последовательность из Ак состоит из 2fe+1 блоков, каждый из которых может содержать любой из 2Л наборов, то соответствующее дерево содержит 2^+! 4-1 уровней точек с ^ ветвями, исходящими из каждой неконечной точки. Рис. 1 показывает дерево для случая, в котором А = 1, когда существуют в точности два возможных набора блоков (0 и 1), следовательно, две ветви исходят из каждой неконечной точки. Удобно отделить те ветви в дереве, которые соответствуют базовым блокам, от тех, которые соответствуют хвостовым блокам, что сделано пунктирной вертикальной линией на рис. 1. Поддеревья, которые исходят из точек на отделяющей линии, называются пучками дерева;
каждый пучок соответствует в точности одному из 2А возможных базовых сегментов.
Лемма 2. Существует по крайней мере одна входная последовательность в множестве Ak, на которой машина /И тратит по крайней мере 2hwh единиц времени на хвостовой части последовательности.
Доказательство. Рассмотрим каждый член из А^ подадим его на машину М и заметим, сколько времени тратит М на каждом блоке в хвосте последовательности. Если М тратит меньше чем ^^ единиц времени на данном блоке, то отметим соответствующую ветвь в дереве знаком минус, в противном случае соответствующую ветвь пометим знаком плюс. Если все ветви, исходящие из конкретной точки, помечены знаком минус, то назовем эту точку минус-точкой, в противном случае — плюс-точкой.
Сначала мы должны показать, что не все пучки содержат минус-точку. Заметим, что каждая точка в пучке соответствует конфигурации М, в частности конфигурации, в которой М должна получить символы хвостового блока и вычислить соответствующий этому блоку выход. Если все ветви, исходящие из некоторой точки пучка, помечены знаком минус, то конфигурация, соответствующая этой точке, должна быть такой, чтобы машина потратила меньше чем wk единиц времени на следующем хвостовом блоке вне зависимости от набора, содержащегося в этом блоке.
Таким образом, если каждый пучок содержит минус-точку, то можно определить новое отображение Fk, которое имеет время сравнения, меньшее, чем Fk. Рассмотрим каждый базовый сегмент, заметим пучок в дереве, которому он соответствует, и найдем последовательность хвостовых блоков, которая ведет к минус-точке в этом пучке. Затем подадим базовый сегмент М, за которым следует соответствующая последовательность хвостовых блоков, и заметим конфигурацию, в которой М оказалась. Пусть эта конфигурация будет конфигурацией, поставленной в соответствие базовому сегменту при новом отображении Fk-
Отображение Fk, безусловно, удовлетворяет условиям 1) и 3). Оно удовлетворяет также условию 2), так как конфигурации, получающиеся в результате этого отображения, суть конфигурации, которые М достигает в процессе вычисления на входной последовательности длины 2 (А + l)2fe или меньшей. Так как М работает с временной границей п2, то длина такой конфигурации не может превышать 4(& + 1)222\ Таким образом, Fk относится к множеству отображений, из которого было вы-
брано F^. Время сравнения для Fk связано с минус-точками и, следовательно, по определению меньше, чем wk— время сравнения для Fk. Но в этом есть противоречие, так как Fk было выбрано с наименьшим временем сравнения. Поэтому предположение о том, что каждый пучок может иметь минус-точку, невыполнимо, и некоторый пучок поэтому должен иметь только лишь плюс-точки.
Но если данный пучок имеет только лишь плюс-точки, то каждая точка в пучке должна иметь по крайней мере одну исходящую ветвь, которая отмечена знаком плюс. Поэтому в пучке должен существовать по крайней мере один путь, который включает в себя ветви, отмеченные только плюсом. Выберем в Ак член, базовый сегмент которого соответствует пути от корня дерева до указанного пучка и хвостовой сегмент которого соответствует пути в пучке, который содержит только лишь отмеченные плюсом ветви. Этот член из Ак таков, что М тратит по крайней мере wk единиц времени на каждом его хвостовом блоке и, следовательно, в общем по крайней мере 2kwk единиц времени на всем хвостовом сегменте. Ч. т. д.
Результаты лемм 1 и 2 можно теперь объединить и дать нижнюю границу времени вычисления, необходимого для распознавания множества А.
Теорема 1. Пусть М есть машина со входом, имеющая 1лент, s ленточных символов и распознающая множество А. Пусть Т^п) означает максимум количества времени, которое М тратит на всякой входной последовательности длины п. Тогда Т^ превышает
п248/ log s log2 п
для достаточно больших значений п.
Доказательство. Нам нужно рассмотреть только лишь случай, в котором М работает с границей п2, так как иначе утверждение теоремы будет безусловно правильным. Пусть пк означает общую длину последовательностей в множестве Ак, и пусть Тк означает максимум времени, которое М должна потратить на последовательностях из Ак. Тогда для всякого данного значения п выберем к таким, чтобы пк ^ п ^ nM. Так как время вычисления, нужное машине М, монотонно по п, то Т^п)^?^ в то время как по леммам 2 и 1 мы имеем, что
Т26(2e-logQ-Zlogs-1)
Тк > 2 Wk >2^.
Таким образом, если п, а следовательно, и к достаточно велики,
то
Тк>Тк>3t log s *3t log s *
Тк>
Тк>
3t log s *
3t log s *
Заметим теперь, что n^\ = 2(к Л-2)2к+\ и поэтому log^+i > к + 2. Следовательно,
Г4(Лг+ 2)2 22 1^я^ + 1
Т Щ) > Тк> 42)2 22 3/ log s > 48/ log s log2 *
Так как nk+{ > п > е, то дробь fib+i/log ^+1 превысит дробь /г/log п. Поэтому
(я) > 48/ iOg s jOg2 п • Ч. т. д.
С. Обсуждение. Теорема 1 дает нижнюю границу порядка роста времени распознавания множества /I, причем время есть функция от п, /, s. Чтобы увидеть, является ли порядок роста разумным, вспомним, что число b существенно различных базовых частей членов множества Ак есть 22*— 1, в то время как общая длина п каждого члена из Ак есть (й+ l)2fe+1. Число битов, необходимых для выяснения, который из b существенно различных базовых сегментов присутствует, приблизительно равно 2\ а это приблизительно равно njlogn. Но если рассматриваемая машина использует / лент и s ленточных символов, то максимальное число квадратов на ленте, нужное для записи этого сегмента, приблизительно равно пЩ log s log п). Это число квадратов есть максимальное число сдвигов ленты, которые должны быть сделаны, чтобы сравнить один хвостовой блок.
Общее число хвостовых блоков в члене из Ак есть 2к, или приблизительно nj\ogn. Теорема 1 устанавливает, что общее время вычисления в худшем случае должно быть пропорционально произведению числа хвостовых блоков, подлежащих сравнению, и максимального числа квадратов на ленте, нужных для записи всей существенной информации о базовом сегменте. Таким образом, невозможно улучшить вполне очевидный способ записи всех наборов, которые присутствуют в базовом сегменте, а потом просмотреть эту запись для каждого вновь поступившего хвостового блока.
Порядок роста, указанный в теореме 1, меньше порядка, полученного в разд. 2, А, в log2 п раз. Это расхождение возникает потому, что машина, описанная в разд. 2, А, использует несколько неэффективный метод записи базовых наборов. Вместо просто записи наборов одного за другим более экономно записать их в «факторной» форме, удаляя общий начальный сегмент у двух или более наборов, где это возможно. Тогда пара набо-
ров 0000 и 0001 может быть записана как 000(0 + 1), множество 0000, 0001, 0101, 1000, 1010 может быть записано как 0(00(0+1) 4-101) 4-10(00+10). Используя такую схему, можно построить машину, которая распознает множество А и работает с временем, пропорциональным n?!^t logs log2 п) для достаточно больших / и s1). Таким образом, оптимальное время вычисления из теоремы 1 есть с точностью до постоянного множителя лучшее достижимое время.
«Время поиска» при сравнении одного хвостового блока так сильно влияет на время распознавания множества А, что желательны другие вычисляющие модели, в которых время поиска можно снизить. Одна возможность, которая будет исследована в разд. 3, предполагает машину Тьюринга с двумерными лентами. Так как запас данного числа битов информации может быть помещен на двумерной ленте «диаметра», много меньшего «диаметра» одномерной ленты, то и время исследования при использовании двумерной ленты может быть сделано много меньше. Уменьшение времени поиска снизило бы порядок роста общего времени вычисления.
ДВУМЕРНЫЕ ЛЕНТЫ
В этой части мы рассмотрим машины Тьюринга со входом, снабженные одной (или более) бесконечной двумерной лентой. Назовем такую машину для простоты двумерной машиной. На каждом шаге вычисления двумерная машина может написать новые символы в обозреваемых квадратах, сдвинуть каждую из своих лент влево, вправо, вверх или вниз (или остаться на месте) и изменить внутреннее состояние. Как и в обычных машинах со входом, двумерная машина со входом начинает вычисления с пустыми лентами. Затем подаются входные последовательности, вырабатываются выходные последовательности, в точности как и в случае одномерных лент. В частности, определение времени вычисления остается неизменным.
В предыдущем разделе предполагалось, что использование двумерных лент может уменьшить количество времени, нужного для распознавания множества А. В самом деле, можно построить двумерную машину, которая распознает А с временем, пропорциональным п3/2, по сравнению с порядком роста п? у одномерной машины. Таким образом, время, необходимое для двумерной реализации, пропорционально степени 3/4 лучшего времени, получающегося при одномерной реализации. Вместо
4 Грубая оценка показывает, что константа пропорциональности не более 20 или 30, хотя, без сомнения, ее можно сделать много лучше.
двумерной реализации А мы займемся проблемой распознавания, для которой разница между одно- и двумерным временами вычислений даже больше, чем для множества А.
Множество исследуемых в этом разделе входных последовательностей лучше всего описывается в терминах поведения распознающей его двумерной машины. Эта машина М2 работает на входных символах (У, D, L, R, W и Е, которые означают команды вверх, вниз, влево, вправо, написать и проверить соответственно. Машина имеет одну двумерную ленту и использует ленточные символы 0, 1. В начале вычисления каждый квадрат ленты содержит 0.
При получении одного из входных символов U, D, L или R машина М2 сдвигает читающую головку на один квадрат в указанном направлении, т. е. она сдвигает ленту на один квадрат в противоположном направлении, и вырабатывает выходной символ 0. При получении входного символа W машина не перемещает ленту, но пишет символ 1 в обозреваемом квадрате и вырабатывает выход 0. При получении входного символа Е машина ничего не делает с лентой, но вырабатывает выход 0 или 1 в соответствии с тем, содержит ли обозреваемый квадрат 0 или 1. Например, если М2 начинает с ленты, заполненной нулями, а на ее вход подана последовательность RWURWDWLEDERUER, то она выработает выходную последовательность 000000001000010.
Множество входных последовательностей, распознаваемых М2, обозначим через В. Согласно определению, В распознаваемо двумерной машиной с границей времени Т(ц) = п. Согласно Хартманису и Стирнзу [2, 3], переход от двумерной реализации к одномерной требует самое большее квадрата времени вычисления. Таким образом, можно построить одномерную машину, которая распознает множество В с временной границей Т (п) = = п2. Теперь мы желаем найти нижнюю границу времени вычисления одномерной машины, которая распознает В.
Для этой цели удобно рассмотреть некоторые множества В;, В2, В3 и т. д. входных последовательностей, определенные в терминах поведения двумерной машины М2 на этих множествах. Каждый член множества Вк имеет две части: пишущий сегмент и следующий за ним читающий сегмент. Пишущий сегмент есть последовательность, состоящая из U, D, L, R, W. На нем М2 двигает читающую головку вдоль «спирального» пути, как это показано на рис. 2, записывая 1 в некотором произвольно выбранном подмножестве квадратов, которые она посещает. Когда пройдено k2 квадратов (необязательно с записями), читающая головка возвращается наикратчайшим путем к исходной точке, или к дому-квадрату.
Читающий сегмент каждого члена из Вк делится на к последовательных кусков, называемых запросами. Каждый запрос состоит из трех частей:
последовательности из U, D, L, R, на которой М2 двигает читающую головку наикратчайшим путем из дома-квадрата к одному из квадратов, посещенному на читающем сегменте;
одного Е, на котором М2 вырабатывает на выходе символ, записанный в указанном квадрате;
последовательности из U, D, L, R, на которой М2 двигает читающую головку наикратчайшим путем назад в дом-квадрат.
рата, который расположен на три квадрата выше и на четыре квадрата правее дома-квадрата. Точный путь следования к запрашиваемому квадрату и от него неважен. Любой из к2 допустимых квадратов может быть проверен данным запросом.
Число входных символов, необходимых для перемещения читающей головки машины М2 вдоль спирального пути, равно к2—1; число символов, необходимых для написания в некотором подмножестве посещенных квадратов единиц, равно самое большее к2\ число символов, нужных для возвращения читающей головки в дом-квадрат, равно к—1. Таким образом, общее число символов в читающем сегменте элемента Вк менее Зк2. Число входных символов, необходимых для одного запроса, равно самое большее 2к— 1, так как любой квадрат, который посещался на читающем сегменте, достигается из дома-квадрата в к—1 или меньше шагов. Таким образом, число символов в читающем сегменте члена из В^ менее 2к2, и общее число символов в члене из Вк менее Ьк2.
Предположим теперь, что Mi есть одномерная машина, распознающая множество В. Как велико время вычисления, используемое машиной Мь если она имеет I лент, s ленточных
символов и Q внутренних состояний? Так как известно, что можно построить одномерную машину, распознающую В с временной границей п2, то можно допустить, что Мх работает именно с этой границей. Далее можно использовать рассуждения, близкие к рассуждениям разд. 2, В, чтобы показать, что существует некоторое множество Вк, на котором Мх должна потратить порядка № единиц времени. Из этого следует, что Mi требует времени вычисления, пропорционального п^2.
Рассмотрим сначала отображения пишущих сегментов в членах из Вк на одномерно-машинные конфигурации. В частности, рассмотрим такие отображения, которые удовлетворяют каждому из следующих ограничений:
Каждая машинная конфигурация, порожденная отображением, совместна с Мь т. е. она включает / лент, s ленточных символов, используемых Mi, и Q внутренних состояний М^
Длина каждой конфигурации равна самое большее 25£4— максимальной длине конфигурации, возможной в процессе вычисления, которое выполняет Mi на элементах Вк.
Каждая конфигурация есть конфигурация, в которой Л^ работала бы «корректно» на любой единичной запрашивающей последовательности. Это означает следующее. Предположим, что М! помещена в конфигурацию, соответствующую конкретному пишущему сегменту из Вк, и на вход подается произвольно выбранная запрашивающая последовательность. В ответ на Е из этой последовательности Mi должна выработать выход 1 или 0 в соответствии с тем, записана ли 1 в проверяемом квадрате при данном пишущем сегменте или не записана.
Выберем из этих отображений одно, для которого максимальное время, которое Mi должна потратить на произвольном запросе, описанном в 6), как можно меньше. Обозначим это «лучшее» отображение через Gkl а соответствующее максимальное «время запроса» через ик.
Рассуждениями, аналогичными рассуждениям леммы 1, можно показать, что
_ k2 — Hog s — log Q — 1
Uk 21 log s *
Чтобы это показать, заметим, что число конфигураций, которые различаются или внутренними состояниями, или символами, появляющимися в ук квадратах с той или другой стороны от различных читающих головок Мь есть
Qs ^у^^к-х.
С другой стороны, существует 2'' различных наборов из 0 и 1, которые могут быть составлены на ленте М2 при читающем сег-
менте из множества Вк. Таким образом, Gk должно отображав некоторые два пишущих сегмента, которые порождают различные наборы на ленте М2, в конфигурации Мь которые согласуются по внутренним состояниям и по ленточным символам, появляющимся в ук квадратах под читающими головками. Поэтому должен быть возможен выбор конкретного пишущего сегмента и первого запрашивающего сегмента, для которых Mi должна проверить некоторый ленточный символ, лежащий дальше чем на ук квадратов от читающей головки. Так как Mi должна потратить по крайней мере ук + 1 единиц времени, чтобы достичь такого символа, то максимальное время запроса при отображении Gk превышает ук.
Следующим шагом — рассуждениями, аналогичными рассуждениям леммы 2,— должно быть показано, что найдется некоторый элемент из Вк, на котором Mi должна потратить по крайней мере kvk единиц времени, вырабатывая выходные символы, связанные с читающим сегментом последовательности. Опять удобно представить элементы Вк в виде дерева. Это дерево имеет ^ «главных ветвей», по одной для каждого из различных пишущих сегментов в элементах Вк. На конце каждой основной ветви есть поддерево, или пучок, содержащий k уровней ветвей. Из каждой точки в каждом пучке исходят й2 ветвей, по одной для каждого из различных запросов, которые могут быть сделаны в каждой части читающего сегмента в последовательности из Вк.
рассуждениям леммы 2, подадим каждую последовательность из Вк на машину Mi и определим длину промежутка времени, которое Mi тратит на переработку каждой запрашивающей последовательности в читающем сегменте. Затем пометим каждую ветвь в каждом пучке дерева знаками плюс или минус в соответствии с тем, тратит или не тратит Мх х)кеда- ниц времени на соответствующем запросе. Если бы в каждом пучке имелась по крайней мере одна точка, из которой исходили бы только лишь минус-ветви, то можно было бы найти отображение GV которое удовлетворяет условиям 4), 5) и 6) и максимальное время запроса которого было бы менее ик. Но так как выбор Gk исключает существование такого Gk, то должен существовать хотя бы один пучок, содержащий только лишь плюс-точки. Поэтому должен существовать хоть один член из Вк, на котором Mi тратит по крайней мере Ь/ик единиц времени на читающем сегменте.
Наконец, рассуждения, аналогичные рассуждениям теоремы 1, приводят к нижней границе Т^п) при вычислении времени, нужного Мь Напомним, что число символов в каждом
члене из Вк меньше чем 5£2. Тогда если дано произвольное значение п, то выберем к так, чтобы
bk2 ^n<b(k + I)2
и, следовательно, чтобы
п^<100й3.
Так как Тх^ монотонно возрастает, то Тх(п^ по крайней мерс так же велико, как и максимальное время, которое Mi должна потратить на читающих сегментах в членах из Вк. Таким образом,
Г, (п) > kuk > ^-^-logQ-l) 1 \r /2t log s
Если и, а следовательно, и к достаточно велики, то
Т (
1 '^ 3/logs 300/ logs*
Таким образом, Тх^ растет пропорционально rfk С другой стороны, время Т2(п), необходимое для распознавания множества В двумерной машиной, растет не быстрее п. Выражая Тх (п) через Т2(п), имеем
)’/z,
где а есть константа при конкретных значениях t и s. Другими словами, по крайней мере для проблемы распознавания множества В уменьшение размерности ленты с двойки до единицы требует увеличения порядка роста времени вычислений по крайней мере степени 3/2.
РАЗМЕРНОСТЬ И СКОРОСТЬ
А. Обобщения множества В. Методы предыдущих разделов могут быть применены к машинам с трехмерными и более лентами. В частности, определение множества В можно расширить на большее число измерений. Рассмотрим m-мерную машину Мт, аналогичную машине М2; Мт способна сдвигать ленты во всех 2m направлениях, записывая 1 в «квадратах», которые она посещает, и проверяя символы, которые она обозревает. Пусть такой машине подаются входные последовательности в алфавите {di+, dx_,. .., dm^ dm_, W, E}. На символах d^ и dt- машина сдвигает ленту параллельно t-й оси, а на W и Е пишет 1 или соответственно проверяет квадрат, который она в данный момент обозревает, на присутствие 1. Как и раньше, машина вырабатывает выход 1 только лишь в ответ на вход Е и
только лишь в случае, если квадрат, обозреваемый в настоящий момент, содержит 1.
Пусть множество входных последовательностей, распознаваемых Мт, обозначено через Wm. (Так, множество В идентично множеству №2.) Множество Wm распознаваемо m-мерной машиной в реальное время. Но какое время нужно машине с меньшим числом измерений, чтобы распознать его? Пусть Т™ (я) означает наименьшее время, в которое Wm распознаваемо /-мерной машиной. Тогда методами предыдущего раздела может быть показано, что
ТТ^>С(П^""т,
где С есть функция от числа лент и ленточных символов, используемых /-мерной машиной.
Рассуждения, приводящие к этому результату, могут быть обобщены следующим образом. Определим сначала множества WT, WT, ..., W™, ..., аналогичные множествам Вк разд. 3. Каждый член из W™ начинается с пишущего сегмента, на котором Мт посещает каждый квадрат m-мерного гиперкуба со стороной к, и пишет 1 в некоторых из этих квадратов. За этим пишущим сегментом следует читающий сегмент, в котором запрашиваются в точности кт-х квадратов гиперкуба.
Применим далее к последовательности из V£ некоторую /-мерную машину М, которая распознает 1Гт. Из результатов разд. 3 вытекает, что наихудшее время вычисления для одного запроса по крайней мере пропорционально кт-^х и что наихудшее время вычисления всех кт~х запросов по крайней мере пропорционально k2m-j. С другой стороны, время, необходимое для обработки членов из Wk на Мт, самое большее пропорционально кт. Таким образом, время, необходимое /-мерной машине, по крайней мере пропорционально степени (2m— j)/m времени, необходимого m-мерной машине.
Модификации машин Мт приводят к определению множеств, для которых возможна данная в 7) нижняя временная граница. Таким образом, существуют проблемы распознавания, для которых необходимое и достаточное время при различных измерениях может быть определено с точностью до постоянных множителей. Более того, порядок роста времени вычисления модифицированных форм множества Wm увеличивается с каждым уменьшением размерности ленты от т до 1.
Заключение. Эта работа служит двум целям. Первая — дать метод нахождения нижних границ при вычислении вре-
мени в некоторых проблемах распознавания со входом. Проблемы, для которых этот метод оказывается полезным, суть те, в которых информация задается машине сначала в первой части входной последовательности, а потом эта информация запрашивается у машины другой частью входной последовательности. Таким образом, машина должна запасти или записать поступающую информацию таким образом, чтобы потом ее можно было быстро найти по требованию.
Рассмотренный здесь метод не принимает во внимание проблему записи входной информации; внимание концентрируется на проблеме нахождения ранее запасенной информации. Здесь допускается, что информация записана самым лучшим образом, т. е. так, чтобы минимизировать время, нужное для нахождения произвольного куска информации позже. Время поиска, полученное с использованием этого допущения, очевидно, нс будет превосходить времени поиска, которое может быть получено, если используется другая форма записи. Таким образом, мы можем потратить столько времени, сколько необходимо на предварительную обработку запасенной информации, если это позволит нам ограничить время поиска.
Заметим, что предположение об оптимальной предварительной обработке в действительности дает нам две вещи. Во-первых, это приводит к нижней границе времени, нужного для нахождения одной порции запасенной информации (одного набора в случае множества А или одного квадрата ленты в случае множества В). Эта граница основана на числе различных «предысторий», которые требуется запомнить, и на числе квадратов ленты, нужных, чтобы их изобразить. Во-вторых, это приводит к заключению, что поиск каждой из последовательных порций информации в действительности является независимой проблемой и что наихудшее время вычисления одинаково для каждого из последовательных запросов.
Таким образом, в дополнение к нахождению нижних границ времени, нужного для распознавания множеств А и В, метод разд. 2 и 3 может оказаться полезным для других проблем с теми же самыми характеристиками. Эти характеристики в общем таковы: 1) вычисления со входом; 2) необходимость нахождения произвольных порций информации из произвольно длинного списка порций, поданного ранее; 3) независимость между последовательно запрашиваемыми порциями.
Вторая цель этой работы — исследовать связь между размерностью ленты и временем вычисления. Работы Хартманиса и Стирнза [2, 3] показывают, что уменьшение размерности ленты машины Тьюринга никогда не требует больше чем квадрата обычного времени вычисления. Неясно, однако, требует ли
в действительности уменьшение размерности ленты квадрата времени вычисления. Этот вопрос очень уместен, так как он показывает, что уменьшение числа лент у машины Тьюринга не влечет существенного увеличения времени вычисления в предположении, что ленты одномерны и число лент не меньше двух [5].
Еще не ясно, необходим ли квадрат. Результаты разд. 3 и 4, А показывают, что существенное увеличение времени вычисления необходимо по крайней мере для некоторых проблем, когда число измерений уменьшается. В частности, если число измерений уменьшается от т до /, то время вычисления может вырасти в степень (2m—*й!т. Таким образом, если число измерений сильно уменьшается, то время вычисления должно увеличиться в степени, близкой к 2.
Итак, имеем, что добавление каждого нового измерения дает иногда уменьшение времени вычисления, по крайней мере для некоторых проблем. Для обсуждаемых здесь примеров этот выигрыш уменьшается с каждым новым измерением, но не ясно, всегда ли это будет иметь место. Понятно то, что размерность ленты и количество лент влияют на время вычисления по-разному. Если увеличение числа измерений может существенно уменьшить порядок роста времени вычисления, то увеличение числа (одномерных) лент свыше двух не меняет существенно порядка роста времени вычисления.
ЛИТЕРАТУРА
Hennie F С, One-tape, off-line Turing machine computations, Information and. Control, 8 (1965), 553—578. (См. стр. 223—248 настоящего сборника.)
Hartmanis J., Stearns R. E., On the computational complexity of algorithms, Trans. Amer. Math. Soc., 117 (1965), 285—306 (Русский перевод: Кибернетический сборник (новая серия), вып. 4, «Мир», 1967.)
Hartmanis J., Stearns R. Е., Computational complexity of recursive sequences, 1964 Proc, of the Fifth annual Symp. on Switching Circuit Theory and Logical Design, p. 82.
Y a m a d a H., Real-time computation and recursive functions not real-time computable, IRE Trans, on Electronic Computers, EC-11 (1962), 753—760 (См. стр. 139—155 настоящего сборника.)
H e n n i e F., S t e a r n s R. E., Two-tape simulation of multitape Turing machines, J ACM, 13, № 4 (1966), 535—546. (См. настоящий сборник стр. 194—212.)
РАСПОЗНАВАНИЕ НА МАШИНЕ ТЬЮРИНГА СО ВХОДОМ !)
П. Стрнад
ВВЕДЕНИЕ
Многоленточная машина Тьюринга со входом М начинает вычисление в фиксированном состоянии So (принадлежащем к алфавиту состояний) с пустыми лентами. Входные символы М образуют входной алфавит, выходные символы — выходной алфавит. В ответ на входной символ машина вырабатывает соответствующий выходной символ. Такой ответ не обязательно должен следовать непосредственно вслед за восприятием соответствующего входного символа: машина может предварительно совершить несколько шагов в процессе своей работы.
В это время (в течение подготовки ответа) машина не воспринимает каких-либо других входных символов. Входной символ с номером /+1 воспринимается машиной в момент времени, следующий за тем, в который выдается i-й выходной символ. Выходным алфавитом машины является {0,1}, т. е. можно рассматривать машину как устройство, распознающее множество таких входных последовательностей, для которых последний символ в соответствующей выходной последовательности есть 1.
На каждом шаге вычисления машина может изменять символы, находящиеся под ее головками, сдвигать каждую из своих головок на один квадрат вправо или влево и изменять свое состояние. Общее число шагов, которые машина должна совершить для того, чтобы получить выходную последовательность, соответствующую данной входной последовательности, называется временем вычисления для этой входной последовательности.
Если время вычисления для каждой входной последовательности длины п меньше или равно Г (/г) (где Т^—заданная функция), то говорят, что машина работает за время Т(п). Множество слов В тогда и только тогда распознается за время Т^п), когда существует машина Тьюринга со входом М, такая, чго
М распознает множество слов 5,
М работает за время KjtY
^ St гп a d Р, On-line Turing machine recognition, Information and, Control, 12, № 5/6 (1968), 442—452.
Пусть машина со входом М распознает множество слов С; тогда введем следующие обозначения:
(n) = max t {и),
\и\=п
где /(и) —время вычисления для входной последовательности и, а \и\—длина слова и во входном алфавите машины М.
Функции, вычислимые в реальное время ]). Временная функция V(n) называется вычислимой в реальное время в том и только в том случае, когда существует константа К и многоленточная машина Тьюринга М с записью на ленте, такая, что если машина М начинает свою работу при заполненной п символами одной из своих лент, то
в течение самое большее K*V(n^ шагов машина заканчивает свою работу;
после остановки машины на одной из ее лент записано V (п) символов.
Множество А. Слова множества А состоят из букв алфавита {О, 1, *}. Слово длины /4-1, заканчивающееся * и состоящее из О и 1, будем называть /-блоком (/=1,2, ...).
Пример. 001-х- является 3-блоком, НОЮ* это 5-блок. Последовательность из 2г' /-блоков будем называть /-базой.
Определим множество А^: weA^ тогда и только тогда, когда существует А>1, такое, что w является последовательностью из 2г‘ + к /-блоков и последний в слове w /-блок совпадает с одним из первых 2* /-блоков слова w. Тогда
й^(0 i = l
есть множество А из статьи Хенни [1].
Хенни [1] показал, что для любой машины Тьюринга М со входом, распознающей множество А, имеет место неравенство т^ (n)>n2/(48/logs log2 п) для достаточно больших значений n (t — число лент, a s— число рабочих символов машины М).
Заметим, что повсюду в этой статье под log подразумевается 10g2.
9 Приведенное ниже определение отличается от определения функции, вычислимой в реальное время, данного в статьях Ямада, Рабина и др из настоящего сборника. Определенный здесь класс функций более широк — Прим, ред
МНОЖЕСТВО Аи И ЕГО РАСПОЗНАВАНИЕ НА МАШИНГ ТЬЮРИНГА СО ВХОДОМ
Введем следующие обозначения:
/?(п) < S(n), если limsup/?(n)/S(n)<oo;
1П-> ОО
7?(n)<S(n), если lim sup R (n)/S (n) < 1. 2n-> oo
Определение. Пусть Щп)—монотонно возрастающая функция, вычислимая в реальное время, причем п К t/(п)^ п2-е для 21
подходящего е>0. Тогда множество слов Аи определяется следующим образом:
AuClA, где А является множеством, рассмотренным во введении.
с0еЛ;П>') тогда и только тогда, когда длина w не больше чем 2f+1-(t+l) и на первых [f(0] позициях каждого /-блока w стоят произвольные символы, а на остальных I — [/(01 позициях i-блока записаны только 0, причем f(i^ определяется равенством W^U(2^ (1+1))/2г', откуда f (t) = log U(2i(j,+ 1)) — i.
Замечание. Если г — действительное число, тогда [г] обозначает целое число, такое, что [г] ^ r<[r] + 1.
Теорема 1. Для каждого множества слов Аи можно построить машину Тьюринга со входом Ми, распознающую множество Аи за время С • Щп}, где С — соответствующая константа.
Доказательство. Опишем машину Mv, распознающую множество Аи. Пусть t-слово (t = 1, 2, ...) является словом, состоящим из к t-блоков, где к — конечное число (£ = 0,1,2, ...). Если задано натуральное число t0, то все /-слова из Аи, где / = 1, 2, ..., to, могут быть распознаны конечным автоматом. Таким образом, можно рассматривать только t-слова, где t>t0. Одной из частей машины Ми будет устройство (многоленточная машина Тьюринга с записью на ленте), которое вычисляет в реальное время функцию Щп), причем если это устройство начинает свою работу, используя записанные на одной из лент машины Ми п символов, то эта работа должна закончиться за время, не превосходящее Схи^, после чего на другой ленте Ми должны быть записаны U(п) символов.
Работу, выполняемую машиной Ми, можно разбить на несколько этапов.
Первый этап начинается с начала ввода. В течение этого этапа:
Машина определяет длину первого блока и отмечает эту длину на ленте Тх. В процессе работы машины происходит
сравнение длины блоков входного слова с длиной первого блока. Если какой-то блок имеет другую длину, машина будет печатать на выходной ленте 0 в ответ на каждый последующий символ.
Как только машина определяет длину /+1 первого блока, она начинает записывать на двух лентах Г2 и Г3 группы из 1, 2, 4, ..., 2г'-1 символов. На ленте Г2 группы будут разделены (последний символ каждой группы будет особым), а на ленте Г3 группы не будут разделены. Длина записи на каждой из лент будет равна 2г‘ — 1.
Посредством ленты Г3 машина определяет начальные 2г* /-блоков и записывает 2г’(/+1) символов /-базы входного слова на ленту Г4. Одновременно машина записывает в унарной форме на ленте Г5 число 2г‘(/+1).
На ленте Т6 машина записывает копию (2z+l)-ro входного блока.
В течение первого этапа своей работы машина воспринимает входные символы на каждом шаге вычисления, и все это время выходным символом является 0. Первый этап завершается восприятием ((2г‘+1) (/+1))-го входного символа (им является *, если все блоки имеют длину /+1); на этом шаге выходной символ не выдается.
Второй этап работы начинается с ((2г‘+1) (/+1) + I)-го шага вычисления. В течение этого этапа машина не будет воспринимать какие-либо входные символы и не выдает никаких выходных символов.
Лента Т^ теперь используется в качестве ленты устройства, вычисляющего функцию U^ в реальное время. В процессе работы этого устройства головка на ленте Г4 возвращается к началу расположенной на этой ленте записи (которое отмечено заранее). Устройство завершает вычисление/7(2Д/+1)) в реальное время (в течение С\* U(2^1+1)) шагов) и записывает в унарной форме это число на ленте Т7.
Машина самое большее за (7(2г‘(/+1)) + 1 шагов вычисляет [log (/(2г’(/+ 1))] (используется построенная Ямада [2] машина, реализующая функцию f^n)=2n), далее производится вычитание из этого числа /, и таким образом вычисляется [/(/)]. Число [f(0] в унарной форме записывается на ленте 78.
Третий этап начинается после окончания второго этапа. На третьем этапе машина не воспринимает каких-либо входных символов и не выдает выходных символов. На ленту Г9 машина последовательно заносит в закодированном виде 21 /-блоков, которые записаны на ленте Т^. Одновременно машина проверяет, удовлетворяют ли /-блоки второму условию из определения Аи (имеются в виду /-блоки слов из Аиу Головка на ленте
Т9, сдвигаясь вправо начиная с отмеченного квадрата, заносит на эту ленту в закодированном виде блок с ленты Т4, именно блоку «1^2 ••• «<* ставится в соответствие квадрат ленты (этот квадрат отмечается), на который она приходит, осуществив сдвиг на
2 ик • 2fe-‘
к=\ квадратов вправо.
Для /-блока слова из Аи сдвиг производится максимум на [/(/)]
к=1
квадратов и этот сдвиг соответствует блоку
11 ... 1 00О*.
' /-[но]
Отсутствие сдвига (т. е. начальный квадрат) соответствует /-блоку 00 . .. 0 *.
После окончания кодирования /-блока головка на ленте Т9 возвращается к отмеченному начальному квадрату и начинается кодирование следующего /-блока, пока не будет исчерпана запись на ленте Г4. При реализации сдвигов на 2к-х (й = 1,2,..., [f (/)]) квадратов вправо используются группы, записанные на ленте Т2. Для записи кода произвольного /-блока слова из Аи требуется число квадратов, не превосходящее 2^)] < £№ = [/(2Д/ + 1))/2\ и кодирование является взаимно однозначным. При кодировании /-блока слова из Аи машина совершает самое большее 2№+1 шагов, так как головка на ленте Т9 всегда возвращается к отмеченному начальному квадрату.
Рассмотрим теперь четвертый этап. Машина, после того как она закодировала базу (первые У /-блоков), проверяет (2^ + 1)-й блок (т. е. проверяет, совпадает ли он с каким-либо блоком из базы). На ленте Т9 головка движется подобно тому, как она двигалась, кодируя блок, но соответствующий квадрат не отмечается (как на третьем этапе), а проверяется, отмечен он или нет, затем головка возвращается к начальному квадрату и машина выдает выходной символ 1 (или 0).
Пятый этап. Машина воспринимает входные символы следующего блока, и они проверяются головкой на ленте Т9 так же, как на четвертом этапе. Если ик есть й-й (^^[/(/)]) символ блока, то головка движется на ик*2к-х квадратов вправо и машина выдает выходной символ 0. Затем машина воспринимает (й 4- 1)-й символ рассматриваемого /-блока и т. д. На том шаге,
когда входным символом является машина определяет, является ли квадрат под головкой на ленте Т9 отмеченным, затем эта головка возвращается к начальному квадрату и машина выдает выходной символ 1 или 0. Машина работает так до тех пор, пока не будет достигнута максимальная возможная длина входного слова, самое большее 2w^i 4- 1) символов, т. е. самое большее 2г‘+1 /-блоков, затем машина выдает только нули (в соответствии с определением Л^). Число блоков, следующих после (2* + 1)-го блока, контролируется с помощью ленты Тг.
Оценка временной функции машины Му. Мы хотим произвести оценку временной функции т^^). Пусть длина первого блока входного слова у длины п будет / + 1. Тогда могут иметь место три случая:
n<^-V !)(/ + 1),
(2Z + 1)(/ + \^<п<2^Ца- 1),
n>2^4i + !)•
В первом случае машина Му обрабатывает слово и за п шагов (смотри первый этап работы машины М^). Во втором случае время работы будет:
+ Сх • 1Ц2ЧН 1)) ++ u^4i+i)) ++ i + 1 +2i t/(24/+D) ,* * 2Z+ Сх • 1Ц2ЧН 1)) ++ u^4i+i)) ++ i + 1 +2i t/(24/+D) ,* * 2Zz 2 щгчгмв21z 2 щгчгмв21запись 2^ + 1 /-блоков на ленты Т4 и Т^ (первый этап работы);
+ Сх • 1Ц2ЧН 1)) +
+ u^4i+i)) +
+ i + 1 +
2i t/(24/+D) ,
* * 2Z
+ Сх • 1Ц2ЧН 1)) +
+ u^4i+i)) +
+ i + 1 +
2i t/(24/+D) ,
* * 2Z
z 2 щгчгмв
21
z 2 щгчгмв
21
запись U (2г (/+1)) символов на ленту Т7 (второй этап (а));
„вычисление“ [f (/)] и запись [/(/)] на ленту Т8 (второй этап (б));
кодирование базы (третий этап);
проверка самое большее 2* /-блоков (четвертый и пятый этапы);
откуда окончательно
/(y)<(2z + 2).(/+ 1) + (С, + 5). WkH 1)),
из чего следует (так как n^U^y что /(у) ^ С-U(/+ 1)), 2
где константа С зависит только от функции U kn) и способа ее вычисления. Так как временная функция Щг^ монотонно возрастающая, то tk^-^ С • ЩпУ
В третьем случае входное слово у может быть представлено как ЩУ2, где длина слова Ui равна 2г‘+1(/+ 1). Время обработки слова у будет
/ (у) = / (у,) + (n - 2i+l (i + 1)) < С ■ и (2Z+I и + 1)) +
-tn-21+4i + 1)<С • UH
(Последнее неравенство имеет место, так как функция U (п) монотонно возрастающая и С > 1.)
Рассмотрев все три случая, мы имеем
т^ W<C • U (п), ч. т. д.
ПРЕДЕЛЬНАЯ ТЕОРЕМА
Предварительно мы докажем следующую теорему.
Теорема 2. Если машина Тьюринга М со входом распознает множество Av, то для бесконечно многих значений п имеет место следующее неравенство*.
т^^>С.иН
где С > О — константа, зависящая только от числа лент и числа символов внутреннего алфавита машины М.
Доказательство подобно доказательству для множества А у Хенни [1]. Мы дадим только его краткий набросок.
Будем считать две /-базы «различимыми» в том и только в том случае, когда существует /-блок, который является частью одной /-базы и не является частью другой /-базы. Можно выбрать 2Z — 1 попарно различимых r-баз, состоящих из /-блоков и удовлетворяющих условиям, наложенным на множество Аи- Обозначим через aj (j = 1, 2, ..., 22— 1) различи
мые /-базы, которые соответствуют какому-то так определенному выбору /-баз. Далее пусть bj (j = 1, 2, .22tfU)1 — 1)— произвольные /-слова (напомним, что /-слово — это слово, содержащее конечное число к = 0, 1, 2, ..., /-блоков), которые состоят самое большее из 2г‘ — 1 /-блоков, удовлетворяющих условиям, наложенным на /-блок множества Аи. Тогда имеет место следующая
Лемма. Для каждого /^ 1 существуют положительное целое / U^/<2) и t-блок а, такие, что всякой распознающей
множество Av машине Тьюринга для обработки слова ajbjd требуется время [число шагов), большее чем щ, где
— 2^(^ — log Q — t* log s — 1
У/ —2 • t • log s*
Здесь Q — число внутренних состояний, t — число лент, as — число символов внутреннего алфавита рассматриваемой машины.
Доказательство.
Пусть Q-s*>22\ тогда logQ + / • logs>2— 1,
поэтому 2lf (0] — log Q — t • log s — 1 < 0, откуда следует, что
^H-iogQ-Mog $-1
2-Mogs
Пусть Q • sz <i 22^ ^"Л Введем понятие х-конфигурации машины Тьюринга. В х-конфигурацию входят состояние машины, символы, расположенные на лентах под головками, и х символов слева и справа от них (всего 2х + 1 символов на каждой ленте). Таким образом, имеется самое большее Q-s^2^1) различимых х-конфигураций данной машины. Пусть хг — наиболы шее целое, удовлетворяющее соотношению
Q.S4^/+1)^22”1 <22-1.
Разумеется, х^^О согласно предположению (б). Произведя логарифмирование, получим
log Q + 2xzZ • log s + t • log s C 2*^0)1 — 1.
Из последнего неравенства и того факта, что х^ — наибольшее целое число /, удовлетворяющее неравенству Qsf Г2/+1)^ ^22\ следует, что
п / 2^(^ — log Q — / • log s — 1.
О ^ X; <" < Xi + 1.
2 • t • log s1
Так как Q • s^ ) < 2— 1, то число Z-слов а^ (где /= 1,
..., 22— 1) больше чем число различимых хгконфигура-
ций рассматриваемой машины. Поэтому существуют два /-слова арЬр и aqbq (где р + q^ такие, что если эти слова подать на вход машины, то в обоих случаях хг-конфигурации в моменты времени, когда выдается последний выходной символ, будут равны. Но базы ар, aq различимы; следовательно, существует /-блок, который является частью одной, но не является частью другой базы. Обозначим его буквой d. Предположим, что /-блок d обрабатывается меньше чем за х^ + 1 шагов, т. е. в процессе обработки блока d головки машины не покидают квадратов, входящих в начальную хг-конфигурацию. Машина обрабатывает таким образом последний /-блок d входных слов apbpd, aqbqd. Итак, либо оба входных слова apbpd, aqbqd воспринимаются машиной, либо оба отвергаются.
Мы пришли к противоречию, так как /-блок является частью одной из баз aPl aq, но не является частью другой. Таким образом, время обработки /-блока d входного слова apbpd
(и также соответственно время обработки /-блока d входного слова aqbqd] равно или больше чем хг- + 1 > щ.
Следствие. Если а^ (/ — 1, 2 . . . 22^( )j — 1) — различимые 1-базы, то существуют положительное целое к и i-слово h, такие, что
i-слово h содержит Y i-блоков, удовлетворяющих условиям, наложенным на i-блоки множества Аи\
при обработке машиной Тьюринга слова akh время обработки каждого из 21 i-блоков слова h больше чем щ.
Доказательство. Пусть имеются различимые /-базы aj, тогда в соответствии с леммой существуют положительные целые р, q и /-блок dx, такие, что при переработке слов apdx, aqdx время обработки последнего /-блока (,dx^ больше чем щ. Возь- мем /-слова а. (/ = 1, 2... 22— U, такие, что ap=apdxi
aq = ctqdx и а^ -^а. для остальных /, и применим к ним лемму. Мы получим снова то же самое число /-слов а” и т. д. Этот процесс закончится, когда будет получена группа /-слов, по крайней мере одно из которых имеет длину 2i+1(t + 1), т. е. содержит 2i+1 /-блоков. Ясно, что такое /-слово обладает указанными в формулировке следствия свойствами.
Теперь мы перейдем к доказательству теоремы 2.
Введем следующее обозначение: nj = 2-?+1 (/ + 1). Для каждого положительного целого п существует i, такое, что
nt = 2i+1 (i + 1) < п <+ 2) = ni+v
Тогда т(ц) ^т(цг), и в соответствии со следствием
т \ \ 2zz, - g^^-logQ-Mogs-l)
T№)^zu,-2./.logs’
где Q, t, s —константы; поэтому для больших значений i имеет место неравенство
2г' + 1Н/)12,+^^7
х 73•t • logs 6 • t • logs *
так как 2W^ > WH. Далее, так как 2W) = [7(2Д/ + 1))/2г* (смотри определение множества Д^), имеет место следующее
неравенство:неравенство:т(га)>т(га)>Щ2Ч/+_1П_6 • t • log sЩ2Ч/+_1П_6 • t • log s
неравенство:
неравенство:
т(га)>
т(га)>
Щ2Ч/+_1П_6 • t • log s
Щ2Ч/+_1П_6 • t • log s
Для t>3 выполняется неравенство 2f(t + 1) > 2г’+2(/+ 2)/5 и, поскольку функция U равенство
монотонно возрастает, имеет место
не-
откуда следует, что
х 16 • Ь log s *
поскольку nw > п.
Для завершения доказательства теоремы 2 достаточно показать, что для бесконечно многих значений п имеет место неравенство (7(ц/5) > (7(ц)/25. Предположим, что это высказывание ложно, т. е. что для почти всех п выполняется неравенство U (ц/5) U (ц) /25 или 25 • U (п!Ъ) U (п).
Тогда можно выбрать такое По, что
U (5ц0)^25У(/г0),
U^n^^- Ukna\
Согласно предположению, U Vn^^ti?-6^ поэтому i
lim sup U ^/n2-e < oo.
n->OO
Таким образом, последовательность
U (5' • п0>(5' • ге0)2“еU (5' • п0>(5' • ге0)2“е(для / = О, 1, 2, ...)(для / = О, 1, 2, ...)
U (5' • п0>(5' • ге0)2“е
U (5' • п0>(5' • ге0)2“е
(для / = О, 1, 2, ...)
(для / = О, 1, 2, ...)
имеет lim sup, меньший, чем оо, но
П-^оо
и (5' • n0) 52tU (л,) -et
(^ПэГ^ 52^-8
что противоречит предположению.
Подведем теперь итог полученным результатам. Каждой монотонно возрастающей функции U(n). которая вычислима в реальное время и для которой имеет место соотношение n ^ U (п)<п2~\ можно поставить в соответствие множество 21
слов Ац^ А, такое, что
Аи распознается машиной Тьюринга со входом Ми за время Т (п) = С) • Щп) (согласно теореме 1);
если машина Тьюринга со входом распознает Аи. тогда для бесконечно многих значений п ее временная функция тм^> См-1Дп?), гДе См—константа, зависящая от числа лент и от числа символов во внутреннем алфавите машины М (согласно теореме 2).
Непосредственным следствием двух предыдущих теорем является следующая:
Предельная теорема. Пусть Т, U— монотонно возрастающие временные функции, и пусть функция U вычислима в реальное время, причем п ^U (п)^п2~& для подходящего е > 0. Далее 21
пусть lim Т (n)/U (п) = 0. Тогда можно построить множество, П->оо
которое распознается за время U^n), но не распознается за время Т (п).
Доказательство. Примером такого множества является множество АП.
ЛИТЕРАТУРА
Hennie F. С., On-line Turing machine computations, IEEE Trans., EC-15 (1966), 35—44. (См. стр. 249—270 настоящего сборника.)
Y a m a d a H., Real-time computation and recursive functions not real-time computable, IRE Trans., EC-11 (1962), 753—760. (См. стр. 139—155 настоящего сборника.)
СЛОЖНОСТЬ ВЫЧИСЛЕНИЙ НА ОДНОЛЕНТОЧНЫХ
МАШИНАХ ТЬЮРИНГА 9
Дж. Хартманне
ПРЕДВАРИТЕЛЬНЫЕ ЗАМЕЧАНИЯ
На протяжении всей статьи мы имеем дело с количественными аспектами вычислений на одноленточных машинах Тьюринга с записью на ленте. Мы предположим, что машина Тьюринга используется для распознавания последовательностей в некотором конечном алфавите I.
Множество всех конечных последовательностей (цепочек) в алфавите / мы обозначим через /*, а длину последовательности w = %1%2. . • хк, Хг^к \^i^-k обозначим через /(ш) (в данном случае l(w) = k).
Пустая последовательность обозначена через А и /(А)=0. Лента машины Тьюринга М неограничена вправо, и входная цепочка w = %1%2 • • ♦ хк (в /*) записана на первых к ячейках ленты, а остальная часть ленты в начале вычислений пуста. Первая ячейка ленты, кроме хь содержит единственный маркер (скажем, штрих при символе %i), который сохраняется на протяжении всего вычисления, чтобы предотвратить уход машины с ленты. Следуя Хенни [1], мы употребляем слово отрезок (сегмент) ленты для обозначения конечной части ленты, а слово «лента» используется для обозначения бесконечной последовательности ячеек, в которых могут записываться символы. Тогда равенство / = wwx показывает, что лента t получена сочленением отрезка ленты w с бесконечной вправо лентой wx. Чистая лента (неограниченная вправо) обозначается через wk.
Машина Тьюринга всегда начинает работу с того, что ее читающая головка обозревает крайнюю слева ячейку ленты (первый символ входной цепочки). При каждой операции машина М обозревает ячейку ленты, находящуюся под читающей головкой; считываемый с ленты символ и настоящее состояние машины однозначно определяют:
символ (из конечного алфавита), который печатается в обозреваемой головкой ячейке,
9 HartmanisJ., Computational complexity of one-tape Turing machine computations, J Assoc. Com put. Mach., 15, № 2 (1968), 325—339.
новое состояние (из конечного множества состояний), в которое переходит М, и
движение читающей головки, которая двигается на одну ячейку вправо или влево по ленте, вплоть до момента останова машины при ее переходе в отвергающее или допускающее состояние.
Множество конечных последовательностей А в /, А ^ Р, допускается или распознается машиной Тьюринга М тогда и только тогда, когда М останавливается при любом входе w из /*, и допускает вход w, если он принадлежит А, и отвергает его в противном случае, переходя в допускающее или отвергающее состояние соответственно.
Ниже мы определим три количественные характеристики сложности вычислений на одноленточных машинах Тьюринга со входом.
Число операций, совершаемых машиной Тьюринга в процессе выяснения того, допускается или отвергается входная цепочка, является нашей мерой времени. Пусть Т^ является вычислимой функцией, отображающей неотрицательные целые числа в неотрицательные целые числа, Т: 3-^3. Тогда мы скажем, что множество А является Т (пУраспознаваемым тогда и только тогда, когда существует машина Тьюринга М, которая допускает А и которая совершает над каждым входом длины п не более чем Т^ операций.
Объем ленты, используемый машиной Тьюринга, является нашей мерой памяти. Пусть L^—вычислимая функция, 1л 3 -^3. Тогда мы будем говорить, что множество A L(n)-pac- познаваемо или распознаваемо на L(n) -ленте тогда и только тогда, когда существует машина Тьюринга, допускающая А и использующая для каждого входа длины п не более чем L^ ячеек ленты.
Последняя мера сложности основана на числе моментов времени, в которые М пересекает границу между двумя ячейками. Пусть R(n) является вычислимой функцией, R; 3-^3. Тогда множество А называется R (^-распознаваемым, если существует машина Тьюринга М, допускающая А, которая работает над каждым входом длины п, не пересекая каждую границу между соседними ячейками ленты более чем R(n) раз). (См. связанные с этим работы [1—4].)
Скажем, что машина Тьюринга М определяет Т(п), если для всякого входа длины п машина использует не более чем Т(п)
операций, а для некоторого входа длины п— в точности Г (/г) операций.
Аналогично машина М определяет L(n) или R^n), если М никогда не использует более чем L(n) ячеек ленты или R(,n) пересечений границы между ячейками ленты для входов длины п, а для некоторого входа длины п использует в точности L(n) ячеек ленты или совершает ровно R^n) пересечений некоторой границы.
Теперь мы дадим краткое описание секущих последовательностей («следов»), являющихся основным аналитическим методом этой статьи. Этот метод рассматривался сначала в [4], а затем в [1]. Для машины Тьюринга М и ленты / с каждой границей между двумя соседними ячейками ленты / мы свяжем упорядоченную последовательность состояний s (1), s (2),. . ., s (/г); s^ есть состояние, в котором машина М в Z-й раз пересекает эту границу в процессе вычисления; назовем эту последовательность следом х\ Если t = wxw2l то след на границе между wx и w2 мы обозначим через C(wx; w2).
Ясно, что след C^wv.w^ полностью описывает информацию, переносимую через границу между wx и w2 машиной М в процессе вычисления. Таким образом, мы легко устанавливаем следующий результат, утверждающий, что любой сегмент ленты между одинаковыми следами можно выбросить без изменения вычислений на оставшейся части ленты [1].
Лемма 1. Если t — wxw2w3w4w3 и для М C(wxw2; w3w4w^ = = C^\W2W3\ Wfl^ то C(wx, w2w4w^ = Ckw<t w2w3w4w^ и C ^wxw2w4; w5) = C kwxw2w3w4\ w^.
Заметим, что машина M изменяет свое состояние перед тем» как она сдвигается, и поэтому, если М допускает (отвергаем t = wxw2w3w4w^ она допустит (отвергнет) t = wxw2w4w5.
РАСПОЗНАВАНИЕ НЕРЕГУЛЯРНЫХ МНОЖЕСТВ
Известно из [5], что если множество А распознается на одноленточной машине Тьюринга с записью на ленте, которая ничего не пишет на своей ленте, то А является регулярным множеством и может распознаваться конечным автоматом или, что эквивалентно этому, машиной Тьюринга, которая обозревает каждый входной символ только один раз.
Ч Термин взят из работы [4]. — Прим. перее,
Недавно Хенни [1] обобщил этот результат и показал, что если М допускает А и для некоторой константы к R(n)^k или Т^^кп, то множество А регулярно1).
Теперь мы покажем, что существуют точные нижние границы скорости роста R^ и Г (и), при которых возможно распознавание нерегулярных множеств на одноленточных машинах Тьюринга. Первые две теоремы были получены Трахтенбротом [4]
и независимо автором.
Теорема 1. Если A R ^^распознаваемо и Нт -^-^- = 0, то П->оо П
А является регулярным множеством.
limlim= 0= 0log пlog пДоказательство. Мы покажем, что из
lim
lim
= 0
= 0
log п
log п
следует, что R^^k для некоторой постоянной к, а стало быть, и результат Хенни о том, что А регулярно.
Пусть М распознает А и определяет R^nY (Таким образом, R^ является самым длинным следом, порождаемым машиной на входах длины и.) Если R^ неограничена, то существует бесконечная последовательность целых чисел 0 < п} < п2 <
< м3 < .. ., такая, что R^n^ > R(n) для nt>n. Итак, М порождает след длины R(n^ в первый раз при входном слове длины п^.
Мы теперь покажем, что для входных слов длины Пг, на которых возникает след длины R^ntY никакой след не может появиться более чем дважды. Пусть ^ = ^1М2м3м4, ^2,^3^ Л, г пусть М на t = ^!^2^з^4^ь порождает следы
C^Wx; w2w3w4wb) = С (,wxw2; w3w4wb) = С (wxw2w3; w4wbY
Тогда по предыдущей лемме мы знаем, что, когда М начинает работу с входным словом tf = wxw3w^Wb или wxw2w^wbl она порождает следы длины R^n^ на ^i^3^4^^ или на ^]Ку2^4^6- Но, поскольку эти сегменты короче чем /г-, мы приходим к противоречию с тем фактом, что след длины R^n^ достигается впервые на ленте длины п^
Таким образом, на последовательности входных сегментов tx, /2, ... длин пх < п2 < ... соответственно никакой след не порождается более чем два раза. Мы используем этот факт для вычисления возможной скорости роста R(ntY
Если у М есть Q состояний (Q>2), то число различных следов длины не более г дается формулой
9 До Ф Хенни этот (и даже более сильный) результат был получен в работе [4]. — Прим, персе.
Если на сегменте длины tit никакой след не может быть порожден больше чем два раза, то ^ккп^х ^ п^ Логарифмируя обе части неравенства по основанию Q, получаем, что R(nt) + 1 + Iog2> log м^, откуда R<n^> logfti — 2. Но тогда
limп->ооlimп->ооRW log иRW log и¥=0.¥=0.
limп->оо
limп->оо
RW log и
RW log и
¥=0.
¥=0.
Таким образом, равенство
limп->ооlimп->ооRW log ПRW log П= 0= 0
limп->оо
limп->оо
RW log П
RW log П
= 0
= 0
влечет, что R^n^^k и, стало быть, А регулярно.
Следствие 1. Если машина Тьюринга М распознает нерегулярное множество А и определяет R(n), то
sup -т™ > 0.
Х^п
Доказательство следует прямо из теоремы.
Дальше мы покажем, что существуют нерегулярные множества, распознаваемые с R(n) = 2]log2^[. (Символ ]%[ здесь обозначает наименьшее целое число к, такое, что k^ х.)
Лемма 2. Существует одноленточная машина Тьюринга М, которая, начиная работу с ленты t = 1пм^, вычисляет с R(n) = = 2]log2n[ двоичное представление п (т. е. М останавливается, написав на ленте двоичное разложение числа п).
Доказательство. Машина М движется слева направо по сегменту и отмечает первую, третью, пятую и т. д. неотмеченные ячейки, затем возвращается и повторяет этот процесс до тех пор, пока все ячейки сегмента не будут отмечены. Очевидно, что в двоичном разложении
к
п = 2 ^2Z
t =о
коэффициент at_\ есть 1, если крайняя правая неотмеченная ячейка отмечается на Z-м колебании, в противном случае а^_\ = 0. Таким образом, чтобы вычислить акак_\ ... а0, машина просто пишет at в соответствии с указанной процедурой. Поскольку этот процесс выполняется за ]log2 ^[ колебаний, мы видим, что существует машина М, вычисляющая двоичное разложение с R (n) = 2]log2n[1).
') Если отмечать ячейки и при обратном движении головки, то требуемую работу можно выполнить с R (я) — ]loga п[ 4- 2. — Прим, ред»
Из приведенного доказательства следует (как было уже показано в [1]), что п = 2h тогда и только тогда, когда процесс оканчивается за к колебаний и крайняя правая ячейка отмечается в последнем колебании. Таким образом, нерегулярное множество {12А!|&=1, 2, ...} является <R^ = 2]log2п\)-распознаваемым.
Дальше мы покажем, что существует точная достижимая нижняя временная граница при вычислении нерегулярных предикатов. Этот результат и следствие из него были впервые получены Трахтенбротом [4] и независимо от него автором1).
Теорема 2. Если А является Т ^пУраспознаваемым и hm nlog ra =0- го А регулярно.
Доказательство. Заметим, что время вычислений равно сумме длин всех следов в вычислении. Дальше доказательство теоремы 1 показывает, что коль скоро множество А нерегулярно, то существует бесконечно много входных сегментов tXl t^ /3, ... длин П\ < п^ < п^ < ..., на которых ни один след не порождается более чем дважды. В этом доказательстве было показано далее, что, даже если М порождает кратчайшие следы на сегментах ^, длина самого большого следа R^n^ должна быть такой, что R^n^^ Xo^Qtit — 2.
Таким образом, для всех i время вычислений Т(цг) на ^ должно быть таким, что
Т (уг^ > 2 2 jQj; r = ]logQn, [-3,
поскольку существует QJ различных следов длины / и ни один след не может встретиться чаще чем два раза. Заметим, что машина М не обязана порождать все следы длины, меньшей чем logQ (лг2)—2, но при замене коротких следов на более длинные неравенство может только усилиться. Возвращаясь к неравенству, мы видим, что
т Ы ^ 2 2 /Q> > W > 2 (logQ щ - 3) п&Л
и поэтому
lim —т2-2- =# 0.
М-^оо П 10g Л
Таким образом, из того, что lim "^п = 0, следует, что А регулярно.
^ Следует отметить, что автором этот результат здесь публикуется впервые, а работа [4] опубликована в 1964 г. — Прим перев.
Следствие 2. Если М распознает нерегулярное множество и определяет Т(п), то
supП-> ООsupП-> ООп log пп log п0.0.
sup
П-> ОО
sup
П-> ОО
п log п
п log п
0.
0.
Доказательство немедленно следует из теоремы.
Поскольку множество Л = {1 |&=1, 2, . ..} может быть распознано с ]log^[ колебаниями для входов длины щ мы видим, что А (Т (п) = 2n]logn[)-распознаваемо.
Предыдущий результат можно расширить, чтобы получить соотношение между временем и объемом памяти, используемыми при вычислении с неограниченной длиной следов.
Теорема 3. Пусть М останавливается для всех входов и определяет L(n), R(n) и Т ^пу Тогда lirn Л~; = 0 влечет существование таких С > 0 и N, что
R(n)^C log L (п), Т CL (дг) log L (n) для n^N.
Доказательство. Сначала мы покажем, что для каждой входной ленты t = wwb М не может породить два одинаковых следа на первоначально пустой ленте w^ Если C(wbr\ bhwb) = C(wbrbk; wbV то, согласно лемме 1, мы можем удалить сегмент bh и при этом не изменить вычисления, исключая то, что будет на к следов меньше. С другой стороны, удаление bk из Wb оставляет ленту wb неизменной, и поэтому t = wwb не изменяется. Таким образом, М будет порождать точно столько же следов, как и прежде, и (ввиду того что Л1 остановится) мы заключаем, что к = 0.
Поскольку
существует целое число Nx, такое, что L^^^n для /2>^1. Следовательно, для каждого щ n>NXl существует вход длины /г, для которого L^ — n^^^L^n), и мы видим, чю при этом входе М использует ^Ltn) ячеек ленты wb. Отсюда следует, что Л1 должна порождать по крайней мере ^ТДп) различных следов, поскольку на Wb никакие два следа не повторяются. Существует
различных следов длины г или меньше (Q>2). Для того чтобы породить xkL^ различных следов, нужно иметь QW+1 > >V2L(az), и поэтому
R (п) > logp L (п) - 1 - logQ 2.
Отсюда следует существование положительных констант Ci и N2, таких, что
R{n)^ Ci logQL (az) для n^N2.
Время вычисления Г (az), n^Ny, не меньше чем сумма длин X!2L^ различных следов, порожденных М. Таким образом,
Г (и) > 2 IQ1, Г = ] logQ L (п) [ - 3,
1=0 и поэтому
TW>^ogQLW-3UWQ"3.
Отсюда следует, что существуют две положительные константы С2 и Мз, такие, что
Т (az) ^ C2L (az) logQ L (az) для az > N3.
Для получения требуемых неравенств положим С = min(Cb С2), а А/ = max(W2, ^з).
Теорема 4. Пусть М останавливается при всех входах, определяет R(n), L^n), Т(п), и пусть функция R^ неограничена. Тогда существуют две положительные константы Су и С2, такие, что для бесконечно многих значений ni
R^n^CilogQL^nt1),
Т {щ} > C^L Vi^ logQ L (tiiY
Доказательство. Поскольку R (п) — неограниченная функция, то существует бесконечно много значений L(ny)< < L^n^ < Ь^пз) < таких, что R(n) < R^n^, если L(az)< <Ь^ПгУ Аргументами, подобными тем, которые были использованы при доказательствах теорем 1 и 2, можно показать, что ни один след не может повторяться больше чем два раза при вычислении, когда /? (azt) достигается в первый раз (т. е. на кратчайшем L(az)). Снова вычисляя число разных следов, мы заключаем, что для некоторых Ci > 0 и ^l > 0
R (щ) ^ С! logQ L (щ^ для n^Ny.
Аналогично теперь мы можем подсчитать число операций, выполняемых в этих вычислениях, и установить, что
Т<щ»С2Е (nJ logQ £ (nz) для щ>П2.
Беря az^ > max(^l, ^2), мы получаем искомое бесконечное множество целых положительных чисел, для которых выполняются упомянутые неравенства.
Предыдущие результаты показали, что существует резкий скачок времени вычислений, когда мы переходим от регулярных вычислений к нерегулярным. Далее мы возвратимся к классификации сложности нерегулярных множеств по их времени вычислений на одноленточных машинах Тьюринга. Связанные с этим результаты для многоленточных машин Тьюринга можно найти в [2, 6].
ИЕРАРХИИ ВЫЧИСЛЕНИЙ С ОГРАНИЧЕННЫМ ВРЕМЕНЕМ
В этом разделе мы исследуем классификацию нерегулярных множеств по времени, которое требуется для их распознавания.
Для вычислимой функции T^ti) (R(n)) назовем класс Т(и) -распознаваемых (/? (az) -распознаваемых) множеств последовательностей классом сложности и обозначим его через Ст (Сн). Следующий результат показывает, что существует бесконечно много классов сложности.
Лемма 3. Если Т (az) — вычислимая функция, то существует рекурсивное множество последовательностей А, не принадлежащее Ст.
Доказательство проводится обычным диагональным методом [2].
Далее мы покажем, что каждое вычисление можно ускорить в постоянное число раз, если допустить обычное сгущение входных цепочек, т. е. мы позволяем записывать несколько входных символов в одной ячейке ленты.
Теорема 5. Если А Т(az)-распознаваемо, то А (\хкТ(.п^Ураспознаваемо.
Доказательство. Пусть входное слово уплотнено на два символа в каждой ячейке ленты и А распознаваемо машиной М за время Т(az). Тогда с помощью метода, аналогичного тому, который был использован в доказательстве теоремы 2 в [2], мы можем показать, что существует машина М', которая распознает А и совершает одну операцию для каждых двух операций М. Таким образом, М' распознает А за время F (п)— ^У/2Т(П)[.
Следующий результат показывает, что для медленно растущих функций небольшое (нелинейное) возрастание времени вычисления достаточно для распознавания более сложных множеств. Для доказательства этого факта мы введем функции колебаний, которые очень легко вычисляются. Они используются
для вычисления числа колебаний над входным сегментом, совершаемых машиной М, и для окончания вычислений, если число колебаний станет слишком большим. Функции колебаний играют роль, аналогичную функциям, вычислимым в реальное время, в изучении времени вычислений на многоленточных машинах [2], и реализуемым (или «конструируемым»1)) функциям в изучении вычислений с ограниченной памятью [3].
Определение. Пусть F— монотонная возрастающая функция, отображающая множество натуральных чисел в себя, F\ 3-^3, такая, что для некоторого Q>0 и для больших п Зп < F <пХ Q^1. Тогда F является функцией колебаний в том и только в том случае, когда существует вычислимая монотонно возрастающая функция g, g: 3-^3, такая, что множество
^{i^V^1^^^ 2, ...}
может распознаваться машиной Тьюринга М, совершающей не более чем F~x (и) колебаний над входным словом длины п.
Заметим, что F^n) не может расти быстрее, чем экспонента, так как в противном случае
sup —: = О,
и по следствию 1 за М(п^ колебаний могут определяться лишь регулярные множества. Нижняя граница для F(n) явно используется в доказательстве теоремы 6 (см. также обсуждение после следствия 3).
Функции колебаний образуют интересный и богатый класс функций (который будет исследоваться далее). Здесь же нам достаточно отметить, что этот класс содержит много часто употребляемых функций.
Например,
ру^Ь^ p>q; F№ = 2fe; F№ = 2W, p!q<\;
F^ = k ]log2kV\ p = 1, 2, ...; F^ = k ]log log k\
и т. д. Чтобы лучше понять функции колебаний, рассмотрим F^ = 2k. Возьмем g{k) = к. Тогда, используя лемму 2, мы видим, что множество (РО2 -z?|fe=l, 2, . ..} является распознаваемым за к колебаний с к ^ log2 п = F~x (п). Таким образом, Р^к) = 2к является функцией колебаний.
Чтобы понять, как используется вспомогательная функция g^k), рассмотрим F(k) = k^^ (см. в [1] описание используемого метода. Пусть g(k) = 2(ih. Тогда для распознавания множе-
т) В нашей литературе такие функции называются также точными, емкостными и сигнализирующими. — Прим, перев.
ства [12^ О2" ”2^ |^=1, 2, ...} мы построим машину М, которая проверяет (с помощью процесса, описанного в лемме 2), будут ли длина входной последовательности и длина ее отрезка степенями двойки, и проверяет, будут ли числа колебаний, необходимых для выяснения этого вопроса для двух отрезков, находиться в отношении p]q. Это может быть сделано за кр колебаний над входной последовательностью. Поскольку п = 2р^, то F~x (п) = 2kq ^ кр (для больших п), и поэтому F(k)^=№q является функцией колебаний.
Аналогичным методом можно показать, что много других функций являются функциями колебаний. Автор убежден в том, что функции колебаний следует изучить более детально и сравнить их свойства со свойствами функций, вычислимых в реальное время, и реализуемых функций. Пока что это систематически еще не проводилось.
Теперь мы применим функции колебаний для обобщения результатов Хенни [1, теорема 4 и следствие 4] и покажем, что функции колебаний можно использовать для определения множеств последовательностей с точными оценками времени их распознавания.
Теорема 6. Если F является функцией колебаний, то существует множество последовательностей [R(п) = F~x (п)]- и Т(п) = = пР-х (п)Ураспознаваемых, но не Ri(n)- или Тх(п)-распознаваемых, если
ПтП->ооПтП->ооRt 00Rt 00= 0= 0илиилиПтП->ооПтП->ооTxW Q nF-1 (п)TxW Q nF-1 (п)
Пт
П->оо
Пт
П->оо
Rt 00
Rt 00
= 0
= 0
или
или
Пт
П->оо
Пт
П->оо
TxW Q nF-1 (п)
TxW Q nF-1 (п)
Доказательство. Покажем, что множество
А = (w^Wt | wt е (0 V I)*, l(^i) = g(k), w = aF^W-^g^ удовлетворяет теореме. Для краткости положим g(k) = k. Поскольку F(k) является функцией колебаний, мы можем за k = l(wt) колебаний узнать, будут ли удовлетворять условиям длины трех отрезков, и в то же время выяснить, одинаковы ли первый и третий отрезки. В этом вычислении п = Р(к) и поэтому F”'(n) = к. Таким образом, множество А является \R(n) = = F~x (нераспознаваемым. Дальше, так как каждое колебание не длиннее чем п, мы видим, что А распознаваемо за не более чем Т(п) = ^nF^ (п) операций. Таким образом (по теореме 5), А является \Т(п) = пР-х (^-распознаваемым.
Дальше мы покажем, что если
Hm -^L = 0,
П->оо nF (п)
то А не Ту (я) -распознаваемо. Для этого заметим, что для фиксированного к существуют 2й различных слов Wi, таких, что w^a^-^Wi принадлежит А и l^w^ = к. Положим
Ак = ^W^^^Wt 1I (^-) = /?} с Л.
Тогда все следы, порожденные М в средних отрезках w = aF^~2h последовательностей А^ должны быть различны, так как если C^WtaP; a^w^ = C(Wjar; ^Wj), p=kr или wt ф w^ то М допускает (по [1, теорема 1]) последовательность WtaP^Wj, не принадлежащую А. Таким образом, при распознавании слов из Ак М должна использовать 2Й[Г(6)— 26] различных следов в средних отрезках w. Так как F (6) ^>36, то существует С > О, такое, что 2^(6) — 26]> C^F(k).
Существует 2Q*^Qr+1 различных следов длины г или t = 0
меньше для машины с Q состояниями, Q ^ 2. Для получения C-2kF(k) различных следов нужно иметь r+ 1 ^ log[C• 2kF(k)^ и поэтому для некоторого Ci > 0
r+ 1 > Сук + log F(k\
Поскольку n = F(k) и k = F-x(n), мы заключаем, что (для больших п) г^ Су F~x(n), а, стало быть, sup -™ п) ^ 0. Та- П->оо F (п) ким образом, А не будет /?i (az)-распознаваемым, если
Вычислим теперь нижнюю границу для времени вычислений. Если в вычислениях встречаются все следы, то граница времени вычислений для слов из Ак дается соотношением
S IQ1!^ > log lC2ftF (£)] • С • 2ft • F > C3F (6) к z=o
при C3 > 0. Снова ввиду n = F (к) и k = F*x^ мы получаем, что для некоторой последовательности в Ак время вычислений должно превосходить C^F'^az).
Таким образом, из
Ит —^- = 0
П-»оо nF (п)
следует, что множество А не Ti(n)-распознаваемо.
Следствие 3. Пусть существует множество CnF"xw и к Ст влечетСледствие 3. Пусть существует множество CnF"xw и к Ст влечетF является функцией колебаний. Тогда Д, такое, что принадлежность А к
Следствие 3. Пусть существует множество CnF"xw и к Ст влечет
Следствие 3. Пусть существует множество CnF"xw и к Ст влечет
sup —т / > О, П-»оо nF
а принадлежность А к Ср-1^ и CR влечеч sup -4у^- > 0. П->оо F (п)
Доказательство немедленно следует из теоремы.
Приведенные выше результаты устанавливают для широкого класса функций (множество функций колебаний) множества последовательностей с хорошо определенным временем вычислений. К сожалению, рассуждение сохраняет силу только для медленно растущих временных функций, а именно для Т^^ <п2. Легко видеть, что это ограничение, как во многих других аналогичных доказательствах, происходит оттого, что мы строим множества, в которых два отрезка длины п или менее должны проверяться на тождество. Это можно сделать в пределах п2 операций, и, таким образом, эти результаты не удается распространить сверх п2 с помощью этих приемов.
Для получения результатов для более сложных вычислений, т. е. для больших временных функций, мы вынуждены применять диагональный метод. К сожалению, диагональное доказательство для одноленточных машин весьма затруднено, и результаты, полученные в этой статье для произвольно больших временных функций, значительно слабее, чем предыдущий. С другой стороны, есть предположение автора о том, что для произвольно больших временных функций Т^п) условие
lim -y-W- = 0
влечет Стх ^ Ст*
Следующий результат, полученный совместно с Дж. Хоп- крофтом, является лучшим из полученных до сих пор.
Теорема 7. Пусть Т(п), Т^^п2, определяется машиной Тьюринга и вычисляется на L(n) = ]\о§Т(п)[-ленте. Тогда существует множество, являющееся Т{п)]\о§Т(п)[-определимым и не являющееся Тх (п)-определимым для функции Тх (п\ такой, что
Доказательство. Мы дадим краткий набросок доказательства построением машины Тьюринга М, распознающей
за время 7"(rt)]log 7"(/г)[ множество Л, которое не распознается за время Т^п), еслит ,.
Пусть М является машиной Тьюринга, которая выполняет два различных вычислительных процесса (на разных участках ленты).
Первое вычисление: М пытается интерпретировать некоторую начальную часть входной ленты wwb как описание машины Тьюринга Mt и затем переходит к моделированию того, чю сделала бы эта машина с входной лентой wwb. Если М завершает вычисление, a Mt допускает w. то М отвергает ее, и обратно. Если w не описывает машины Тьюринга и вычисление не может проходить дальше, то вычисление останавливается и w отвергается. Можно показать, что для каждой ленты w (чей префикс описывает машину М^ существует константа к^ такая, что каждая операция Мг может быть смоделирована за кг операций М.
Второе вычисление. В этом вычислении М считает число операций, которые она совершает для первого вычисления, и останавливается и отвергает вход, если первое вычисление превышает Т^п) операций для входа w длины п. Так как Т(п^ определяется машиной Тьюринга, М может сосчитать Т(п) за Т(п) операций. (Ради простоты мы предположим, что Т(п) определяется машиной, которая останавливается на каждом входе длины п за Т (п) операций.)
Эти два вычисления независимы, и для их одновременного проведения операции чередуются: в первом вычислении (моделировании) Л1 отмечает ячейку ленты, на которой находится головка, «запоминает» состояние этого вычисления и тогда производит одну операцию второго вычисления (счета); после совершения этой операции М опять отмечает ячейку ленты, на которой стоит головка, и «запоминает» состояние этого вычисления; чтобы держать две «текущие позиции головки» совмещенными, М сдвигает всю запись в нижней части ленты (счет) так, чтобы совместить две головки. После этого цикл повторяется и машина колеблется между вычислениями. Поскольку Т(п) определяется машиной Тьюринга и вычислима на L (п) = ]log 7(и)[-ленте, мы видим, что на один цикл она может затратить 3]logT(n)[ или меньше операций. Таким образом, Г (п) циклов (или Т^п) операций) в вычислении М^ могут быть осуществлены машиной М с использованием не более чем 3T(n)]log Т(п)[ операций. Это приводит (теорема 5) к тому, что множество Л, определимое М, распознается за время 7(n)]log7'(n)[.
Теперь мы покажем, что если машина Тьюринга Mj работает за время Т\^ и
Иш = О,
то Mj не может определять множество Л, определимое ранее описанной машиной М. Для этого заметим, что для некоторого kj машина М моделирует одну операцию Mj за kj операций, когда описание Mj является префиксом входа Wj, записанного на ленте машины М. В силу предельного условия существует такое N, что kjTx^ < Т (п) для п > А/, и поэтому для достаточно длинного входа w (префикс которого описывает М,) у машины М достаточно времени для имитации того, что Mj должна была бы сделать со входом w, и после чего она выдает противоположный выход. Таким образом, множество, определяемое Mj, отличается от множества, определяемого М. Это завершает доказательство, так как мы установили, что за время Т^п)] 1°£ ^(^)[ можно распознавать множество, не распознаваемое за время Тх^пУ
Из приведенного доказательства ясно, что множитель ] log Г (az) [ входит в результат предыдущей теоремы ввиду необходимости совершать два независимых вычисления: имитацию Мг и счет.
Имитация использовалась для получения множества, отличающегося от всех множеств последовательностей в Стх, а операции счета были необходимы для завершения этих имитаций, и таковых требовалось больше чем T(zz)]log Т(п^. Кажется весьма правдоподобным, что при более глубоком проникновении в природу одноленточных вычислений мы были бы в состоянии исключить большие колебания между двумя независимыми вычислениями и уменьшить время, пропадающее в движении назад и вперед между двумя процессами.
В связи с этим интересно вспомнить, что соответствующий результат для многоленточных машин был сначала выведен в [2] и что этот результат содержал «квадрат». Только после моделирования многоленточных машин на двуленточных машинах в [6] удалось улучшить этот результат, но даже в этом случае нам кажется, что достигнут наилучший возможный результат.
РАСПОЗНАВАНИЕ БЕСКОНТЕКСТНЫХ ЯЗЫКОВ
В этом разделе мы изучим скорость распознавания бесконтекстных языков на одноленточных машинах Тьюринга.
Лемма 4. Существуют нерегулярные бесконтекстные языки, которые распознаются за время T(n) = n]\Qgn[ и с R(n) = = Ilog л[.
Доказательство. Бесконтекстный язык А = {1 ^0Л|^ — = О, 1, 2, ...} распознается с R(n) = ]logn[ и Т (п) = п\ log п\. Напомним, что можно вычислить двоичное разложение отрезка из единиц и отрезка из нулей и проверить их совпадение за не более чем ]logn[ колебаний машины Тьюринга (используя лемму 2).
Таким образом, нерегулярное множество А является (R(n) = ]log п[) - и (Г(п) = n]logn[) -распознаваемым.
Для U7 = %1%2 • • • хк ПОЛОЖИМ WT = Хк. . . Х2Х\. ,
«Лемма 5. Бесконтекстный язык А = {№ >^ WT\W ^ (О V1*} является (Т(п) = и2) -распознаваемым и не распознается за время Тх^п), такое, что
Доказательство. Существует простое доказательство, основанное на подсчете следов (см. [1]) 9- Используя функции колебаний и конструкции, аналогичные тем, которые применялись в [7, доказательство теоремы 3], можно показать, что существует бесконечно много различных вычислительных классов сложности бесконтекстных языков между временными функциями Т (п) = п ]log п[ и Т(и) = и2.
Наиболее интересная проблема, остающаяся еще открытой, состоит в определении наилучшей нижней границы времени, необходимого для распознавания любого бесконтекстного языка на одноленточной машине Тьюринга. Нам известно, что эта граница должна быть не меньше чем и2.
Предположение автора состоит в том, что существуют бесконтекстные языки, которые нельзя распознать на одноленточной машине за время Т (п) = п2.
Следующий результат устанавливает верхнюю границу для распознавания бесконтекстных языков. Неизвестно, хорошая ли эта граница, но автор считает, что ее можно значительно улучшить.
Следствие 4 (Янгер). Каждый бесконтекстный язык можно распознать за время Т(п) = п5.
Доказательство. В [8] показано, что каждый бесконтекстный язык является (Т(п) = п3)-распознаваемым на многоленточной машине Тьюринга. Прямое осуществление этого алго-
9 Этот и даже более сильный результат был одновременно и независимо получен Я. М. Барздинем [«Проблемы кибернетики», вып. 15 (1965), 245—248: «Сложность распознавания симметрии на машинах Тьюринга»] — Прим, иерее,
ритма на одноленточных машинах Тьюринга показывает, что каждый бесконтекстный язык является (Т(п) = м5)-распознаваемым.
Мы покажем, что проблема: сколько времени требуется для распознавания нерегулярных бесконтекстных языков, — является рекурсивно неразрешимой.
Теорема 8. Не существует алгоритма для решения вопроса, может ли нерегулярный бесконтекстный язык, порожденный грамматикой G, распознаваться за время Т(п) = n]logn[.
Доказательство. Пусть А и В суть ^-наборы ненулевых двоичных слов:
А = (юь ю2, ..., w^
В = (vn у2, ..., vkY vh Wi е (О V 1)* — Л.
Пусть А' и В' — такие же ^-наборы в штрихованном алфавите с индексами от к 4- 1 до 2к;
А' = ^ ^+2- W2k\
B' = (Vk+l’ ykW V2^
у'., &y'e(0'VlT—Л Для всех В
если ty; = й,й2 ... аг, а^^ V 1), то ®'к+( = а'га'2 ... а'г. Пусть i является двоичным разложением i-го натурального числа. Рассмотрим детерминированные бесконтекстные языки
L^ = {/, >fc /2 К /3 ... « ip ^^aip ... atalx | р = 1, 2, ...),
L (В) = {/] К /2 ^ ... К ip^ =*Ь1р ... Ь1гЬч\р = 1, 2, ...).
Тогда Т(Л)Г1 L(B)^= 0 в том и только в том случае, если существует последовательность индексов /ь /2,..., ih, такая, что
й[й[ ... а? = ЬТ,№ ... № .
Ч Ч lh 4 ч ч
Но проблема существования такой последовательности индексов для пары двоичных ^-наборов А, В рекурсивно неразрешима [9, 10]. Таким образом, проблема пустоты L(Л) А ЦВ) рекурсивно неразрешима.
Напомним, что L^A) и L(B)—детерминированные бесконтекстные языки, и поэтому L(A) и L(B) суть бесконтекстные языки.
Таким образом,
Л(Л)иТ(В) = Т(Л)Л£(В)
является бесконтекстным языком. Рассмотрим теперь бесконтекстный язык
L = Vanbn | n = 1, 2КЛЯЛ7) U LW»,
где АА' есть 26-набор
(^р w2, wk, w'+l, w'k^w'^.
Тогда из L^AA^ П L(BB') = 0 следует, что L^AA^U L(BBr) есть множество всех последовательностей над 0, 1, О', Г, % и L распознается (лемма 4) за время
T(n) = n]log п\.
Если L^AA^ П L(BB') + 0, то существует последовательность индексов /1, i^ . . . ,/г, такая, что
aTt ат. ... aTt =№№, ... № ,
ai^kai2A-k * • • ^i^k ~ ^^к^А-к . . . 6^ + fe.
Если мы обозначим ^i^i^ ... ^ir через Е^ ^ц + к^$Ц + -V к^$ ... ^ir-Vk через Е2, at ... at2atx через Л, и at^k... ... a^+ka^+k через Л2, то множество L содержит последовательности вида EtxEi2 ... Eim^^Aim ... At2Aix, где //^{1, 2}, и не существует последовательности в
<ЕХ V Е2у « * (А V А)*,
не имеющей такого вида. Но тогда, используя лемму 5, мы заключаем, что L требует Т^п) = п2 для своего распознавания. Таким образом, L распознается за время Т^ = n]logft[ в том и только в том случае, когда L^AA^ Я L(BB') = 0, и поэтому мы не в состоянии решить, можно ли распознать L за время Т(п) = = п ]log ^
ЛИТЕРАТУРА
Hennie F. С., One-tape, off-line Turing machine computations, In). Contr., 8 (1965), 553—578. (См. стр. 223—248 настоящего сборника.)
Hartmanis J., Stearns R. E., On the computational complexity of algorithms, Trans. Amer. Math. Soc., 117 (May 1965), 285—306. (Русский перевод: Хартманне Дж., С т и р н з Р., О вычислительной сложности алгоритмов, Кибернетический сборник (новая серия), вып. 4, «Мир», М, 1967.)
Stearns R Е., Hartmanis J., Lewis Р. М., Hierarchies of memory limited computations, IEEE Conf Rec. on Switching Circuit Theory and Logical Design, 1965, 179—190. (См. стр. 301—319 настоящего сборника )
Трахтенброт Б. А., Тьюринговы вычисления с логарифмическим замедлением, Алгебра и Логика, Семинар, 3 (1964), 33—48.
R a b i n М. О., Scott D., Finite automata and their decision problems, in Moore E F. (Ed.) Sequential Machines: Selected Papers, Addison-Wesley, Mass., 1964, 63—91. (Русский перевод: P а б и н M. О., Ск о т т Д., Конечные автоматы и задачи их разрешения, Кибернетический сборник, вып. 4, ИЛ, М., 1962, стр. 58—92, перевод сделан с работы, опубликованной в IBM, L Res. Dev., 3, № 2 (1959), 114—125.)
Hennie F. C., Stearns R. E., Two-tape simulation of multitape Turing machines, J. ACM, 13» № 4 (1966), 533—546 (См. стр. 194—212 настоящего сборника.)
L е w i s Р. М., Stearns R. Е., Н а г t m a n i s J., Memory bounds for recogniton of context-free and context-sensitive languages, IEEE Conf. Rec. on Switching Circuit Theory and Logical Design, 1965, 191—202. (Cm. стр. 320—338 настоящего сборника.)
Younger D. H., Context-free language processing in time n3, Proc. 1966 7-th Annual Symp. on Switching and Automata Theory, IEEE, N. Y., 1966, 7—20. (См. также статью Янгера в настоящем сборнике.)
Post Е., A variant of a recursively unsolvable problem, Bull. Am. Math. Soc., 52 (1946), 262—268.
Ginsburg S., The mathematical theory of context-free languages, McGraw Hill, New York, 1966. (Русский перевод: Гинзбург С., Математическая теория контекстно-свободных языков, «Мир», М., 1970.)
ИЕРАРХИИ ВЫЧИСЛЕНИЙ С ОГРАНИЧЕННОЙ ПАМЯТЬЮ 9
Р. Е. Стирнз, Дж. Хартманне, П. М. Льюис II
Одна из главных целей теории автоматов состоит в том, чтобы достигнуть понимания вычислительного процесса для различных классов задач. Но теория должна идти дальше понятия вычислимости, она должна изучать, насколько сложно вычисление и как его сложность связана с устройством машины, производящей это вычисление. Две меры сложности особенно важны—это время и память. В этой работе мы получаем оценки сложности для ряда моделей машин вычислительного типа (включающего и классическую машину Тьюринга), связанные с ограничениями на ленты. Эти результаты подобны результатам (хотя и сильнее последних) об ограничениях на время, полученным в [1—3].
Использование объема ленты как меры сложности кажется менее полезным, чем оценка времени, но это компенсируется более точными результатами и многими приложениями, которые можно получить (см., например, [4]). В общем легче установить, почему задача обязательно требует так много квадратов ленты, чем почему она требует так много времени. В данной работе мы ограничимся изучением так называемых проблем разрешения, но, совершенно очевидно, эти методы можно распространить и на другие задачи.
Мы рассматриваем следующие варианты машины Тьюринга: односторонние или двусторонние (on-line или off-line) и с магазинной (push-down) лентой и с обычной лентой. Лента ввода отделяется от рабочей ленты с тем, чтобы получить сложность, меньшую, чем у линейно ограниченного автомата. Исследование довольно специального случая автомата с магазинной памятью вызвано его плодотворными приложениями к изучению языков, такими, как в [4].
’) Stearns R. Е., Hartman is J., Lewis II P. M., Hierarchies of memory limited computations, IEEE Conf. Rec. Switch. Circuit Theory and Logic. Design, N. Y., 1965, 179—190.
ОСНОВНЫЕ МОДЕЛИ МАШИН
Начнем с самого общего определения — с двусторонней машины Тьюринга. Это определение особенно ориентирует нас на проблемы разрешения.
Двусторонняя машина Тьюринга (и пи машина с записью на ленте)—это машина, состоящая, как показано на рис. 1, из конечного управляющего устройства и двух лент: одной — только прочитываемой ленты ввода и другой—рабочей ленты, на
"цп)
Р и с. 1. Двусторонняя машина Тьюринга.
которой и читают и пишут. Квадраты ленты ввода могут содержать какой-либо символ из конечного алфавита ввода А или специальный концевой маркерный символ; квадраты рабочей ленты могут содержать любой символ из алфавита К. Очередная операция машины определяется состоянием управляющего устройства и символами под каждой читающей головкой. Операция состоит в том, что машина печатает новый символ на рабочей ленте, сдвигает ленту ввода (на один квадрат вправо, один квадрат влево или оставляет на месте), сдвигает рабочую ленту и изменяет состояние управляющего устройства. Некоторые заключительные состояния называются принимающими состояниями, некоторые другие заключительные состояния называются отвергающими состояниями. Машина всегда начинает работу в определенном начальном состоянии с пустой рабочей лентой и читающей головкой на самом левом квадрате конечного куска ленты ввода с концевыми маркерами на обоих концевых квадратах и символами из А в других квадратах. Эти символы из А, прочитываемые слева направо, образуют вводное слово. Пред-
полагается, что управляющее устройство удерживает читающую головку на этом куске ленты ввода. Если последовательность операций, получаемых при некотором вводном слове, приводит машину в принимающее состояние, то будем говорить, что это слово допускается машиной, а если вводное слово ведет в отвергающее состояние, то будем говорить, что этот ввод отвергается. Если какое-то слово и не принимается и не отвергается, то будем говорить, что машина не является разрешающим устройством.
Двусторонняя магазинная машина — это двусторонняя машина Тьюринга с тем ограничением, что машина печатает пустой символ перед каждым правым продвижением своей рабочей ленты. Принято рассматривать это продвижение вправо как вьь борку информации, а продвижение влево — как запись.
Односторонняя машина Тьюринга (или машина со входом) — это двусторонняя машина Тьюринга с тем дополнительным ограничением, что лента ввода не может двигаться вправо, и с тем изменением, что разделенными на принимающие и отвергающие состояния будут состояния, наблюдаемые перед левым продвижением, а не заключительные состояния. Вводное слово на ленте ввода допускается машиной тогда и только тогда, когда машина приходит в принимающее состояние после просмотра последнего вводного символа, и машина отвергает ввод тогда и только тогда, когда она приходит в отвергающее состояние после просмотра последнего символа. Для этой односторонней модели концевые маркеры излишни.
Односторонняя магазинная машина — это односторонняя машина Тьюринга с тем ограничением, что машина печатает пустой символ перед каждым правым продвижением своей рабочей ленты.
Будем говорить, что машина М одного из вышеуказанных типов разрешает (распознает) множество конечных слов W тогда и только тогда, когда каждое слово из IF допускается, а каждое слово не из W отвергается машиной.
ЛЕНТОЧНАЯ СЛОЖНОСТЬ
Пусть L^ — вычислимое отображение положительных целых чисел в положительные целые числа. Будем говорить, что L^n)— ленточная функция и что машина М действует с лентой тогда и только тогда, когда головка рабочей ленты посещает самое большее Цп) квадратов рабочей ленты при любом входе длины п. Если машина М разрешает множество W и
действует с лентой L^, то будем говорить, что W Е^пуленточ- но разрешимо на машинах того же типа, что и М. Для каждого типа машин мы полагаем, что
CLW или CL представляют совокупность всех множеств, £(ц)-ленточно разрешимых на машинах этого типа. Множество CLW будет называться классом ленточной сложности.
Классы ленточной сложности обладают многими свойствами, общими с классами временной сложности из [1]. Для всякой L(n) и всякого типа машин класс CL рекурсивно перечислим. Поэтому ни один CL не может содержать всех рекурсивных множеств. Для обеих моделей машины Тьюринга этот факт гарантирует бесконечное множество различных классов сложности. Главная цель этой работы состоит в более детальном исследовании этих классов сложности и их упорядочения.
Используя обозначение [г] для представления наименьшего целого числа т, такого, что т^г, мы можем установить теперь основную теорему об эквивалентности.
Теорема 1. Для любого типа машин и любого положительного целого числа N множество W L(ny лент очно разрешимо тогда и только тогда, когда оно ЦДпумуленточно разрешимо; другими словами,
Clw = C\l шммь
Доказательство. Очевидно, что любую машину М, разрешающую W с лентой L^ny можно переделать в машину АГ так что один квадрат рабочей ленты АГ будет содержать информацию N квадратов рабочей ленты М и что, следовательно, АГ будет разрешать W с лентой \1ДпуМ\
Следствие 1.1. Если L и Q — ленточные функции, такие, что
то Cq CL.то Cq CL.infn-> ООinfn-> ОО
то Cq CL.
то Cq CL.
infn-> ОО
infn-> ОО
Доказательство. Неравенство означает, что Еуг\> ^Q^nyN для некоторого большого N, и потому £(ц)-ленточно разрешимым множеством автоматически является [Q(n)/A^]^eH- точно разрешимое и, следовательно, 9(п)-ленточно разрешимое.
Следствие 1.2. Если L и Q — ленточные функции, такие,
что
TO Cq г CL.TO Cq г CL.supn->OQsupn->OQQWQWo°,o°,
TO Cq г CL.
TO Cq г CL.
sup
n->OQ
sup
n->OQ
QW
QW
o°,
o°,
Доказательство. Аналогично доказательству следствия 1.1.
Следствие 1.3. Если L и Q — ленточные функции, такие, что
0< Нт0< НтП-> ООП-> ООQWQWоо,оо,
0< Нт
0< Нт
П-> ОО
П-> ОО
QW
QW
оо,
оо,
то Cq = Cl.
Доказательство. Искомое доказательство получается из следствий 1.1 и 1.2.
Последняя теорема и следствия показывают, что класс С^ю определяется только скоростью роста L^, и потому мы можем быть менее осторожны при выборе ленточной функции. Например, можно рассматривать ленточную функцию L(n^ = log log п, несмотря на то что не указано основание, что значения не целочисленны, что они просто не определены при п, равном единице. Точный способ округления этой функции до целочисленной и определения при малых п, очевидно, для нас несуществен, а изменение основания просто приводит к постоянному множителю, что по следствию 1.3 не ведет к изменению классов сложности.
МИНИМАЛЬНЫЙ РОСТ ЛЕНТОЧНОЙ функции
Наименьший класс ленточной сложности определяется ленточной функцией L^= 1 или, эквивалентно, любой постоянной или ограниченной L (и). Очевидно, этот класс — класс регулярных множеств: эти множества можно разрешить конечным автоматом. Однако существуют и неограниченные L(n), также дающие тот же класс сложности регулярных множеств. Для каждого типа машин существует минимальная скорость роста, которую нужно превысить для того, чтобы разрешить нерегулярные множества. Мы укажем эту скорость сначала для двусторонних машин.
Теорема 2. Для всякой двусторонней машины Тьюринга М, которая разрешает нерегулярное множество и действует с лентой Е{п), существует число р, такое, что для всякого целого числа j существует п^, такое, что
L (п^ ^j и п, ^ рр .
Доказательство. Без потери общности можно предположить, что читающая головка на рабочей ленте никогда не оставляет пустым посещаемый квадрат. Это равносильно рассмотрению печатаемого пустого символа отличным от первоначальной пустоты. Определим конфигурацию памяти как комбинацию состояния управляющего устройства, строки непустых символов,
напечатанных на рабочей ленте, и положения головки на этих символах. Если строка символов длины (строго) менее /, то конфигурацию памяти назовем /-конфигурацией. Если к— число непустых символов в алфавите рабочей ленты и q— число состояний управляющего устройства, то число конфигураций памяти со строкой длины точно I есть iqk\ а число /-конфигураций есть 2 Цк\ что меньше чем jqkE Положив а равным числу символов в алфавите ввода, выберем р, такое, что
рр >я-2№ для всех /.
Пусть гц — наименьшее число, такое, что М использует по крайней мерс / квадратов рабочей ленты, чтобы обработать некоторое вводное слово
w = xvx2 .. .хп.
длины гц. Нерегулярность разрешаемого М множества обеспечивает существование такого слова. Из-за w получаем, конечно, что Цгц)^}. Поэтому, когда М в конце примет или отвергнет w, она не будет находиться в /-конфигурации, так как по определению /-конфигурация использует меньше чем / квадратов рабочей ленты.
Обрабатывая w, машина М может много раз проходить над всяким символом Xi на ее ленте ввода. Пусть для каждого i •< гц Si — множество всех конфигураций, достигаемых М при обработке w, когда читающая головка находится над символом Xi.
Чтобы оценить п^ мы покажем сначала, что из ST = Ss для г < s следует, что хт + xs. Пусть, наоборот, Sr = Ss и xr = xs для некоторых г < s. Посмотрим, что произойдет при обработке машиной слова
w' = xx ... xrxs+x ... xnf
Длина wf меньше чем гц, и потому, согласно минимальности длины гц, все конфигурации памяти, получаемые при переработке w\ должны быть /-конфигурациями. Покажем, что /-конфигурация для любого Xi из V будет /-конфигурацией из множества Si (определенного для w). Пусть, наоборот, при обработке w' М читает Xi и первый раз приходит в /-конфигурацию не из Si. Понятно, что это может произойти, когда читающая головка переходит от хт к xs+i или от xs+i к хт. Предположим, что машина движется от хт к х8+ь По предположению ее конфигурация на хг содержится в Sr. Но так как Sr = Ss, то маши- ца будет в конфигурации, которая будет также появляться на xs
в w. Далее, так как хт = х8, то машина должна прийти в одну из конфигураций, появляющихся на х8 при переработке w. Эта конфигурация по определению содержится в Ss, что доказывает предложение, что все /-конфигурации, появляющиеся при переработке w', из 8^ Но это означает, что М нс закончит обработку w\ так как единственная заключительная конфигурация при обработке w нс является /-конфигурацией. Так как М по определению должна останавливаться на всех вводах, то получаем противоречие, доказывающее предложение, что Sr = Ss влечет X? Х8.
Так как 5г должны быть различны для двух вхождений одного и того же вводного символа, то п^ не должно быть больше, чем число подмножеств /-конфигураций, умноженное на число вводных символов. Но это число меньше чем а • 2jqU, и потому п^^рР (по выбору pY
Следствие 2.1. Для двусторонней машины Тьюринга если L(n) — ленточная функция, такая, что
то CL содержит только регулярные множества, т. е.
Cl (я) — ^constant*
Доказательство. Если CL содержит нерегулярное множество, то L ^п^/ ^ logp logp ri) или
L кпд ,
logp logp/г/
для всех гц из теоремы и потому предел не равен нулю.
Следствие 2.2. Для машин двустороннего типа если Си,п содержит нерегулярное множество, то
Доказательство. Это есть обращение следствия 2 1.
Следствие 2.3. Для машин двустороннего типа если Цп) — монотонная ленточная функция, такая, что CLW содержит нерегулярное множество, то
Cl {п) — С log log п.
Доказательство. Положив / = [logp logp п\, имеем п ^ П), и потому
Л (n)>L («/)>/= [logp logp»];
следовательно,
П->оо log^ 10gp П ’
и по следствию 1.1 получаем требуемое предложение.
либо Cl («) —Ciog/г,либо Cl («) —Ciog/г,Теорема 3. Для односторонней машины Тьюринга если L(n) — ленточная функция, то либо
либо Cl («) —Ciog/г,
либо Cl («) —Ciog/г,
Щ A log WЩ A log WCl (п) ~ С constant, в зависимости от того, inf П-> оо или нет.
Щ A log W
Щ A log W
Доказательство. Предположим, что односторонняя машина Тьюринга М действует на ленте L(n) и разрешает нерегулярное множество. Проделаем все рассуждения, сделанные нами в первой части доказательства теоремы 2, за тем исключением, что р выберем таким, что
pJ>a - j - kJ
для всех /. Для данного п пусть
w = хх ... хт
есть наикратчайшее слово, такое, что при обработке w машиной М занимается по крайней мере / = logp п квадратов ленты. При обработке w М не может занять / квадратов рабочей ленты, пока читающая головка не достигла хт, иначе более короткая подпоследовательность w должна использовать / квадратов. Машина М не может повторить конфигурации на хТ и xs, таких, что хг = xs и г < s, потому что тогда
w' = xx ... xrxs+x ... xm
было бы более коротким словом, использующим / квадратов рабочей ленты. Поэтому m — 1 не превосходит числа /-конфигураций, умноженного на длину алфавита ввода. Поэтому m^p^An и w, расширенное до слова длины п, также требует j = \ogpn квадратов ленты. Поэтому
. — — > 1 для всех п,log;? п'
что и доказывает нужное предложение.
Теорема 4. Для односторонней магазинной машины и ленточной функции L^n) либо
С L (Я) “ С constant, Либо Cl Cn
в зависимости от того,
или нет.
Доказательство. Предположим, что односторонняя магазинная машина действует на ленте L^n) и разрешает нерегулярное множество. Должно быть некоторое вводное слово
W = Ху ... хт,
которое приводит машину в конфигурацию с р символами на магазинной ленте для некоторого p>aqk, где а — длина алфавита ввода, q— число состояний управляющего устройства и к — длина рабочего алфавита. Обозначим эти символы кх,..., кр. Каждому к^ соотнесем состояние управляющего устройства qt и вводный символ х ц, который просматривается точно перед напечатанием к^. В силу оценки р должны существовать г и s, такие, что г < s, кт = ks, Xjr = xj$ и qr = qs. Если It = /s, то машина зациклится, а если jT < /s, to
1УЙ = Х1 .х,Дх1г+1 ... X^k
есть вводное слово длины jr+(ls— Jr) h, которое требует r + (s — r^h квадратов ленты. Поэтому Л(п) должно расти линейно, как утверждает теорема.
Подобное же рассуждение показывает, что машина не может напечатать на магазинной ленте более qk символов для данной входной буквы без зацикливания и поэтому любое нерегулярное множество, которое разрешимо (на подобной машине. — Ред.), должно быть (L(n) = п)-ленточно разрешимым.
Эта теорема полностью решает проблему для односторонней магазинной машины. Иерархия состоит из двух классов: С! и Сп. Эти классы различны, потому что некоторые магазинные машины разрешают нерегулярные множества.
Для односторонней машины Тьюринга очевидно, что множество
(0*Р | к — натуральное число}
(logn)-лeнтoчнo разрешимо и потому граница теоремы 3 точна.
Хотелось бы найти множества, (log log п) -ленточно разрешимые на двусторонних машинах. Пусть Ь^— двоичная запись числа i в алфавите {0, 1}, и пусть Wh в алфавите (0, 1, s} задается так:.
wk = 60$^$ • • • sbk
(например, [У4 = OslslOsl IslOO). Чтобы узнать, содержится ли данная вводная последовательность в {^}, рассматриваем ее
как последовательность двоичных чисел, разделенных маркерами, и проверяем, совпадает ли первое число с Ьо. Если это так, начинаем проверять, верно ли, что каждое следующее число больше предыдущего на единицу. Если это не так, то обрываем вычисление и отвергаем эту последовательность. Чтобы проверить любую пару последовательных чисел с целью убедиться в том, что правое число на единицу больше левого, достаточно поразрядно сравнивать эти числа, запоминая при необходимости переносы в конечном управляющем устройстве машины. На двусторонней машине Тьюринга цифры можно сравнивать, двигаясь вперед и назад между числами и используя рабочую ленту, чтобы записывать позицию (т. е. первая, вторая и т. д.) сравниваемых цифр. Если левое число длины /, то это потребует log Z рабочих квадратов. С другой стороны, легко проверить, что /<logn, где п— длина вводного слова. Следовательно, наша схема требует log log/г на двусторонней машине Тьюринга, и нижняя граница следствия 2.3 точна для двусторонней машины Тьюринга.
Чтобы получить пример для двусторонней магазинной машины, сначала рассмотрим, как последовательность wk можно распознать на двусторонней магазинной машине, используя Цп) = = log п. Цифры каждого bt запоминаются на магазинной ленте и сравниваются затем цифра за цифрой с Ь<+ь Теперь усовершенствуем wk следующим образом: добавим два новых символа 2 и и (для нуля и единицы) к алфавиту ввода (0, 1} и используем их для обозначения положения цифры. Итак, мы полагаем что Ь? — двоичная запись i в (0, 1} с цифрами, разряды которых последовательно пронумерованы числами, записанными в (z, и}. Например,
bg =uzzluuOuzOul.
Положим
ty» = b“sb“s sbk
и посмотрим, с лентой какой длины мы можем распознавать ^Фь}. Применяя рассуждение о магазинных машинах из предыдущего раздела, легко видеть, что можно сначала проверить совпадения адресов (используя log / квадратов) и затем использовать эти адреса для сравнения знак за знаком, как в предыдущем случае; при этом весь процесс требует log logп квадратов ленты.
МАКСИМАЛЬНЫЙ РОСТ ЛЕНТОЧНОЙ ФУНКЦИИ
Так как машины Тьюринга могут разрешить все рекурсивные множества, то нельзя найти для этих машин максимальное CL. С другой стороны, из теоремы 4 видно, что Сп содержит все
множества, которые можно разрешить односторонней магазинной машиной. Для двусторонней магазинной машины получаем следующий результат.
Теорема 5. Для двусторонних магазинных машин если L^ — ленточная функция, то
С L^n) — Сп.
Доказательство. Требуется показать, что Сп содержит множество, разрешимое произвольной двусторонней магазинной машиной М. Предположим, что в некоторый момент при обработке ввода длины п у машины М на рабочей ленте напечатаны символы &ь. .., km. Каждому символу kt соотнесем состояние управляющего устройства qt и квадрат ленты ввода, который просматривался сразу после того, как впервые был напечатан кг на рабочей ленте. Если кт = ks и qr = qs для некоторых г 4= s, то соответствующие квадраты ввода должны быть различны, иначе М будет возвращаться к этому квадрату опять и опять каждый раз с дополнительными символами на ленте и никогда не остановится. Итак, должно выполняться
m ^ q • к • (м + 2),
где q— число состояний управляющего устройства, к — длина алфавита рабочей ленты, а п + 2— число квадратов ленты ввода (включая концевые маркеры). Итак, М разрешает свое множество с лентой L{n) ^ qk^n + 2), и потому по следствию 1.3 это множество (L(n) = п)-ленточно разрешимо.
ПРЕДЕЛЬНЫЕ ТЕОРЕМЫ
Мы видели, что для каждого типа машин существует разрыв между ограничениями ленты для регулярных и нерегулярных множеств. Теперь мы покажем, что за этим начальным скачком (но перед Сп для магазинной машины) малейшее изменение предельного поведения данной ленточной функции дает новый класс ленточной сложности. Точное изложение этих результатов требует понятия «конструируемости», которое мы введем для каждого типа машин.
Ленточная функция L^n) называется конструируемой на двусторонней машине Тьюринга тогда и только тогда, когда существует двусторонняя машина Тьюринга М, которая всегда останавливается, действует с лентой L^ и для каждого п занимает L(n) квадратов рабочей ленты при некотором вводе длины п. Опираясь на следствия, мы позволим себе считать «конструируемыми» функции Q^n) с таким же предельным поведением,
как и конструируемые 1Дпу Это означает, например, что L^ = = log log п конструируема, потому что уже была указана машина (для разрешения {^4), которая действует с лентой log log п и занимает «точно» log log п для некоторых вводов длины п. Подобным образом каждая двусторонняя машина Тьюринга, разрешающая некоторое множество, определяет также соответствующую конструируемую ленточную функцию. «Вычислимые в реальное время» функции в работах [1, 5] конструируемы. Если RW вычислима в реальное время, то можно сначала получить log log п по вышеуказанной схеме и затем отсчитать R (log log п) квадратов рабочей ленты. Поэтому /? (log log ft) конструируема. Так как известно, что вычислимые в реальное время функции включают все общеупотребительные монотонно возрастающие функции, получаемые умножением, экспоненцированием и суперпозицией, то в действительности иерархия конструируемых функций, построенная исходя из log log п, весьма богата. Покажем теперь, что иерархии конструируемых функций соответствует иерархия классов ленточной сложности (для двусторонних машин Тьюринга) с учетом эквивалентности в следствиях 1.1 и 1.2.
Теорема 6. Для двусторонних машин Тьюринга если L^ — конструируемая ленточная функция, то существует множество IF, которое Ь^пуленточно вычислимо и не является С^пулен- точно вычислимым для всех ленточных функций Q^ny таких, что
infП->ооinfП->оо0М_ LW0М_ LW= 0.= 0.
inf
П->оо
inf
П->оо
0М_ LW
0М_ LW
= 0.
= 0.
Доказательство. Доказываем диагональным методом. Построим машину М, которая действует на ленте L^ny такую, что для любой другой машины, использующей ленту Q(n) (такую, как в формулировке теоремы), существует некоторая вводная последовательность, на которой М повторяет действия этой другой машины на этой же последовательности и дает отличный выход. Множество IF и есть множество, разрешаемое на М.
Пусть М'— машина, конструирующая L(n) и обладающая алфавитом ввода Л'. Рассмотрим новый алфавит Л, получаемый из Л' следующим образом: каждому символу х из Л' отвечают два символа х0 и Xi из Л. Каждое вводное слово в Л можно рассматривать как слово в Л' (опуская индексы) или как двоичное число (читая только индексы). Теперь построим машину М, которая работает в три этапа.
Этап 1. Машина М читает ввод в Л как слово в Л' и действует подобно М\ пока М' не остановится. Во время работы
она помечает самые левый и правый из квадратов рабочей ленты, которые посетила. При любых обстоятельствах М будет ограничиваться квадратами между метками, гарантируя тем самым, что действует с лентой L(ny
Этап 2. Читая ввод как двоичное число ц М печатает на своей рабочей ленте описание f-й двусторонней машины Тьюринга в алфавите ввода А. Это потребует определенное количество Di квадратов. Если окажется, что места между концевыми маркерами на рабочей ленте недостаточно, то машина останавливается и приходит в отвергающее состояние.
Этап 3. Если описание Mi успешно завершилось, то машина М начинает моделировать М^ используя ленту ввода как ввод и специальную дорожку рабочей ленты как рабочую ленту М^ Символы рабочей ленты Mi кодируются в двоичном алфавите и в общем потребуется некоторое ki квадратов М, чтобы разместить информацию одного квадрата М^ Третья дорожка рабочей ленты используется для подсчета в троичной системе количества промоделированных операций М^ Моделирование продолжается, пока не наступит одна из следующих трех ситуаций.
Моделирование требует больше рабочей ленты, чем допускается концевыми маркерами. В этом случае М приходит в отвергающее состояние.
Подсчет операций Mi требует больше рабочей ленты, чем допускается концевыми маркерами. В этом случае М приходит в отвергающее состояние. Заметим, что это правило гарантирует, что М всегда остановится.
Машина Mi останавливается. Машина М приходит в отвергающее состояние, если Мг пришла в принимающее состояние, и М приходит в принимающее состояние, если Mt пришла в отвергающее состояние.
Очевидно, машина М разрешает некоторое множество W с лентой L^n), и остается только показать, что W не может быть разрешимым с любой функцией Q(n), которая удовлетворяет теореме. Предположим, наоборот, что некоторая Mj разрешает W с лентой QW, где Q(n) — некоторая функция, удовлетворяющая предельному равенству. Ясно, что существует столь большое число N, что
^W>log2/, D^L^ к&^^ИЖ
где gi — число состояний управляющего устройства Мр Пусть w' — слово в Д', имеющее длину N, для которого М' посещает
L(N) квадратов рабочей ленты. Добавив индексы, преобразуем w' в слово w в А, такое, что представляемое двоичное число есть /. Это возможно потому, что L(N)^ log2/, и потому, что можно прибавить достаточно нулей слева к двоичному представлению /, чтобы получить двоичное представление длины N. Посмотрим, что произойдет, если ввод w обработать М.
На этапе 1 будут отмечены L(N) квадратов ленты. Этап 2 сможет завершиться, так как Dj^L(N). На этапе 3 ситуация а) невозможна, так как Mj потребует только kj-Q(N) квадратов ленты, что меньше L(Ny Ситуация б) невозможна, так как М5 не зацикливается и поэтому не может сделать более чем L(N)gj2LW операций перед остановкой, а М может считать до 3L(n) операций. Как только наступает ситуация в), М отвергает те слова, что принимает Mj, и принимает те, что отвергает Mj, а это будет противоречить допущению, что Mj разрешает w. Итак, неверно, что Mj разрешает W с лентой Q(n), что и доказывает теорему.
Ленточная функция Л(п) называется конструируемой на односторонней машине Тьюринга тогда и только тогда, когда существует односторонняя машина Тьюринга, которая всегда останавливается, действует с лентой L(n^ и для каждого п занимает точно L^ квадратов рабочей ленты для всех вводов длины п. Опять мы, допуская нестрогость, назовем Q(n) конструируемой, если она имеет то же предельное поведение, что и L^ny Это означает, например, что L(n)=\ogn конструируема, так как подсчет числа входных символов при соответствующем основании b заставляет машину посещать точно [log^n] квадратов. Подобно двустороннему случаю, если R^ —вычислимая в реальное время функция, то функция /?(logn) конструируема. Итак, имеется богатая иерархия конструируемых функций, построенная исходя из log и, которая связана, как мы покажем, с иерархией ленточной сложности для односторонних машин Тьюринга.
Теорема 7. Для односторонних машин Тьюринга если L{n) — конструируемая ленточная функция, то существует множество W, которое Е^пуленточно вычислимо и не является ОДпулен- точно вычислимым для всех ленточных функций Q^ny таких, что
inf iM = ()
Доказательство. Так как теорема тривиально выполняется для ограниченной Е(п,у можно полагать, что L^ неограниченная *). Мы знаем из доказательства теоремы 4, что для
Аналогичное замечание необходимо при доказательстве теоремы 6. — Прим, персе.
любой машины, конструирующей неограниченную L(n^ должно выполняться Л (и) > log и при некотором основании логарифмов. Это дает нам возможность снова использовать диагонализа- ционную процедуру. Мы построим одностороннюю машину М, использующую ленту L(n^, такую, что для произвольной машины, которая использует ленту Q(n), существует некоторая вводная последовательность, на которой М моделирует эту машину, но дает отличный выход. Из-за одностороннего характера М моделирование проводится несколько необычно.
Алфавит ввода М = {0, 1}. После своего г-го вводного символа М должна сделать три манипуляции.
Этап 1. Машина М действует как машина, конструирующая L^n^ и отмечает L(i) квадратов на рабочей ленте, используя специальные концевые маркеры. Последующие машинные операции перед следующим вводным символом будут ограничиваться этим пространством.
Этап 2. Машина заполняет свою память ввода. Просмотренный ввод записывается (если это возможно) на рабочей ленте как некоторое число и как некоторое слово на соответствующих двух дорожках. Число выражает количество начинающих вводную последовательность нулей, слово состоит из первой единицы и всех последующих вводных символов. Количество начальных нулей можно всегда запоминать, кодируя его при некотором основании 6, таком, что L(n)>log&n. Если слово не умещается на предназначенном пространстве, то машина приходит в состояние, отвергающее настоящий и все последующие вводные символы.
Этап 3. Трактуя записанное слово как двоичное число /, машина рассматривает его как описание /*-й односторонней машины Тьюринга Mj с двоичным вводом и моделирует Мь как если бы та обрабатывала вводную последовательность, уже предложенную М. При использовании специальной двоичной дорожки рабочей ленты для моделирования рабочей ленты Mj будет достаточно к^ квадратов М, чтобы записать информацию одного квадрата Mj. Число операций Mj для каждого вводного символа подсчитывается в троичной системе на другой дорожке рабочей ленты. Моделирование продолжается, пока не наступит одна из следующих трех ситуаций.
Моделирование требует больше рабочей ленты, чем допускается концевыми маркерами. В этом случае М приходит в отвергающее состояние и сдвигается на следующий вводный символ.
Подсчет операций Mj требует больше рабочей ленты, чем допускается концевыми маркерами. В этом случае М приходит в отвергающее состояние и сдвигается на следующий вводный
символ. Это правило предохраняет М от бесконечной обработки вводного символа.
Машина Mj завершает обработку вводного слова. Машина М отвергает ввод, если Mj принимает его, и принимает ввод, если Mj отвергает его. Затем машина М сдвигается на следующий вводный символ.
Очевидно, что машина М разрешает некоторое множество № с лентой L(n); остается только показать, что W удовлетворяет теореме. Предположив, наоборот, что некоторое Mj разрешает W с лентой Q(n), где Q(n) —некоторая функция, удовлетворяющая предельному равенству, найдем N, такое, что1)
L(M-[log2/])>log2/, hjQW^LW,
Посмотрим, что делает М после получения N — [1og2/] нулей, за которыми следует двоичное представление /. Первое неравенство гарантирует наличие места, достаточного для заполнения ввода, второе гарантирует наличие места, достаточного для моделирования Mj, а третье гарантирует, что операции М5 не переполнят вычислитель.
Следуя рассуждению, использованному в доказательстве теоремы 6, получаем, что в действительности М и Mj трактуют этот ввод противоположным образом. Полученное противоречие и доказывает теорему.
Для двусторонних магазинных машин нам неизвестна возможность использовать диагонализационное доказательство, как было сделано для машин Тьюринга, но мы все-таки можем указать иерархию построением множеств, удовлетворяющих следующей лемме.
Лемма. Если W — множество слов в алфавите А и L^ — отображение целых чисел в целые числа, причем для любого и существуют слово wn из W и символ а из А, такие, что
последние L{n) символов в wn суть а,
wn с присоединенной справа любой последовательностью символов а не содержится в W,
и если W Q ^-ленточно вычислимо на двусторонней магазинной машине М, то существует такая постоянная с, что Q^n^ cL^ny
Доказательство. У нас слишком мало места, чтобы привести все детали доказательства, поэтому изложим основную идею. Пусть q— число состояний управляющего устройства М, к — число символов рабочего алфавита. Можно показать, что,
’) Здесь kj и gj трактуются как в доказательстве теоремы ^. — Прим. персе.
когда М обрабатывает wn и обозревает часть ввода, содержащую L(n) символов а, машина не может сделать более q^k^Q^ операций до того, как ее поведение станет «периодическим» с периодом, не превосходящим q-k^. Эта периодичность заключается либо в периодическом повторении конфигурации памяти (состояние и рабочая лента), когда длина ленты одна и та же после каждого периода, либо в периодическом возрастании, когда число символов на ленте увеличивается после каждого периода. Если машина уже стала периодически повторяться, когда она проходит над символами а, то она не различит wn и wn с присоединенными (дк^у. символами а, потому что эти лишние а кратны периоду. Единственная альтернатива состоит в том, что либо М не становится периодической и в этом случае
qkqUQn > L кп\
либо М становится периодически возрастающей. Но если М становится периодически возрастающей, то можно оценить число операций, так как длина ленты не может превзойти QW. После самое большее qk^Q^ операций должно начаться периодическое возрастание, и с этого момента после каждых самое большее qk^ операций длина ленты должна возрастать по крайней мере на 1. Так как может быть самое большее Q(n) скачков, то число операций самое большее
qk^QW + qkqkQ(n) - 2qkqfeQ^.
Но это число операций должно быть достаточным, чтобы обозреть L(n) символов а хотя бы раз, и потому должно выполняться
2qkqftQ^>LW.
Итак, в обоих случаях лемма справедлива, если выбрать 1/с = = 2q№.
Будем говорить, что ленточная функция L^ конструируема на двусторонней магазинной машине, если существует множество W, которое удовлетворяет лемме и Л(п)-ленточно разрешимо на двусторонней магазинной машине. Менее формально, L(n) конструируема, если для некоторого ввода длины п можно узнать, имеются ли на его конце в точности L^ единиц, и это узнавание можно произвести с лентой L^nY Хотя эти конструируемые функции детально не исследованы, известно, что таковыми являются различные рациональные степени п, logп и log log п, лежащие между п и log log п, что дает довольно богатую структуру. Перенесем эту структуру на иерархию сложности.
Теорема 8. Для двусторонних магазинных машин если L^n*)— конструируемая функция, то существует множество W, которое
Е^-ленточно вычислимо и не является Q(n)-ленточно вычислимым для всех ленточных функций Q^, таких, что
infП->ооinfП->ооQM LWQM LW= 0.= 0.
inf
П->оо
inf
П->оо
QM LW
QM LW
= 0.
= 0.
Доказательство. В качестве W возьмем множество, делающее Е^ конструируемой. Если W также Q(n) -ленточно вычислимо, то лемма гарантирует нам, что Q(n)^ cL(n) для некоторого с и потому
inf _2ДДX L М
ВЫВОДЫ
Мы видели, что ограничение ленты, требуемой для разрешения множества на любой из машин четырех типов, может служить мерой сложности проблемы разрешения. Для трех моделей это ведет к богатой иерархии классов ленточной сложности, представляющих различную степень трудности. Структура этих иерархий такова:
Для каждой модели «простейший» класс сложности — это ^constant, являющийся классом всех регулярных множеств.
Каждый тип машины обладает нижней границей ^(п), которая ограничивает нерегулярные классы сложности в том смысле, что
Пт = 0 влечет, что CL содержит только регуляр- П->оо \П)
ные множества;
Clw — C^w Для всех монотонных Е ^п\ таких, что CL содержит нерегулярные множества.
При этом функция 2?^ такова:
log log п, log log n, logn, n.log log п, log log n, logn, n.двусторонние машины Тьюринга двусторонние магазинные машины односторонние машины Тьюринга односторонние магазинные машины
log log п, log log n, logn, n.
log log п, log log n, logn, n.
В случае машин Тьюринга существует бесконечная иерархия классов, построенная исходя из $ (п) и такая, что малейшее изменение (в сторону возрастания) предельного поведения одной ленточной функции дает другую ленточную функцию, определяющую новый класс сложности (когда новая функция конструируема) .
Для двусторонних магазинных машин существует максимальный класс сложности, а именно CL№=n> содержащий все
множества, которые можно разрешить на двусторонней магазинной машине. Между функциями L^=n и 3 (n) =log log п подходящее малое изменение (в сторону возрастания) предельного поведения дает опять новый класс.
Для односторонней магазинной машины иерархия состоит
ИЗ ДВуХ МНОЖеСТВ: C*L(n)=n И CCOnstant-
ЛИТЕРАТУРА
Н а г t m a n i s J., Stearns R. E., On the computational complexity of algorithms, Trans, of Amer. Math. Soc., 117 (1965), 285—306. (Русский перевод: Кибернетический сборник, новая серия, вып. 4, 1967.)
Hartmanis J , Stearns R. Е., Computational complexity of recursive sequences, Proc. Fifth Annual Sympos. on Switching Theory and Logical Design, Princeton, N. J., 1964.
H e n n i e F. C, Stearns R. E., Two-tape simulation of multi-tape Turing machines, General Electric Report 65-RL-4020 E !).
Lewis II P. M., Stearns R. E., Hartmanis J., Memory bounds for the Recognition of context free and context sensitive languages, IEEE Conf. Rec. Switch. Circuit Theory and Logical Design, 1965, 191—202. (Настоящий сборник, стр. 320—338.)
Yamada H., Real-time computation and recursive functions not real-time computable, IRE Trans., EC-11 (1962), 753—760. (Настоящий сборник, стр 139—155.)
Turing A. M., On computable numbers, with applications to the Entschei- dungsproblem, Proc. London Math. Soc. (22), 42 (1937), 230—265.
Myhill J., Linear bounded automata, WADD Tech. Note 60-165, Rep. № 60-22, Univ, of Pennsylvania, June 1960.
Ritchie R. W., Classes of predictably computable functions, Trans. Amer. Math. Soc., 106 (1963), 139—173. (Настоящий сборник, стр. 50—93.)
Hartmanis J, Lewis II P. M., Stearns R E., Classifications of computations by time and memory requirements, Proc, of IFIP Congress 65, vol. 1, 31—35.
!) См. также одноименную статью тех же авторов в /. АСМ, 13, № 4
(1966), 535—546, перевод которой включен в настоящий сборник (стр. 194— 212). — Прим. ред.
ГРАНИЦЫ ПАМЯТИ ДЛЯ РАЗРЕШЕНИЯ КОНТЕКСТНО-СВОБОДНЫХ
И КОНТЕКСТНЫХ ЯЗЫКОВ1)
П. М. Льюис //, Р. Е. Стирнз, Дж. Хартманис
ВВЕДЕНИЕ
Важной частью теории абстрактных языков является изучение процесса обработки этих языков на машинах различных моделей. Результаты этой области не только раскрывают важные свойства языка, но и дают непосредственные приложения также в изучении языков вычислительных машин.
В настоящей работе рассматриваются проблемы разрешения контекстно-свободных и контекстных языков машинами различного устройства.
Будем говорить, что машина разрешает данный язык, если, как только цепочка символов размещается на ее ленте ввода, машина обрабатывает эту цепочку и обязательно останавливается, выдавая «да», если цепочка содержится в языке, и «нет» в противном случае.
Опыт показывает, что некоторые языки существенно сложнее для разрешения, чем другие, и что эта сложность может сильно зависеть от устройства обрабатывающей машины.
Сложность вычисления можно измерять различным образом. В этой работе мы используем как меру сложности объем памяти, необходимой для вычисления; более точно L (ц)-ленточная мера сложности определена в [1]. Чтобы изучить зависимость этой меры сложности от устройства машины, рассмотрим четыре модели машин, определенные в [1], а именно: двустороннюю и одностороннюю машины Тьюринга, двустороннюю и одностороннюю магазинные машины. Если какая-либо из этих машин разрешает данный язык и обрабатывает каждое вводное слово длины п, используя не более ^(ц) квадратов своей рабочей ленты, то будем называть этот язык Л(п)-ленточно разрешимым или просто L (п) -разрешимым. Так как мы изучаем ленточные функции с точки зрения скорости роста, мы ограничимся монотонными неубывающими ленточными функциями.
Результаты [1] позволяют естественнно ввести частичное упорядочение «^-» ленточных функций. Будем писать L (п) ^ • Q (ц)
’) Lewis II Р. М., Stearns R. Е., Hartman is J., Memory bounds for recognition of context-free and context-sensitive languages, IEEE Conf. Rec. Switch Circuit Theory and Logic. Design, N. Y., 1965, 191—202.
тогда и только тогда, когда существует константа С, такая, что L(n)^CQ(n) для всех п. Будем писать A(n) = Q(n) тогда и только тогда, когда L^^-Q^n) и Q^n) ^* L(n). Наконец, будем писать L (п) < • Q^, если неверно, что Q(n) ^.-L^n). Из [1] нам известно, что Q(n) ^^(п) означает, что все (Неразрешимые множества L (п) -разрешимы, A(n)=Q(n) означает, что класс Q(n) -разрешимых множеств и класс Л(п)-разрешимых множеств одинаковы, и A(n)<*Q(n) означает, что некоторые Q(n)-разрешимые множества не являются L (п) -разрешимыми, если Q(n) конструируема. Так как ^- есть только частичное упорядочение, то вполне возможно, что L^<*Q^n^ и QW< -L(n).
ОПРЕДЕЛЕНИЕ АБСТРАКТНЫХ ЯЗЫКОВ
Рассматриваемые нами абстрактные языки были предложены Хомским [2]. Они определяются в терминах порождающих грамматик. Грамматика состоит из двух непересекающихся конечных множеств символов,
М = {S, Л, В, С, ...} — множества нетерминальных символов, Т = {а, Ь, с, ...} —множества терминальных символов, S — выделенного в N начального символа и
Р — конечного множества правил.
Мы рассматриваем три типа грамматик, определяемые видом их правил:
Контекстная грамматика — это грамматика с правилами вида
аЛр -> аур,
где а, р, у — слова из терминальных и нетерминальных символов и у не пусто. Это правило трактуется так: в любом слове нетерминальный символ Л, находящийся между аир, можно заменять на у.
Контекстно-свободная грамматика — это грамматика с правилами вида
Л->у.
Автоматная (finite state) или регулярная грамматика — это грамматика, такая, что либо все ее правила вида
А->аВ,
А->а,
либо все ее правила вида
А -> Ва,
т. е. один нетерминальный символ можно заменять либо на один терминальный, либо на один терминальный с присоединенным справа или слева нетерминальным символом.
Язык L^G), определяемый грамматикой G,— это множество слов в Г*, которые можно породить этой грамматикой, исходя из начального символа S. (* всегда обозначает оператор навешивания звездочки по Клини.) Язык называется контекстным (или контекстно-свободным или регулярным), если существует по крайней мере одна порождающая его контекстная (или контекстно-свободная или регулярная) грамматика.
Класс контекстно-свободных языков особенно интересен, так как включает АЛГОЛ и другие языки программирования.
3. РАЗРЕШЕНИЕ АБСТРАКТНЫХ ЯЗЫКОВ
Здесь излагаются некоторые известные результаты о разрешении абстрактных языков.
А. Контекстные языки. Множество предложений является контекстным языком тогда и только тогда, когда его можно разрешить недетерминированным линейно ограниченным автоматом (Ландвебер [3] и Курода [4]).
В нашей терминологии линейно ограниченный автомат — это двусторонняя машина Тьюринга с L^=n. Отсюда следует, что множество, разрешимое какой-либо из моделей машин с L(n) ^ -п, является контекстным языком.
Из [1] следует, что как модели односторонней и двусторонней машин Тьюринга, так и модель двусторонней магазинной машины определяют иерархию различных классов сложности контекстных языков. Для двусторонней машины Тьюринга и двусторонней магазинной машины эти иерархии покрывают следующую область для L (п):
log log n ^ • L (n) ^ • n, а для односторонней машины Тьюринга иерархия покрывает область
log п ^ • L (п) ^ • п.
Напомним, например, множества
^i = Vsbvsb2s ... sb^s | m = 1, 2, ...},
^2 = (s6| sb”s ... sbams\m= I, 2, ...},
введенные в [1], где bj— двоичное представление числа /, а bj — такое же представление с последовательно пронумерован-
ными цифрами. Множества ^ и ^2 суть такие контекстные (но не контекстно-свободные) языки, которые можно разрешить с лентой
L (м) = log log п
на двусторонней машине Тьюринга и двусторонней магазинной машине соответственно.
Б. Контекстно-свободные языки. Контекстно-свободные языки часто изучаются совместно с магазинными машинами из-за следующих обстоятельств.
Множество предложений является контекстно-свободным языком тогда и только тогда, когда его можно разрешить недетерминированной односторонней магазинной машиной. Существует контекстно-свободный язык, который нельзя разрешить никакой детерминированной односторонней магазинной машиной (Хомский [5]).
Поэтому класс языков, разрешимых односторонними магазинными машинами, образует собственное подмножество класса контекстно-свободных языков. Как показано в [1], существует единственный класс сложности, содержащий нерегулярные множества, а именно класс (L(n) =п)-разрешимых множеств.
Двусторонние магазинные машины могут разрешать и контекстно-свободные и контекстные языки. Например, множество предложений
Vanbncn\n=L 2, ...},
контекстное, но не контекстно-свободное, можно разрешить двусторонней магазинной машиной. Мы высказываем гипотезу, что совокупность множеств, разрешимых двусторонними магазинными машинами, строго включается в множество контекстных языков и не содержит всех контекстно-свободных языков.
Все контекстно-свободные языки можно разрешить линейно ограниченным автоматом (Курода [4]).
Поэтому все контекстно-свободные языки можно разрешить двусторонними машинами Тьюринга с L(n)<.*n, Результаты следующего раздела дают более точную оценку L^n), необходимой для разрешения всех контекстно-свободных языков на двусторонних машинах Тьюринга.
В. Регулярные языки. Язык регулярен тогда и только тогда, когда его можно разрешить конечным автоматом (Хомский [2]). Отсюда следует, что регулярные языки можно разрешить на любой модели машин с L(jT)=L
ИЕРАРХИИ КОНТЕКСТНО-СВОБОДНЫХ ЯЗЫКОВ
В этом разделе мы покажем, что двусторонние и односторонние машины Тьюринга и двусторонние магазинные машины определяют бесконечные иерархии контекстно-свободных языков. Как обсуждалось выше, односторонняя магазинная машина обладает только одним классом сложности L^^n и потому не определяет иерархию. Уже было показано, что машины Тьюринга включают все контекстно-свободные языки в свои иерархии.
Чтобы дать полную картину различных результатов об иерархиях, приведем сначала все формулировки и только затем дадим доказательства.
А. Для двусторонней машины Тьюринга.
Существуют (L^n) = log log п)-разрешимые нерегулярные контекстно-свободные языки.
Существуют контекстно-свободные языки, требующие A(n)=log п.
Существует бесконечная иерархия контекстно-свободных языков по некоторым ленточным функциям Л(п), удовлетворяющим условию
log log n < • L (n)< • log n.
Все контекстно-свободные языки можно разрешить с
L (n) = (log п)2.
Иерархия указывается только для области между log log n и log п и не доводится до границы (log п)2, данной в 4. Остается открытым вопрос, существуют ли контекстно-свободные языки, требующие больше чем A(n)=logn на двусторонних машинах Тьюринга. Мы предполагаем, что такие языки существуют и что (log и)2 — настоящая граница.
Б. Для односторонней машины Тьюринга.
Существуют (L (ц) = log п)-разрешимые нерегулярные контекстно-свободные языки.
Существуют контекстно-свободные языки, требующие L^^n.
Существует бесконечная иерархия контекстно-свободных языков по некоторым ленточным функциям ^(ц), удовлетворяющим условию
log п ^ • L (м) ^ • п.
Для двусторонней магазинной машины.
Существуют (L(n) = log log ^-разрешимые нерегулярные контекстно-свободные языки.
Существуют контекстно-свободные языки, требующие L (/г) = п.
Существует бесконечная иерархия контекстно-свободных языков по некоторым ленточным функциям L(n), удовлетворяющим условию
log log п ^ • L (п) ^ • п.
Определим три языка, которые будут служить примерами нерегулярных контекстно-свободных языков, разрешимых с L^n), указанной соответственно в предложениях А1, Б1, В1.
Пусть Lx—язык со следующим дополнением:
Lx = Vbxs b2s b3s ... sb2tn\ m=\, 2, ...},
где bi есть двоичное представление числа /, выписанное слева направо; bk — двоичное представление к, выписанное справа налево; s — разделительный символ.
Пусть 12— язык с дополнением
и = №s^“s b°S ... sb“m I tn = 1, 2, . . . },
где bj — двоичное представление /, выписанное слева направо, с последовательно пронумерованными цифрами, причем номера выписаны в противоположном направлении (см. также примеры из [1]). Например,
625 = uzu\zzu\uuOzuOu\,
где в номерах позиций цифр z служит нулем, а и единицей. Аналогично определяется
Наконец, пусть
Л3 = {^^|П= 1, 2, ...}.
Теорема 1. Множества Lx, L2 и L3 суть нерегулярные контекстно-свободные языки.
Язык Lx ^L (п) = log log п)- разрешим на двусторонней машине Тьюринга.
Язык L2 (L (п) = log log пУ разрешим на двусторонней магазинной машине.
Язык L3 ^L^ = log пУразрешим на односторонней машине Тыоринга.
Доказательство. Очевидно, языки Lx, L2 и L3 нерегулярны.
И Li и 1г можно разрешить на соответствующих машинах с L(n) =log log п, используя очевидную модификацию процедуры обработки примеров из [1]. Остается только показать, что L] и Ь2 — контекстно-свободные языки.
Мы дадим доказательство для Lx; доказательство для L2 совершенно аналогично. _
Легко проверить, что L\ можно представить как пересечение двух других языков1)
L\ = L^ f| L5, где
L4= biStb/S bi+1sy (0 + l)*s,
Ls = $ksbk+1sy.
Тогда Lx можно представить так:.
Мы покажем, что L4 и L5 суть контекстно-свободные языки, разрешимые односторонней магазинной машиной. Поэтому дополнения к ним — также контекстно-свободные языки (потому.что выход машины можно заменить на противоположный). Так как объединение двух контекстно-свободных языков есть контекстно-свободный язык, Lx контекстно-свободен.
Чтобы показать, например, что L5 можно разрешить односторонней магазинной машиной, рассмотрим следующее неформальное описание разрешающей процедуры. Просмотрев Ь^ машина запоминает это слово на магазинной ленте. После того как машина увидела символ s, последовательность Ь^ сдвигается в противоположном направлении на одну цифру за каждый шаг и обрабатывается при этом последовательным сумматором (содержащимся в конечной части машины), который прибавляет 1 к этой последовательности. Выход последовательного сумматора можно сравнивать цифра за цифрой с 6ь+ь что завершает разрешение. Процедура повторяется для каждой скобки под оператором *.
Подобную же процедуру можно использовать для разрешения L4 односторонней магазинной машиной. Этим завершается доказательство для двусторонних машин.
■^ ^-^ ■<-
9 Здесь ^bksbk-vxsY обозначает множество Т\ где Т = {£&s£&+1s ]^ = 1,
...}; аналогично понимается ^bjSbj^xsY. —Прим, пере»,
Очевидно, язык
L3 = Vanbn\n=l, 2, ...} контекстно-свободен. Его можно разрешить с L^n) = logn на односторонней машине Тьюринга, так как память log п можно использовать для подсчета числа символов а и сравнения этого числа с числом символов Ь.
Теорема 2.
(L(n) = log п)-разрешимый на двусторонней машине Тьюринга контекстно-свободный язык
L3 = lanbn\n=V 2, ...}
нельзя разрешить с
L^n)< • logn.
(L(n) = неразрешимый на двусторонней магазинной машине контекстно-свободный язык L3 нельзя разрешить с
L^n)< • п.
Контекстно-свободный язык
Lq = wsw,где w— любая конечная последовательность двоичных симво-<-->
лов, a w есть зеркальное изображение w, можно разрешить на односторонней машине Тьюринга с L^=n и нельзя разрешить с
L(n)< • п.
Доказательство. Из теоремы 1 мы знаем, что L^ (L (п) = log п) -разрешим на двусторонней машине Тьюринга. Покажем, что L^ нельзя разрешить на двусторонней машине Тьюринга с
L (п) < • log п.
Доказательство проведем сведением к противоречию; мы покажем, что любая машина М, принимающая якобы множество последовательностей {ambm} с L(n) < -log п, должна также принять и последовательность ambm*ml для некоторого пг. Пусть р — число, такое, что для всех натуральных чисел /
p^Q-T-i-T1,
где Q — число состояний управляющего устройства, Т— длина рабочего алфавита Так как L(n) < • log п, должно существовать такое число tn, что L(2m)<\ogpm и что М обладает менее
чем pL<2m)<m различными конфигурациями памяти при обработке а^Ь^Ч Если при обработке ambm читающая головка проходит над всей последовательностью символов Ь, то должны быть два Ь, такие, что, когда они обозреваются при этом проходе, М находится в одной и той же конфигурации. Если два b с этим свойством разделены I квадратами ленты, то, если m символов b заменить на m + к-l символов Ь, где к — любое положительное целое число, М придет на другой конец этой строки символов b в той же самой конфигурации, что и для строки из m символов Ь. Это справедливо для каждого прохода М над строкой из 6, хотя расстояние / может быть различным для каждого прохода. Так как m + m! можно для каждого I ^ m записать в форме m-Vk-l, при любом проходе машина не сможет различить
а b и а b .
Заметим, что если машина начинает обозревать строку символов b и не доходит до ее конца, то она будет трактовать атЬпг и атЬт^т' одинаковым образом. Поэтому атьтА"т'' должно быть принято, и мы получаем разыскиваемое противоречие.
Магазинная машина удовлетворяет, очевидно, частному варианту леммы в [1], поэтому мы опускаем подробности.
Часть 3 теоремы очевидна. Когда читающая головка односторонней машины Тьюринга пройдет через центральный маркер 5, на рабочей ленте нужно запомнить информацию, достаточную для восстановления w, что, очевидно, требует п квадратов.
Покажем, что каждая модель машины дает бесконечную иерархию контекстно-свободных языков (предложения АЗ, БЗ, ВЗ).
Теорема 3. Существуют бесконечные иерархии контекстносвободных языков для двусторонних машин Тьюринга с
log log n < • L (n) ^ • log n,
для односторонних машин Тьюринга с
log n ^ • L (n) ^ • n
и для двусторонних магазинных машин с
log logп< • L(п)< • п.
Доказательство. Чтобы доказать, что существует бесконечно много классов сложности контекстно-свободных языков для двусторонних машин Тьюринга, покажем, что для всякого
рационального числа plq^\ существует контекстно-свободный язык, который можно разрешить с
L V^ = [log \o&n\p,q
и нельзя разрешить с
£ (п) < • [log log п\р'4.
Мы дадим доказательство для случая p!q=2, указывающее основную идею общего случая.
Рассмотрим язык Lt, дополнение к которому следующее:
£7={Ы2а« ... sk1ssltlog,og2'n,s
1№...512[,ОгМ}.
Для каждого_т пусть пт — длина соответствующей последовательности в Lt. Согласно рассуждению, подобному доказательству теоремы 2, эта m-я последовательность потребует log[2[log log 2znl ] квадратов ленты для того, чтобы машину не «обманула» такая же последовательность с некоторым числом дополнительных единиц на конце. Итак, мы получили
L (пт) • > log [2[10g ,og 2ml’] = [log log 2m]2.
Можно показать, что nm меньше, чем 2m log m. Используя монотонность L, видим, что
L (2т log m) ^ L (n^ • ^ [log log 2m]2 =
= [log log [2m log m]]2 или
L(n) • > [log log n]2.
Из предыдущего рассмотрения L^ ясно, что Lt можно разрешить с
£(п)< • [log log n]2,
чем устанавливается, что L(n) = [loglogn]2.
Остается только показать, что Lt — контекстно-свободный язык. Используем метод теоремы 1; Lt представим как пересечение нескольких контекстно-свободных языков, разрешимых
односторонними магазинными машинами. В частности, L? —пересечение следующих семи языков:
La = b\s [bfs6/+is) (0 + 1 4- и + 2) ss(l + s) >
Lb = (b“sbH!s) ss(l + s)*,
Lc = (0+l+s + u + 2)* (0 + 1 + s) (u + zY ss
{‘’s^sl1-1 s')’ l*sss(l + s)*,
Ld = (0 + 1 + s + и + 2)* (ы + 2) ss(lpslp"*s)* Tsss (1 + s)*,
Le = (0 4- 1 + s + и 4- 2)* ss^l 4- -|) SSS (Ts)',
где (1+y) sss (l*s)r означает произвольную строку из единиц и символов s, за которыми следует sss, за которыми в свою очередь следует г групп l*s, при этом г равно числу единиц плюс половина числа символов s, содержащихся в этой произвольной строке,
Zvf = (0+l+s4-^ + 2)*sssls(l/sl2;s)* 1*s,
Lg = (0 + 1 + s + и 4- 2)* sss (lys A)*.
Как в доказательстве теоремы 1, La и Lb дают начальную часть L7 до первого появления ss. Так как b^m последовательно пронумеровано, прямо перед ss будут находиться [log log 2m] символов и и 2. Язык Lc тогда даст тaкжe_[log log 2m] единиц сразу после ss. Языки Lc и Ld образуют L7 между ss и sss. В этой части число единиц равно
[log log 2m] 4- ([log log 2m] -1)4- ... 4-24-1 =
= ^ {[log log 2mV - [log log 2/n]}.
Если к этому числу прибавить половину числа всех маркеров s> то получим точно
[log log 2m]2.
Le обеспечивает в точности это число, т. е. [log log 2m]2 маркеров s после sss. Языки Ly и Lg дадут часть последовательности после sss. Осталось только показать, что все семь языков действительно разрешимы односторонней магазинной машиной. Это относительно просто.
Подобный метод дает все рациональные степени, превосходящие единицу, log log 2m и все рациональные дробные (не
большие чем 1) степени log 2m и многих других функций. Можно пояснить, почему иерархия для двусторонних машин Тьюринга при этом методе ограничена L(n)=logn. Чтобы доказать, что требуется L^ квадратов, мы конструировали последовательность, имеющую 24*0 единиц на конце. Но это число единиц должно быть небольшим по сравнению с п — длиной последовательности, т. е.
ИЛИ
L (п) < • log п.
Поэтому нужно использовать другие методы для разыскивания контекстно-свободных языков, требующих L (ft) • > log п.
Аналогичным образом можно доказать теорему для двух других моделей машин.
Как говорилось выше, мы не умеем доказывать (и предполагаем, что это невозможно), что все контекстно-свободные языки можно разрешать с Л (ft) = log ft. Однако мы укажем алгоритм, который разрешает все контекстно-свободные языки и требует L (ft) = [log ti\2.
Теорема 4. Все контекстно-свободные языки можно разрешить на двусторонней машине Тьюринга с L (ft) = [log ft]2.
Доказательство. Укажем нужный алгоритм. Опять для краткости дадим неформальное описание.
Предположим для простоты изложения, что все правила языка содержат только два символа (т. е. А-^ВС или A-^-aBY Нам потребуется вспомогательная лемма. Рассмотрим в таком языке слово из п символов. Мы покажем, что в этом слове должна быть по крайней мере одна последовательность символов длины /
ft/3 ^ / ^ 2м/3,
такая, что она является в точности потомком одного нетерминального символа. Чтобы показать это, рассмотрим начальное правило, порождающее наше предложение:
3-> АВ.
Если ни А ни В не являются нетерминальными символами с желаемым свойством, то потомок одного из них, скажем В, имеет длину, большую чем 2ft/3. Рассмотрим непосредственное потомство В,
B->CD.
По крайней мере один из них, например D, должен обладать потомком с длиной, большей чем V2 (2п/3) = n/З. Итак, если С и D оба не обладают нужным свойством, то потомок D должен иметь длину, большую чем 2п/3, и процесс можно повторять, пока в конце концов не определится нетерминальный символ с желаемым свойством. Этим завершается доказательство вспомогательной леммы.
Первый шаг разрешения состоит в том, чтобы угадать положение потомка нетерминального символа, обладающего этим свойством.
Из данного слова длины п систематической процедурой делаем выборку подслова с длиной /
п/3 ^ / ^ 2п/3.
Процедура выделения должна быть систематической, чтобы можно было, если первая проба неудачна, перейти к новой пробе, отличной от всех предыдущих, наиболее простым способом.
Рис. 1. Первые четыре шага разрешающего алгоритма.
Память объема (logn)2 разделяется на log л блоков из logn квадратов каждый. В первом блоке запоминаются положения в данном слове (т. е. адреса) двух концевых символов выделенного подслова.
Две вышеописанные манипуляции производятся над выделенным подсловом, т. е. внутри его выделяется новое подслово, длина которого заключена между 1/3 и 2/3 длины первого подслова, и записывается его адрес во второй блок памяти.
Повторяем этот процесс до тех пор, пока не получим подслова, состоящего только из двух символов. Очевидно, что для всей процедуры потребуется не более чем log (2п/3) блоков памяти.
Первые четыре шага этого процесса показаны схематически на рис. 1.
Теперь можно определить, соответствует ли последняя выборка какому-либо правилу грамматики. Если нет, то производится новая последняя выборка. Если невозможна последняя выборка, соответствующая какому-либо правилу, то производится нужная предпоследняя выборка и снова подыскивается нужная последняя выборка. Если ни одна из предпоследних выборок не подходит, то изменяем предпредпоследнюю выборку и повторяем весь процесс, пока не найдем последнюю выборку, которая соответствует какому-либо правилу. (Если при исчерпании всех выборок не получили такой ситуации, то ясно, что слово не входит в язык.)
Если последняя выборка соответствует некоторому правилу, то нетерминальный символ, стоящий в левой части правила, пишем в последний блок памяти.
Теперь можно определить, соответствует ли предпоследняя выборка какому-либо правилу. Если нет, то производим новую предпоследнюю выборку и повторяем процедуру, описанную в 5. Если все выборки второго и более высоких уровней исчерпаны, а соответствующее правило не найдено, то производим новую последнюю выборку и повторяем шаг 5.
Если предпоследняя выборка соответствует одному или нескольким правилам, то нетерминальные символы, стоящие в левой части правил, пишем в предпоследний блок памяти.
Теперь последний блок памяти не нужен, и мы его стираем.
Как показано на рис. 2, новая выборка подслова производится внутри третьей от конца выборки и его адрес записывается в последний блок памяти, уже годный к употреблению.
Процесс повторяется и отбираются все более длинные подслова. Как только подслово отобрано, все блоки памяти, используемые для хранения информации о правилах, работающих внутри подслова, становятся ненужными и очищаются, чтобы
быть готовыми помечать другие выборки, как на шаге 10. Если данное предложение входит в язык, то описанная процедура в конце концов опознает, что все предложение порождается начальным символом S.
СРАВНЕНИЕ ИЕРАРХИЙ КОНТЕКСТНО-СВОБОДНЫХ ЯЗЫКОВ
Нужно подчеркнуть, что иерархии контекстно-свободных языков, определяемые четырьмя моделями машин, различны. Языки, легко разрешимые на машинах одного типа, могут быть трудно разрешимыми машинами другого типа, и наоборот.
Наиболее удивительный результат подобного рода относится к односторонним магазинным машинам и двусторонним машинам Тьюринга. Любой нерегулярный контекстно-свободный язык, который можно вообще разрешить на односторонней магазинной машине, требует по крайней мере L (n) = log п на двусторонней машине Тьюринга. Поэтому всю бесконечную иерархию контекстно-свободных языков, «легко» разрешимых двусторонней машиной Тьюринга, т. е. для которых
log log n < • L (n) < • log n, невозможно разрешать односторонними магазинными машинами. А все те контекстно-свободные языки, которые можно разрешать на односторонней магазинной машине, «трудны» для двусторонней машины Тьюринга, т. е. требуют по крайней мере L^n) = \ogn. Об этом более точно говорит следующая теорема.
Теорема 6. Все нерегулярные контекстно-свободные языки, которые можно разрешить на односторонней магазинной машине, требуют по крайней мере L (п) = log п для своего разрешения на двусторонней машине Тьюринга.
Доказательство. В литературе имеются по крайней мере три разных определения односторонних магазинных машин:
Машина, которая может печатать или стирать только по одному символу на ленте при каждом вводном символе, при этом магазинная лента должна быть пуста, если вводное слово принимается.
Машина, подобная (1), с тем исключением, что не требуется пустоты ленты при разрешении.
Машина, подобная (2), с тем исключением, что при каждом вводном символе машина может печатать произвольное число символов на магазинной ленте.
Теорема верна для всех трех типов машин. (Тип (3), наиболее общий, определен в [1].) Однако даже набросок доказа-
тельства для типа (3) слишком громоздок. Поэтому мы дадим набросок доказательства для машины типа (2).
Основная идея доказательства состоит в следующем. Мы сначала покажем, что если нерегулярный язык разрешим на односторонней магазинной машине, то существуют слова, требующие для своей записи довольно длинной магазинной ленты, которая в дальнейшем должна быть прочитана. Затем мы покажем, что каждое такое слово должно состоять из
некоторого слова (назовем его WaV которое повторяется достаточно много раз, заставляя магазинную ленту при записи его возрастать по длине;
некоторого другого слова (назовем его wBy которое повторяется столько же раз, сколько и wA, заставляя печатать что- нибудь на ленте. Разрешение, определяемое равенством числа вхождений wA и wB, согласно теореме 2, потребует L^n)=^= = logn на двусторонней машине Тьюринга.
Теперь дадим детали доказательства.
Если нерегулярный язык разрешим на односторонней магазинной машине, то существуют слова, требующие довольно большой магазинной ленты. Более точно, для всякого числа / существует слово wu при обработке которого (как начала вводного слова) на ленте остается некоторое число /о символов и /о^/; кроме того, всякое другое слово, скажем w\ использующее менее чем /о квадратов ленты, можно отличить от wb То есть существует некоторое другое слово wb такое, что два предложения
Si = wtwX)
S2 = w'wx
обладают следующим свойством: либо Si входит в язык и S2 не входит, либо наоборот.
Так как I— произвольное число, выберем его равным
I = QIT + Q44 + 2,
где Q — число состояний управляющего устройства машины, а / и Т— соответственно длины вводного и рабочего алфавита. QIT 4- 1 квадрат в начале ленты (те, что заполняются в первую очередь) назовем дном ленты. Оставшиеся квадраты назовем верхом ленты.
Покажем сначала, что для этого / и соответствующего Wi существует некоторое w\ требующее меньшего числа квадратов, но из-за которого магазинная машина должна посетить дно магазинной ленты для Wi, чтобы отличить w' от wb
Так как дно ленты для wt состоит из QIT + 1 квадратов, оно должно содержать два квадрата, скажем /| и t^ такие, что после переработки ^
в /1 и /2 напечатаны одинаковые символы;
когда эти символы печатались, машина находилась в одном и том же состоянии и соответствующие вводные символы (в wi) были одинаковы.
Тогда Wi можно записать как
wt = wasxw^sxw^
где оба вхождения Sj выделяют символы, которые заставили (последний раз) машину печатать в квадратах tx и t^. Теперь рассмотрим wr
W' = WgSXWT
При обработке этого слова получим в точности такую же магазинную ленту, что и при wi, с тем исключением, что будет выкинут кусок между tx и /2 (включая /2). Так как ленты для w' и Wi отличаются только на дне, то, чтобы отличить
aS! = WtWX от
S2 = w'wx,
машина должна посетить дно ленты. Итак, при обработке Si, к примеру, машина должна сначала напечатать всю ленту, дно и верх, а затем должна «стереть» весь верх, чтобы прочитать дно.
Теперь рассмотрим верх ленты, получаемой при обработке Sb Так как ^использует U> I = QIT + Q^PT + 2 квадратов,то верх этой ленты состоит по крайней мере из Q^PT-V\ квадратов. Следовательно, он содержит по крайней мере два таких квадрата, скажем /3 и /4, что при переработке Si
в /3 и /4 печатались (в последний раз) одни и те же символы;
когда в /3 и /4 печатались (в последний раз) эти символы и когда (позже) они прочитывались, (все четыре раза) машина находилась в одном и том же состоянии, а соответствующие вводные символы были одинаковы.
Поэтому Si можно записать так:
Si = W4S2W5S2W6S2^7S2^8,
где первые два вхождения $2 выделяют символы, которые заставили (последний раз) печатать в /3 и /4, а последние два вхождения s2 выделяют символы, когда Z3 и /4 были прочтены.
Теперь посмотрим, что произойдет при обработке слова вида ^1 = ^2 (^б^Г ^6S2 (^гГ ^8-
Вычисления очень похожи на вычисления при Sb Дополнительные вводные символы в kw^V дадут дополнительный кусок
ленты, совершенно одинаковый с куском первоначальной ленты между /4 и /3. Если лента для Si имеет вид
Т1/Т2^Т3
(где t—символ, напечатанный в /3 и /4), то лента для Ух будет иметь вид
т^ (т20" Т3.
Однако вводные символы в ^w7s«^u заставят стереть эти дополнительные квадраты ленты (как раньше для Si). Поэтому результаты вычислений одинаковы и все слова вида Ух принимаются (или отвергаются), если принимается (или отвергается) слово Sp
Когда машина обозревает верх ленты, она не может отличить S2 от Sp Поэтому квадраты /3 и t^ обладают теми же свойствами при обработке S2, что и при Sp В частности, S2 можно записать как
S2 = Ш952Ш552Ш652Ш752Ш10,
где ш9 и Wio появляются из-за другого дна ленты, a s2, w5, w6, w7 те же, что и для Sp Получаем также, что множество слов
^2 = ^9$2 (^гА)" AS2 <W7S2f W1Q
принимается или отвергается соответственно тому, принимается или отвергается S2.
Итак, мы показали, что либо Ух содержится в языке, допускаемом машиной, а ^2 не содержится, либо наоборот. Рассмотрим теперь два множества предложений
^1 = А«2 (^г)"' WA (^7S2)"2 ®8.
= W9S2 ^W5S2XnV W6S2ОУю,
где (n2— пх^Ж и К достаточно велико, чтобы при обработке Ух и У2 не стирался весь верх ленты (вспомним, что мы рассматриваем только те машины, которые для каждого вводного символа могут стирать только один символ на ленте). Так как машина не читает дно ленты при обработке 9^ и У^ то она не может отличить их и они оба принимаются либо оба отвергаются.
Пусть, например, язык таков, что Ух содержится в языке, а У2) У\, 9^2 не содержатся. Если машина Тьюринга должна разрешать этот язык и отличать Ух от ^2, то она должна подсчитать число («2 — /21) и сравнить его с К. Тогда по той же причине, что и в теореме 2, она должна на самом деле уметь считать до п,
что требует по крайней мере L(n) = log п квадратов ленты. Аналогично рассуждаем в остальных случаях.
Теорема 6 гласит, что требуется по крайней мере L(n)^= = logn квадратов ленты на двусторонней машине Тьюринга, чтобы промоделировать одностороннюю магазинную машину, производящую нерегулярное разрешение. Теорема 5 гласит, что для этого требуется самое большее L^ =^ (log п)2, даже если магазинная машина недетерминирована. Ранее было замечено, что вопрос, действительно ли требуется (log и)2, остается открытым. Мы предполагаем, что это так даже для детерминированных магазинных машин.
Другой открытый вопрос относится к аналогичным результатам для двусторонних магазинных машин; какая функция L^ потребуется, чтобы на двусторонней машине Тьюринга промоделировать двустороннюю магазинную машину, производящую нерегулярное разрешение. Здесь результат, быть может, зависит от L^ для магазинной машины.
ЛИТЕРАТУРА
Stearns R. Е., Hartmanis J., Lewis II Р. М., Hierarchies of memory limited computations, IEEE Conf. Rec. Switch. Circuit Theory and Logic. Design, 1965, 179—190. (Настоящий сборник, стр. 301—319.)
Chomsky N., Three models for the description of language, IRE Trans, on Information Theory, IT-2 (1956), 113—124. (Русский перевод: Кибернетический сборник, вып. 2, 1961.)
Landweber Р. S., Three theorems on phrase structure Grammars of Type I, Information and Control, 6 (1963), 131-—137.
Kuroda S. Y., Classes of languages and linear-bounded automata, Information and Control., 7 (1964), 207—223.
Chomsky N., Formal properties of grammars, Chapter 12 of Handbook of Mathematical Psychology, v. II, 1963. (Русский перевод: Кибернетический сборник (новая серия), вып. 2, «Мир», М., 1966, 121—230.)
ОБ ОБЪЕМЕ ПАМЯТИ, НЕОБХОДИМОМ ДЛЯ РАСПОЗНАВАНИЯ БЕСКОНТЕКСТНЫХ ЯЗЫКОВ
Дж. Хартманне
ВВЕДЕНИЕ
В работе исследуется распознавание бесконтекстных языков машинами Тьюринга. Мы ограничимся машинами Тьюринга с двумя лентами: лентой входа с двусторонним движением со считыванием, но без записи и рабочей лентой с двусторонним движением со считыванием и с записью.
Определение. Множество последовательностей W называется распознаваемым с памятью 1Дп^ коль скоро существует машина Тьюринга 3, которая, во-первых, распознает № (т. е. останавливается на всех входных последовательностях и при этом допускает цепочки из № и отвергает цепочки, не принадлежащие W^ и, во-вторых, использует не более L^ квадратов на рабочей ленте при оперировании с входом длины п.
В [1] было показано следующее:
Каждый бесконтекстный язык распознаваем с памятью не более L^ = [log и].
Существует нерегулярный бесконтекстный язык, который можно распознавать, используя всего лишь L^ = = [log log м] квадратов ленты. Но если язык распознаваем с памятью L (п) и
то язык регулярен (т. е. распознаваем при помощи устройства с конечной памятью).
Бесконтекстный язык {Onln|ii = l, 2, ...} требует для своего распознавания объем памяти, равный [log и], т. е. если
то язык {0п1п} не может быть распознаваем с памятью L(и).
Существует неограниченно много классов сложности (относительно памяти) бесконтекстных языков с отличными друг
от друга функциями памяти L(n), расположенными между [log log п] и [log п\ (Неизвестно, требуется ли для распознавания какого-либо бесконтекстного языка объем памяти более чем [log п].)
Таким образом, доказано, что распознавание нерегулярных бесконтекстных языков может требовать резко различных объемов памяти, которые занимают экспоненциальную шкалу от L (п) = [log log п\ до L(n) = [log п]. Далее, известно, что невозможно эффективно узнать, когда бесконтекстная грамматика порождает регулярный! язык [2], и, следовательно, неразрешим вопрос о том, распознаваем ли некоторый язык с конечной длиной ленты.
Ниже доказывается, что если даже заранее известно, что язык нерегулярен, то вопрос о длине ленты, необходимой для его распознавания, остается алгоритмически неразрешимым. Как и многие другие доказательства неразрешимости различных свойств бесконтекстных языков, это доказательство опирается на неразрешимость комбинаторной проблемы Поста [2, З]1).
ТЕОРЕМА О НЕРАЗРЕШИМОСТИ
Вначале построим два хорошо известных вспомогательных языка, используемых в доказательстве теоремы о неразрешимости. Пусть А и В — два списка, т. е. два упорядоченных набора из к непустых бинарных последовательностей
Д = (аь а2, аД В = (ЬХ) Ь^ ..., Ьк\
где к^ 1, а^ b^ из {0, 1}*, и пусть i означает двоичную запись числа L Тогда полагаем по определению
L (Д) = {h % i2 % ... « iP % % aip ... сца^
и аналогично
L(B)={jT«j2« ... «jq% ^btq ... b^b^y
Языки L^A) и L(B) могут распознаваться детерминированным автоматом PDS и, следовательно, являются бесконтекстными языками; их дополнения L(A) и L(B) также бесконтекстны [2].
Лемма 1. Если
L{A){\L{B)^0,
то для распознавания этого пересечения требуется длина ленты LW = \\ognY
Доказательство. Если Л(Д)ПЕ(В) Ф 0, то существует последовательность
ii % i2 % ... % ir % % air *.. а.^ принадлежащая Л (Л) ПЛ (5). Далее, последовательность
(ii % i2 % ... % ir)p % % (aif ... а^а^
принадлежит Л(А)П L(B) в том и только в том случае, если р = q. Допустим теперь, что у нас имеется машина Тьюринга 3, распознающая непустое множество
L (Л) ПЛ (В)
и работающая с памятью Л (/г). Тогда, поместив перед 3 устройство с конечным числом состояний, отвергающее все входные цепочки, не принадлежащие множеству
((ii % i2 % ... % ir)p % * ^т * * * ^hfl Р = ^ 2’
9=1, 2, ...},
мы превратим машину 3 в другую машину 3', которая распознает множество
r={0i«i2««М^^ «К ... a.a^XN^X, 2,
Поскольку собственная программа 3 никак не изменилась при переходе к 3'\ то отсюда следует, что 3' использует не больше ленты, чем 3. С другой стороны, любое устройство, распознающее множество W, должно уметь считать до N, а поскольку N пропорционально длине входной последовательности, мы можем заключить (из рассуждений, аналогичных тем, которые проводились в [1] для доказательства утверждения (3) из введения), что распознавание W требует памяти L(n)= [logп\. Доказательство закончено.
Лемма 2. Задача: верно ли, что L(A) П1ДВ) = 0, алгоритмически неразрешима.
Доказательство. Множество L^A^L^B^ непусто тогда и только тогда, когда существует последовательность индексов i\,i^ ..., Л, такая, что сц^ ... air — bibi2 ... bif Таким образом, Л(Л)ПЛ(5) 4= 0 тогда и только тогда, когда комбинаторная проблема Поста [3] имеет положительное решение для списков А и В. А поскольку известно, что комбинаторная
проблема Поста алгоритмически неразрешима, то неразрешима и проблема пустоты пересечения В(А) ^В^В).
Теперь воспользуемся этим результатом, чтобы доказать неразрешимость вопроса о длине ленты, необходимой для распознавания нерегулярных бесконтекстных языков.
Теорема. Невозможно эффективно решить по любой бесконтекстной грамматике, порождающей нерегулярный язык, распознаваем ли ее язык B(G) с памятью В{п) = [log logп].
Доказательство. Прежде всего отметим, что В(А) и В (В) —бесконтекстные языки, и в силу этого язык
также является бесконтекстным языком. Поскольку распознавание множеств
B^RB^ и Ш)ПВ(В)
требует одной и той же длины ленты, то наш бесконтекстный язык L(4)U В (В) либо представляет собой множество всех цепочек (в терминальном алфавите), если £(Д) Л В(В) = 0, и в этом случае регулярен, либо является нерегулярным языком, требующим для своего распознавания ленту длины [log и]. В силу леммы 2 вопрос о том, какой из этих двух случаев имеет место, алгоритмически неразрешим.
Во-вторых, рассмотрим множество цепочек
Ц7 = {1 «2Г«3^4Г« ... %(2п)г|ц=1, 2, ...},
где i — двоичная запись числа I, a (i)T означает обращенное i (т. е. слово i, записанное в обратном порядке). Легко показать, что W и W— нерегулярные множества и что оба они распознаваемы с памятью [log log п]; в [1] было доказано, что W — бесконтекстный язык. Следовательно,
^=№Н1ДА)ииЖ
где f — новый знак алфавита1)—представляет собой нерегулярный бесконтекстный язык, распознавание которого требует ленты [log и], если В (А) Л В (В) ¥= 0, и [log log п], если В^А) П L(B)= 0.
Отсюда можно заключить, что для нерегулярных бесконтекстных языков алгоритмически неразрешим вопрос: можно ли обойтись при распознавании минимальной длиной ленты L(n) =
!) Очевидно, имеется в виду, что
j^ = Vx^y\xeW, уе [ЦЛ)и-МВ)1).
— Прим. перев.
= [log log п] или потребуется большая ее длина? Иначе говоря, неразрешим вопрос: как быстро растет длина используемой рабочей ленты при растущей длине входной цепочки в процессе распознавания нерегулярных бесконтекстных языков?
ЛИТЕРАТУРА
Lewis Р. М., HartmanisJ., Stearns R. Е., Memory bounds for recognition of context-free and context-sensitive languages, IEEE Conf. Record on Switching Circuit Theory and Logical Design, IEEE Pub. 1603, 1965, 192—202. (Настоящий сборник, стр. 320—338.)
Ginsburg S., The mathematical theory of context-free languages, McGiaw-HiTl, N.Y., 1966. (Русский перевод: Гинзбург С., Математическая теория контекстно-свободных языков, «Мир», 1970.)
Post Е. L., A variant of a recursively unsolvable problem, Bull, AMS, 52 (1946), 264—268.
РАСПОЗНАВАНИЕ И АНАЛИЗ
КОНТЕКСТНО-СВОБОДНЫХ ЯЗЫКОВ ЗА ВРЕМЯ я31)
Д. X. Янгер
СПИСОК ОБОЗНАЧЕНИЙ
—>„может быть переписано, как"
=>„порождает"
Ттерминальный словарь
Nнетерминальный словарь
Sспециальный нетерминальный символ
Lязык
Gграмматика
ф, трцепочки в X U Т
St = sx ... sn проверяемая цепочка
Rматрица распознавания с элементами г(/, /, й)
Мматрица неоднозначности с элементами m(Z, /, ft)
Рматрица анализа с элементами рЦ. j, k)
Gtматрица терминальных правил грамматики с эле
ментами gt^k, I)
Gcматрица двойных правил грамматики с элемен
тами gc{k, kx, к<^
tдлины подцепочек в St
jномер первого символа данной подцепочки в St
к, кх, к2 индексы над множеством нетерминальных символов
Iиндекс над множеством терминальных символов
пдлинаSt
qчислонетерминальных символов
5числотерминальных символов.
ВВЕДЕНИЕ
При выборе языка программирования для ЭЦВМ важным критерием является простота проверки правильности построения данного предложения. В этой статье предлагается алгоритм распознавания, который применим к любому контекстно-свободному языку; этот алгоритм особенно хорош тем, что выполняется за число шагов, пропорциональное кубу числа символов проверяе-
!) Younger D. Н., Recognition and parsing of context-free languages in time n3, Information and Control, 10, № 2(1967), 189—208,
мой цепочки. Такая эффективность стимулирует дальнейшие поиски контекстно-свободных языков, пригодных для практического программирования.
Кроме того, алгоритм включает детальный грамматический анализ проверяемой цепочки. В качестве побочного продукта этого анализа можно получить много дополнительных сведений о грамматической структуре цепочки. При небольшом изменении алгоритма можно с его помощью вычислять степень неоднозначности предложения, т. е. число различных способов порождения его грамматикой. С другой стороны, если некоторая цепочка является предложением, производя с ней некоторые дополнительные операции (число которых не превышает куб длины предложения), мы получаем полное описание грамматической структуры данного предложения — матрицу анализа.
В качестве развития этих понятий в работе устанавливается связь между алгоритмом распознавания и классификацией языков, основанной на числе шагов, требуемых для распознавания на машине Тьюринга. Читателя, возможно, удивит, что даже на такой простой модели вычислительной машины, как машина Тьюринга), для выполнения нашего алгоритма требуется число шагов, пропорциональное лишь кубу длины цепочки.
В проблематике, связанной с исследованием естественных языков, предложены многочисленные алгоритмы анализа; из них автору известны предсказывающий анализатор [9, 10], алгоритм анализа Кока [6], алгоритм анализа Сакаи [13] и алгоритм анализа Кея [8]; последний стоит ближе всего к алгоритму, приводимому в данной статье. Ни для одного из этих алгоритмов не даны определенные оценки времени анализа. Обзор сравнительной эффективности, произведенный для предложенных алгоритмов распознавания контекстно-свободных языков на основании опытных данных, приведен в [4]).
С другой стороны, в то время как алгоритмы, предлагаемые в этой статье, претендуют на минимальность в смысле используемого времени, алгоритм из [12] замечателен тем, что при длине п входной цепочки длина рабочей зоны пропорциональна (log2^)2, т. е. меньше, чем у всех известных алгоритмов.
Прежде чем описывать алгоритм, мы сделаем обзор основных понятий математической лингвистики (введение в математическую лингвистику см. в [1]).
ОСНОВНЫЕ понятия КОНТЕКСТНО-СВОБОДНЫХ ЯЗЫКОВ
Словарь есть данное множество символов, состоящее из двух непересекающихся подмножеств Т и N, называемых соответственно терминальными и нетерминальными словарями. Элементы Т (терминальные символы) обозначаются строчными буквами или цифрами, например s, 0, 1. Нетерминальные символы обозначаются заглавными буквами, например А, В.
N содержит специальный символ, обычно обозначаемый буквой S. Цепочка в NOT есть конечная последовательность символов NUT. Длина цепочки — число содержащихся в ней элементов. Язык L есть произвольное множество цепочек в Г; каждая цепочка, содержащаяся в L, называется предложением языка L
Грамматика G есть конечное множество правил, которые рекурсивно определяют предложения языка. В контекстно-свободной грамматике все правила имеют вид А —►ф, где А — нетерминальный символ, ф— непустая цепочка в NOT. С помощью правила Д->ф цепочка в ^UГ вида фДф' порождает цепочку ффф', где ф и ф' — цепочки в NUT. Если в последовательности Фь ..., фп цепочек в NUT фг- порождает фг+1 согласно некоторому правилу из G для каждого I между 1 и п—1, то говорят, что ф1 порождает фп с помощью G, и пишут ф] =>фп. Язык. L(G\ порожденный G, есть множество цепочек в Т, которые порождены S — цепочкой, состоящей из единственного специального нетерминального символа. Язык, порожденный контекстносвободной грамматикой, называется контекстно-свободным язы ком.
Если все правила грамматики G имеют общий вид А~>ВС или А->а, где А, В, С — произвольные нетерминальные символы, а — произвольный терминальный символ, то говорят, что G— нормальная грамматика. В такой грамматике правила вида А -> а называют терминальными, а правила вида А->ВС— двойными правилами. Данную контекстно-свободную грамматику G легко привести к нормальной грамматике G', такой, что 4(G) = 1ДО'У Мы приведем пример такой редукции; общее доказательство имеется в [2]:
G:
(1)(1)S^SBS, S s, в-^вв, B-^BS, B->Q, В-> 1.
(1)
(1)
Рее правила этой грамматики, за исключением первого, уже имеют требуемый вид. Первое правило заменяем двумя
3->ЗЛ,A-^BS,
Двойные правилаДвойные правилаТерминальные правилаS-^s,В-^0,В->1.Терминальные правилаS-^s,В-^0,В->1.(2)(2)где А— новый нетерминальный символ; таким образом, получаем нормальную грамматику G':
Двойные правила
Двойные правила
Терминальные правилаS-^s,В-^0,В->1.
Терминальные правилаS-^s,В-^0,В->1.
(2)
(2)
S^SA A^BS, В^ВВ, B->BS,
За исключением правил 3—>34 и A—>BS, образующих представление правила S-^SBS в нормальной форме, нормальная грамматика существенно не отличается от контекстно-свободной грамматики, из которой она построена.
МАТРИЦА РАСПОЗНАВАНИЯ
Пусть дана контекстно-свободная грамматика, и пусть она приведена к нормальной форме. Пусть эта нормальная грамматика задана в виде двух множеств: множества упорядоченных пар, представляющих терминальные правила, и множества упорядоченных троек, представляющих двойные правила. Дана также цепочка символов в терминальном словаре языка. Необходимо узнать, входит ли эта цепочка в язык, порожденный данной грамматикой.
Определение. Алгоритм распознает данный язык L, если для любой цепочки в терминальном словаре языка он за конечное число шагов правильно решает вопрос о том, является ли данная цепочка предложением в языке L.
Этот распознающий алгоритм будет сформулирован при помощи матрицы распознавания. Для каждой подцепочки проверяемой цепочки 3/ эта матрица содержит все символы из N, порождающие эту подцепочку. В частности, в этой матрице перечислены символы, которые порождают всю цепочку St: если в этом списке содержится символ 3, то цепочка St является предложением в данном языке, если 3 не входит в этот список, то она не является таковой. Такая матрица, кроме информации, связанной с распознаванием, содержит много дополнительных сведений о грамматической структуре данного предложения.
В первой части статьи мы будем употреблять эту матрицу только для распознавания, однако позднее мы используем ее как основу для построения матрицы анализа.
Проверяемая цепочка задана в виде
St = S]S2 ... srt) где ^ е Г, / = 1, ..., п.
Подцепочка длины /, у которой первый символ находится на /*-м месте в St,— это цепочка SjSj+i ... sw_i.
Для наших целей будем записывать элементы нетерминального словаря нормальной грамматики1) в виде Ль, где Xi = S— специальный символ из Л/, а индекс к пробегает значения от 1 до q (число элементов Ny
Определение» Для данной нормальной грамматики G в словаре TXJN и данной цепочки St = s\ ... sn в Т матрицей распознавания R для St в L(G) назовем трехмерную двоичную матрицу R = [r(f, /, kynnq2) (где п— длина Sz и q— число символов в Ny такую, что r(i,j,k)= 1 тогда и только тогда, когда подцепочка St длины f, первый символ которой есть Sj, порождается G из ^-го символа A^^N, т. е. г(уук) = 1 в том и только в том случае, когда Ак^ s^s^y ... Sj+г-ь
Согласно этому определению, Цп, 1, 1) = 1 тогда и только тогда, когда Л1 =Ф $1$2• • • $п, т. е. когда Sz входит в L^Gy Критерием распознавания принадлежности St к L^GY следовательно, является равенство r^n, 1, 1) = 1.
Для иллюстрации вернемся к нормальной грамматике, определенной правилами (2). Возьмем в качестве проверяемой цепочки Sz = s0sl0s. Матрица распознавания для Sz в L(G) выглядит так (/ — номер первого символа подцепочки):
Длина 1
1
2
3
4
5
6
Номер /
St
=sOslOs
123456
12345
1234
123
12
1
Символ Ак
Sl=Avy Д(= Д2) В(= Дз)
1.1..1
. 1.. 1
1...
... 1
..1
. 1
1
(3)
.1.11.
.1.11
.1.1
.1.
.1
•
1) Этот словарь, вообще говоря, шире словаря контекстно-свободной грамматики, из которой получена данная нормальная грамматика. Добавились символы двух типов: те, которые позволяют заменить правило А->Вс правилами А-^ВС и С-^-с, и те, с помощью которых правило Д->хр, где 4> имеет длину / > 2, заменяется / — 1 двойным правилом.
2) Имеется в виду, что I и / изменяются от 1 до гц а к — от 1 до q.
В этой матрице распознавания индексы ц j, к имеют следующие значения:
/ — длина подцепочки;
/ — номер первого символа подцепочки в проверяемой цепочке; к — индекс над множеством нетерминальных символов нормальной грамматики.
Каждая подцепочка проверяемой цепочки St определяется двумя индексами ц j. Поскольку пары индексов, для которых / + />^4-1, не соответствуют никаким подцепочкам, то соответствующие элементы матрицы опущены. Другие нулевые элементы для большей ясности обозначены точками. Кроме того, для удобства представления отдельно показаны плоскости матрицы для различных / — длин подцепочек. Аналогичное разбиение можно произвести и по другим координатам. Смысл элементов этой матрицы R таков: пусть г(4, 2,3) = 1. Это означает, что подцепочка Sz длины 4, начинающаяся со второго символа, порождается грамматикой из Л3 = В. Для S< = sOslOs такая подцепочка имеет вид 0s 10; она действительно порождается В таким образом: В=^> ВВ=^> BSB=^> BSBB=^>0s\0.
АЛГОРИТМ РАСПОЗНАВАНИЯ КОНТЕКСТНО-СВОБОДНЫХ языков
Алгоритм распознавания есть итерационная процедура для вычисления элементов R. Для / = 1 элементы матрицы вычисляются, исходя из терминальных правил G, в частности для /=1 r(l, ьк) = 1, если Ак^ Sj, т. е. если Ak—>Sj есть терминальное правило G, и r(l, j,k) = 0 в противном случае. Отыскав с помощью терминальных правил плоскость матрицы для / = 1, мы найдем остальные элементы матрицы, используя двойные правила. Например, (2,2,2)-элемент матрицы распознавания оказывается равным 1 по следующим причинам. Нетерминальный символ с индексом 2 есть А [имеется в виду грамматика (2).— Перее]. Следовательно, первый шаг в порождении из А должен использовать двойное правило, в котором А стоит слева. В нашей грамматике одно такое правило А—>В5. Поскольку А должен порождать терминальную цепочку длины 2, то В и S должны порождать цепочки длины 1 каждый. Чтобы узнать, порождает ли В^= А^ такую цепочку, рассмотрим элемент матрицы (1,2,3); чтобы проверить S( = Ai), берем (1, 3, 1)-элемент. Поскольку оба этих элемента равны 1, г (2, 2, 2) = 1.
В общем случае получаем следующую итеративную процедуру ДЛЯ вычисления R = \г^ЛЛ5\ппц.
r(l, j,k) = 1, если Ak—>s3— терминальное правило G, и г(1, ]\ к) = 0 в противном случае;
если вычислены элементы матрицы для всех V < i, где /> 1, то
Z-1
г (Л Л ^)=55^(^ Л ^1)г(/ —Л j + Л fe2) (суммирова
ние логическое), (4) где Рк — множество упорядоченных пар (&i, й2), таких, что Ак-> AkvAk2 ™ правило G. Другими словами, эта логическая сумма означает, что r^i, j, ^=1, если для некоторого правила Ак-> АкхАк2из G и некоторого t ^ж^у 1 и i— 1 предварительно вычисленные значения r^i.kx^ и г(/ — /, / 4- /, к^ оба равны 1; rG> i> &) = 0 в противном случае.
Доказательство правильности итеративного процесса. Предположим, что процедура вычисляет элементы матрицы распознавания в соответствии с определением для всех i < /о- Чтобы определение удовлетворялось при i = io, r(ioj>k^) должно быть равно 1 только в случае, когда Ak^SjSj-^i . ,.s/+zr_i. Это заведомо верно при fo = 1; для io > 1 это выполняется в том и только в том случае, когда существует такое значение индекса t между 1 и io—1, что для некоторого правила Ак-> AkvAk2 нормальной грамматики выполняется ^^S/Sy+i... S/+t-i и ?U2=>s/+/s/+/+i... .. . s/+z0-i. Последняя пара отношений может выполняться тогда и только тогда, когда r^t, j, ^i) = 1 и гЦо— ^ / + t, k2) = 1 ио предположению индукции. Другими словами, r(io,j,k) = 1 тогда и только тогда, когда логическая сумма (4) для i = io равна 1.
Пока мы вычисляем матрицу распознавания вручную, нас вполне устраивает запись правил грамматики в виде, аналогичном (2); при автоматическом вычислении требуется форма, в большей степени соответствующая этому случаю. По аналогии с матрицей распознавания представим грамматику в форме двоичной матрицы. Здесь нужны, однако, две матрицы: одна — для терминальных правил, а другая — для двойных. Терминальные правила представляются упорядоченной парой символов каждое: первый — символ нетерминальный, второй — терминальный. Правила можно представить в виде двоичной матрицы
Gt = Vgt^» 0]^5>
где q— число нетерминальных символов, a s — число терминальных символов в словаре. Элемент gt^k, /) = 1, если Ак-^сц— терминальное правило G, и gt^k, /) = 0 в противном случае. Двойные правила суть упорядоченные тройки символов из N. Их можно представить в виде матрицы Ge = [gc(&, &ь k^qqq. Элементы
gc(k, кх, к2) = 1, если A.-> Л^Л^—правило G, и в противном случае ^(fe, kXl к2) = 0.
Например, вспомним грамматику (2); терминальные правила можно представить в виде
(5)(5)£\01s
(5)
(5)
S.. 1
Gt=А.. .
В 11.
Аналогично двойные правила представляются двоичной матрицей
к S А В
кх SGc= АВ. 1 .1 . .1 . 1кх SGc= АВ. 1 .1 . .1 . 1к2 SAB SAB SABк2 SAB SAB SAB(6)(6)
кх S
Gc= А
В
. 1 .
1 . .
1 . 1
кх S
Gc= А
В
. 1 .
1 . .
1 . 1
к2 SAB SAB SAB
к2 SAB SAB SAB
(6)
(6)
Применяя матричную форму грамматики, можно переписать уравнение (4), используемое для итеративного вычисления элементов R, в виде i-l q q
г Ui b k)=^ 5 s gc(k, kx, k^r{t, i, kvW-t, i + t, k^, t=\ kx=\ k2=l
i > 1 (суммирование логическое). (7)
Теперь мы в состоянии оценить число элементарных операций, требуемых для вычисления R. Пусть Т (/?) — число логических произведений, требуемых для вычисления всех элементов R; T(r(iJ,k)) означает аналогичную величину для одного элемента r^ij/k). Для простоты опустим операции вычисления для плоскости i = 1. Получаем из (7)
TUU, j, k)Wi-V)q2,(8)
п qп
ur)= 2 ^тшл))- 2 u-Dq5-
i>2, />1 к=11^2, /> 1
= у q^n (n2 — 1) < ~ q^n\(9)
Поскольку вычисление всех элементов матрицы распознавания может быть выполнено нахождением (1/6)^3п3 логических
произведений, отсюда следует, что распознавание произвольного контекстно-свободного языка можно выполнить, вычислив
логических произведений 9
В результате получаем следующий алгоритм распознавания. найти с помощью итеративного процесса все элементы матрицы распознавания для St из L(G). Если (n, 1, 1)-элемент этой матрицы равен 1, то цепочка является предложением L(G), а в противном случае не является таковой.
НЕОДНОЗНАЧНОСТЬ ПРЕДЛОЖЕНИЯ
Небольшое расширение метода распознавания позволяет использовать его для нахождения неоднозначности предложения в любом контекстно-свободном языке. Неоднозначность предложения относительно грамматики G есть число различных способов, которыми это предложение получается из S с помощью G. Говорят, что предложение однозначно, если его неоднозначность равна 1, и неоднозначно, если его неоднозначность больше 1; неоднозначность вычисляется тем же способом, который мы использовали при распознавании, только вместо логических операций используются обычные арифметические.
Определение. Для данной грамматики G в словаре ГО^ и данной цепочки S< в Т матрица неоднозначности для St из L(G) есть трехмерная матрица М = [m(i, f, k)]nnQ из натуральных чисел (п — длина St, q— число символов в N), такая, что m^i,),^ равно числу различных способов, которыми подцепочка цепочки St, имеющая длину I и начинающаяся /-м символом St, порождается k-м символом Ак е N грамматикой G.
Из этого определения следует, что неоднозначность цепочки Sz в L(G) равна m^n, 1, 1). Если т^п, 1, 1) = 0, то Sj не содержится в L(G).
Итеративная процедура для вычисления М = [m(Z,/, кЖпд-
т(1,/,&)=1, если Ак —>Sj— терминальное правило G, и т(1,/,6) = 0 в противном случае;
}) В порядке частного сообщения A. McKellar отметил, что общий алгоритм из [3] для оптимального кодирования алфавита из п символов двоичными словами переменной длины требует ~п^п2~ 1) операций — величина, наводящая на мысль о параллелизме между этим алгоритмом и алгоритмом данной статьи. Действительно, хотя объекты этих алгоритмов совершенно различны, оба они используют подход «от конца к началу» (bottom up), что и приводит к сходству вычислительных сложностей.
если вычислены элементы матрицы для всех V 4Д где i > 1, то
г-1
m (z, /, ^)=52^(^> b k^m^i—t, j+t, k<^ (обычное
(^р ^^
арифметическое суммирование). (10)
Здесь Рк — множество упорядоченных пар (^1,^2), таких, что /U->/и,Лб2 —правило G.
Доказательство правильности этого алгоритма такое же, как и в случае матрицы распознавания, только логические операции заменяются арифметическими. Для иллюстрации снова обратимся к грамматике (2) и предложению St = sOslOs. Матрица неоднозначности для St из L(G) имеет следующий вид:
Длина
1
1
2
3
4
5
6
Sf = sOslOs
Номер
i
123456
12345
1234
123
12
1
Символ
Ak S(= А{)
1.1..1
1...
..1
4 (H)
A(,= A2)
.1..1
... 1
.3
B(= A3)
.1.11.
.1.11
.1.1
.2.
.5
•
Неоднозначность St из L(G)
равна 4, значению m(n, 1, 1).
МАТРИЦА АНАЛИЗА
Анализ предложения в языке L(G) есть описание того, как предложение порождается G; это описание, вообще говоря, дается в виде дерева порождения. Для неоднозначного предложения существует несколько таких деревьев. Действительно, имеются такие грамматики G, что для некоторых предложений из языков, порожденных G, число различных деревьев порождения есть экспоненциальная функция длины предложения. Например, таковы все предложения языка, порожденного грамматикой
Даже если можно было бы построить все деревья порождения для предложений с высокой неоднозначностью, это множество не дало бы много информации для «аналитика». Хотелось бы иметь поэтому более компактную форму описания грамматической структуры; матрица распознавания кажется подходящей для этой цели. Однако у этой матрицы есть недостаток: она
содержит лишнюю информацию. В частности, в ней есть ненулевые элементы, соответствующие случаям порождения данной подцепочки некоторым нетерминальным символом, в то время как при порождении всего предложения данная подцепочка этим символом не порождается. К счастью, эти лишние ненулевые элементы легко устранить, как видно из следующего определения.
Определение. Пусть даны нормальная грамматика G над словарем ^U71 и цепочка S/ = SiS2 ... sn в Т; матрицей анализа Р для St из L(G) назовем трехмерную двоичную матрицу Р = \Pk^b^\miq (где п— длина St, q— число символов в ^), такую, что p^ij,^— 1 в том и только в том случае, если для нетерминального символа Ак:
Ак ^ sjsj+\ • • -Sj+i-b
либо S(=^i)=^SiS2 ... Sj_xAksw ... sn, либо i,j,k — = n, 1, 1.
Для примера снова рассмотрим грамматику (2) и цепочку sOslOs. Матрица анализа для нее такова:
Длина 1
1
2
3
4
5
6
Номер j
s,
=sOslOs
123456
12345
1234
123
12
1
Символ Ак
$(= А)
л(= А) в(= А)
1.1. .1
.1. .1
1...
. .1
. 1
1
(12)
.1.11.
.1.1.
.1..
.1.
•
Элементы матрицы анализа можно находить по данной матрице распознавания с помощью следующей процедуры.
Итеративная процедура для вычисления Р=Цр(Л Ь £)Ь^из R = [^(^ /, k)lnnq«
р^п, 1, 1) = г^п, 1, 1);
если p(ij,k) = 1, то для правил G вида Ак->АкхАк2, таких, что г(/, /, кх^гУ'— ^> / + ^> ^2) = 1 Для некоторого t, 1 </<f— 1, полагаем все р(МЛ\^ и p^i— t, j + t, k2) равными единице; все остальные элементы, не равные 1 в силу этого правила, равны 0.
Доказательство. Предположим, что процедура дает значения элементов матрицы в соответствии с определением для всех i > io; мы хотим показать, что в этом случае определение удовлетворяется и при i = i0. Когда io = п, это очевидно. Для
10<п предположим, что процедура дает нам p(iojo, ^о) = 1. Тогда должно существовать такое правило А^~* АьЛк2 (где либо fe1 = й0) либо fe2 = ^о) и ненулевой элемент p(ij,k) для i > z0, из которых получается значение 1 для р(/о,/о, &о). По предположению индукции элемент рЦ^Д^ вычислен в соответствии с определением, т. е. S => Si ... Sj_xAksw • • • sn. Следовательно, S=>si ... sMAkA2sHi ... sn> откуда видно, что /? (Zo, /о» ^о) = 1 в соответствии с определением.
Проводя рассуждение в обратном порядке, видим, что обратное утверждение также верно; этим доказана правильность нашей процедуры.
МАШИНА ТЬЮРИНГА ДЛЯ РАСПОЗНАВАНИЯ И АНАЛИЗА
Выше показано, что все элементы матрицы распознавания можно найти примерно за -^-q3n3 логических произведений. При доказательстве этого утверждения мы пренебрегли вычислением элементов плоскости z = 1 и не касались вопросов сложности нахождения и группировки сомножителей в данном логическом произведении. Чтобы точнее определить сложность вычисления матриц распознавания и анализа, мы промоделируем эти вычисления на машине Тьюринга.
Мы займемся этим в данном разделе; следующий раздел посвящен построению универсальной машины для распознавания и анализа контекстно-свободных языков, т. е. машины Тьюринга, которая проверяет любую цепочку относительно любой нормальной грамматики, поданной на вход.
Возможность такого моделирования сама по себе не удивительна, однако интересно, что вычисление матрицы распознавания или анализа может быть выполнено (если пренебрегать вычислением плоскости z = 1) за число шагов, которое отличается от соответствующего числа логических произведений только постоянным множителем. В работе [5] показано, что за счет расширения рабочего алфавита машины и соответствующей перекодировки вычислений постоянный множитель при вычислительной сложности может исчезнуть. Следовательно, может быть построена машина Тьюринга, которая вычисляет элементы матриц распознавания и анализа за число шагов, равное соответствующему числу логических произведений.
Мы будем работать с такой формой машины, которая удобна для исследований вычислительной сложности, начатых в [5] и продолженных в [7, 12]. В работе [5] вычисления классифицируются в зависимости от сложности выполнения их на машине Тьюринга. Эта сложность измеряется в терминах времени (т. е.
числа шагов машины), которое необходимо для вычислений, или в терминах зоны (т. е. числа квадратов ленты), необходимой для вычислений. Мы будем работать с критерием времени, но используя при этом модель, построенную в связи с изучением зоны.
Машина Тьюринга состоит из управляющего устройства с конечным числом состояний и конечного числа лент (рис. 1).
Управляющее устройство с конечным числом состоянийУправляющее устройство с конечным числом состоянийВходные лентыВходные лентыРабочие лентыРабочие лентыВыходные лентыВыходные лентыРис. 1. Модель машины Тьюринга.Рис. 1. Модель машины Тьюринга.
Управляющее устройство с конечным числом состояний
Управляющее устройство с конечным числом состояний
Входные ленты
Входные ленты
Рабочие ленты
Рабочие ленты
Выходные ленты
Выходные ленты
Рис. 1. Модель машины Тьюринга.
Рис. 1. Модель машины Тьюринга.
Каждая лента разделена на квадраты, одни из которых пусты, а другие содержат символы из данного конечного словаря лент (имеется в виду алфавит машины. — Перее.), в данном случае состоящего из двух символов 0 и 1. Связь управляющего устройства с лентами осуществляется посредством пишуще-читающих головок, по одной на каждой ленте. Каждая головка занимает один квадрат ленты. Шаг машины Тьюринга состоит из следующих трех операций:
Каждая головка читает (различает) символ, содержащийся в том квадрате, который она занимает 9; в зависимости от этих символов управляющее устройство изменяет свое состояние.
Каждая головка может изменить символ, содержащийся в занимаемом ею квадрате, или не менять его.
Каждая головка может независимо от других передвинуть просматриваемый квадрат на единицу влево или вправо.
Как мы увидим, исключение делается для головок, стоящих на выходных лентах: они не могут читать символы.
Различные ленты машины играют неодинаковую роль; в зависимости от этого выделяют три класса лент:
Входные ленты — их можно читать, но на них нельзя писать. Поэтому каждая такая лента содержит некоторую неизменную запись. В начале работы головка, связанная с входной лентой, стоит над крайним левым непустым символом.
Рис. 2. Структура машины Тьюринга, реализующей алгоритм распознавания.
Рабочие ленты — на них можно и читать и писать. Вначале все квадраты рабочей ленты пусты.
Выходные ленты — на них можно писать, но их нельзя читать. Вначале все квадраты выходных лент пусты.
Теперь опишем машину Тьюринга, реализующую алгоритм распознавания. Мы будем предполагать, что правила грамматики хранятся в памяти управляющего устройства, так что наша машина распознает лишь язык конкретной грамматики G. Такую машину назовем G-машиной (рис. 2). В следующем разделе мы расчленим управляющее устройство О-мащины на управ-
ляющее устройство универсальной машины ((7-машины), входную ленту, на которой задана грамматика, и рабочую ленту, на которой временно хранятся текущие параметры грамматики.
G-машина имеет одну входную ленту. На этой ленте записана входная цепочка. Терминальные символы этой цепочки закодированы символами словаря лент. Для простоты предположим, что это кодирование в унарной системе, т. е. терминальный символ cq представляется цепочкой / последовательных единиц, за которыми следует пустой квадрат. Головка на входной ленте стоит в начальный момент на крайнем левом непустом квадрате. Эта головка может сдвигаться только вправо, воспринимая одиночный пустой квадрат как конец символа, а пару пустых квадратов как конец цепочки.
G-машина имеет четыре рабочие ленты. На трех из них расположены элементы матрицы распознавания, развернутой линейно1). На четвертой ленте записаны значения п и индексов i, j и t.
G-машина не нуждается в выходной ленте. Результат распознавания отражается на специальном индикаторе, стрелка которого занимает одно из трех положений: «принято» (т. е. данная цепочка входит в L(G)), «отвергнуто» и «пока нет ответа».
Объясним подробнее, в каком виде появляются на лентах элементы матрицы распознавания. Напомним, что элементы матрицы распознавания имеют значения 0 или 1. Просматриваемая часть лент, на которых вычисляется матрица распознавания, не содержит пустых символов: в каждом квадрате записан 0 или 1. Элемент r(ij,k) матрицы находится в [((— \^nq + + (/— 0^7 + ^]"м квадрате каждой из трех лент; отсчет квадратов ведется слева направо от начального положения головки; квадрату, на котором стоит головка перед распознаванием, присваивается номер 1. Согласно этой формуле, элементы, соседние по индексу ( (и с совпадающими остальными индексами), разделены на ленте nq— 1 квадратами, соседние по индексу / разделены q—1 квадратами и соседние по индексу к оказываются соседними и на ленте.
Теперь опишем работу G-машины при распознавании. Она строится согласно итеративной процедуре вычисления R, данной в разд. 4. В первую очередь вычисляются элементы матрицы распознавания для i = 1: проверяемая цепочка читается слева направо и после прочтения каждого символа цепочки управляющее устройство с помощью внутренней памяти находит
!) Вместо трех лент можно было бы использовать одну ленту с тремя головками. Такая модель была бы обобщением рассматриваемой здесь.
все нетерминальные символы, которые порождают данный терминальный посредством применения единственного терминального правила. Если оказывается, что /-й символ цепочки порождается нетерминальным символом Ак) то г^Л) =А- Все остальные элементы для i = 1 полагаются равными 0. После получения всех элементов для t = 1 на одной из рабочих лент они переписываются на две остальные ленты, предназначенные для вычисления матрицы R.
Вычисляемая вслед за этим плоскость I = 2 сначала также получается на одной ленте, а затем переносится на остальные. Используя каждый раз уравнение (4), мы продолжаем вычисления для все больших значений L В силу (4) каждый элемент матрицы распознавания определяется парами вычисленных ранее элементов, причем выбор самих пар определяется двойными правилами грамматики. Две рабочие ленты используются как память для определения значений этих пар уже вычисленных элементов, а на третьей записывается результат, вычисленный в зависимости от конъюнкций единиц среди выбранных пар.
Элементы матрицы R с индексом i + 1 вычисляются только после того, как вычислены все элементы с индексом L При данном i элемент матрицы требует для вычисления I—1 проход; каждый проход соответствует одному значению / в уравнении (4). Во время каждого прохода элементы матрицы вычисляются в порядке возрастания /. Кроме того, для данных ц /, / вычисление происходит в порядке возрастания к; в этом случае головка, записывающая результат, двигается только слева направо. Для сдвига этой головки на один квадрат головки, собирающие информацию, должны пересмотреть все возможные пары индексов &ь к2. Так работает машина Тьюринга, реализующая алгоритм распознавания.
G-машину легко превратить в G-анализатор. Достаточно добавить выходную ленту, на которой будет записываться матрица анализа (точно в таком же виде, как и матрица распознавания). Сначала G-анализатор вычисляет описанным выше образом матрицу распознавания. Если r^n, 1, 1) = 0, то проверяемая цепочка не есть предложение из L(G), и матрица анализа полностью нулевая. Если же г(п, 1, 1)= 1, то ненулевые элементы матрицы распознавания, не связанные с грамматической структурой, обращаются в 0 в соответствии с итеративным соотношением разд. 4. Это по сути дела та же процедура, которая используется для вычисления матрицы распознавания, но идет она «от конца к началу» — от значения п в порядке убывания I. Очевидно, число шагов здесь не больше, чем в случае вычисления матрицы распознавания.
УНИВЕРСАЛЬНАЯ МАШИНА ДЛЯ РАСПОЗНАВАНИЯ И АНАЛИЗА КОНТЕКСТНО-СВОБОДНЫХ языков
Теперь расчленим управляющее устройство G-машины. Оно состоит из управляющего устройства G-машины (G означает универсальность) и двух лент. Другими словами, добавив две ленты для работы с грамматикой и изменив управляющее устройство, мы можем создать G-машину, которая будет выполнять распознавание для любой контекстно-свободной грамматики в нормальной форме. Одна из дополнительных лент — входная; на ней записана грамматика в виде трех массивов, разделенных одиночными пустыми квадратами. Первый массив — цепочка единиц длины q— число нетерминальных символов нормальной грамматики. Второй массив — это терминальные правила грамматики. Он занимает qs квадратов (s— число терминальных символов). Квадрат, отстоящий на (/—\)q + k квадратов от ближайшего левого пустого квадрата, содержит 1, тогда и только тогда, когда Ак-^аг есть терминальное правило, и 0 в противном случае. Третий массив занят двойными правилами грамматики и занимает q3 квадратов. Здесь квадрат, отстоящий на (&— 1) <72 + № — 1)7 + ^2 квадратов от ближайшего левого пустого квадрата, содержит 1, если А^ —> АиЛ^ — двойное правило грамматики, и 0 в противном случае. Вид входной ленты выбран в соответствии с формой записи матрицы распознавания на ленте.
Вторая добавочная лента — это рабочая лента, на которой хранятся записи параметров грамматики, т. е. q, к, кх, к^.
Теперь мы можем сосчитать число шагов, необходимое для распознавания G-машине. Оно оказывается похожим на ранее полученную величину, именно yrq3n3. Теперь мы, однако, должны учесть число шагов, требуемое для вычисления плоскости f = 1, для возвращения рабочих и читающих головок в исходные положения, для записи двух дополнительных копий матрицы распознавания. Все это увеличивает время распознавания. Не вдаваясь в подробности, скажем только, что для вычисления плоскости i = 1 нужно не более чем (2s + 1)7^ шагов, для остальных элементов — не более чем у п3 (q3 + 1) + 2qn2. Вместе это даст для времени распознавания оценку сверху
у п3^3 + 1) + (2s + 2п + 1) qn.
При q> 1, qn^ s получаем
Tr = ^n?q\(13)
где Тт — обозначает верхнюю границу времени распознавания.
Для [/-анализатора время вычислений превосходит время распознавания не более чем вдвое, поэтому при qn ^> s, q> 1
Tp = n?q3.(14)
ЗАМЕЧАНИЯ
Алгоритмы для распознавания и анализа, требующие числа шагов, пропорционального п3, приводят к вопросу о существовании контекстно-свободных языков, которые в самом деле требуют такого большого числа шагов. Получить такой результат оказывается трудно. Действительно, в то время как в [5] для некоторого конкретного контекстно-свободного языка доказано, что его распознавание требует более чем п шагов, до сих пор не показано, что существуют контекстно-свободные языки, требующие для распознавания время, большее, чем любая пропорциональная п величина, хотя интуитивно чувствуется, что такие языки существуют).
Если существует язык, требующий для распознавания ап3 операций (а — некоторая константа), то он не порождается металинейной грамматикой, потому что с помощью матричного метода можно показать, что все такие языки распознаются за рп операций (р — некоторая константа)2).
ЛИТЕРАТУРА
Chomsky N., Formal properties of grammars, In «Handbook of Mathematical Psychology», v. II, Wiley, New York, 1963. (Русский перевод: Кибернетический сборник, новая серия, вып. 2, 1966, 121—230.)
Chomsky N., On certain formal properties of grammars, Information and Control, 2 (1959), 137—167. (Русский перевод: Кибернетический сборник, вып. 5, 1962, 279—311.)
Gilbert Е. N., Moore Е. F., Variable-length binary encodings, Bell System Techn. L, 38 (1959), 933—967. (Русский перевод: Кибернетический сборник, вып. 3, 1961, 103—141.)
Griffiths Т. V., Р е t г i с k S. R., On the relative efficiencies of context- free grammar recognizers, Commun. Assoc. Comput. Mach., 8 (1965), 283—300.
Hartmanis J., Stearns R. E., On the computational complexity of algorithms, Trans. Amer. Math. Soc., 117 (1965), 285—306. (Русский перевод: Кибернетический сборник, новая серия, вып. 4, 1967, 57—85.)
Н а у s D., Automatic language-data processing. In «Computer Applications in the Behavioral Sciences», Prentice Hall, Englewood Cliffs, New Jersey, 1962.
Hennie F. C., Stearns R. E., Two-tape simulation of multitape Turing machines, Gen. Elec. Res. Lab. Report № 65-RL-4020E, 19651).
К а у M., A parsing procedure, In «Information Processing 1962», North Holland, Amsterdam, 1963.
К u n о S., Oettinger A. E., Multiple-path syntactic analyser. In «Information Processing 1962», North Holland, Amsterdam, 1963.
Kuno S., The predictive analyser and a path elimination technique, Com- mun. Assoc. Com put. Mach., 8 (1965), 453—463.
Kasa mi T., An efficient recognition and syntax-analysis algorithm for context-free languages, University of Illinois Coordinated Science Lab. Rept. № R-257, 1966.
Lewis P. M. II, Stearns R. E., Hartmanis J., Memory bounds for recognition of context-free and context-sensitive languages, IEEE Conf. Record Switching Circ. Theory and Log. Des., 1965, 191—202. (Настоящий сборник, стр. 320—338.)
Sakai L, Syntax in universal translation, Proc. 1961 Intern. Conf. Mach. Transl. Languages and Appl. Language Analysis (Her Majesty’s Stationery Office, London), 1962.
Stearns R. E., Hartmanis J., Lewis P. M. II, Hierarchies of memory limited computations, IEEE Conf. Record Switching Circ. Theory and Log. Des., 1965, 179—190. (Настоящий сборник, стр. 301—319.)
О ВРЕМЕНИ МАШИННОГО РАСПОЗНАВАНИЯ ЯЗЫКОВ, ПОРОЖДЕННЫХ ЛИНЕЙНЫМИ ГРАММАТИКАМИ 9
Т. Касами
Обозначим через Vt конечное множество символов и через V? множество конечных последовательностей (в том числе и пустую последовательность) элементов из VT- Будет использоваться модель машины Тьюринга со входом), такая же, как в [2, 3]. Машина Тьюринга, помимо рабочих лент, имеет одностороннюю входную ленту с символами из VT и одностороннюю выходную с символами 1 и 0. Говорят, что машина Тьюринга распознает подмножество L ^ Vt в том и только в том случае, когда для любой входной последовательности длины п в VT п-\\ выходной символ есть 1, если эта последовательность содержится в Л, и 0 в противном случае. Говорят также, что L Т(п)- распознаваемо, если существует машина Тьюринга, которая распознает L, причем для любой входной последовательности печатает п-й выходной символ не более чем за Т(п) операций. Подробности можно найти в работах [2, 3], определения контекстно-свободных грамматик и языков, а также линейных грамматик ) — в [1].
В работе [3] построено множество А последовательностей, для которого можно найти весьма хорошую (для этого множества) нижнюю границу времени вычислений (т. е. числа операций машины) при распознавании на многоленточной машине Тьюринга. Здесь мы используем с небольшими изменениями это множество А.
Множество А' есть множество конечных последовательностей в алфавите [0, 1, s, с}, которые удовлетворяют следующим условиям:
первый и последний символы последовательности суть .s, а сама она состоит из блоков нулей и единиц одинаковой длины, разделенных символами s или scs;
^ Kasa mi Т., A note on computing time for recognition of languages generated by linear grammars, Information and Control.^ 10, № 2 (1967), 209-214.
если длина блока есть к, то число блоков превышает 2\ 2^-й и (2А + 1)-й блоки разделены scs, а все другие последовательные блоки — символом s;
зеркальное отражение последнего блока нулей и единиц совпадает с каким-нибудь блоком, содержащимся среди первых блоков.
С помощью тех же рассуждений, что и в [3], получаем лемму L
Лемма 1. Если Af Т (п)-распознаваемо на машине Тьюринга, то
Х 7\ log п ) ’
где С — константа, зависящая только от числа лент, числа символов в алфавите машины и числа ее внутренних состояний.
Пусть 7?(ф) означает обращение последовательности ф, например, если ф = ОН, /?(ф) = НО; пусть
Lo = (фоЗф^Фг^Фз5^ (Ф1)s I Фо, Ф2. Фзе(О. 1, 5Г> Ф1 G {О, 1}’}.
Легко видеть, что Lo порождается линейной грамматикой Со = (^1» Vг», ^o,S), где множество терминальных символов Уто={0,1, s, с) множество нетерминальных символов V^={S, X, У), S— начальный символ и Ро— множество порождающих правил:
s->os, S-^ IS, S->sS, S sXs,s->os, S-^ IS, S->sS, S sXs,x-^oxo, X-^YXY, X-*sYs,Y-+c,x-^oxo, X-^YXY, X-*sYs,Y-+c,Y-^OY, Y->YY, Y—>sY, Y -> YO, Y->YY, Y-^Ys.Y-^OY, Y->YY, Y—>sY, Y -> YO, Y->YY, Y-^Ys.
s->os, S-^ IS, S->sS, S sXs,
s->os, S-^ IS, S->sS, S sXs,
x-^oxo, X-^YXY, X-*sYs,
Y-+c,
x-^oxo, X-^YXY, X-*sYs,
Y-+c,
Y-^OY, Y->YY, Y—>sY, Y -> YO, Y->YY, Y-^Ys.
Y-^OY, Y->YY, Y—>sY, Y -> YO, Y->YY, Y-^Ys.
Язык Lo можно считать одним из вариантов языка, который не является «-распознаваемым (доказательство в [2]).
Следующая лемма вытекает непосредственно из определений множеств А' и Lo.
Лемма 2. Если последовательность ф в алфавите (0, l,s, с} удовлетворяет условиям а) и б) определения множества А', то ф е А' в том и только в том случае, когда ф е Lo.
Распознать, удовлетворяет ли данная последовательность условиям а) и б), можно с помощью вычислений в реальное
время (см. [7]). Поэтому лемма 2 дает нам, что если Lo Т(п)- распознаваемо на машине Тьюринга, то Д' также /’(^-распознаваемо. Из леммы 1 получаем теорему.
Теорема 1. Если Lo Т(п)-распознаваемо на многоленточной машине Тьюринга, то существует константа С, такая, что
Т(п)>с(^—\2.
v 1\ log п /
С другой стороны, справедлива следующая теорема.
Теорема 2. Всякий язык, порожденный линейной грамматикой, Сп2-распознаваем на одноленточной машине Тьюринга (С— кон стан та).
Эта теорема доказана в работе [4]. Более простое доказательство приведено в дополнении.
Показано, что любой контекстно-свободный язык ^-распознаваем на машине Тьюринга (см. [5, 8, 6]1)). Между оценками ( i™"^) и п3 имеется разрыв.
ДОПОЛНЕНИЕ
Доказательство теоремы 2. Пусть G= (Vy, VT, Р, S)— линейная грамматика; VN — конечное множество нетерминальных символов, VT — конечное множество терминальных символов, Р — множество правил, S — начальный символ. Пусть V=VyUVT и V* — множество всех конечных последовательностей V (включая пустую последовательность). Мы пишем
где ^i = ®i%®2 (®ь ®2G V*, А'еЕИд,), Чг2 = ®1ф®2, если Х-хр — правило грамматики G. Далее мы пишем Ф=>ЧГ, если существует последовательность Фо, Фь .... Фп, такая, что ф0 = ф, Ф„ = Т и Ф/_1->Ф/, /=1, ..., п. Теперь язык L, порожденный G, определяется как
^{^IS^T, ¥ек;).(1)
Без потери общности можно предполагать, что правила грамматики G имеют вид
Y-*aX, Y-*Ха или Y->a,(2)
1) Машины из работ [5, 6] используют две рабочие ленты, а из работы [8] — четыре.
где a^VT, У е VN и X ^ VN (см. [1]). Пусть at^VT есть f-й входной символ, и пусть
N U» i) = {Y\Y^aj ... ab Y^VN} U^WY (3)
Тогда из (1) и (3) следует, что последовательность ах . . . сц содержится в L тогда и только тогда, когда S ^ N ^\/^ (см. [8, 6]). Если Y =^ а^.. . at, j < I, то в силу (2) существует X, такое, что либо
X^aj ... at_x и Y ->Xat^ Р,
либо Х^анх ... сц и Y -> а5Х ^ Р. Следовательно, для 1^/</ имеем
N (j,i) = Мх (A0UAM/.0,
А. (/, O = XY\Y->XaieP,XeN (j, i - 1)},
N^j, I) = {У | Y -> а(Х eP.XGN^+I, ОУ(4)
Так, если известны все N(j,i—1) (1^/^t—1) и N(i,0, то можно по формулам (4) найти последовательно ^(^—l,t), N(i — 2, t),..., A/(l, t).
Пример. Рассмотрим несложную грамматику Gx, для которой VN = {S,X}, Ут = {0, 1, с} и P = {S^0S, S-^1X, X^Sl, S->c}. Пусть axa2asa^ = 10<?1. Тогда имеем
^(l, l) = ^(l,2) = ^(2,2) = 0,
N (3, 3) = {S},
Nx (2, 3) = 0, N2 (2, 3) = {S}, N (2, 3) = (S),
AMI, 3) = AMI, 3) = ^(1I 3)= 0,
N (4, 4) = 0,
M,(3, 4) = W, AM3,4)=0, ЛЦЗ, 4) = {П
^l (2, 4) = {X}, N, (2, 4) = 0, N (2, 4) = {X},
AML 4)=0, AM1.4) = {S), ^(l, 4) = {S}.
Процедура выполняется на одноленточной машине Тьюринга со входом следующим образом. Разделим полуограниченную рабочую ленту на секции равной длины Т\, ..., Т,, ... . Каждая секция Т5 состоит из двух частей TOj и ТХ;, в первой из которых может храниться любой терминальный символ с отметкой *, а во второй — любое подмножество VN- Вначале все секции пустые. Предположим, что управляющее устройство (с конечным числом состояний) имеет три блока памяти Л40, М, и М2. Блок Af0 используется для запоминания последнего входного символа, Мх и М2 могут хранить любое подмножество VN. Пусть [Т^]
(Л = 0, 1; / = 1,2, ...) и [Мд] (Л = 0, 1,2) обозначают множества символов, хранящихся в Г^ и Мк соответственно. Индексы I и / будут использоваться для описания работы этой машины. Индекс i означает, что прочитан /-й входной символ (считая от начала входного слова), а индекс /— что головка на ленте находится в секции Tj и отыскивает N(j, i). Вот как работает наша машина.
Машина читает первый входной символ ах на входной ленте и пишет %«i на ГОц запоминает все нетерминальные символы У, такие, что Y-^ax есть правило G, в секции Гц. Тогда [Гц] = М(1, 1). Если Гц содержит начальный символ S, машина пишет 1 на выходной ленте, в противном случае пишет 0. Сдвигает головку на секцию Г02.
Предположим, что
[Toil = * Яц
VTok\ = afe(l<k<i\
[rlfe] = W,z-i)<\^k<i^
и что головка на секции Tot- Тогда машина читает /-й входной символ на входной ленте и запоминает ^ в Мо и ГОг-. Запоминает все нетерминальные символы У, такие, что Y—^at— правило G, в секции Гн и в М2. Тогда
VTxA^VM^-N^iY
Сдвигает головку на Тн-ь
Положим, что головка на секции Гц- (1 -^/ < /) и что
VT^ = №i-V)(!<£</),
[Мо] = аь
[М2] = [Г1/+1] = М(/+1,/).
Тогда машина запоминает в Мх все нетерминальные символы У, такие, что для некоторого X в Гц- Y-^Xa^ есть правило G. По определению
Машина сдвигает головку на секцию Г0;, где содержится а5 (или ^«ц если / = 1), запоминает в Л^ все нетерминальные символы У, такие, что для некоторого X из М2 Y-^a^X есть правило G. Тогда по определению
z).
Если 70j не содержит %, то машина переписывает содержимое Му в М2 и Tyj, сдвигает головку на Tyj-x и повторяет ту же процедуру для /— 1. Если ТОз содержит *, то она переписывает содержимое Му в Tyj = Туу. Если в Му находится S, то пишет 1 на выходной ленте, в противоположном случае пишет 0. Сдвигает головку на секцию Гог+ь которая является первой пустой секцией среди секций вида Ток-
Для каждого i число шагов, требуемое для получения f-ro выходного символа после прочтения г-го входного, ограничено сверху величиной Ci с константой С, не зависящей от i. Следовательно, число шагов, требуемое для получения t-ro выходного символа с момента начала вычислений, ограничено сверху величиной у Ci2.
Обобщение теоремы 2 см. в работе [6].
ЛИТЕРАТУРА
Chomsky N., Formal properties of grammars, «Handbook of Mathematical Psychology», v. II, New York, 1963. (Русский перевод: Кибернетический сборник, новая серия, вып. 2, 1966.)
Hartmanis J., Stearns R. Е., Computational complexity of recursive sequences, Proc. Fifth Ann. Symp. Switching Circuit Theory and Logical Design, 1964, 82—90.
Hennie F. C., On-line Turing machine computations, IEEE Trans. Electr. Compute EC-15 (1966), 35—44. (Настоящий сборник, стр. 249—270.)
Kasa mi T., Some results on capabilities of one-dimensional iterative logical networks and their related problems, Report of University of Hawaii, Contract № AF 19 (628)-4379, № 4, 1965.
Kas ami T., An efficient recognition and syntax-analysis algorithm for context-free languages, Report of University of Hawaii, Contract № AF19 (628)-4379, № 2, 1965.
Torii K., Kasa mi T., Ozaki H., Recognition and syntax-analysis of context-free languages, Report of Institute of Electrical Communication En- geneers of Japan, June 1966.
Y a m a d a H., Real-time computation and recursive functions not real-time computable, IRE Trans, on Electron. Comput., EC-11 (1962), 753—760. (Настоящий сборник, стр. 139—155.)
Younger D. H., Recognition and parsing of context-free languages in time n3 Inform. Control, 10, № 2 (1967), 189—208. (Настоящий сборник стр. 344—362.)
Добавление к статье Касами
РАСПОЗНАВАНИЕ МЕТАЛИНЕЙНЫХ ЯЗЫКОВ ПО МЕТОДУ Т. КАСАМИ
М. В. Ломковская
Предложенный Касами способ распознавания линейных языков допускает обобщение на класс металинейных языков.
Металинейной грамматикой называется бесконтекстная грамматика G = (VT, VN, S,R\ у которой множество правил удовлетворяет следующим условиям:
R = /?лин U /?нач, где 7?лин — множество линейных правил, а 7?нач — множество начальных правил вида S-^Wk (k = V ... . ..,г); здесь S —начальный символ грамматики, а юн — непустая цепочка нетерминальных символов, не содержащая S;
начальный символ S не встречается ни в левых, ни в правых частях линейных правил грамматики.
Как нетрудно видеть, металинейный язык представляет собой конечное объединение конечных соединений (конкатенаций) линейных языков. Например, если начальные правила грамматики суть 5-^Л1Л2Л3, 5-^Л2Ль S-^Ab 5-^Л3Л3, то, обозначив символом Lt язык, порождаемый линейной грамматикой Gi = — ( Vt, Vn^ А г» Влпн\ имеем L (G) = L^L^L^ (J L^L^ (J L^ (J L^L^
В дальнейшем нам потребуются следующие обозначения: обозначим через Q = {ан,... , сог} множество правых частей начальных правил, а через Ф = {qpi,.. ., ф9} множество всех различных непустых собственных начал цепочек из Q. Для нашего примера Q = {Л1Л2Л3, ^2^ь ^ь ^з^з}, Ф = Мь ^1^2, ^2, ^з}-
Пусть теперь дана входная цепочка ах... а^... at... аи. Сохраним обозначение N(j,i) Касами для множества нетерминальных символов, из которых можно вывести подцепочку Qj... сц входной цепочки, пользуясь только линейными правилами. Удобно представить запись множества N {j^ i) в виде последовательности разрядов, в которых стоит 0 или 1 в зависимости от того, выводима ли данная подцепочка из символа A^VN по линейным правилам. Через МД), 1) обозначим величину, которая равна 1, если подцепочку сц ... сц входной цепочки можно вывести из феф в данной грамматике, и равна 0 в противном случае. Например, Ms(l,/) = 1 тогда и только тогда, когда цепочка «1 .. . Qi принадлежит языку L(G), т. е. Ms(l,z)—это i-й выходной сигнал. Для построения этого выходного сигнала
будут использованы следующие формулы:
MS(M) = V Мй(1,1);
0)ЕЙ
(1)(1)М<рл(1.0= V [Ayi, j- 1) Д МА (/,/)].
(1)
(1)
Т1 < / < i Т
Сигнал МА(м) известен, если уже построено множество N(j,i)', в алгоритме Касами это происходит во время f-ro пробега машины. Заметим, что к этому моменту уже построены все множества N (1, / — 1), где 1 < / I.
Предлагаемый ниже алгоритм позволяет за время г-го пробега машины найти все множества Л1ф(1,1) (ф^ФОП), а также выходной сигнал Л15(1,1). Этим решается задача распознавания металинейных языков на машине Тьюринга со входом.
Переорганизуем машину, распознающую линейные языки, следующим образом:
В блок состояний добавляем еще одну рабочую ячейку М3. Эта ячейка имеет q + 1 разряд, где q— мощность множества Ф; по одному разряду предназначено для хранения фЕф, и один — для выходного сигнала. Во время f-ro пробега машины каждый разряд Л13 действует как накопитель: вновь пришедший сигнал логически суммируется с содержимым разряда. За время i-го пробега в ячейке М3 по формулам (1) постепенно формируются сигналы Л1ф(1,0 и Ms(l,f).
В каждый блок ленты, содержащий входной символ а^ (/>1), добавим q разрядов для хранения сигналов Мф(1,/— 1) (ф е Ф). Таким образом, /-й блок на ленте (l</^t) после i-го пробега машины будет иметь следующий вид (первый блок заполняется как для линейного языка):
М^ d,/-DМ^ d,/-DМф2(1,/-1)Мф2(1,/-1)Мф (1,/-1)Мф (1,/-1)а.а.NQJ)NQJ)
М^ d,/-D
М^ d,/-D
Мф2(1,/-1)
Мф2(1,/-1)
Мф (1,/-1)
Мф (1,/-1)
а.
а.
NQJ)
NQJ)
Алгоритм распознавания металинейного языка работает так:
Первый шаг. Первый шаг работы машины начинается так же, как и для линейного языка, а именно машина считывает первый входной символ ах и строит множество ^(l, 1). Затем символы из N^Y, 1) проверяются на принадлежность кЙ и кФ; сигналы Mti(l, 1) засылаются в разряд ячейки М^ предназначенный для выходного сигнала, а сигналы Мф(1, 1)—в предназначенные для них разряды М3. Легко видеть, что после этой операции в М3 окажутся правильно сформированные выходной сигнал Л1Я(1, 1) и все символы Мф(1, 1) (заметим, что для более чем однобуквенной цепочки ф всегда Мф(1,1) = 0, поскольку в грамматике G из длинной цепочки ф нельзя получить более ко-
роткую цепочку ах — грамматика неукорачивающая). Выходной сигнал подается на выход, а символы 2ИФ (1, 1) хранятся в ячейке Мз во время обратного движения по ленте и выпечатываются на ленту в начале следующего, второго блока.
l-й шаг. Пусть после (1— 1)-го пробега по ленте на ней заполнен I—1 блок, выдан (t—1)-й выходной символ и вычислены символы Л4Ф(1,/— 1), которые печатаются на ленте в начале i-го блока. Ячейка Л43 пуста. Машина считывает очередной входной символ at и строит множество N (i, i). После этого каждый блок, начиная с t-ro и кончая вторым, машина обрабатывает следующим образом:
Обработка j-го блока.
Вычисляется множество N(j, О так же, как и в случае линейного языка (для t-го блока это уже сделано).
Для любого ф из Ф машина находит все А е VN, такие, что срЛ еФ U Q. Образует последовательно логические произведения Мф(1,/—I^/XMaU^) (°ба сомножителя записаны в обрабатываемом блоке, а в качестве рабочих ячеек можно использовать Mi и М2, в данный момент пустые, увеличив их объем, если потребуется). Засылает каждое такое произведение в разряд ячейки Л13, предназначенный для Л1фЛ(1,1), если фЛ еФ, и в разряд для выходного сигнала, если фЛ е Q. В Л43 по формулам (1) накапливаются сигналы Л1Ф(1,1) и Afs(l,f).
Переход к (/—1)-му блоку.
Обработка первого блока.
Вычисляется N^V.i).
Как на первом шаге, элементы из ^(l,0 проверяются на принадлежность к Ф и к Q. Символы Л4А(1,0 (ЛеФ) заполняют оставшиеся незаполненными разряды М3, соответствующие однобуквенным началам; символы Мл(1,/) (ЛеО) засылаются в разряд для выходного сигнала (где по-прежнему происходит логическое суммирование с уже имеющимся в разряде символом). Очевидно, после этого в ячейке М3 образуется выходной сигнал, а также все символы Мф(1,/). Выходной сигнал подается на выход, а символы Л4Ф(1,/) хранятся в ячейке М3 во время обратного движения по ленте и выпечатываются на ленту в начале (1 + 1)-го блока; ячейка М3 пуста.
Описание работы алгоритма закончено. Легко видеть, что по сравнению с алгоритмом распознавания линейных языков число шагов по параметрам i и / не меняется: удлиняется время обработки /-го блока, но это время по-прежнему можно ограничить сверху константой С, зависящей от грамматики (в частности, С зависит от мощностей алфавитов, от множества /?лин и от множества Ф). Поэтому время, требующееся для распознавания цепочки длиной п, не превосходит Сп2.
РЕШЕНИЕ ЗАДАЧИ О ПЕРЕСЕЧЕНИИ НАЧАЛА КООРДИНАТ В РЕАЛЬНОЕ ВРЕМЯЧ
М. Фишер, А. Розенберг
ВВЕДЕНИЕ
Машины с несколькими лентами или несколькими счетчиками интенсивно изучаются как модели для исследования вычислений с ограничениями во времени. Результаты, связывающие эти две модели, получены Фишером, Мейером и Розенбергом [1]. Известно, например, что любая машина с несколькими счетчиками, работающая в реальное время, может быть промоделирована при любом е > 0 за время Г(п) = (1 + е)п на одноленточной машине Тьюринга. Однако еще неизвестно, можно ли положить здесь 8 = 0. Мы введем класс языков {0^}, каждый из которых распознается в реальное время на n-счетчиковой, но не на (и—1)-счетчиковой машине. Затем мы докажем довольно удивительный факт, что для всех п язык Оп распознается в реальное время на одноленточной машине Тьюринга. Хотя этот результат не решает по-прежнему открытой проблемы, он показывает трудности, возникающие при любой попытке отрицательно решить эту проблему.
Для краткости мы отсылаем читателя к работе Фишера, Мейера и Розенберга [1] за всеми необходимыми определениями.
ЗАДАЧА О ПЕРЕСЕЧЕНИИ НАЧАЛА КООРДИНАТ
Возьмем алфавит Ап = {L^ Rb ..., Ln, Rn} из 2n букв. Для каждой буквы а из Ап и каждого слова w в А обозначим число вхождений буквы а в w через (a;wy
Язык n-мерного пересечения начала координат (п=1,2,...) — это множество Оп = {weA^: для всех 1 ^ i^ п (L^ w) = (7?г-; w^. Геометрический смысл названия станет понятным, если каждую букву Li(Ri) рассматривать как указание сделать один шаг влево (вправо) параллельно f-й оси в n-мерном пространстве; при этом словам языка Оп соответствуют те и только те пути, которые начинаются и оканчиваются в начале координат.
9 Fischer М. J., Rosenberg A. L, Real-time solutions of the origin-crossing problem, Math. Systems Theory, 2, № 3 (1968), 257—263.
РЕШЕНИЕ В КЛАССЕ СЧЕТЧИКОВЫХ МАШИН
Результаты, изложенные в этом разделе, были получены впервые Лэйнгом [3]. Мы приводим их здесь для полноты изложения, а также для того, чтобы дать более простые доказательства.
Теорема 1. При всех п> О язык Оп (а) распознается в реальное время на п-счетчиковой машине; (б) не распознается в реальное время никакой (п—Хусчетчиковой машиной.
Доказательство. Часть (а) очевидна. Если машина просматривает символ ДДЦу в Z-й счетчик добавляется +1 (—1). Машина воспринимает входное слово в том и только в том случае, когда все п счетчиков содержат нуль.
Чтобы установить (б), заметим, что если язык L распознаваем в реальное время й-счетчиковой машиной, то с тем же числом счетчиков распознаваем язык ЛАТ?, где R— произвольное регулярное множество. (Это очевидно, если вспомнить доказательство теоремы 1 из работы Розенберга [4]). Рассмотрим теперь язык
Сп = ОпП{Аь иуц^
Пусть / — гомоморфизм на Ап, определенный для t = 1, ..., п так: f(Li) = f(Ri) = Rt- Продолжим f до отображения на Ап, положив f(X)=X и f (яь..., am) = f («i).. .f (am); X обозначает пустое слово. Теперь пусть х и у — слова над {L}, ..., Lny причем для некоторого i, l^f^n, (£г; %) =# (Лг; f/) •
Ясно, что, если (п—1)-счетчиковая машина М распознает Сп, она попадает в различные конфигурации после чтения словх и у, иначе слова х^х^^Сп и у^х^^Сп воспринимались бы одинаково. Легко проверить, что число различных конфигураций, которые возникают при работе М со словами длины, не большей к, не менее чем
к
eh = 2 CU + n- 1, п- 1),/-о
где С(а, Ь) = а\!Ь\(а — 6)!. Если М имеет q внутренних состояний, число различных конфигураций, достижимых за к или менее шагов, не превышает ск = q(k + 1)п-1. При больших к ей > ск; полученное противоречие завершает доказательство.
РЕШЕНИЕ НА ОДНОЛЕНТОЧНОЙ МАШИНЕ ТЬЮРИНГА
Теорема 2. Для каждого п> О язык Оп распознается в реальное время на одноленточной машине Тьюринга.
Доказательство. Мы проведем построение требуемой машины Т. Разрешим для простоты пишуще-читающей головке
машины просматривать по два квадрата сразу. Переход к требуемой в условии теоремы машине легко произвести, используя хорошо известную теорему об ускорении [2]. Т будет моделировать n-счетчиковую машину. При этом Т не обязательно перерабатывает входные символы в соответствие с тем, как они поступают на вход, но может на отдельных этапах моделирования откладывать обработку входных символов. Затем небольшие группы сохраненных символов будут всегда перерабатываться как единое целое. Однако если во всех счетчиках стояли малые по модулю числа, таких «сохраненных» символов тоже будет немного, и Т сможет распознавать момент восприятия входного слова.
Память Т будет состоять из п ограниченных регистров управляющего устройства и рабочей ленты, разделенной на п + 1 дорожку. В каждом из регистров будет стоять число г^ \Гг | < М = 8п2 + 2п + 1 (l^f^n). Каждая из первых п дорожек ленты разделена на два канала. Первый канал i-й дорожки, l^i ^п, будет содержать двоичное представление целого числа Pi > 0, другой канал — двоичное представление целого qt^O. Все эти двоичные числа размещены так, что их младшие разряды находятся в одном и том же квадрате ленты; назовем этот квадрат и соседний с ним слева квадрат домашними квадратами. Оставшаяся (п + 1)-я дорожка используется для хранения «сохраненных» единиц, пока они не подвергнутся переработке. Каждый квадрат этой дорожки называется складом и может содержать любое слово в Ап длины, меньшей или равной B = 4n+ 1.
Обозначим для любого слова w над Ап di~(Ri\w) — — (Li, w), i = 1, ..., n. Прочитав слово w, T будет вычислять приближение Ci к каждому d^ Это приближение представляется тройкой (xpi, qi, г^, где
Ct = M (pt - q^ + rt.
В оставшейся части доказательства мы опишем, как происходит процесс аппроксимации, и покажем, что все di = О, t = 1, п, в том и только в том случае, когда для всех I
Ci = Pi = qt = ri = 0.
З.А. Устойчивые конфигурации. Говорят, что конфигурация машины Т устойчива, если выполняются такие условия:
Пишуще-читающая головка помещается на домашних квадратах ленты.
Для каждого t=l, ..., п либо (a) pi = qi = 0, либо (б) шах(рг, q^ = 1 и min(рг-, ^) = 0, либо (в) L(max(pi,qi))> > L(mm (piqi)) + 2, где L(x)—длина двоичного представления х (без первых нулей).
Ни в одном складе нет слова, длина которого превышала бы удвоенное число нулей и пустых символов, стоящих в каналах квадрата над данным складом.
Начиная с крайнего левого квадрата, у которого хотя бы в одном канале есть единица, во всех квадратах слева от него склады пустые.
Для всех 1=1, ..., п, | г г | < М.
Устойчивая конфигурация называется чистой, если для всех i = 1, ..., п |^| < Mj2.
Читающе - пишущая головка
Рис. 1. Чистая устойчивая конфигурация памяти машины Т.
В начале работы Т лента пуста, а все г< = 0, поэтому начальная конфигурация является устойчивой и чистой.
Рис. 1 показывает чистую устойчивую конфигурацию в случае п = 2. В этом примере рх = 8, qx = 3, р2 = 0, q2 = 32, а, значит, с, = 37 X 5 — 10 = 175 и с2 = 37 X (—32) + 17 - —1167, в то время как dx = сх + 1 = 176, a d2 = с2 = —1167. Цифры старшего и младшего разрядов помечены, чтобы машина Т могла распознавать конец каждого канала.
З.В. Фаза исправления. Когда Т находится в чистой устойчивой конфигурации, входные символы перерабатываются по мере поступления прибавлением +1 или —1 к соответствующему гг. Как только какое-нибудь из г^ превысит по модулю Л4/2, начинается фаза чистки, которая состоит из исправления регистров и исправления ленты.
Исправление регистров осуществляется прибавлением или вычитанием М из каждого ft так, чтобы результат заключался в интервале (—Л4/2, +Л1/2). Если некоторое гг- было изменено таким образом, то, чтобы оставить величину Ct = M(pi— ^г)+G неизменной, приходится прибавить единицу к pt или к q^. Ма-
шина проделывает это, сначала установив, какие именно Рг или qt следует изменить, а затем производя обычное сложение двоичных чисел одновременно во всех соответствующих каналах. При этом переносы распространяются влево настолько, насколько это необходимо. Каждый входной символ, поступающий на этом этапе вычислений, попадает в склад под правым квадратом пары квадратов, на которой стоит машина в момент его поступления. Если машина заменяет нуль или пустой символ на единицу в каком-либо канале просматриваемого квадрата, то склад под правым квадратом воспринимаемой пары очищается после
головка
Рис. 2. Устойчивая конфигурация памяти машины Г, не являющаяся чистой.
помещения в него текущего входного символа. Если склад, подлежащий очистке, содержит слово и, то для каждого I к rt прибавляется (R<; и)—(Ц; и), а затем склад очищается. Поскольку емкости складов ограничены, эту операцию очистки можно провести за один шаг.
Если перенос распространяется до левого конца дорожки (машина узнает это по отмеченному символу), машина пытается вычесть число, записанное в этом канале (которое есть степень 2), из числа в другом канале той же дорожки. Это вычитание выполняется в тех случаях, когда другое число либо имеет ту же длину, что и исправляемое, либо на один разряд больше. Ясно, что для проверки этих условий достаточно просмотреть лишь два квадрата ленты, а затем, возможно, выполнить вычитание.
Закончив описанный проход влево, Т возвращается на домашние квадраты и во время возвращения заменяет нули, появившиеся в результате вычисления перед первой слева единицей? пустыми символами. Все входные символы на этом этапе
помещаются в склад квадратов, стоящих справа от просматриваемого.
Рис. 2 иллюстрирует устойчивую конфигурацию машины Т, не являющуюся чистой, а рис. 3 — устойчивую конфигурацию, получившуюся после исправления конфигурации на рис. 2. Во время исправления на вход поступило слово LxR2R\L2Rv, ^2 и ps были изменены, что вызвало очистку двух складов; на дорожке 1 было произведено вычитание
Граненый Домашние квадратквадраты
Читающе-пишущая головка
Рис. 3. Конфигурация памяти Т после исправления конфигурации на рис. 2.
З.С. Проверка. Сначала проверим, что после очистки Т снова находится в устойчивой конфигурации.
Условие (1) выполняется по определению фазы исправления, Предположим, что для каждого i pt и qt удовлетворяют условию (2) перед очисткой. Пусть X и Y суть значения соответственно рг и qг перед очисткой, а X' и Y'— после очистки, (а) Если ни pt, ни qi не исправлялись, условие (2) выполнено, (б) Если pt (или q^ исправлялось и, кроме того, производилось вычитание, то X' (или У') = 0 и условие (2) выполнено, (в) Если Pi исправлялось, но вычитания не было, то Xr = X + 1 и У' = У. В этом случае либо L (X7) < L(Y') — 1 и условие (2) выполнено, либо £(Х7) > L^Y'^ — L{Y). В последнем случае либо £(У7)=0, либо L<X^ >L^ - £(max(X, У)) >£(min(X, У))+2 = £(У) + + 2 = £(У') + 2 и снова условие (2) выполнено.
Условие (3) проверяется следующим образом, (а) Если был очищен склад крайнего левого из достигнутых при движении очистки квадратов, то этот склад продолжает оставаться пустым, (б) Если был очищен склад квадрата, не рассмотренного в (а), то в нем стоит единственный символ, поступивший во время движения вправо к домашним квадратам. Но так как склад не на-
ходится на левом конце пути машины, какой-либо перенос проходит над ним и по крайней мере в одном из каналов данного квадрата стоит нуль, (в) Если склад не был очищен, то либо этот квадрат при очистке не посещался машиной, либо машина прошла его дважды и поместила в данный склад два символа. И опять в этом последнем случае, как ив (б), один из каналов данного квадрата содержит нуль, так как какой-либо перенос распространялся над квадратом. Во всех случаях (а) — (в) условие (3) выполняется.
Условие (4), очевидно, выполнено, поскольку вначале все склады пусты, а если в результате вычитания какой-нибудь канал укорачивается, то соответствующий новый конечный склад очищается.
Наконец, предположим, что условие (5) выполнялось перед очисткой. Исправление регистров обеспечивает к началу очистки для всех i условия |r^| < А4/2. В процессе любой очистки изменяются не более п каналов, поэтому очищается самое большее п складов. Даже если все очищенные склады затрагивали одно и то же гь в конце чистки имеем
|г/|<уМЧ-Вп = у(2Вп+ \) + Вп=2Вп + ^<М,
и условие (5) выполняется.
Итак, после фазы очистки машина Т находится в устойчивой конфигурации. (Отсюда следует, что ни склады, ни регистры не могут переполняться.)
Наконец, мы покажем, что Pi = qi = ri = 0, 1 ^z^n, в том и только в том случае, когда di = 0, l^z^n. Сначала положим, что pi = qi = ri = 0. Тогда длины всех дорожек равны нулю и по условию (4) необработанных входных символов нет. Следовательно,
dL = ct = М (рг - q^ + rt = 0, 1 < z < n.
Теперь предположим, что d{ = 0, l^z^n. Пусть b есть длина самого длинного pi или qi на ленте.
Если b = 1, то | Pi — qi | = 1 и | Ci | > 0, поскольку | r{ | < М. Однако по условию (4) нет необработанных символов, так что с^ = di = 0. Это дает вопреки предположению b + 1.
Если b >2, то \pi — ^|>2Ь“2 + 1 по условию (2). Следовательно, \Ci \ ^ М\ pi — qi | — | rt | > M (2b-2 + 1) — M = 2b-2M. В этом случае может быть (b — 1)5 необработанных символов. Поскольку п> 1, имеем |d,|>|cJ-(fr-l)B>M-2b-2-(6- 1)8 =
= В (2ft-1n - b + 1) + 2Ь“2 > 0, вопреки предположению, что di — 0. Итак, b < 2.
Теперь мы должны заключить, что 6 = 0. В этом случае по условию (4) нет необработанных символов, так что
Ct = г{ = di = 0, 1 ^ i ^ п.
Доказательство окончено.
ЛИТЕРАТУРА
Fischer Р. С., Meyer A. R., Rosenberg A. L, Counter machines and counter languages, Math. Syst. Theory, 2, № 3 (1968), 265—283. (Cm. стр. 380—400 настоящего сборника.)
Hartmanis J., Stearns R. E., On the computational complexity of algorithms, Trans. Am. Math. Soc., 117 (1965), 285—306. (Русский перевод: Хартманне Дж., С т и р н з Р. Е., О вычислительной сложности алгоритмов, Кибернетический сборник (новая серия), вып. 4, «Мир», (1967).)
Laing R., Realization and complexity of commutative events, Univ. Mich Tech. Rep , 03105-48-T, 1967.
Rosenberg A. L., Real-time definable languages, Jour. ACM, 14 (1967), 645—662. (См. стр. 168—193 настоящего сборника.)
СЧЕТЧИКОВЫЕ МАШИНЫ И СЧЕТЧИКОВЫЕ
ЯЗЫКИ)
П. Фишер, А. Мейер, А. Розенберг
ВВЕДЕНИЕ
В последние годы возрос интерес к исследованию сложности вычислений на машинах Тьюринга. Параллельно с работой по изучению машин Тьюринга с ограничениями на время и пространство) мы изучаем машины с подобными ограничениями, у которых вместо лент используются счетчики. Счетчиковые машины (СМ) вначале кажутся слабее, чем машины Тьюринга (ТМ), но, как показал Минский [8], возможности СМ без ограничений столь же велики, как у ТМ. СМ с ограничениями значительно удобнее для рассмотрения, чем соответствующие ТМ, поэтому многие вопросы, остающиеся открытыми для ТМ с ограничениями, решаются в этой работе для СМ с ограничениями.
Мы будем в основном рассматривать машины — распознаватели языков. Многие свойства ТМ-распознавателей переносятся на СМ, например свойства, связанные с замкнутостью классов языков, распознаваемых в реальное время. С другой стороны, можно продемонстрировать ряд существенных различий между ТМ и СМ; соответствующие свойства ТМ и СМ будут сопоставляться на протяжении всей работы.
Разд. 1 содержит формальное определение СМ-распознава- теля. Устанавливается связь между этим определением и его возможными вариантами. В разд. 2 мы исследуем несколько конкретных проблем распознавания, чтобы глубже раскрыть вычислительные возможности СМ. Разд. 3 связан с ограничениями на пространство для СМ. Мы устанавливаем непосредственную связь между временными и пространственными ограничениями на СМ и показываем изоморфизм возникающих в результате пространственных ограничений иерархий у ТМ и СМ. Разд. 4 содержит замечания о времени, которое требуется для моделирования одного вида машины на другом. Наконец, в разд. 5 мы исследуем свойства классов языков, которые определимы СМ
с различным числом счетчиков. Мы показываем, что эти классы образуют расширяющуюся последовательность, и исследуем некоторые свойства замкнутости.
МОДЕЛЬ И ЕЕ ВАРИАНТЫ
Определения. Алфавит 2 — конечное множество элементов, называемых буквами. Слово над 2 — любая конечная (возможно, пустая) последовательность букв. 2* означает множество всех слов в 2 (включая пустое слово X). Любое подмножество 2* называется языком. За описанием стандартных операций над словами и языками мы отсылаем читателя к работе Гинзбурга [4].
Односторонняя (on-line) й-счетчиковая машина (й-СМ) состоит из управляющего устройства с конечным числом состояний, к счетчиков, каждый из которых может содержать любое целое число, и входной ленты. Состояния управляющего устройства делятся на избирательные и автономные. В начале вычислений СМ находится в выделенном начальном состоянии, а во всех счетчиках стоят нули. Шаг СМ однозначно определяется состоянием управляющего устройства, а если оно избирательное, то и считываемым на входной ленте символом, а также множеством счетчиков, которые содержат нуль. Шаг заключается в независимом изменении содержимого каждого из счетчиков путем прибавления 0, 4-1 или —1 и в изменении состояния управляющего устройства.
Более точно, fe-CM определяется:
конечным непустым множеством Qp избирательных состояний;
конечным множеством Qa автономных состояний;
конечным входным алфавитом 2;
функцией переходов
М: (Qa U (Qp X 2)) X (0, l}ft Qa U Qp;
функцией изменения счетчиков
К: (QaOtQp X 2)) X (0, l}ft->{- 1, О, I}6;
выделенным начальным состоянием s0 в Qp;
выделенным подмножеством F ^ Qp конечных состояний.
Пусть Z означает множество целых чисел и Zk — множество всех наборов длины к из этих чисел. Для любого целого х определим функцию
Г 0, если х = О,sg^ ( 1, если х=#0,
и продолжим sg на Zks положив
Sg«X|, . Xfe» = (sg(xI), .sg(xft)).
Конфигурацией ^-СМ назовем элемент множества (Qa U Qp) X S* X Z\ Мы пишем
(q, aw, <х„ . .., xfc>)-> ^q", w, (yv ..., yk^ ИЛИ
(q', w, (xh ..x^-^^q", w, <z„ ..., zk)\
где q e Qp, q' e Qa, a ее S, w e S*, xt, y,, z, e Z, если
M(q, a, sg«x,xk)^ = q"
И
<xh .xk) + K(q, a, sg«xh .xk)^ = (yx, .y^
ИЛИ
M(q', sg((xb .... xk») = q"
И
<xx, xk) + К (q', Sg «X!x^ ) = (z„ ..., zk).
Для конфигураций С и С' мы напишем С => С', если либо С = С\ либо существуют конфигурации С = Со, Сь .. ., С( = С\ такие, что Ci->Ci+1 для каждого I, 0^1 <t.
fe-CM останавливается через t шагов при вычислении на слове w, если существуют конфигурации Со, Сь .. ., С/, такие, что
(s9, w, (0, ..., 0» = Со -» С, -> ... -^Ct = kqA, (Хх, ..., х^
(здесь q^QpY fe-CM допускает (принимает) или отвергает w, смотря по тому, где содержится q: в F или в QP\F соответственно.
Пространство, необходимое СМ при работе с w,— это сумма максимумов абсолютных значений содержимых каждого из счетчиков во время / шагов вычислений.
Пусть Т и 5 — монотонно возрастающие функции. СМ работает время Т ^на пространстве S), если для всех п>0 СМ, начиная работу с входным словом w длины п, останавливается через Т (п) или менее шагов (требует пространство, не превышающее S(n)).
Язык L в 2 распознаваем СМ, если СМ принимает каждое слово из L и отвергает каждое слово из S*\Z. Язык L распознается за время Т(п) (на пространстве S(n)), сокращенно, Т(п)-распознаваем (S(n) -распознаваем), если существует СМ, распознающая L, которая работает время Т (на пространстве 5).
Мы выделяем случай Т(п^=п. Язык, который распознаваем за время Т(п)=п, называется распознаваемым в реальное время.
Значение этого случая определяется важностью поиска эффективных алгоритмов синтаксического анализа.
По аналогии с нашими определениями можно определить соответствующие понятия для многоленточных ТМ. Для краткости мы отсылаем читателя за подходящими определениями и связанными с ними результатами к следующим статьям: Рабин [11], Хартманне и Стирнз [6], Стирнз, Хартманне, Льюис [14] и Розенберг [13].
Варианты модели. СМ определяются в литературе разными способами. Стоит проверить для случая временных ограничений, что наша модель не чувствительна к слабым изменениям условий. Говорят, что две машины эквивалентны по времени, если обе распознают один и тот же язык и если одна работает в течение времени Г(п), то и другая работает в течение такого же времени.
Теорема 1.1. Для любой k-CM, которая может за один шаг независимо изменять содержимое каждого из счетчиков на любое целое число, заключенное между + с и —с (с фиксировано), можно эффективно построить эквивалентную по времени (обычную) k-CM.
Доказательство. Мы дадим набросок конструкции, оставив детали читателю. Когда счетчики исходной k-CNV содержат числа тх, ..., шк, счетчики «сжатой» й-СМ содержат [mjc], ..., Vmhlc\, сохраняя (ограниченные) остатки тх— — \тх!с\с, ..., тк— \тк1с\с в памяти с конечным числом состояний1). Ясно, что счетчики «сжатой» машины изменяются за шаг не более чем на единицу.
Теорема 1.2. Для любой k-CM можно эффективно построить эквивалентную по времени k-CM, которая (а) хранит в счетчиках только неотрицательные числа; (б) изменяет содержимое счетчиков не чаще, чем через каждые с шагов (с>0); (в) изменяет за один шаг содержимое не более одного счетчика.
Доказательство. Сохраняя абсолютные значения чисел в счетчиках, а их знаки — в памяти управляющего устройства (число состояний которого придется увеличить в 2й раз), мы докажем (а). Для доказательства (б) и (в) используется техника «сжатия» из теоремы 1.1.
Начиная с этого места, мы молчаливо предполагаем, что счетчики содержат только неотрицательные числа, т. е. выполняется условие (а).
9 [х] означает целую часть х.
В отличие от этих результатов, устанавливающих инвариантность, мы покажем, что наличие входной ленты с двусторонним движением сильно изменяет минимум времени вычислений. Двусторонняя (off-line) модель имеет входную ленту, на которой помещается только читающая головка. Входное слово w записывается на входной ленте в виде $ ^ $, и читающая головка помещается вначале на крайний левый символ слова w (или на правое $, если ^ = М- На каждом шаге двусторонняя СМ может передвигать читающую головку на один квадрат влево или вправо по входной ленте, не выходя за границы области, в которой записано входное слово. Под принимающими и отвергающими состояниями понимают состояния остановки, и слово принимается или отвергается согласно состоянию, в котором останавливается СМ. За более подробными сведениями о двусторонних машинах отсылаем читателя к статье Стирнза, Харт- маниса и Льюиса [14].
Легко'проверить, что (1) различие между одно- и двусторонними СМ несущественно в случае реального времени и (2) для данной односторонней СМ можно эффективно указать эквивалентную по времени двустороннюю СМ.
Чтобы сопоставить одно- и двусторонние СМ, рассмотрим язык Ь=ЦхахТ\х ^ $, 1}*, #^{0, 1}},где хт— обращение слова х.
Теорема 1.3. (а) Язык L не распознается никакой односторонней k-СМ, которая работает время, меньшее чем Т(п) — = 2n^h; (б) распознается двустороннней СМ, которая работает время Т (л) = сп2/[log п\ для некоторой постоянной с; (в) каждая СМ, распознающая L, работает в течение времени Т(п) ^ > cn2/[log п\ для некоторой константы с и для всех п.
Доказательство, (а) Конфигурация памяти односторонней fe-CM — это (^4-1)-набор, состоящий из текущего внутреннего состояния и содержимого всех й-счетчиков. Любая односторонняя fe-CM, распознающая L, должна иметь различные конфигурации памяти после чтения различных двоичных слов х и у, в противном случае йахт и уахт были бы восприняты одинаково. Пусть / есть максимум содержимого всех счетчиков после чтения слова длины т. Если k-СМ имеет q состояний, то число различных конфигураций памяти к-СМ после чтения всех слов длины т не превышает q-^t-V-X^. В силу предыдущих замечаний q- (Z+l)fe>2m и, значит, с-^^ для некоторой постоянной с. Поскольку к-СМ может изменять за один шаг содержимое не более чем одного счетчика, она должна сделать не менее c-№~xW^ d-^1^ шагов (при некотором dy чтобы работать с входными словами хахТ длины п. Утверждение (а) доказано.
Мы кратко опишем работу двусторонней СМ М, которая распознает L.
М проходит по слову хау, запоминая в счетчике [log т], где m— длина х. (В этой работе все логарифмы берутся по основанию 2.)
М последовательно выбирает [log пг\ двоичных символов
.,йо как.,йо какиз х, рассматривая последовательность Ьи, Ь.
.,йо как
.,йо как
двоичную запись целого числа 2(b,+ l)2S затем М выбирает 1=0
соответствующие [log m\ символов у и проверяет, представляют ли они то же число. Этот шаг очевидным образом изменяется, когда машина встречает «а».
Ясно, что (1) требует m шагов. На шаге (2) для обращения записи числа требует d.2llo^m^d-m операций, где d— некоторая константа. Аналогично нужно время, пропорциональное т, чтобы читающая головка заняла новое положение (перешла со слова х на слово у или наоборот). Таким образом, выполнение шага (2) требует е-m шагов с некоторой константой е. Шаг (1) выполняется один раз, а шаг (2) не более m/[logm]+l раз. Следовательно, М распознает L за время
Т (м) ^ m + е • m (/n/[log m\ + 1) ^ с • п2 [log nV
Чтобы показать, что время работы М быть может лишь в константу раз превосходит наилучшее возможное время, мы переформулируем результат Кобхема [1].
Лемма. Для любой СМ, распознающей язык L, имеем
(1)(1)(2)(2)inf 22£S(n)inf T <n)" lo£ 5inf 22£S(n)inf T <n)" lo£ 5о,о,О.О.
(1)
(1)
(2)
(2)
inf 22£S(n)
inf T <n)" lo£ 5
inf 22£S(n)
inf T <n)" lo£ 5
о,
о,
О.
О.
В разд. 3 мы покажем, что для некоторого положительного с условие (1) влечет [S (п)]с > Т(п) для некоторой константы с > 0, откуда для всех п и некоторого постоянного d получаем ИЗ (2)
(*)Т (п) • (log Т (п)) ^ d • п2.
Из этого следует, что
m w d п2
Т ,
v 72 log п
что справедливо при всех п, как легко убедиться. Доказательство теоремы 1.3 окончено.
НЕКОТОРЫЕ ЧАСТНЫЕ ПРОБЛЕМЫ РАСПОЗНАВАНИЯ
Цель этого раздела — глубже понять возможности СМ. Замечания о том, что СМ могут решать те задачи, которые формулируются в терминах пересчета, является тавтологией. Однако вызывает удивление широта класса таких задач: как показал Минский [8], при отсутствии временных ограничений любая (частично) вычислимая проблема может быть сформулирована как проблема пересчета1).
Мы приведем сейчас три проблемы, которые могут быть решены на СМ за реальное время. В этом разделе вместо доказательств мы ссылаемся на соответствующие источники.
Арифметические выражения. Первый из приводимых нами языков состоит из правильно построенных арифметических выражений без скобок.
Рассматривая лишь одно- и двуместные операции, можно определить язык L^ (нижний индекс означает максимальную «местность» операций) такой грамматикой:
(выражение) —> (одноместный оператор) (выражение),
(выражение) —> (двуместный оператор) (выражение) (выражение),
(выражение) —> (операнд).
Читатель легко сам определит язык Ln в общем случае.
Теорема 2.1. Для всех п язык Ln распознаваем за реальное время с помощью 1-СМ.
Доказательство следует из алгоритма, предложенного Эттингером [9]. Каждому символу алфавита сопоставляется числовое значение: —1 каждому операнду и + (п—1) каждому п-арному оператору (п>1). 1-СМ читает входное слово, складывая в счетчике числовые значения читаемых символов. Слово допускается в том и только в том случае, когда (1) после его прочтения счетчик содержит —1 и (2) ни в один из предыдущих моментов вычислений в счетчике не было отрицательного числа. Легко проверить, что СМ распознает Ln. Теперь теорема следует из теоремы 1.1.
Итак, даже 1-СМ может выполнять в реальное время довольно сложные вычисления.
Коммутативные языки. Язык L называется коммутативным, если все перестановки символов любого слова из L также принадлежат L. Ясно, что при распознавании коммутативного
9 Эта значит, что любая частично рекурсивная функция может быть вычислена на СМ.—Прим. ред.
языка достаточно рассматривать лишь число вхождений различных символов во входное слово.
Для данного алфавита 5 = {«1, ... ,а^ определим для любого слова w в 5 ^< (w) как n-ку отрицательных чисел (>&i(w)... ....^(w)), где ^tW, X^i^n, — число вхождений аг в w.
Множество S n-ок целых чисел называется линейным, если существуют такие n-ки неотрицательных целых чисел, с, р\,... . ..,рп что
S = j с + 2 ^iPi I все ki ^ О ?.
Li = 1J
S называется полулинейным, если оно является конечным объединением линейных множеств.
Используя результаты Гинзбурга и Спеньера [5] и применяя правило Крамера для решения систем линейных уравнений, можно показать, что для любого полулинейного множества п-ок целых чисел S и для любого n-буквенного алфавита 2 = {^i,. .., а^ язык {w е 5* | ^ (w) е S} есть конечная булевская комбинация множеств, которые распознаются 1-СМ в реальное время. Обратно, поскольку 1-СМ в реальное время распознает лишь контекстно-свободные языки (см. Фишер [2]), из теоремы Парика [10] следует, что для любого языка L, распознаваемого в реальное время с помощью 1-СМ, множество {^(w) \w^E\ полулинейное. Мы установили таким образом результат, полученный в слегка измененном виде Лэйнгом [7].
Теорема 2.2 (Лэйнг). Пусть S — множество п-ок целых чисел, а 2 = {«1,..., а^. Язык L в 2, равный {w е 2*| >&w е S}, есть конечная булевская комбинация языков, распознаваемых 1-СМ в реальное время, в том и только в том случае, когда S — полулинейное множество.
Два примера коммутативных языков представляют особый интерес и заслуживают отдельного рассмотрения.
Пути в п-мерном пространстве. Легко показать, что для данной п-СМ, работающей в реальное время, можно найти эквивалентную по времени n-ленточную ТМ. Имея в виду, что ленты ТМ обладают большей гибкостью при вычислениях, естественно спросить может ли ТМ с менее чем п лентами в реальное время моделировать /2-СМ, также работающую реальное время. В одном из рассматриваемых нами случаев этот вопрос открыт, в другом недавно решен в положительном смысле.
Пусть 2П = {«1, ..., а2п-ь ^2п}—алфавит из 2п букв.
п-мерная проблема пересечения осей —это язык
Дп = {we 2*1 ДЛЯ некоторого I, \^Л<.П, ^2г-1(^) = ^2г(^)}.
Открытая проблема. Очевидно, что для всех п Аи распознается в реальное время на п-СМ. Открытым является вопрос, распознается ли в реальное время язык Д2 с помощью 1-ТМ.
п-мерная проблема пересечения начала (координат) связана с языком
Оп = [w е 2^ | для всех z, 1 ^ i < п, ^2z-i (^)^2t W)'
Геометрический смысл названий становится понятным при интерпретации каждой буквы a2i-i (а2г) как указания сделать один шаг влево (вправо) вдоль z-й оси n-мерного пространства.
В отличие от открытой проблемы для языка Ап в случае Оп имеется следующий результат М. Фишера и Розенберга [3].
Теорема 2.3. Для всех п^ 1 язык Оп распознаваем в реальное время \-ленточной ТМ.
Следствие. Пусть S = {^i, .ап}. Язык Vx^y\x, у еИ*, ^^И, а х — перестановка у} и язык (w е 2* | ^i (го) = ... = ^п (го)} распознаваемы в реальное время с помощью \-ТМ
ПРОСТРАНСТВЕННЫЕ ОГРАНИЧЕНИЯ
Классы пространственной сложности. Стирнз, Хартманне и Льюис [14] определили для данной функции S класс ленточной сложности Cs как класс языков, распознаваемых ТМ, работающими на ленте длины ^S. Классы ленточной сложности частично упорядочены теоретико-множественным включением. Они имеют богатую структуру, в частности существует бесконечно много несравнимых бесконечных цепей. Если определить по аналогии класс С^ языков, распознаваемых с помощью СМ на пространстве S, можно получить такую же структуру. В этом разделе мы исследуем классы С^ и устанавливаем основной результат: C's = CVogS для любой функции S.
Сначала мы продемонстрируем два результата, относящихся к «сжатию» пространства; тот факт, что это сжатие можно произвести без потери времени, будет полезен в следующих разделах.
Лемма 3.1. Для любой k-СМ, работающей на пространстве S(n), и любого с>0 можно найти эквивалентную по времени k-СМ, работающую на пространстве [c-S(n)].
Лемма следует из теоремы 1.2(6); она может быть усилена с помощью добавления к СМ счетчиков.
Лемма 3.2. Пусть S — возрастающая функция. Для любой СМ, работающей на пространстве, ограниченном полиномом от
S, можно найти эквивалентную по времени СМ, которая работает на пространстве S.
Доказательство. Мы опишем, как любой счетчик СМ можно заменить двумя счетчиками, содержимое которых ограничено квадратным корнем содержимого исходного счетчика. Повторив эту конструкцию несколько раз, мы получим требуемый результат.
Процесс моделирования протекает двумя различными способами, причем текущий способ запоминается в конечной памяти. Способ 1 соответствует случаю, когда содержимое моделируемого счетчика есть число m = r2jr2i (O^i^r), способ 2— случаю m = г2 + 21 + 1 (0 ^ I < г).
Способ 1. Заменим счетчик двумя счетчиками А и В, содержащими г — I и I соответственно. Если к содержимому исходного счетчика прибавляется +1, мы различаем два случая. Если i = r, т. е. А содержит 0, мы прибавляем +1 в счетчик S, меняем ролями счетчики А и В и продолжаем работать способом 1. Если же i+r, содержимое счетчиков не меняем, но переходим к способу 2.
Способ 2. Снова счетчик А содержит г — I, а счетчик В число L В случае прибавления +1 в исходный счетчик мы прибавляем + 1 в S, —1 в А и переходим к способу 1.
Чтобы промоделировать уменьшение содержимого исходного счетчика, обращаем процесс с очевидными изменениями. Ясно, что в исходном счетчике будет нуль тогда и только тогда, когда и в А и в В нули. Аналогично, когда исходный счетчик содержит т>0, один из счетчиков, А или В, содержит Z = [(m — ^[K^L а Другой [Ут] — i ^[Ут]. Наконец, наша новая СМ для моделирования одного шага требует также один шаг.
Используя леммы 3.1 и 3.2, мы можем доказать основной результат этого раздела, а именно что ТМ и СМ имеют изоморфные иерархии пространственной сложности.
Теорема 3.1. Язык распознаваем СМ, работающей на пространстве S, в том и только в том случае, когда он распознаваем ТМ, работающей на пространстве logS.
Доказательство. Кодируя содержимое счетчиков СМ двоичными записями и занося эти записи (с возможными сокращениями) на раздельные дорожки ленты ТМ, можно получить ТМ, работающую на пространстве log S и моделирующую данную СМ.
Чтобы показать обратное, используем алгоритм, предложенный Фишером [2] для моделирования ленты машины Тьюринга с помощью трех счетчиков А, В и С. Предположим, что ТМ
имеет в рабочем алфавите т различных символов: 0 (пустой), 1,..., т — 1. Если в некоторый момент непустая часть ленты ТМ имеет вид агаТ_\ ... aocbobx ... bs, а пишуще-читающая головка стоит в с, тогда счетчик А содержит число
| аг | • т' + | аг_х | • тг-А + ... + | ах | • т + | а0|, счетчик В — число
| bs | • ms + | bs_x | • ms-x + . . . + | bx 1 • m + | b0|,
а счетчик С —нуль ((a^j означает номер символа ah в вышеприведенном списке). Число |с| хранится в конечной памяти.
Если ТМ заменяет с на d и передвигает головку вправо, СМ умножает содержимое счетчика А на т и прибавляет \d\, затем делит содержимое В на т, запоминая остаток |60| в конечной памяти. Передвижение влево моделируется аналогично. В процессе работы счетчик С используется как вспомогательный регистр.
Теперь ясно, что если ТМ просматривает не более [logS] квадратов ленты, то содержимое счетчиков А, В, С никогда не превосходит
^Hog S]4-l <^ ^ . £[log m)4-l.
Результат следует теперь из леммы 3.2.
Связь пространственных и временных ограничений. Существует сильная зависимость между временем и пространством при вычислениях на СМ, точно выражаемая следующей теоремой.
Теорема 3.2. Пусть S — функция, S^^n. Язык L распознаваем СМ, которая работает на пространстве S, в том и только в том случае, когда он распознаваем СМ, время работы которой ограничено полиномом от S.
Доказательство. Пусть L распознается СМ, которая имеет q состояний, к счетчиков и работает на пространстве S. При работе со входом длины п может возникнуть не более q-n^S^ +1)^ различных конфигураций (определение конфигурации см. в разд. 1.1). Ясно, что машина никогда не остановится, если в процессе вычислений какая-то конфигурация повторяется. Но по определению при распознавании СМ всегда останавливается, поэтому время работы СМ оценивается как
T^ = qSk.nt+X
для некоторой не зависящей от п константы с. Обратно, если время работы ограничено полиномом от S, то и пространство
ограничено тем же полиномом, поскольку на каждом шаге не более чем один счетчик может увеличить свое содержимое. Для окончания доказательства остается прибегнуть к лемме 3.2.
Открытая проблема. Справедливо ли аналогичное теореме 3.2 утверждение для ТМ?
Классы сложности. Стирнз, Хартманне и Льюис [14] заметили, что при изучении произвольного класса пространственной сложности Cs в случае ТМ достаточно рассматривать одноленточные ТМ. Мы покажем, что для СМ это неверно, в частности класс языков, распознаваемых (^+1)-СМ, работающими на пространстве S(n} = n, включает в собственном смысле класс языков, распознаваемых fe-CM, работающими на пространстве S^n} = n, и это утверждение справедливо при всех к.
Пусть для&= 1, 2, ... Lk = {О^ЧО^а! ... 0т^0т'| !</<&, при всех i, j р( ^ {0, 1}, m^XY
Теорема 3.3. (а) При каждом к язык Lh распознаваем в реальное время при помощи к-СМ на пространстве S(n}=n. (б) Если r-CM М распознает Ек для некоторого k>r, то М работает на пространстве S(n) ^ cnhlr (с— некоторая константа}.
Доказательство. Непосредственная проверка (а) предоставляется читателю.
Чтобы установить (б), заметим, что различные двоичные слова вида О^Ч ... 0тЧ должны переводить М в различные конфигурации памяти. Если все m^h, число таких различных слов не превышает ЬК Если максимум содержимого счетчиков при работе с этими словами не превышает /, то число различных конфигураций памяти М не более чем q(t + 1)г, где q— число состояний М. Должно быть q^t-V l)r^hh, откуда t^d-h^1* для некоторой константы d. Но й +1 > n/(&+1), где п— длина входного слова. Следовательно, М работает на пространстве S(n} ^c>nklr {с — некоторая константа).
Следствие. Для всех к класс языков, распознаваемых (к + 1)СЛ4 на пространстве S(n} = n, собственно включен в соответствующий класс для к-СМ.
МОДЕЛИРОВАНИЕ ОДНОЙ МАШИНЫ НА ДРУГОЙ
В этом разделе мы исследуем точные границы времени, необходимого для моделирования одной машины с помощью другой. Для простоты мы ограничимся рассмотрением моделирования машин, которые работают линейное время, т. е. Т(п) = — сп для некоторой константы с. Несколько результатов немедленно обобщаются на случай произвольного Т^п}.
Машины Тьюринга и счетчиковые машины. Очевидно, что для любой временной функции Т(п) и данной &-СМ, работающей время Т(п), можно найти эквивалентную по времени &-ТМ. Довольно удивительно, однако, что 1-ТМ может моделировать работающую реальное время й-СМ с небольшой потерей времени, а й-СМ, работающую время T(n) > (1 + е)/г, — вообще без потери времени.
Теорема 4.1. Для любой k-СМ, работающий линейное время Т^^сп, и любого 8>0 можно эффективно построить эквивалентную одноленточную ТМ, которая работает время Т(п) = (1 + е)п.
Доказательство протекает в три этапа, (а) Для данной й-СМ М находим эквивалентную по времени й-СМ М', которая изменяет за шаг содержимое не более чем одного счетчика, (б) Затем конструируем одноленточную ТМ Г, эквивалентную М', которая работает время Т(п)=12сп. (в) Наконец, для любого числа d>0 строим одноленточную ТМ Р, эквивалентную Т, которая работает время Т (п) = (1 + (12с—l)d)n. Поскольку возможность шагов (а) и (в) показана в теореме 1.2 и в теореме ускорения Хартманиса и Стирнза [6], мы рассмотрим только шаг (б).
Пишуще -читающая головка
Рис. 1. Возможная конфигуратя ленты машины Т после 15 шагов машины М'. Счетчик 1 содержит 7, счетчик 2 содержит —5 и счетчик 3 содержит 0.
Для данной машины М' построим Т следующим образом. Лента Т разделена на к дорожек, по одной для каждого счетчика М, а каждая дорожка разделена на два канала. На каждой дорожке появляется неотрицательное целое число в двоичном представлении; эти числа размещены на дорожках так, что их младшие разряды всегда находятся в одном и том же квад-
рате ленты (рис. 1). Если i-й счетчик М' на п-м шаге вычислений содержит число Xt (i=l, .&), то на п-м шаге моделирования i-я дорожка ленты Т будет содержать числа уг и zt со свойствами: (1) Уг -— Z; = Хг, (2) Уг-^^п и (3) нет разряда, в котором представления обоих чисел содержали бы единицу. Последнее условие означает, что Хг = 0 тогда и только тогда, когда уг = 2г = 0.
В случае 6 = 3 рис. 1 иллюстрирует возможную конфигурацию ленты Т после 15 шагов М\ Счетчики ЛГ содержат соответственно 7, —5 и 0.
Процесс моделирования протекает так. Если в г-й счетчик прибавляется (вычитается) единица, то она же прибавляется к у г (2г). После выполнения необходимых переносов Т передвигается еще на один квадрат влево, чтобы определить, достигнута ли самая левая для каналов дорожки I цифра. Затем Т выполняет «чистку», именно движется вправо вплоть до пустого квадрата, следующего за квадратом младшего разряда, и во время этого движения проверяет условие (3), производя необходимые исправления, и, кроме того, заменяет нули, появляющиеся в данном канале слева от крайней единицы, пустыми символами. Ясно, что во время «чистки» Т проверяет также значения счетчиков на равенство нулю. И наконец, после «чистки» Т передвигается на один квадрат влево, занимая снова квадрат младшего разряда.
Квадрат младших
Пишуще-читающая головка
Рис. 2. Конфигурация ленты машины Г после моделирования прибавления единицы к содержимому счетчика 2 машины М'.
Рис. 2 показывает изменение конфигурации ленты 7, происходящее в результате прибавления единицы во второй счетчик М', причем М' перед этим находилась в конфигурации рис. 1.
Чтобы оценить полное время моделирования NV с помощью Г, заметим, что при моделировании первых 2/г+1 шагов вычислений
М' самым худшим для Т является случай, когда возрастает содержимое одного и того же счетчика М\ В этом случае будет 2Л шагов, когда переноса не требуется, 2Л~1 шагов, включающих перенос на 1, 2,г~2 шагов, включающих перенос на 2, . . . , 1 шаг с переносом на h и 1 с переносом на й+1. Поскольку моделирование шага М', включающего перенос длины I, требует 2i+4 шагов Т, мы видим, что Т затрачивает время
Г (2'1+1) = 2 2h-z(2i + 4) + 2(ft+1) + 4 = / = 0
= 22A"z(2t + 4) + 2 2Л~‘(2 (Л + 1) + 4) ^ z=0i = h^\
< 22z,"z(2/ + 4) =
= 2h 1^2 2i2-i + 4 2 зД =
\ f=oi=0/
= 2Л- 12.
Теперь для данного п выберем /i = [logn] так, что 2^<^/i< <2^+1. Тогда Т(п) ^ Т^^1) <. 12 -2^ 12п. (Подробный анализ показал бы, что в действительности верхняя оценка 6п.) Итак, теорема 4.1 доказана.
Открытая проблема. Можно ли положить е в теореме 4.1 равным 0? Эту задачу не удается решить даже для 2-СМ в реальное время (см. проблему пересечений осей в разд. 2.3).
В отличие от ситуации в теореме 4.1 односторонней СМ может потребоваться экспоненциальное время для моделирования одноленточной ТМ, работающей реальное время.
Теорема 4.2. (а) Для данной k-ленточной ТМ, работающей линейное время, можно найти эквивалентную одностороннюю СМ, которая работает время Т (я) = ап для некоторого постоянного а. (б) Существует язык L, который распознаваем в реальное время на одноленточной ТМ, но который не распознаваем никакой k-СМ, работающей время меньшее, чем Т(п) = 2п№.
Доказательство. ТМ работает линейное время на пространстве S(n) = cn, утверждение (а) теперь следует из теорем 3.1 и 3.2.
Язык L = VxaxT\x ^ (0, 1}*, ^^{0,1}}, как легко показать, распознается в реальное время одноленточной ТМ (в действительности даже pushdown-автоматом в реальное время). Поэтому (б) выводится из доказательства теоремы 1.3(a).
Время, которое требуется СМ для моделирования ТМ, работающей линейное время, оценивается как
спх Т (и) с^
для некоторых постоянных сх и с?
k-счетчиковые и 3-счетчиковые машины.
Теорема 4.3. (а) Для данной k-СМ, работающей линейное время, можно найти эквивалентную 3-СМ, которая работает время Т^=сп№ для некоторой постоянной с. (б) Существует язык L, распознаваемый в реальное время k-CM, который не распознается никакой r-СМ, работающей время меньшее чем пк1г.
Доказательство, (а) Если дана fe-CM М, работающая линейное время d-n (d— константа), можно легко построить эквивалентную 1-ТМ, которая (1) работает в течение времени d'n-logn (для некоторого d'), (2) работает на пространстве logdn и (3) употребляет 2^+1 рабочий символ. Эта 1-ТМ кодирует содержимое счетчиков М в двоичном алфавите на ленте, употребляя на каждый счетчик по одной дорожке. Изменение содержимого счетчиков М моделируется в виде соответствующего изменения двоичных чисел на соответствующих дорожках. Легко проверить, что если М изменяет не более одного счетчика на каждом шаге, то число шагов 1-ТМ, моделирующей проверку машиной М п-го входного символа, не превышает log dn. Поэтому наша 1-ТМ удовлетворяет условиям (1) и (2).
Построенную таким образом 1-ТМ мы будем моделировать теперь при помощи 3-СМ, используя для этого алгоритм теоремы 3.1. Чтобы промоделировать один шаг работы 1-ТМ, который в свою очередь моделирует проверку машиной М п-го входного символа, 3-СМ должна умножить число, не большее (2^+1 )10^dn-^С еи^1/2 (а— константа), на число 2fe+l, затем разделить число такого же порядка на 2^ + 1 и прибавить величину, не большую 2^+1. Каждый определенный таким образом шаг требует не более 3- (2^+1) -е-пк^^2 шагов 3-СМ.
Так как 1-ТМ работает в течение времени d'• п -log п, то моделирующая ее 3-СМ работает в течение времени А • пк^12 • log п ^ с • пк^2, что и утверждалось.
Используем семейство языков
Lk= [оЛО1^! ... 0m^,0m'| 1 <z<&,
любое m^X и любое pz ^ (О, 1}}.
Очевидно каждый ядык Ек разпознаваем в реальное время некоторой fe-CM. Из доказательства теоремы 3.3(6) следует, что никакая r-СМ не может распознать Lk менее чем за спк^т шагов (с — константа). Теорема доказана.
ЯЗЫКИ, РАСПОЗНАВАЕМЫЕ В РЕАЛЬНОЕ ВРЕМЯ
Пусть ^к означает класс языков, распознаваемых в реальное время k-CN\ (^ = 0, 1, 2,.. .), и пусть ^ = ^3^. В этом раз- к деле мы исследуем некоторые свойства классов ^к и ^
Счетчиковая иерархия. Большинство из отрицательных результатов этого раздела основывается на следующей важной лемме.
Мы говорим, что слова х и у n-эквивалентны относительно языка L, обозначая xEny (mod L), если для всех слов z длины, не превышающей щ xz содержится в L тогда и только тогда, когда yz содержится в L.
Обозначим через Т^М^ язык, распознаваемый СМ М.
Лемма 5.1. Пусть М есть k-СМ, работающая реальное время с q состояниями. Число классов эквивалентности En(modT(M)) не превышает q • (и + IP -Сспк для некоторой константы с.
Доказательство легко проводится с помощью рассмотрения числа различных конфигураций памяти М, которые могут быть отличены друг от друга за п шагов (которые «п-неэквива- лентны»).
Из леммы 5.1 сразу же получаем следующую теорему.
Теорема 5.1. При всех к ^к в строгом смысле вложен в ^к+х-
Доказательство. Рассмотрим семейство языков Lk из теорем 3.3(6) и 4.3(6). Если даны два различных слова х-О^Н ... 10^+I и у = 0гЧ ... 10г^+1,где каждое пг^ и r^h, то существует последовательность z = ps0* длины, не превышающей h + 1, такая, что xz содержится в Lk^x, a yz — нет. Поскольку число различных слов такого вида есть hw, то число классов эквивалентности Ек+х (mod LkV) не меньше чем ИМ4.
Теперь, поскольку число классов эквивалентности Eh-н (mod Т(М)) для любой fe-CM М, работающей реальное время, не больше, чем qkh-V \ )k<hk+x для больших К. отсюда следует, что Lw не содержится в ^к*
Очевидно, Lk^x содержится в ^к+х, откуда для всех к Lh+x ^ ^^к+хХ^к- Теорема доказана.
Лемма 5.1 и теорема 5.1 были независимо установлены Лэйнгом [7].
Линейное время и ускорение. Используя часть (б) теоремы 1.2, можно сразу же получить теорему «ускорения» для СМ.
Теорема 5.2. Для любой k-СМ, работающей время Т(п) = = п + Е(п), Е(п)>0, и для любой константы с>0 можно эффективно найти эквивалентную k-СМ, которая работает время Т'^п) = п + [сЕ(п)].
В частности, получаем такое следствие.
Следствие. Для любой k-СМ, которая работает время Т (п) = d • щ d^ 1, и для любого с > 0 можно найти эквивалентную k-CM, которая работает время (1 + [(с/— 1 )/с]) • я.
Итак, любая СМ, работающая линейное время, может быть заменена эквивалентной СМ, работающей время (1 4- е) -п. Естественно спросить, можно ли положить здесь 8 = 0. Мы покажем, что, вообще говоря, этого сделать нельзя.
Теорема 5.3 Пусть Л = {0^ \т\р*> т>0}. Язык L* (а) распознаваем во время 2п с помощью 1-СМ, но (б) не распознаваем в реальное время никакой СМ.
Доказательство, (а) очевидно; предположив противное, приведем (б) к противоречию. Предположим, что й-СМ М с q состояниями распознает 4* в реальное время.
Пусть bo = q, и для г=1, ..., к пусть b^ = q • ^ЗЬ^—х+2)<
Мы покажем, что М допускает слово вида О^Ю^-Ч ... ... 0С110^Г, если d < е, или отвергает это слово, если d~> е. Числа щ будут удовлетворять неравенствам 1^сг-^Ьг-, 1 = = !,...,£.
Теперь для любых целых чисел р и т>р М должна иметь различные конфигурации памяти после чтения 0? и 0т, иначе слова QmlmeZ* и Qp\m^L* будут восприняты одинаково. Поскольку число различных конфигураций памяти ограничено величиной q-^t^-l^, где t—наибольшее из чисел, содержащихся в счетчиках, то после чтения слова 0<\ ск^Ьк, некоторый счетчик М должен содержать /^36^-1+ 1. Следовательно, после прочтения 0сЧ этот счетчик М содержит число не меньшее чем 3&^_ь
Пусть в качестве предположения индукции справедливо, что для 0<1<к числа с^ ..., c^-w выбраны так, что когда М считывает последний символ слова
0c40^-il ... 10 +11»
по крайней мере I счетчиков М содержат числа, нс меньшие чем ЗЬк_г. Как и выше, после просмотра машиной М входных слов вида 0^ и 0™ для Ьк_^ т> р^\ конфигурации ее памяти должны быть 6^_гнеэквивалентными. По предположению индукции i счетчиков М содержат слишком большие числа, чтобы влиять на й^-эквивалентность конфигураций. Следовательно, М теперь может иметь не более q • (/ + l)k-i й^_г-неэквивалентных конфигураций, где t— наибольшее из чисел, содержащихся в к — I «влияющих на отличимость» счетчиках. Значит, существует целое с^-г ^ bk_i, такое, что после прочтения слова
0'4 ... О^-^1 ю^-ч
по крайней мере i+l из счетчиков М содержат числа, не меньшие ЗЬк-г-л.
По предположению индукции должно быть такое входное слово &у = 0сМ ... 0сЧ (все с^Ь^, что после прочтения w все счетчики М содержат числа, не меньшие чем 3b0 = 3q. Но тогда должны быть числа с и d, \^c<d^q-V\, такие, что w0c и w0d приводят М в ^-эквивалентные конфигурации. Следовательно, М должна одинаково воспринимать слова
аЮЧ +l ^L* и wO^r+'e С,
что противоречит условию о распознаваемости L* машиной М. Доказательство окончено.
Теорема 5.3, таким образом, показывает неэквивалентность линейного и реального времени для СМ. Следует отметить, что L* распознается в реальное время 1-СМ, которая может за один шаг устанавливать в счетчиках нуль. Теорема 5.3 даег следующее
Замечание. Класс языков, распознаваемых в реальное время СМ с командами «установки нуля», собственно содержит ^.
Читатель легко проверит, что почти все результаты данной работы остаются справедливыми для этих усиленных СМ.
Свойства замкнутости. В этом заключительном разделе мы исследуем свойства замкнутости классов ^^ и ^ Свойства замкнутости класса ^ почти идентичны свойствам класса язьь ков, определимых в реальное время (Розенберг [13]).
Теорема 5.4. Класс ^ замкнут относительно операции (а) дополнения, (б) объединения, (в) пересечения, (г) умножения справа на регулярное множество, (д) взятия прообраза при отображении обобщенной последовательностной машиной 1).
!) См. статью [15*].— Прим. ред.
Конструкции для доказательства можно заимствовать из работы Розенберга [13], в которой аналогичные результаты устанавливаются для машины Тьюринга.
Лемма 5.2. В ^ не содержится язык
L = [om4 ... 0m^-'10m'-20m | г>\, все
при некотором i, 1 ^ i ^ г, m = m^.
Доказательство. Если даны двоичные слова вида x-Omil ... 0тН (г>1, Кт^Л) и // = 0^1 ... 0^1 (s> 1, \ ^n^hV то при {mh ..., пЦ^пх, ..., ns} существует слово* 2g(2}'{0}* длины, не большей h+1, такое, что xz^L, a yz^L. Отсюда следует, что число классов эквивалентности En(modA) не меньше чем 2^-1. Результат теперь следует из леммы 5.L
Теорема 5.5. Класс ^ не замкнут относительно операций (а) конкатенации даже с регулярным множеством, (б) гомоморфизма, сохраняющего длину, (в) итерации и (г) обращения.
Доказательство, (а) — (в). Пусть
Н = ((Г IO"’1 ... 0"r20m| г > 0, каждое щ ^ 1 и m^ 1}.
Ясно, что Яе^ь Пусть R— регулярное множество, R = = ({0} {0}* {1})*. Поскольку RH = L, часть (а) следует из леммы 5.2. Пусть / есть сохраняющий длину гомоморфизм, определяемый так:
/(0) = 0, f(l)=l, / (2) = 2, f(3)=l.
Ясно, что 7?{0}{0}*{3}Я е ^ь Однако образ этого языка относительно / есть L, что доказывает (б).
По теореме 5.4 G = Z/{3}U7? е ^. Однако 0*^^, иначе, согласно теореме 5.4, было бы С*П7?{2} • {0}* • {3} = L • {3}, что противоречит лемме 5.2. Таким образом, установлено (в).
Легко проверить, что язык К = {ln0m|0 < п ^ т}* принадлежит ^ь Однако обращение К есть язык L* из теоремы 5.3, о котором мы знаем, что он не принадлежит ^
Наконец, отметим еще одну теорему.
Теорема 5.6. Для всех т, п>0 существуют язык Н ^^т и ЯЗЫК К^^п, такие, ЧТО H[iK ^^m+n^^m+n-i-
Доказательство. Положим
Н = [оа>1 ... О^К)"-! ... 0ь«^0аЦ 1 <i<m,
все ab bj^\, все pfe^{0, 1}}, к = (0с‘1 ... О^К^Ч ... O^-O^l 1 < г
все cb d^X, все pfe^{0, 1}}.
Очевидно, HUK есть язык Lm+n теоремы 5.1, и, следовательно, ОН принадлежит ^m+nX^m+n-b
Открытая проблема. Справедлив ли аналог теоремы 5.6 для ТМ?
ЛИТЕРАТУРА
Cobham A, Time and memory capacity bounds for machines, which recognize squares or palindromes, IBM Research Report RC-1621, 1966.
F i s h e r P. C., Turing machines with restricted memory access, Information and Control, 9 (1966), 364—379.
F i s h e r M. J., Rosenberg A. L., Real-time solutions of the origincrossing problem, Math. Systems Theory, 2 (1968), 257—263. (См. стр. 372—379 настоящего сборника.)
Ginsburg S., The mathematical theory of context-free languages, McGraw-Hill, New York, 1966. (Русский перевод: Гинзбург С., Математическая теория контекстно-свободных языков, «Мир», М., 1970.)
Ginsburg S., Spanier Е. Н., Bounded ALGOL-like languages, Trans. Amer. Math. Soc., 113 (1964), 333—368.
Hartmanis J., Stearns R. E., On the computational complexity of algorithms, Trans. Amer. Math. Soc., 117 (1965), 285—306 (Русский перевод: Хартманне Дж., С т и р н з Р. Е , О вычислительной сложности алгоритмов, Кибернетический сборник (новая серия), вып. 4, 1967.)
L a i n g R., Realization and complexity of commutative events, Univ, of Mich. Technical Report 39105-48-T, 1967.
Minsky M., Recursive unsolvability of Post’s problem of tag and other topics in the theory of Turing machines, Ann. of Math., 74 (1961), 437—45 5.
Oettinger A. G., Automatic syntactic analysis and the pushdown store, Proc. 12th Ann. Sympos. in Appl. Math., 1960, 104—129.
Parikh R. J., On context-free languages, J. Assoc. Comput. Mach., 13 (1966), 570—581.
. Rabin M. O., Real-time computation, Israel J. Math., 1 (1963), 203—211. (См. стр. 156—157 настоящего сборника.)
Rabin M. О, Scott D., Finite automata and their decision problems, IBM J. Res. Develop., 3 (1959), 114—125. (Русский перевод: P а б и н M. О., Скотт Д., Конечные автоматы и проблемы их разрешения, Кибернетический сборник, вып. 4, ИЛ, М., 1962.)
Rosenberg A. L., Real-time definable languages. J. Assos. Comput. Mach., 14 (1967), 645—662. (См. стр. 168—193 настоящего сборника.)
. Stearns R. E., Hartmanis J., Lewis P., Hierarchies of memory-limited computations, Proc. 6th Ann. Sympos. Switching Circuit Theory and Logical Design, Ann Arbor, Mich., 1966, 179—190. (См. стр. 301—319 настоящего сборника.)
5*. G i n s b u r g S., Rose G., A characterization of machine mappings, Ca- nad. J. Math., 18, № 2, 381—388. (Русский перевод: Кибернетический сборник (новая серия), вып. 5, 1968, 128—137.)
МАШИННО-НЕЗАВИСИМАЯ ТЕОРИЯ СЛОЖНОСТИ РЕКУРСИВНЫХ ФУНКЦИЙ
М. Блюм
Число шагов, требуемых для вычисления значения функции, зависит, вообще говоря, от типа используемого вычислительного устройства, выбора программы вычислений и кодировки входных и выходных данных. Тем не менее результаты, полученные в этой работе, являются настолько общими, что они почти не зависят от этих условий.
Строится функция, которая требует для своего вычисления огромного числа шагов, однако она имеет почти «быстрейшую» программу: любая другая программа для вычисления этой функции, как бы она изобретательно ни была построена, делает практически столько же шагов, как и эта почти быстрейшая программа.
Другая построенная функция обладает тем свойством, что, как бы быстро ни работала программа для вычисления этой функции, существует другая программа, вычисляющая ту же функцию и работающая значительно быстрее.
ВВЕДЕНИЕ
Задача заключается в том, чтобы охарактеризовать сложность вычислимых функций. Развиваемая здесь теория следует духу предложенного Рабином аксиоматического подхода [5]. Выбранные аксиомы служат основой для определения того, что является, а что не является законной мерой функциональной сложности. Вероятно, наиболее известны такие интуитивные меры, как 1) число шагов, необходимых для вычисления функции, 2) размер ленты, необходимый машине для вычисления. Обе эти меры удовлетворяют нашим аксиомам. После формулировки аксиом будут даны и другие примеры.
Теория сложности, предлагаемая здесь, машинно-независима. Это означает, что теорема, которая характеризует сложности частично рекурсивных функций на одном классе машин, одинаково хорошо характеризует их сложности на почти любом другом классе. Хотя это и не является неожиданным, все же это утверждение представляется странным, так как сложность конкретных функций неизбежно зависит от класса машин, используемых для вычислений. Поэтому нужно меньшее число шагов
О Blum М., A machine-independent theory of the complexity of recursive functions, Journal of the Association for Computing Machinery, 14, № 2 (1967), 322—336.
при вычислении функции в классе многоленточных машин по сравнению с классом одноленточных машин; в классе машин с двоичной кодировкой входных и выходных данных можно вычислять некоторые функции (такие, как 2П) в меньшее число шагов, чем в классе машин с десятичной кодировкой. Таким образом, не должно быть надежды на то, что индивидуальная функция может иметь единственную меру сложности, которая не зависит от класса машин. Остается возможность, которая и предлагается здесь вместо этого: аксиоматическая теория, теоремы которой не зависят от класса. Пример такой теоремы поможет сформулировать этот подход.
Теорема 1. Для любой общерекурсивной функции g можно построить общерекурсивную функцию f, принимающую значения 0 и 1 и имеющую такую сложность, что любая машина, которая вычисляет f(n), делает больше чем g(n) шагов для бесконечно многих значений п.
Хотя сначала должны были бы быть введены аксиомы, они настолько очевидны, что неформальное доказательство этой теоремы может быть дано уже сейчас. В этом доказательстве Zq, Zx, Z^ ...— последовательность машин, которые вычисляют все частично рекурсивные функции на натуральных числах.
Доказательство. Дана функция g, а функция f должна быть определена. В нашем случае она определяется с помощью диагонального метода. Для вычисления f(n) имитируется п-я машина Zn на входе п. Если Zu останавливается менее чем за g(n^ шагов с некоторым выходом пг, полагаем f(n)=f=m. В противном случае f(n) может быть определена произвольно. Тогда любая машина Z^, которая делает на входе I меньше чем £(/) шагов, не может вычислять f. Но каждая машина встречается в приведенном выше списке бесконечно много раз (или мы можем так изменить список, чтобы добиться этого), в частности бесконечно много раз встречается каждая машина для f. Отсюда следует теорема.
Эта первая теорема не предназначена для того, чтобы произвести впечатление. Цель здесь заключается в том, чтобы показать, что существует теорема, которая истинна для любого класса машин независимо от того, как эти машины устроены и как у них кодируются данные. Так, Zo, Zx, Z2,. .. может быть классом одноленточных машин так же, как и классом 10-лен- точных машин. Машина может быть даже такова, что входные данные кодируются в единичном коде, а выходные — с помощью римских цифр.
Мы свяжем с каждой машиной Zv две функции: 1) частично рекурсивную функцию ^ДпД которая на этой машине вычис-
ляется, и 2) частично рекурсивную функцию ФгкпУ называемую сигнализирующей функцией. В частности, Фг(п) можно понимать как число шагов или размер ленты, используемой Z^ когда она работает на входе п.
В этой статье вводится ряд аксиом и доказывается несколько промежуточных теорем и две главные теоремы: теоремы ускорения (speed-up) и сжимания (compression). Теоремы ускорения и сжимания касаются следующей проблемы: дана рекурсивная функция f; каждой ли машине, вычисляющей ее, соответствует другая машина, работающая быстрее?
Теорема ускорения или, вернее, ее частный случай дает примеры общерекурсивных функций f, принимающих два значения 0 и 1 и обладающих тем свойством, что для каждой Z^ которая вычисляет f (за Ф2(п) шагов), существует другая машина Z^ которая делает ту же работу значительно быстрее (за Фз(п\ шагов), причем Ф2(п) >2Ф/(п) для почти всех п, т. е. для всех, за исключением конечного множества чисел. Отметим, что это приводит к бесконечной последовательности f = ф2=ф7 = ф/1 = ..., такой, что
Ф£(п)>2Ф/(п)>22Фб(П)> ....
Теорема сжимания представляет собой обращение теоремы ускорения. Она весьма напоминает теорему 9 в работе Харт- маниса и Стирнза [2], где показано, что у некоторых весьма сложных функций f число шагов, необходимых для их вычисления, можно «сжать» между двумя близкими границами. В этой статье доказана теорема совершенно общего характера, которая для случая одноленточных машин с алфавитом, состоящим из 0, 1 и 6 (пусто), имеющих двоичную кодировку входных и выходных данных, при функции Ф2(п), определенной как действительное число шагов при вычислении ф2(п), дает следующее. Пусть ф2— частично рекурсивная функция. Тогда существует принимающая значения 0 и 1 функция f, имеющая ту же область определения, что и фг, и имеющая такую сложность, что любая машина, вычисляющая f(n^ делает по крайней мере Ф2(п) шагов для почти всех п, но при этом по крайней мере одна машина вычисляет f(n) менее чем за [Ф2(^)]7 шагов. Таким образом, число шагов, необходимых для вычисления f, заключено между Ф2 и Ф^.
АКСИОМЫ ДЛЯ СИГНАЛИЗИРУЮЩИХ ФУНКЦИЙ
Эти аксиомы могут быть сформулированы без ссылок на устройства или машины. Первый шаг заключается в постулировании эффективного списка {фЛ всех частично рекурсивных
функций и требования, чтобы для этого списка выполнялись Sn- теорема) и теорема об универсальной машине Тьюринга). (Роджерс [8] называет любой такой список допустимой гёде- левской нумерацией; он доказывает, что любые два таких списка рекурсивно изоморфны!) Второй шаг заключается в том, что с каждой фг связывается некоторая частично рекурсивная функция Фг-. Множество {Ф2} совершенно произвольно, на него накладываются лишь два основных ограничения, сформулированных в аксиомах:
фг(п) определена (т. е. Z2 на входе п останавливается) ^ ФДп) определена.
Функция
( 1, если Ф,(п) = /п, М (/, щ m) = t п
( 0 в противном случае
является (обще) рекурсивной.
Аксиому 1 можно выразить эквивалентно в терминах функции М так: фД/г) определена ^ 3m[M(i, п,т) =\]. Функция М, которая удовлетворяет аксиомам 1 и 2, называется мерой вычисления.
В дальнейшем будем пользоваться сокращением ФД/г)>т для оо > фД/г) >т, где ФД/г) = оо означает, что фД/г) не определена.
Пример 1. Пусть {ZJ— класс многоленточных машин, а {ф7} — множество вычислимых на них функций; тогда одно из возможных множеств сигнализирующих функций {Фг} определяется так: ФДп) = т тогда и только тогда, когда Z^ на входе/г останавливается точно за т шагов (в противном случае ФДп) не определена).
Другое возможное множество {Фг} определяется так: ФДп) = = т тогда и только тогда, когда Z^ при работе на входе п использует точно т ячеек ленты.
Пример 2. Если {ФД удовлетворяет аксиомам, то также удовлетворяет аксиомам {Фг}, определенное так: ФД/г) =ФД/г) -2^п.
Другой возможный выбор {Фг}, основывающийся на некоторой общерекурсивной функции ф/оэ таков:
Ф; (га) =Ф; (га) =ФДп), если 1=^1^
Ф; (га) =
Ф; (га) =
0, если i = Zo.
Пример 3. Выбор ФгСп) =<91^ невозможен, так как выполняется лишь аксиома 1, аксиома 2 не выполняется; невозможен также выбор множества ФД/г)=0 для всех допустимых I и п, так как в этом случае выполняется аксиома 2, но не выполняется аксиома 1. Отсюда следует, что приведенные две аксиомы независимы.
Каждая сигнализирующая функция Фг, будучи частично рекурсивной, встречается где-то в списке {фг}. Вторая теорема утверждает, что существует эффективная процедура для определения этого места.
Теорема 2. Существует общерекурсивная функция р, такая, ЧТО Фг = ф0(Ц для 8СвХ I.
Доказательство. Аксиома 2 утверждает, что
М^цщ пг^ Ю ФД/г) =пг.
Определим функцию Д которая удовлетворяет условию
f (Z, п) = пг Ф> М (i, п, m) = 1.
Функция f частично рекурсивна. Согласно S™ -теореме существует общерекурсивная функция р, такая, что фацДя) = f (Z, п). Функция р удовлетворяет требованиям теоремы.
Третья теорема уточняет следующее утверждение. Пусть даны два класса машин и вычислимая функция Д Тогда для каждой машины из одного класса, вычисляющей Д существует машина из другого класса, которая вычисляет функцию f примерно за то же число шагов.
Теорема 3. Пусть М и М— произвольные меры вычислений с сигнализирующими функциями {Ф^} и {(Dj. Тогда существует такая общерекурсивная функция g, что
g (п, Ф; (п)) > Ф; (га) и g^n^M^^M
для всех I и почти всех п.
Это означает, что ФДп) и ФД^) не слишком отличаются друг от друга.
Доказательство. Требуемая функция g получается из функции р, определяемой так:
р (z, п, т) =р (z, п, т) =Ф; (/г) + Ф/ (/г), если ФД/г) = m или фДп) = т, т. е. если M(z, п.т^У или М^ц п,т)=\, 0 в противном случае.
р (z, п, т) =
р (z, п, т) =
Функция р общерекурсивна; она вычислима, так как вычислимы М и М, и всюду определена, так как (ФД/г) определена)ФФ ^(фД/г) определена)ФФ(ФД/г) определена). Требуемая функция g задается так: g^n>m^ = max р^цп,т\ что и требовалось до- i ^ п казать.
Удобным средством для доказательства теоремы о сложности является использование упрощенного варианта теоремы о рекурсии Клини [9]: для каждой общерекурсивной функции о найдется такое натуральное число /, что фа(л = ф;. Примером использования этой теоремы может служить доказательство очевидного утверждения: плохо построенная машина может тратить зря огромное число шагов при вычислении простой функции.
Теорема 4. Пусть h и f— общерекурсивные функции. Тогда существует такой индекс j для f, что ФД/г) >h(n) для всех п.
Доказательство. Пусть
f (п), если Ф, (/г) > h (п), т. е. если М (z, п, т) = 0 для всех m^h^n\
+ ф/ (/г) в противном случае.
Функция р общерекурсивна, поэтому существует общерекурсивная функция о, такая, что р(I, п) =^о^(пУ Согласно теореме о рекурсии, найдется такое число /, что фа(д = ф^-. Теперь легко видеть, что j — индекс для f: если ФД/г) ^Ch^n^ то фД^) = = 1+фДп), что противоречиво. Поэтому ФД/г) >/Д/г) для всех п. Из определения функции р следует, что фД/г) =fW для всех п. Что и требовалось доказать.
3. УСКОРЕНИЕ
На одноленточной машине с десятичной кодировкой входных и выходных данных при сигнализирующей функции, пересчитывающей действительное число шагов, функции, подобные f(n)=O или Цп?) =щ могут быть вычислены быстрейшим или наилучшим способом. Это неудивительно, поскольку эти функции вычислимы на конечных автоматах.
С другой стороны, если функция достаточно сложна, то для каждой машины, которая ее вычисляет, есть другая машина, более быстрая, которая вычисляет ее за точно вдвое меньшее число шагов для бесконечно многих п. Простой пример такой функции:
( 1, если п — палиндромическое число), f to = 1 л
I 0 в противном случае.
Эта функция определяет, читается ли число, записанное в десятичном коде, слева направо так же, как справа налево. Чтобы вычислить f(n), ^ = 372686273, обычная машина сначала читает самую правую цифру 3, стирает ее, затем бежит по ленте к самой левой цифре 3 и стирает ее, возвращается обратно на самую правую цифру 7, стирает се, бежит к самой левой цифре 7 и стирает ее и т. д. После сравнения соседних цифр она печатает 1. Более быстрая машина читает сразу самые правые цифры 3 и 7 перед тем, как двигаться к самым левым цифрам 3 и 7, при этом она сравнивает сразу две цифры, в то время как первая машина за один прием сравнивает одну цифру. Эта более быстрая машина делает примерно в половину меньшее число шагов, чем более медленная, для всех палиндромических чисел. На самом деле можно доказать (хотя и не просто), что, какая бы ни была выбрана машина для вычисления этой функции, может быть построена другая машина, которая делает ту же самую работу за точно вдвое меньшее число шагов для бесконечно многих входов.
Это показывает, что верен следующий результат: существует общерекурсивная функция f, обладающая гем свойством, что каждому индексу I для этой функции соответствует другой индекс / для f, такой, что ФДп) >2ФДп) для почти всех п. Может ли быть доказана более сильная теорема? В частности, существует ли функция f, обладающая свойством, что каждому индексу I для этой функции соответствует индексу / для f, такой, что Ф,(п)>Ф/(га)Ф/п)
для почти всех /г? Следующая теорема утверждает, что такая функция существует.
Теорема 5 (ускорения). Пусть г — общерекурсивная функ- идя от двух переменных Тогда существует общерекурсивная функция f, принимающая значения 0 и 1, с тем свойством, что каждому индексу i для f соответствует другой индекс / для f, такой, что ФДп^ЦщФ^п^ для почти всех п.
Доказательство. В основе этой теоремы лежат простые соображения. Они следуют из прямого доказательства того, что каждой общерекурсивной h соответствует общерекурсивная f со свойством, что если i— любой индекс для Д то ФДп) >Н^ для почти всех п. Это прямое доказательство определяет Д задавая ее вычисление с помощью вычеркивания первой невычерк- нутой функции фг(п), которая принадлежит множеству (фо(п),фп(л)} и такова, что ее сигнализирующая функцияФ; обладает свойством Фг^ОЦп). Далее полагается f^n^^W; чтобы избежать неприятности, связанной с тем, что нельзя рассматривать i-ю функцию фг- в последующих точках, вычеркнутая функция фг исключается из вычисления f для больших п.
Небольшое изменение в конструкции превращает / в функцию, удовлетворяющую теореме: вместо вычеркивания первого еще невычеркнутого элемента множества {фо(^), ..., фп(^)} со свойством ФДп) ^ Л (/г) мы требуем вычеркивания первого элемента со свойством ФДм) -^Н^п— z). Далее, как и раньше, полагаем f(м) ^Фг(^). Так определяется f. В этом доказательстве вычисление задает функцию Д такую, что / = фцо, о,/), где I— индекс для h.
Интуитивные соображения опираются прежде всего на определение функции Д Машина, вычисляющая ф#(0, о, 1), просматривает множество {фо(я), • ., фп(^)} и вычеркивает первую невычерк- нутую фг, для которой ФДп)-^фДм—1). Более быстрый способ вычисления f(n) использует то обстоятельство, что на самом деле нет необходимости просматривать все множество {фо(^)> . •> Фп(я)}. Для данного фиксированного и достаточно для больших п просмотреть только множество V^uW, • ..., фп(^)}- Причина этого заключается в том, что для достаточно больших п каждый из элементов фо(^), • ., фи-1(^) или уже вычеркнут или никогда не будет вычеркнут, поэтому ни один из них не будет вычеркнут при вычислении f(n). Эти элементы можно пропустить при достаточно больших п, скажем м > у. При так урезанном вычислении, при котором просматривается меньшее множество {фи(^)> • ••, Фп(^)}, делается меньшее число шагов, поскольку / = ^t^u,®, z). Вообще, чем больше и, тем быстрее работает соответствующая машина, которая вычисляет Д Этого возрастания достаточно, чтобы доказать теорему.
Возникает лишь небольшая проблема. Эти вычисления, использующие и и у, — особый способ вычисления Д и может показаться странным, что такой более быстрый способ вообще существует. Однако это именно так, так как если /— любой индекс для Д то вследствии определения f ФДя)>ф/(/г — /) для почти всех п; функция Фз(п^ выбирается в качестве нижней границы числа шагов, которое выполняется при вычислении/(м).
Эта более низкая граница используется, чтобы показать, что любой процесс вычисления f не лучше, чем описанный выше при фиксированных числах и и и.
Доказательство этой теоремы следует плану, предложенному М. Арбибом; здесь оно сделано более ясным и сокращено. Определяется критическая общерекурсивная функция Ци, и, Z), такая, что если ф/ всюду определена, то ф^и,«, z) всюду определена и принимает значения 0 и 1. Затем доказываются:
Лемма 1. Если ф/ всюду определена, то для каждого и существует v, такое, что фци,п = Ф/(о, о, z).
Лемма 2. Если ф/ всюду определена и если мы определим ^^^^^ то для каждого индекса i для f Фу (az) >ф/(az— z) для почти всех п.
Лемма 3. Существует общерекурсивная функция фг, такая, что для всех и и и имеем — u+l)^ Цп, Фци^п)) для почти всех п.
Далее для каждого индекса I для /=фцо, о,;>и для почти всех az
Ф, (az) > ф/(az — Z)(лемма 2),
^r (az, Ф^ (f+Iiу, Z) (az)) для всех и (полагая u = i+l в лемме 3),
= г (az, Фу (az)) (по лемме 1, выбирая и таким, что f = Фщ+i.y, п = Ф/)>
отсюда следует теорема. Что и требовалось доказать.
Обратимся теперь к построению / и доказательству этих трех лемм.
Построение L Функция фци, v, ц определяется в терминах множества (рис. 1):
Cuv = {ф£ (m) I (m < v и k ^ т) или (atz ^ v и и ^ к ^ т)}.
Вычисляем ^ци,тздЛп^ так:
если и<и, полагаем фг(и, v, z) W =Фг(и, u,z)(^) и используем (2).
если и > и, поступаем так:
вычисляем ф/(0), ..., ф/(Аг), если п<и, но при п^и вычисляем только ф/(0), ..., фг (az — и). Если все они не определены, считаем, что ф^и,у,ц(п) не определена. В противном случае переходим к (Р).
(Р) Помечаем все ф/Jaz) в пересечении Си1) и п-ro столбца, такие, что Ф^(Аг) ^ф;(А1 — к). Если нам ничего не удалось пометить, полагаем ф^и, d, z)(^) равной нулю. В противном случае переходим к (у).
(у) Вычеркнем первое вхождение ^W в столбец гц такое, что ^kW помечена и обладает тем свойством, что все ф/Дт), т<п, не вычеркнуты. Если нам не удалось ничего вычеркнуть в пересечении Cuv и п-го столбца, полагаем Фци, v, oW равной нулю. В противном случае переходим к (6).
С ии - заштрихованная область
Рис. 1.
Если ф^(п) вычеркнута, полагаем
{
0, если ф^(п)^=0,
если ф^(п) = 0.
Из этого определения следует, что если ф/ определена всюду, то ф/(и, vj) определена для всех и и v.
Доказательство леммы 1. В вычислении ф^0, о, о число описанных выше вхождений в строку и, которые вычеркиваются, должно быть конечным, так как строка содержит самое большее одно вычеркнутое вхождение. Пусть столбец и располагается непосредственно справа от самого правого вычеркнутого описанного выше вхождения в строку и. Тогда из рисунка ясно, что ф<(о, о, л(^) =Фци,у, о(^) для всех п. Что и требовалось доказать.
Доказательство леммы 2. Пусть I — некоторый индекс для f; доказывая от противного, предположим, что ФДп) ^ •С^п—I) для бесконечно многих п = пх, п^ пз, ... . Тогда, очевидно, в вычислении ф/(о, о, о(п) Чн^ь) была вычеркнута для некоторого к, и поэтому ф^о, о, iAnk) ^фД^), откуда следует, что f (ла)=£ф(яа). Противоречие. Что и требовалось доказать.
Доказательство леммы 3. Выберем некоторое рекурсивное взаимно однозначное отображение натуральных чисел на множество всех /и-ок (т = 1, 2, 3 ...) натуральных чисел. Пусть
((а0ал» обозначает число, которое отображается («о,а«)- Определим
ввg^n, и, v, I, г) =g^n, и, v, I, г) =Ф/(а, т, о («)> если п ^ и + и и г = «Ф,(0)ФДп-ий), О в противном случае.
в
в
g^n, и, v, I, г) =
g^n, и, v, I, г) =
Учитывая свойство Л1-функции, мы видим, что g общерекурсивна, поэтому достаточно найти такую общерекурсивную функцию ф/, что для почти всех п
Ф,(п-и+ l^rVn, g(n, и, и, I, «ФДО), ..., ФДп-п)»)]. (3.1)
Определим р так:
рЦ, 0) = О,
n(i,z+l) = шах г [г + и, g(z + и, и, v, I, «Ф((0), ..Ф, (z))))J.
ОС и <2/олх
Функция р частично рекурсивна, поэтому существует общерекурсивная функция о, такая, что р^ц г) = Фащ(г) • Согласно теореме о рекурсии, существует индекс Z, такой, что Фа(/)(2) =ф/(г) для всех 2. Поэтому
Ф/ (г) = р (Z, г). (3.3,
Таким образом, Ф/(0) =p(Z, 0) =0. Теперь допустим, что ф/(п) определена для п^х. Рассматривая (3.2) и вспоминая (3.3), мы видим, что ф/(г+ 1) определена, так как g и г общерекурсивны, а из определенности ф/(и) для п ^х следует определенность Ф/(и) для п-^.х. Поэтому ф/ общерекурсивна.
Фиксируем и и у. Тогда для п ^ max [2п, н + у] имеет место у ^ п— и, и-^п— и, и поэтому, полагая в (3.2) х = п— и и i=U мы получаем (3.1). Что и требовалось доказать.
Для примера возьмем r^n, т) = 2т. Тогда теорема ускорения утверждает существование такой общерекурсивной функции f, что любому индексу Z для f соответствует такой другой индекс / для Д что ФДп)>2ф/ ^ для почти всех п. Поэтому она также утверждает, что индексу / для f соответствует такой индекс к для f, что ФДп)>22 ккп\ и т. д. К сожалению, теорема ускорения не даст эффективной процедуры для перехода от машины, вычисляющей Д к машине, делающей это более быстро. Такой эффективной процедуры и не может быть, как это показывает следствие 1.
Следствие 1. Пусть г — некоторая общерекурсивная функция, a f— соответствующая функция из теоремы ускорения.
Если г достаточно велика, то не существует общерекурсивной функции х, такой, что (1) х перечисляет только индексы f, (2) каждому индексу I для f соответствует такой индекс х (/) для f, что Фг(я)>г(^ Фк(?)(я)) для почти всех п.
Доказательство. Пусть л — общерекурсивная функция, обладающая тем свойством, что для каждого / существует бесконечно много п, таких, что л(п)=/. По 3™-теореме существует общерекурсивная функция о, такая, что
ФаЖ^Фф, №№)(")(ЗЛ)
для всех I и п. Для этой а, как легко видеть, существует общерекурсивная функция g, такая, что
Фа (Z) (п) = g (tl, Z, Ф, (Л (л) ), Фф/ (л („)) (п)), и поэтому существует общерекурсивная функция h, такая, что Фа W (га) <h(n, Фф. (Л (П)) (га)) + Л (z, Ф, (л (п)))(3.5)
для всех i и п. Пусть х = фд перечисляет только индексы функции t Тогда Ф<ри(яОг))(га) =фи(л(п))(га), и поэтому по (3.4) фа№(га) = = фи(Л(п))(га);таким образом, о(й) есть индекс для V По (3.5)
Фада (га) < h (/г, ФИ(„(„)) (га)) + h (k, Фй (л (/г)))(3.6)
для всех п. Для каждого / и бесконечно многих п п(п) = j, и поэтому для каждого / и бесконечно многих п
Фа(к) (га) < h (п, Фх(/) («)) + /? (6, Фь (/)).(3.7)
Но h, согласно (3.5), не зависит от г. Поэтому, не изменяя К, можно выбрать г настолько большим, насколько это нужно. В частности, пусть г — любая функция, которая удовлетворяет неравенству г^п,т^ *> n + h^n, т) для всех пит. Если мы положим ^ = Фх(д(^), то (3.7) дает
Фа(« (га) < Г Vn, ФХ(/) (га)) - га + h (k, Ф* (/)) для бесконечно многих п. Отсюда в свою очередь следует, что для каждого / существует бесконечно много п, таких, что
Фа(« (га) < Г Qi, Фх(/) (/г)).
Как показано непосредственно перед (3.6), / = фа№), поэтому получено противоречие с частью 2 этого следствия. Что и требовалось доказать.
В отношении r-ускорения (Ф?(п) >г(п, ф^п^^ можно предположить, что г должна быть чрезвычайно маленькой функцией по сравнению с Ф7. Следующая теорема утверждает, что в действительности г может быть также велика, как и Ф;.
Теорема 6 (сверхускорения). Пусть g — общерекурсивная функция. Тогда существует общерекурсивная функция f, принимающая значение 0 и 1 и такая, что (1) если i— индекс для f, то Фг(л)>£(и) для почти всех п\ (2) каждому индексу I для f соответствует такой индекс j для f, что ФД/г) >ФДФДл)) для почти всех п.
Доказательство. Доказательство этой теоремы сходно с доказательством теоремы ускорения, поэтому оно не приводится подробно, а только намечается. Доказательство основано на следующей лемме.
Лемма. Существует последовательность {pJ7=o монотонно возрастающих общерекурсивных функций р8, такая, что
для каждого s и почти всех п р8^>§кпУ->
для каждого s и почти всех п p^n^p^lj^nY;
для каждого s и всех п р8^>- p^xW-
Доказательство этой леммы предоставляется читателю.
Чтобы вычислить f(n), вычеркнем первый невычеркнутый элемент фг-, который принадлежит множеству {фо(^), •.фп(^)}
и сигнализирующая функция Фг которого обладает свойством ФД/i) ^pi^Y Затем полагаем f(м) + фг(^)• Отсюда следует, что если I — индекс для Д то для почти всех п
ФД«)> рДп\(3.8)
Согласно лемме, piW>gW Для почти всех п; таким образом, часть 1 теоремы доказана.
Чтобы вычислять Цп) более быстро, достаточно зафиксировать число и и для достаточно больших п просматривать только множество {фи (я), •••> Фи (я)}. Может быть определено число шагов, необходимых для вычисления f(n) указанным способом; может быть показано с помощью части 3 леммы, что существует общерекурсивная функция h, которая не зависит от последовательности {ps} и такая, что машина, вычисляющая f(n) указанным путем (т. е. просматривая множество {фи(я), ..., Фп(^)}), делает меньше чем И\щ рикпУ шагов для почти всех п. Это означает, что для каждого числа и существует машина Zj, которая вычисляет f так быстро, что для почти всех п
h^n, рц^^ФДпУ(3.9)
Так как функция h не зависит от выбора последовательности VpsY функция g может быть сделана в лемме настолько большой, что ри_\ (м) >h(n, ри^пУ Для почти всех п. Затем, если взять ц = / + 2, это дает для почти всех п
Pi+i(n)>h(n, р1+2(п)).(3.10)
Отсюда следует, что если 2г вычисляет f, то для почти всех п
Ф< W> Pi №>Pi+\lPwW>>Pi+i (h(n, pi+2(n)))Ф< W> Pi №>Pi+\lPwW>>Pi+i (h(n, pi+2(n)))>pi+t^jW), где f = Vi>/г(Ф/(п), р<+2(Ф/(п)))>Ф/(Ф/(п)), где / = ф/>pi+t^jW), где f = Vi>/г(Ф/(п), р<+2(Ф/(п)))>Ф/(Ф/(п)), где / = ф/(ПО (3.8)),(лемма, часть 2),(по (3.10) и тому факту, что р/+1 — монотонно возрастающая),(п = / + 2 в (3.9)),(по (3.10)),(w = Z + 2 в (3.9)),(ПО (3.8)),(лемма, часть 2),(по (3.10) и тому факту, что р/+1 — монотонно возрастающая),(п = / + 2 в (3.9)),(по (3.10)),(w = Z + 2 в (3.9)),
Ф< W> Pi №
>Pi+\lPwW>
>Pi+i (h(n, pi+2(n)))
Ф< W> Pi №
>Pi+\lPwW>
>Pi+i (h(n, pi+2(n)))
>pi+t^jW), где f = Vi
>/г(Ф/(п), р<+2(Ф/(п)))
>Ф/(Ф/(п)), где / = ф/
>pi+t^jW), где f = Vi
>/г(Ф/(п), р<+2(Ф/(п)))
>Ф/(Ф/(п)), где / = ф/
(ПО (3.8)),
(лемма, часть 2),
(по (3.10) и тому факту, что р/+1 — монотонно возрастающая),
(п = / + 2 в (3.9)),
(по (3.10)),
(w = Z + 2 в (3.9)),
(ПО (3.8)),
(лемма, часть 2),
(по (3.10) и тому факту, что р/+1 — монотонно возрастающая),
(п = / + 2 в (3.9)),
(по (3.10)),
(w = Z + 2 в (3.9)),
что и требовалось доказать.
СЖИМАНИЕ
Следующая теорема, которая сходна с теоремой Рабина [5], доказывает существование сколь угодно сложных функций, принимающих значение 0 и 1. Это напоминает теорему 1, но этот результат выходит за рамки теоремы 1 в трех важных направлениях. Если теорема 1 утверждает, что существуют функции ЦпУ принимающие значения 0 и 1 и делающие больше чем g(n) шагов при вычислении для бесконечно многих п, то следующая теорема утверждает то же самое для почти всех п. При этом от g и f требуется лишь частичная рекурсивность вместо общей рекурсивности. Наконец, доказывается рекурсивность у, которая отображает индексы функций g в индексы функций Д Теорема 7 не является тривиальным обобщением, и теорема сжимания существенно опирается на нее, особенно на факт существования у.
Терема 7. (1) Каждой частично рекурсивной функции g соответствует частично рекурсивная функция f, принимающая значения 0, 1, с той же областью определения, что и g, и такая, что если j— любой индекс дляф, то Ф^(п)> g(n) для почти всех п. (2) Существует общерекурсивная функция у, которая переводит индекс любой функции g в индекс для соответствующей функции f.
Доказательство. Если заранее известно, что g общерекурсивна, то для вычисления f служит очень простая процедура. Для того чтобы вычислить Дм), вычеркнем первый не- вычеркнутый элемент ф^, который принадлежит множеству {фо(я), •Фп(^)} и сигнализирующая функция которого обладает свойством ФДм) ^g^nY Затем полагаем Дп) 7^фДм).При
таком способе построения f(n) делается отличной от тех функций (pj, для которых ^An^^6knY поэтому должно оказаться, что если к есть индекс для f, то ФДп) > g(n) для почти всех п.
Эта процедура для вычисления f(n) требует, чтобы было известно, какие функции в множестве {фо, • • •, ф4 были вычеркнуты в процессе вычисления f(0), ..., ^п—0- Поэтому для вычисления f(n) по этой процедуре необходимо вначале вычислить f(0), затем /(1) и т. д. до ^п—1). Это достаточно легко, если g всюду определена, но если это не так, g^m") может быть не определена для некоторого т, а тогда также должна быть не определена f(m), причем может не существовать способа выяснения, что f(m) не определена. Если пг<гц это делает невозможным вычисление f(n). Чтобы обойти эту трудность, мы будем вычислять f(n) так, что сначала не обязательно вычисляются значения от f(0) до f(n — 1). Идея заключается в перечислении в определенном порядке всех пар неотрицательных целых чисел так, что для любых неотрицательных целых пит пара (м, т) будет в конце концов получена.
После получения любой пары (м, т) возьмем индекс I для g и определим, имеет ли место Ф^п)=т или нет. Это может быть сделано эффективно, если учесть свойства функции меры вычислений М. Если ФДп) + т, переходим к следующей паре в списке. С другой стороны, если ФД/г)=т, вычисляем f(n) так: вычеркиваем первый элемент ф^, принадлежащий множеству {фо, • • •, фи}, который не был вычеркнут при перечислении пар до данной пары (/г, т) и сигнализирующая функция Ф7 которого обладает свойством ФД/г) ^gVnY Возможно, ни один элемент ф^- не вычеркивается. Если это так, полагаем f(n) =1. С другой стороны, если ф^- вычеркивается, полагаем f (м) ^фД/г). Это определяет f.
Доказательство следствия 1 теоремы 8 требует весьма подробного описания приведенной выше конструкции f. Это описание дается ниже и может быть при желании опущено при первом чтении.
Процедура перехода от индекса i для g и числа п к значению /(п) такова:
Прежде всего вычисляем g^n") (£ = фД. Если g^n?) не определена, полагаем, что Цп) не определена. Если g\n^ определена, Дп) также должна быть определена. При вычислении Дп) процедура исходит из того, что вычеркиваются все функции ф^, сигнализирующие функции Ф7 которых обладают тем свойством, что Ф^ ^g{n) для бесконечно многих п, а соответствующие пары (/, п) присоединяются к списку L. Список L растет по шагам, причем на каждом шаге к L присоединяется не более одной пары (/, nY Рост L на шаге х описан ниже. Рекурсивная
кодировка, с помощью которой N X N отображается на Л/, использована для того, чтобы переписать х в виде (р, 9) = х.
Шаг х = ^р,д\ Если Ф^р)^^ (£ = Фг), то пропускаем шаг х и переходим к шагу х+1. С другой стороны, если ф^р)=д, то вычеркиваем первую невычеркнутую функцию фДр), если найдется некоторая функция, которая принадлежит множеству {фо(р), ..., фр(р)} и сигнализирующая функция которой такова, что Ф^р) ^ g(p\ Вычеркнуть фДр) означает добавить (/, р) к списку L. После вычеркивания фДр) переходим к шагу х+1.
Далее, чтобы вычислить f (п), просмотрим сверху вниз список L для пары (s, п) кончая п. Это соответствует функции ф5, для которой Ф8(п) ^-gW. Если такая пара (s, п) существует, полагаем f(^) ^фД^)- С другой стороны, если (s, п) не встречается в L ни при каком s, полагаем f(n)=l. Отметим, что с помощью эффективной процедуры можно определить, встречается или нет в списке L пара (s, п) при определенном s. Это происходит в силу того, что пара (s, п) может встретиться только на шаге (м, т), при котором ФДп) определена и равна т.
По построению если / — любой индекс для /, то Ф;(^)>§(^) для почти всех п. Отсюда непосредственно следует часть (1) теоремы. Часть (2) вытекает из доказательства (1), так как это доказательство указывает, как построить f для каждой g: доказательство (1) дает процедуру для перехода от индекса I для g и числа п к значению f (п). При фиксированном i машина, которая выполняет эту процедуру, вычисляет f(/i), а индекс этой машины, который легко определить, есть требуемый индекс у(0 для f; ч. т. д.
Эта последняя теорема используется в качестве леммы в теореме сжимания, которая излагается далее. Фактически для всех машин и кодировок теорема сжимания дает верхнюю и нижнюю границы числа шагов, необходимых для вычисления функции f(n), при этом нижняя граница является частично рекурсивной функцией З^п), а верхняя граница — общерекурсивной относительно 3 функцией /г(лг,^(/г)).- В дополнение указывается любопытная связь между мерами вычислений и границами сложности. Эта связь становится более ясной после следующего определения.
Определение. Пусть Л— общерекурсивная функция трех переменных, принимающая значения 0 и 1 и обладающая тем свойством, что для каждых i и п существует не более одного т, такого, что Л^п.т^Х. Положим SiW равным единственному т, если существует т, такое, что ^(t, п, m) = 1, и пусть Зг^ не определена, если такого т не существует. Множество
(S^ так определенных частично рекурсивных функций называется измеренным множеством.
Пример 1. Измеренное множество функций есть множество {Ф?} всех сигнализирующих функций.
Пример 2. Измеренное множество функций {S^, которое включает функции, вычислимые в реальное время [Ямада, 10], определено так:
[ фг (п\ если qpf (п) определена и Ф, (n) < /<р, (n\ (я) = 1
(не определена в противном случае.
Пример 3. Измеренное множество не может включать всех общерекурсивных функций. Для того чтобы показать это, предположим, рассуждая от противного, что {Si} содержит все общерекурсивные функции. Пусть функция f определена так:
( 0, если о41^п, п, 1) = 1, т. е. если ^п(/г)==1,
f W 1 1
( I в противном случае.
Функция f общерекурсивна, так как общерекурсивна Л. Но f^{Si}, так как если f = Si, то f(z) ^Ф^ДД = \^f(z) = I, что противоречиво.
Теорема 8 (сжимания). {Si} есть измеренное множество фф существует общерекурсивная функция h, такая, что имеет место следующее*, каждой частично рекурсивной функции Si соответствует частично рекурсивная функция f, принимающая значения 0 и I, с той же областью определения, что и Si, и такая, что (I) если / — любой индекс для f, то Si{n) <Ф^п) для почти всех п*, (2) существует такой индекс к для f, что Ф/Д/г) < <h(jr, SiW) для почти всех п; (3) существует общерекурсивная функция т, которая отображает индекс I для любой Si в описанный выше индекс к для соответствующей f.
Доказательство. =^>: существует общерекурсивная функция g, такая, что ^г = Ф^(г> для всех z. Доказательство существования функции g сходно с проведенным в теореме 2 и поэтому предоставляется читателю.
Пусть у—функция из теоремы 7, и пусть f^^W Тогда для каждого индекса / функции f теорема 7 гарантирует, что
Ф/ W>^m («)( = ^iW)-
как в (I). Теперь положим
[ Фм^(оМ> если ^^п} = пг, т. е. если а<{ц п, т}=\, р (z, п, т) = < п
( 0 в противном случае.
Определим h(n + m) = \ +maxp(t, п, т). Тогда h общерекурсив- i < п
на и к(п,8^(п^>Ф^Ап>) Для почти всех п, что означает, что так определенная h удовлетворяет (2). Что касается рекурсив- ности тв (3), функция т=у£ отображает индекс I для ^ в нужный индекс у£(0 для f. Этим завершается доказательство в прямом направлении.
<=: Для доказательства того, что {SFJ есть измеренное множество, нужно показать, что Л общерекурсивна. Доказательство того, что Л^ц п, т) общерекурсивна, заключается в процедуре для ее вычисления, которая использует тот факт, что для каждого i и почти всех п
h (п, St (га)) > Фт № (га) > St <п\
Чтобы вычислить Л^цп.ту определим сначала верно ли Фт(1)(^) <h(n,m). Это можно определить, так как h общерекурсивна. Если ФТ(г)(^) ^ /г(п, т), то ^Д/г)¥=т; поэтому полагаем Л^Ц гц т) =0. Если Фтщ(/г) <Цп, т^ то Фтщ(^) определена, и так как Фти^^^т^Л^ то определена и Si^ny В этом случае возможно определить, имеет ли место ^Д/г)=т, и поэтому решить, надо ли полагать Л^цп.т) равным 0 или 1. Поэтому Л общерекурсивна. Что и требовалось доказать.
В [2] Хартманис и Стирнз доказали красивую специальную форму этой теоремы. Они имели дело с многоленточными машинами, которые печатают произвольное конечное число символов. Будем полагать, что эти машины используют двоичную кодировку входных и выходных данных. Положим также, что (S^ есть множество функций, вычислимых в реальное время. Наконец, будем понимать Ф^ как действительное число сдвигов, которое делает t-я машина на своих лентах. При этих условиях теорема гласит, что существует /г, приблизительно задаваемая так: h^n.m^ =т?. К примеру, пусть ^(/г) =22”. Тогда граница максимального числа шагов, необходимого для вычисления соответствующей f (f = q)i), задается так:
Это означает, что f(n) может быть вычислена на многоленточной машине менее чем за 22^+1 шагов, но не может быть вычислена менее чем за 22 шагов вне зависимости от того, как много дополнительных символов, лент или состояний добавлено к машине.
Наше доказательство теоремы сжимания конструктивно. Поэтому оно может быть использовано для того, чтобы найти h для любого класса машин и любого измеренного множества V$iY Первое следствие — случай применения этой теоремы. Его
доказательство прямо следует из доказательства теоремы 8. Таким образом иллюстрируется польза теоретических границ, данных здесь.
Следствие 1. Пусть {ZJ— класс одноленточных машин, которые могут печатать и стирать, алфавит которых состоит из символов b [пусто), 0 и 1 и которые используют двоичную кодировку входных и выходных данных. Пусть SiW = ф^п) —число шагов, которое делает Z^ на входе п. Тогда функция h из теоремы 8 общерекурсивна и ее значения определяются так*. h[n,m) <[п + т,у. Это означает, что каждой сигнализирующей функции Ф2- соответствует частично рекурсивная функция f, принимающая значения 0 и 1, с той же областью определения, что и Фй и такая, что (1) если j есть любой индекс для f, то для почти всех п ФДп) <Ф7(п), (2) функция f имеет индекс т(0, такой, что для почти всех п Ф1[п) <Фт(^[п) <\пЛ-Фг[п)У.
Доказательство. Так как Л=М — мера вычисления, то она общерекурсивна. Поэтому, согласно теореме сжимания, существует функция Л и она общерекурсивна. Доказательство теоремы 8 дает набросок для определения функции h, указанной в этом следствии. При восполнении деталей этого доказательства получается ограничение на h. Восполнение деталей этого доказательства не трудное, но утомительное. Прежде всего функция h определяется в доказательстве теоремы 8 через функцию
f Фт(0 (/г), если Ф,(/г) = т, р у, п, m) = \ п ( 0 в противном случае, где г представляет функцию yg из этого доказательства. Далее
h [п, т) = 1 + max р [I, п, т) ^
^ 1 + шах (ФтЩ) [п) 11 ^ п и Фг [п) = т\
Итак, проблема нахождения верхней границы для h[n, т) сводится к нахождению верхней границы для ФтоДя). Для того чтобы упростить вычисления, сначала находится верхняя граница для Фт(й(^), которая равна числу шагов, необходимых для вычисления Цп) на 10-ленточной машине. Затем значение Фт(Д^) определяется по значению ФТ^[пУ Хартманис и Стирнз [2] показали, что ФТ(ц(п) ^ [Фт(ц(^)]2 в случае одноленточных и 10-ленточных машин, печатающих и стирающих произвольно большое количество символов. Машины, рассматриваемые в этом следствии, могут, однако, печатать и стирать только пустой символ, 0 и 1, и по этой причине на самом деле выполняется
отношение Фт(г)(^) ^ 10[Фт(ц(^)]2, где 10 соответствует 10 лентам 10-ленточной машины.
Вычисление f(n) описывается в доказательстве теоремы 7. Далее следует повторение этап за этапом части доказательства, касающейся конструкции, вместе с утверждениями, заключенными в скобки, которые дают число шагов, необходимое для проведения каждого из этапов вычисления. Символ с всюду используется для обозначения константы. Чтобы вычислить f(n):
Вычислим Фг(м)=т и перейдем к шагу 0 = (0,0). Число шагов, необходимое, чтобы сделать это, составляет [а<О + + с log п + cm log т\ Далее индуктивно
На шаге х = (р, q^
Определим, имеет ли место ФДр)=р [р} <1 c-Vc logp + + cq log q\.
Предположим, что Фг(р)=р.
Выделим индексы sh ..., st всех невычеркнутых функций, принадлежащих множеству (ф0(р), ..., фР(р)} [02^с(р + О (р + + 9) (log (р + 9))]-
Выберем наименьший индекс sk) такой, что ®sk(p)<q, и присоединим (s^, р) к списку. Нам требуется определить следующие величины:
s(*) = ^-число шагов, необходимое для того, чтобы напечатать программу машины Zf, р
Цр^а^з (Z) [г(р) < ср2 log р];
1=0р
d(p) = db где d/ФДп) есть число шагов, необходимое для 1=0
того, чтобы смоделировать вычисление Zl на входе п [d (р) < ср (log р)2];
№з < г (р) + cd (р) (д log р) + cpq\.
Перейдем от шага п = (р, р) к шагу п + 1, если {p,q} + + <п, т^ [у ^ с log р + с log q + с].
Если ни одна из функций ФДп) не вычеркнута на шаге {п, т\ полагаем f(n)=0. В противном случае Ф8(п^ вычеркивается на шаге (м, т} и поэтому полагаем f (м) = 1— (ps(n) [д^с].
Общее число шагов, требуемых для вычисления f^ на 10-ленточной машине, составляет
{
n-vm п+т— q4
«+Sq 2q Су + Pi) + №2 + Рз) Ip+^n+m • О + л + m)+ 6 |< < с + с [log (1 + n + т)]3 • (1 + n + т)3.
Но ФТ(г)(^) <Ю [ФцгДя)]2. Поэтому допустимая граница для h такова: h^n, т) < (п + т)7. Что и требовалось доказать.
Определение. Утверждение «существуют сколь угодно большие общерекурсивные функции г со свойством А» означает, что каждой общерекурсивной функции s соответствует г со свойством А такая, что r(zz) >5^ для всех п. К примеру, существуют сколь угодно большие сигнализирующие функции (теорема 4).
Определение. Сказать, что все достаточно большие общерекурсивные функции г обладают свойством А, значит сказать, что существует общерекурсивная функция s, такая, что если r^>s^ для всех п, то г обладает свойством А. К примеру, все достаточно большие общерекурсивные функции г делают по крайней мере 2п шагов при вычислении для почти всех п (это следует из теоремы 3 и того факта, что обычная машина Тьюринга, сигнализирующая функция которой действительно считает число шагов, делает 2П шагов только для того, чтобы напечатать значение г(п)).
Следствие 2. Существуют сколь угодно большие общерекурсивные функции г и связанная с каждой г общерекурсивная функция f, принимающая значения 0 u 1, такие, что (1) если i есть любой индекс для f, то ф{(п)>г(п) для почти всех п; (2) существует индекс к для f, такой, что г(п+1)>Фк(п)>г(п) для почти всех п.
Доказательство этого следствия мы предоставляем читателю.
Можно предположить, что всем достаточно большим общерекурсивным функциям h соответствуют общерекурсивные функции f, такие, что (1) если i есть любой индекс для f, то h(n) <Фг(п) для почти всех п; (2) существует индекс к для f, такой, что К^ <Фк^ <h^h^n^ для почти всех п. Но это ложно, если нет некоторого условия, связывающего h и измеренное множество. Действительно, существует произвольно большая общерекурсивная функция И, такая, что для каждого индекса / или Ф3^ <h{n), или /г[/г(/г)]<ФД/г) для бесконечно многих п. К сожалению, функция может обладать этим свойством и в то же время может иметь место слабая форма этого сжимания. Можно показать, что каждой достаточно большой общерекурсивной функции h соответствует общерекурсивная функция f, такая, что (1) если I есть любой индекс для f, то для бесконечно многих п h{n) < ФДп); (2) для некоторого индекса к функции / имеем h^ < Ф/Д/г) < /г[/г(п)] для бесконечно многих п.
Чтобы доказать это утверждение, докажем, во-первых, что каждой достаточно большой общерекурсивной функции h соответствует индекс /, такой, что h(n) < Фз(п) < НУЦп)] для бесконечно многих п. Далее, используя теорему сжимания, получаем нужный результат.
ЛИТЕРАТУРА
Arbib М. A., Blum М., Machine dependence of degrees of difficulty, Proc. Amer. Math. Soc., 16, № 3 (June 1965), 442—447.
Hartmanis J., Stearns R. E., On the computational complexity of algorithms, Trans. Amer. Math. Soc., 117, № 5 (May 1965), 285—306. (Русский перевод: Кибернетический сборник, новая серия, вып. 4, 1967.)
Н а г t m a n i s J., Stearns R. E., Computational complexity of recursive sequences, Proc. 5th Annual Synip. on Switching Theory and Logical Design, Princeton, N. J., 1964.
Myhill J., Linear bounded automata, WADD Tech. Note 60-165, U. of Pennsylvania, Rep. № 60-22 (June 1960).
Rabin M. O., Degree of difficulty of computing a function and a partial ordering of recursive sets, Tech. Rep. № 2, Hebrew U., Jerusalem, Israel, April 1960.
Rabin M. O., Real time computation, Israel I. Math., 1 (1963), 203—211. (Русский перевод см. в наст, сб., стр. 156—167.)
Ritchie R. W., Classes of predictably computable functions, Trans. Amer. Math. Soc., 106, № 1 (1963), 139—173. (Русский перевод см. в наст, сб., стр. 50—93.)
Rogers Н , Jr., Godel numberings of partial recursive functions, J. Symbolic Logic, 23, № 3 (1958), 331—341.
Rogers H., Jr., Recursive functions and effective computability, McGraw- Hill, New York, 1967; готовится к печати русский перевод.
Yamada Н., Real-time computation and recursive functions not real-time computable, IRE Trans., EC-11 (1962), 753—760. (Русский перевод см. в наст, сб., стр. 139—155.)
Cobham A., The intrinsic computational complexity of functions, Proc 1964 Int. Congress on Logic, Methodology and Philosophy of Science, North-Holland, Amsterdam, 1965, 24—30.
Cooke S. A., On the minimum computation time of functions, Bell Labs Rep. BL-41, 1966.
Wino grad S., On the time required to perform multiplication, IBM Res. Rep. RC-1504, 1966 (Русский перевод: Кибернетический сборник (новая серия), вып. 6, 1969.)
ОБ ОБЪЕМЕ МАШИН ^
М. Блюм
ВВЕДЕНИЕ
Под машинами мы подразумеваем машины Тьюринга, идеализированные программы вычислительных машин или любые другие идеализированные устройства для вычисления рекурсивных функций. Машины и их объем должны удовлетворять аксиомам разд. 1. В разд. 3 введен общий ряд аксиом для вычисления по шагам. Они определяют, какие определения «шага» вычисления допускаются. Все эти аксиомы так необычайно слабы, что им удовлетворяют любая разумная модель вычислительной машины и любое разумное определение объема и шага.
Все наши примеры относятся к специальному классу машин й специфическому понятию объема и шага: это класс одноленточных двухсимвольных машин Тьюринга, работающих в унарной системе счисления и определяемых множеством четверок (команд); Дэвис [5]. Объем машины Тьюринга полагается равным числу команд, определяющих машину. За один шаг вычисления принимается сдвиг ленты на один квадрат (влево или вправо), или один акт печати, или одно стирание.
В отличие от примеров наши теоремы относятся к любым устройствам и любым мерам объема и шага вычисления, которые удовлетворяют аксиомам.
Натуральные числа суть N = 0, 1, 2, ... . Пусть (q^) с i, пробегающим N, обозначает рекурсивно перечислимую (р. п.) последовательность всех частично рекурсивных (ч. р.) функций одного переменного. Пусть (ф^)» где к— фиксированное целое число, к >2, обозначает рекурсивно перечислимую последовательность всех ч. р. функций к переменных.
Определение (см. Роджерс [8]). Последовательность (фг) имеет допустимую гёделевскую нумерацию тогда и только тогда, когда она удовлетворяет теореме об универсальной машине Тьюринга и теореме об итерации.
9 Blum М., On the size of machines, Information and Control, 11, № 3 (1967), 257—265.
Теорема (об универсальной машине Тьюринга). Существует частично рекурсивная функция f, такая, что f(i,x)=^i(x) для всех i и х.
Теорема (об итерации). Существует рекурсивная функция s, такая, что ф? (х, у) = фъи х)(у) для всех I, х, у.
Теорема (Роджерса, см. [8]). Если две последовательности (ф^ и (фи) имеют допустимые гёделевские нумерации, то каждая из этих последовательностей является рекурсивной перестановкой другой, т. е. существует взаимно однозначная рекурсивная функция f: N -> N, такая, что цщ^ = фг- для всех i.
Эта важная теорема позволяет получить, как мы увидим далее, следствия, касающиеся объема машины.
Предпотожим, что каждая функция ф2- вычислима посредством некоторого множества команд М^ МЦ может быть машиной Тьюринга, программой идеализированной вычислительной машины или системой уравнений. Скажем, что последовательность (Л4г) имеет допустимую гёделевскую нумерацию, если таковую имеет (фг); далее мы везде будем предполагать, что (фО такова. Теорема Роджерса позволяет нам предполагать (так мы и сделаем без потери общности), что любые два класса машин (Л1г) и (Л) (оба с допустимыми гёделевскими нумерациями) упорядочены так, что Mj и Т^ вычисляют одну и ту же функцию фг-.
Аксиомы. Рекурсивная функция ||, отображающая натуральный ряд N (рассматриваемый как множество индексов) в N (рассматриваемый как множество объемов), называется мерой объема машин (при этом |t| называется объемом машины Мг) тогда и только тогда, когда существуют
самое большее конечное число машин любого данного объема и
эффективная процедура, позволяющая для всякого у определять, какие машины имеют объем у.
Предположим, что мы сравниваем машины из одного класса (Л1г) с машинами из другого класса (7\). Например, (Л^) может быть классом одноленточных двухсимвольных машин Тьюринга, тогда как (Л) может быть классом 10-ленточных 10-символьных машин Тьюринга. Следующее предложение показывает, что объем Mi приблизительно равен объему Т^. Это немедленно следует из теоремы Роджерса:
Предложение 1. Пусть ||м и ||т — две меры объема машин (М^ и (Ti) соответственно. Тогда существует такая рекурсивная функция g, что для всех i
Нм^^Шт (г. е. не может быть много больше чем Т^),
g\i\M^ \Цт (т. е. не может быть много больше чем М^.
Доказательство. Пусть g(x)—maxfg^x), g2(x)}, где gx определена так, что \Цм ^ §ЛЦт^ и g2 определена так, что g2 \i\м > |t|т. Для вычисления g\ (х) заметим, что множество {/[ |f|T = x} конечно и может быть эффективно указано Положим gx (х) = max{|t \м \i удовлетворяет \1\т = х}. Пусть g2^x) = = max{|i|т|^ удовлетворяет |Z|m = x}. Доказательство завершено.
Если Мг много меньше чем Mj, то тогда можно подозревать, что T^ меньше чем Tj. Это является содержанием следующего предложения.
Предложение 2. Существует такая рекурсивная функция h, что для всех ц j;
I 1м ^ I / Lw^l * It ^ h 11* It, 2) й | / Ui ^ I / Im I z‘It I / It-
Доказательство. Заметим сразу, что функцию g в предложении 1 можно сделать монотонно возрастающей, положив
g(x)= 1 + max{§](%), g2(x), g(x- 1)}.
Будем считать, что g монотонно возрастает. Пусть /i(x) = gg(x).
Если\i |м^|/\м, то |^т^^|^|м (согласно п. 2 предложения 1) <-g\j\M (в силу монотонного возрастания g) ^-gg\j\T (ввиду п. 1 предложения 1).
Если И\1\м^\]\м, то аналогично устанавливается, что gVW <gg\i\M = h\i\M<-\j\M <§\1\т, а поскольку g монотонно возрастает, то 1^|т^|/|т-
Машина Тьюринга может вычислять постоянную функцию ^п(х) = п, запоминая п цифр ответа с помощью внутренних состояний. Вообще говоря, такая машина будет чрезвычайно большой. Например, если п = 1010, меньшая машина может дать на выходе 1010 при десятикратном умножении числа 10 самого на себя, а не повторением всех 1010 цифр. Мы докажем, что любая бесконечная р. п. последовательность машин содержит машины, объем которых может быть уменьшен подобным образом.
Теорема 1. 1) Пусть g— произвольная рекурсивная функция с бесконечным множеством значений (g перечисляет индексы бесконечной последовательности машин).
Пусть f— любая рекурсивная функция. Тогда существуют числа i, i^N, равномерные относительно х) f и g и такие, что
фг — (pg(j),
ЛП<1£(/) I (г е- ^г значительно меньше чем Mg^.
Пример. Если f(%) = 100х, то Mg^ в 100 раз больше чем Mi, хотя и Mi и Mg(j) вычисляют одну и ту же функцию.
Доказательство. Мы укажем способ определения чисел i и /, равномерных относительно f и g. Рассмотрим следующее множество команд:
«Для входов х и у сначала вычислить f\y\.
Затем вычислять g(0), g(l), ..до тех пор, пока не найдется /, такое, что f\y | < |g(/) |.
Тогда вычислить Ф^оэ(^) и выдать полученное число в качестве выхода».
Эти команды определяют частично рекурсивную функцию ф2(х,у), индекс г которой равномерен относительно f и g. По теореме' рекурсии1) найдется число /, равномерное относительно f, g и такое, что
уравнение 1: фД%) = Ф^(х, 0 справедливо для всех х.
Покажем, что число I обладает желаемыми свойствами.
Из условий 1, 2 следует, что можно найти число /, равномерное относительно f, g, которое удовлетворяет 4: f| f | <]g*(/) |.
Сначала находим число i, ддя которого мы показали, что оно является равномерным относительно f, g Затем сравниваем Л Л с 1^(0) |, |^(1) ь -• . до тех пор, пока не найдем /, удовлетворяющее 4. Для этого / (см. уравнение 1 и ранее указанные команды) выполняется условие 3: ф. (х) = ф^(х, i^^g^^x) для всех х.
Функция g является алгоритмической функцией, перечисляющей бесконечное множество машин. Конструктивность этого доказательства позволяет нам эффективно заменить функцию g на функцию g\ перечисляющую машины, которые по объему не больше, а иногда значительно меньше, чем соответствующие машины, перечисляемые g
Могут сказать, что, поскольку практически все вычислимые функции примитивно рекурсивны, нет необходимости в общей рекурсии для практических лелей. Однако теорема 1 дает практический аргумент в пользу )бщей р журсии: из нее следует, что существуют примитивно рекурсивные функции, наименьшая сложность которых (определяемая уравнениями) в примитивно
9 Теорема рекурсии гласит, что для всякой частично рекурсивной функции h существует целое число I, равномерное относительно h и такое, что q,i(x) = Мх> 0 для всех х.
рекурсивной форме значительно больше, чем их наименьшая сложность в общерекурсивной форме. Точнее говоря, предположим, что примитивная и общая рекурсии определены схемами, как у Дэвиса [5]. Объемом (сложностью) схемы объявим число входящих в нее букв. Тогда у каждой примитивно рекурсивной функции будет по крайней мере одно наименьшее представление в виде примитивно рекурсивной схемы. Множество всех таких наименьших представлений будет р. п., пусть их пересчитывает функция g. Полагая введенную выше функцию /(х) = п-х, по теореме 1 найдем примитивно рекурсивную функцию, наименьшая примитивно рекурсивная схема которой в п или более раз больше, чем ее наименьшая общерекурсивная схема. Методом теоремы 2 можно показать, что примитивно рекурсивная схема и намного более простая общерекурсивная схема требуют приблизительно одинакового числа шагов при вычислении одной и той же функции.
Если машина минимизирована в смысле объема, то часто случается, что меньшая машина требует больше шагов, чем исходная, большая по объему машина. Подготовляя путь для изучения этого обстоятельства, мы теперь введем аксиомы Блюма [10] для вычисления. Каждой частично рекурсивной функции фг- сопоставляется другая частично рекурсивная функция Фг-, называемая функцией, оценивающей сложность вычисления, или сигнализирующей функцией. Интуитивно ФДх) представляет число шагов, которые делает машина М^ с входом х, вычисляя фДх).
Аксиомы. Предположим, что последовательность всех ч. р. функций (фг-) имеет допустимую гёделевскую нумерацию. Пусть (Фг) обозначает любую р. п. последовательность (некоторых, но не обязательно всех) ч. р. функций. Скажем, что (Фг) является последовательностью сигнализирующих функций для (фг-) тогда и только тогда, когда
фД*) определена тогда и только тогда, когда определена ФДх);
существует рекурсивная функция R, такая, что
f 1, если ФЛх) = у, R(i,x,y) = \ п‘,
[ 0, если Ф1(х)^у
(т. е. график функции ФДх) должен быть рекурсивным).
Первая аксиома утверждает, что если фДх) определена, то число шагов, необходимых для ее вычисления, конечно, и, обратно, если число шагов, которые надо сделать, чтобы вычислить фДх), конечно, то функция фДх) определена. Мы будем записы-
вать «Фг(х)<оо» вместо «Фг(х) определена» и «ФДх) = оо» вместо «ФДх) неопределена». Вторая аксиома утверждает, что существует алгоритм для решения вопроса о том, заканчивает ли М^ вычисление с входом х за у шагов. Предикат R этой аксиомы аналогичен предикату Т Клини.
Заметим, что аксиомы 1 и 2 независимы: последовательность сигнализирующих функций, удовлетворяющих аксиоме 1, но не удовлетворяющих аксиоме 2, получится, если положить Ф^ = ф^ для всех I. С другой стороны, ФДх) = 0 для всех i, х удовлетворяет аксиоме 2, но не удовлетворяет аксиоме 1.
В следующих разделах мы везде будем предполагать, что (Фг) есть последовательность сигнализирующих функций для (ф2-). Функция R не будет нигде встречаться, хотя она неявно используется во всяком предложении вида «проверим, верно ли, что Фг (х) = у». Эта проверка осуществляется посредством вычисления R^x, у).
Следующая теорема, обобщающая теорему 1, показывает, что увеличение числа шагов, которое может иметь место при приведении машины, т. е. при переходе к машине меньшего объема, незначительно для тех функций, которые вычисляются достаточно сложно.
Теорема 2. Существует рекурсивная функция h, такая, что если
8— любая рекурсивная функция с бесконечным множеством значений;
f — любая рекурсивная функция,
то существуют I, jeN, равномерные относительно f и g и такие, что
фг=ф^(?)» ,
f\i\<\g(D I;
для почти всех х, т. е. для всех х, кроме, быть может, конечного числа, [ф^Дх) определена ^> Ф^х) h(x, Ф^^ (х))] (т. е. М^ не делает намного больше шагов, чем Mg^.
Замечание. Функция /г(х, у) = с(х + у), где с = const, подходит для класса машин Тьюринга, определенных во введении. Если эти машины Тьюринга имеют неограниченное число символов на ленте, то можно выбрать с=1.
Доказательство. Определим рекурсивную функцию г. Эта функция г обладает тем свойством, что для любых f, g, удовлетворяющих 1, 2, существуют целые числа i, j, которые определены фактически в доказательстве теоремы 1, и целое число w, такие, что
для всякого х если ф^)(х) определена, то г (w, х, фя0)(х)) = = Ф1(Х).
С помощью г определим рекурсивную функцию h\
А кх^ У) = max (г (ву, х, у) | w ^ х}, откуда следует, что для достаточно больших х
если ф^)(х) определена, то h (х, Og (/) (х)) ^ г ^w, х, Ф^ (/) (*) )•
Из (а) и (Ь) следует п. 5 теоремы 2.
Определение r^w, х, у\ Выберем некоторое фиксированное взаимно однозначное отображение N-^N X ... X N.
5 раз
Число w есть код пятерки слов (^ь .w5\
Пусть ^фшр ^ = фш2.Определим i с помощью f и g, используя алгоритм из доказательства теоремы 1. Это возможно, потому что этот алгоритм определяет i для любых ч. р. f, g, не обязательно удовлетворяющих 1, 2 (хотя / может быть неопреде- лено, если п. 1 и 2 не удовлетворяются).
Пусть теперь r^w, х, у) = ФДх), если выполняются следующие требования:
Ф^П^^з (так определяется f | ZI), w4
2®w2(fe) = ^5 (так определяются g(0), . ..,g(^4)), fe = 0
существует число /, такое, что j^w4 и f\i\ < |g(/) |,
для наименьшего /, удовлетворяющего (3), имеет место Ф^со М = У-
В противном случае положим r^w, х, у) =0.
Если (1) — (4) выполняются, то Фг- и Ф^) имеют одну и ту же область определения и Ф^д(х) определяется согласно (4). Заметим, что если f, g удовлетворяют 1, 2, то существует такое /, что |g*(/) I >ШЬ Поэтому существует w = (ауь w^, где ^ь ^2 суть индексы f и g соответственно, которые удовлетворяют (1) — (3). Для этого w выполняется равенство (а). Ч. т. д.
Можно показать, что теорема 2 становится неверной, если заменить в п. 5 выражение «для почти всех х» на «для всех х».
В то же время теорема 3, весьма сходная с теоремой 2, содержит в п. 5 выражение «для всех х».
Теорема 3. 1) Пусть g— рекурсивная функция, удовлетворяющая условию ф^О) = ф; для всех j.
Пусть f и h— рекурсивные функции.
Тогда для всякого i^N существует jeN, равномерное относительно f, h, g, I и такое, что
фг = ф^(Д.
/|^|<|5(/)1 kT- е- Mt значительно меньше чем Mgu^.
Для всех х из того, что фДх) определена, следует, что h^x, ФДх)) <Ф^-)(^) (г- е* ^г делает значительно меньше шагов чем Mg^.
Доказательство. Выберем любое число L Мы ищем такое /, для которого имеют место п. 3—5. Это / определяется следующим образом: определим частично рекурсивную функцию rkn,x,yV равномерную относительно f,h,g,i (равенство 1). По теореме рекурсии получаем рекурсивную функцию q, такую, что фд(п)(х) = г^п, х, q(n)) (равенство 2). Эта функция q равномерна относительно f, h, g, i. Наконец, мы покажем, как выбрать эффективно п так, чтобы / = q^ удовлетворяло п. 3—5.
Равенство 1. г^п,х,у^=п, если fVV^g^yH (т. е. если п. 4 не выполнен при y=j), и Цп, х, у) = ф2(х), если
!^< \8кУ)\ (п- имеет место для у = П,
фДх) определена,
А(х, ФДх)) < ©^(x)(п. 5 выполняется при у = /).
В остальных случаях г^п, х, у) не определена.
Функция г вычислима. Теорема рекурсии1) дает нам рекурсивную функцию q, равномерную относительно Д h, g, I, такую, что
Ф^ю W = r^ X, q(n)).
Исключая г, мы получаем
Равенство 2. ^qW^=n, если f\iV>\gq(jP) I, и Ф9(п)(^) = фг(*), если
Н^х^чМ I.
фДх) определена,
/Цх,ФДх))<Ф£д(п)(х).
В остальных случаях ф9(п)(х) не определена.
Как выбрать п> Заметим сначала, что f \i\'>\gq^ | означает, что существует машина, которая вычисляет константную функцию ф^п) (*) = Ф9(п) (х) = п и объем которой меньше некоторого фиксированного целого числа f|/|. Это невозможно для всех п, поэтому существует такое п, что \f^\<\gq^n>)\. Чтобы найти это значение п, мы просто проверяем ^(0), ^(1), 9 (2), ... до тех пор, пока не найдем п, для которого |/(01< <|Я?(П) I- При таком способе выбора п положим / = q(,n). Таким образом п. 4 удовлетворяется. Отсюда следует
Равенство 3. фДх) = фг(х), если
фг(х) определена,
Л(х,Фг(х))<Фя(Л(х).
В противном случае фДх) неопределена.
Выполняется п. 5. Предположим, рассуждая от противного, что фг (х) определена, но при этом
А (я, ®Ax)>>®gU^xY
Тогда r^xj) неопределена. Отсюда ф;(%) 4= ф^д(^). так как Ф^Дх) ^^(х, ФДх))< оо Это противоречит 2: ф^) = ф^-.
Выполняется п. 3. Если фДх) неопределена, то неопределена и Ф;(х) (равенство 3). Таким образом, Ф^д(^) = фДх) = фг(х). Если фДх) определена, то из доказательства п. 5 вытекает, что Н^х, ФДх)) < Ф^д(х)> т- е- (2), (3) в равенстве 3 удовлетворяются, а поэтому ф^)(х) = фг(х), Ч. т. д.
Любую алгоритмическую функцию g для уменьшения объема машин можно эффективно заменить на другую функцию g', которая дальше уменьшает объем машин и длину вычисления для бесконечного числа машин. Любопытно, что теорема 3 симметрична относительно объема машины (п. 4) и длины вычислений (п. 5).
ЛИТЕРАТУРА
Arbib М., Speed-up theorems and incompleteness theorems in automata theory, «Automata theory» (E. Caianiello, ed.) New York, 1966, 6—24.
Arbib M., Blum M., Machine dependence of degrees of difficulty, Proc. AMS, 16, № 3 (1965), 442—447.
C h a i t i n G., On the length of programs for computing finite binary sequences, /. ACM, 13, № 4 (1966), 547—569.
C h a i t i n G., On the simplicity and speed of programs for computing infinite sets of natural numbers, J. ACM, 16, № 3 (1969) 407—422.
Davis M., Computability and unsolvability, McGraw-Hill, New York, 1958.
Hartmanis J, Stearns R., On the computational complexity of algorithms, Trans. AMS, 117, № 5 (1965), 285—306. (Русский перевод: Кибернетический сборник (новая серия), вып. 4, «Мир», 1967, стр. 57—85.)
Minsky М., Size and structure of universal Turing machines using tag systems, «Recursive Function Theory, Proc, of the Symp. in Pure Mathematics» (Amer. Math. Soc. PubL), vol. V 229 237, 1962.
Rogers H., Jr., Godel numberings of partial recursive functions, /. Sytnb. Log., 23, № 3 (1958), 331—341.
Rogers H., Jr., Recursive functions and effective computability, McGraw- Hill, New York, 1967 готовится к печати русский перевод
Blum М., A machine-independent theory of the complexity of recursive functions, J. ACM, 14, № 2 (1967), 322—336. (Настоящий сборник, стр. 401—422.)
СОДЕРЖАНИЕ
Предисловие 5
КЛАССИФИКАЦИЯ РЕКУРСИВНЫХ ФУНКЦИЙ
А. Гжегорчик. Некоторые классы рекурсивных функций. Перевод А. А. Мучника9
Р. В. Ричи. Классы предсказуемо вычислимых функций. Перевод Н. Н. Ка- териночкиной . 50
Дж. П. Клив. Иерархия примитивно рекурсивных функций. Перевод С. (Г. Марченкова94
П. Акст. Итерация примитивной рекурсии. Перевод А. Гагарина . . .114
П. Акст. Итерация относительной примитивной рекурсии. Перевод С. Каллибекова118
Добавление редактора. О двух подходах к классификации рекурсивных функций 123
О СЛОЖНОСТИ ВЫЧИСЛЕНИЙ НА МАШИНАХ ТЬЮРИНГА
X. Ямада. Вычисления в реальное время и рекурсивные функции, не вычислимые в реальное время. Перевод В. Е. Фельдмана.139
М. Рабин. Вычисления в реальное время. Перевод В. Е. Фельдмана . 156
А. Розенберг. Языки, определимые в реальное время. Перевод М. Афанасьева и М. В. Ломковской168
Ф. К. Хенни, Р. Е. С т и р н з. Моделирование многоленточной машины Тьюринга на двуленточной. Перевод Ю. А. Бухштаба . . . .194
С. С. Раби, П. К. Фишер. Методы перевода и сложность вычислений. Перевод А. А. Мучника 213
Ф. К. Хенни. Вычисления на одноленточной машине Тьюринга с записью на ленте. Перевод Ю. Я. Брейтбарта . .223
Ф. К. Хенни. Вычисления на машинах Тьюринга со входом. Перевод А. Набибина249
П. С т р н а д. Распознавание на машине Тьюринга со входом. Перевод Ю. А. Бухштаба 271
Дж. Хартман и с Сложность вычислений на одноленточных машинах Тьюринга. Перевод А.А. Мучника 282
Р. Е. С ти р нз, Дж. Хартманне, П. М. Льюис II. Иерархии вычислений с ограниченной памятью. Перевод М. И. Кановича . . . . 301
П М Льюис II, Р. Е. Ст ир нз, Дж. Хартманне. Границы памяти для разрешения контекстно-свободных и контекстных языков Перевод М. И. Кановича . . . . . . .320
Дж. X а р т м а н и с. Об объеме памяти, необходимом для распознавания бесконтекстных языков. Перевод М. В. Ломковской 339
Д. X. Янгер. Распознавание и анализ контекстно-свободных языков за время п3. Перевод В. Е. Фельдмана344
Т. Касами. О времени машинного распознавания языков, порожденных линейными грамматиками Перевод В. Е. Фельдмана363
Добавление к статье Касами. Распознавание металинейных языков по методу Т. Касами369
М. Фишер, А. Розенберг. Решение задачи о пересечении начала координат в реальное время. Перевод В. Е. Фельдмана . . . .372
П. Фишер, А. Мейер, А. Розенберг. Счетчиковые машины и счетчиковые языки. Перевод В. Е. Фельдмана 380
М. Блюм. Машинно-независимая теория сложности рекурсивных функций. Перевод В. А. Козмидиади .401
М. Блюм. Об объеме машин. Перевод А. А. Мучника 423
*) См. лемму 4 и сноску 1 на стр. 58.
!) Это обозначение конечно, некорректно, так как сц зависит не только от f, но и от той машины Тьюринга, которую мы выбрали для вычисления f. Так что, когда мы пишем 0/(x)=g(x), мы подразумеваем, что существует машина Тьюринга, вычислившая Д для которой размер ленты, использованной при вычислении f(x), есть g^.
чается через gn^, пусть Xi = акак-\ ... а^о, где каждый аг есть либо 0,
либо 1, и пусть m есть минимум из gn^ и ^«(1)- Тогда
Init, (х,) - 2ЙП ^ . З8" ^-').. Pr (кГ ^. Рг (6 + 1Г (°") > КА + 1) !]т.
Итак, Initi (%i) > [(/(xi) + 1) !]т и, значит, не может лежать в ^2; ее длина
как функция от Xi не ограничена линейной функцией, и поэтому она не ле
жит даже в F\.
2) В оригинале J е Е (S)^2, !L — Прим, перев.
*) Результат, аналогичный изложенному выше, содержится в [6*] в более сильной форме: там построен пример такого множества, что распознавание принадлежности к нему для почти всех слов длины п требует времени порядка п2. Соотношению между числом состояний машины и временем ее работы на словах длины ^п, о котором говорит автор, посвящена работа [5*]. — Прим перев. и ре^. '
*) Аналогичный результат для машин со входом получен в [7*]. — Прим, персе и ред.
1) Hartmanis J., On memory requirements for contex-fiee language
познаваемы за время п3.
СОДЕРЖАНИЕ
Библиотека „Кибернетического Сборника»