- •Глава 4. Алгоритмы и машины тьюринга
- •4.1. О понятии алгоритма. Тезис Чёрча
- •4.2. Машина Тьюринга
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •4.3. Рекурсивные функции
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Разрешимые и перечислимые множества
- •Универсальные функции
- •Задачи для самостоятельного решения
- •4.5. Алгоритмически неразрешимые задачи
- •4.6. О сложности алгоритмов
Разрешимые и перечислимые множества
Множество
натуральных чисел называетсяразрешимым,
если существует алгоритм, который по
каждому натуральному числу
определяет, принадлежит
множеству
или не принадлежит. Другими словами,
множество
разрешимо в том и только том случае,
если егохарактеристическая
функция

вычислима.
Понятно,
что если множества
и
разрешимы, то множества![]()
![]()
также разрешимы. Любое конечное множество
является разрешимым. Неразрешимые
множества также существуют, так как
разрешимые подмножества образуют
счётное множество, а все подмножества
множества натуральных чисел образуют
множество мощности континуума.
Множество
называетсяперечислимым,
если его полухарактеристическая
функция

является вычислимой.
Теорема
1. Пусть
– подмножество множества натуральных
чисел. Тогда следующие условия
эквивалентны:
(1)
множество
перечислимо;
(2)
есть область определения некоторой
вычислимой функции;
(3)
есть множество значений некоторой
вычислимой функции.
Доказательство.
очевидно.
Пусть
– вычислимая функция с областью
определения
Тогда существует машина Тьюринга
которая для каждого
вычисляет
и останавливается, а при
работает бесконечно долго. Пусть
– машина, которая запоминает значение
аргумента
и после завершения работы машины
(в случае завершения её работы) стирает
и записывает вместо него
Тогда множество значений функции,
вычисляемой машиной
будет совпадать с множеством![]()
Пусть
– множество значений функции
вычисляемой машиной Тьюринга
Обозначим через
машину, которая вначале работает, как
т.е. вычисляет
а затем заменяет
на 0. Очевидно,
вычисляет![]()
Теорема
2. Если
и
– перечислимые множества, то множества
и
также перечислимы.
Доказательство.
Сначала рассмотрим пересечение
По условию существуют машины Тьюринга
и
вычисляющие функции
и
соответственно. Обозначим через
новую машину Тьюринга, которая для
каждого натурального числа
сначала запоминает это
затем работает как
и вычисляет
а после окончания работы
(в случае окончания работы) работает
как
и вычисляет
Эта машина останавливается тогда и
только тогда, когда
поэтому она вычисляет функцию![]()
Докажем
теперь утверждение теоремы для объединения
Ввиду теоремы 1 мы можем считать, что
и
– множества значений вычислимых функций
и
соответственно. Положим

Тогда
– вычислимая функция, множество значений
которой равно
По теореме 1 множество
перечислимо.
Теорема
3. Всякое
разрешимое множество натуральных чисел
перечислимо. Если множество
и его дополнениеN
перечислимы, то
разрешимо.
Доказательство.
Пусть
– разрешимое множество натуральных
чисел. Тогда существует машина Тьюринга
которая, имея на входе число
выдаёт на выходе 1 при
и 0 при
Добавим к программе машины
команды так, чтобы после перехода машины
в финальное состояние продолжение
работы было следующим: 1) если на выходе
1, машина заменяет её на 0 и завершает
работу, 2) если на выходе был 0, то машина
далее работает безостановочно (например,
движется направо и печатает на ленте
1). Очевидно, построенная нами машина
вычисляет функцию
Значит, множество
перечислимо.
Пусть
иN
перечислимы,
а
и
– машины Тьюринга, вычисляющие
соответственно функции
и
Построим новую машину Тьюринга
Она, имея на входе число
делает вначале 1 шаг работы машины
затем 1 шаг работы
затем 2 шага
(начиная с первого), затем 2 шага
и т.д. По завершению работы одной из
машин
дальнейшие действия таковы: если
завершила работу раньше, то заменяем
выходное значение 0 на 1 и производим
остановку машины, а если ранее завершится
программа
то производится просто остановка машины.
Легко видеть, что на выходе будет 1 при
и 0 при
N
Остановка
произойдёт обязательно, так как по
условию обе функции
и
вычислимы.
Замечание. На основании теоремы 3 можно сделать вывод: разрешимые множества – это в точности перечислимые множества, имеющие перечислимые дополнения.
