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

ϕ(x, y, z)= x

 

(y t −& x)

(4)

sg

 

 

 

 

 

 

t=0

 

 

 

операцией отождествленных переменных, т.е.

 

 

 

 

 

 

 

 

 

 

 

 

x

= ϕ(x, y, z).

 

 

 

y

 

 

 

 

 

 

Таким образом, исходя из того, что

 

 

 

 

 

 

ϕ(x, y, z)= x

 

(y t −& x)–ПРФ

 

sg

 

 

 

t=0

 

 

 

 

 

и операция отождествленых переменных сохраняет свойство

примитивной

рекурсивности функций, следует, что

 

 

 

 

 

 

 

 

x

–ПРФ.

 

 

 

 

 

y

 

 

 

 

I.5. Предикат, логическая функция. Логические операции с предикатами.

Предикат – логическая функция, определенная на некотором множестве M, то есть такая n–местная функция p, которая каждому упорядоченному набору (x1 ,..., xn ) из множества M сопоставляет некоторое высказывание, обозначаемое

p(x1 ,..., xn ). В этом случае p называется n–местным предикатом на множестве M.

Из курса математической логики, нам известно, что высказывание обычно отождествляется с его истинностным значением 1 («истина») или 0 («ложь»). Исходя из этого, можно дать определение предиката для различной местности.

Пусть задано произвольное множество М.

Определение. Одноместным предикатом р(х) на множестве М называется

функция вида

 

p : M {1,0}.

(5)

Двуместным предикатом p(x1 , x2 ) на множестве М называется функция вида

p : M × M {1,0}.

(6)

и т.д.

 

n–местным предикатом p(x1 ,..., xn ) на множестве M называется функция вида

p : M × M ×... × M {1,0}= M n {1,0}.

(7)

Например, пусть в качестве множества M задано множество натуральных чисел N. Обозначим через p(x): «x–простое число».

18

M [p(x)]={x M | p(x)=1}.

Тогда, в зависимости от значения x, логическая функция p(x) принимает либо

значение 1 («истина») либо значение 0 («ложь»). Действительно, при значениях x = 2,3,5,7,... , функция p(x)=1 и в случае, когда x = 4,6,8,9,... p(x)= 0.

В данном примере в качестве объекта рассматриваются элементы из множества натуральных чисел, а в качестве свойства взято «простое число», и это свойство обозначено через p.

Пусть, на множестве действительных чисел задан двуместный предикат

p(x, y), означающие «x меньше y».

Этот предикат становится истинным или ложным высказыванием, если x и y заменить действительными числами: «2 меньше 10», «3 меньше 5», «1,9 меньше 0,9» и т.д. Как видим, в этом случае рассматривается отношения между элементами в множестве R.. Тогда через p в данном случае обозначено отношение между объектами, где в качестве объектов взяты x и y.

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

Пусть задано множество Μ –область определения предиката p(x1 ,..., xn ), (где

M –произвольная множества).

Определение. Подмножество множества Μ , состоящее из тех значений переменных, при которых данный предикат преврашается в истинностное высказывание, называется областью истинности предиката и обозначается следующим образом:

(8)

Операции с предикатами.

Пусть на множестве Μ ≠ заданы предикаты p(x) и q(x).

Определение. Конъюнкцией предикатов p(x) и q(x) называется бинарный предикат, обозначаемый r(x)= p(x) q(x), который принимает значение «истина» для тех и только тех значений x M , при которых оба исходных предиката p(x) и q(x) превращаются в истинное высказывание.

Пусть M1

множество истинности предиката

p(x),

M 2

множество истинности предиката

q(x),

тогда множеством истинности предикат r(x) является множество вида

 

M [r(x)]= M1 I M 2 .

(9)

Определение. Дизъюнкцией предикатов p(x) и q(x) называется новый

предикат, обозначаемый s(x)= p(x) q(x), который принимает значение «истинна»

для тех и только тех значений x M , при которых хотя бы одно из высказываний

(предикатов) p(x) и q(x) истинно.

 

 

M [s(x)]= M1 U M 2

(10)

– множество истинности предикат s(x).

p(x)

с областью определения M

Определение. Отрицанием предиката

называется предикат с той же областью определения, обозначаемый p(x), который

19

принимает значение «истина» для тех и только тех значений

x M , при которых

p(x) есть ложное высказывание.

 

Множеством истинности предикат p(x) является множества

 

M [p(x)]= M \ M1

(11)

Определение. Импликацией предикатов p(x) и q(x)

называется новый

