
- •Основы теории алгоритмов и нумераций
- •Оглавление
- •Введение*
- •Глава 1. Рекурсивные и примитивно-рекурсивные функции
- •Обозначения
- •Примитивно рекурсивные функции
- •Примеры
- •Функции Аккермана
- •Примеры
- •Общерекурсивные и частично рекурсивные функции
- •Глава 2. Машины тьюринга
- •Определения
- •Табличноеиграфическоезадания машинТьюринга
- •Графическое представление
- •Табличное значение машины
- •Некоторые операции над машинами Тьюринга
- •Композиция машин Тьюринга
- •Разветвление машин Тьюринга
- •Универсальная машина Тьюринга
- •Тезис Черча. Связь рекурсивных функций с машинами Тьюринга
- •Примеры
- •Глава 3. Вычислимость и разрешимость
- •Обсуждение
- •Нумерации алгоритмов
- •Некоторые теоремы в теории алгоритмов.
- •Глава 4. Рекурсивные и рекурсивно перечислимые множества.
- •Характеристические функции множеств.
- •Рекурсивные и примитивно рекурсивные множества.
- •Рекурсивно перечислимые множества.
- •Основная теорема.
- •Примеры.
- •Глава 5. Основные нумерации в теории алгоритмов
- •Нумерация пар и-ок чисел.
- •Кодирование всех-ок.
- •Нумерация конечных множеств.
- •Нумерации Клини и Поста.
- •Нумерация семейства всех двухэлементных множеств.
- •Глава 6. Степени неразрешимости.
- •- Сводимость.
- •- Степени.
- •Теорема о редукции.
- •Примеры.
- •Глава 7. Нумерованные совокупности.
- •Нумерации множества.
- •Некоторые теоремы о нумерациях множеств
- •Глава 8. Приложения теории алгоритмов к разрешимости некоторых проблем.
- •Теорема Райса.
- •Разрешимость проблем распознавания и классификации.
- •Литература
- •Основы теории алгоритмов и нумераций.
Примеры
Доказать, что
.
Доказать, что
.
Доказать, что простейшие функции
- мажорируемы.
Доказать, что функция, полученная с помощью суперпозиции из
- мажорируемых функций,
- мажорируемы.
Доказать, что функция, полученная из
- мажорируемых функций с помощью примитивной рекурсии,
- мажорируема.
Рассмотрим следующие функции Аккермана:
;
;
;
.
Назовем всюду определенную функцию
- мажорируемой, если существует натуральное
число
такое, что
.
Доказать, что
и
- общерекурсивны;
;
Функция
не является примитивно рекурсивной;
;
;
Простейшие функции
- мажорируемы;
Функция, полученная с помощью суперпозиции из
- мажорируемых функций,
- мажорируема;
Функция, полученная из
- мажорируемых функций с помощью примитивной рекурсии,
- мажорируема.
Общерекурсивные и частично рекурсивные функции
Функция Аккермана
является примером вычислимой, но не
примитивно рекурсивной функции. Этот
пример говорит о том, что средства
построения вычислимых функций нуждаются
в расширении. Операторы кратной рекурсии
(то есть по нескольким переменным
одновременно) не дают желаемого замыкания
класса вычислимых функций: было показано,
что для любого
найдется функция, определимая с помощью
- кратной рекурсии (
- рекурсивная), но не (
)
- рекурсивная.
Более подходящим для этой цели является
неограниченный
- оператор (в дальнейшем прилагательное
"неограниченный" будем опускать).
Будучи применен к вычисляемой функции,
- оператор снова дает вычислимую функцию,
то есть сохраняет вычислимость.
Действительно, для вычисления функции
на
существует следующая простая процедура:
вычисляем
на наборах
до тех пор, пока не получим значение
ноль. Однако в отличии от рассмотренных
ранее процедур, она может не привести
к результату: это произойдет в случае,
когда на данном наборе
уравнение
не имеет решения. В таком случае функция
считается неопределенной. Например,
обратная к
функция
не определена при
.
Таким образом, среди рекурсивных функций
появляются не полностью определенные,
т.е. частичные функции; операторы над
частичными функциями снова порождают
частичные функции. При этом характер
неопределенности может оказаться
довольно сложным, а именно: для данного
набора значений
не найдется способа установить, определена
ли функция
на этом наборе, и нам придется продолжать
процесс вычисления неопределенное
время, не зная, остановится он или нет.
В случае, когда функция
,
к которой применяется
- оператор, сама является частичной,
функция
вычисляется с учетом следующего условия:
если для
,
а
не определена, то и
не определена.
Арифметические функции, которые могут быть построены из элементарных арифметических функций с помощью конечного числа операторов суперпозиции примитивной рекурсии и наименьшего корня, называются частично рекурсивными функциями.
Если такие функции оказываются к тому же всюду определенными, то они называются общерекурсивными функциями.
В этом определении, как и в определении примитивно рекурсивных функций, предусматривается возможность выполнения всех допустимых операций в любой последовательности и любое конечное число раз.
Частично рекурсивные функции представляют собой наиболее общий класс конструктивно определяемых арифметических функций.
Понятие частично рекурсивной функции - одно из главных понятий теории алгоритмов. Значение его состоит в следующем.
Каждая стандартно заданная частично рекурсивная функция вычислима путем определенной процедуры механического характера.
Какие бы классы точно очерченных алгоритмов до сих пор фактически не строились, во всех случаях неизменно оказывалось, что числовые функции, вычислимые посредствам алгоритмов этих классов, были частично рекурсивными. Поэтому общепринятой является следующая естественно научная гипотеза, известная под именем тезиса Черча:
класс алгоритмических (или машинно) вычислимых числовых функций совпадает с классом всех частично рекурсивных функций.
Этот тезис дает алгоритмическое толкование частично рекурсивных функций.
Практически понятием частично рекурсивных функций пользуются для доказательства алгоритмической разрешимости или неразрешимости проблем. Использование же частично рекурсивных функций для представления того или иного конкретного алгоритма практически нецелесообразно ввиду сложности такого процесса алгоритмизации.