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

Теория алгоритмов. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Глава 3.
( )
EEN
aN∈
aE∈
РЕКУРСИВНЫЕ И РЕКУРСИВНО
ПЕРЕЧИСЛИМЫЕ МНОЖЕСТВА
Пусть задано подмножество натуральных чисел
⊂ .
Требуется, ответить на вопросы:
1. Существует ли алгоритм А1, позволяющий по про­извольному натуральному
2. Существует ли алгоритм А2, позволяющий перечис­лить все элементы множества Е?
Связаны ли между собой ответы на эти вопросы? Правильно ли, что из положительного ответа на один из них, вытекает положительный ответ на другой?
Тот факт, что в курсе теории алгоритмов мы значитель­но сузили область определения и область значения функ­ций, имеет свои преимущества. Так, многие утверждения, связанные с функциями одного переменного, достаточно просто обобщаются, и мы уже в этом убеждались на при­мере многих переменных. Аналогично и многие свойства подмножеств натуральных чисел.
Основой для такого обобщения служит нумерация пар натуральных чисел. Построенная ниже нумерация имеет несколько замечательных свойств. Отметим, что в отличие от классического взаимно однозначного соответствия меж­ду парами натуральных чисел и натуральным рядом в тео­рии множеств, в данном курсе такое соответствие должно
ответить на вопрос:
— 91 —
?
Глава 3. РЕКУРСИВНЫЕ И РЕКУРСИВНО ПЕРЕЧИСЛИМЫЕ МНОЖЕСТВА
{ }
Nn
( )
{ }
00
( )
( )
01
n
yp p p
i
α≥
in=
( )
( )
( )
( )
( )
( )
)0
)0
rest xy
Di
 
( ) ( )
( )
,,
быть алгоритмически вычислимым. Более того, мы по­кажем, что данное соответствие даже примитивно рекур­сивно.
3.1. Примитивно рекурсивная нумерация пар натуральных чисел
Рассмотрим множества натуральных чисел
0,1,2,..., ,...
=
0 2
, | ,N xy xy N= ∈ .
Так как эти множества счетные, то между ними мож­но установить взаимно однозначное соответствие. (Более того, нетрудно установить, что существует бесконечно много способов установления такого соответствия, которое назовем нумерацией пар натуральных чисел.) При этом на­туральное число, соответствующее паре натуральных чи­сел, называют номером этой пары в данной нумерации.
Установим закон взаимно однозначного соответствия между N0 и N ции.
Предварительно рассмотрим вспомогательную функ­цию
exp ,xy , значение которой на паре зателю степени простого числа xP , входящего в разложе­ние числа у в произведение простых чисел:
ex p 1,54 3= ,
но рекурсивной. Для этого функцию
α
0
= ⋅ ⋅⋅ , 0
По определению полагаем Нетрудно проверить, что
Докажем, что функция
Из соотношения
и всех пар натуральных чисел
2
с помощью примитивно рекурсивной функ-
0
,xy равно пока-
α
1
exp 0,54 1= ,
vxy
α
....

