Главная > Разное > Логика, автоматы, алгоритмы
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

§ 12.11. Тезис Чёрча

Вернемся к поставленной нами задаче — построить класс вычислимых функций. Рещая эту задачу, мы последовательно построили класс элементарных функций, затем класс примитивно-рекурсивных функций и, наконец, класс общерекурсивных функций. Решили ли мы поставленную задачу? Потребуется ли нам расширять и класс общерекурсивных функций?

Многочисленные попытки расширения класса общерекурсивных функций не привели к успеху. В 1936 г. Чёрч выдвинул тезис, согласно которому всякая эффективно вычислимая функция (эффектно разрешимый предикат) является общерекурсивной (см. [110]).

В силу этого тезиса класс вычислимых функций совпадает с классом общерекурсивных функций.

Тезис Чёрча нельзя доказать, так как в нем, с одной стороны, фигурирует расплывчатое понятие вычислимой функции, а с другой стороны — точное математическое понятие общерекурсивной функции. Этот тезис является научной гипотезой, в пользу которой высказан ряд важных доводов и которую не удалось опровергнуть. Одним из таких доводов является то, что различные уточнения понятия «алгоритм», сделанные разными авторами, оказались равносильными. Так, например, описанный в § 12.4 нормальный алгоритм Маркова оказался сводимым к общерекурсивным функциям.

Выше мы отождествили понятия «алгоритм» и «вычисление значений арифметической функции».

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

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

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

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

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

Иначе говоря, проблема была бы решена, если бы существовала, например, такая общерекурсивная функция :

Удалось доказать [42], что подобной общерекурсивной функции не существует. Поэтому оказывается алгоритмически неразрешимой проблема распознавания того, какие системы Е определяют общерекурсивные функции. Множество общерекурсивных функций оказалось счетным, но не эффективно.

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

(12.32)

(для предиката, соответственно ) .

Так как примитивно-рекурсивные функции могут быть эффективно перенумерованы, то задача может быть сведена к нахождению такой вычислимой функции :

Эта функция оказалась не общерекурсивной и, следовательно, невычислимой.

Условие (12.32) можно несколько ослабить, и все-таки задача остается алгоритмически неразрешимой.

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

Алгоритмически неразрешима также следующая задача: для любого примитивно-рекурсивного предиката узнать, справедливо ли

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

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

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

<< Предыдущий параграф Следующий параграф >>
Оглавление