Файл: Трахтенброт, Б. А. Алгоритмы и вычислительные автоматы.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 19.10.2024

Просмотров: 121

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

принципиальный вопрос: верно ли, что среди

алгоритми­

чески

разрешимых

проблем

существуют

сколь угодно

сложные

проблемы?

 

 

 

 

20.1.

Уточнение постановки вопроса. Попытаемся уточ­

нить этот

несколько

расплывчатый вопрос,

а

вместе с тем

и разъяснить, в каких терминах

мы пожелали

бы получить

ответ

на

него.

 

 

 

 

Допустим, что проблема, решаемая на машине Тьюринга 3J?, состоит в вычислении значений некоторой числовой функ­ ции ф (п) при /1=1, 2, 3,... Мы уже знаем (см. п. 11.3), что такая функция может оказаться очень быстро растущей. Вспомним, например, функцию ср, принимающую для аргу­ мента п значение З 2 ' (п этажей!), хотя, конечно, и такой внушительный рост может быть превзойден. Если значения аргумента и самой функции записываются унарно, то для любой машины Ш, вычисляющей ф, Тэд (п) будет не меньше, чем ф (/г); ведь машине потребуется такое коли­ чество тактов уже только для того, чтобы записать резуль­ тат— ф (п) палочек. В этом смысле, вычисляя быстро рас­ тущие функции, мы уже столкнулись со сколь угодно слож­ ными проблемами. Это положение сохранилось бы и в том случае, когда числа записываются в какой-нибудь позицион­

ной системе счисления, например в десятичной,

ибо

если

Ф (п) очень быстро растущая функция,

то и log1 0

ф (п)

(чис­

ло десятичных

цифр в записи числа

ср (п)) также

очень

быстро растет.

Однако

примеры такого рода

вызывают

некоторую обоснованную

неудовлетворенность.

Ведь в по­

добных ситуациях много времени тратится машиной на за­

пись громоздкого

результата,

хотя

может

быть процесс

его получения и вовсе не такой

уж

сложный. Более убе­

дительными были

бы примеры,

в

которых

сам результат

не громоздок (результирующее слово короткое), а значит почти все время тратится машиной на вычисление резуль­ тата. В связи с этим ограничимся рассмотрением лишь проб­ лем, заключающихся в распознавании свойства исходных данных; в этой ситуации решение может быть дано в виде однобуквенного слова «1» (да) или «0» (нет). (Пользуясь терминологией, употребляемой в логике, можно сказать, что это есть проблема вычисления предиката.) Среди таких проблем, как мы уже знаем, имеются и алгоритмически неразрешимые (например, распознавание самоприменимо­ сти, распознавание эквивалентности слов и др.). Если же проблема распознавания алгоритмически разрешима, то

157


время, затрачиваемое на решение тех или иных индивидуаль­ ных ее задач при использовании конкретного алгоритма (например, тыорпнговой программы Ж), уходит почти це­

ликом

на поиск ответа

(а не на его запись!).

 

 

В

связи с высказанными

соображениями

представляет

интерес следующий вопрос. Существует ли такая

вычисли­

мая

функция

/ (Р), определенная на словах

Р в

алфавите

J0,1}

 

и принимающая

натуральные значения, для которой

выполнено

условие:

пусть

5Ш — произвольная

машина

Тьюринга,

распознающая

некоторое

свойство

Г слов

Р в

двоичном алфавите; тогда найдется

и такая

машина

Тьюринга 31, которая распознает то же самое свойство, и при этом

/fSR(P)<f(P) для всех слов Р.

Существование такой вычислимой функции — пусть и очень быстро растущей — мы могли бы расценивать как свиде­ тельство того, что алгоритмически разрешимые проблемы не бывают сколь угодно сложными, ибо всегда можно обойтись алгоритмами с заранее ограниченным числом шагов при обработке слова длиной п. Более того, в качестве приемлемой верхней границы мы располагали бы вычислимой функцией/.

20.2. Распознавание /-самоприменимости. На самом же деле оказывается, что такой вычислимой функции не суще­

ствует. Точнее,

справедлива следующая теорема.

 

 

Т е о р е м а

Ц е й т и н а.

Какова

бы ни

была вычис­

лимая функция

} (Р), существует свойство Г двоичных

слов,

для

которого

выполняются

условия:

 

 

 

 

а) это свойство эффективно

распознаваемо,

т. е. суще­

ствует машина

Тьюринга,

выясняющая

для каждого слова

Р,

обладает

ли

оно

свойством

Г;

 

 

 

 

б) какова

бы ни

была

машина 31,

распознающая

это

свойство, ее временная сигнализирующая

t$R

удовлетворя­

ет

неравенству

 

 

 

 

 

 

 

(ЩР) > f (Р) для бесчисленного множества слов Р.

Доказательство этой теоремы получается путем подходя­ щей (и поучительной!) модификации теоремы п. 15.2 об алго­ ритмической неразрешимости проблемы распознавания самопрнменимости. Пусть / (Р) — вычисляемая функция из условий теоремы. Тогда, если на ленте произвольной ма­ шины 93? записан ее собственный шифр €0?' и машина запущена в работу, то возможен один и только один из следующих трех случаев: 1) машина 3)? не остановится в течение пер-