n
1, (,
,
0, (,
Div x y sg rest x y=
rest xy
для всех 1,2,...,
exp ,0 0x = .
exp 2,54 0= ,
exp ,xy является примитив-
если
если
exp 3,4 9 2= .
.
.
— 92 —
3.1. Примитивно рекурсивная нумерация пар натуральных чисел
( )
( )

=µ=∨ =


( )
2 2 11
ty= ⋅ +−
( ) ( )
, 2 2 11
µ = ⋅ +−
( )
2 2 11
ty= ⋅ +−
( )
12 2 1
ty
λ
11
22
xt
tt
++

 




λ= −
 
()xt= λ
()yt= λ
()
()
(,)
(,)
11 22
(,) (,)
µ=µ
следует, что функция
,Div x y примитивно рекурсивна.
Из определения функции exp(x, y) следует, что она
представима следующим образом:
1
t
exp x,y 0 , 0 .
( ) ( )
t y Div y P x
ty
≤
+
Исходя из вышесказанного и свойств операции огра­ниченной минимизации следует, что функция exp(x, y) — примитивно рекурсивная.
Установим нумерацию пар натуральных чисел урав­нением
x
,
т.е. для каждой пары (х, у) t=µ (x,y) — это номер пары (х, у).
Очевидно, функция
xy y
x
— прими-
тивно рекурсивнaя.
Из уравнения первых, из соотношения
x
+= ⋅ + и того, что число
находим х и у. Во-
x
( 2у + 1 ) — нечетное, следует, что х=exp(0, t+1).
Обозначим
21
y
+= = ,
Обозначим
(t) = exp(0, t +1), получим
1
11
y
exp(0, 1)
+
t
() 1
t
2
+
exp(0, 1)
2
= −
1
t
+
.
2
exp( , 1)
2
t
+
ot
1
+
.
Таким образом, если номер пары (х, у) — t , то первая
компонента пары —
. Нетрудно показать, что
2
; вторая компонента пары —
1
1
tλ и
tλпримитивно
2
рекурсивные функции.
Соответственно между множеством натуральных чи­сел и множеством пар натуральных чисел, задаваемое так называемой нумерационной функцией
xyµ, взаимно
однозначно. Действительно, каждой паре (х, у) отвечает номер t =
xyµ, докажем, что разные пары имеют раз-
ные номера. Предположим, что нашлись две пары нату­ральных чисел (х1, у1) и (х2, у2) такие, что (х1,у1)≠(х2,у2) и
xy xy
, т.е.
— 93 —
Глава 3. РЕКУРСИВНЫЕ И РЕКУРСИВНО ПЕРЕЧИСЛИМЫЕ МНОЖЕСТВА
12
12
xx
yy⋅ +−= ⋅ +−
y i
12
12
2 (2 1) 2 (2 1)
xx
yy⋅ += ⋅ +
λ
λ
t tt
( )
( ) ( ) ( ) ( )
( )
12 1 12 2 12 12
, ,..., , ,..., , , ,..., ,..., , ,...,
n n nm n
fxx x ghxx x h xx x h xx x
( ) ( ) ( ) ( )
( )
12 1 12 2 12 12
, ,..., , ,..., , , ,..., ,..., , ,...,
n n nm n
fxx x ghxx x h xx x h xx x=
{ } { }
{ }
11 1
n n nn nnn n
x xx x x x
2 (2 1) 1 2 (2 1) 1
x
Так как 2 (2 1) 1 ( =1,2)
i
⋅ +≥ , то получаем
i
.
, а отсюда и из единственности разложения натурального числа в произведение степеней простых чи­сел следует, что х1=х2, у1 = у2, т.е. ( х1, у1) = (х2, у2), что про­тиворечит предположению.
Функции
и
также называют нумерационными
1
2
функциями. Они удовлетворяют следующим очевидным тождествам:
( ( , )) ,
xy x
λµ =
1
( ( , )) ,
xy y
λµ =
2
( ( ), ( )) .
µλ λ =
12
3.2. Рекурсивно перечислимые множества
Определение. Назовем предикат
курсивным (общерекурсивным), если представляющая его функция общерекурсивна.
Поскольку класс общерекурсивных функций являет­ся классом функций всюду определенных, то многие ре­зультаты, справедливые для класса примитивно рекурсив­ных функций, имеют место и для его расширения — класса общерекурсивных функций.
Лемма 1. Пусть даны общерекурсивные функции g, h1, …, hm. Тогда функция
=
, ,...,
Px x x ре-
12
n
общерекурсивна.
Доказательство. Пусть
,...., , ,..., ,..., ,...,
1 1 12 12
+ + ++ +
— 94 —
m
3.2. Рекурсивно перечислимые множества
nn
nn n n
nn
()
()
( )
12
′
12
() ()xy
EN⊂
— списки переменных для функции h1, …, hm , соответ­ственно, где
m
=
∑
i
.
k
1
=
Функция f может быть получена в виде подстановки:
где
f=g(
1
m
−
'
=
. Отсюда следует, что f общерекурсивна.
∑
k
1
i
=
( ,..., ),..., ( ,.., )),
hl l h l l
11 1
n mn n
1
+
Теперь в порядке упражнения предлагается для дока-
зательства:
Лемма 2. Логические операции над общерекурсивны-
ми предикатами дают общерекурсивный предикат.
Лемма 3. Произвольная подстановка общерекурсив-
ных функций в предикат равенства есть общерекурсивный предикат.
Доказательство. Рассмотрим предикат Р(х,у)=(х=у)
и общерекурсивные функции
xφ и
1
yφ, где х = ( х1, … , хn); y = ( y1 , …, ym) .
2
В результате подстановки этих функций в предикат
Р получаем предикат
, ( ( ) ( ))P xy x y
=φ=φ ,
представляющая функция которого
Sg
φ −φ
общерекурсивная на основании предыдущей леммы и того, что функции Sg(x), |x-y| примитивно рекурсивны. Лемма доказана.
Упражнение. Докажите, что (произвольная) подста-
новка общерекурсивных функций в общерекурсивный предикат есть общерекурсивный предикат.
Введем следующее обозначение:
<P(x)>, т.е. <P(x)> = {x|P(x) = u}.
Определение. Множество
назовем рекурсивно перечислимым множеством (РПМ), если оно пусто или яв­ляется множеством значений некоторой общерекурсивной функции.
— 95 —
Глава 3. РЕКУРСИВНЫЕ И РЕКУРСИВНО ПЕРЕЧИСЛИМЫЕ МНОЖЕСТВА
{ }
, . ..Val Val y | y (x), x D
φ
φ φ= =φ ∈
{ }
x R(x,y), ∃
E = ∅
E ≠∅
( )
[ ]
=φ=
( ) ( )
=<∃ >
yE∈
00
xyφ=
( )
Rx y u
xRxy u∃=
∈< ∃ >
∈< ∃ >
xRxy u∃=
Rx y u=
00
xyφ=
0
,E yEφ= ∈
=<∃ >
E = ∅
E ≠∅
12 12
() () ( ( (), ()) ( (), ())t tsgHt taHt tφ=λ⋅ λλ +⋅λλ
Обозначим в дальнейшем множество значений функ-
ций φ через
т.е.
φ
Теорема 3.1 (критерий РПМ). Множество Е рекурсив-
но перечислимо тогда и только тогда, когда оно является областью истинности некоторого предиката
где
R(x,y) — общерекурсивный предикат.
Доказательство.
1. Пусть Е — РПМ. Если
, то в качестве R(x, y) можно выбрать любой двуместный тождественно ложный предикат.
Предположим, что
. Тогда по определению РПМ, существует общерекурсивная функция — такая, что Val φ = Е. Рассмотрим предикат
, ()R xy x y
(по лем-
ме 3 он общерекурсивен).
Докажем, что пусть такое, что следует, что 0( ) (, )
Обратно, пусть y
( ) (, )
. Тогда найдется некоторое значение х = х0 ,
0
()
, т.е. предикат
, т.е.
. Но по определению квантора существова-
0
0 ( ) (,)xRxy
ния найдется некоторое значение х0 такое, что т.е.
()
. Так как Val
2. Пусть теперь множество ( ) (,)E xRxy
,E x Rxy
. Действительно,
,
= . Отсюда
00
( ) (,)y xRxy
0
, это значит, что
то
.
0
.
(,)
00
, где
,
R(x,y) — общерекурсивный предикат. Покажем, что Е — рекурсивно перечислимое множество. Если
, то Е —
рекурсивно перечислимое по определению.
Пусть
, тогда существует а∈Е. Обозначим через Н(х,у) представляющую функцию предиката R; следова­тельно, Н(х,у) общерекурсивна. Построим общерекурсив­ную функцию φ, множество значений которой совпадает со множеством Е. Докажем, что
.
— 96 —
3.2. Рекурсивно перечислимые множества
yE∈
∈< ∃ >
Rx y u=
00 0
xy tµ=
10 0 20 0 20 10 20 10 20 0
() ; () ) () ( ( (), ()) ( (), ())
0
tx ty (t tsgHt t aHt t yλ=λ=φ=λ⋅ λλ +⋅λλ =
()
∈φ
E Val⊂φ
Val Eφ⊂
()
10 0 20 0
tx tyλ=λ=
t aa Eφ=∈
0 20 0
t tyφ=λ =
( )
Rx y u
yE∈
Val Eφ∈
E Val= φ
12
EE E= ∩
∩=∅
12
EE E= ∩
12
EE≠∅ ≠∅
12
φφ
11 2
φ= φ =
12
φφ
( ) ( )


Предположим, что
0
,
т.е.
( ) (,)y xRxy
0
,
а значит найдется некоторое значение х0 такое, что
(,)
00
Пусть
. Тогда представляющая функция Н(х0,у0)=0.
(,)
, следовательно,
и
0
т.е.
y Val t
0
, а значит, в силу произвольности выбора
мы показали, что
Покажем теперь, что
и вычислим значение
.
. Возьмем произвольное t
tφ. Обозначим
0
() ; ()
,
0
.
Возможны два случая.
1) Н(х0, у0) = 1. Тогда из задания функции φ, следует,
что 0() ,
2) Н(х0, у0) = 0. Тогда представляющая функция предиката R, то значит, 0y∈<( (∃x)R(x,y)> , т.е.
.
() ()
0
. Так как Н –
,
= ,
00
. Таким образом,
верно
.
Из приведенных рассуждений следует, что
. Кроме того, функция φ общерекурсивная как суперпози­ция общерекурсивных функций. Теорема доказана.
Теорема 3.2. Пересечение конечного числа РПМ явля-
ется рекурсивно перечисленным множеством.
Доказательство (индукция по числу множеств).
1. Пусть
стое множество, то и
. Если хотя бы одно из Е1, Е2 — пу-
EE
12
, т.е.
— РПМ
по определению.
Пусть множества
,
и пусть
,
— пе­речисляющие функции для этих множеств соответствен­но, т.е.
Val E , Val E
2
,
,
— общерекурсивные
функции.
Рассмотрим предикат
, ( () &( ( ()) )R ty t y t y
= φλ = φλ =
11 22
.
— 97 —
Глава 3. РЕКУРСИВНЫЕ И РЕКУРСИВНО ПЕРЕЧИСЛИМЫЕ МНОЖЕСТВА
( ) (, ) .
=<∃ >
yE∈
01
yE∈
02
yE=
∈φ
∈φ
10 0
(), ).
φ=φ =
0 12
= µ
101202 00 00.
() , () ()) , ())
2
tx tx (t y (t yλ = λ = φλ = φλ =
Rt y u=
Rty u=
( ) ( )
t R ty u∃=
( ) (, ) .
∈< ∃ >
( ) (, ) .
∈< ∃ >
Rty
1100 200
( ( )) ( ( ))
2
ty tyφλ = φλ =
0102
y Val y Val ∈φ ∈φ
01 2
∈ φ∩ φ
,.yEE EEE∈∩ ∩ =
( ) (, )
EE Ei n=
E
′
E
′
i in
E
′
Он общерекурсивен согласно лемме 1. Докажем, что
Значит,
и
E tRty
, т.е.
y Val
0 1
Пусть
и
y Val
0 2
0
; от-
.
сюда следует, что найдутся такие значения x1 и х2, что
x y (x y
Пусть
и
2
( , ).t xx
2
Тогда
Следовательно,
(, )
00
, т.е. 0t — значение переменной t, при которой предикат
(, )
. По определению квантора существования по-
0
лучаем, что
(
Обратно, пусть дется значение t0, такое, что (, очередь следует, что
и
y Val Val
,
, т.е.
0
y tRty
0
. Таким образом,
, т.е.
01212
y tRty
0
Это значит, что най-
)=u. А отсюда, в свою
0
и
2
, т.е.
Мы получили, что множество Е является областью истинности предиката
tRty∃, где предикат R(t,y) — общерекурсивный. Согласно предыдущей теореме множе­ство Е — РПМ.
2. Предположим теперь, что для некоторого n уже до-
казано: если
=
, где все ( 1,..., )
1
1ni
−
i
пeречислимые, то Е — также рекурсивно перечислимое множество.
Покажем, что тогда множество сечением n+1 рекурсивно перечислимого множества, так­же рекурсивно перечислимо. Действительно, представить в виде
1
nn
+
' ()
E EE E E
= = ∩

11
= =
ii
Отсюда видно, что
— рекурсивно перечислимое множество как пересечение двух рекурсивно перечисли­мых.
— 98 —
— рекурсивно
, являющееся пере-
можно
.
1.
+
3.2. Рекурсивно перечислимые множества
12 2
;,
E E E E E= ∪
122
( ) (,), ( ) (,) ,xR xy E xR xy=<∃ > =<∃ >
12
( ) (,) ( ) (,) .
∃ >∪< ∃ >
( )
12
, (,) (,).R xy R xy R xy= ∨
12
12
( ) (,) ( ) (,) ( ) (,) .
<∃ >=<∃ >∪<∃ >
( ) (,) , (,)E xRxy Rxy=<∃ >  
()
fx
Теорема 3.3. Объединение конечного числа рекурсив-
но перечислимых множество рекурсивно перечислимое множество.
Доказательство (также проведем индукцией по числу
множеств в объединении).
1.
множества Е1 и Е2 представимы в виде E
— РПМ. Согласно теореме 3.I.,
1
где предикаты R1 и R
1
— общерекур-
2
сивные.
Таким образом,
E=<
xR xy xR xy
Рассмотрим теперь предикат R
= ∨ Из свойства дистрибутивности квантора
существования относительно дизъюнкции имеем
xRxy xR xy xR xy
Отсюда
где предикат
обще-
рекурсивен согласно лемме 1.
Применяя критерий рекурсивной перечислимости
множеств, получаем, что Е рекурсивно перечислимо.
2. Индуктивный подход аналогичен предыдущей тео-
реме.
По аналогии можно было бы предположить, что до­полнение рекурсивно перечислимого множества есть ре­курсивно перечислимое множество. Однако это неверно. Операция взятия дополнения не сохраняет рекурсивную перечислимость множеств. Позже мы построим рекурсив­но перечислимые множества, дополнения которых не яв­ляются рекурсивно перечислимыми.
Перейдем теперь к первому вопросу, поставленному в начале этой главы, — распознаванию элементов, принадле­жащих данным множествам. Множества, для которых ответ на этот вопрос положителен, называются рекурсивными.
Определение. Функцию
назовем характеристи-
E
ческой для множества Е если оно удовлетворяет условиям:
— 99 —
Глава 3. РЕКУРСИВНЫЕ И РЕКУРСИВНО ПЕРЕЧИСЛИМЫЕ МНОЖЕСТВА
1,
xE,
fx
E.
если
11
10
Cx Cx
 

 



 




()
fx
()
E
0,
если
x
Определение. Назовем множество Е рекурсивным,
если его характеристическая функция общерекурсивна.
Примеры рекурсивных множеств.
1. Множество N всех натуральных чисел, пустое мно­жество. В качестве их характеристических общерекурсив­ных функций могут выступать, соответственно, функции
( ); ( ).
E
2
−•
( )
3
E k k f x sg x
2. {2 | 0,1,2...}, ( ) 2 .
3. {2 1)| 0,1,2...}, ( ) 2 ..
4.
= = = −⋅
1
E k k fxsgx
= + = = −⋅
2
E a a a E N f x sg x a
= ⊂< = −
3 1, 2, 1
,.... , ,
( )
E
1
kE
x
 
2

−•
k
∏
i
1
=
x
 
2

Из приведенных примеров и из определения рекур-
сивного множества вытекают следующие утверждения:
1. Дополнение любого рекурсивного множества есть рекурсивное множество (действительно, если
E
— об­щерекурсивная характеристическая функция множества Е, то функция ( ( ))
sg f x — также общерекурсивная и явля-
E
ется характеристической для СЕ).
2. Любое конечное множество — рекурсивное, и до­полнение к конченому множеству — рекурсивное множе­ство.
Как взаимосвязаны рекурсивные и рекурсивно пере­числимые множества? Этому вопросу посвящены следую­щие теоремы.
Теорема 3.4. Всякое рекурсивное множество является рекурсивно перечислимым.
Доказательство. Рассмотрим три случая.
— 100 —
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]