Студопедия

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


Мы поможем в написании ваших работ!

Порталы:

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



Мы поможем в написании ваших работ!




Тема 3. Рекурсивные функции

План лекции

1. Рекурсивная функция

2. Понятие простейших функций

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

Типы рекурсивных алгоритмов

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

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

1) Z(x1, x2, ..., xn) = 0 - нуль-функция, которая определена для всех неотрицательных значений аргумента;

2) s(x) = x+1 - функция непосредственного следования, также определенная для всех целых неотрицательных значений своего аргумента;

3) (x1, x2, . . ., xm, . . . , xn) = xm - функция выбора (тождества), повторяющая значения своих аргументов.

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

Оператор суперпозиции

Оператором суперпозиции S называется подстановка в функцию от m переменных m функций от n одних и тех же переменных. Она дает новую функцию от n переменных. Например, из функций f(x1, x2, ..., xm), f1(x1, x2, ..., xn), f2(x1, x2, ..., xn), . . ., fm(x1, x2, ..., xn) можно получить новую функцию:

Sm+1(f, f1, f2, ..., fm) = g(x1, x2, ..., xn) = f(f1(x1, x2, ..., xn), f2(x1, x2, ..., xn), ..., fm(x1, ..., xn)). (1)

В операции суперпозиции Sm+1 индекс сверху указывает на число функций.

Таким образом, при помощи оператора суперпозиции и функции выбора можно выразить любую подстановку функции в функцию. Например, осуществляя операцию суперпозиции функций f(x) = 0 и g(x) = x+1, получим функцию:

h(x) = g(f(x)) = 0 + 1 = 1.

При суперпозиции функции g(x) с этой же функцией получим функцию h(x) = g(g(x)) = x + 2.

Используя подстановку и функции тождества, можно переставлять и отождествлять аргументы в функции:

f(x2, x1, x3, . . ., xn) = f(I22(x1, x2), I12(x1, x2), x3, . . ., xn);

f(x1, x1, x3, . . ., xn) = f(I12(x1, x2), I12(x1, x2), x3, . . ., xn).

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

Оператор примитивной рекурсии

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

Функция f(x1, x2, ..., xn, y) получается оператором примитивной рекурсии из функций g(x1, x2, ..., xn) и функции h(x1, x2, ..., xn, y, z), если:

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

f(x1, x2, ..., xn, y+1) = h(x1, x2, ..., xn, y, f(x1, x2, ..., xn, y)).

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

Оператор минимизации

Отношение P(x1, x2, ..., xn) называется примитивно-рекурсивным, если примитивно- рекурсивна его характеристическая функция:

.

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

Функция f(x1, x2, ..., xn) получается посредством оператора минимизации из предиката P(x1, x2, ..., xn, z), если в любой точке значением функции f(x1, x2, ..., xn) является минимальное значение z, обращающее предикат P(x1, x2, ..., xn, z) в значение «истина»:

f(x1, x2, ..., xn) = (P(x1, x2, ..., xn, z)),

где – оператор минимизации.

Ограниченный оператор минимизации

Функция f(x1, x2, ..., xn) получается ограниченным оператором минимизации из предиката P(x1, x2, ..., xn, z) и функции U(x1, x2, ..., xn), если в любой точке значение этой функции определено следующим образом:

1) для любого z < U(x1, x2, ..., xn) такого, что P(x1, x2, ..., xn, z) = "истина", значение функции f(x1, x2, ..., xn) = (P(x1, x2, ..., xn, z)),

2) не для любого z < U(x1, x2, ..., xn) такого, что P(x1, x2, ..., xn, z) = "истина", значение функции f(x1, x2, ..., xn) = U(x1, x2, ..., xn).

Данное определение записывается следующим образом:

f(x1, x2, ..., xn) = < U(x) (P(x1, x2, ..., xn, z)).

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


<== предыдущая страница | следующая страница ==>
Тема 2. Математическое определение алгоритма | Тема 4. Примитивно-рекурсивные и частично-рекурсивные функции

Дата добавления: 2015-07-26; просмотров: 149; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.003 сек.