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

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

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

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

Добавлен: 19.10.2024

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

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

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

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

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

Ч А С ТЬ 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