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

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

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
3.2. Рекурсивно перечислимые множества
E =
nn n
,
n k
xk

если x
E φ= φ
<<<<
( ) ( ) ( )
( )
, &1

=>=

=µ=
'(,) ( (,))
φ=
xaφ=
1. Пусть
∅. Тогда множество Е рекурсивно пере-
числимо по определению.
2. Пусть Е — конечное множество: Е={
, ,...,
01
}.
k
Построим функцию, перечисляющую это множество:
,
x
если
,
n
0
и
— примитивно рекурсивная
.
Очевидно, Val
()
x
функция (заданная кусочным образом).
3. Пусть Е — бесконечное рекурсивное подмноже-
ство множества натуральных чисел: E={
, ,..., ,...
aa a }.
01
k
Вследствие линейной упорядоченности множества N мож­но считать
aa a
01
... ...
k
Построим общерекурсивную функцию φ, перечис­ляющую множество Е. Так как Е — рекурсивное множе­ство, то существует общерекурсивная характеристическая функция этого множества. Обозначим эту функцию Ef . Рассмотрим предикат
Q yz y z f y
E
Очевидно, этот предикат — общерекурсивный как конъюнкция двух общерекурсивных предикатов. Пусть Н(у,z) — представляющая функция предиката Q. Тогда функция 0()h z y (H(y,z) 0)
- частично рекурсивная, и полученная из нее введением фиктивной переменной функция
h xz h I xz= — также частично рекурсив-
2
0
ная. Определяем функцию φ следующим образом:
(0) ,
a
0
( 1) '( , ( )).
x hx x
φ+= φ
Очевидно, функция φ частично рекурсивна. Докажем, что φ всюду определена и, следовательно, общерекур­сивна. С этой целью покажем что, для любого х значение
.
.()X
— 101 —
Глава 3. РЕКУРСИВНЫЕ И РЕКУРСИВНО ПЕРЕЧИСЛИМЫЕ МНОЖЕСТВА
φ=
xaφ=
XX
φ+= φ=φ= =µ =
( )
φ+
( )
= =
hxysggyxhyx
=µ=
xE∈
Из задания функции φ 0(0) a
для некоторого х .()
( 1) '( , ( )) ( ( )) ( ) ( ( , ) 0.
x hxxhxha yHya
. Тогда
X
00
. Предположим, что
Так как Н — представляющая функция предиката Q,
получаем: значение
1x
есть наименьшее число у, при котором истинен предикат Q, т.е. наименьший из элемен­тов множества Е, превосходящий Xa . Но это значит, что
1x Val Eφ + = φ= . Значит, Е — рекурсивно перечислимое
множество.
Теорема 3.5 (Е. Пост ). Множество является рекурсив-
ным тогда и только тогда, когда оно само и его дополне­ние — рекурсивно перечислимые множества.
Доказательство.
1. Пусть Е — рекурсивное множество, тогда как мы уже отмечали, его дополнение СЕ — также рекурсив­ное множество. Но тогда на основании предыдущей теоре­мы Е — РПМ и СЕ — РПМ.
2. Пусть Е и СЕ — рекурсивно перечислимые множе­ства и пусть g, h — общерекурсивные функции, перечисля­ющие эти множества, т.е.
lg , Va E Valh CE
.
Рассмотрим последовательность, составленную из зна-
чений функции g и h следующим образом:
(0), (0), (1), (1),..., ( ), ( ),...(*)g h g h gn hn
Очевидно, множество значений данной последова-
тельности совпадает с N. Oпределим функцию
( , ) (| ( ) | | ( ) ),
q
и пусть ( ) [ ( , ) 0]Px yhxy
= −⋅ −
. Функция Р(х) частично рекур­сивна и всюду определена в силу свойства последователь­ности (*), т.е. Р(х) общерекурсивна.
Покажем, что общерекурсивная функция f(х) =
= (| ( ( ) |)sg g P x x− является характеристической для мно- жеств Е. Действительно,
. Тогда найдется по крайне
мере одно значение у такое что g(y)=x (так как функция
— 102 —
3.2. Рекурсивно перечислимые множества
( )
( )
∈
( )
hy x
( )
( )
( )
( )
0
g px x gy x−= −
( )
( )
( )
[() ]
=∃=
g — перечисляющая для E ) Выберем из множества таких у наименьшее и обозначим его 0y :
да
px y= и
чит, найдется у такое, что наименьшее из таких у, тогда
0
Предположим теперь, что х∉Е. Но тогда x
1fx= .
= . Обозначим через 0y
px y= .Так как х∉E ,
min{ | ( ) }y ygy x= = тог-
0
СУ и, зна-
0
то для всех у g (у)≠х, значит, и значение
отлично от нуля, а
0
Отсюда и следует, что множество E рекурсивно, так как оно имеет общерекурсивную характеристическую функцию.
Определение. Назовем множество рекурсивно пере­числимым в порядке возрастания, если существует строго возрастающая общерекурсивная функция, перечисляю­щая это множество.
Теорема 3.6. Бесконечное множество Е рекурсивно тогда и только тогда, когда рекурсивно перечислимо в по­рядке возрастания.
Доказательство.
1. Если множество Е рекурсивно и бесконечно, то на основании случая 3) теоремы 3.4. оно перечисляется обще­рекурсивной строго возрастающей функцией.
2. Пусть g — строго возрастающая общерекурсивная функция и lgVa E=. Нетрудно доказать индукцией по х , что для всех x g(x)≥x.
1) Если х = 0, то , очевидно, что g(0) ≥ 0.
2) Предположим что для некоторого х g(х) ≥х.
Тогда g(x+1)>g(x)≥x, т.е g(x+1)>x и поскольку g —
арифметическая, g(x+1)≥x+1.
На основании принципа математической индукции
заключаем, что для всех х g(х) ≥ х.
Рассмотрим предикат
Qx gz x
Z
≤
ZX
— 103 —
0fx= .
.
Глава 3. РЕКУРСИВНЫЕ И РЕКУРСИВНО ПЕРЕЧИСЛИМЫЕ МНОЖЕСТВА
.
Qx
fx
 
