- •Глава 4. Алгоритмы и машины тьюринга
- •4.1. О понятии алгоритма. Тезис Чёрча
- •4.2. Машина Тьюринга
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •4.3. Рекурсивные функции
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Разрешимые и перечислимые множества
- •Универсальные функции
- •Задачи для самостоятельного решения
- •4.5. Алгоритмически неразрешимые задачи
- •4.6. О сложности алгоритмов
Универсальные функции
Функция
двух натуральных аргументов называетсяуниверсальной
для класса всех вычислимых функций
одного аргумента, если для каждого
функция
вычислима и любая вычислимая функция
одного переменного совпадает с одной
из функций![]()
Теорема 4. Существует вычислимая функция двух аргументов, являющаяся универсальной функцией для класса всех вычислимых функций одного аргумента.
Доказательство.
Вычислимые (т.е. рекурсивные) функции
одного аргумента получаются из функций
о
s
с помощью
операций суперпозиции S,
примитивной
рекурсии R
и минимизации
М.
Значит, всякая функция одного переменного
– это слово в алфавите
о,
s,
S,
R,
M,
(, )}.
Очевидно, существует алгоритм
перебора всех таких слов (начиная со
слов длины 1), а также алгоритм
“отбраковывания” бессмысленных слов,
т.е. слов, не определяющих никакой
функции. Далее, существует алгоритм
“перевода” слова, задающего рекурсивную
функцию, в программу машины Тьюринга.
Алгоритм вычисления универсальной
функции
будет состоять теперь в следующем. Пусть
заданы
и
Включаем алгоритмы
и
и находимп-е
слово, определяющее рекурсивную функцию
Далее включаем алгоритм
составления программы для машины
Тьюринга
Запускаем машину
для аргумента, равного
и получаем![]()
Теорема 5. Не существует вычислимой всюду определённой функции двух аргументов, универсальной для класса всех вычислимых всюду определённых функций одного аргумента.
Доказательство.
Для доказательства мы применим
диагональный метод Кантора. Предположим,
что такая функция
существует. То есть при фиксированном
функция
–п-я
всюду определённая вычислимая функция
от
Рассмотрим функцию
Очевидно,
– всюду определённая вычислимая функция.
Значит,
при некотором
Но
что противоречит равенству![]()
Теорема
6. Существует
вычислимая функция
от которой никакая вычислимая функция
одного аргумента не может отличаться
во всех точках, т.е. для любой вычислимой
функции
найдётся такое
N,
что
![]()
Доказательство.
Равенство
мы понимаем в том смысле, что либо
и
оба не определены, либо обе определены
и равны друг другу. Положим
где
– универсальная функция (см. теорему
4). Если
– вычислимая функция одного аргумента,
то
при некотором
Тогда![]()
Теорема 7. Существует вычислимая функция, не имеющая всюду определённого вычислимого продолжения.
Доказательство.
Пусть
– вычислимая функция, являющаяся
универсальной для класса вычислимых
функций одного аргумента. Положим
Тогда
– вычислимая функция, определённая не
для всех
Если
– её всюду определённое вычислимое
продолжение, то
при некотором
Тогда
Значит,
существует и не равно
Таким образом, функция
не является продолжением функции
Противоречие.
Теорема 8. Существует перечислимое неразрешимое множество натуральных чисел.
Доказательство.
Рассмотрим вычислимую функцию, не
имеющую вычислимого всюду определённого
продолжения. Докажем, что её область
определения
будет искомым множеством. В самом деле,
по теореме 1 множество
перечислимо. Если бы
было разрешимым, то функция
![]()
была
бы вычислимым всюду определённым
продолжением функции
Противоречие.
Будем
говорить, что для
машины Тьюринга
проблема остановки алгоритмически
разрешима,
если существует другая машина Тьюринга
которая для каждого натурального числа
выясняет, остановится или не остановится
машина
имея на сходе число
Для определённости пусть
имея на входе число
выдаёт на выходе 1, если
останавливается (будучи запущенной на
ленте, на которой написано число
и выдаёт на выходе 0, если
не останавливается.
Теорема
9. Существует
машина Тьюринга
для которой проблема остановки
алгоритмически неразрешима.
Доказательство.
Возьмём вычислимую функцию
не имеющую всюду определённого вычислимого
продолжения (такая функция существует
по теореме 7). По теореме 8 её область
определения является неразрешимым
множеством. Пусть
– машина Тьюринга, вычисляющая функцию
Тогда проблема остановки машины
является алгоритмически неразрешимой
задачей.