158


вых / (93?") тактов; 2) машина 93? остановится не позже чем через [ (50?') тактов и выдаст результат 1; 3) машина 2)? остановится не позже чем через / (S3?') тактов и выдаст ре­ зультат, отличный от 1.

Условимся говорить о машине Ж, что она /-самопримени­ ма, если имеет место ситуация 3) и что она /-несамопримени­ ма в противном случае, т. е. в ситуациях 1) и 2). Естествен­ но, возникает проблема распознавания/-самоприменимости: для любого двоичного слова Р узнать, является ли оно шиф­ ром /-самопримеиимой машины (короче, является ли Р /-самоприменимым шифром). При всем внешнем сходстве с проблемой самоприменимости имеет место, однако, сле­ дующий факт; проблема распознавания /-самопримени­ мости алгоритмически разрешима. Разрешающий алгоритм 2( заключается в следующем. 1. Для данного слова Р про­

веряем, является ли

оно шифром какой-либо машины.

Это можно эффективно

сделать так, как было разъяснено

в п. 14.2. Если Р не является шифром, то тем более оно не является /-самоприменимым шифром и ответ (отрицатель­ ный) уже найден. 2. Если Р является шифром, то сначала вычисляем число / (Р). Это можно сделать эффективно, ибо по предположению функция / (Р) вычислима, т. е. суще­ ствует алгоритм (машина Тьюринга), который по каждому слову Р позволяет находить значение / (Р). 3. Далее, по шифру Р восстанавливаем схему машины и, запуская ее в начальной конфигурации с записью слова Р, следим за ее работой в течение не более чем / (Р) тактов. Это позволяет нам фактически установить, какая из ситуаций (1, 2, 3) имеет место и, следовательно, позволяет получить правиль­ ный ответ на вопрос: /-самоприменим ли шифр Р?

Итак, нужный алгоритм описан. В отличие от общей проблемы распознавания самоприменимости, в которой машина может работать неограниченно долго, здесь ока­

залось существенным то, что

мы

располагаем верх­

ней границей (а именно / (Р))

для

числа проверяемых

тактов ее работы. Пусть $ — какая-нибудь машина Тьюрин­

га, распознающая /-несамоприменимость (такие

машины,

как

мы только

что убедились, наверняка существуют);

тогда

для любого

шифра 59?': (*) $ перерабатывает

СО?' в 1,

если 93?' /-самоприменима; (**) $ перерабатывает 93?' в 0, если 93?' / несамоприменима. По аналогии с доказательством из § 15 посмотрим, как будет перерабатывать машина $ свой собственный шифр

159



1) пусть S f-самоприменима; тогда по определению f-самоприменимости (вариант 3) она выдает результат, от­ личный от 1. Но согласно (**) это означает, что на самом деле й выдает результат 0, а следовательно, ®/-несамо- применима. Полученное противоречие заставляет нас (так же, как и в п. 15.2) отвергнуть предположение о /-самопри­ менимости машины ®;

2) пусть й /-несамоприменима; тогда по определению возможен один из вариантов (1 или 2). Вариант 2 приводит к противоречию в точности так же, как это было обнару­ жено для варианта 1. Тем самым выясняется, что имеется лишь одна возможность, а именно, что реализуется вариант 1, т. е. справедливо утверждение: если машина Й распознает

/-самоприменимость

и Я" является ее шифром, то

($')

>

 

Для

завершения

доказательства

теоремы

остается

показать,

что

для

рассматриваемой

нами

тьюрннговой

машины

Я'

кроме

слова

найдется

еще

бесчисленное

множество

других

слов

Р,

для

которых также

t§, (Р)

>

>

/ (Р).

Это

обнаруживается

так.

Пусть 10? — про­

извольная

тыорингова

машина,

полученная

из

машины

$

в результате

фиктивного расширения

ее внешнего алфа­

вита. Как

уже

отмечалось

в п.

10.1, если такие

машины

$

и 9)? запустить на одном и том же исходном двоичном слове

Р в стандартной конфигурации, то они будут работать со­

вершенно

одинаково.

В частности,

(Р) =

(Р). Ясно

также, что для данной машины существует

бесчисленное

множество

фиктивных

расширений й ь

®2 . ••• • Очевидно,

они также распознают /-самоприменимость, а следовательно,

для

каждой машины Й, и для ее

шифра Й/

 

 

 

 

tai(Si)>f

(Г,),

1

=

1,2,3,

 

 

 

во,

поскольку

t$>{®i) = tg.(®'i)

для

/ =

1,

2,

3,

то

 

 

> / ( $ / )

при

( =

1,

2,

3...

 

 

Теорема полностью

доказана.

 

 

 

 

 

 

 

 

На самом

деле

посредством

более тонкой

конструкции

можно при условиях теоремы обнаружить существование такого свойства Г двоичных слов, для которого утвержде­ ние б) теоремы справедливо в следующей более сильной форме (теорема Рабииа): б) Какова бы ни была машина £, распознающая это свойство Г, ее временная сигнализирую­ щая удовлетворяет неравенству t% (Р) > / (Р) для всех двоичных слов Р за исключением конечного их числа.

160