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

8_1

.doc
Скачиваний:
10
Добавлен:
14.03.2016
Размер:
167.42 Кб
Скачать

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

Утверждение это весьма сильное. Оно означает не только то, что мы не знаем сейчас соот­ветствующего алгоритма, оно говорит о том, что такого алгоритма мы никогда най­ти не сможем. Долгое время математики считали, что для любой четко сформули­рованной проблемы алгоритм найти можно. Например, Д. Гильберт считал, что в математике не может быть неразрешимых проблем: «In mathematics there is nothing which cannot be known». Его целью в начале XX века было представить математи­ку в виде такой формальной системы, что в ней все проблемы могли бы быть сфор­мулированы в виде утверждений, которые либо истинны, либо ложны, а также най­ти алгоритм, который по заданному утверждению в этой системе мог бы опреде­лить его истинность. Гильберт рассматривал эту проблему как фундаментальную открытую проблему математики.

Впервые Курт Гедель в 1931 году представил строго сформулированную математическую проблему, для которой не существует решающего ее алгоритма. Сам по себе этот факт является удивительным, однако он имеет также большое практи­ческое значение. Для проблем, алгоритмическая неразрешимость которых доказа­на, бессмысленно искать методы их решения точно так же, как бессмысленны по­иски вечного двигателя. Оказалось, что таких алгоритмически неразрешимых про­блем много, например, не существует алгоритма проверки общезначимости логи­ческой формулы в логике предикатов. Мы сейчас сформулируем одну из таких проблем и докажем ее алгоритмическую неразрешимость. Эта проблема известна как «проблема останова». Она состоит в том, что не существует алгоритма, позволяющего по описанию произвольного алгоритма и его исходных данных определить, останавливается ли этот алгоритм на этих данных или работает бесконечно.