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

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

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

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

Добавлен: 19.10.2024

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

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

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

Т е о р е м а

2\

Не существует алгоритма,

позволяющего

уста­

новить для

любого

исчисления

с

ориентированными

подстановками

и для любой

пары

слов "21 и ЧЬ, из которых

второе

является

заключи­

тельным, переводимо

Ч[ в 'ЗЗ

или

нет.

эквивалентности. Пусть R

16.2.

Неразрешимость

проблемы

н 5 —два /(-слова в исчислении я д / . Если R переводимо в S ориенти­

рованными

подстановками, то тем более R и S эквивалентны

в

ям.

Появятся

ли

новые эквивалентности,

если

объявить

подстановки

в л л /

неориентированными?

Ответ на

этот

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

в следую­

щей

лемме.

Если S

есть

заключительное

К-слово и

R

эквивалент­

Л е м м а .

но S

в пм

(допускают^

неориентированные

подстановки),

то

R

переводимо

в

S одними

лишь ориентированными

подстановками.

Из этой леммы непосредственно вытекает невозможность алгорит­ ма для решения проблемы эквивалентности слов в ассоциативных исчислениях. Действительно, такой алгоритм решал бы одновремен­ но и проблему переводимости слов посредством ориентированных подстановок в заключительные слова. Теорема 2 утверждает невоз­

можность такого

алгоритма.

 

 

 

 

 

 

R <—• S,

 

 

 

 

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

л е м м ы .

Если

то существует

дедуктивная

цепочка,

ведущая

от

R

к

S;

 

 

 

 

 

 

 

 

/? =

/?1_/?2-/?3-

 

 

 

...

-

R

^ - R ^

S .

 

 

(3)

Пусть

Rj,

— два

смежных

слова

в

этой

цепочке. Если

пере­

ход от

Rj к Rj+X

осуществляется

путем

применения ориентирован­

ной

подстановки

вида

Р

-> Q,

то

будем

писать

->- RJ+1;

 

если

же этот переход осуществляется

путем замены

в Rj

вхождения

пра­

вой части допустимой подстановки па левую (или,

что то же

самое,

Rj+l

переходит в

Rj

путем

применения

ориентированной

подста­

новки), то будем

писать

Rj

*-

Rj+i-

 

Рассмотрим теперь

следующие

возможные

случаи для

тройки

слов

в цепочке

(3):

 

 

 

 

 

 

 

 

 

Rj-i*-

 

Rj^Rj+t.

 

 

 

 

 

 

(4)

 

 

 

 

 

Я , . , - / ? , * -

R j + V

 

 

 

 

(5)

 

В силу

утверждения

2

(п.

16.1) слова Rj-i

и

Rj+l

в случае (4)

совпадают, ибо к слову Rj применима

лишь единственная подстанов­

ка. Поэтому обнаружение такой тройки в дедуктивной цепочке по­

зволяет сократить ее путем изъятия двух слов (например,

и

Rj).

В случае же (5) слова Rj-X

и Rjn могут быть в самом деле различ­

ными; в терминах машины

Тьюринга это соответствует тому

обстоя­

тельству, что по данной конфигурации машины предшествующая

ей

конфигурация однозначно не восстанавливается.

 

 

Вернемся теперь к цепочке (3). Поскольку R^ является

заклю­

чительной конфигурацией, то (см. утверждение 3) может быть лишь Rk-i -* Rk• Если в данной цепочке все стрелки являются правыми, то лемма уже установлена. Если же существуют левые стрелки, то пусть последняя встречается перед /'-м словом. Тогда имеется тройка

/?._,

•<- Rj •* Rj+\<

которая

может быть

сокращена на 2 слова,

и

мы

получаем более короткую дедуктивную цепь, ведущую от R

к

S.

Продолжая эту

процедуру

сокращения

цепочки, мы дойдем до

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

143


§17. КАЧЕСТВО АЛГОРИТМОВ

ИВЫЧИСЛЕНИЙ

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

вается числом

команд (указаний),

из которых

он

состоит.

,,При

другом подходе учитывается

сложность

вычислитель­

ных

процессов,

осуществляемых

в соответствии с

данным

алгоритмом, например число операций, которые необ­ ходимо выполнить для получения результата, или объем используемой при этом «памяти» и т. п. Различие в этих

подходах усматривается хотя

бы в том, что

для некото­

рых проблем мы располагаем

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

простыми и

короткими алгоритмами, однако фактическое их при­ менение требует очень больших вычислений, связанных с перебором сверхастрономического числа вариантов. Иначе говоря, может оказаться, что некоторое руководство к дей­ ствию само по себе просто и коротко формулируется, но само действие, предписываемое им, очень громоздко. Так обстоит, например, дело с алгоритмом поиска выигрышной стратегии для игры (см. § 2). С другой стороны,- встречают­

ся довольно громоздкие предписания, которые сравнитель­

но быстро приводят к цели.

17.1. Сигнализирующие функции. Определим теперь

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

Пусть Р — слово на ленте тыоринговой машины 93?,

изображающее исходную информацию. Число тактов, ко­

торые тратит машина SO?, в процессе своей работы до заклю­ чительной конфигурации, обозначим (Р). Рассмотрим

также наименьший кусок ленты, содержащий исходное слово Р, а также все те ячейки, которые хотя бы один раз

посещаются головкой в ходе этого процесса. Длина этого куска ленты есть не что иное, как объем внешней памяти, используемой машиной 3)? в процессе вычисления; обозна­ чим эту длину через (Р). Поскольку исходные данные

Р можно варьировать, то тем самым мы определили для

144


данной машины 50? две функции от аргумента Р, так назы­ ваемые временную и емкостную сигнализирующие машины SDf; они измеряют соответственно расход времени и памяти при вычислениях на машине Ж.

Наряду с этими функциями удобно пользоваться и функциями натурального аргумента п, которые по данной машине SO? и по фиксированному подалфавиту А ее внеш­ него алфавита определяются так:

Тэд (я) = max tsj)i (Р)

