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