предикат, обозначаемый z(x)= p(x)q(x), который принимает значение «ложь» для тех и только тех значений x M , при которых предикат p(x) является истинным высказыванием, а q(x)–ложным.

Множество истинности предиката z(x) является множества

M =

 

1 U M 2 .

(12)

M

I.6. Операции навешивания кванторов. Операции навешивания кванторов относительно двуместных предикатов

В логике предикатов кроме операций отрицания, дизъюнкции, конъюнкции, импликации и эквивалентности, рассматриваются и операция навешивания квантора всеобщности и квантора существования.

Пусть на множестве Μ ≠ задан одноместный предикат p(x). Определение. Будем говорить, что выражение вида xp(x) на множестве M

представляет собой истинное высказывание, тогда и только тогда, когда p(x)

истинно для любого элемента x M .

Из определение следует, что если p(x) истинно на множестве M , то высказывание xp(x) тоже истинно на этом множестве;

и в случае, когда p(x) ложно на множестве M , то высказывание xp(x) -тоже

является ложным на данном множестве;

Определение. Будем говорить, что выражение xp(x) на множестве M

представляет собой истинное высказывание, тогда и только тогда, когда

p(x)

-

истинно хотя бы для одного элемента из этого множества.

 

 

 

Очевидно, если p(x) = 0 , то xp(x) = 0;

 

 

 

 

и если p(x) 0 , то xp(x) =1.

 

 

 

 

 

Пусть на множестве Μ ≠ задан двуместный предикат p(x, y).

 

 

Определение.

Выражение

xp(x, y) при

y0 M

представляет

собой

высказывание xp(x, y0 ) =1 (истинное высказывание) тогда и только тогда,

когда

p(x, y0 ) – истинно для любого элемента x M .

 

 

 

 

Определение. Выражение xp(x, y) при заданном

y0 M представляет

высказывание xp(x, y0 ) =1 (истинное высказывание), тогда и только тогда, когда

p(x, y0 )- истинно хотя бы для одного элемента из множества M .

 

 

Таким образом,

операции

навешивания

кванторов (всеобщности

и

существования) к двуместным предикатам приводит к одноместному предикату, т.е.

p(y)= xp(x, y)

(13)

20

p(y)= xp(x, y)

(14)

Пример. Пусть задан двуместный предикат p(x, y) = x(x < y),

где x, y R .

Для проверки на истинность предиката, поступим следующим образом. Берем произвольный элемент y0 из множество M, подставляя в данный предикат, получим

одноместный предикат: p(x)=(x<y0 ).

Тогда выражение х (x<y0) – является истинным высказыванием, так как во множестве действительных чисел всегда для произвольного элемента из этого же множества, найдется элемент меньше его.

Если взять предикат вида p(x, y) = x(x < y),

где x, y R , то он является ложным во

множестве R.

(проверка самостоятельно).

 

 

 

 

Если множество М, на котором рассматривается предикат р(х) является

конечным

множеством,

т.е.

M ={x1 ,..., xn },

то

высказывание

вида

xp(x) тождественно равно высказыванию

p(x1 ) p(xn ), т.е. имеет

место

следующее равенство

xp(x)= p(x1 ) p(xn ).

 

(15)

 

 

 

Аналогично, если множество М, на котором рассматривается предикат р(х)

является конечным множеством, т.е.

M ={x1 ,..., xn },

то высказывание вида xp(x)

тождественно равно высказыванию p(x1 ) Q p(xn ), т.е. имеет место следующее

равенство

xp(x)= p(x1 ) p(xn ).

 

(16)

 

 

I.7. Примитивно рекурсивный предикат

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

p : N n {0,1}.

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

r(x)= (x простоечисло);

q(x, y)= (x = y) ; p(x, y)= (x y)

и т.д.

Определение. Функция ϕ(x1 ,..., xn ) называется представляющей функцией для предиката p(x1 ,..., xn ), если выполняются следующие условия:

1)Dϕ = D p = D , т.е. их область определения совпадают;

2)для любого набора (x1 ,..., xn ) из области определения D

21

ϕ(x

,..., x

 

0,

если

p(x1

,..., xn )= u

(17)

n

)=

если

p(x1 ,..., xn )= л

1

 

1,

 

Определение. Предикат р(х) называется примитивно рекурсивным, если его представляющая функция является примитивно рекурсивной функцией.

 

Например, следующие предикаты

 

 

 

p1 (x, y)= (x = y);

 

 

 

p2 (x, y)= (x < y)

 

являются примитивно рекурсивными, так как их

