Третья лекция
Содержание:
Универсальная Машина Тьюринга
Определение:
Универсальная МТ берет на вход описания другой МТ и ее вход, а на выходе выдает то, что должна выдать описанная МТ на описанном входе.
Теорема:
УМТ(Универсальная Машина Тьюринга) существует
Как описать МТ
Состояния кодируем числами: $Q={0, 1, 2,…, k}$
Алфавит ленты кодируем числами: $A={0,…,n}$
Состояние $0$ - всегда начальное.
Символ $0$ - всегда пустой.
Удобно кодировать числами.
$i\in A$
$i→00…0100…0$ ($i$ нулей слева, $n-1$ нулей справа)
Тогда любой символ из $A$ кодируется $n+1$ символом
Тоже с символами состояний
Движения ленты:
0) Стоять на месте
1) Вправо
2) Влево
Описание МТ состоит из строк вида:
#<a>#<q>#M<a'>#<q'>#<d>#
a - наибольшая буква
q - текущее состояние
a’ - новая буква
q’ - новое состояние
d - движение ленты
3 Ленты: описание МТ
|лента машины| | | | |
состояние символ
|лента состояния| | | |
|рабочая лента|лента описанной машины|
Считаем, что умеем:
- переходить к указателю # (пропускать все символы до #)
- копировать с одной ленты на другую содержимое между двумя указателями
$q_{0}◄u►$ $q_{1}◄u►$
→→→→→
$q_{0}$# $q_{1}$#
Перенос:
$q_{0}◄u►$ $q_{1}►$
→→→→→
$q_{0}$# $q_{1}$#$u$
Сравнение слов:
$q_{0}◄u►$ $q_{d}◄u►$
→→→→→
$q_{0}◄V►$ $q_{d}◄V►$
Моделирование такта
Считаем, что начинаем со следующего состояния:
- на первой и второй лентах головки находятся над левой ячейкой.
- на третьей ленте мы в начале текущего символа описываемой машины.
- Перейти до # и скопировать код текущего символа рабочей ленты.
- Найти блок в описании МТ с символом и состоянием с ленты состояния.
- Если блок не найден - передать управление финальной МТ.
- В найденном блоке скопировать ссимвол состояния на ленту состояния, а символ скопировать на рабочую ленту.
- Опознать движение ленты и выполнить его на рабочей ленте.
- Вернуть указатели 1 и 2 ленты в левую ячейку.
- Вернуться на шаг 1.
Подготовительная машина
- Пропускает на ленте машины описание машины
- Убирает символ $Ⓧ$
- Копирует вход на рабочую ленту
-
Устанавливает головку на начало отмеченной ячейки
- Пишет на ленту состояние $0$
- Сдвинает головки 1 и 2 влево
Частично рекурсивные функции
Простейшие функции:
$o(x) = 0$
$\delta (x)=x+1$
$n\leq I_{n}^{m}(x_{1}, x_{2},…, x_{m})=x_{n}$
Разрешенные действия:
- Суперпозиция
$f_{1}(x_{1}, x_{2},…, x_{n})$ $f_{2}(x_{1}, x_{2},…, x_{n})$… $f_{m}(x_{1}, x_{2},…, x_{n})$
и $g_{1}(g_{1}, g_{2},…, g_{n})$ - некоторая функция, тогда:
$g(f_{1}(x_{1}, x_{2},…, x_{n}), f_{2}(x_{1}, x_{2},…, x_{n}… f_{m}(x_{1}, x_{2},…, x_{n})=h(x_{1}, x_{2},…, x_{n})$ - суперпозиция $f_{1},…f_{n}$
- Примитивная рекурсия
Пусть заданы $f(x_{1},..x_{n})$
функции
$h(x_{1},..x_{n},k,y)$
Определим функцию $g(x_{1},…x_{n},k)$
$g(1{1},…x{n},0)=f(x_{1},…x_{n})$ - база
$g(x_{1},…x_{n}, k+1)=h(x_{1},…,x_{n}, k, g(x_{1},…x_{n}, k))$ - примитивная рекурсия ($g(x_{1},…x_{n}, k)$ - шаг)
- Примитивно рекурсивная функция
- Минимилизация
Пусть задана $g(x_{1},…x_{n}, y)$
Определим $f(x_{1},…x_{n})$ - наименьший $у$ такой, что $g(x_{1},…x_{n}, y)=0$
$y-1=\mu y[S(y)=0]$
Определение(Общерекурсивная функция):