Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Примитивно-рекурсивные функции





Теоретические сведения

 

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

В тех случаях, когда речь идет о числовых функциях, области определения и значения которых заданы на множестве целых положительных чисел, это описание рекурсии задает способ вычисления численных значений определяемой функции для заданного набора числовых значений аргументов и числовых значений этой функции в исходной точке.

Числовые функции, для которых существует алгоритм вычисления их значений, называют рекурсивными функциями.

Если числовая функция определена не для всех значений аргументов, ее называют частично рекурсивной функцией. Если для всех значений – то общерекурсивной функцией.

Исследование алгоритмов на множестве рекурсивных функций оправдано тем, что любое вещественное число может быть представлено цепочкой <целое> «.»<целое>, для которой существует только одна синтаксическая переменная – <целое>. Следовательно, любую функцию можно свести к рекурсивной, если значения аргументов и значения функции рассматривать принадлежащими синтаксической переменной <целое>.

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

Формализм вычисления является универсальной моделью описания последовательности шагов в реализации алгоритма.

Для этой модели должны быть заданы наборы элементарных объектов и элементарных действий в описании механизма реализации алгоритма. Такими элементарными объектами являются три базовые функции, а элементарными действиями – три элементарные операции.

Простейшие одношаговые рекурсивные функции называются базовыми. К числу таких функций относятся функции константа, тождества и следования.

Функция константа. Если f = {(x1; x2;... xn; у) | xiÎ X; yÎ Y } = cn, то любым значениям аргументов функции ставится в соответствие ее значение, равное постоянной величине – cn, чаще всего нулю.

Например, если f = (x1; x2; x3; у) = c3, то для x1 = 5, x2 = 4, x3 = 7 и c3 = 0имеем у = 0; если f = x1; x2; x3; у) = cз, то для x1= 5, x2 = 4, x3 = 7 и cз = 1 имеем у = 1.

Функция тождества. Если f = {(x1; x2;... xn; у) | xiÎ X; yÎ Y }= Jn;m, то любым значениям переменных аргумента функции ставится в соответствие ее значение, равное значению m-го независимого аргумента, где 1£ m £ n – номер выбранного независимого аргумента.

Например, если f = (x1; x2;... xn; у) = j3,2, то для x1 = 5, x2= 4, x3 = 7 имеем у=4; если f = (x1; x2;... xn; у) = j3,3, то для x1= 5, x2= 4, x3= 7 имеем у = 7.

Функция следования. Если f = (х; у) = l, то любому значению независимой переменной аргумента функции ставится в соответствие ее значение, равное числу, непосредственно следующиму за числом, являющимся значением независимой аргумента.

Например, если f = (х; у) = l(х), то для х = 5 имеем у = (х+1) = (5+1) = 6; если f = (х; у) = l(х), то для х = 7 имеем у = (х +1) = (7 +1)= 8.

 

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

К числу элементарных операций относят операции суперпозиции, рекурсии и минимизации.

Операция суперпозиции. Если даны функция h от m независимых переменных аргумента, т.е. h = (z1; z2;... zm; у), и m функций qi от n независимых переменных аргумента, т.е. {qi=(x1i; x2i;... xni; zij)}, то в результате подстановки функций q1, q2... qm вместо аргументов функции h может быть получена новая функция f=(x1; x2;... xn; у) от n независимых переменных аргумента, т.е.

 

h = (z1; z2:... zm; y):

q1 = (x1; x2;... xn; z1);

q2 = (x1; x2;... xn; z2);

...................................

qm = (x1; x2;... xn; zm);

 
 


h = (q1; q2;... qm; y) = f = (x1; x2;... xn; y).

 

Значения функций q1; q2;... qn, найденные при заданных значений независимых переменных x1; x2;... xn, принять за значения независимых переменных аргумента функции h и вычислить ее значение, которое принять за значение функции f = (x1; x2;... xn; y).

Например, если h = (z; y) = l(z) и q(х; z) = l(х), то f=(q; у) = l(l) = l2(х). Следовательно, для х = 5 имеем z=5 + 1= = 6 и у = 6 + 1 = 7.

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

f = x1; x2;... xn; y = Smn (h(m); q1(n); q2(n);... qm(n)),

где h(m) =(z1; z2;... zm; y) и

q1(n) = (x1i (n); x2i (n);... xni (n); zi).

Если заданы функции тождества (In,m) и оператор суперпозиции (Smn), то можно считать заданными всевозможные операторы подстановки, перестановки и переименования любых функций.

Операция рекурсии. Если даны n-местная рекурсивная функция g и (n + 2)-местная рекурсивная функция h, то можно найти (n + 1)-местную рекурсивную функцию f, используя схему примитивной рекурсии:

f (x1; x2;... xn; 0) = g (x1; x2;... xn;);

f (x1; x2;... xn; у+1) = h (x1; x2;... xn; у; f(x1; x2;... xn; у)).

Схема примитивной рекурсии позволяет определить значения функций f не только через значения функций g и h, но и через значения функций f во всех предшествующих точках аргумента.

Схема примитивной рекурсии содержит главный дополнительный аргумент – у, который войдет в значение определяемой функции, и один вспомогательный аргумент – f (x1; x2;... xn; у), который позволяет определить значение искомой функции для последующих значений главного дополнительного аргумента.

 

Пример 1. Доказать, что функция является примитивно-рекурсивной.

Решение. Так как данная функция есть функция двух аргументов, то для использования операции примитивной рекурсии мы должны иметь функцию g, зависящую от одного аргумента, и функцию h, зависящую от трех аргументов. Определим их.

В функции положим y =0. Тогда имеем - это тождественная функция. Полагая y =1, получим - это функция следования.

Таким образом, выбираем следующие элементарные функции: тождественную и функцию следования . Заметим, что здесь .

Используем схему примитивной рекурсии:

Таким образом, построена функция (таблица ее значений) которая равна сумме двух слагаемых.

Пример 2. Доказать, что функция является примитивно-рекурсивной.

Решение. Заметим, что

.

Найдем требуемые функции и h. Для этого считаем, что, так как заданная функция есть функция двух аргументов, следует выбрать функцию g, зависящую от одного аргумента, и функцию h, зависящую от трех аргументов.

Для заданной функции модно записать

Первая из этих функций – это тождественная функция , а вторая определяет функцию h. Это функция сложения двух чисел, которая, как доказано выше, является примитивно-рекурсивной. Поэтому можно использовать ее для выбора функции h.

Итак, имеем для операции примитивной рекурсии:

- функция одного аргумента,

- функция трех аргументов.

Проверим, что функции выбраны правильно. Из определения операции примитивной рекурсии имеем:

…………………..

Примитивно-рекурсивность операции умножения доказана. Этот факт можно использовать при доказательстве примитивной рекурсивности других функций.

 

Date: 2015-06-06; view: 950; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию