- •Теория рекурсивных функций
- •Общие черты алгоритма и функции
- •Отличия понятия алгоритма и функции
- •Примитивно - рекурсивные функции
- •Простейшие исходные (базисные) вычислимые функции
- •Функция следования
- •Функция выбора (тождества)
- •Частично-рекурсивные функции
- •Операторы для построения рекурсивных функций
- •Оператор суперпозиции (s) (регулярная суперпозиция)
- •Оператор примитивной рекурсии (r)
- •Оператор минимизации аргумента
- •Примеры рекурсивного задания функций
Примитивно - рекурсивные функции
Большинство вычислимых функций относится к классу примитивно-рекурсивных функций.
Функция называется примитивно-рекурсивной, если она может быть получена из простейших (базисных) функций с помощью конечного числа применений операторов.
Простейшие (базисные) функции:
функции следования
нулевая функция
функция тождества (проекции, проектирования выбора аргументов) U;
Операторы для операций над функциями:
суперпозиции (подстановки) S
примитивной рекурсии R
Эти три функции и две операции образуют, базис Клини.
Если некоторые функции являются примитивно-рекурсивными, то в результате применения к ним операторов суперпозиции или примитивной рекурсии можно получить новые примитивно-рекурсивные функции.
Для доказательства, что функция является примитивно-рекурсивной необходимо показать, что заданная функция:
либо является простейшей
либо построена с помощью оператора суперпозиции;
либо построена с помощью оператора примитивной рекурсии.
Простейшие исходные (базисные) вычислимые функции
Для того чтобы описать класс функций с помощью рекурсивных определений, рассмотрим набор простейших функций:
Простейшие функции, вычислимость которых очевидна:
Функция следования
Функция s(x), заданная правилом
s(x)=x+1
для всех целых неотрицательных значений своего аргумента x
- это функция одного переменного, сопоставляющая любому натуральному числу непосредственно следующее за ним натуральное число X+1
Нулевая функция (нуль-функция) - n - арная функция, заданная правилом:
Оn(x1,x2,...,xn) = 0
- функция, без аргументов, всегда возвращающая 0.
для всех натуральных чисел x1,x2,...,xn.
Нулевая функция, как и функция следования вычислима.
При n = 1 обозначаем через О(x) ( не О1(x1) )
O(x)=0, для всех неотрицательных значений аргумента x.
При n=0 обозначаем через О(0) и отождествляется с числом 0.
Функция выбора (тождества)
Inm (x1,x2,...,xn)=xm
повторяющая значения своих аргументов. - эта функция упорядоченному набору аргументов (x1,x2,...,xn) сопоставляет компоненту xm с номером m из этого набора где 0<m<=n.
Вычислимость функции тождества обеспечивается нашей способностью найти в строке (x1,x2,...,xn) место с номером m и указать число на этом месте.
Три правила:
1) Простейшие функции
s(x) = x+1 - следования,
Оn(x1,x2,...,xn)=0 нуль-функция,
In nm(x1,x2,...,xn) = xm - выбора
примитивно рекурсивны.
2) Если функция f получена из примитивно рекурсивных функций с помощью операторов суперпозиции или примитивной рекурсии, то функция f примитивно рекурсивна.
3) То, что функция f примитивно рекурсивна, устанавливается несколькими применениями правил 1 и 2.
Примеры примитивно - рекурсивных функций
f(x) = x;
g(x) = x+2;
f(x) = a - постоянная унарная функция
f(x,y) = x+y функция сложения
f(x,y) = xy функция умножения
Частично-рекурсивные функции
А. Чёрч, К. Гёдель и С. Клини выделили широкий класс функций, названных частично рекурсивными.
Примитивно-рекурсивные функции не охватывают все вычислимые функции, которые могут быть определены.
При построении частично рекурсивных функций используют оператор минимизации.
Оператор минимизации может превратить всюду определенную функцию в частичную, т. е. выводить за пределы множества примитивно-рекурсивных функций.
Функция называется частично-рекурсивной, если она может быть получена из простейших функций с помощью конечного числа операторов суперпозиции, примитивной рекурсии и минимизации.
