Файл: Трахтенброт, Б. А. Алгоритмы и вычислительные автоматы.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