Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТА ЛЕКЦIЯ 1-18.doc
Скачиваний:
84
Добавлен:
08.11.2018
Размер:
1.81 Mб
Скачать

1. Поняття нумерації. Канторові нумерації пар та n-ок натуральних чисел

Різні формальні моделі алгоритмів можуть діяти на різних множинах об’єктів. Наприклад, машини Тьюрінга і нормальні алгоритми є вербальними алгоритмами, МНР-програми визначають функції натуральних аргументів та значень. Для порівняння різних формальних моделей і для переходу від одної моделі до іншої треба кодувати елементи одної множини елементами іншої множини (див. лекцію 2).

Зауважимо, що МНР-програми, машини Тьюрінга, нормальні алгоритми Маркова визначають універсальні класи алгоритмів.

З поняттям кодування тісно пов’язане поняття ефективної нумерації.

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

Це означає, що кожний елемент bА має номер iз N (можливо, не єдиний) та кожне nN є номером єдиного елемента (n)А.

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

У теорiї алгоритмiв особливий iнтерес викликають ефективнi нумерацiї, якi дозволяють за кожним bА ефективно (тобто за допомогою певного алгоритму) визначити його номер та за кожним nN ефективно визначити той елемент (n)=bА, який нумерується цим n.

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

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

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

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

Розглянемо тепер нумерацiї пар та n-ок натуральних чисел. Такі нумерацiї названi канторовими. Канторовi нумерацiї є однозначними ефективними нумерацiями.

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

пара (x, y) йде ранiше за пару (u, v)  x+y<u+v або (x+y = u+v та x< u ).

Отже, маємо таку послідовність: (0,0); (0,1); (1,0); (0,2); (1,1); … .

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

Лiву та праву компоненти пари з номером n позначають вiдповiдно l(n) і r(n). Наприклад, l(4)=1, r(3)=2. Функцiї l(n) та r(n) називають вiдповiдно лiвою й правою координатними функцiями.

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

Пара (x, y) знаходиться на x-му мiсцi пiсля пари (0, x+y). Перед парою (0, x+y) знаходиться x+y груп пар з однаковою сумою компонент, причому в групi із сумою компонент m мiститься m+1 пара. Тому перед парою (0, x+y) знаходиться n = 1+2+...+ (x+y) = (x+y+1)(x+y)/2 пар. Звiдси C(x, y)=n+x, тобто C(x, y) = [(x+y+1)(x+y)/2]+x = [((x+y)2+3x+y)/2]. Отже, функція C(x, y) є ПРФ.

Нехай x=l(n), y=r(n). Тоді

2n =2C(x, y)=((x+y)2+3x+y)/2, 8n+1=(2x+2y+1)2+8x = (2x+2y+3)2-8y-8.

Звідси

2x+2y+1 []<2x+2y+3, x+y+1 [([]+1)/2]<x+y+2.

Отже,

x+y+1= [([]+1)/2].

Але n=C(x, y)= [(x+y+1)(x+y)/2]+x, звiдки функція

l(n)=x=[(x+y+1)(x+y)/2] = [[([]+1)/2][([])/2]/2]

є ПРФ.

Тепер функцiя r(n) = y = (x+y+1) = [([]+1)/2]l(n)+1) є ПРФ.

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

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

Зауважимо, що якщо функцiї С, L, R зв’язанi тотожностями

C(L(n), R(n))=n; L(C(x,y))=x; R(C(x,y))=y, ()

то, називаючи C(x, y) номером пари (x, y), дiстанемо однозначну нумерацiю NN.

З іншого боку, нехай задана однозначна нумерацiя NN, тобто всi пари натуральних чисел без повторiв розташованi в послiдовнiсть (x0, y0), (x1, y2), ..., (xn, yn), ... . Поклавши тепер L(n)=xn, R(n)=yn та C(xn, yn)=n, дiстанемо функцiї, зв’язанi тотожностями ().

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

C3(x1, x2, x3)=C(C(x1, x2), x3);

Ck+1(x1, x2,..., xk+1) = Ck(C(x1, x2), x3,..., xk+1) = C(...С(C(x1, x2), x3),...), xk+1)

для k>2.

Якщо Cп(x1, x2,..., xп)=m, то координатнi функцiї Cn1 , ..., Cnn вводимо так:

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.

Теорема 2. Функцiї Cп, Cn1 , ..., Cnn є ПРФ.

Справдi, маємо

Cnn(m)=xn=r(m); Cnn-1(m)=xn-1=r(l(m)); ..., Cn2(m)=x2=r(l(...l(m))…); Cn1(m)=x1=l(l(...l(m))..).

Задамо однозначну ефективну нумерацiю всiх скiнченних послiдовностей натуральних чисел на основі канторових нумераційних функцій. Спочатку задамо кодування  таких послідовностей:

()=0;

(а1, ..., ап) = C(Cп(а1, ..., ап), п-1)+1.

Таке відображення :N бієктивне. Тепер обернене відображення η=1  шукана однозначна нумерацiя.

Однозначну ефективну нумерацiю всiх скiнченних послiдовностей натуральних чисел можна також задати на основі наступного кодування  скiнченних послiдовностей:

()=0;

(а1, ..., ап)=++...+.

Бiєктивнiсть вiдображення :N випливає з однозначностi подання кожного натурального числа в двiйковiй системi числення. Обернене відображення =-1  шукана однозначна нумерацiя.

Аналогічно задаємо однозначну ефективну нумерацiю всiх непорожніх скiнченних послiдовностей натуральних чисел. Модифікуючи кодування , дістаємо однозначне кодування

:N : (а1, ..., ап)=++...+-1.

Обернене відображення =-1  шукана однозначна нумерацiя.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]