1. Тезис Черча. Связь рекурсивных функций с машинами Тьюринга

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

Следующая теорема устанавливает эквивалентность двух формализаций понятия алгоритма: машин Тьюринга и рекурсивных функций.

Теорема 1. Всякая частично рекурсивная функция вычислима на машине Тьюринга и всякая функция, вычислимая на машине Тьюринга, частично рекурсивна.

Примеры

  1. Построить машину Тьюринга, которая правильно вычисляет функцию .

  2. Построить машину Тьюринга, которая правильно вычисляет функцию .

  3. Построить следующие машины Тьюринга:

. Перенос нуля.

. Правый сдвиг.

. Левый сдвиг.

. Транспозиция.

.Удвоение.

. Циклический сдвиг

.

  1. Построить машину Тьюринга, правильно вычисляющую функцию .

  2. Пусть функции иправильно вычислимы. Показать, что функцияправильно вычислима.

  3. Доказать, что если функция получается из правильно вычислимых функцийис помощью примитивной рекурсии, топравильно вычислима.

  4. Доказать, что если функция получается из правильно вычислимой функциис помощью- оператора, то- правильно вычислима.

  5. Пусть машина имеет следующую программу:. Какие функции,, …,вычисляет эта машина?

  6. Какую функцию вычисляет машинасо следующей программой команд:

Глава 3. Вычислимость и разрешимость

  1. Обсуждение

Всякий алгоритм, описанный в терминах частично рекурсивных функций, можно реализовать машиной Тьюринга, и наоборот. Отсюда следует, что любые утверждения о существовании или не существовании алгоритмов, сделанные в одной из этих теорий, верны и в другой. В сочетании с тезисом Черча-Тьюринга это означает, что такие утверждения можно формулировать для алгоритмов вообще, не фиксируя конкретную модель и используя результаты обеих теорий. Таким образом, возможно изложение теории алгоритмов, инвариантное (т.е. независимое) по отношению к способу формализации понятия "алгоритм" - при любой формализации основные свойства алгоритмов остаются теми же самыми. Это верно, когда речь идет о существовании или не существовании алгоритмов. Характеристики качества алгоритмов (по сложности в том или ином смысле), вообще говоря, не инвариантны по отношению к выбранной формализации.

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

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

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

Если же существует алгоритм, вычисляющий функцию , то эта функция называетсявычислимой.