- •Глава 4 алгоритмы и машины тьюринга
- •4.1. О понятии алгоритма. Тезис Чёрча
- •4.2. Машина Тьюринга
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •4.3. Рекурсивные функции
- •О s I
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Разрешимые и перечислимые множества
- •Универсальные функции
- •Задачи для самостоятельного решения
- •4.5. Алгоритмически неразрешимые задачи
- •4.6. О сложности алгоритмов
- •Содержание
Разрешимые и перечислимые множества
Множество
натуральных чисел называетсяразрешимым,
если существует алгоритм, который по
каждому натуральному числу
определяет, принадлежит
множеству
или не принадлежит. Другими словами,
множество
разрешимо в том и только в том случае,
если егохарактеристическая функция
![]()
вычислима.
Понятно, что если
множества
и
разрешимы, то множества![]()
![]()
также разрешимы. Любое конечное множество
является разрешимым. Неразрешимые
множества также существуют, так как
разрешимые подмножества образуют
счётное множество, а все подмножества
множества натуральных чисел образуют
множество мощности континуума.
Множество
называетсяперечислимым,
если его полухарактеристическая
функция
![]()
является вычислимой.
Теорема 1.
Пусть
– подмножество множества натуральных
чисел. Тогда следующие условия
эквивалентны:
(1) множество
перечислимо;
(2)
есть область определения некоторой
вычислимой функции;
(3)
есть множество значений некоторой
вычислимой функции.
Доказательство.
очевидно.
Пусть
– вычислимая функция с областью
определения
Тогда существует машина Тьюринга
которая для каждого
вычисляет
и останавливается, а при
работает бесконечно долго. Пусть
– машина, которая запоминает значение
аргумента
и после завершения работы машины
(в случае завершения её работы) стирает
и записывает вместо него
Тогда множество значений функции,
вычисляемой машиной
будет совпадать с множеством![]()
Пусть
– множество значений функции
вычисляемой машиной Тьюринга
Обозначим через
машину, которая вначале работает, как
т.е. вычисляет
а затем заменяет
на 0. Очевидно,
вычисляет![]()
Теорема 2. Если
и
– перечислимые множества, то множества
и
также перечислимы.
Доказательство.
Сначала рассмотрим пересечение
По условию существуют машины Тьюринга
и
вычисляющие функции
и
соответственно. Обозначим через
новую машину Тьюринга, которая для
каждого натурального числа
сначала запоминает это
затем работает как
и вычисляет
а после окончания работы
(в случае окончания работы) работает
как
и вычисляет
Эта машина останавливается тогда и
только тогда, когда
поэтому она вычисляет функцию![]()
Докажем теперь
утверждение теоремы для объединения
Ввиду теоремы 1 мы можем считать, что
и
– множества значений вычислимых функций
и
соответственно. Положим
![]()
Тогда
– вычислимая функция, множество значений
которой равно
По теореме 1 множество
перечислимо.
Теорема 3.
Всякое разрешимое множество натуральных
чисел перечислимо. Если множество
и его дополнение
перечислимы, то
разрешимо.
Доказательство.
Пусть
– разрешимое множество натуральных
чисел. Тогда существует машина Тьюринга
которая, имея на входе число
выдаёт на выходе 1 при
и 0 при
Добавим к программе машины
команды так, чтобы после перехода машины
в финальное состояние продолжение
работы было следующим: 1) если на выходе
1, машина заменяет её на 0 и завершает
работу, 2) если на выходе уже был 0, то
машина далее работает безостановочно
(например, движется направо и печатает
на ленте 1). Очевидно, построенная нами
машина вычисляет функцию
Значит, множество
перечислимо.
Пусть
и
перечислимы, а
и
– машины Тьюринга, вычисляющие
соответственно функции
и
Построим новую машину Тьюринга
Она, имея на входе число
делает вначале один шаг работы машины
затем один шаг работы
затем два шага
(начиная с первого), затем два шага
и т.д. По завершению работы одной из
машин
дальнейшие действия таковы: если
завершила работу раньше, то заменяем
выходное значение 0 на 1 и производим
остановку машины, а если ранее завершится
программа
то производится просто остановка машины.
Легко видеть, что на выходе будет 1 при
и 0 при
Остановка произойдёт обязательно,
так как по условию обе функции
и
вычислимы.
Замечание. На основании теоремы 3 можно сделать вывод: разрешимые множества – это в точности перечислимые множества, имеющие перечислимые дополнения.