представляющие функции

являются ПРФ.

 

 

 

 

 

 

 

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

взять функцию вида

 

 

 

ϕ1 (x)= sg

 

x y

 

,

(18)

 

 

 

 

где

sg(x)= 1,

если x > 0

 

 

0,

если x = 0

 

является ПРФ. Покажем, что данная функция –ПРФ.

По определения операции примитивной рекурсии получаем, что sg(0)= g(0)= 0 = C00

sg(x +1)= h(x, sg(x))= C12

Следовательно, ПРО данной функции является последовательность функций

 

 

 

 

 

 

 

C 0 , C 2

, R(C 0

, C 2 ), sg(x).

 

 

0

1

0

1

 

 

 

 

 

 

Функция f (x, y)=

 

x y

 

, определяется следующим образом:

 

 

 

 

f (x, y)=

 

x y

 

=

x y,

 

если x y

(19)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

x,

если

x < y

 

 

 

 

 

 

 

 

 

 

 

 

Прежде чем доказать, что

функция f (x, y)=

 

x y

 

является

примитивно

 

 

рекурсивной, рассмотрим следующие функции:

 

 

1) f (x)= x 1 = 0,

 

если x = 0

(20)

 

 

 

 

 

 

 

 

 

 

&

 

1,

если x > 0

 

 

 

 

 

 

 

 

 

 

 

 

x

 

2)

 

 

f (x, y)= x y =

0,

если x y

(21)

 

 

 

 

 

 

 

 

 

 

&

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x y, если x > y

 

Покажем, что эти функции являются ПРФ. 1) Рассмотрим функцию (20).

По определения операции примитивной рекурсии получаем, что

f (0)= g(0)= 0 = C00

f (x +1)= (x +1)−& 1 = x = h(x, f (x))= I12 (x, f (x)).

Следовательно, ПРО для данной функции является последовательность функций:

C00 , I12 , R(C00 , I12 ), x −& 1.

22

2)

Рассмотрим теперь функцию (21).

 

По определения операции примитивной рекурсии получаем, что

 

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

 

f (x, y +1)= x −& (y +1)= (x −& y)−& 1 = h(x, y, f (x, y))= I33 (x, y, f (x, y)),

где

в последнем равенстве f (x, y)= ι(f (x, y)), т.е. получили функцию сходную с

функцией в первом случае, следовательно, в качестве ПРО данной функции можно взять последовательность функций:

I11 , ι(f (x, y)), R(I11 , ι(f (x, y))), x −& y .

Исходя из последнего примера, функцию (19), будем представлять следующим образом:

f (x, y)= x y = (x −& y)+ (y −& x).

Очевидно, данная функция является ПРФ. (покажите самостоятельно) Теперь можно говорить, что выбранная представляющая функция (18), т.е.

ϕ1 (x, y)= sg x y

для предиката

 

p1 (x, y)= (x = y)

 

 

 

 

 

 

 

 

является ПРФ и удовлетворяет исходным условиям, т.е.

 

 

 

 

ϕ1 (x)= sg

 

x y

 

1,

если x y

 

 

 

 

 

 

=

если x = y

 

 

 

 

 

 

 

 

 

0,

 

 

 

 

 

 

 

 

 

 

 

Для предиката

p2 (x, y)= (x < y), в качестве представляющей функции можно

брать

 

ϕ2 (x, y)= sg(x −& y)

 

 

(22)

 

 

 

 

и очевидно, она удовлетворяет исходным условиям и является ПРФ.

 

 

Определение.

Функция

f (x1 ,..., xn )

называется

ПРФ

относительно

совокупности функций и предикатов ψ ={ϕ1,..., ϕm , p1 ,..., pk },

если

она ПРФ

относительно совокупности функций ϕ1 ,..., ϕm , ψ1 ,..., ψk , где

ψi

1 i k -

представляющая функция предиката pi .

 

 

 

 

Определение.

Предикат

p(x1 ,..., xn )

называется

ПРФ

относительно

совокупности функций и предикатов ψ ={ϕ1 ,..., ϕm , p1 ,..., pk }, если представляющая

функция предиката p является примитивно рекурсивной относительно совокупности функций ϕ1 ,..., ϕm , ψ1 ,..., ψk , где ψi 1 i k - представляющая функция предиката

pi .

Теорема 2. Логические операции над предикатами сохраняют свойства примитивной рекурсивности предикатов.

Доказательство. Приведем в виде таблицы, истинностные значений логических операций: конъюнкции, дизъюнкции, импликации и отрицания.

23