И
если
00
xz≥
∈< >
z gz x=
≠
()x
 
x, если в последовательности (*) встречается число х, не определена в противном случае.
( )
( )
По теореме 1.3. он является общерекурсивным. Определим функцию
1, () ,

если
0, ()
Qx
Л
Функция задана кусочным образом и является об­щерекурсивной. Легко проверить, что эта функция явля­ется, кроме того, характеристической для множества Е. Действительно, пусть х∈E . Так как lgVa E= , то найдет­ся значение 0z такое, что g(0z )=x. Поскольку
, т.е. ()x Qx
0
и Q(x)=и . Но тогда f (х) = 1.
()gz z≥, то
Обратно, пусть f(х) = 1 , откуда Q(х) = и , т.е. для неко­торого
()
00
и, так как lgVa E=, то хE∈.
Теоремa 3.7. Множество Е рекурсивно перечислимо тогда и только тогда, когда его можно представить как об­ласть определения некоторой частично рекурсивной функ­ции.
Доказательство.
1. Пусть Е — рекурсивно перечислимое множество. Если E= , то его можно представить как область опреде­ления любой нигде не определенной функции.
Пусть E
. Из того что Е рекурсивно перечислимо, следует, что существует общерекурсивная функция g та­кая, что lgE Va=.
Рассмотрим бесконечную последовательность значе-
ний функции.
: (0), (1),..., ( ),...(*)g g g gk
Определим функцию ψ(х) следующим образом:
Докажем частичную рекурсивность ψ двумя спосо­бами: с использованием тезиса Черча и без него. Согласно тезису Черча,
xψ является частично рекурсивной функ-
цией (действительно, есть алгоритм А вычисления
— 104 —
xψ
3.2. Рекурсивно перечислимые множества
( )
xxψ=
( )


( ) ( )
( )


( )
( )
gPx x
( )
xxψ=
≠
ψ
( ) ( )
( )
( )
( )
( )
( )
( )
: получим значение х, алгоритм А начинает вычисление g(0), g(1),…. Если в процессе этого вычисления встречается число х, то говорим, что
xψ не определено и алгоритм работает бесконечно).
Частичную рекурсивность функции ψ можно дока-
зать, и не используя тезис Черча.
Пусть
стично рекурсивная функция.
Докажем, что а) Пусть значение х встречается в последовательности
(*) и 0k — наименьшее из всех k таких, что g(k) = х .
Тогда По определению функции ψ
б) Пусть теперь х не принадлежит множеству значе­ний функции g, т.е. при любом фиксированном k g(k) x. Тогда функция P на х не определена, а, следовательно, не определeна и функция g(P(x)). Из определения функции
следует, что на этом х не определена и функция ψ.
Из а) и б) получим, что Р(х) — частично рекурсивная, а g(x) — общерекурсивная функция, то g(P(x)), а с ней и ные функции.
2. Обратно, пусть Е = Dψ, где сивная функция. Покажем, что Е — рекурсивно перечис­лимое множество.
Построим общерекурсивную функцию g, множество значений которой совпадает с Е . Предварительно постро­им список значений S. Построение будем вести поэтапно. Пусть Aψ — алгоритм вычисления функции
Этап 1. Алгоритм начинает вычислять ет для этого ровно один шаг, потом останавливается. При этом, если сок). В противном случае S=∅ (список остается пустым). Этап закончен.
() | () | 0Px k gk x=µ −=
x gPxψ= .
() | () | 0Px k gk x k=µ −= =
0ψ вычислено, то число 0 S∈(вносится в спи-
, если х не встречается, то
. Очевидно, Р(х) — ча-
и
0
x gPxψ= . Но так как
xψ — частично рекурсив-
xψ — частично рекур-
= .
.
xψ .
0ψ и дела-
— 105 —
Глава 3. РЕКУРСИВНЫЕ И РЕКУРСИВНО ПЕРЕЧИСЛИМЫЕ МНОЖЕСТВА
( ) ( ) ( )
ψψ ψ
( ) ( ) ( )
ψψ ψ
ii i n≤
( )
( )
}
{
=
Предположим, что построение шло до n-го этапа.
Этап n+1. С помощью того же алгоритма вычисляют­ся значения числении ровно n+1 шаг для каждого из В результате те значения аргументов рых значения аргументов вычислены, мы вносим в список С (Очевидно,
Заметим, что в процессе построения списка S, мы не пропустили ни одного i, для которого
Переходим к построению функции g. Пусть а — элемент списка S (если этот список не пуст), который появляется в пересчете значений функции ψ раньше других. (Имеется, вообще говоря, бесконечная последо­вательность значений ψ, а совпадает с тем k, для кото­рого значение минимальное, если таких k несколько.) Тогда считаем g(0)=a.
Определим g(x+1) как наименьшее значение у, кото­рое было добавлено к списку S на (х+1)-м этапе или ранее и такое, что т.е. когда ничего нового к списку не добавлено, считаем g(x+1)=a.
По построению функция g всюду определенна и алго­ритмически вычислима (значит, по тезису Черча, частично рекурсивна).
Следовательно, g — общерекурсивная функция.
Покажем, что Val g= Dψ. Ни один элемент из Dψ не пропущен в списке S. С другой стороны, список S состо­ит в точности из этих элементов (по построению списка), т.е. список S состоит в точности из элементов Dψ. Как сле­дует из построения функции g, она перечисляет последо­вательно все элементы списка S. Значит, lgVa D
lgVa E=.
0 , 1 ,..., n
, ,...,
12
n
kψ вычислено быстрее других или k —
(0), (1),... ( )y g g gx∉ , в противном случае,
, и алгоритм делает в этом вы-
0 , 1 ,..., n
, ,..., ,
ii i для кото-
12
.)
iψ .
.
n
, т.е.
ψ
— 106 —
3.2. Рекурсивно перечислимые множества
= ∅
( )
( )
( ) ( )
i iSψ ψ∈
Если D
, то Е =∅, и Е — рекурсивно перечисли-
ψ
мое множество.
Замечание. Отличительной особенностью данной те-
оремы является использование в доказательстве тезиса Черча. Причем в первый раз оно было подкреплено обыч­ным формальным образом, а во второй раз тезис Черча был использован в «чистом» виде. В дальнейшем мы не раз бу­дем прибегать к тезису Черча, полагаясь на его неоспори­мость и авторитет в математике.
Следствие. Е — рекурсивно перечислимое множество
тогда и только тогда , когда Е является множеством значе­ний некоторой частично рекурсивной функции.
Доказательство.
1. Пусть множество Е — рекурсивно перечислимое. Если Е — пустое множество, то оно совпадает со множе­ством значений нигде не определенной функции.
Пусть Е не пусто, тогда по определению рекурсивно перечислимого множества существует общерекурсивная функция g такая, что Val g = E.
2. Пусть E = Val ψ, где ψ — частично рекурсивная
функция. Построим список S.
Этап 1. Делается точно один шаг в вычислении зна- чения
0ψ . Если значение вычислено, то
0ψ включает-
ся в список S. В противном случае список S пуст (на данном этапе не пополняется).
Этап n+1. Вычисляются значения функции ψ в точ- ках 1,2,…n, и делается для вычисления значений функции в каждой из этих точек ровно n+1 шаг. В список S вклю­чаются те значения
1
,...,
, которые вычислены
n
к n+1 шагу.
Функция g определяется так же, как в предыдущей теореме. Дальнейшее доказательство фактически не отли­чается от доказательства теоремы.
— 107 —
Глава 3. РЕКУРСИВНЫЕ И РЕКУРСИВНО ПЕРЕЧИСЛИМЫЕ МНОЖЕСТВА
nn
x xzµ=
n
µ
:.
n
NN
ii
nn
ni n
µλ λ
3
µ
3123 1 23
µ =µµ
11
() (), ()
1
zz zλ=λ λ
1
µ
33 2 12 3 22
z zz z
31 2 3 1 12 22 1 2
( ( ), ( ), ( )) ( ( ), ( ( ( )), ( ( )))) ( ( ), ( )) .zzz z z z zzzµ λ λ λ =µλ µλ λ λ λ =µλ λ =
13123 1 1 23 1
1
( )
,, .
2 1 23 12 1 23 1 23 2
3 1 23 2 23 3.
x xx xx x
11 1
11 2 1
nn n
nn
−− −
−−
3.3. Функции, нумерующие n натуральных чисел
Мы уже рассматривали нумерацию всех пар нату­ральных чисел. Теперь мы обобщим наш метод для случая n-наборов натуральных чисел для любого n.
Введем обозначение: 1( ,..., ) , функция, которая по любому n-набору чисел дает его но­мер,
n
µ −>
Обозначим
n
( ) ( 1,..., ).
z xi nλ==
Зададим функции , ,...,
таким образом, чтобы выполнялось свойство взаимной однозначности, т.е. раз­личным номерам соответствовали векторы, которые не со­впадают, и различным n-кам — различные значения z. Существование этих функций вытекает из их определения. Рассмотрим сначала случай n= 3. Зададим образом:
( , , ) ( , ( , )),xxx x xx
где
— функция, восстанавливающая компоненту х
в функции ( , ),xy
( ) ( ( )), ( ) ( ( )).
λ=λλ λ=λλ
Проверим выполнение свойства взаимной однознач-
ности:
333
т.е.
— это
следующим
3
3
3
т.е.
λ выбирает первую компоненту тройки
3
( ( , ( , ))) ( ( ( , ( , )))) ( ( , )) ;x xx x xx xx xλµ µ =λλµ µ =λµ =
( ( , , )) ( ( , ( , ))) ,xxx x xx xλµ =λµ µ =
3
( ( , ( , ))) ( ( , ))
λµ µ =λµ =
xxx
123
Предположим, что для n-1 найдены функции, нумеру-
ющие наборы чисел длиной n-1,
, , ,..., .
µλλ λ
Определим следующие функции:
— 108 —
( ,.., ) ( , ,..., , ( , )),
n n n n nn
µ=µ µ
EN
{ }
nn n
E xxxxE=µ∈
EN
EN
( ( ), ( ),..., ( )), ( )
ni
x x x xφφ φ φ
[ ]
{ }
nn n
EzxxxxEzxx
x x xx x x x
1 112 2 1
nn
() (),
λ=λ
11
nn
() (),
λ=λ
22
−
zz
−
zz
− −−
1
1
....
1
nn
λλ
−−
nn nn
λ =λλ
−−
nn nn
( ) ( ( )).
λ =λλ
nn
−
() (),
zz
22
1
( ) ( ( )),
zz
1 11
zz
−
1
−
21
−
Упражнение. Самостоятельно докажите взаимную од-
нозначность введенных функций.
Определение. Пусть дано множество .
жество называют рекурсивно перечислимым, если множе­ство Е номеров всех n-наборов из Е является рекурсивно перечислимым,
( ( ,..., ) | ( ,..., ) ).
11
Определение. Множество .
ным, если его множество номеров является рекурсивным.
Теорема 3.8. Перечисление и объединение конечного
числа рекурсивно перечислимых множеств в nN является
рекурсивно перечислимым множеством.
Упражнение. Докажите теорему 3.8. самостоятельно,
используя определение и аналог теоремы или одномерных множеств.
Теорема 3.9. Для того что бы множество .
было рекурсивно перечислимым, необходимо и доста­точно, чтобы оно являлось множеством наборов вида
12
где
кция для всех значений i=1,…, n.
Доказательство.
Пусть Е — рекурсивно перечислимое множество. Тогда множество номеров его наборов Е — рекурсивно пе­речислимое множество, причем
| ,..., ( ,..., ) & ( ,..., ) .
=∃ ∈=µ
11 1
3.3. Функции, нумерующие n натуральных чисел
n
⊂ Это мно-
n
⊂ называют рекурсив-
n
⊂
— общерекурсивная фун-
— 109 —
Глава 3. РЕКУРСИВНЫЕ И РЕКУРСИВНО ПЕРЕЧИСЛИМЫЕ МНОЖЕСТВА
() ((),
xx
xx
xx
λ
( ( ), ( ),..., ( )).
xx xφφ φ
( ( ), ( ),..., ( )).
xx xφφ φ
()
() ( (), (),..., ())
nn
x xx xφ =µφ φ φ
EN
( ) (,),
=<∃ >
µ
11
n nn
= µ
nn
y x xE=µ∈
Так как Е — рекурсивно перечислимое множество, то существует общерекурсивная функция φ(х) такая, что Val φ=E.
Рассмотрим функции
n
где
— функция, нумерующая n-ки чисел. Тогда E предс-
1
тав ляет собой множество наборов вида
Пусть теперь Е — множество наборов
12
ция (для каждого i=1, …, n).
Функция на и перечисляет множество номеров множества Е.
Следовательно, Е — рекурсивно перечислимое множе­ство.
Теорема 3.10. Множество . сивно перечислимым тогда и только тогда ,когда его можно представить как область истинности предиката
( ) ( , ,..., )
xRxx x∃, где предикат R общерекурсивен.
Доказательство.
Предположим, что Е — рекурсивно перечислимое мно­жество. Тогда множество его номеров Е также рекурсивно перечислимо, и Е представимо в виде: где 1R — общерекурсивный предикат. Рассмотрим преди­кат R(x,x1,…xп), которой определяется как результат под­становки в предикат R1 на место второй компоненты функ­ции
:
n
Очевидно, R — «общерекурсивный преди­кат. Пусть (x,x1,…,xп)E∈. Это равносильно тому, что
( ,..., ) .
1
n
( ) ( ( )),
φ =λφ
11
n
( ) ( ( )),
φ =λφ
22
...
φ =λφ
nn
, где
n
n
xφ — общерекурсивная функ-
i
12
⊂ является рекур-
1
n
( , ,..., ) ( , ( ,..., ))
Rxx x Rx x x
В свою очередь, это возможно тогда
— 110 —
12
общерекурсив-
n
E xR xy
(*).
n
1
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]