
- •Глава 4 алгоритмы и машины тьюринга
- •4.1. О понятии алгоритма. Тезис Чёрча
- •4.2. Машина Тьюринга
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •4.3. Рекурсивные функции
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Разрешимые и перечислимые множества
- •Универсальные функции
- •Задачи для самостоятельного решения
- •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 можно сделать вывод: разрешимые множества – это в точности перечислимые множества, имеющие перечислимые дополнения.