Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория алгоритмов / из Интернета / теория алгоритмов (учебник 87 стр).pdf
Скачиваний:
191
Добавлен:
27.05.2015
Размер:
771.07 Кб
Скачать

но из задания функция ϕ0

следует,

что значением

ϕ0 (x, p(x)) является

наименьшее простое число y,

большее,

чем p(x) и не превосходящее 22x+1

; но это

и есть простое число с номером x+1, т.е. px+1 .

Таким образом, функция (35), как результат операции примитивной рекурсии над ПРФ, сама является примитивно рекурсивной функцией.

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

Пусть задана функция f (x1 ,..., xn , y).

Определение. Говорят, что ϕ(x1 ,..., xn ) получено из f (x1 ,..., xn , y) с

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

 

 

 

y0

наименьшемуизчисел

y, ттакихчто

 

 

ϕ(x

,..., x

 

f (x

,..., x

n

, y

 

)= 0, причемдлявсех y′ < y

 

(44)

 

)=

1

 

 

0

 

 

0

1

 

n

f (x1

,..., xn , y)0;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

неопределена вовсех другихслучаях.

 

 

и обозначают

 

ϕ(x1 ,..., xn )= μy(f (x1 ,..., xn , y)= 0).

(45)

Лемма 1.2. Операция ограниченной минимизации сохраняет свойство

примитивной рекурсивности функции.

 

Действительно, если имеется алгоритм Af ,

вычисляющий функции

f (x1 ,..., xn , y), то есть и алгоритм Aϕ вычисляющий функции ϕ(x1 ,..., xn ).

Доказательство. Пусть требуется вычислить значение функции ϕ на произвольном наборе (x1 ,..., x n ).

1шаг. Применим алгоритм A f

к набору (x1 ,..., xn ,0). Если

через конечное число

шагов алгоритм завершает свою работу результативно, т.е.

вычислено значение

f (x ,..., x

n

,0) и

f (x ,..., x

n

,0)= 0,

то значение функции ϕ на наборе (x1 ,..., x n )

1

 

1

 

 

 

32

считаем равным 0. Если f (x1 ,..., xn ,0)0 , то переходим к следующему этапу, на котором применяем алгоритм Af к набору (x1 ,..., xn ,1).

Если через конечное число шагов алгоритм завершает свою работу на данном

наборе результативно, т.е. вычислено значение

f (x1 ,..., xn ,1)

и

f (x1 ,..., xn ,1)= 0 , то

значение

функции

ϕ

на

наборе

(x1 ,..., xn )

считаем

равным

1.

Если

f (x1 ,..., xn ,1)0 , то переходим к следующему этапу и т.д.

 

 

 

 

Если на (t+1) шаге вычислено

значение

f (x1 ,..., x, t)

и

f (x1 ,..., x, t)= 0 , то

значение

функции

ϕ

на

наборе

(x1 ,..., xn )

считаем

равным

t.

Если

f(x1 ,..., xn , t)0 , то переходим к следующему этапу.

Вслучае, когда алгоритм Af завершает свою работу на каком-то этапе

безрезультативно, или работает бесконечно, то будем считать, что значение ϕ не определено на данном наборе, т.е. на наборе (x1 ,..., xn ).

Пример 1.

Пусть

f (x, y)= x y, x y

 

 

 

 

 

 

 

 

не определена в остальных случаях

Тогда

 

 

 

 

 

 

 

 

 

 

 

 

ϕ(x)= μy[f (x, y)= 0]= I11 (x)= x ,

т.е. функция ϕ(x) только при y = x принимает значение нуль.

Пример 2.

Пусть

f (x, y)=

 

x 2 y

 

.

 

 

Определим

ϕ(x)= μy[

 

x 2 y

 

= 0].

 

 

Очевидно, что функция ϕ определена только на числах вида 2k , k = 0,1,2,... ; и

для каждого из них

ϕ(2k )= k .

Пример 3. В качестве примера не всюду определенной функции можно привести следующую функцию:

f (x, y)= C82 (x, y).

33

Действительно, при этом функция ϕ(x) не определена во всех натуральных наборах, так как ϕ(x)= μy[C82 (x, y)= 0]–не имеет места ни для одного y.

Следовательно, будем говорить, что ϕ(x)– нигде не определенная функция.

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

Определение. Частично рекурсивным описанием (ЧРО) функции f называется конечная последовательность функций ϕ1 ,..., ϕk , удовлетворяющих следующим условиям:

1.ϕk = f ;

2.для любого i, 1 i k , ϕi – является либо элементарной функцией, либо получается из предшествующей ей последовательности функций с помощью одной из операций: подстановки, примитивной рекурсии или ограниченной

минимизации.

Определение. Функция f называется ЧРФ, если существует ее ЧРО. Определение. Функция f называется общерекурсивной, если она ЧРФ и всюду

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

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

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

Введем обозначения:

KПРФ – класс примитивно рекурсивных функций; KОРФ – класс общерекурсивных функций;

KЧРФ – класс частично рекурсивных функций. Тогда между этими классами имеется соотношения:

34