Können Sie bitte erläutern, wie Sie die Ackerman-Funktion (eigentlich interessiert mich eine von Rózsa Péter und Raphael Robinson vorgeschlagene Version) über standardmäßige mu-rekursive Operatoren erstellen können? Ich habe Originalarbeiten von Péter und Robinson ausprobiert, aber Péters Arbeit verwendet eine andere Sprache als Englisch und Robinsons Arbeiten „Rekursion und doppelte Rekursion“ und „Primitive rekursive Funktionen“ helfen ebenfalls nicht weiter wird als doppelter Rekursionsoperator bezeichnet, um die Ackerman-Funktion zu definieren. In diesem Fall wird also nach einer expliziten Definition des Operators in mu-rekursiven Begriffen gesucht.
Der Antwort am nächsten kommt P. Smith in „Eine Einführung in Godels Theoreme“ (CUP, 2007) (29.4 Die Ackermann-Peter-Funktion ist μ-rekursiv), der jedoch Folgendes vorschlägt: „Das Argument wasserdicht zu machen ist hübsch langweilig, aber nicht schwierig. Es gibt nichts zu lernen, wenn man die Details hier ausdrückt: Also werden wir es nicht tun. “
Ich habe auch Rózsa Péters Buch „Rekursive Funktionen“ ausprobiert (1967, Academic Press). Es gibt dort viele Varianten für Rekursionsoperatoren. In der Regel reduziert man auf andere. Ich glaube, dass es eine Art von Rekursionsoperator gibt, die für die Definition der Ackerman-Funktion und der Folge von Schritten geeignet ist, die sie auf primitive Redursions- und Minimierungsoperatoren reduzieren, aber ich war nicht in der Lage, den gesamten Weg nach unten zu untersuchen.
quelle
Antworten:
Das Aufbrechen der Ackermann-Funktion bis hinunter zu den Elementaroperatoren wäre wirklich ziemlich langwierig, aber hier ist eine Skizze:
Man beachte , dass bei der Berechnung rekursiv, an einem beliebigen Punkt der Berechnung man mit einem Ausdruck der Form handelt . Bei einer gegebenen bijektive Paarungsfunktion mit invers , wir können diesen Zustand als kodieren (nur für den Fall ). Wir können dann die einstufige Bewertungsfunktion definieren, wenn ein Zustand gegeben ist:A ( m 1 , A ( m 2 , … , A ( m k , z ) … ) p ( π 1 , π 2 ) p ( z , p ( k , p ( m k , … , p ( m 2 , m 1 ) … ) pA ( m , x ) A ( m1, A ( m2, … , A ( mk, z) … ) p ( π1, π2) p ( z, p ( k , p ( mk, … , P ( m2, m1) … ) k = 0p ( z, 0 ) k = 0
Sie erhalten dann die n-Stufen-Auswertungsfunktion unter Verwendung der primitiven Rekursion:
E ( n + 1 , m , x ) = e ( E ( n , m , x ) )E( 0 , m , x ) = p ( x , p ( 1 , m ) ) und .E( n + 1 , m , x ) = e ( E( N , m , x ) )
Schließlich wickeln Sie -recursion um , um den Punkt zu finden, an dem wir zu einem Zustand der Form - wird .E p ( z , 0 ) z A ( m , x )μ E p ( z, 0 ) z A ( m , x )
quelle
Dies ist eine Variante der von Kaveh geposteten Idee, aber ich poste sie trotzdem, da Sie so viele unangenehme Details unter den Teppich kehren können, ohne tatsächlich mit der Hand zu winken.
Entscheidend ist, dass der Graph der Ackermann-Funktion primitiv rekursiv ist. Es ist nicht so schwer, eine sehr grobe primitive rekursive Bindung im Code für die Tabelle der Ackermann-Werte zu finden, die zur Überprüfung von erforderlich ist . Versuchen Sie nicht, scharfe Grenzen zu ziehen - je gröber, desto einfacher! Etwas wie sollte gut genug sein, aber das hängt von Ihrer Wahl des Codierungsschemas ab. Da die Überprüfung der Tabellenwerte durch eine begrenzte Formel beschrieben werden kann, ist sie primitiv rekursiv.A ( m , n ) = w B ( m , n , w ) = 2 m w wB ( m , n , w ) A ( m , n ) = w B ( m , n , w ) = 2m ww
Sobald Sie eine primitive rekursive Definition für den Graphen der Ackermann-Funktion haben, definieren Sie einfach .A ( m , n ) = & mgr; wG ( m , n , w ) A ( m , n ) = μ wG ( m , n , w )
Leider funktioniert diese Strategie nicht für alle Funktionen, die durch doppelte (oder mehrfache) Rekursion definiert sind. Der Grund, warum es für die Ackermann-Funktion funktioniert - wie Sie sehen werden, wenn Sie versuchen, ein gutes herauszufinden - ist, dass es sehr monoton wächst. Für den allgemeinen Fall, müssen Sie Kaveh Idee und haben verwenden sucht die entsprechende Wertetabelle. Dies ist im Grunde der gleiche Grund, warum der Normalformsatz von Kleene nach Anwendung des Operators eine Projektion durchführen muss .μ μB ( m , n , w ) μ μ
quelle