Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Algorytm.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
865.28 Кб
Скачать

6.2. Частично-рекурсивные функции

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

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

Возьмем некоторый фиксированный набор значений

x1=1 , x2=2 , ... , xn=n : =(1,2,...,n).

Для заданного набора  операцией наименьшего корня определяется наименьшее натуральное число y=, для которого g(1,2,...,n,) = 0,

эту операцию обозначим как:

 = y[g(1,2,...,n,y) = 0],

где y – символ операции наименьшего корня, y – выделенная переменная, а выражение g(1,2,...,n,y) = 0 предикат, который имеет значение “истина” при y=.

Очевидно, что значение  есть функция от 1,2,...,n. То есть функция f(x1,x2,...,xn-1,xn) является вычислимой с помощью операции наименьшего корня y, примененного к данной функции g(1,2,...,n,y), что записывается как

f(x1, x2,...,xn-1,xn) = y[g(x1,x2,...,xn,y)=0] (6.2)

Итак, для некоторого набора

=(1,2,...,n)N f(1,2,...,n) = 0, если g(1,2,...,n,0) = 0;

f(1,2,...,n) =  определена и не равняются 0, если:

g(1,2,...,n,0)  0 , ... , g(1,2,...,n,-1)  0, a g(1,2,...,n,) = 0.

Иначе говоря, величина f(x1, x2,...,xn-1,xn) равняется наименьшему значению последнего аргумента функции g, при котором g(1,2,...,n,) = 0, а для всех предшествующих значений этого аргумента g определена и не равняется нулю.

Понятно, что функция f существует и однозначно определяется заданной функцией g. В этом случае говорят, что функция f(x1, x2,...,xn-1,xn) получена из g(x1,x2,...,xn,y) с помощью операции минимизации. Поэтому, если g(x1,x2,...,xn,y) – вычислимая, то вычислимой будет и функция f(x1, x2,...,xn-1,xn) .

Описанный процесс нахождения значений выражения y[g(x1,x2,...,xn,y)=0]

будет продолжаться бесконечно долго в таких случаях:

а) значение g(x1,x2,...,xn,0) не определено;

б) значения g(x1,x2,...,xn,у) для у=0,1,2,...,-1 определены, но отличные от 0, а значение g(1,2,...,n,) не определено;

в) значения g(x1,x2,...,xn,у) определены для уN, но все они отличные от 0.

Во всех указанных случаях значение выражения (6.2) считается неопределенным. Во всех других случаях процесс нахождения значений (6.2) есть конечным, и дает наименьший корень уравнения g(x1,x2,...,xn,y) = 0, который и будет значением функции

f(x1, x2,...,xn-1,xn) = y[g(x1,x2,...,xn,y) = 0].

Определение 6.2.1. Частичная функция f называется частично-рекурсивною, относительно системы частичных функций Z, если она может быть получена из функций системы Z и наипростейших функций O, S, Imn с помощью применения конечного числа операций подстановки, примитивной рекурсии и минимизации. Если при этом функции указанной последовательности везде определены, то f называется общерекурсивной функцией.

Указанные операции могут быть выполнены в любой последовательности и любое конечное число раз.

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

Рассмотрим применение операции минимизации для образования новых функций. Работу -оператора можно описать следующим образом. Выделяется переменная (здесь – у). Затем фиксируется значение остальных переменных (x1,...,xn). Значение y последовательно увеличивается, начиная с нуля. Значением -оператора будет значение y, при котором функция впервые обратилась в ноль. Значение -оператора считается неопределенным, если функция вообще не принимает значения ноль, либо она принимает отрицательное значение до того как примет значение ноль.

Пример 6.2.1. Рассмотрим функцию g(x1,x2,y) = x1+x2-y; x1,x2,y N .

Определим функцию f(x1,x2), которую получим при помощи операции .

f(x1,x2) = y[g(x1,x2,y)=0] = y12-у =0]

при некоторых фиксированных значениях аргументов x1,x2 имеем:

  1. х1 = х2 = 0. Тогда g(0,0,y) = 0+0-у = 0 при у = 0, т.е. f(0,0) = 0.

  2. х1 = 2, х2 = 1. Тогда g(2,1,y) = 2+1-у = 0 при у = 3.

  3. х1 = 3, х2 = 3. Тогда g(3,3,y) = 3+3-у = 0 при у = 6.

Итак, очевидно, что f(x1,x2) = х12 всюду определена, так как наименьшее значение, при котором для заданных х1 и х2 функция g равняется нулю, есть сумма х12 . Для всех значений y, меньших х12, функция gопределена и не равняется нулю.

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