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

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

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

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

Добавлен: 19.10.2024

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

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

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

Полученный выигрыш во времени показывает, что вы­ годнее на каждом цикле перемещать десятичную запись, дли­ на которой сравнительно невелика, чем доставлять очеред­ ную «разменную» палочку с правого далекого конца.

Можно ли еще улучшить этот результат? Точнее, воз­ можна ли тыорингова программа 50?2 такая, что Год?» по порядку меньше даже, чем Тещ,;? К этому вопросу мы еще вернемся позднее (см. п. 19.2).

Наконец, для задачи I I I можно предложить программу 50?з, в соответствии с которой происходит замена звездочки

Pit) Р(2) PIS) т

чп-i

Pin)

if

— ^ pit)=pin) ?

 

)

Pl2)=Pln-l)7

Рис.

39.

 

на единицу и стирание крайней слева палочки. Очевидно, Тщ:. («) = п + I , что по порядку меньше, чем (п.), которая асимптотически равна п2. Более того, достаточно ясно, что дальнейшее существенное убыстрение процесса уже невозможно.

17.4. Распознавание симметрии. Рассмотрим еще сле­ дующий класс однотипных задач: для произвольного слова р = Р (]) р (2)... Р (п) в алфавите (0,1| следует узнать, симметрично ли оно, т. е. совпадает ли слово Р со своим зеркальным отображением Р (п) Р (п — 1)... Р (1). Как обычно, будем считать, что соответствующий распознаю­ щий алгоритм выдает 1 в случае утвердительного ответа и О — в противном случае. Легко составить тьюринговы про­ граммы, решающие эту проблему, но мы ограничимся*опи­ санием того, как протекает соответствующий вычислитель­ ный процесс. Начав работу в конфигурации рис. 39, головка запоминает символ Р (1), уходит на правый конец слова и, найдя символ Р (п), сравнивает его с Р (1). Если эти символы различны, то слово Р не симметрично, и тогда стирается первоначальная запись и на ленте записывается результат 0. В противном случае головка возвращается влево, отыс­ кивает Р (2) и начинает второй цикл, в котором сравни ваются Р (2) и Р (п — 1) и т. д. Дольше всего машина будет

148


работать, когда слово Р на самом деле симметрично. Тогда

будет

произведено

nil

циклов

сравнения,

в которых

го­

ловка

совершает

ход

вправо

на п ячеек,

обратный

ход

влево

на п— 1 ячейку, потом

следующий

ход вправо

на

а — 2 ячейки и обратный на п — 3 ячейки и т. д. На рис. 39

колебания

головки

изображены

зигзагообразной

линией

под

лентой.

Итак,

в

этом

случае тратится число

тактов

п +

(п -

1)

+ (п +

2) +

... =

/ 1 ( 1 + п)12 ~ пУ2.

Мож­

но было бы сэкономить время примерно вдвое за счет сле­ дующего усовершенствования алгоритма: машина 3? осу­ ществляет по одному сравнению после каждого хода в одну сторону. Например, после сравнения Р (/) с Р (п) при возвращении влево по пути считывается и запоминается зна­ чение Р (п — 1), которое после завершения обратного хода (влево) уже сравнивается с Р (2). При таком способе вы­ числения на машине уже будет Tg-j (п) — /г2/4. Легко понять, что возможны и дальнейшие усовершенствования. Пусть, например, при каждом перемещении в одном направлении

машина

3i2

запоминает

пару символов и сравнивает ее

сразу с соответствующей

парой на другом конце слова; так,

вначале пара Р (1) Р (2) сравнивается с парой Р (п— 1)Р (/г),

потом

пара

Р (3) Р (4)

с парой Р (п — 3) Р (п — 2)

и т. д. Это, конечно, потребует увеличения числа внутрен­

них состояний машины 912 по

сравнению

с машиной 9i,

однако время.работы сократится

вдвое, т. е.

(п) ~

пЧ8.

Вообще для

каждой константы

I можно построить тьюрин-

гову машину

SRj, которая на каждом ходе сравнивает

две

i-ки символов. Соответственно для временной сигнализи­ рующей имеет место асимптотическое равенство Tg^ (/г) ~

~ /г2 /4/. Хотя мы таким образом и добиваемся ускорения процесса вычисления, тем не менее для всех рассмотренных нами до сих пор машин SR, распознающих симметрию, временная сигнализирующая Тс^ по порядку не меньше /г2; точнее, для них справедливо следующее утверждение.

Существует константа Сстд, зависящая от Ш, но не зави­

сящая от п, такая, что

 

7g,,(/j)>Cg,r nS (/2=1, 2, 3, ...).

(#)

Возможно ли распознавание симметрии за время по порядку меньшее, чем /г2, т. е. существует ли машина Тьюринга Ж0 , распознающая симметрию, и такая что

lim 7Vj-)jo(n)lif0 при /г-» оо ?

149



(например, машина 5Я?0, для которой (п) < п У п или

7Yffi0(/!)<HVlOg/7).

В связи с этим вспомним, что для перевода в десятич­

ную систему нам удалось

указать тьюрмнгову

машину Щ

с сигнализирующей Тэд-

(n) ~ 2 n lg л, что

по порядку

меньше, чем первоначальная опенка Тсдо„ (я) ~ я ' г . На первый взгляд, однако, создается впечатление, что всякая процедура распознавания симметрии так или иначе должна основы­ ваться на циклах сравнения рассмотренного выше типа; и не видно, за счет чего можно было бы добиться более су­

щественного

убыстрения. Эта догадка

подтверждается

сле­

дующей теоремой Я. М. Варздиня:

 

 

 

Т е о р е м а .

Какова бы ни была тыорингова машина

Ж,

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

симметрию,

для

нее

справедливо

условие

(¥=)•

 

 

 

 

 

 

 

 

 

 

Справедливость

этой

теоремы

будет нами установлена

в п.

19.1.

Однако

для

этого необходимо предварительно

более

детально

изучить

некоторые специфические

особен­

ности

тьюринговых

вычислений,

представляющие

общий

интерес. Этим мы и займемся

в следующем параграфе.

 

 

 

 

§ 18. СЛЕДЫ

ТЬЮРИНГОВЫХ

 

 

 

 

 

ВЫЧИСЛЕНИЙ

 

 

 

 

18.1. Следы.

Рассмотрим вычислительный процесс, обозначае­

мый

[Р], который выполняет тыорингова

машина ЭД, запущенная

в начальной конфигурации с исходным словом Р. Пронумеруем гра­ ницы между соседними ячейками так, как это указано на рис. 40, а, С каждой фиксированной границей / можно ассоциировать последо­

вательность внутренних

состояний

машины

следующим образом.

Если

в процессе

\Р]

