
людкоский тарф методичка с сдо
.pdf
( ) = µ ≤22 [| ( ) − ( + 1)| = 0].
Функция ( ) = 22 примитивно-рекурсивна. Из предложения 5 следует, что
( ) является примитивно-рекурсивной функцией.
15. Пусть ( , ) обозначает показатель степени числа ( ) в разложении
на простые множители числа y, где ( , 0) = 0. Эта функция выражается через примитивно-рекурсивные функции
̅̅̅̅ |
+1 |
)) ( ) = 0]. |
( , ) = µ ≤ [ ( ( , ( ( )) |
|
Поэтому, ( , ) является примитивно-рекурсивной функцией. 16. Рассмотрим целую часть квадратного корня из x, то есть
( ) = [√ ]. Эту функцию можно представить в виде
|
|
̅̅̅̅ |
(( + 1) |
2 |
÷ ) = 0], |
|
|
||||
[√ ] = µ ≤ [ |
|
следовательно, ( ) примитивно-рекурсивна.
17. Для пар натуральных чисел x и y возьмём функцию
( , ) = ( + )( + + 1) + . 2
Это канторовская функция, которая присваивает номер паре ( , ).
Она примитивно-рекурсивна, так как
( , ) = [( + )( + + 1)] + . 2
15. Лекция 15. Частично-рекурсивные и общерекурсивные функции.
Определение 6. Пусть задана некоторая (n+1) – местная частичная функция f. Опишем n-местную частичную функцию ( 1, … , )
равную y в том и только том случае, когда для всякого < значение
51

( 1, … , , ) определено и на равно 0, а ( 1, … , , ) = 0.
Тогда говорят, что функция g получается в результате применения операции
минимизации (или µ-оператора) из f и пишут
( 1, … , ) µ [ ( 1, … , , ) = 0].
Определение 7. Если частичная функция : n−→ может быть получена из базисных функций применением конечного числа подстановок,
рекурсий и минимизаций, то она называется частично-рекурсивной. Если при этом функция f оказывается тотальной, то говорят, что она общерекурсивна.
Из определений получается, что любая примитивно-рекурсивная функция
является общерекурсивной.
Примеры. 18. Если имеется n-местная функция g с пустой областью определения, то можно записать условное равенство
( 1, … , ) µ [ ( 1) + = 0].
Следовательно, g частично-рекрсивна.
19. Пусть ( , ) x-y определена лишь при ≤ ,
тогда ( , ) µ [| − ( + )| = 0], следовательно, f – суть частично-рекур- сивная функция.
20. Рассмотрим частичную функцию ( , ) 1/y, которая определена
только при y = для некоторого натурального z. Из условного равенства
( , ) µ [| − y| = 0] мы получаем, что функция f частично-рекурсивна.
21. Теперь возьмём частичную функцию ( , ) , которая определена,
если y делит x. Тогда выполняется условное равенство
( , ) µ [| − | = 0].
Поэтому f является частично-рекурсивной функцией.
Теорема 1. Функция частично-рекурсивна тогда и только тогда, когда она числовая и вычислима на машине Тьюринга.
52
Доказательство. В силу тезиса Тьюринга любая частично-рекурсивная функция вычислима. Более детально строятся машины Тьюринга, которые вычисляют базисные функции. Если = (1, … , ) и имеются машины Тьюринга F,1,…, , вычисляющие функции f, 1,…, , то по ним строится машина Тьюринга H, вычисляющая h. Из машин Тьюринга F и G,
вычисляющих n-местную функцию f и (n+2)-местную функцию g соответственно строится машина Тьюринга H, которая вычисляет (n+1)-местную функцию h, полученную рекурсией из f и g. Также из машины
Тьюринга F, вычисляющей (n+1)-местную функцию f, получают машину
G, которая вычисляет функцию µ, полученную из f применением
оператора минимизации.
Докажем теперь обратное утверждение о том, что вычислимая по Тьюрингу числовая функция является частично-рекурсивной. Доказательство делится на несколько этапов. Сразу отметим, что отсюда будет следовать тезис Чёрча: любая числовая функция, которая вычислима в индуктивном смысле, также есть частично-рекурсивная функция. Сначала описывается техника сопоставляющая вычислениям на машине Тьюринга вычисления с помощью натуральных чисел.
Замечание 2. Техника арифметизации машин Тьюринга.
Рассмотрим машину Тьюринга, имеющую множество внутренних состояний= {0, … , } и ленточный алфавит
= {1, … , } , где 1 = , 2 = 1, 3 = □. С помощью символов 1 и □
можно записать любое натуральное число. Произвольное исходное данное
< 1, … , > для вычисления n-местной числовой функции представляют словом 1□ … □ . Рассмотрим функцию : −→ , которая нумерует все слова
в алфавите Σ, а обозначает множество слов, составленных из букв принад- |
||||||||||||
лежащих алфавиту Σ. Для пустого слова Λ полагают ( ) = 0, а для |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
непустого слова = |
|
… |
|
|
|
0 |
вычисляется значение |
|||||
|
|
|
|
|
|
|
1 |
|
|
|
|
|
( ) = |
0 |
+ + + |
|
s . Если в какой-либо момент времени внутреннее |
||||||||
|
1 |
|
|
|
|
|
|
|
|
|
||
состояние машины M задаётся значением |
, на ленте |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
написано слово , а остальные ячейки пустые, то есть заполнены символом , головкой машины обозревается ячейка с символом в ней
53
, то слово w удобно записать в виде = , в котром выделен обозреваемый символ . Тогда говорят, что машина имеет конфигурацию
, где 0≤k≤m, 0≤l≤n, A и B – некоторые слова в алфавите Σ. Допустимы также пустые слова A и B. Для конфигурации = её номер удобно вы- числять по формуле ( ) = 2 ( )3k5l7 ( ).
В частности, положим
n( 1 , … , ) = ( 1□ … □ ).
Предложение 6. Для всякого натурального числа 1≤n функция n
примитивно-рекурсивна.
Доказательство. Воспользуемся методом математической индукции.
В качестве основания индукции возьмём n=1. Тогда
1( ) = (1 … 1),
где 1 повторяется x раз, 1(0) = 0, 1( + 1) = 2 + 1( ) . То есть функция
δ вычисляется рекурсивно.
Предположение индукции: пусть n примитивно-рекурсивна. Продолжение индукции: докажем, что n+1 примитивно-рекурсивна.
Из равенства n+1( 1 , … , , +1 ) = n( 1 , … , ) 1+ +1 следует, что
n+1 примитивно-рекурсивна, так как она представлена примитивно-рекурсив- ным термом.
Теперь рассмотрим подробнее работу машины M, когда в качестве
исходного данного фигурирует слово 1□ … □ .
Начальной конфигурацией машины является q1 # Х1 □ Х2 □ … □ Хn, которая имеет номер γn (X1, …, Xn) = V (q1 # X1 □ … □ Xn).
Предложение 7. Функция γn (X1, …, Хn) является примитивно-рекурсивной для всякого n ≥ 1.
Доказательство. Функция δn примитивно-рекурсивная в силу Предложения 6. С другой стороны, выполняется равенство
γn (X1, …, Xn) = 3 ∙ 5 ∙ 7 (Х1,…Х ),
54

так как (A qk аl B) = 2√∑( ) * 3K * 5l * 7√∑(В)
Поэтому функция γn тоже является примитивно-рекурсивной.
Теперь рассмотрим перемещение считающей головки машины Тьюринга:{N, L, R} и команды вида qi aj |→ qk al . В качестве номера для последней
команды положим (при h = 2 ∙ 3 ∙ 5( )), где с = c(i, j) – канторовская функ-
ция, которая нумерует пары натуральных чисел, S(N) = 0, S(L)=1, S(R)=2. После этого номером машины М назовем произведение номеров команд машины М. Если у машины имеется конфигурация m = AqiajB, то в результате выполнения одной из команд получается новая конфигурация mM’ = m’, по правилам:
1)m’ = m, если i=0;
2)если i≠0 и имеется команда qiaj |→ qk N,то ’ = ;
3)если i≠0, а команда имеет вид qiaj |→ qk R, B = /\, то
m’ = A qk #;
4)если i≠0, B ≠ /\, имеется команда qiaj |→ qk R, то m’ = A qk B;
5)если i≠0, A = /\, выполняется команда qiaj |→ qk m’ = qk # B;
6)если i≠0, A ≠ /\, выполняется команда qiaj |→ qk
A = A1S, то m’ = A1qkasalB;
L, то
L,
Таким образом, если на ленте написано слово АаjB, а считывающая голова машины находится в состоянии qi и обозревает символ aj, то m’=m’M обозначает конфигурацию, которая получается из исходной конфигурации m в результате выполнения одной из команд машины M.
Далее доказывается с использованием вспомогательных утверждений, что номер конфигурации m’M можно вычислить с помощью примитивно-рекурсив- ной функции, исходя из номера t машины М и номера Х конфигурации m в предыдущий момент времени.
Предложение 8. Номер (m’) конфигурации m’ машины M можно вычислить с помощью пятиместной примитивно-рекурсивной функции ρ по начальной конфигурации M = A qiaj B, номерам слов = Σ( ),
= ∑ (B) и команде qiaj |→qkal ,
S = S( ) в виде ( , , , , ) = ( ’).
55

