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

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

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

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

Добавлен: 19.10.2024

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

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

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

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

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

Из школьного курса также известно, что корни квадрат­ ного уравнения выражаются через его коэффициенты при помощи формулы, в которой фигурируют знаки арифме­ тических операций и знак радикала (второй степени). Для уравнений третьей и четвертой степеней также установлены формулы в радикалах, которые, правда, значительно слож­ нее, причем в них встречаются «многоэтажные» радикалы. Однако поиски подобных формул в радикалах для уравне-' ний степени выше четвертой, продолжавшиеся до начала X I X века, оказались безуспешными, пока, наконец, был установлен следующий замечательный результат.

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

В обоих этих случаях доказательства невозможности -сами оказались возможными, поскольку имелись два точных определения, дающих ответы на вопросы: «что значит пост­ роение с помощью циркуля и линейки?» и «что значит реше­ ние уравнения в радикалах?». Заметим, кстати, что в этих

двух

определениях

уточняется смысл

некоторых алгорит­

мов

с п е ц и а л ь н о г о в и д а , а

именно алгоритма

решения уравнений

в р а д и к а л а х

(а не вообще алго-

66


ритма для решения уравнений) и алгоритма трисекции лю­ бого угла при помощи циркуля и линейки (а не вообще алго­ ритма трисекции). Для о б щ е г о понятия алгоритм мы точного определения до недавнего времени не имели, и по­ этому выработка такого определения стала одной из важных задач современной математики. Весьма важно подчерк­ нуть, что выработку определения понятия алгоритм (как, впрочем, и всякого другого математического определения) Нельзя рассматривать как произвольное соглашение мате­ матиков об одинаковом понимании термина алгоритм. При формулировке этого определения пришлось преодолеть трудности, заключающиеся в том, что предлагаемое опре­ деление должно правильно отражать сущность того поня­ тия, которое фактически уже имелось, хотя и в расплыв­ чатом виде, и которое иллюстрировалось нами на многочис­ ленных примерах. С этой целью, начиная с тридцатых го­ дов XX века, был предпринят ряд исследований для выяв­ ления всех тех средств, которые фактически привлекаются для построения алгоритмов. Задача состояла в том, чтобы на этой основе дать определение понятия алгоритм, ко­ торое было бы совершенным не только с точки зрения фор­ мальной точности, но, главное, и с точки зрения фактиче­ ского соответствия сущности определяемого понятия. При этом различные исследователи исходили из разных техни­ ческих и логических соображений, и вследствие этого было выработано несколько определений понятия алгоритм. Однако впоследствии выяснилось, что все эти определения равносильны между собой и, следовательно, определяют одно и то же понятие; это и есть современное точное поня­ тие алгоритм.

То обстоятельство, что все способы уточнения понятия алгоритм, несмотря на свое различие и многообразие, всегда приводили и приводят по существу к одному и то­ му же результату, имеет большое познавательное значение; оно свидетельствует как раз об удачности выработанного определения.

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

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

в*

67


она могла служить предметом математического исследова­ ния. Впервые это было сделано английским математиком

Тьюрингом,

который

предложил одну общую

и вместе

с тем очень

простую концепцию вычислительной

машины.

Следует отметить, что

машина Тьюринга была

описана

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

§ 8. МАШИНА ТЬЮРИНГА

Отличительные особенности машины Тьюринга по сравнению с электронными машинами, описанными в § 5, 6, заключаются в следующем:

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

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

2. В машине Тьюринга часть памяти*' изображается в виде неограниченной с обеих сторон ленты, разбитой на

ячейки.

 

 

Очевидно, ни в одной реально

осуществимой

машине

не может быть бесконечной памяти

(бесконечной

ленты),

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

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

8.1. Определение машины Тьюринга. Перейдем к по­ дробному описанию машины Тьюринга.

*) А именно, так называемая внешняя память.

68


1. Машина располагает конечным числом знаков (сим­

волов) Si, s2>

sh, образующих так называемый

внешний

алфавит, в

котором

кодируются

сведения, подаваемые

в машину,

а также

те, которые

вырабатываются

в ней.

Для общности последующих рассмотрений удобно принять, что среди знаков внешнего алфавита имеется пустой знак (пусть это будет для определенности s^, посылка которого (вписывание которого) в какую-либо ячейку ленты (памяти) гасит (стирает) тот знак, который в ней раньше хранился, и оставляет ее пустой. О пустой ячейке будем говорить, что она хранит пустой знак.

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

В

качестве

начальной

информации на ленту

можно

подать любую

конечную

систему знаков внешнего

алфа­

вита

(любое слово в этом

алфавите), расставленную произ­

вольным образом по ячейкам. Однако в зависимости от того, какая была подана начальная информация %, воз­ можны два случая:

а) после конечного числа тактов машина останавливает­ ся, подавая сигнал об остановке; при этом на ленте оказы­ вается изображенной некоторая информация 25. В таком случае говорят, что машина применима к начальной ин­

формации %1

и перерабатывает

ее в результирующую ин­

формацию 33;

 

 

 

 

б) остановка и сигнал об остановке никогда не насту­

пают. В таком случае говорят, что машина

не применима

к начальной

информации

3f.

 

 

Говорят, что машина

решает

некоторый

класс задач,

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

69