Файл: Трахтенброт, Б. А. Алгоритмы и вычислительные автоматы.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.10.2024
Просмотров: 134
Скачиваний: 0
цы, второй —столбец таблицы, а последующие три — сим волы той тройки, которая располагается в таблице на пере сечении указанной строки с указанным столбцом.
Например, вместо схемы рис. 12 возникает одномерная строка символов
Л <7i Л ^ а Л ^ Л ^ з ••• |
(О) |
Очевидно, по этой строке можно при желании однозначным образом восстановить первоначальную таблицу. Поступая аналогично, можно-при рассмотрении конфигураций усло виться о том, чтобы букву состояний писать не под обозре ваемой буквой, а непосредственно правее ее. В таком случае конфигурация IV на рис. 24 перейдет в строку
II I I Ы-
Очевидно, по такому одномерному изображению конфи гурации можно при желании однозначным образом восста новить ее первоначальный вид.
2. Для характеристики функциональной схемы и кон фигураций вовсе не существенны специфические начертания букв внешнего алфавита и алфавита состояний, которые в ней фигурируют. Например, если всюду в таблице рис. 12 или в соответствующей ей строке заменить букву (3 бук вой Ь, то от этого ничего в наших рассмотрениях не изме нится. Важно лишь то, чтобы различные объекты были за даны различными символами и чтобы можно было различить буквы состояний от букв внешнего алфавита.
Конечно, можно было выбрать другие буквы, отличные от Л, П, Н, и для обозначения сдвигов (влево, вправо, от сутствие сдвига), однако при этом должно быть четко ого ворено, какой именно буквой такой сдвиг обозначается. Здесь сказывается тот факт, что каждая из трех букв обо значает вполне определенное действие, которое не заменимо другим.
Учитывая эти обстоятельства, заменим в строке Q каж дую отдельную букву некоторой последовательностью из единиц и нулей (кодовой группой) так, чтобы различные буквы заменялись различными кодовыми группами, но одна и та же буква заменялась бы всюду, где бы она ни встре чалась, одной и той же кодовой группой. В результате такой замены, например, строка Q перейдет в некоторую строку Q'. Для того чтобы по й ' можно было восстановить Q, способ
128
кодирования (отнесения кодовых групп буквам) должен удовлетворять следующим условиям:
1) чтобы строку Q' можно было бы однозначным образом разбить на отдельные кодовые группы;
2) чтобы можно было распознавать, какие кодовые груп пы отнесены каждой из букв Л, /7, Н в отдельности, и чтобы можно было различить кодовьш группы, отнесенные бук вам состояний от тех, которые отнесены буквам внешнего алфавита.
Эти два условия будут наверняка соблюдены при сле дующем способе кодирования.
1. В качестве кодовых групп берутся 3 - f k + т раз личных слов вида 100 ... 01 (между единицами — сплошь нули).
Тогда разбиение строки Q' на кодовые группы произво дится однозначным образом и легко, путем выделения по следовательностей нулей, заключенных между двумя еди ницами.
2. Сопоставление кодовых групп исходным буквам осу ществляется согласно следующей таблице кодирования.
|
|
Буква |
|
Кодовая |
группа |
|
|
|
|
Л |
|
101 |
|
|
|
|
|
Н |
|
1001 |
|
|
|
|
|
П |
|
10001 |
|
|
|
|
i |
S( |
|
100001 А нуля |
] |
Чепюе чис- |
|
Внешннп |
I |
5., |
|
10000001 6 |
нулей |
I |
ло нулей, |
алфавит |
] |
|
|
|
| |
|
большее |
|
[ |
Sft |
10 . |
.01 2 ( * + 1 ) |
нулей |
J |
чем 2 |
|
I |
<7J |
|
1000002 5 нулей |
\ |
Нечетное |
|
Алфавит |
I |
?2 |
|
100000001 7 нулей |
I |
число нулей, |
|
состояний |
| |
qm |
|
|
I |
|
большее |
|
I |
10 . .01 |
2 ( ш + и + 1 |
нулей |
J |
чем 5 |
При такой системе кодирования в нашем случае Й'выглядит так:
1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 . . .
Подобную строчку из единиц и нулей, составленную для функциональной схемы или для конфигурации, будем называть шифром функциональной схемы или шифром кон фигурации соответственно. По заданному шифру сама схема или конфигурация в своем первоначальном виде легко восстанавливается; поэтому задание схемы или кон фигурации можно всегда осуществить посредством их шиф ров. Разумеется, вместо единицы и нулей можно было бы брать любые другие два знака, например а, Ь.
Теперь уже нетрудно сообразить, как изменить форму лировки указаний 1—9 из первоначального описания алго ритма подражания для того, чтобы получить алгоритм, ко торый перерабатывает шифр схемы подражаемой машины и шифр начальной конфигурации в шифр результирующей конфигурации. Ограничимся только отдельными иллюст рациями:
У к а з а н и е 1. Обозревайте в шифре конфигурации кодовую группу (единственную), расположенную непосред ственно левее кодовой группы с нечетным числом нулей.
У к а з а н и е 2 и 3. Отыщите в шифре схемы пару соседних кодовых групп, одинаковую с парой кодовых групп в шифре конфигурации, в которой первая группа является обозреваемой.
У к а з а н и е 6. Если в обозреваемой тройке кодовых групп из шифра схемы второй является группа 1001, то в шифре конфигурации замените кодовую группу с нечетным числом нулей третьей' кодовой группой из этой обозревае мой тройки.
Дальнейшее рассмотрение этого алгоритма позволяет сводить каждую операцию над кодовыми группами к цепи стандартных операций, осуществимых в тыоринговой ма шине (замена одного знака другим, сдвиг на одни шаг п т. п.). При этом, кроме знаков 1 и 0, из которых построены шифры, будут участвовать и другие буквы, например буква, отделя ющая один шифр от другого, буквы, играющие роль времен ных пометок при просмотре единиц и нулей (сравнить с ал горитмом Евклида) и другие.
В конечном счете в результате такой детализации алгоритм подражания описывается функциональной схе
мой машины |
Тьюринга Ш |
которая универсальна |
в сле |
||
дующем смысле. Если какая-либо машина |
А решает не |
||||
которую задачу, то и Ж решает эту задачу |
при условии, |
||||
что кроме шифра исходных данных |
этой задачи на ее ленту |
||||
будет подан шифр схемы машины |
А. |
|
|
||
Тем самым |
установлена |
теорема: |
|
|
|
Т е о р е м а . |
Существуют |
универсальные |
машины |
Тью |
ринга.
В связи с этим фактом всевозможные функциональные схемы (или их шифры) можно толковать двояко:
1) схема описывает логический блок с п е ц и а л ь н о й машины Тьюринга, реализующей соответствующий алго ритм (это и есть точка зрения, которая проводилась перво начально);
130
2) схема описывает программу, подаваемую на ленту универсальной машины для реализации соответствующего алгоритма.
Заметим в заключение, что современные вычислительные электронные машины и строятся как раз как универсальные машины, в запоминающее устройство которых наряду с ис ходными данными поставленной задачи вводится также и программа ее решения.
Разделение памяти на внешнюю и внутреннюю харак терно и для вычислительных машин, причем внешняя память представлена чаще вещего магнитными барабанами и лентами, на которых производится магнитная запись информации, наподобие обычной звукозаписи. Однако в отличие от ма шины Тьюринга, в которой внешняя память бесконечна (лента бесконечна), в любой реальной вычислительной машине внешняя память (магнитная лента или барабан) конечна.
Разумеется, это принципиальное различие между ре альной вычислительной машиной и машиной Тьюринга, представляющей собой некоторую абстрактную, идеализи рованную машину, является неустранимым. Вместе с тем важно отметить, что в реальной вычислительной машине внешнюю память можно неограниченно увеличивать без изменения конструкции машины; для этого достаточно к уже имеющемуся «куску» магнитной ленты «приклеить» допол нительный «кусок».
§ 15. АЛГОРИТМИЧЕСКИ НЕРАЗРЕШИМЫЕ ПРОБЛЕМЫ
15.1. Теорема Чёрча. Переход от расплывчатого понятия алгоритма к точному понятию машины Тьюринга, которая может быть задана своим шифром, позволяет уточнить и во прос об алгоритмической (или машинной) разрешимости того или иного круга задач. Именно теперь этот вопрос следует понимать так: существует ли машина Тьюринга, решающая данный класс задач, или же такой машины не существует? (Что значит «машина Тьюринга решает некоторый класс задач» см. в § 8.)
На этот вопрос теория алгоритмов в ряде случаев дает отрицательный ответ. Один из первых результатов такого типа, установленный американским математиком Чёрчем
в |
1936 г., относится к проблеме распознавания выводимости |
в |
математической логике (см. § 7). |
6* |
. 131 |
Т е о р е м а |
Ч ё р ч а . |
Проблема распознавания вы |
водимости алгоритмически |
неразрешима. |
Тем самым не только выясняется причина безуспеш ности всех прошлых попыток создания соответствующих алгоритмов, но и обнаруживается полная бессмысленность таких попыток.
15.2. Распознавание самоприменимости и переводимости. Доказательствам невозможности, приводимым в тео рии алгоритмов, присуща та же математическая строгость, что и доказательствам невозможности, приводимым в других областях математики (например, невозможность трисекции угла с помощью циркуля и линейки, или невозможность определения общей меры для стороны квадрата и его диа гонали). Эскиз такого доказательства мы приведем ниже для проблемы распознавания самоприменимости.
Пусть-в машине Тьюринга зафиксирована какая-нибудь конфигурация. Возможны два случая: 1) машина применима к этой конфигурации, т. е., срабатывая в этой конфигура ции, машина после конечного числа тактов останавливается
взаключительной конфигурации, подавая сигнал об оста новке; 2) машина не применима к этой конфигурации, т. е. сигнал об остановке никогда не наступает и машина впадает
вбесконечный процесс. Возникает следующая массовая проблема.
П р о б л е м а |
р а с п о з н а в а н и я |
п р и м е н и - |
м о е т и. Заданы |
функциональная схема |
какой-нибудь |
машины и конфигурация в ней; узнать, применима машина к этой конфигурации или нет. Это—типичная задача на построение алгоритма, ибо для ее решения надо найти об
щий метод ( а л г о р и т м |
или м а ш и |
н у), позволяющий |
||
автоматически решить вопрос о применимости |
л ю б о й |
|||
заданной машины к л ю б о й |
заданной |
конфигурации. |
||
Предположим теперь, |
что |
на ленте |
машины |
Тьюринга |
изображен ее же собственный шифр (т. е. шифр функцио нальной схемы), записанный в алфавите машины*). Если машина применима к такой конфигурации, то будем назы вать ее самоприменимой, в противном случае — несамоприменимой. Тогда можно сформулировать следующую мас совую проблему.
П р о б л е м а |
р а с п о з н а в а н и я с а м о п р и - |
м е н и м о с т и, |
По любому заданному шифру установить, |
*' Предполагается, что по внешнем алфавите машины имеются символы Л , 0, 1, а может быть, и другие.
132
к |
какому классу относится машина, зашифрованная им: |
||
к |
классу самопрпменимых или несамоприменимых? |
||
|
Т е о р е м а . |
Проблема распознавания |
самопримени |
мости, алгоритмически неразрешима.
Очевидно, из этой георемы немедленно вытекает и алго ритмическая неразрешимость более общей проблемы при менимости.
Д о к а з а т е л ь с т в о . Предположим, напротив, что такая машина А существует. Тогда в А всякий самоприме нимый шифр перерабатывается в какой-то символ а (име ющий смысл утвердительного ответа на поставленный во прос о самоприменимости), а всякий несамоприменимый шифр — в другой символ т (имеющий смысл отрицательного ответа на поставленный вопрос). В таком случае можно бы ло бы построить и такую машину В, которая по-прежнему перерабатывает несамоприменимые шифры в т, в то время как к самоприменимым шифрам В уже не применима. Этого можно было бы добиться путем такого изменения схемы машины А, чтобы после появления символа а вместо сиг нала об остановке машина стала бы неограниченно повто рять этот же символ.
Итак, В применима ко всякому несамоприменимому шифру (вырабатывая при этом символ т) и не применима к самоприменимым шифрам. Однако это приводит к проти воречию. Действительно,
1) пусть эта машина В самоприменима, тогда она при менима к своему шифру В' и перерабатывает его в символ т;
но ведь появление этого символа как раз |
и должно озна |
|
чать, что В |
несамоприменима; |
|
2) пусть |
В несамоприменима, тогда она |
не применима к |
В', что должно означать как раз, что В{В') |
самоприменима. |
Полученное противоречие доказывает теорему.
На основании доказанной теоремы удается установить алгоритмическую неразрешимость и некоторых других массовых проблем, возникающих в теории машин Тьюрин
га. При этом широко применяется метод сводимости, |
за |
||||||||
ключающийся |
в следующем. |
|
|
|
|
|
|||
Пусть для |
каждой единичной задачи at, входящей |
в се |
|||||||
рию задач {а; }, |
эффективно |
указана |
единичная |
задача |
|||||
/(а; ), входящая в серию {bt}, |
и такая, что коль скоро извест |
||||||||
но решение задачи |
f{at), то из него извлекается |
и |
решение |
||||||
задачи at. В таком случае естественно говорить, |
что массо |
||||||||
вая |
проблема |
{ог} |
сведена |
к |
массовой |
проблеме {bt}. |
При |
||
этих |
условиях |
ясно также, |
что если имеется алгоритм |
для |
133