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