Элементарные операции

Операции, с помощью которых из простейших базовых функций могут быть получены различные рекурсивные функции, называют элементарными.

Операция суперпозиции. Если даны:

· рекурсивная функция h(m)=(z1, z2,…, zm,, у| zi, y∈N),

· m рекурсивных функций gi(n)=(x1i, x2i,..., xni, zi| xji, zi∈N),

то в результате подстановки функций g1(n), g2(n),…, gm(n) вместо независимых переменных функции h(m) может быть получена новая функция f(n)=(x1, x2,..,, xn, у) от n независимых переменных:

Значения zi функций g1(n), g2(n),..., gm(n), найденные для известных значений независимых переменных из множества {xj} (jÎ{1,2,…,n}) принимаются за значения независимых переменных из множества {zi}, iÎ{1,2,…,m}, аргумента функции h(m). Затем вычисляется ее значение y, которое принимается за значение функции f(n)=(x1, x2,..., xn, y). Таким образом, суперпозиция выполняется по схеме:

gj(n)
h(m)
x1=a1 x2=a2... xn=an

z1 z2... zm

y

Основные свойства функций, вычисляемых с помощью оператора суперпозиции:

· если вычислимы функции h(m) и gi(n), то вычислима также функция, соответствующая оператору суперпозиции;

· если даны функции тождества Inm и оператор суперпозиции Snm, то заданными являются любые операторы подстановки, перестановки и переименования любых независимых переменных аргумента;

· если среди функций gi(n) имеется хотя бы одна частично рекурсивная, то и функция f(n) также будет частичной.

Операция рекурсии. Если даны:

· рекурсивная функция g(n)(x1,x2,…,xn| xi∈N),

· рекурсивная функция h(n+2)(x1,x2,…,xn,y,f(n+1)(x1,x2,…,xn,y) | xi, y∈N),

то, применяя оператор рекурсии R, можно найти рекурсивную функцию , используя схему примитивной рекурсии:


Дополнительный аргумент y функции h(n+2) указывает, при каком его значении следует определять значение функции f(n+1)(x1, x2,…, xn, y) для вычисления последующих значений функции f(n+1)(x1,x2,…, xn, y+1).

При исполнении операции рекурсии известными являются x1=a1, x2=a2,..., xn=an. Принимают y=0 и вычисляют функцию g(n). Ее значение, равное Сn, есть значение функции f(n+1). Это значение подставляется в функцию h(n+2) в качестве аргумента f(n+1)(x1, x2,…, xn, y). Значением функции f(n+1) для каждого последующего значения аргумента y - (у+1) - следует считать значение функции h(n+2), вычисленное по значению аргумента у и по значению аргумента f(n+1)(x1, x2,..., xn, у). Таким образом, рекурсия выполняется по схеме:


g(n)
h(n+2)
x1=a1 x2=a2... xn=an

Cn= f(n+1) при y=0

f(n+1)

При задании примитивно рекурсивного описания функции f, не имеющей независимых переменных x, но зависящей от одной дополнительной переменной y, схема примитивной рекурсии имеет вид:


Операция минимизации ( или поиск наименьшего корня). Если дана рекурсивная функция f(x1, x2,..., xn, у), то рекурсивную функцию ϕ(x1, x2,..., xn) можно вычислить при заданных x1=a1, x2=a2,..., xn=an, придавая вспомогательному аргументу у последовательно значения 0, 1, 2,..., пока f(a1, a2,..., an, у) ни окажется в первый раз (!) равной нулю, т.е. f(a1, a2,..., an, у)=0. Полученное значение у принять за значение определяемой функции, т.е. y = ϕ(a1, a2,..., an). Поиск значений функции ϕ(x1, x2,..., xn) выполняется с помощью μ - оператора: j(x1,x2,...,xn) = μy(f(x1,x2,...,xn,y) = 0).

Алгоритм вычисления функции ϕ(a1, a2,..., an):

шаг 1: принять у=0 и вычислить функцию f(a1,a2,...,an,у),

шаг 2: если f(a1,a2,...,an,у)=0, то ϕ(a1,a2,...,an)=у, конец; иначе у=у+1, шаг 1.

Операция итерации. Многократное повторение данного процесса, пока ни будет выполнено некоторое условие, называют итерацией. При этом на каждом шаге итерации данный процесс выполняется полностью. Условием итерации, как правило, является число повторений: f(n)=Jn(h), где h – функция, формирующая новую функцию f(i+1) итеративной процедурой для 1 ≤ i ≤ n, начальное значение которой f(0)=0: f(0)=0, f(i+1) = h(f(i)).

Функция называется примитивно рекурсивной, если она получена из базовых функций с помощью конечного числа операторов суперпозиции и/или примитивной рекурсии. Она же называется рекурсивной, если получена с помощью примитивно рекурсивных функций и конечного числа операторов суперпозиции, примитивной рекурсии и/или минимизации. Иначе говорят так: функции, для которых существуют алгоритмы вычисления, называют рекурсивными функциями. Рекурсивная функция называется частично рекурсивной, если она определена не на всем множестве целых положительных чисел и общерекурсивной, если она определена на всем множестве целых положительных чисел.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: