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