головка

ни

разу не

пересекает

границу /,

то эта

последовательность пуста

(не содержит

никаких

элементов).

Пусть головка пересекает границу / ровно s раз: первый раз в состоя­ нии q (1), второй раз в состоянии q (2) и т.д. Тогда последовательность

q (\)q (2) ...

q (s), являющуюся

словом в алфавите

Q

внутренних

состоянии,

назовем следом процесса ЭД{ [Р] в точке

/

и

обозначим:

след ffl}(^\

/)• Это обозначение

содержит указание па

рассматривае­

мую машину Ш и на исходное слово Р. Однако в тех случаях, когда

из контекста ясно, какая имеется в виду машина или слово, будем применять упрощенные обозначения типа след (Р, / ) , след (/). Если первое прохождение головки было слева направо, то второе будет

справа налево и далее направления

прохождения будут также чере­

доваться. Ясно, что при / >

0 первое

прохождение может быть толь­

ко слева направо, а при / <

0 — в противоположном направлении.

Если процесс Ш [Р] бесконечен, то может случиться, что в некоторых границах / след тоже будет бесконечным. Однако, поскольку мы да-

150


лее будем рассматривать

лишь

конечные процессы,

заканчивающие­

ся выдачей

результирующего

слова R (зависящего от исходного

слова Р ) , то и следы будут конечными. Пусть

| след (/') | обозначает

длину следа

в точке /', т. е. число

пересечений

границы /. Очевидно,

каждое пересечение головкой

какой-либо

границы

связано с зат-

-/

О 1 2 3 f

 

J-t

J

j+f

 

 

n-f

n

 

Pd)p(2)m)

. .

. Pfj)

Р(И

• P(n)

 

 

 

 

 

4(2)

C =

^

j

 

 

 

 

a)

0 I 2

i-1 i

i+1

n-1 m+f

Hit) H(2) • • •

H(i)

H(i*l)

• • • H(m)

 

 

 

 

 

(

412)

 

 

 

 

 

 

 

ad)

 

 

 

 

 

 

 

if*)

^

 

 

 

 

 

 

us)

 

-1

0

1

2

3

b

 

 

 

P(i)P(2)Pf3)

• .

. Pfj) Htt'/> •

• Him)

(

4(f)

 

 

 

 

^=>qi3)

 

qjS)

.

 

в)

 

Рис. 40.

ратон одного такта работы машины. Поэтому справедливо неравен­ ство

% Ю > 21 след (Р. / ) | .

(1)

где суммирование берется по любому множеству границ. Строгое не­ равенство может возникнуть за счет того, что рассматривается лишь

151