ta_lect4.ppt
- Количество слайдов: 27
Нумерації формальних моделей алгоритмів та АОФ Приклад 1. Однозначна ефективна нумерація всіх МНР-програм на основі кодування МНР-програм. Кодування команд : (Z(n)) = 4 n; (S(n)) = 4 n+1; (T(m, n)) = 4 С(m, n) + 2; (J(m, n, q+1)) = 4 С(С(m, n), q) + 3. – бієктивне відображення множини всіх команд МНР на N. Використовуючи кодування непорожніх скінченних послідовностей натуральних чисел, задамо кодування усіх МНР-програм. Нехай P – МНР-програма I 1 I 2. . . Ik. (P) = ( (I 1), . . . , (Ik)) та бієктивні – бієкція; = – 1 – шукана однозначна нумерація. 1
. Нумерація ефективна: 1) за кожною МНР-програмою P ефективно обчислюється її номер (P) 2) за кожним n N ефективно визначаємо МНР-програму P = (n). – – визначимо a 1, . . . , ak: a 1 = b 1, ai+1 = bi+1–bi– 1 для 1
Приклад 2. Ефективна нумерація всіх МТ МТ можна задати послідовністю її команд такою, щоб перша команда містила зліва q 0, остання – справа q*. Множину команд МТ можна впорядкувати як послідовність багатьма способами, тому така нумерація МТ неоднозначна. Нехай Q ={q 1, . . . , qf }, T = {a 1, . . . , am}. Кодування команд МТ: (qіaj qkal) = 3 C 4(i, j, k, l); (qіaj qkal. L) = 3 C 4(i, j, k, l) + 1; (qіaj qkal. R) = 3 C 4(i, j, k, l) + 2. є бієктивним відображенням множини всіх команд МТ на N. Код МТ M, заданої послідовністю команд І1І2. . . Іk : (M) = ( (I 1), . . . , (Ik)). та бієктивні – бієкція. = – 1 – однозначна ефективна нумерація послідовностей команд МТ, але неоднозначна нумерація всіх МТ. 3
Приклад 3. Ефективна неоднозначна нумерація усіх ЧРФ на основі кодування ОТ алгебри ЧРФ. (о) = 0; (s) = 4; (Іmn) = 4 (C(n–m, m– 1) + 2); (Sn+1(t 0, t 1, . . . , tn)) = 4 C(Cn+1( (t 0), (t 1), . . . , (tn)), n – 1) + 1; (R(t 0, t 1)) = 4 C( (t 0), (t 1)) + 2; (M(t)) = 4 (t) + 3. n N – номер ЧРФ f, якщо n є кодом ОТ, значенням якого є f. Числа – не коди ОТ, і коди некоректних ОТ – номери f. 1) за кожною ЧРФ можна ефективно знайти її номер 2) за кожним n N ефективно визначається ЧРФ f така, що (n) = f: за n як за кодом будуємо ОТ; якщо ОТ з таким кодом існує та задає ЧРФ f, то (n) = f; якщо ОТ з таким кодом некоректний, то (n) = f. Приклад: код ОТ М(s) для f : (M(s)) = 4 (s) + 3 = 4 4 + 3 = 19. 4
Приклад 4. Ефективна неоднозначна нумерація всіх ПРФ на основі кодування ОТ алгебри ПРФ. (о) = 0; (s) = 3; (Іmn) = 3 (C(n–m, m– 1) + 2); (Sn+1(t 0, t 1, . . . , tn)) = 3 C(Cn+1( (t 0), (t 1), . . . , (tn)), n – 1) + 1; (R(t 0, t 1)) = 3 C( (t 0), (t 1)) + 2. Число n N вважаємо номером ПРФ f, якщо n є кодом деякого ОТ і значенням ОТ є функція f. Числа, які не є кодами ОТ, і коди тих ОТ, які не задають ПРФ, вважаємо номерами функції о. 5
Приклад 5. Ефективна неоднозначна нумерація всіх програмованих n-арних функцій на N на основі кодування ОТ ППА-Ar-N. Єдина відмінність від нумераці] прикладу 3 – інше кодування ОТ ППА-Ar-N: (о) = 0; (s) = 4; (+) = 8; ( ) = 12; (÷) = 16; (Іmn) = 4 (C(n–m, m– 1) + 5); (Sn+1(t 0, t 1, . . . , tn)) = 4 C(Cn+1( (t 0), (t 1), . . . , (tn)), n – 1) + 1; (N (t 0, t 1, t 2)) = 4 C 3( (t 0), (t 1), (t 2)) + 2; (N☼(t 0, t 1)) = 4 C( (t 0), (t 1)) + 3. 6
Приклад 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-арних ЧРФ. 7
Стандартні нумерації n-арних ЧРФ. Зафіксуємо для кожного n 1 ефективну нумерацію n-арних ЧРФ. – нумерація на основі кодування МНР-програм (приклад 6) – нумерація на основі кодування МТ (приклад 8). mn – n-арна ЧРФ із номером m n = 1 спрощене позначення m. Dmn та Emn – області визначення та значень функції n = 1 спрощене позначення Dm та Em. Номер ЧРФ в стандартній нумерації – стандартний індекс функції. Твердження 1. Для кожних ЧРФ mn та j N ефективно знаходиться k N таке, що k>j та kn = mn. Розгл. випадок нумерації n-арних ЧРФ кодами МНР-програм. У кінець заданої МНР-програми Pm допишемо j команд T(0, 0). Нехай k – код такої МНР-програми. Тоді k>j та kn = mn 8
Перехід від однієї з нумерацій ЧРФ до іншої нумерації ефективний: існує алгоритм, який за номером функції f в одній нумерації дозволяє знайти номер f в іншій нумерації . Приклад. Алгоритм переходу від нумерації прикладу 6 до нумерації прикладу 8: за номером k як за кодом МНР-програми будуємо Pk; за Pk будуємо МТ, що задає ту саму функцію; код такої МТ – шуканий. Нумерація геделева, якщо існують РФ f та g: – для кожного m N маємо m = f(m); – для кожного k N маємо k = g(k). Це означає, що існує пара алгоритмів: – перший за стандартним індексом функції знаходить її -індекс, – другий за -індексом функції знаходить її стандартний індекс. Твердження 2. Кожна геделева нумерація ефективна. За ЧРФ, заданою кодом МНР-програми m як m, ефективно (викор. РФ f) знаходимо її -індекс f(m); за -індексом k ефективно (викор. РФ g) знаходимо ЧРФ, задану кодом МНР-програми g(k). 9
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) є ЧРФ за ТЧ Кожна обчислювана нумерація зводиться до геделевої Існують приклади негеделевих обчислюваних нумерацій, проте такі приклади дуже неприродні. 10
Універсальні функції Fn – клас усіх функцій із F фіксованої арності n Функція u(y, x 1, . . . , xn) універсальна для класу Fn, якщо: – для кожного значення m функція u(m, x 1, . . . , xn) Fn; – для кожної f Fn існує m: f(x 1, . . . , xn) = u(m, x 1, . . . , xn) для всіх x 1, . . . , xn. Теорема. 1. Нехай T – деякий клас тотальних n-арних функцій на N, який містить функції о, s, Іmn та є замкненим відносно суперпозиції. Нехай функція u універсальна для Тn. Тоді u Тn+1. Припустимо супротивне: u Т, тобто u Тn+1. Визначимо функцію g: g(x 1, . . . , xn) = u(x 1, . . . , xn)+1. Тоді g Тn. Згідно з універсальністю u існує таке m: для всіх значень x 1, . . . , xn маємо g(x 1, . . . , xn) = u(m, x 1, . . . , xn). Звідси g(m, x 2, . . . , xn) = u(m, m, x 2, . . . , xn). Однак за визначенням g g(m, x 2, … xn) = u(m, m, x 2, . . . , xn)+1. Дістали суперечність, тому що g та u тотальні Наслідок 1. Функція, універсальна для класу n-арних РФ, не є РФ. Наслідок 2. Функція, унів-на для класу n-арних ПРФ, не ПРФ. 11
Теорема 2. Існує РФ, універсальна для класу n-арних ПРФ. На основі ефективної нумерації ПРФ задамо алгоритм для обчислення універсальної для класу n-арних ПРФ функції u(у, x 1, . . . , xn), За n як за кодом ОТ алгебри ПРФ побудуємо відповідний ОТ і перевіримо, чи задає він n-арну ПРФ. Якщо ні, то видаємо 0 (тобто u(у, x 1, . . . , xn) суть функція оn ). Якщо так, то обчислимо значення заданої цим термом функції над x 1, . . . , xn Отже, u – тотальна АОФ, за ТЧ вона є РФ Наслідок 1. Існує РФ, яка не є ПРФ. Наслідок 2. Для відповідних класів функцій маємо строгі включення ПРФ ЧРФ. 12
Теорема 3. Існує ЧРФ, універсальна для класу n-арних ЧРФ. u(y, x 1, . . . , xn) = yn(x 1, . . . , xn) – універсальна для класу n-арних ЧРФ: – для кожного m функція u(m, x 1, . . . , xn) = mn(x 1, . . . , xn) – ЧРФ; – кожна n-арна ЧРФ f – суть функція mn для деякого m, тобто f(x 1, . . . , xn) = mn(x 1, . . . , xn) = u(m, x 1, . . . , xn) для всіх x 1, . . . , xn. Алгоритм для обчислення функції u: За y як за кодом МНР-програми відновимо програму Py для функції . Потім запустимо Py над значеннями x 1, . . . , xn. Отримане значення – це значення yn(x 1, . . . , xn). За ТЧ u – n-арна ЧРФ МНР-програма, яка обчислює універсальну ЧРФ – універсальна МНР-програма. 13
Універсальна програма вміє декодувати довільне число y в програму Py, а далі вона моделює роботу Py, тому її можна задати в явному вигляді. Отже, можна ефективно знайти індекс k універсальної функції u в стандартній нумерації (n+1)-арних ЧРФ, тобто u – це функція kn+1 МТ, яка обчислює універсальну ЧРФ – універсальна МТ. Вона здатна моделювати роботу довільної МТ за її кодом. Універсальна МНР-програма та універсальна МТ є абстрактними моделями сучасних комп’ютерів. Вони реалізують в абстрактному вигляді принцип програмного керування: виконання заданої програми над заданими. 14
s-m-n-теорема Для кожного фіксованого значення a 1, . . . , am аргументів x 1, . . . , xm (m+n)-арнa zm+n(x 1, . . . , xm, y 1, . . . , yn). стає n-арною kn(y 1, . . . , yn). Покажемо: її індекс k можна ефективно знайти за z та a 1, . . . , am. Це означає: існує (m+1)-арна РФ (позн. snm), яка обчислює k. s-m-n-теорема. Для довільних m, n 1 існує (m+1)-арна РФ snm(z, x 1, . . . , xm) така: для всіх z, x 1, . . . , xm, y 1, . . . , yn Зафіксуємо z, x 1, . . . , xm. За z визначимо МНР-програму Pz для zm+n. Задамо МНР-програму Q: перепишемо вміст R 0 – Rn– 1 у Rm – Rm+n– 1; в R 0 – Rm– 1 запишемо x 1, . . . , xm; далі виконуємо Pz. МНР-програма Q обчислює n-арну функцію f таку: для всіх y 1, . . . , yn. f(y 1, . . . , yn) = zm+n(x 1, . . . , xm, y 1, . . . , yn) Код k програми Q ефективно обчислюється за z, x 1, . . . , xm, за ТЧ функція snm, яка обчислює k, рекурсивна. Але f – це kn, тому k = snm(z, x 1, . . . , xm) 15
Rm 1. Для всіх x 1, . . . , xm N snm(z, x 1, . . . , xm) > x 1+. . . +xm. Rm 2. МТ для задання ЧРФ можна зняти залежність snm від n. За z визначаємо МТz для zm+n. Задамо нову МТ M: зліва від поч. вмісту стрічки M дописує та моделює МТz Така МТ M при вході обчислює n-арну kn k – код МТ M – не залежить від n s-m-n-теорема (спрощена) Для кожної ЧРФ f(x 1, . . . , xm, y 1, . . . , yn) існує РФ s(x 1, . . . , xm) така: для всіх x 1, . . . , xm, y 1, . . . , yn Спрощена s-m-n-теорема при m=n=1: Для кожної ЧРФ f(x, y) існує РФ s така: f(x, y) = s(x)(y) для всіх x, y f – це b 2 для деякого b. Тому існує РФ s 11 така: для всіх значень x, y Звідси s(x) – це функція s 11(b, x) 16
Приклад 1. Існує РФ s(x, y): s(x, y)(z) = x(z)+ y(z) для всіх x, y, z N. 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, z N Приклад 2. Існує РФ s(x) така, що для всіх x N маємо Es(x) = Dx. За s-m-n-теоремою існує РФ s(x) така, що f(x, y) = s(x)(у) для всіх x, y N. Зафікс. x. За побудовою f маємо Ds(x) = Es(x). Тепер y Es(x) y Ds(x) s(x)(y) f(x, y) y Dx. Звідси Es(x) = Dx. Приклад 3. Існує РФ t(x) така, що для всіх x N маємо Dt(x) = Ex. За s-m-n-теоремою існує РФ t(x) така: f(x, y) = t(x)(y) для всіх x, y N. Зафікс. x. Mаємо y Dt(x) t(x)(y) f(x, y) y Ex. Тому Dt(x) = Ex 17
Приклад 4. Існує РФ s(x, y): Ds(x, y) = Dx Dy для всіх x, y N За s-m-n-теоремою існує РФ s(x, y): f(x, y, z) = s(x, y)(z) для всіх x, y, z N. Зафікс. x, y. Маємо z Ds(x, y) s(x, y)(z) f(x, y, z) z Dx Dy. Звідси Ds(x, y) = Dx Dy. Приклад 5. Існує РФ s(x, y): Ds(x, y) = Es(x, y) = Dx Dy для всіх x, y N За s-m-n-теоремою існує РФ s(x, y): f(x, y, z) = s(x, y)(z) для всіх x, y, z N. Зафікс. x, y. z Es(x, y) z Ds(x, y) s(x, y)(z) f(x, y, z) z Dx Dy. За побудовою f маємо Ds(x, y) = Es(x, y). Звідси Ds(x, y) = Es(x, y) = Dx Dy. 18
Теореми Кліні про нерухому точку Твердження про існування НТ мають у математиці універсальний характер. В ТА вони набувають вигляду теорем про НТ для РФ і теорем про НТ для ефективних операцій на функціях і множинах Теорема 1. Нехай f – (n+1)-арна РФ. Тоді існує n-арна РФ g така: для всіх значень x 1, . . . , xn. За s-m-n-теоремою існує РФ s(u, x 1, . . . , xn) така: для всіх u, x 1, . . . , xn, y (1) Нехай f(s(u, x 1, . . . , xn) має індекс k у нумерації ЧРФn+1, тобто це kn+1(u, x 1, . . . , xn). За тотальністю f та s функція kn+1 тотальна. При u=k f(s(u, x 1, . . . , xn) = kn+1(k, x 1, . . . , xn) (2) З (1) при u=k та з (2) для всіх x 1, . . . , xn маємо g(x 1, . . . , xn) = s(k, x 1, . . . , xn) – шукана РФ 19
Теорема 2 (n=0). Нехай f(x) – РФ. Тоді існує n N таке, що n = f(n). Наслідок 1. Нехай f(x) – РФ. Тоді існує n N таке: Dn = Df(n) та En = Ef(n). Візьмемо n N таке, що n = f(n) Наслідок 2 (первісне формулювання теореми про НТ) Нехай h(z, x) – ЧРФ. Тоді існує n N таке, що для всіх 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) = g(z)(x) є ЧРФ. За наслідком 2 існує n N: h(n, x) = n(x) для всіх x маємо h(n, x) = g(n)(x) = n(x). 20
Теорему Кліні про нерухому точку краще назвати теорема про псевдонерухому точку. Справді, n = f(n) зовсім не означає, що n = f(n), a свідчить тільки про те, що n і f(n) – індекси однієї й тієї ж самої ЧРФ. Теорему про НТ називають також теоремою про рекурсію, тому що вона виражає рекурсивне визначення найзагальнішого вигляду. Наприклад, визначимо функцію n через задану РФ f так: n = f(n). Тоді n ефективно визначена через n – код МНР-програми для її обчислення, тому що таке n існує згідно теореми 2. 21
МНР-програма P самотвірна, якщо для довільного x N P(x) (P), де (P) – код програми P. Для побудови P треба знати (P), тобто саму програму P, тому таких програм нібито бути не може Проте самотвірні програми існують! Теорема 3. Існує МНР-програма P така, що P(x) (P) для всіх x N. Візьмемо h(z, x) = z. За наслідком 2 існує таке n, що для всіх x маємо h(n, x) = n(x). Отже, n(x) = h(n, x) = n для всіх x. Тому програма P з кодом n – шукана 22
НТ кожної РФ n ефективно залежить від її індексу n. Теорема 4. Існує РФ (x) така: для кожного n N, якщо n є РФ, то За s-m-n-теоремою існує РФ s(x) така: для всіх x N (1) Далі, за s-m-n-теоремою існує РФ v(x) така: для всіх n, x N 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)), маємо 23
Для кожної РФ можна ефективно знайти монот. посл-ть її НТ. Теорема 5. Для кожної РФ f(x) існує строго монотонна РФ (x) така, що для кожного n N маємо (n) = f( (n)). За s-m-n-теоремою існує РФ s(x): для всіх x, y N Нехай m – індекс s(x), тобто s(x) – це m(x). Тоді для всіх y N тобто m(m) – НТ функції f. Але s(x) x для всіх x m(m) m. Функцію (x) задамо так: m 0 – довільний індекс функції s; mk+1 –індекс функції s: mk+1 > (k) Кожне значення функції є НТ функції f. – АОФ, тотальна за тотальністю s за ТЧ є РФ. Для всіх k N – строго монотонна РФ Наслідок. Для кожних РФ f та k N існує n>k: n = f(n). 24
Розглянуті ефективні нумерації ЧРФ неоднозначні. Однозначні ефективні нумерації ЧРФ існують, але немає в певному смислі "природних" однозначних ефективних нумерацій ЧРФ. Теорема 6. Нехай f(x) – строго монотонна тотальна функція: – якщо m n, то f(m) f(n); – f(n) – найменший індекс функції f(n). Тоді f не є ЧРФ. f не може бути тотожною, тому що тоді m n m n. Тому існує таке k N, що f(n)>n при n k. Але f(n) – найменший індекс функції f(n), тому f(m) f(n) для всіх n k. Якщо f є РФ, то за наслідком теореми 5 існує n N таке: n>k та f(n) = n. Дістали суперечність, тому f не РФ та не ЧРФ 25
Спільної НТ для двох РФ може не бути. Нехай 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, n N такі, що 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, z N (1) Для РФ s існує НТ u: u(y) = s(u(y), y) для всіх y N. Згідно (1) тоді u(y) = f(C(u(y), y)) для всіх y N (2) За s-m-n-теоремою існує РФ k(y) така: g(C(u(y), y))(z) = k(y)(z) для всіх y, z N (3) Для РФ k(y) існує n N: 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)) 26
Приклад 1. Існує n N таке: для всіх x маємо n(x) = 2 n+x 3 n. Візьмемо h(z, x) = 2 z+x 3 z. За теоремою 3 існує таке n, що для всіх x маємо h(n, x) = n(x). Отже, n(x) = h(n, x) = 2 n+x 3 n для всіх x. Приклад 2. Існує n N таке, що Dn = En = {n}. За теоремою 3 існує n: для всіх x маємо h(n, x) = n(x). Тоді Звідси Dn = En = {n}. Приклад 3. Існує РФ g(x): Dg(x) = Еg(x) = {3 g(x)+2 x} для всіх x N. За s-m-n-теоремою існує РФ s(t, x): h(t, x, y) = s(t, x)(y) для всіх t, x, y N. За теоремою 1 існує РФ g: g(x) = s(g(x), x) для всіх x N. Тоді Tому для кожного x N маємо Dg(x) = Eg(x) = {3 g(x) + 2 x}. 27