1 Нумерації формальних моделей алгоритмів та АОФ Приклад



























33498-ta_lect4.ppt
- Количество слайдов: 27
1 Нумерації формальних моделей алгоритмів та АОФ Приклад 1. Однозначна ефективна нумерація всіх МНР-програм на основі кодування МНР-програм. Кодування команд : (Z(n)) = 4n; (S(n)) = 4n+1; (T(m, n)) = 4С(m, n) + 2; (J(m, n, q+1)) = 4С(С(m, n), q) + 3. – бієктивне відображення множини всіх команд МНР на N. Використовуючи кодування непорожніх скінченних послідовностей натуральних чисел, задамо кодування усіх МНР-програм. Нехай P – МНР-програма I1I2...Ik. (P) = ((I1), ..., (Ik)) та бієктивні – бієкція; = –1 – шукана однозначна нумерація.
2 Нумерація ефективна: 1) за кожною МНР-програмою P ефективно обчислюється її номер (P) 2) за кожним nN ефективно визначаємо МНР-програму P = (n). – – визначимо a1,..., ak: a1 = b1, ai+1 = bi+1–bi–1 для 1
3 Приклад 2. Ефективна нумерація всіх МТ МТ можна задати послідовністю її команд такою, щоб перша команда містила зліва q0, остання – справа q*. Множину команд МТ можна впорядкувати як послідовність багатьма способами, тому така нумерація МТ неоднозначна. Нехай Q ={q1,..., qf }, T = {a1,..., am}. Кодування команд МТ: (qіajqkal) = 3C4(i, j, k, l); (qіajqkalL) = 3C4(i, j, k, l) + 1; (qіajqkalR) = 3C4(i, j, k, l) + 2. є бієктивним відображенням множини всіх команд МТ на N. Код МТ M, заданої послідовністю команд І1І2...Іk : (M) = ((I1),..., (Ik)). та бієктивні – бієкція. = –1 – однозначна ефективна нумерація послідовностей команд МТ, але неоднозначна нумерація всіх МТ.
4 Приклад 3. Ефективна неоднозначна нумерація усіх ЧРФ на основі кодування ОТ алгебри ЧРФ. (о) = 0; (s) = 4; (Іmn) = 4(C(n–m, m–1) + 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 є кодом ОТ, значенням якого є f. Числа – не коди ОТ, і коди некоректних ОТ – номери f. 1) за кожною ЧРФ можна ефективно знайти її номер 2) за кожним nN ефективно визначається ЧРФ f така, що (n) = f: за n як за кодом будуємо ОТ; якщо ОТ з таким кодом існує та задає ЧРФ f, то (n) = f; якщо ОТ з таким кодом некоректний, то (n) = f. Приклад: код ОТ М(s) для f: (M(s)) = 4(s) + 3 = 44 + 3 = 19.
5 Приклад 4. Ефективна неоднозначна нумерація всіх ПРФ на основі кодування ОТ алгебри ПРФ. (о) = 0; (s) = 3; (Іmn) = 3(C(n–m, m–1) + 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 є кодом деякого ОТ і значенням ОТ є функція f. Числа, які не є кодами ОТ, і коди тих ОТ, які не задають ПРФ, вважаємо номерами функції о.
6 Приклад 5. Ефективна неоднозначна нумерація всіх програмованих n-арних функцій на N на основі кодування ОТ ППА-Ar-N. Єдина відмінність від нумераці] прикладу 3 – інше кодування ОТ ППА-Ar-N: (о) = 0; (s) = 4; (+) = 8; () = 12; (÷) = 16; (Іmn) = 4(C(n–m, m–1) + 5); (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.
7 Приклад 6. Ефективна неоднозначна нумерація n всіх МНР-обчислюваних функцій фіксованої арності n. Hомер функції f – код МНР-програми, яка обчислює f. Приклад 7. Ефективна нумерація всіх МНР-обчислюваних функцій на основі кодування МНР-програм. Hомер n-арної f – це С(k, n), де k – код МНР-програми для f. Приклад 8. Ефективна неоднозначна нумерація всіх обчислюваних за Тьюрінгом функцій фіксованої арності n. Номер функції f – код МТ, яка обчислює f. Приклад 9. Ефективна нумерація всіх обчислюваних за Тьюрінгом функцій на основі кодування МТ. Hомер n-арної функції f – число С(k, n), де k – код МТ для f. Нумерації прикладів 5, 6, 8 – ефективні нумерації всіх ЧРФ фіксованої арності n. Нумерації прикладів 3, 7, 9 – ефективні нумерації всіх n-арних ЧРФ.
8 Стандартні нумерації n-арних ЧРФ. Зафіксуємо для кожного n1 ефективну нумерацію n-арних ЧРФ. – нумерація на основі кодування МНР-програм (приклад 6) – нумерація на основі кодування МТ (приклад 8). mn – n-арна ЧРФ із номером m. n = 1 спрощене позначення m. Dmn та Emn – області визначення та значень функції n = 1 спрощене позначення Dm та Em. Номер ЧРФ в стандартній нумерації – стандартний індекс функції. Твердження 1. Для кожних ЧРФ mn та jN ефективно знаходиться kN таке, що k>j та kn = mn. Розгл. випадок нумерації n-арних ЧРФ кодами МНР-програм. У кінець заданої МНР-програми Pm допишемо j команд T(0, 0). Нехай k – код такої МНР-програми. Тоді k>j та kn = mn.
9 Перехід від однієї з нумерацій ЧРФ до іншої нумерації ефективний: існує алгоритм, який за номером функції f в одній нумерації дозволяє знайти номер f в іншій нумерації . Приклад. Алгоритм переходу від нумерації прикладу 6 до нумерації прикладу 8: за номером k як за кодом МНР-програми будуємо Pk; за Pk будуємо МТ, що задає ту саму функцію; код такої МТ – шуканий. Нумерація геделева, якщо існують РФ f та g: – для кожного mN маємо m = f(m); – для кожного kN маємо k = g(k). Це означає, що існує пара алгоритмів: – перший за стандартним індексом функції знаходить її -індекс, – другий за -індексом функції знаходить її стандартний індекс. Твердження 2. Кожна геделева нумерація ефективна. За ЧРФ, заданою кодом МНР-програми m як m, ефективно (викор. РФ f) знаходимо її -індекс f(m); за -індексом k ефективно (викор. РФ g) знаходимо ЧРФ, задану кодом МНР-програми g(k).
10 F –клас функцій X→Y, для якого задано нумерацію : N→F. З кожною пов’язана функція u : N × X→Y така: u(n, x) = n(x). Така u – спряжена з нумерацією . Нумерація обчислювана, якщо спряжена з нею функція є ЧРФ. Твердження 3. Кожна геделева нумерація обчислювана. Нехай нумерація геделева, g – РФ із визначення геделевої нумерації. Спряжена з нумерацією функція u(n, x) = n(x) = g(n)(x) є ЧРФ за ТЧ. Кожна обчислювана нумерація зводиться до геделевої Існують приклади негеделевих обчислюваних нумерацій, проте такі приклади дуже неприродні.
11 Універсальні функції Fn – клас усіх функцій із F фіксованої арності n Функція u(y, x1,..., xn) універсальна для класу Fn, якщо: – для кожного значення m функція u(m, x1,..., xn)Fn; – для кожної fFn існує m: f(x1,..., xn) = u(m, x1,..., xn) для всіх x1,..., xn. Теорема.1. Нехай T – деякий клас тотальних n-арних функцій на N, який містить функції о, s, Іmn та є замкненим відносно суперпозиції. Нехай функція u універсальна для Тn. Тоді uТn+1. Припустимо супротивне: uТ, тобто uТn+1. Визначимо функцію g: g(x1,..., xn) = u(x1, x1,..., xn)+1. Тоді gТn. Згідно з універсальністю u існує таке m: для всіх значень x1,..., xn маємо g(x1,..., xn) = u(m, x1,..., xn). Звідси g(m, x2,..., xn) = u(m, m, x2,..., xn). Однак за визначенням g g(m, x2, … xn) = u(m, m, x2,..., xn)+1. g та u тотальні суперечність Наслідок 1. Функція, універсальна для класу n-арних РФ, не є РФ. Наслідок 2. Функція, унів-на для класу n-арних ПРФ, не ПРФ.
12 Теорема 2. Існує РФ, універсальна для класу n-арних ПРФ. На основі ефективної нумерації ПРФ задамо алгоритм для обчислення універсальної для класу n-арних ПРФ функції u(у, x1,..., xn), За n як за кодом ОТ алгебри ПРФ побудуємо відповідний ОТ і перевіримо, чи задає він n-арну ПРФ. Якщо ні, то видаємо 0 (тобто u(у, x1,..., xn) суть функція оn ). Якщо так, то обчислимо значення заданої цим термом функції над x1,..., xn Отже, u – тотальна АОФ, за ТЧ вона є РФ Наслідок 1. Існує РФ, яка не є ПРФ. Наслідок 2. Для відповідних класів функцій маємо строгі включення ПРФ РФ ЧРФ.
13 Теорема 3. Існує ЧРФ, універсальна для класу n-арних ЧРФ. u(y, x1,..., xn) = yn(x1,..., xn) – універсальна для класу n-арних ЧРФ: – для кожного m функція u(m, x1,..., xn) = mn(x1,..., xn) – ЧРФ; – кожна n-арна ЧРФ f – суть функція mn для деякого m, тобто f(x1,..., xn) = mn(x1,..., xn) = u(m, x1,..., xn) для всіх x1,..., xn. Алгоритм для обчислення функції u: За y як за кодом МНР-програми відновимо програму Py для функції . Потім запустимо Py над значеннями x1,..., xn. Отримане значення – це значення yn(x1,..., xn). За ТЧ u – n-арна ЧРФ МНР-програма, яка обчислює універсальну ЧРФ – універсальна МНР-програма.
14 Універсальна програма вміє декодувати довільне число y в програму Py, а далі вона моделює роботу Py, тому її можна задати в явному вигляді. Отже, можна ефективно знайти індекс k універсальної функції u в стандартній нумерації (n+1)-арних ЧРФ, тобто u – це функція kn+1 МТ, яка обчислює універсальну ЧРФ – універсальна МТ. Вона здатна моделювати роботу довільної МТ за її кодом. Універсальна МНР-програма та універсальна МТ є абстрактними моделями сучасних комп’ютерів. Вони реалізують в абстрактному вигляді принцип програмного керування: виконання заданої програми над заданими даними.
15 s-m-n-теорема Для кожного фіксованого значення a1,..., am аргументів x1,..., xm (m+n)-арнa zm+n(x1,..., xm, y1,..., yn). стає n-арною kn(y1,..., yn). Покажемо: її індекс k можна ефективно знайти за z та a1,..., am. Це означає: існує (m+1)-арна РФ (позн. snm), яка обчислює k. s-m-n-теорема. Для довільних m, n 1 існує (m+1)-арна РФ snm(z, x1,..., xm) така: для всіх z, x1,..., xm, y1,..., yn Зафіксуємо z, x1, ..., xm. За z визначимо МНР-програму Pz для zm+n. Задамо МНР-програму Q: перепишемо вміст R0 – Rn–1 у Rm – Rm+n–1; в R0 – Rm–1 запишемо x1,..., xm; далі виконуємо Pz. МНР-програма Q обчислює n-арну функцію f таку: для всіх y1,..., yn. f(y1,..., yn) = zm+n(x1,..., xm, y1,..., yn) Код k програми Q ефективно обчислюється за z, x1,..., xm, за ТЧ функція snm, яка обчислює k, рекурсивна. Але f – це kn, тому k = snm(z, x1,..., xm)
16 Rm 1. Для всіх x1,..., xmN snm(z, x1,..., xm) > x1+...+xm. Rm 2. МТ для задання ЧРФ можна зняти залежність snm від n. За z визначаємо МТz для zm+n. Задамо нову МТ M: зліва від поч. вмісту стрічки M дописує та моделює МТz Така МТ M при вході обчислює n-арну kn k – код МТ M – не залежить від n s-m-n-теорема (спрощена) Для кожної ЧРФ f(x1,..., xm, y1,..., yn) існує РФ s(x1,..., xm) така: для всіх x1,..., xm, y1,..., yn Спрощена s-m-n-теорема при m=n=1: Для кожної ЧРФ f(x,y) існує РФ s така: f(x,y) = s(x)(y) для всіх x,y f – це b2 для деякого b. Тому існує РФ s11 така: для всіх значень x, y Звідси s(x) – це функція s11(b, x)
17 Приклад 1. Існує РФ s(x, y): s(x,y)(z) = x(z)+y(z) для всіх x,y,zN. f(x, y, z) = x(z)+y(z) є ЧРФ, тому за s-m-n-теоремою існує РФ s(x, y): f(x, y, z) = s(x,y)(z) = x(z)+y(z) для всіх x, y, zN Приклад 2. Існує РФ s(x) така, що для всіх xN маємо Es(x) = Dx. За s-m-n-теоремою існує РФ s(x) така, що f(x, y) = s(x)(у) для всіх x, yN. Зафікс. x. За побудовою f маємо Ds(x) = Es(x). Тепер yEs(x) yDs(x) s(x)(y) f(x, y) yDx. Звідси Es(x) = Dx. Приклад 3. Існує РФ t(x) така, що для всіх xN маємо Dt(x) = Ex. За s-m-n-теоремою існує РФ t(x) така: f(x, y) = t(x)(y) для всіх x, yN. Зафікс. x. Mаємо yDt(x) t(x)(y) f(x, y) yEx. Тому Dt(x) = Ex
18 Приклад 4. Існує РФ s(x, y): Ds(x,y) = DxDy для всіх x, yN За s-m-n-теоремою існує РФ s(x, y): f(x, y, z) = s(x,y)(z) для всіх x, y, zN. Зафікс. x, y. Маємо zDs(x,y) s(x,y)(z) f(x, y, z) zDxDy. Звідси Ds(x,y) = DxDy. Приклад 5. Існує РФ s(x, y): Ds(x,y) = Es(x,y) = DxDy для всіх x, yN За s-m-n-теоремою існує РФ s(x, y): f(x, y, z) = s(x,y)(z) для всіх x, y, zN. Зафікс. x, y. zEs(x,y) zDs(x,y) s(x,y)(z) f(x, y, z) zDx Dy. За побудовою f маємо Ds(x,y) = Es(x,y). Звідси Ds(x,y) = Es(x,y) = Dx Dy.
19 Теореми Кліні про нерухому точку Твердження про існування НТ мають у математиці універсальний характер. В ТА вони набувають вигляду теорем про НТ для РФ і теорем про НТ для ефективних операцій на функціях і множинах. Теорема 1. Нехай f – (n+1)-арна РФ. Тоді існує n-арна РФ g така: для всіх значень x1,..., xn. За s-m-n-теоремою існує РФ s(u, x1,..., xn) така: для всіх u, x1,...,xn, y (1) Нехай f(s(u, x1,..., xn), x1,..., xn) має індекс k у нумерації ЧРФn+1, тобто це kn+1(u, x1,..., xn). За тотальністю f та s функція kn+1 тотальна. При u=k f(s(u, x1,..., xn), x1,..., xn) = kn+1(k, x1,..., xn) (2) З (1) при u=k та з (2) для всіх x1,..., xn маємо g(x1,..., xn) = s(k, x1,..., xn) – шукана РФ.
20 Теорема 2 (n=0). Нехай f(x) – РФ. Тоді існує nN таке, що n = f(n). Наслідок 1. Нехай f(x) – РФ. Тоді існує nN таке: Dn = Df(n) та En = Ef(n). Візьмемо nN таке, що n = f(n). Наслідок 2 (первісне формулювання теореми про НТ) Нехай h(z, x) – ЧРФ. Тоді існує nN таке, що для всіх x маємо h(n, x) = n(x). За s-m-n-теоремою існує РФ s(z) така, що h(z, x) = s(z)(x) z, x. За теоремою 2 існує n: n = s(n) для всіх x маємо h(n, x) = s(n)(x) = n(x) Тепер виведемо теорему 2 з наслідку 2. Нехай f(x) – РФ. За ТЧ h(z, x) = f(z)(x) є ЧРФ. За наслідком 2 існує nN: h(n, x) = n(x) для всіх x для всіх x маємо h(n, x) = f(n)(x) = n(x).
21 Теорему Кліні про нерухому точку краще назвати теорема про псевдонерухому точку. Справді, n = f(n) зовсім не означає, що n = f(n), a свідчить тільки про те, що n і f(n) – індекси однієї й тієї ж самої ЧРФ. Теорему про НТ називають також теоремою про рекурсію, тому що вона виражає рекурсивне визначення найзагальнішого вигляду. Наприклад, визначимо функцію n через задану РФ f так: n = f(n). Тоді n ефективно визначена через n – код МНР-програми для її обчислення, тому що таке n існує згідно теореми 2.
22 МНР-програма P самотвірна, якщо для довільного xN P(x)(P), де (P) – код програми P. Для побудови P треба знати (P), тобто саму програму P, тому таких програм нібито бути не може Проте самотвірні програми існують! Теорема 3. Існує МНР-програма P така, що P(x)(P) для всіх xN. Візьмемо h(z, x) = z. За наслідком 2 існує таке n, що для всіх x маємо h(n, x) = n(x). Отже, n(x) = h(n, x) = n для всіх x. Тому програма P з кодом n – шукана
23 НТ кожної РФ n ефективно залежить від її індексу n. Теорема 4. Існує РФ (x) така: для кожного nN, якщо n є РФ, то За s-m-n-теоремою існує РФ s(x) така: для всіх xN (1) Далі, за s-m-n-теоремою існує РФ v(x) така: для всіх n, xN n(s(x)) = v(n)(x) (2) Якщо n є РФ, то кожне n(x). При x = v(n) з (1) та (2) маємо (3) n(s(v(n))) = v(n)(v(n)) (4) Із (3)(4) маємо Поклавши (n) = s(v(n)), маємо
24 Для кожної РФ можна ефективно знайти монот. посл-ть її НТ. Теорема 5. Для кожної РФ f(x) існує строго монотонна РФ (x) така, що для кожного nN маємо (n) = f((n)). За s-m-n-теоремою існує РФ s(x): для всіх x, yN Нехай m – індекс s(x), тобто s(x) – це m(x). Тоді для всіх yN тобто m(m) – НТ функції f. Але s(x)x для всіх x m(m) m. Функцію (x) задамо так: m0 – довільний індекс функції s; mk+1 – індекс функції s: mk+1 > (k). Кожне значення функції є НТ функції f. – АОФ, тотальна за тотальністю s за ТЧ є РФ. Для всіх kN – строго монотонна РФ. Наслідок. Для кожних РФ f та kN існує n>k: n = f(n).
25 Розглянуті ефективні нумерації ЧРФ неоднозначні. Однозначні ефективні нумерації ЧРФ існують, але немає в певному смислі "природних" однозначних ефективних нумерацій ЧРФ. Теорема 6. Нехай f(x) – строго монотонна тотальна функція: – якщо mn, то f(m) f(n); – f(n) – найменший індекс функції f(n). Тоді f не є ЧРФ. f не може бути тотожною, тому що тоді mn m n. Тому існує таке kN, що f(n)>n при nk. Але f(n) – найменший індекс функції f(n), тому f(m) f(n) для всіх nk. Якщо f є РФ, то за наслідком теореми 5 існує nN таке: n>k та f(n) = n. Дістали суперечність, тому f не РФ та не ЧРФ
26 Спільної НТ для двох РФ може не бути. Нехай u = k та v = m – різні РФ. Візьмемо f(x) k, g(x) m. Якщо існує спільна НТ n для f та g, то n = f(n) та n = g(n). Звідси u = k = f(n) = n = g(n) = m = v – суперечить u v. Можна знайти пару ефект. зв’язаних НТ для пари заданих РФ: Теорема 7 (про парну рекурсію). Для кожної пари РФ f(x) та g(x) існують m, nN такі, що m = f(C(m,n)) та n = g(C(m,n)). За s-m-n-теоремою існує РФ s(x, y) така: f(C(x,y))(z) = s(x,y)(z) для всіх x, y, zN (1) Для РФ s існує НТ u: u(y) = s(u(y),y) для всіх yN. Згідно (1) тоді u(y) = f(C(u(y),y)) для всіх yN (2) За s-m-n-теоремою існує РФ k(y) така: g(C(u(y),y))(z) = k(y)(z) для всіх y, zN (3) Для РФ k(y) існує nN: n = k(n). Згідно (3) n = g(C(u(n),n)). Візьмемо m=u(n). Тоді n = g(C(m,n)) Із (2) при y=n маємо m = u(m) = f(C(u(n),n)) = f(C(m,n))
27 Приклад 1. Існує nN таке: для всіх x маємо n(x) = 2n+x3n. Візьмемо h(z, x) = 2z+x3z. За теоремою 3 існує таке n, що для всіх x маємо h(n, x) = n(x). Отже, n(x) = h(n, x) = 2n+x3n для всіх x. Приклад 2. Існує nN таке, що Dn = En = {n}. За теоремою 3 існує n: для всіх x маємо h(n, x) = n(x). Тоді Звідси Dn = En = {n}. Приклад 3. Існує РФ g(x): Dg(x) = Еg(x) = {3g(x)+2x} для всіх xN. За s-m-n-теоремою існує РФ s(t, x): h(t, x, y) = s(t,x)(y) для всіх t, x, yN. За теоремою 1 існує РФ g: g(x) = s(g(x),x) для всіх xN. Тоді Tому для кожного xN маємо Dg(x) = Eg(x) = {3g(x) + 2x}.

