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