Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2. Теорія алгоритмів.doc
Скачиваний:
35
Добавлен:
04.09.2019
Размер:
544 Кб
Скачать
☆

37.Кодування. Нумерації, ефективні нумерації. Універсальні класи алгоритмів.

Під кодуванням множини А на множині В будемо розуміти ін’єктивне та сюр’єктивне відображення  : А→В таке, що існують алгоритми A та B:

для кожного аА A(а)(а);

для кожного bB B(b)= -1(b).

Нумерацiєю множини А називають сюр’єктивне функцiональне вiдображення : N →А.

Однозначною нумерацiєю множини А називають бієктивне вiдображення : N →А.

Нумерацiю : N →А називають ефективною, якщо iснують алгоритми A та B такі:

для кожного аА A(а)-1(а);

для кожного nN B(п)=(п).

Нехай  – Х-А-алгоритм,  – Y-В-алгоритм,  – однозначне кодування X в Y,  – однозначне кодування A в B.

Алгоритми  та  назвемо еквівалентними з точністю до кодувань та , якщо:

– для кожного хХ (х) = –1(((х)));

– для кожного yY (y) = ((–1(y))).

Алгоритми  та  назвемо еквівалентними, якщо  та  еквівалентні з точністю до деяких кодувань  та .

Клас алгоритмів називають універсальним, якщо кожний алгоритм еквівалентний деякому алгоритму із .

Таким чином, : N →А  ефективна нумерація  -1: А→N  кодування А на N.

Введемо однозначні ефективні нумерацiї пар та n-ок натуральних чисел, які називаються канторовими нумераціями.

Всi пари натуральних чисел розташуємо в послiдовнiсть так:

пара (x, y) передує парі (u, v)  x+y<u+v або (x+y = u+v та x<u).

Номер пари (x, y) в такiй послiдовностi позначають C(x, y) та називають канторовим номером пари (x, y).

Неважко переконатись, що C(x, y) = [(x+y+1)(x+y)/2]+x

Лiву та праву компоненти пари з номером n позначають вiдповiдно l(n) та r(n). Функцiї l(n) та r(n) називають вiдповiдно лiвою та правою координатними функцiями.

Функцiя C(x, y) задає бiєкцiю NN→N, пара функцiй (l(n), r(n)) задає бiєкцiю N→NN. При цьому функцiї C, l та r зв’язaнi такими тотожностями:

C(l(n), r(n)=n; l(C(x, y))=x; r(C(x, y))=y.

Маючи нумерацiю пар натуральних чисел, можна ввести нумерацiю n-ок натуральних чисел для довiльного n>2:

Cп(x1, x2,..., xп)=Cп1(C(x1, x2), x3,..., xп)=C(...С(C(x1, x2), x3),...), xп).

Координатнi функцiї Cn1 , ..., Cnn вводимо так:

Нехай Cп(x1, x2,..., xп)=m; тоді Cn1(m)=x1; Cn2(m)=x2; ... , Cnn(m)=xn.

Для функцiй Cп, Cn1 , ..., Cnn справджуються такi тотожностi:

Cп(Cn1(x), ..., Cnn(x))=x;

Cnk(Cп(x1, x2,..., xп))=xk, 1kn.

Теорема 7.1.1. 1) Функцiї C(x, y), l(n) та r(n) є ПРФ.

2) Функцiї Cп, Cn1 , ..., Cnn є ПРФ.

38.Канторові нумерації. Функції Гьоделя. Елімінація примітивних рекурсії.

Кодування множини A на множині B – це ін'єктивне та сюр'єктивне відображення : А→В таке, що існують алгоритми  та :

– для кожного аА (а)(а);

– для кожного bB (b) = –1(b).

Нумерацією множини А назвемо сюр'єктивне функціональне відобра-ження : N →А. Однозначною нумерацією множини А назвемо бієктивне відображення : N →А.

Нумерація : N→А ефективна, якщо існують алгоритми  та :

– для кожного аА (а)–1(а);

– для кожного nN (n) = (n).

Таким чином, : N→А – ефективна нумерація  –1 : А→N – кодування А на N.

Введемо однозначні ефективні нумерації пар та n-ок натуральних чисел, які називаються канторовими нумераціями.

Всі пари натуральних чисел розташуємо в послідовність так:

пара (x, y) передує парі (u, v)  x+y<u+v або (x+y = u+v та x<u).

Номер пари (x, y) в такій послідовності позначають C(x, y) та називають канторовим номером пари (x, y).

Неважко переконатись, що C(x, y) = [(x+y+1)(x+y)/2]+x

Ліву та праву компоненти пари з номером n позначають відповідно l(n) та r(n). Функції l(n) та r(n) називають відповідно лівою та правою координатними функціями.

Функція C(x, y) задає бієкцію NN→N, пара функцій (l(n), r(n)) задає бієкцію N→NN. Функції C, l та r зв'язaні тотожностями:

C(l(n), r(n)) = n;

l(C(x, y)) = x;

r(C(x, y)) = y.

Маючи нумерацію пар натуральних чисел, можна ввести нумерацію n-ок натуральних чисел для довільного n>2:

Cn(x1, x2,..., xn) = Cn–1(C(x1, x2), x3,..., xn) = C(...С(C(x1, x2), x3),...), xn).

Координатні функції Cn1 , ..., Cnn вводимо так:

Нехай Cn(x1, x2,..., xn)=m; тоді Cn1(m)=x1; Cn2(m)=x2; ..., Cnn(m)=xn.

Для функцій Cn, Cn1 , ..., Cnn справджуються такі тотожності:

Cn(Cn1(x), ..., Cnn(x)) = x;

Cnk(Cп(x1, x2,..., xn)) = xk, 1kn.

Теорема 3.1.1. 1) Функції C(x, y), l(n) та r(n) є ПРФ.

2) Функції Cn, Cn1 , ..., Cnn є ПРФ.

Номером (індексом) довiльної формули  вважатимемо її код (). Всi тi натуральнi числа, якi не є кодами формул, вважатимемо номером формули x0=x0 .

Зрозуміло, що так введена нумерація  неоднозначна. Формулу з номером n позначатимемо n .

Кодувати довiльну скiнченну послiдовнiсть натуральних чисел. дозволяє також функція Гьоделя (x, y) = mod(l(x), 1+(y+1)r(x)).

З визначення випливає, що (x, y) є ПРФ.

Теорема 7.1.2 (про основну властивість функції Гьоделя). Для довiльної скiнченної послiдовностi натуральних чисел b0, b1, ..,bn існує натуральне число t таке, що маємо

(t, i)=bi для всiх i{0,...,n}.

Використання функції Гьоделя дає змогу промоделювати операцiю примiтивної рекурсiї операціями суперпозиції та мінімізації:

Теорема 7.1.3.(про елімінацію операції примітивної рекурсії) Функцiя f=R(g, h) може бути отримана iз функцiй g, h, базових функцiй і функцiй +,  за допомогою скiнченної кiлькостi застосувань операцiй Sn+1 та М.

Наслiдок. Клас ЧРФ спiвпадає з класом функцiй, отриманих із функцій о, s, I , +,  за допомогою операцiй Sn+1 та M.