Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Трахтенброт, Б. А. Алгоритмы и вычислительные автоматы

.pdf
Скачиваний:
33
Добавлен:
21.10.2023
Размер:
9.86 Mб
Скачать

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

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

Ч А С ТЬ II Машины Тьюринга

§ 7. НЕОБХОДИМОСТЬ УТОЧНЕНИЯ ПОНЯТИЯ АЛГОРИТМА

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

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

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

С другой стороны,

запоминающее устройство

(память)

у современных машин

имеет ограниченный объем

(так как

60

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

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

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

числа.

Естественно

ожидать,

что такой алгоритм

труд­

нее построить, но перспектива обладания таким

алгорит­

мом является привлекательной. Однако можно

идти

еще

дальше. Извлечь корень н-й степени из числа а

— значит

решить

уравнение хп

— а = 0

(найти корень уравнения).

Поэтому можно сформулировать еще более общую задачу.

Построить

алгоритм,

позволяющий для

любого

урав­

нения вида

 

 

 

 

апх"

+ ап_хх"~

1 +... + а, х + а0 =

0

(*)

(п — произвольное натуральное число) найти все его кор­ ни*''.

*) Точнее, для любого натурального числа k найти десятичные приближения корней по недостатку и по избытку с точностью до 1/10*.

62

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

нуемого алгеброй многочленов,

и

сводится к построению

и обоснованию этого алгоритма;

но вместе с тем и значение

его весьма внушительно.

 

 

7.2. Распознавание выводимости.

Уже приведенные при­

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

Построить алгоритм, позволяющий решать любую мате­ матическую задачу.

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

нятно,

что значит «любая математическая задача». Вместе

с тем

большая притягательная сила

подобной

проблемы,

ее заманчивость не нуждаются в

особом

рекламиро­

вании.

 

 

 

Эта проблема имеет свою историю. Еще великий немец­ кий математик и философ Лейбниц (1646—1716 гг.) мечтал о создании всеобщего метода, позволяющего эффективно решать любую задачу. Хотя такого всеобщего алгоритма ему и не удалось найти, Лейбниц все же считал, что насту­ пит время, когда такой алгоритм будет найден и тогда любой спор между математиками будет решаться автомати­ чески, с карандашом и бумагой, в соответствии с этим всебщим алгоритмом.

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

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

63

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

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

специальном

алфавите,

содержащем

наряду с употреби­

тельными в математике знаками вроде букв, скобок

и т. д.,

еще и другие специальные

знаки,

изображающие

логиче­

ские операции,

например

отрицание,

логическую

сумму

и т. д. Однако главная

аналогия

с ассоциативными исчи­

слениями заключается

в том, что сам

процесс логического

вывода из

какой-нибудь посылки

R

следствия.5

может

быть описан

в

виде процесса формальных преобразований

слов, очень сходных с допустимыми подстановками в ас­ социативном исчислении. Это позволяет говорить о логи­ ческом исчислении, в котором указана система допустимых преобразований, изображающих элементарные акты логи­ ческого умозаключения, из которых складывается любой сколь угодно сложный формально-логический вывод. При­ мером такого допустимого преобразования является вычер­ кивание в формуле двух рядом стоящих знаков отрицания; скажем, «непекрасивый» может быть преобразовано в «кра­ сивый» (интересно сравнить это допустимое преобразование с подстановкой аа — Л в ассоциативном исчислении при­ мера 4 из п. 4.4).

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

от слова, изображающего

посылку R, к

слову, изобража­

ющему предложение S. Проблему распознавания выводи­

мости можно теперь сформулировать так.

 

Для

любых двух слов (формул) R и S в логическом исчис­

лении

узнать,

существует

дедуктивная

цепочка, ведущая

от R к S, или

нет.

 

 

64

Решение

понимается в

смысле

алгоритма,

дающего

ответ на любой из вопросов

такого

типа (любые

R

и S).

Нетрудно

теперь сообразить, что создание такого

алго­

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

утверждения

5

(например,

формулировка

какой-нибудь

теоремы) в такой

теории

понимается как его логическая

выводимость

из системы аксиом, взятой в качестве

посыл­

ки R Но тогда, применяя алгоритм распознавания

выводи­

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

ли это

утверждение S в рассматриваемой теории или нет. Более

того, в случае

утвердительного ответа можно

было бы эф­

фективно найти в логическом

исчислении соответствующую

дедуктивную цепочку, а по ней восстановить

цепь

умоза­

ключений, составляющих

доказательство рассматриваемого

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

И действительно, несмотря на долгие и упорные усилия многих крупных специалистов, трудности, связанные с та­ ким построением, остались непреодоленными. Более того, подобные трудности были вскоре обнаружены уже при по­ пытке создания алгоритмов для некоторых математических задач гораздо более частного типа; к ним, в частности, от­

носится

и проблема

Гильберта о диофантовых

уравнениях

(п.

1.3),

а также ряд других задач, о которых

будет сооб­

щено ниже.

 

 

 

 

В результате многочисленных,

но безрезультатных попы­

ток

создания таких

алгоритмов

стало ясным,

что налицо

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

7.3. Формулировка определения «алгоритма». Очевид­ но, утверждение об алгоритмической неразрешимости не­ которого класса задач, т. е. о невозможности указать со­ ответствующий разрешающий алгоритм, является не про­

сто признанием того, что такой

алгоритм нам

не известен

и никем еще не найден. Такое

утверждение

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

3 Зак. 263

65

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

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

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

Соседние файлы в папке книги из ГПНТБ