- •Вопросы для подготовки к экзамену
- •Интуитивное определение алгоритма и вычислимой функции
- •Частично и примитивно рекурсивные функции
- •Вычислимость рекурсивных функций. Тезис Черча
- •Определение оператора подстановки, примеры применения
- •Определение оператора примитивной рекурсии, примеры применения
- •Определение оператора минимизации, примеры применения
- •Построение одноместных рекурсивных функций
- •Построение двухместных рекурсивных функций
- •Машины Тьюринга. Команды в виде четверок и в виде пятерок
- •Функции, вычислимые по Тьюрингу. Тезис Тьюринга
- •Одноместные функции, вычислимые по Тьюрингу
- •Двухместные функции, вычислимые по Тьюрингу
- •Машины с неограниченными регистрами
- •Нормальные алгоритмы Маркова
- •Машины Поста. Функции, вычислимые по Посту
- •Нумерация множества упорядоченных пар натуральных чисел
- •Нумерация машин Тьюринга и вычислимых функций
- •Существование функции, невычислимой по Тьюрингу
- •Разрешимые отношения: определение и примеры
- •Свойства дополнения, объединения и пересечения разрешимых функций
- •Неразрешимость проблемы остановки
- •Универсальные функции
- •Теорема о параметризации
- •Меры сложности алгоритмов
-
Машины Поста. Функции, вычислимые по Посту
В машине Поста имеется лента, разбитая на ячейки, и бесконечная в обе стороны, а также каретка, способная считывать символ с обозреваемой ячейки, заменять этот символ и двигаться вдоль ленты на одну ячейку вправо или влево. Каждая ячейка ленты либо пустая, либо содержит символ 1. Мы считаем, что пустая ячейка содержит символ 0. Записывать символ 0 – это значит стереть с ячейки символ 1. Программа состоит из пронумерованных команд. Команды рассматриваем следующих пяти видов:
i (переместить каретку вправо и перейти к команде с номером i);
i (переместить каретку влево и перейти к команде с номером i);
0i (записать в обозреваемую ячейку 0 и перейти к команде с номером i);
1i (записать в обозреваемую ячейку 1 и перейти к команде с номером i);
?i,n (если текущая ячейка содержит 0, то перейти к команде с номером i, иначе перейти к команде n;
. (остановить программу).
Номер команды перехода в командах , , 0 и 1 можно не указывать, при этом происходит переход к следующей команде.
Работа начинается с выполнения команды с номером 1, останавливается с результатом для команды с точкой и без результата для невыполнимой команды.
Представим натуральное число как слово, состоящее из единиц: . Числовая -местная функция называется вычислимой по Посту, если существует машина Поста, которая слово на ленте преобразует в слово , если функция определена и равна , и останавливается без результата или не останавливается, если функция не определена.
Пример 1. Программа Поста для вычисления функции сигнума sg(x):
1 |
|
5 |
? 6,7 |
2 |
? 3,4 |
6 |
. |
3 |
. |
7 |
0,4 |
4 |
|
|
|
Пример 2. Программа Поста для вычисления сложения xy:
1 |
? 3,2 |
6 |
|
2 |
1 |
7 |
0 |
3 |
1 |
8 |
|
4 |
? 6,5 |
9 |
0 |
5 |
4 |
10 |
. |
-
Нумерация множества упорядоченных пар натуральных чисел
Нумерация Кантора упорядоченных пар натуральных чисел.
Декартово произведение – множество всех упорядоченных пар натуральных чисел является не только счетным, но эффективно счетным множеством. Это значит: существует биекция , такая, что функции и вычислимые. Биекция (или ) называется нумерацией, или перечислением, множества , если функции и вычислимые.
Из всех возможных нумераций множества мы рассмотрим нумерацию Кантора, а именно построим функции , и , такие, что, если и , то , докажем, что функции , , – примитивно рекурсивные. Обратная функция не является числовой функцией (ее значениями являются не числа, а упорядоченные пары), но, поскольку и примитивно рекурсивны, то эта функция будет вычислимой с точки зрения интуитивного определения алгоритма.
Нумерация Кантора, т.е. нахождение номера пары , где , происходит следующим образом:
Строка, начинающаяся с пары , содержит пар. Первые строк содержат пар.
Следовательно, , и ПРФ.
Чтобы показать, что соответствия и являются функциями, причем, примитивно рекурсивными, мы обозначим: . Тогда из равенства следует, что и .
Легко увидеть, что это наибольшее число , что . Чтобы применить -оператор, мы рассмотрим это наименьшее число , что . Тогда . Теперь последовательно построим следующие ПРФ: ; ; ; .
Мы доказали, что существуют такие (примитивно рекурсивные) функции , и , что для всех .
Покажем, что биекция. Пусть . Тогда по определению понятия функции получим, что и .
Сформулируем теперь доказанное утверждение в виде теоремы.
Теорема. Существуют примитивно рекурсивные биекция и функции и , такие, что для всех .
Примечание. Записи и не являются доказательствами примитивной рекурсивности функций и , так как функция не является примитивно рекурсивной (даже, числовой) функцией.