Доказательство. Зададим функцию ρ соотношениями =
(0, , , , ) = 2 ∙ 3 ∙ 5 ∙ 7 ;
(1, , , , ) = 2( ) ∙ 3 ∙ 5( )∙ ( )+¬( ( )) ∙ 7 + ln( );
(2, , , , ) = 2∙+ ∙ 3 ∙ 5¬( ( ))+ ( ) × ( ) ∙ 7( );
( , , , , ) = ¬( ( )) ∙ (0, , , , ) + ¬( )| − 1| ∙ (1, , , , ) + ¬( )| − 2| ∙ (2, , , , ),
где ln(x) обозначается длину слова с номером x, а остальные обозначения поясняются ниже. Функция ln(x) примитивно-рекурсивна, так как ln(x) = μz≤ x[¬(sg)(x÷α(z)) = 0], где α(n) обозначает количество всех слов длины, не превосходящей n, α(n) =∑ni=0 pi.
Функция α(n) примитивно-рекурсивна в силу последнего равенства, где p
– число букв в алфавите ∑. При длине слова w равной n выполняются неравенства
α(n-1)≤ ∑ (w) < α(n)
При этом в формулах выше для ρ номер последней буквы слова х обозначен lt(x), где lt(0) = 0. Эта функция lt(x) выражается в виде примитивно-рекур- сивной функции lt(x) = b(x,0). В свою очередь функция b(x,n) задается следующим образом. Возьмем какое-либо слово w = ajs…ajo с номером ν∑ (w) = x и положим b(x,n) = jn для каждого n = 0,1...,s ; также b(x,n) = 0 при x=0 или n > s.
При x ≠ 0 выполняется равенство
b(x,0) = sg(rest(x,p)) · rest(x,p) + ̅̅̅ (rest(x,p) · p;
|
b(x,n+1) = sg(rest([ |
|
] ÷ [ |
(, ) |
], |
p)∙ ([ |
|
] ÷ ( |
(, ) |
) , ] + |
̅̅̅ |
|||
+1 |
|
+1 |
|
|||||||||||
(rest([ |
|
] ÷ [ |
(, ) |
], p) · p |
|
|
|
|
|
|
||||
+1 |
|
|
|
|
|
|
|
при n+1 S, следовательно, функция b(x,n) примитивно-рекурсивна.
Для непустого слова W = W1As с номером ν∑ (W) = x через h(x) обозначим номер слова W1, где h(0)=0. Тогда получим h(x) = [÷( )], так как ν∑(W1)= [ −],
следовательно, функция h(x) примитивно-рекурсивна.
56
Функция lh(x) обозначает номер первой буквы непустого слова с номером x, где lh(0)=0. Поскольку lh(x) = b(x,ln(x÷1)), то функция lh примитивно-рекур- сивна.
Для непустого слова w = asw1 с номером х функция t(x) полагается равной номеру слова w1, где t(0)=0.
Представим эту функцию в виде t(x)= ∑ =0 ( , ) ∙ , следовательно, она тоже примитивно-рекурсивна.
Таким образом, все функции, участвующие в представлении функции ρ примитивно-рекурсивны. Из представления ρ вытекает, что она тоже является примитивно-рекурсивной функцией.
Предложение 9. Имеется пятиместная функция такая, что они прими-
тивно-рекурсивна и ( , , , , ) = ( ’ ), где t – номер машины М, m = AqiajB – конфигурация машины М, u = ∑ (A), W = ∑ (B).
Доказательство. Из определений функции ex, номерa машины t и функции с вытекает, что ex(c(i,j),t) – номер команды qiaj | qk , где k = ex(0, ex(c(i,j),t)) ; =ex(1,ex(c(i,j),t)) ; S()=ex(2,ex(c(i,j),t)). Применение предложения 8 приводит к выражениям:
( , 0, , , ) = 2 ∙ 30 ∙ 5 ∙ 7 и
( , , , , ) = ( (2, ( ( , ), ))),
ex(0, ex(c(i,j),t)), ex(1, ex(c(i,j),t)), u,w) при i > 0.
Предложение 10.
Значение ( ′ ) можно вычислить с помощью двухместной примитивно-рекур-
сивной функции , исходя из номера t машины M и номера x конфигурации m по формуле
( ′ |
) = ( , ). |
|
|
|
|
Доказательство. Поскольку = , |
||
|
|
|
Σ(А) = (0, ); |
= (1, ); |
= (2, ); |
Σ( ) = (3, ), то в силу предложения 9 выполняется формула:
( , ) = ( , (1, ), (2, ), (0, ), (3, )).
57
Предложение 11. Пусть 0 |
= , |
+1 |
= ( )′, |
|
|
|
|
t – номер машины M, x – номер конфигурации m, тогда существует трехместная
примитивно-рекурсивная функция w для вычисления ν( ) по формуле
ν( ) = ( , , ).
|
Доказательство. Это вытекает их предложения 10 и равенств ( , , 0) = |
; |
( , , + 1) = ( , ( , , )). |
Предложение 12. Предположим, что машина Тьюринга M с номером t0 чисто вычисляет n-местную частичную функцию f.
Тогда для всяких натуральных чисел x1, …, xn значение функции f(x1, …, xn)
определено |
в том |
и |
только том случае, когда существует y такое, что |
|
(1, |
( , ( , … , |
), )) = 0, |
||
|
0 |
1 |
|
|
где – функция фигурирующая в предложении 7.
Доказательство. Поскольку машина Тьюринга M чисто вычисляет функцию , то значение (x1, …, xn) задается тогда и только тогда, когда машина Тьюринга M начинает работу с конфигурации = 1# 1 2 … и за конечное число шагов y переходит в заключительное состояние q0 с конфигурацией
# … # 0 # ( 1, … , )# … #.
Согласно предложению 7 число ( 1, … , ) является номером конфигурации m, тогда как значение ( 0, ( 1, … , ), ) – это номер заключительной конфигурации, как утверждает предложение 11.
Таким образом, (1, ( 0, ( 1, … , ), )) = 0 (см. определение номера конфигурации ν( ) и функции ( , ) выше).
Предложение 13. Если машина Тьюринга M с номером t0 чисто вычисляет n-местную частичную функцию f, то
( 1, … , ) 2 ( (3, ( 0, ( 1, … , ), +1( 0, 1, … , ))))
для любых натуральных чисел 1, … , , где
+1( 0, 1, … , ) [ ( , ( 0, ( 1, … , ), )) = 0], а
( ) обозначает число вхождений буквы aj в слово с номером x.
58
Доказательство. Функция ( ) примитивно-рекурсивна, так как ( ) =
∑ln=0( )÷1 | ( , ) − |,где функции b и ln те же что и в доказательстве предложения 8. Вычисление (x1, …, xn) машиной Тьюринга M подразумевает, что началь-
ной является |
конфигурация |
# |
|
… , а заключительной |
|
|
|
1 |
1 |
2 |
|
# … # |
# ( , … , )# … #. При этом ( , … , ) равняется номеру началь- |
||||
0 |
1 |
|
|
1 |
|
ной конфигурации, тогда как функция +1 задает номер шага при работе машины M на исходном данном 1 … на котором машина M переходит в заключительное состояние 0. Это означает, что +1( 0, 1, … , ) совпадает с количеством шагов в вычислении (x1, …, xn) на машине Тьюринга M, причем( 0, ( 1, … , ), +1( 0, 1, … , )) – это номер заключительной конфигура-
ции. Тогда (3, ( 0, ( 1, … , ), +1( 0, 1, … , ))) является номером слова
( 1, … , )# … #. С другой стороны,
(x1, …, xn) равняется количеству единиц в этом слове,
( 1, … , ) = 2( (3, ( 0, ( 1, … , ), +1( 0, 1, … , ))))
Итак, если (x1, …, xn) определено, то условное равенство утверждения данного предложения выполняется.
Предположим, что (x1, …, xn) не определено , тогда работа машины M
продолжается |
на |
… |
и |
при |
любом y конфигурация |
с номером |
|||||
|
|
|
|
1 |
|
|
|
|
|
|
|
( , ( , … , |
|
), ) |
|
не |
является |
заключительной |
и |
равенство |
|||
0 |
1 |
|
|
|
|
|
|
|
|
|
|
(1, ( , ( , … , |
), )) = 0 |
не выполняется. То |
есть, |
выражение |
|||||||
|
0 |
1 |
|
|
|
|
|
|
|
|
|
+1( |
, , … , |
) не определено. |
|
|
|
|
|||||
0 |
1 |
|
|
|
|
|
|
|
|
|
|
Таким образом, в этом случае обе части условного равенства не опреде-
лены.
Окончание доказательства теоремы 1.
Функция 2( (3, ( 0, ( 1, … , ), +1( 0, 1, … , ))))
частично-рекурсивная. Из последнего предложения вытекает, что каждая числовая функция, которая вычислима на машине Тьюринга, также частично-рекур- сивна.
Замечание 3. Частично-рекурсивные функции довольно хорошо устроены: любую частично-рекурсивную функцию f можно записать с помощью одного оператора минимизации и одной подстановки, исходя из двух примитивно-ре- курсивных функций. При этом одна примитивно-рекурсивная функция зависит
59

от , а другая фиксирована. Это составляет содержание нижеследующей теоремы Клини. В ней фиксированной является примитивно-рекурсивная функция
.
16. Лекция 16. Представления частично-рекурсивных функций.
Теорема 2. Любая n-местная частично-рекурсивная функция представима в виде
( 1, … , ) ( [ ( 1, … , , ) = 0]),
где F – примитивно-рекурсивная функция, которая может зависеть от , ( ) обозначает левую компоненту пары с номером n.
Доказательство. Для пары натуральных чисел x и y ее номер = ( , ) дается канторовской функцией, ( ) = , ( ) = , где ( ) – обозначает правую компоненту пары (x, y). Тогда выполняется неравенство:
+ + 1 ≤ [√8 +1]+1 < + + 2,
2
так как 2 = 2 + 2 + 2 + 3 + ,
8 + 1 = (2 + 2 + 1)2 + 8 и 8 + 1 = (2 + 2 + 3)2 − 8 − 8
Поэтому + + 1 = [[√8 +1]+1], 2
следовательно,
|
|
|
|
|
|
|
|
|
|
|
( ) = = ÷ |
1 [√8 + 1] + 1 |
] ∙ [ |
[√8 + 1] ÷ 1 |
], |
||||||
|
[ |
|
|
|
|
|
|
|||
2 |
|
2 |
|
2 |
|
так как ( , ) = [( + )( + +1)] + 2
Итак, функция ( ) примитивно-рекурсивна. В силу теоремы 1 каждая ча- стично-рекурсивная функция вычислима на машине Тьюринга.
60