Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лек ТА 4ПИ заочн.doc
Скачиваний:
118
Добавлен:
27.01.2017
Размер:
523.26 Кб
Скачать
  1. Определение оператора примитивной рекурсии, примеры применения

Говорят, что функция h получена из функций f и g при помощи оператора примитивной рекурсии R и пишут hR(f,g), если:

h(x1,…,xn1,0)f(x1,…,xn1),

h(x1,…,xn1,y1)g(x1,…,xn1,y,h(x1,…,xn1,y))

для всех x1,…,xn1,yN (n1). При n1 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,y1,zy1)) определено и равно zy;

иначе h(x1,…,xn) не определено.

Заметим, что оператору примитивной рекурсии в программировании соответствует цикл типа for ("для").

  1. Определение оператора минимизации, примеры применения

Пусть функция 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 (n1).

Когда определено значение функции g(x1,…,xn)?

g(x1,…,xn) определено и равно y, если

f(x1,…,xn1,0) определено и не равно xn,

f(x1,…,xn1,1) определено и не равно xn,

…………………………… ….……………,

f(x1,…,xn1,y1) определено и не равно xn,

f(x1,…,xn1,y) определено и равно xn;

иначе g(x1,…,xn) не определено.

Если n1, f биекция, то gf1 является функцией, обратной к f.

Заметим, что оператору минимизации в программировании соответствует цикл while ("пока").

  1. Построение одноместных рекурсивных функций

Приведем схему примитивной рекурсии для одноместной функции:

h(0)f0const,

h(x1)g(x,h(x)).

При помощи этой схемы доказываем, что функции – сигнум sg и антисигнум являются ПРФ. Например, сигнум sg – ПРФ:

sg(0)0,

sg(x1)1soI12(x,sg(x)).

  1. Построение двухместных рекурсивных функций

Приведем схему примитивной рекурсии для двухместной функции:

h(x,0)f(x),

h(x,y1)g(x,y,h(x,y)).

При помощи этой схемы доказываем, что сложение xy, умножение xy и возведение в степень xy – ПРФ. Например, функция f(x,y)xy – ПРФ:

f(x,0)xI11(x),

f(x,y1)sI33(x,y,f(x,y)).

  1. Машины Тьюринга. Команды в виде четверок и в виде пятерок

Алан Тьюринг в 1936 году с целью точного определения понятия алгоритма придумал абстрактную вычислительную машину, которую впоследствии назвали машиной Тьюринга.

Устройство машины Тьюринга:

1) лента, разделенная на ячейки и бесконечная в обе стороны;

2) «вычислитель», который обозревает некоторую ячейку, считывает символ с ячейки, стирает этот символ и вписывает новый символ в ячейку, затем перемещается на одну ячейку влево или вправо;

3) конечный список внутренних состояний с начальным состоянием и заключительным состоянием ;

4) конечный список внешних символов – символов ячеек и символа , обозначающего пустую ячейку;

5) программа – список команд вида , или , причем, каждой паре соответствует не более одной пары , или (где , , , а – дополнительные символы, обозначающие перемещение вычислителя на одну ячейку влево или вправо).

В любой момент времени заполнено конечное число ячеек ленты.

Пусть s1 – крайний левый и s2 – крайний правый символ на ленте. Тогда последовательность символов ленты s1...s2 называется машинным.

Программа машины Тьюринга – это список команд, т.е. четверок вида qiajakql, qiajLql или qiajRql, где i,j,k,lN, i0, причем, каждой паре 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