Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Теория алгоритмов. Учебное пособие
.pdf
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
