
- •Вопросы для подготовки к экзамену
- •Интуитивное определение алгоритма и вычислимой функции
- •Частично и примитивно рекурсивные функции
- •Вычислимость рекурсивных функций. Тезис Черча
- •Определение оператора подстановки, примеры применения
- •Определение оператора примитивной рекурсии, примеры применения
- •Определение оператора минимизации, примеры применения
- •Построение одноместных рекурсивных функций
- •Построение двухместных рекурсивных функций
- •Машины Тьюринга. Команды в виде четверок и в виде пятерок
- •Функции, вычислимые по Тьюрингу. Тезис Тьюринга
- •Одноместные функции, вычислимые по Тьюрингу
- •Двухместные функции, вычислимые по Тьюрингу
- •Машины с неограниченными регистрами
- •Нормальные алгоритмы Маркова
- •Машины Поста. Функции, вычислимые по Посту
- •Нумерация множества упорядоченных пар натуральных чисел
- •Нумерация машин Тьюринга и вычислимых функций
- •Существование функции, невычислимой по Тьюрингу
- •Разрешимые отношения: определение и примеры
- •Свойства дополнения, объединения и пересечения разрешимых функций
- •Неразрешимость проблемы остановки
- •Универсальные функции
- •Теорема о параметризации
- •Меры сложности алгоритмов
-
Машины с неограниченными регистрами
МНР – это лента, бесконечная в одну сторону и разбитая на ячейки, которые называются регистрами и обозначаются R1,R2,… Каждый регистр содержит некоторое неотрицательное целое число. Содержимое регистра Rn обозначается rn, причем, только в конечном числе регистров rn0.
Программа МНР – это конечный список команд I1,I2,…,Is 4-х видов:
команда обнуления Z(n) (по этой команде rn:0),
команда прибавления единицы S(n) (по этой команде rn:rn1),
команда переадресации T(m,n) (по этой команде rn:rm),
команда условного перехода J(m,n,q).
Работа МНР начинается с выполнения команды I1. Допустим, что МНР выполняет команду Ik, k1,2,…,s. Если Ik одна из трех т.н. арифметических команд Z(n), S(n) или T(m,n), то МНР меняет соответствующим образом содержимое регистра Rn и переходит к следующей команде Ik1. Если же IkJ(m,n,q), то МНР при rnrm переходит к команде Iq и при rnrm переходит к следующей команде Ik1. МНР останавливается тогда, когда нет команды для выполнения.
Конфигурацией МНР называется слово, составленное из символов на регистрах ленты, включая все ненулевые символы.
Функция f(x1,…,xn) называется вычислимой МНР, если существует МНР, которая, начиная работу с конфигурацией x1…xn000…, останавливается с конфигурацией y…, если f(x1,…,xn) определено и равно y, и не останавливается, если f(x1,…,xn) не определенно.
Пример 1. Программа МНР для вычисления функции сигнума sg(x):
команды |
конфигурации |
||
|
0000 |
(x1)000 |
|
I1 |
J(1,2,4) |
0000 |
(x1)000 |
I2 |
Z(1) |
|
0000 |
I3 |
S(1) |
|
1000 |
Пример 2. Программа МНР для вычисления сложения xy:
команды |
конфигурации |
||||||
|
x000 |
xy00 |
|
|
|
|
|
I1 |
J(2,3,5) |
x000 |
xy00 |
(x1)y10 |
… |
(xy1)y10 |
(xy)yy0 |
I2 |
S(1) |
|
(x1)y00 |
(x2)y10 |
… |
(xy)y(y1)0 |
|
I3 |
S(3) |
|
(x1)y10 |
(x2)y20 |
… |
(xy)yy0 |
|
I4 |
J(1,1,1) |
|
(x1)y10 |
(x2)y20 |
… |
(xy)yy0 |
|
-
Нормальные алгоритмы Маркова
Нормальный алгоритм Маркова (НАМ) над конечным алфавитом V состоит из подстановок (команд) двух видов: ab и ab. (a,bV). Оба вида подстановок объединяются в следующем обозначении: ab(.).
Программа НАМ представляет собой конечный список подстановок:
a1b1 (.);
a2b2 (.);
…………
anbn (.).
На вход подается слово u в алфавите V, которое преобразуется подстановками программы. Допустим, что слово u преобразовано (пока) в слово u в алфавите V. Если в u не содержит ни одного из вхождений a1, …, an, то программа останавливается с результатом в u. Предположим, что aibi (.) первая из подстановок программы, для которой ai входит в u (i1,…,n). Тогда первое вхождение ai в u заменяется на bi. Если эта постановка с точкой, то программа останавливается с полученным результатом. Иначе этот процесс продолжается.
Некоторые из ai и bi могут быть пустыми.
Представим
натуральное число
как слово, состоящее из
единиц:
.
Числовая
-местная
функция
называется вычислимой
по Маркову,
если существует НАМ, который слово
преобразует в слово
,
если функция
определена и равна
,
и останавливается без результата, если
функция
не определена.
Пример 1. НАМ для вычисления функции сигнума sg(x):
1 |
b1b |
2 |
a1b |
3 |
1a |
4 |
a1. |
5 |
b11. |
Пример 2. НАМ для вычисления сложения xy:
1 |
a*a |
2 |
a11a |
3 |
a. |
4 |
1a |