по всем словам Р длины п

«

в алфавите А;

Scffi(п) — maxsyft(P)

по всем словам Р длины п

 

в алфавите А.

В дальнейшем длина слова Р всюду обозначается | Р |. Эти функции также будем называть сигнализирующими; из контекста всегда будет ясно, о каких сигнализирующих

на самом деле идет речь. Разумеется, чем меньше эти функ­ ции (чем медленнее они растут с ростом л), тем проще вы­ числения на рассматриваемой машине. Часто нет возмож­

ности (да и

необходимости) указать точные и обозримые

формулы для интересующих нас конкретных

функций

7дд (п), SCQI

(п). Однако нередко удается указать

для них

некоторые достаточно хорошие (в том или ином смысле)

приближения по

недостатку

или с

избытком,

или, как

говорят

еще, — достаточно

хорошие

 

нижние

 

и верхние

оценки.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

17.2.

Оценки

для примеров

§ 9.

В

качестве

примеров '

рассмотрим

сначала тыоринговы

машины, описанные в § 9

для следующих трех

проблем:

 

 

 

 

 

 

I .

Переход

от п к п +

1 в десятичной

записи.

I I .

Перевод

унарной

записи

чисел

в

его

десятичную

запись.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I I I . Сложение

чисел,

заданных в унарной

записи.

Эти машины обозначим соответственно £0?ь

Ш?2, 9}?3 и

рассмотрим

подробнее

их

временные

сигнализирующие;

при этом воспользуемся теми оценками, которые были ука­ заны в § 9 в связи с разбором проблем I — I I I и их реше­ ния на машинах 50?ь 50?а, Ш?3. Напомним, что Ш?х применяется к словам Р в десятичном цифровом алфавите. Как уже от­

мечалось в п. 9.1, дольше всего машина

работает на словах

Р, сплошь состоящих из цифры 9: тогда

(Р) = I Р I + 1.

Итак,

 

145


Ш2 применяется

к словам в унарной записи. \Р \ = «озна­

чает,

 

что Р состоит из п палочек. В результате получается

слово R в десятичной записи,

причем | R |s^]1og1 0 п I + 1 .

В

п.

9.2

фактически

уже

 

установлены

неравенства

n

(п

+

1)

<

Тс%9 (/г) <

п (ft

+

1) +

