Явне мурекурсивне вираження функції Акермана


15

Чи можете ви вказати, як побудувати функцію Акермана (насправді мене цікавить версія, запропонована Россою Петером та Рафаелем Робінсоном) за допомогою стандартних мурекурсивних операторів? Я спробував оригінальні статті Петера та Робінсона, але в папері Петера використовується мова, що відрізняється від англійської та в роботах Робінсона «Рекурсія та подвійна рекурсія» та «Примітивні рекурсивні функції» також не допомагають: перша з них здається більш актуальною, але використовується так називається оператором подвійної рекурсії для визначення функції Акермана, тому в цьому випадку шукається явне визначення оператора в мурекурсивних умовах.

Найбільш близько до відповіді йде П. Сміт у «Вступі до теорем Годеля» (CUP, 2007) (29.4 Функція Акермана-Пітера є μ-рекурсивною), але він придумує таке: «зробити аргумент водонепроникним досить нудна, хоча і не складна. З написання деталей тут нічого не можна дізнатися: тому ми цього не зробимо ».

Я також спробував книгу Роззи Петера «Рекурсивні функції» (1967, Академічна преса). Існує безліч варіантів для операторів рекурсії, наведених там. Зазвичай одне зводиться до іншого. Я вважаю, що існує тип оператора рекурсії, який підходить для визначення функції Акермана та послідовності кроків, які зводять її до примітивних операторів зменшення і мінімізації, але я виявив, що не в змозі дослідити весь шлях вниз.


1
Насправді це не так складно, як може здатися спочатку. Трюк полягає в тому, щоб оператор шукав обчислення функції Акермана, тобто таблиці значень до введення, а потім перевірити, чи відповідає таблиця за визначенням функції. Що потрібно - це кодування / декодування кінцевих послідовностей та перевірка таблиці. Кодування / декодування чітко визначено у багатьох підручниках, перевірка може здійснюватися обмеженим універсальним кількісним показником за простим співвідношенням між записами таблиці. Обмежений універсальний кількісний коефіцієнт може бути виражений у вигляді обмеженого множення,μ
Kaveh

і чітке визначення обмеженого множення на -рекурсії також можна знайти в підручниках. μ
Kaveh

@Kaveh так, та сама ідея, що була реалізована у "Вступі до теорем Годеля" П. Сміта. Там наведені кодування та застосування оператора мінімізації. Складна частина полягає в тому, як створити "таблицю", як ви її називаєте. Сміт пропустив це. Тож здається, що мені доведеться думати над цим важче, а не чекати тут рішень;) Принаймні дякую за схвалення загального підходу.
Артем Пеленицин

Таблиця - це лише обмежена послідовність, де записи індексуються результатом функції з’єднання. де R ( c , x , y )μc:x<Len(c)y,z<x,x=<y,z>→c<y,z>=R(c,x,y)R(c,x,y)- rhs рівняння для . Ack(x,y)
Kaveh

Відповіді:


13

Порушення функції Акерманна аж до елементарних операторів справді було б досить тривалим, але ось ескіз:

Зауважте, що при обчисленні рекурсивно в будь-якій точці обчислення ви маєте справу з виразом форми A ( m 1 , A ( m 2 , ... , A ( m k , z ) ... ) . функцію біективної пари p з оберненою ( π 1 , π 2 ) , ми можемо кодувати цей стан як p ( z , p ( kA(m,x)A(m1,A(m2,,A(mk,z))p(π1,π2) (просто p ( z , 0 ) у випадку k = 0 ). Тоді ми можемо визначити функцію однокрокового оцінювання, задавши стан:p(z,p(k,p(mk,,p(m2,m1))p(z,0)k=0

;e(p(z,0))=p(z,0)

;e(p(z,p(k,p(0,c))))=p(z+1,p(k1,c))

;e(p(0,p(k,p(m+1,c))))=p(1,p(k,p(m,c)))

.e(p(z+1,p(k,p(m+1,c))))=p(z,p(k+1,p(m+1,p(m,c))))

Потім ви отримуєте функцію n-ступінь оцінки за допомогою примітивної рекурсії:

і E ( n + 1 , m , x ) = e ( E ( n , m , x ) ) .E(0,m,x)=p(x,p(1,m))E(n+1,m,x)=e(E(n,m,x))

Нарешті, оберніть -рекурсію навколо E, щоб знайти точку, де ми потрапимо до стану вигляду p ( z , 0 ) - z буде A ( m , x ) .μEp(z,0)zA(m,x)


Спасибі! Ще одне запитання (можливо, досить наївне, вибачте): визначення, що відповідають типу візерунків (f (0) = ..., f (n + 1) = ...) широко використовуються, але я сумніваюся, що вони справді ухиляються від визначення мурекурсивної функції. Чи вони?
Артем Пеленицин

Таке розрізнення випадків (наприклад, визначення через f ( 0 , y ) = g ( y ) і f ( x + 1 , y ) = h ( x , y ) ) - лише особливий випадок примітивної рекурсії, яка фактично не використовує попереднє значення. При обчисленні A ( x , y ) ви додатково використовуєте допоміжні функції та обертання πf(x,y)f(0,y)=g(y)f(x+1,y)=h(x,y)A(x,y) зовсім небагато, якщо ви хочете розбити це на основний набір операцій. π1,π2
Klaus Draeger

Наприклад, ви можете перекласти визначення як e ( s ) = f 1 ( π 1 ( s ) , π 2 ( s ) ) , де f 1 ( z , 0 ) = p ( z , 0 ) і f 1 ( z , m + 1 ) = f 2 ( z , π 1ee(s)=f1(π1(s),π2(s))f1(z,0)=p(z,0)f1(z,m+1)=f2(z,π1(m+1),π2(m+1))f2

7

Це варіант ідеї, яку опублікував Kaveh, але я все-таки публікую повідомлення, оскільки це дозволяє підмітати багато кидких деталей під килим, фактично не роблячи жодного рукоділля.

Ключовим фактом є те, що графік функції Акермана є примітивним рекурсивним. Не так важко знайти дуже грубу примітивну рекурсивну межуБ(м,н,ш) on the code for the table of Ackermann values needed to verify that A(m,n)=w. Don't try to get sharp bounds — the cruder the easier! Something like B(m,n,w)=2mww should be good enough, but that depends on your choice of coding scheme. Since the verification of the table values can be described by a bounded formula, it is primitive recursive.

Once you have a primitive recursive definition for the graph G(m,n,w) of the Ackermann function, simply define А(м,н)=мкшГ(м,н,ш).

На жаль, ця стратегія не працює для всіх функцій, визначених подвійною (або багаторазовою) рекурсією. Причина, що працює у функції Акермана, - як ви побачите, намагаючись розібратися в хорошійБ(м,н,ш)- це те, що вона росте дуже монотонно. Для загального випадку ви повинні використовувати ідею Kaveh і матимкшукайте відповідну таблицю значень. Це в основному та сама причина, чому теорема нормальної форми Клінова повинна робити проекцію після застосуваннямк оператор.


1
Hi François. It's nice to see you on cstheory.
Kaveh

Hi Kaveh. Nice to finally get to answer something here!
François G. Dorais
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.