Файл: Трахтенброт, Б. А. Алгоритмы и вычислительные автоматы.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.10.2024
Просмотров: 108
Скачиваний: 0
4 (d + |
2) + 4 (d + 4) |
+ |
... + |
4 (d + 2/) = 4 (d + t + |
+ 1) |
Л |
|
|
(4) |
Допустим теперь, что нейманов автомате вычисляет зна |
||||
чение |
функции / (Р) |
за |
(Р) |
тактов. Легко понять, как |
можно перестроить машину 50? в машину СО?', вычисляющую ту же функцию /, и как оценить время работы этой машины. Именно, 93?' работает сначала как 93?, имитируя t ^ (Р)
тактов автомата 91, на что затрачивается, как это видно из (4), не более чем 4 (| Р | + ^ (Р) + 1) ^ (Р) тактов; да лее, она должна привести сложившуюся к тому времени запись к стандартному виду заключительной тьюринговой конфигурации. Очевидно, для этого головке достаточно «пройтись» вперед и назад вдоль упомянутой записи, длина которой не превосходит | Р | + 2г^ (Р).
Итак, для общего времени, затрачиваемого машиной 93?', получается оценка
*яя'(Я) < |
4 ( I р 1 + |
( р ) + 0 |
% (р) + |
2 ( 1 Р I + Щ |
(Р)). ( |
||||||
Вспомним, |
наконец, |
что |
в |
нетривиальных |
ситуациях |
||||||
(см. замечание в конце п. 23.1) |
( P ) ^ ] P j . |
Следователь |
|||||||||
но, заменяя в (5) | Р |
| на |
(Р), |
а также |
1 на |
^ |
(Р), |
полу |
||||
чим; |
для |
нетривиальной |
ситуации |
|
|
|
|
||||
|
• |
tm. |
(Р) < |
12/э т |
(Р) + 6/§j (Р) < |
18% (Р). |
|
||||
Это |
и утверждается |
теоремой |
4. |
|
|
|
|
|
§ 24. ЗАКЛЮЧИТЕЛЬНЫЙ
Настоящий параграф состоит из отдельных примечании к основ ному тексту книги. Некоторые из них (I—V) включают библиогра фические ссылки и имеют целью облегчить выбор литературы для читателя, заинтересованного в дальнейшем изучении предмета'. Другие (VI—V111) носят характер общих заключительных замеча ний.
I . Благодаря тому, что понятие «вычислимая |
функция» |
не зависит |
|
от принятой .формализации понятия «алгоритм» |
(п. 11.5, |
11.6, |
13.2, |
21.4, 23.1), оно играет исключительную роль |
в теории |
алгоритмов |
|
и служит основой для формулировки других |
ее существенных по |
||
нятий. |
|
|
|
Рассмотрим, например, понятие разрешимого множества |
(на |
туральных чисел), уточняющее интуитивное представление о таком свойстве (натуральных чисел), которое можно алгоритмически рас познавать. Его определение таково:
Г90
Множество |
М |
натуральных |
чисел называется |
разрешимым, |
если |
||
егохарактеристическая |
функция |
1М |
вычислима. |
|
|
||
(Напомним, |
по |
определению |
/ д , |
(ft) = 1 при |
п £ М и |
= О |
в противном случае.)
Другое важное понятие, которым мы явно не пользовались, это
понятие перечислимого |
множества. Непустое мноокество М перечис |
|||
лимо, если существует |
вычислимая функция I такая, |
что последо |
||
вательность |
|
|
|
|
|
/ (1), |
h (2), |
/ (ft), ... |
(*) |
состоит в точности из |
всех |
элементов |
множества М |
(Подчеркнем, |
что в (*) элементы из М не обязаны располагаться в порядке возрас тания; кроме того, в (*) допускаются повторения.)
Способ перенесения этих и других определении на нечисловые множества естествен; например, множество слов перечислимо, если при арифметической интерпретации этих слов (см. п. 11.1) полу чается перечислимое множество натуральных чисел. Легко показать, что всякое разрешимое множество перечислимо. Обратное, вообще говоря, неверно. Например, самоприменимые шифры образуют перечислимое, но не разрешимое множество. То же самое верно и для
множества |
формул, выводимых из конечной системы аксиом. |
||||||||||
Хотя |
класс перечислимых |
множеств и шире |
класса |
разрешимых |
|||||||
множеств, тем не менее он составляет лишь ничтожную |
долю класса |
||||||||||
всех множеств натурального ряда (первый класс счетен, |
второй — |
||||||||||
несчетен). |
|
|
|
|
|
|
|
|
|
|
|
Заметим еще, |
что обычно |
в теории |
алгоритмов, говоря |
о вычис |
|||||||
лимых |
функциях, |
имеет |
в |
виду |
не |
только |
всюду |
определенные |
|||
функции, |
по и частичные |
функции. |
Дело в том, что при |
рассмотрении |
|||||||
некоторого алгоритма |
может оказаться, что он является частичным, |
||||||||||
т. е. при |
некоторых исходных данных он вообще не |
вырабатывает |
|||||||||
никакого |
результата |
(например, |
машина Тьюринга не применима |
к данной конфигурации, или оператор \х порождает бесконечный процесс). Хотя в основном тексте мы избегали рассмотрение частич ных функций, совсем нетрудно обнаружить, что многие из установ
ленных |
нами |
фактов справедливы |
на самом деле и для |
частичных |
||||||||||
функций. Например (см, теоремы из 11.5, |
11.6), справедливо утверж |
|||||||||||||
дение: |
класс |
частичных |
рекурсижых |
функций |
совпадает |
с |
классом- |
|||||||
частичных |
функций, |
вычислимых |
по |
Тьюрингу. |
|
|
|
|
|
|||||
В п. 15.2 кратко описан частный |
случай метода |
сводимости |
ал |
|||||||||||
горитмической проблемы |
91, состоящей |
из |
серии единичных |
задач |
||||||||||
аг, а2. ... |
к |
алгоритмической |
проблеме |
93, |
состоящей |
из |
серии |
|||||||
единичных |
задач bL, b2 |
В самой |
общ?й |
ситуации |
процедура |
све |
||||||||
дения 91 к |
33 такова, |
что решение |
единичной задачи сц сводится к |
|||||||||||
нескольким |
задачам |
bp |
принятым за решенные. При этом по |
ходу |
реализации этой процедуры выясняется, какие «готовые» резуль таты нужно запрашивать и как они влияют па дальнейший ход про
цесса. Такие процедуры называют условными |
алгоритмами, |
или |
||||
алгоритмами |
сведения |
в отличие от обычных абсолютных |
алгорит |
|||
мов. Может |
оказаться, |
что каждая из двух массовых проблем 91, 93 |
||||
алгоритмически неразрешима, причем 91 сводима |
к 23, но 93 не своди |
|||||
ма к 91; содержательно это означает, что алгоритмическая |
проблема |
|||||
93 еще более неразрешима, |
чем алгоритмическая |
неразрешимая |
про |
|||
блема ?[. В таком случае |
говорят, что проблема |
93 имеет |
более |
вы |
сокую степень неразрешимости, чем проблемч 91.
191
Изучение вычислимых функций, разрешимых и перечислимых множеств, условных алгоритмов и соответствующих им степеней не разрешимости всегда занимало центральное место в теории алгорит мов. Систематическое изложение этого материала можно найти в книгах:
1) В. |
А. У с п е н с к и й . |
Лекции о вычислимых функциях, М. |
|||||||
Физматгиз, |
I960; |
|
|
|
|
|
|||
2) |
А. И. |
М а л ь ц е в , |
Алгоритмы и |
рекурсивные |
функции. |
||||
М., «Наука», |
1965. |
|
|
|
|
|
|||
I I . |
Существование |
алгоритмически |
неразрешимых |
проблем |
|||||
(п. 15.2), а также алгоритмически разрешимых, но сложно |
решаемых |
||||||||
проблем |
(п. |
20.2) было |
первоначально установлено путем построе |
||||||
ния искусственных, нарочито |
придуманных примеров, |
связанных |
|||||||
с самоприменимостыо |
и /-самоприменимостью. Имеют |
ли |
место |
||||||
такие |
явления |
для естественных проблем, |
представляющих |
само |
стоятельный интерес? Для алгоритмической |
неразрешимости это |
|||||
действительно так |
(см. п. 15.1, 15.3). |
Что же |
касается |
алгоритми |
||
чески разрешимых |
проблем с высокой |
нижней |
оценкой |
времени их |
||
решения, (например, G оценкой типа |
(п) > |
2 Л ) , то лишь |
сравни |
|||
тельно недавно были обнаружены достаточно «естественные» |
примеры |
таких проблем. К сожалению, в рамках этой книги нет возможности
на них останавливаться. |
В целом изучение качества |
алгоритмов |
и вычислений относится |
к более позднему периоду |
исследований |
в теории алгоритмов, и оно еще не нашло достаточно полного отра жения в монографической литературе. Книга Б . А. Трахтенброта «Сложность алгоритмов и вычислений (спецкурс для студентов НГУ, Новосибирск, 1967) систематизирует часть материала, отно
сящегося |
к оценке |
сложности |
вычислений |
посредством |
сигнализи |
||
рующих |
функций (п. 17.1). Что |
же касается подхода, |
основанного |
||||
на |
оценке сложности |
описания |
алгоритма |
(см. начало |
§ |
17), осно |
|
вы |
которого заложены в работах А. А Маркова и А. |
Н. |
Колмого |
рова, то пока здесь можно ссылаться только на журнальную лите ратуру.
I I I . Теорию программирования для реальных вычислительных машин можно рассматривать как прикладной раздел современной теории алгоритмов, в котором находят свое воплощение и дальней шее развитие многие идеи из более абстрактивных ее разделов. Так, например, одна из центральных проблем теории программиро
вания |
заключается в создании языков |
программирования |
высокого |
|
уровня |
(например, АЛГОЛ) и соответствующих трансляторов, |
т. е. |
||
программ перевода. Это далеко идущее обобщение идеи |
входного |
|||
"языка |
и программирующего алгоритма |
(§10) л е ж и т е основе |
автома |
тизации программирования. Именно программист на удобном для себя языке записывает алгоритм, и далее машина переводит эту за пись («руководствуясь» транслятором) на машинный язык, т. е. вырабатывают обычную программу из машинных команд (в смысле §6). См. Е. А. Жоголев и Н. П. Трифонов, Курс программирования. М., «Наука», 1971.
IV . Наряду с одномерными автоматами Неймана можно рассмат ривать и двумерные, трехмерные и т. д. Д ж . фон Нейман развил те орию автоматов такого типа не только для изучения их вычислитель ных способностей, но также для моделирования процесса самовос произведения. Имеется русский перевод его книги; (См. Д ж . фон Нейман. Теория самовоспроизводящихся автоматов. М., «Мир», 1971).
192
V. Подробные сведения исторического характера, обзор дости жений советских математиков в области теории алгоритмов и в смеж
ных областях, |
а также соответствующую библиографию |
можно |
най |
||||||||
ти в книге: История отечественной математики, |
т. 4, кн. 2 (гл. V — |
||||||||||
V I ) , |
Киев, «Наукова думка», |
1970. |
|
|
|
|
|
|
|||
Достаточно |
доступное |
изложение ряда |
вопросов |
из теории алго |
|||||||
ритмов и теории автоматов |
содержится |
в |
переводных книгах: |
||||||||
А. |
Тьюринг. |
Может |
ли |
машина мыслить? |
М., |
Физматгиз, |
1960; |
||||
М. Минский Вычисления |
и автоматы. М., |
«Мир», |
1971. |
|
|
||||||
V I . В связи о теоремами об алгоритмической неразрешимости то |
|||||||||||
го или иного класса задач заметим, во-первых, что они не |
дают |
пово |
|||||||||
да для впадания в агностицизм. Действительно, каждая |
такая |
тео |
|||||||||
рема касается целого класса задач и устанавливает |
неразрешимость |
||||||||||
всех задач этого класса |
единым эффективным |
методом—алгоритмом. |
Это вовсе не означает, что среди единичных задач, объединя емых этим классом, имеются такие, которые неразрешимы. Напри мер, теоремы из п. 15.2 не следует понимать так, что существует такой шифр, о котором в принципе невозможно сказать, является ли он самоприменимым или нет.
Это означает лишь, что рассматриваемый тип задач является столь общим и широким, что единого алгоритма для решения всех задач данного типа не существует. В этом случае целью математи ческих исследований является последовательное создание все более и более широких алгоритмов, позволяющих сводить к автоматичес кому вычислению все более и более обширные подклассы задач дан ного типа.
Во-вторых, теоремы об алгоритмической неразрешимости по казывают, что математика не сводится к построению алгоритмов, что процесс познания в математике не может быть до конца автоматизи рован. Уже в отдельных, сравнительно узких областях математики
(как теория |
групп с конечным числом образующих и т. д.) возника |
ют массовые |
проблемы, решить которые не способен никакой авто |
мат (т. е. никакая машина Тьюринга). |
|
V I I . Вместе с тем приходится признать, что область применения |
алгоритмических процессов весьма широка и й ней относятся не только вычислительные процессы, встречающиеся в математике. Более того, для многих процессов, которые обычно принято считать очень трудными и сложными, можно теоретически построить алго ритмы, являющиеся по своей идее достаточно простыми; практичес кие же трудности, встречаемые при реализации этих процессов,
связаны с тем, что указанные алгоритмы являются очень |
длинными |
и требуют совершения огромного числа операций |
(хотя эти |
операции сами по себе простые). Это замечание относится, |
в частнос |
ти, к процессам игры (и в частности, игры в шахматы), где успех во многом зависит от умения обозреть большее число вариантов для выбора оптимального варианта.
Создание и дальнейшее усовершенствование быстродействующих вычислительных машин значительно расширяет число практически
осуществимых алгоритмов. |
|
|
|
||
Однако теорема |
о существовании |
сколь |
угодно, сложных |
про |
|
блем |
показывает, что |
при любом уровне |
техники среди алгоритми |
||
чески |
разрешимых |
проблем найдутся |
и |
такие проблемы, |
для |
которых практически доступных (на данном уровне) алгоритмов не существует. Поэтому «чистое» доказательство алгоритмической раз решимости некоторой проблемы, т. е. такое доказательство сущест-
193
вования разрешающего алгоритма, из которого ие извлекается оцен ка (причем достаточно хорошая оценка) его сложности, имеет огра ниченную практическую ценность. Пользуясь метким выражением П.С. Новикова, можно сказать, что «чистое» доказательство алго ритмической разрешимости некоторого класса задач означает не более того, что невозможно доказать алгоритмическую неразреши мость для этого класса.
V I I I . Наконец, обратим еще раз внимание на то, что каждая физи чески осуществимая вычислительная машина может быть рассматри ваема лишь как некоторая приближенная модель машины Тьюринга или автомата Неймана. Именно в реальных машинах объем внешней памяти ограничен, в то время как в машине Тьюринга и в автомате Неймана фигурирует бесконечная лента. Разумеется, техническое осуществление неограниченной памяти невозможно, но значитель ное увеличение объема памяти в машинах по сравнению с уже достиг нутым уровнем не только желательно, но и вполне возможно. Имен но в этом направлении наращивания объема внешней памяти и ско рости вычисления можно ожидать дальнейших больших успехов в развитии вычислительных автоматов. Однако наряду с техническим прогрессом существенное значение имеют и чисто математические исследования, направленные на выяснение того, какие типы
машин и алгоритмов более всего подходят для быстрейшего |
решения |
задач данного типа. В частности, очень важно выделить типы |
задач, |
допускающих распараллеливание процесса их решения. |
|
УКАЗАТЕЛЬ |
|
А втом ати чес к н е |
в ы ч исл птел ь- |
ные машины |
6, 9, 46 |
—— —, применение 59
——- —, функционирование 58
Автоматы |
Неймана 9, 161, |
163 |
||
Аксиоматический |
метод в |
ма |
||
|
тематике 64 |
|
|
|
Активные |
ячейки |
137 |
|
|
Алгоритм 3, 5, 11, 26 |
|
|||
—, |
детерминированность |
15 |
||
—, |
массовость 15 |
|
|
—подражания 125
—приведения 38
—. точное определение 61—67
—Эвклида 11, 97
—— в машине Тьюринга 84 Алгоритмическая неразре
шимость 190
—— проблемы тождества
теории групп 135 Алгоритмические проблемы 125 "Алгоритмов качество 144 Алгоритмы игр 15
—нормальные 39
—равносильные 123
—численные 13 Алфавит 33
Арифметические |
действия |
11 |
||||||
— функции |
и |
отношения |
111 |
|||||
Арифметический |
блок |
49 |
||||||
Ассоциативные |
исчисления |
33 |
||||||
Барздинь |
Я- |
М. |
150 |
|
|
|
||
Безусловная |
передача |
|
управ |
|||||
ления |
51 |
|
|
|
|
|
|
|
Блок |
управления |
50 |
|
|
|
|||
Бзббидж |
Ч |
4, |
7, |
8 |
|
|
|
|
Введение |
|
фиктивных |
пере |
|||||
менных |
101 |
|
|
|
|
|||
Вершины |
дерева 19 |
|
|
|
||||
Ветви |
19 |
|
|
|
|
|
|
|
Внешний |
алфавит |
68 |
|
|
|
|||
Внешняя |
память |
115 |
|
|
|
|||
Внутренний |
алфавит |
машины |
||||||
71 |
|
|
|
|
|
|
|
|
Возможности |
|
машин |
9 |
|
|
|||
Вхождение слова |
34 |
|
|
|
||||
Выделяющий |
|
алгоритм |
89 |
|||||
Вычислимость |
по |
Нейману |
||||||
и Тьюрингу |
182 |
|
|
|
Вычислительный процесс с участием человека-вычис лителя 47
Гильберт |
|
Д. |
14 |
|
|
|
|
|||
Группы |
преобразований |
|
136 |
|||||||
Гото |
Э. |
|
179 |
|
|
|
|
|
||
Дедуктивные |
цепочки 34, |
64 |
||||||||
Дерево |
игры |
17 |
|
|
|
|
||||
Десятая проблема Гильберта |
14 |
|||||||||
Диофантовы |
уравнения |
14 |
||||||||
Задача |
|
|
о |
стрелках |
172 |
|
|
|||
Заменяющие |
алгоритмы |
89 |
||||||||
Замещения |
152 |
|
|
|
|
|||||
Запоминающие устройства |
|
49 |
||||||||
Игра |
11 |
предметов |
16 |
|
|
|||||
— |
«побеждает |
чет» |
17 |
|
|
|||||
— |
в шахматы |
23 |
|
|
|
|
||||
Индекс |
|
вхождения |
буквы |
|
41 |
|||||
— слова |
41 |
|
|
|
|
|
||||
Индуктивные |
определения |
|
101 |
|||||||
Итерация |
104 |
|
|
|
|
|
||||
Класс |
|
тыорингово |
вычисли |
|||||||
|
мых |
функций |
101 |
|
|
|
||||
Кодирование |
179 |
|
|
|
|
|||||
Кодовая |
группа |
128 |
|
|
|
|||||
Колмогоров |
А. |
N. |
§ |
24 |
|
|
||||
Команды |
|
арифметические |
|
51 |
||||||
— логических |
|
операций |
|
51 |
—остановки 51
—переадресации 55
— |
передачи |
управления |
51 |
||
— |
условные |
51 |
|
|
|
Конечные функции |
НО |
|
|||
Контролируемый |
|
переход |
78 |
||
Концевая вершина |
19 |
|
|||
Конфигурации |
конечные |
75 |
—Тьюринга 74 Конфигурация 74
—глубинная (левая, правая, одиночная ) 139
Копирующие алгоритмы .89
Кордемский Б. А. 16, 17 Корень дерева 19
Лабиринты |
26 |
|
|
|
|
Левая |
дихотомия |
178 |
|
||
Левенштейн |
В. |
И. |
179 |
||
Лейбниц |
Г. |
В. |
63 |
|
|
Лемма |
о замещениях |
153 |
|||
Логическая |
функция |
машины |
|||
72 |
|
|
|
|
|
195