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

39.Кодування та нумерації мнр-програм, мт, операторних термів відповідних алгебр.

Однозначну ефективну нумерацiю всiх МНР-програм задамо на основi кодування МНР-програм як скiнченних послiдовностей команд МНР. Кодування команд  задамо так:

(Z(n)) = 4n;

(S(n)) = 4n+1;

(T(т,n)) = 4С(т,n)+2;

(J(m,n, q+1))=4С(С(т,n), q)+3.

Таке   бiєктивне вiдображення множини всiх команд МНР на N. Використовуючи розглянуту вище бiєкцiю : →N, задамо кодування  всiх МНР-програм так.

Якщо P  МНР-програма I1I2...Iк , то (P) = ((I1),..., (Ik)).

Відображення  та  бiєктивнi, тому  теж бiєкцiя. Тодi =-1  шукана однозначна нумерацiя.

Нумерацiя  ефективна. Справдi, за кожною МНР-програмою P ефективно обчислюється її номер (P). З iншого боку, за кожним nN ефективно визначається МНР-програма P=(n). Справді, спочатку подамо число n+1 як суму зростаючих степенiв числа 2: n+1= + +...+ , де 0b1<...<bk. Далi визначимо послiдовнiсть чисел a1, ..., ak: a1=b1, ai+1=bi+1-bi-1 для 1<i<k. Тепер за числами a1, ..., ak як за кодами команд МНР вiдновимо вiдповiднi команди. Послiдовнiсть цих команд i є шуканою МНР-програмою P.

МНР-програму з кодом n позначатимемо Pn.

Ефективну нумерацiю всiх МТ задамо на основi кодування МТ. Кожну МТ можна задати послiдовнiстю її команд такою, що 1-а команда мiстить в лiвiй частинi символ q0 , остання команда мiстить в правiй частинi символ q*. Таке завдання неоднозначне, бо множину команд МТ можна впорядкувати у виглядi послiдовностi з вищевказаною властивiстю багатьма способами. Тому наша нумерацiя МТ неоднозначна.

Занумеруємо внутрiшнi стани МТ і символи стрiчки. Нехай Q={q1,..., qf}, T={a1,..., am}. Кодування  команд МТ задамо так:

(qiajqka1) = 3C4(i, j, k, l);

(qiajqka1L) = 3C4(i, j, k, l)+1;

(qiajqka1R) = 3C4(i, j, k, l)+2.

Таке  є бiєктивним вiдображенням множини всiх можливих команд машин Тьюрiнга на N. Використовуючи розглянуту вище бiєкцiю : →N, визначимо код МТ M, заданої послiдовнiстю команд I1I2...Iк , таким чином: (M) = ((I1),..., (Ik)). Але  та  бiєктивнi, тому  теж бiєкцiя. Тодi =-1  шукана однозначна нумерацiя послiдовностей команд МТ, але неоднозначна нумерацiя всiх МТ. Неважко переконатись, що така нумерацiя ефективна.

Приклад 3.Ефективну нумерацiю  всiх т-арних ЧРФ задамо на основi кодування  операторних термiв алгебри ЧРФ. Завдання ЧРФ за допомогою ОТ неоднозначне, бо кожну ЧРФ можна описати нескiнченною кiлькiстю рiзних ОТ, тому нумерацiя  неоднозначна.

Кодування  операторних термiв задамо так:

(о) = 0; (s) = 4; (I ) = 4(C(n, m)-2);

(Sn+1(t0, t1,..., tn)) = 4C(Cn+1((t0), (t1),..., (tn)), n-1)+1;

(R(t0, t1)) = 4C((t0), (t1))+2;

(M(t)) = 4(t)+3.

Число nN вважаємо номером ЧРФ f, якщо n є кодом якогось ОТ, i значенням цього ОТ є функцiя f. Числа, якi не є кодами ОТ, та коди тих ОТ, якi не задають ЧРФ, вважаємо номерами всюди невизначеної функцiї f. Зрозумiло, що за кожною ЧРФ можна ефективно знайти її номер. З iншого боку, за кожним nN ефективно визначається ЧРФ f така, що (n)=f : за n як за кодом будуємо ОТ; якщо ОТ з таким кодом iснує та задає ЧРФ, то (n)  саме така ЧРФ f ; якщо ОТ з таким кодом iснує, але не задає ЧРФ, то (n)=f ; якщо ОТ з таким кодом не iснує, то (n)= f . Отже,  є ефективною нумерацiєю всiх ЧРФ.

Ефективну нумерацiю всiх ПРФ задамо на основi кодування операторних термiв алгебри ПРФ. Така нумерацiя ПРФ неоднозначна. Кодування  ОТ алгебри ПРФ задамо так:

(о) = 0;

(s) = 3;

(I ) = 3(C(n, m)-2);

(Sn+1(t0, t1,..., tn)) = 3C(Cn+1((t0), (t1),..., (tn)), n-1)+1;

(R(t0, t1)) = 3C((t0), (t1))+2.

Число nN вважаємо номером ПРФ f, якщо n є кодом якогось ОТ та значенням цього ОТ є функцiя f. Числа, якi не є кодами ОТ, та коди тих ОТ, якi не задають ПРФ, вважаємо номерами функцiї о.

Приклад 5. Ефективну нумерацiю всiх програмованих на N n-арних функцiй задамо на основi кодування операторних термiв ППА-Ar-N. Зрозуміло, що така нумерацiя неоднозначна. Єдина iстотна вiдмiннiсть вiд нумерацiї прикладу 3  iнше кодування  операторних термiв ППА-Ar-N:

(о) = 0;

(s) = 4;

(+) = 8;

() = 12;

=16:

(I ) = 4(C(n, m)+1);

(Sn+1(t0, t1,..., tn)) = 4C(Cn+1((t0), (t1),..., (tn)), n-1)+1;

(N(t0, t1, t2)) = 4C3((t0), (t1), (t2))+2;

(N☼(t0, t1)) = 4C((t0), (t1))+3.