Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Математическая логика и ТА (Рудаков С.А

.).pdf
Скачиваний:
29
Добавлен:
23.02.2016
Размер:
1.11 Mб
Скачать

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

3.2 Рекурсивные функции

Функцию f : X→Y будем называть частичной, если она определена не для каждого значения х X. Множество тех х X, для которых однозначно указано соответствующее значение функции f, называется областью определения функции.

Ограничимся только функциями f :N → N, где N ‒ множество

натуральных чисел.

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

Введем следующие функции:

s1(x) = x+1, on(x1,…,xn) = 0,

Imn(x1, ..., xn) = xm (1 m n; n = 1, 2, ...),

называемые далее простейшими.

Пусть даны частичные функции g : N n → N и h : N n+2 → N.

Говорят, что частичная функция f : N n+1 → N получена из функций

g, h примитивной рекурсией, если

 

f(x1,...,xn,0) = g(х1,...,хп),

 

f(x1,..., хn, у + 1) = h(x1,..., хn,у, f(x1,..., хn, у)).

(1)

Для n = 0 уравнения (1) принимают вид (g= const = a)

 

f(0) = а, f(x+l)=h(x, f(x)).

(2)

Как видно из этих уравнений, задав исходные данные (x1,...,xn,0), можно шаг за шагом найти значения функции для (x1,...,xn, 1),( x1,...,xn, 2),...,( x1,...,xn,, m),...

Символически задание f через примитивную рекурсию можно записать

как

f = (g, h).

41

Частичная функция f : N n+l → N называется примитивно рекурсивной относительно множества частичных функций , если f получается из функций множества и простейших функций конечным числом операций подстановки (суперпозиции) и примитивной рекурсии.

Если = , то примитивно рекурсивная относительно множества частичных функций функция получается только из простейших функций и поэтому ее называют просто примитивно рекурсивной.

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

Пример 1. Функция f(x,y) = х + у примитивно рекурсивна.

В самом деле,

f(x,0) = x + 0 = x = I11(x),

f(x, у + 1) = х + (у + 1) = (х + у) + 1 = s(x + у) = s(f(x, у)).

Это означает, то функция х + у строится из примитивно рекурсивных функций

I11,h{x, y,z) = z + 1 = sl(z) с помощью примитивной рекурсии.

Поэтому х + у примитивно рекурсивная функция.

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

Все примитивно рекурсивные функции всюду определены.

 

Упражнения.

1.

Доказать, что следующие функции примитивно рекурсивны.

a)

f(x,y) = х * у (g(x)=o(x), h(x,y,z)=z+x)

b)

f(x,y) = х у (g(x)=1, h(x,y,z)=z*x)

c)f(x)=x!

d)Функция (сигнум или знак x) sg (x), где

0 если x=0

sg (x)=

1 если x>0

sg(0)=0, sg(x+1)=1

42

e) Функция sg1( x)= 1- sg (x), определена так

sg1( x)=

1

если x=0

 

 

0

если x>0

 

 

 

 

sg1(0)=1, sg1(x+1)=0

f)Функция x-y является частичной двуместной функцией от x, y

определенной для x ≥ y, определена так

x y=

x-y

если x ≥ y

 

 

0

если x < y

 

 

 

 

g)f(x,y) = |х – у|

h)f(x,y) =max(х, у)

i)f(x,y) =min(х, у)

3.2.2. Операция минимизации

Пусть дана частичная функция f : N n → N. Фиксируем данные x1,...,xn-1

для первых n-1 аргументов и рассмотрим уравнение

f(x1,...,xn-1,y) = хn

(1 )

Чтобы найти решение y (натуральное)

этого уравнения, будем

вычислять при помощи некоторого заведомо существующего «механизма»

последовательно значения f(x1,...,xn-1,y) для

y=0, 1, 2, … Наименьшее

значение a для которого получится

 

 

f(x1,...,xn-1, a) = хn

обозначим через

 

 

µy(f(x1,...,xn-1,y) = хn)

(2)

 

Описанный выше процесс будет продолжаться бесконечно в

следующих случаях:

 

a)

значение f(x1,...,xn-1,0) не определено;

 

b)

значения f(x1,...,xn-1, y) для y=0, 1, 2, …, a-1

определены, но отличны от

 

хn , а значение f(x1,...,xn-1, a) не определено;

 

c)значения f(x1,...,xn-1, y) определены для всех y=0, 1, 2, … и отличны от хn.

43

Во всех этих случаях значение выражения (2) считается неопределенным. В

остальных случаях описанный процесс обрывается и дает наименьшее решение y = a уравнения (1).

Введем функцию

Мf(x1,...,xn) =min{y N: f(x1,...,xn-1,) = хn }.

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

По существу, М ‒ это операция на множестве частичных функций.

Результатом является новая частичная функция с тем же числом аргументов.

Назовем эту операцию минимизацией.

Пример 2. Функция

x 1 x 0, g(x) не определено, x 0

— частично рекурсивна.

Действительно,

g(х) = Ms1(x) = min{s1(y) = у + 1 = х}, где y N.

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

Частичная функция f : Nn+l → N называется частично рекурсивной относительно множества частичных функций , если f получается из функций множества и простейших функций конечным числом операций подстановки (суперпозиции), примитивной рекурсии и минимизации.

Если = , то частично рекурсивная относительно множества частичных функций функция получается только из простейших функций, и

поэтому ее называют просто частично рекурсивной.

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

(пример 2) и, например, нигде не определенная

44

функция

f(x) = min{x + 1 + у = 0}, где y N.

45