- •Вопросы для подготовки к экзамену
- •Интуитивное определение алгоритма и вычислимой функции
- •Частично и примитивно рекурсивные функции
- •Вычислимость рекурсивных функций. Тезис Черча
- •Определение оператора подстановки, примеры применения
- •Определение оператора примитивной рекурсии, примеры применения
- •Определение оператора минимизации, примеры применения
- •Построение одноместных рекурсивных функций
- •Построение двухместных рекурсивных функций
- •Машины Тьюринга. Команды в виде четверок и в виде пятерок
- •Функции, вычислимые по Тьюрингу. Тезис Тьюринга
- •Одноместные функции, вычислимые по Тьюрингу
- •Двухместные функции, вычислимые по Тьюрингу
- •Машины с неограниченными регистрами
- •Нормальные алгоритмы Маркова
- •Машины Поста. Функции, вычислимые по Посту
- •Нумерация множества упорядоченных пар натуральных чисел
- •Нумерация машин Тьюринга и вычислимых функций
- •Существование функции, невычислимой по Тьюрингу
- •Разрешимые отношения: определение и примеры
- •Свойства дополнения, объединения и пересечения разрешимых функций
- •Неразрешимость проблемы остановки
- •Универсальные функции
- •Теорема о параметризации
- •Меры сложности алгоритмов
-
Определение оператора примитивной рекурсии, примеры применения
Говорят, что функция h получена из функций f и g при помощи оператора примитивной рекурсии R и пишут hR(f,g), если:
h(x1,…,xn1,0)f(x1,…,xn1),
h(x1,…,xn1,y1)g(x1,…,xn1,y,h(x1,…,xn1,y))
для всех x1,…,xn1,yN (n1). При n1 f является константой.
Когда определено значение функции h(x1,…,xn1,y)?
h(x1,…,xn1,y) определено и равно zy, если
f(x1,…,xn1) определено и равно z0,
g(x1,…,xn1,0,z0)) определено и равно z1,
g(x1,…,xn1,1,z1)) определено и равно z2,
……………………………………………….,
g(x1,…,xn1,y1,zy1)) определено и равно zy;
иначе h(x1,…,xn) не определено.
Заметим, что оператору примитивной рекурсии в программировании соответствует цикл типа for ("для").
-
Определение оператора минимизации, примеры применения
Пусть функция f(x1,…,xn1,y) удовлетворяет условию "либо значение f(x1,…,xn1,y) не определено для всех y, либо найдется число y0, такое, что значение f(x1,…,xn1,y) определено для всех yy0 и равно xn для yy0".
Запись yf(x1,…,xn1,y)xn означает "наименьшее y, такое, что f(x1,…,xn1,y) определено и равно xn".
Говорят, что функция g получена из функции f при помощи оператора минимизации M и пишут gM(f), если g(x1,…,xn)yf(x1,…,xn1,y)xn для всех x1,…,xn,yN (n1).
Когда определено значение функции g(x1,…,xn)?
g(x1,…,xn) определено и равно y, если
f(x1,…,xn1,0) определено и не равно xn,
f(x1,…,xn1,1) определено и не равно xn,
…………………………… ….……………,
f(x1,…,xn1,y1) определено и не равно xn,
f(x1,…,xn1,y) определено и равно xn;
иначе g(x1,…,xn) не определено.
Если n1, f – биекция, то gf1 является функцией, обратной к f.
Заметим, что оператору минимизации в программировании соответствует цикл while ("пока").
-
Построение одноместных рекурсивных функций
Приведем схему примитивной рекурсии для одноместной функции:
h(0)f0const,
h(x1)g(x,h(x)).
При помощи этой схемы доказываем, что функции – сигнум sg и антисигнум являются ПРФ. Например, сигнум sg – ПРФ:
sg(0)0,
sg(x1)1soI12(x,sg(x)).
-
Построение двухместных рекурсивных функций
Приведем схему примитивной рекурсии для двухместной функции:
h(x,0)f(x),
h(x,y1)g(x,y,h(x,y)).
При помощи этой схемы доказываем, что сложение xy, умножение xy и возведение в степень xy – ПРФ. Например, функция f(x,y)xy – ПРФ:
f(x,0)xI11(x),
f(x,y1)sI33(x,y,f(x,y)).
-
Машины Тьюринга. Команды в виде четверок и в виде пятерок
Алан Тьюринг в 1936 году с целью точного определения понятия алгоритма придумал абстрактную вычислительную машину, которую впоследствии назвали машиной Тьюринга.
Устройство машины Тьюринга:
1) лента, разделенная на ячейки и бесконечная в обе стороны;
2) «вычислитель», который обозревает некоторую ячейку, считывает символ с ячейки, стирает этот символ и вписывает новый символ в ячейку, затем перемещается на одну ячейку влево или вправо;
3) конечный список внутренних состояний с начальным состоянием и заключительным состоянием ;
4) конечный список внешних символов – символов ячеек и символа , обозначающего пустую ячейку;
5) программа – список команд вида , или , причем, каждой паре соответствует не более одной пары , или (где , , , а – дополнительные символы, обозначающие перемещение вычислителя на одну ячейку влево или вправо).
В любой момент времени заполнено конечное число ячеек ленты.
Пусть s1 – крайний левый и s2 – крайний правый символ на ленте. Тогда последовательность символов ленты s1...s2 называется машинным.
Программа машины Тьюринга – это список команд, т.е. четверок вида qiajakql, qiajLql или qiajRql, где i,j,k,lN, i0, причем, каждой паре qiaj соответствует не более одной пары akql, Lql или Rql.
Конфигурация машины Тьюринга – это слово машины Тьюринга, дополненное в любом месте одним из символов qi, причем, слева и справа может быть дописано любое число символов пустой клетки a0. Смысл конфигурации s1...qisj...s2 в том, что в данный момент времени машина находиться в состоянии qi и обозревает клетку с символом sj. При этом машина выполняет команду, начинающуюся с пары qisj, и переходит к следующей конфигурации, согласно следующим правилам:
конфигурация до выполнения команды |
команда |
конфигурация до выполнения команды |
s1...qiaj...s2 |
qiajakql |
s1...qlak...s2 |
s1...sxqiaj...s2 |
qiajLql |
s1...qlsxaj...s2 |
qis1...s2, s1aj |
qiajLql |
qla0s1...s2 |
s1...qiajsx...s2 |
qiajRql |
s1...ajqlsx...s2 |
s1...qis2, s2aj |
qiajRql |
s1...s2qla0 |