2ft ( [log1 0 ft 1

+

1 ).

Нижняя

оценка

n (ft +

1) и

верхняя

оценка

п (п +

1)

+

+

2

/г ( ] logio п

f + О

здесь

 

не совпадают;

более

того,

при

/г ->

со

их

разность, т.

е.

абсолютная

погрешность,

возникающая при замене одной из этих величин другой, стремится к со. Однако полезно заметить, что отношение этих величин стремится к 1 при л.-»-со; иначе говоря, от­ носительная погрешность, которую мы допускаем при взаимной замене этих величин, стремится к нулю при /г-»- со. В соответствии с общепринятой терминологией о функциях f ("), g (»). таких, что

lim / («) = со, Mm g (л) = со, Mm f (n)lg (л.) = 1 при л - * со, говорят, что они асимптотически равны. Асимптотическое

равенство

записывается так: f ( f t ) ~ g ( f t ) .

Возвращаясь

к 7'eQ}o(ft),

мы видим, что установленные для

нее нижняя

и верхняя оценки асимптотически равны и, естественно, каждая из них асимптотически равна самой сигнализирую­

щей функции Тэд2 (п). Итак, для Тэд (ft)

мы имеем точ­

ную в смысле асимптотического равенства

оценку

Наконец, Э?3 применяется к словам Р вида

 

U раз

s раз

 

 

 

и тратит

при этом (см. п. 9.3)

время

^

(Р) =

2k (k +

+ s + 1). Пусть [ Р I =

k +

s - f 1 =

ft;

тогда

максимум

времени

достигается при

k =

п— 1;

следовательно,

 

ТШя(п) =

 

2{п-1)п~2п*.

 

 

17.3. Поиск л у ч ш е г о алгоритма. Коль скоро мы уже располагаем алгоритмом для решения данного круга задач, то легко можно его перестроить в другие алгоритмы, делающие то же самое, но значительно хуже. Важнее, конечно, знать, можно ли построить лучший алгоритм и как этого добиться на самом деле. Обратимся опять к при-

146


мерам I — I I I и попытаемся выяснить, можно ли для них предложить тыоринговы программы, которые быстрее при­ водят к результату, т. е. у которых временные сигнализи­ рующие медленнее растут. В случае I ясно, что убыстрение невозможно, ибо для слова 99...9 (п девяток) при любом

мыслимом

способе вычисления

потребуется по

крайней

мере п - f

1 такт для

записи одной единицы и п нулей.

В случае

I I , однако,

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

ботающую программу

Не выписывая ее, укажем лишь,

как происходит соответствующий

вычислительный

процесс

н чем ои отличается от процесса, протекающего в соответ­

ствии с программой

Э?2 (т. е. со схемой

 

рис.

18). В каждом

а)

3 | В 9

1 1

1

1

1

!

1

1

б;

3 7

0 1

1

1

1

1

! 1

6>

1

3

7

1

1

1

1

1

1

 

1

 

 

 

 

 

 

 

 

 

 

 

Рис.

38.

 

 

 

 

 

цикле происходит стирание очередной палочки на левом конце массива палочек, а не на правом конце, как в случае программы 9Й2. Другое различие заключается в том, что десятичная запись числа, выработанная на очередном цикле, перемещается вправо на одну ячейку и тем самым продви­ гается вплотную к уцелевшему массиву палочек. На рис. 38 указаны записи на ленте после 369-, 370-, 371-го циклов и их взаимное расположение. Ясно, что длительность /-го

цикла

не более чем 2 (] log1 0 у f +

1) +

1 тактов, из

коих

один

на стирание

очередной

палочки,

не более чем

2(1 log]0y 1 + 1) на переход к десятичной записи числа

п и на

перемещение

всей записи вправо

на одну

ячейку.

Итак,

 

 

Тт(п)<2

% (]loglu/[+!) + «<

 

 

<

2п (1 log1 0 п [ -f

1) -f п ~

2п log,,, /г.

 

Это существенно лучше, чем Г с ^ (л). Точнее,

 

 

П ш Г ^

{п)'Т^

(») = 0 при

п^-оо;

 

иначе говоря, Тс$ц по порядку меньше, чем.Гс^.

147