Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_na_teoriyu_Busalaevoy_Anastasii.docx
Скачиваний:
1
Добавлен:
06.08.2019
Размер:
480.85 Кб
Скачать

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

Функция hn(x1, ..., xn) получается из функций gm, fn1, ..., fnm с помощью оператора суперпозиции, если hn(x1, ..., xn) = gm(fn1(x1, ..., xn), ..., fnm(x1, ..., xn)).

П онятно, что функция gm (x1, х2, ... ,xm) и есть та функция, которую определяет функциональный терм fn (f1m(x1, х2, ... ,xm),..., fnm (x1, х2, ... ,xm)) при соответствующей интерпретации (рис. 2.2).

(Рис. 2.2)

Таким образом, функция g = Sn+1(f, f1,..,fn) определятся/вычисляется функциональным термом (рис. 2.2). И наоборот, функциональному терму соответствует применение некоторого оператора суперпозиции. Переменные y1, у2, .. ,ym представляют промежуточные величины.

Пусть φn - множество всех частичных вычислимых функций от n переменных. Тогда оператор суперпозиции Sn+1 может рассматриваться как всюду определенная функция Sn+1 : φnmmx...xφm → φm. Теперь в этих терминах можно перефразировать понятие функции, полученной применением оператора суперпозиции, а именно:

функция g(x1, х2, ... ,xm) получается суперпозицией из функций f(x1, х2, ... ,xn), f1(x1, х2, ... ,xm),..., fnm (x1, х2, ... ,xm) , если g есть значение операторного терма Sn+1 (h, h1, ..., hn), где h, h1, ..., hn - переменные и интерпретация ставят в соответствие:

  • переменной h – значение f, элемент из φn,

  • переменным h,h1, ..., hn - значения fi из φm соответственно, i = 1,2,..., n,

  • функциональному символу Sn+1 - функцию f(f1(x1, х2, ... ,xm),..., fn (x1, х2, ... ,xm))= g(x1, х2, ... ,xm).

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

9.Оператор примитивной рекурсии, алгоритм его вычисления

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

Функция fn+1(x1, ..., xn, y) получается из функций gn(x1, ..., xn) и hn+2(x1, ..., xn, y, z) с помощью оператора примитивной рекурсии, если она может быть задана схемой примитивной рекурсии:

fn+1(x1, ..., xn, 0) = gn(x1, ..., xn),

fn+1(x1, ..., xn, y+1) = hn+2(x1, ..., xn, y, fn+1(x1, ..., xn, y)). (1)

Соотношения (1) называются схемой примитивной рекурсии. Они определяют оператор примитивной рекурсии R. Эта схема, собственно, и есть алгоритм вычисления функции f. Оператор определен на множестве φ частичных вычислимых функций, f = R(g,h).

Если n = 0, то одноместная функция f строится примитивной рекурсией из функции-константы Cnst (это просто некоторое натуральное число) и двухместной функции h

f(0)= Cnst, f(x+l)= h(x,f(x1)).

Понятно, что функция f существует и единственна. Это следует из того, что определение функции, построенной примитивной рекурсией, фактически содержит схему (алгоритм) ее вычисления. Распишем детально эту схему, используя термальные представления.

Пусть необходимо вычислить значение функции f при у = k. Тогда из определения (1) схемы примитивной рекурсии имеем последовательность функциональных термов, вычисляющих значение функции f(x1, х2, ... ,xn, k):

to: fo=f(x1, х2, ... ,xn, 0) =g(x1, х2, ... ,xn);

t1: f1=f(x1, х2, ... ,xn, 1) =h(x1, х2, ... ,xn, 0, g(x1, х2, ... , xn));

t2: f2=f(x1, х2, ... ,xn, 2) =h(x1, х2, ... ,xn, 1, f(x1, х2, ... , xn, 1));

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

tk: fk=f(x1, х2, ... ,xn, k) =h(x1, х2, ... ,xn, k-1, f(x1, х2, ... , xn, k-1));

Здесь представлен способ вычисления f, следовательно, функция f определена однозначно. Эту последовательность k+1 функциональных термов to, t1,... удобно для наглядности изобразить графически

Это множество функциональных термов и определяет, собственно, алгоритм вычисления функции f. Множество термов (представление алгоритмов в виде множества термов) позволяет легко построить программу Р, реализующую оператор суперпозиции и вычисляющую функцию f:

f(x1,…,xn, xk) -?

P:

s=k-1;

f[0]=g(x1,…,xn);

for(i=1; i<s; i++);

f[i]=h(x1,…,xn,i-1,f[i-1]);

(рис 1)

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

Функционально ∞ множество – это множество, которое в каждом случае конечно, но не ограниченно.

(пример, файл)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]