EINF ¨ UHRUNG IN DIE THEORETISCHE INFORMATIK Prof. Dr. Klaus Ambos-Spies Sommersemester 2014 6. REKURSIVE FUNKTIONEN Ein maschinenunabh ¨ angiges formales Berechnungsmodell auf den nat ¨ urlichen Zahlen Theoretische Informatik (SoSe 2014) 6. Rekursive Funktionen 1 / 35
35
Embed
EINFUHRUNG IN DIE THEORETISCHE¨ INFORMATIK · (2)Primitive Rekursion(= Einfache Implizite Definitionen) (3)Minimalisierungsoperator (µ-Operator) (= Unbeschrankte Suche)¨ Wir fuhren
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
DEFINITION: Seien g : Nm→ N und h1, . . . ,hm : Nn→ N m- bzw. n-stellige(partielle) Funktionen. Die aus g durch simultane Substitution von h1, . . . ,hmentstehende n-stellige (partielle) Funktion
f = g(h1, . . . ,hm)
ist definiert durch
∀~x ∈ Nn(f (~x) = g(h1(~x), . . . ,hm(~x)))
Bemerkungen:
Sind g,h1, . . . ,hm (partiell) berechenbar, so ist auch g(h1, . . . ,hm)(partiell) berechenbar.
Fur partielle g,h1, . . . ,hm und fur f = g(h1, . . . ,hm) gilt hierbei:
f (~x)↓⇔ ∃y1, . . . ,ym(h1(~x)↓= y1& . . .&hm(~x)↓= ym &g(y1, . . . ,ym)↓)
Die Komposition 1-stelliger Funktionen ist ein Spezialfall der simultanenSubstitution:
(g ◦h)(x) = g(h(x)) = g(h)(x)
Jedes Polynom uber N mit Koeffizienten aus N lasst sich mit Hilfe einerendlichen Folge von simultanen Substitutionen uber denAusgangsfunktionen erweitert um die (2-stellige) Addition undMultiplikation darstellen.
Die Simultane Substitution ist ein Beispiel fur ein explizites Definitions-schema. Bei einer expliziten Definition wird eine (neue) Funktion f durchRuckgriff auf (gegebene) Funktionen g1, ...,gm definiert:
f (~x) = Funktionsterm uber g1, ...,gm
(Die Ausgangsfunktionen sind so gewahlt, dass sich umgekehrt jede uberFunktionen g1, ...,gm explizit definierbare Funktion f durch (iterierte)Simultane Substitutitonen der Funktionen g1, ...,gm und der Ausgangs-funktionen darstellen lasst (s. nachstes Kapitel).)
Bei der impliziten (rekursiven) Definition einer Funktion f wird dagegen beider Definition von f (~x) (auch) auf f selbst zuruckgegriffen. Hierbei istsicherzustellen, dass die Definition nicht zirkelhaft ist. Dies kann unteranderem dadurch erreicht werden, dass nur auf den Wert von f (~y) fur“kleinere” ~y zugegriffen wird. Ein besonders einfaches Rekursionsschema,das dies sicherstellt, ist die primitive Rekursion.
Bei der Definition einer Funktion f (~x ,y) durch primitive Rekursion geht manwie folgt vor:
Die Rekursion erfolgt nach der letzten Variablen y .
Der Funktionswert von f an der Stelle (~x ,0) wird explizit definiert(mit Hilfe einer gegebenen Funktion g(~x)).
Der Funktionswert von f an der Stelle (~x ,y +1) wird durch Ruckgriff aufden Wert an der Stelle (~x ,y) definiert.(Dies geschieht mit Hilfe einer gegebenen Funktion h, die inAbhangigkeit von~x ,y und f (~x ,y) den Wert von f (~x ,y +1) festlegt.)
Schema der Primitiven Rekursion: formalDEFINITION: Seien g : Nn→ N und h : Nn+2→ N (partielle) Funktionen. Diedurch primitive Rekursion uber g und h definierte (partielle) Funktion
f (n+1) = PR(g,h)
ist definiert durch
∀~x ∈ Nn (f (~x ,0) = g(~x))
∀~x ∈ Nn ∀y ∈ N (f (~x ,y +1) = h(~x ,y , f (~x ,y)))
Bemerkungen:
Sind g und h (partiell) berechenbar, so ist f = PR(g,h) wiederum(partiell) berechenbar.
Fur partielle g,h gilt fur f = PR(g,h):
f (~x ,0)↓⇔ g(~x) ↓
f (~x ,y +1)↓⇔ [ f (~x ,0) ↓, . . . , f (~x ,y) ↓ & h(~x ,y , f (~x ,y)) ↓ ]
DEFINITION: Die Klasse F(PRIM) der primitiv rekursiven Funktionen istinduktiv definiert durch
(i) S,Uni ,C
mj ∈ F(PRIM) (fur n ≥ 1, 1≤ i ≤ n, m, j ≥ 0)
(ii) Sind g(m),h(n)1 , . . . ,h(n)
m ∈ F(PRIM), so auch g(h1, . . . ,hm).
(iii) Sind g(n),h(n+2) ∈ F(PRIM), so auch PR(g,h).
D.h. die Klasse F(PRIM) der primitiv rekursiven Funktionen ist die kleinsteFunktionsklasse, die die Ausgangsfunktionen enthalt und gegen simultaneSubstitution und primitive Rekursion abgeschlossen ist.
Die primitiv rekursiven Funktionen wurden von Godel 1931 in seinerberuhmten Arbeit uber die Unvollstandigkeit formaler Systeme derArithmetik eingefuhrt.
Die letzten Beispiele zeigen, dass +, · und ! primitiv rekursiv sind.Primitiv rekursive Funktionen sind total!(Induktion nach dem Aufbau)Primitiv rekursive Funktionen sind im intuitiven Sinne berechenbar.
Dies folgt aus unserer Beobachtung, dass die Ausgangs-funktionen berechenbar sind und dass die Klasse derberechenbaren Funktionen gegen Substitution und primitiveRekursion abgeschlossen ist.Es gibt jedoch totale berechenbare Funktionen, die sich mit Hilfekomplexerer Rekursionsschemata berechnen lassen, die nichtprimitiv rekursiv sind. Ein Beispiel fur solch eine Funktion ist dieAckermann-Funktion.
Jeder Zweig αx : N→ N der Ackermann-Funktion ist primitiv rekursiv.(Hierbei: αx (y) := α(x ,y))
Man zeigt dies durch Induktion nach x .
Die Anzahl der primitiven Rekursionen, die man zur Darstellung von αxbenotigt, wachst jedoch mit x .
Mit wachsendem x machen die Zweige αx der Ackermann-Funktionjeweils einen “Wachstumssprung”:
I α1(y) = y +2I α2(y) = 2y +3I α3(y) = 2y+3−3I . . .
Dies benutzt man, um zu zeigen, dass die Diagonale α(y) := α(y ,y) vonα schneller wachst als jede primitiv rekursive Funktion (siehe z.B. A.Oberschelp: Rekursionstheorie, BI Wissenschaftsverlag, 1993).Wegen α = α(U1
Die Klasse der primitiv rekursiven Funktionen enthalt samtlicheberechenbaren Funktionen, auf die man in den ublichen Anwendungenstosst.
Das Beispiel der Ackermann-Funktion zeigt jedoch, dass die Klasse derprimitiv rekursiven Funktionen nicht alle berechenbaren Funktionenumfasst.
Man kann aber zeigen, dass fur Funktionen, die berechenbar aber nichtprimitiv rekursiv sind, die Berechnung so zeitaufwendig ist, dass diesefur grossere Eingaben praktisch nicht mehr ausfuhrbar ist.
Um alle berechenbaren Funktionen zu erhalten, benotigen wir eineweitere Abschlussoperation, die partiell berechenbare Funktionenwiederum auf partiell berechenbare Funktionen abbildet: dieMinimalisierung. Durch diese konnen jedoch totale (d.h. berechenbare)Funktionen auf partielle (d.h. partiell berechenbare) Funktionenabgebildet werden.
DEFINITION: Sei g : Nn+1→ N eine (moglicherweise partielle) Funktion. Dieaus g durch Anwendung des µ-Operators entstehende partielle Funktion
f (n) = µ(g)
ist definiert durch
f (~x) = µy (g(~x ,y) = 0&∀z < y [g(~x ,z)↓])= min{y : g(~x ,y) = 0&∀z < y [g(~x ,z)↓]},
(fur alle~x ∈ Nn) wobei min /0 :=↑.
Der µ-Operator wird auch Minimalisierungs-Operator genannt.
Man spricht auch von einem Suchoperator: Fur eine (n+1)-stellige Relation(Eigenschaft) E liefert einem der µ-Operator zu gegebenem x1, . . . ,xn daskleinste y , sodass E auf x1, . . . ,xn,y zutrifft (falls existent), wenn man µ aufdie charakteristische Funktion cE des Komplements von E anwendet.
Die Berechnung von µ(g) lasst sich durch folgende while-Schleifebeschreiben:
z : = 0;while g(~x ,z) 6= 0 do z := z +1;µ(g)(~x) := z
Dies zeigt, dass fur partiell berechenbares g die partielle Funktion µ(g)ebenfalls partiell berechenbar ist.
Zugleich verdeutlicht dies, warum wir fur partielles g fordern, dass g(~x ,z)↓fur z unterhalb der Nullstelle y gelten muss: Fur z mit g(~x ,z)↑ wird derzugehorige Schleifendurchgang namlich nicht beendet (da die zurEntscheidung der Schleifenbedingung notwendige Berechnung von g(~x ,z)nicht terminiert), weshalb µ(g)(~x)↑ in diesem Fall.
(Spater werden wir zeigen, dass ohne diese Definiertheitsforderung derderart modifizierte µ-Operator µ eine partiell berechenbare Funktion g aufeine nichtberechenbare partielle Funktion µ(g) abbilden kann.)
DEFINITION: Die Klasse F(REK) der partiell rekursiven Funktionen istinduktiv definiert durch
(i) S,Uni ,C
mj ∈ F(REK) (fur n ≥ 1, 1≤ i ≤ n, m, j ≥ 0)
(ii) Sind g(m),h(n)1 , . . . ,h(n)
m ∈ F(REK) so auch g(h1, . . . ,hm).
(iii) Sind g(n),h(n+2) ∈ F(REK), so auch PR(g,h).
(iv) Ist g(n+1) ∈ F(REK), so auch µ(g).
Ist f ∈ F(REK) total, so nennt man f (total) rekursiv.
Die Klasse F(REK) der partiell rekursiven Funktionen ist also gerade diekleinste Funktionsklasse, die die Ausgangsfunktionen enthalt und gegensimultane Substitution, primitive Rekursion und den µ-Operatorabgeschlossen ist.
Unser Ziel ist zu zeigen, dass die von uns betrachteten dreiverschiedenen Vorgehensweisen den Begriff der Berechenbarkeit furZahlfunktionen zu formalisieren aquivalent sind, d.h. dass
I Turingmaschinen-BerechenbarkeitI Registermaschinen-BerechenbarkeitI Rekursivitat
ubereinstimmen (→ Aquivalenzsatz).
Hierzu beschliessen wir dieses Kapitel mit dem Nachweis, dass dierekursiven Funktionen RM-berechenbar sind.
Aufgrund der bereits gezeigten Beziehungen zwischen den obigenKonzepten genugt es dann zu zeigen, dass die TM-berechenbarenFunktionen rekursiv sind. Hierzu werden wir im nachsten Kapitel dieprimitive Rekursivitat zahlreicher Funktionen nachweisen und eineReihe von Abschlusseigenschaften von F(PRIM) und F(REK) beweisen.Diese Ergebnisse werden dann im ubernachsten Kapitel im Beweis derInklusion F(TM) ⊂ F(REK) Verwendung finden.
Da wir in Kapitel 5 bereits gezeigt haben, dass jede RO-berechenbareFunktionen auch RM-berechenbar ist (F(RO) ⊆ F(RM)), genugt eszum Nachweis, dass jede rekursive Funktion RM-berechenbar ist (d.h.,dass F(REK) ⊆ F(RM) gilt), zu zeigen, dass jede rekursive FunktionRO-berechenbar ist:
Abschluss von F(RO) gegen primitive RekursionLEMMA 3. F(RO) ist gegen primitive Rekursion abgeschlossen.
BEWEIS. Es gelte g(n), h(n+2) ∈ F(RO). Zu zeigen: f (n+1) = PR(g,h) ∈ F(RO).Seien Pg und Ph Registeroperatoren die g und h o.B.d.A. mit folgendenRegisterbelegungen und konservativ berechnen:
Wie oben bereits gezeigt, lasst sich f = PR(g,h) durch eine for-Schleifebeschreiben, die wir durch folgenden (primitiven) RO simulieren konnen:
Pf ≡ Tn+1→n+5,n+6 Pg [sn+5 Ph an+3 TLn+4→n+2]n+5
(NB: Register n+5 wird zum Zahlen der Schleifendurchlaufe (d.h. derRekursionsschritte mit Anwendungen von h) benutzt. Hierzu wird y zunachstin Register n+5 als Zahlvariable z kopiert und dann mittels Pg f (~x ,0) = g(~x)berechnet. So lange z > 0 wird dann h iteriert an der Stelle(~x ,y −z, f (~x ,y −z)) berechnet, wobei in jedem Schritt z in Register n+5dekrementiert, also y −z in Register n+3 inkrementiert wird.)Theoretische Informatik (SoSe 2014) 6. Rekursive Funktionen 33 / 35
Abschluss von F(RO) gegen den µ-Operator
LEMMA 4. F(RO) ist gegen den µ-Operator abgeschlossen.
BEWEIS. Fur g(n+1) ∈ F(RO) haben wir f (n) = µ(g) ∈ F(RO) zu zeigen. Ist Pgein RO, der g konservativ berechnet, so berechnet
Pf ≡ Pg [[sn+2]n+2 an+1 Pg ]n+2
f = µ(g), indem Pf den Operator Pg so lange fur Eingabe y = 0,1, . . . iteriert,bis dieser erstmals das Ergebnis 0 liefert.
Wie bereits beobachtet, implizieren Lemma 1 - 4 das REK-RO-Simulations-lemma.
BEMERKUNG: Wie man leicht sieht, gelten Lemma 1- 3 auch fur primitiveRegisteroperatoren anstelle allgemeiner ROs. Hierzu genugt es zubeobachten, dass die angegebenen ROs tatsachlich PROs sind (falls dienach I.V. gegebenen ROs ebenfalls PROs sind). Es gilt also auch:
Unsere bisherigen Ergebnisse zu den Beziehungen zwischen den von unseingefuhrten formalen Berechnungskonzepten lassen sich wie folgtzusammenfassen:
F(REK) ⊆ F(RO) ⊆ F(RM) ⊆⋃k≥1
F(k -TM) = F(TM)
Zum Beweis des Aquivalenzsatzes, der die Gleichheit der Klassen
F(REK) = F(RM) = F(TM)
behauptet, genugt es also noch die Inklusion
F(TM) ⊆ F(REK)
zu zeigen. Der Beweis hierfur ist recht aufwendig. Zur Vorbereitung beweisenwir im nachsten Kapitel eine Reihe von Aussagen uber die (primitiv)rekursiven Funktionen, bevor wir dann in Kapitel 8 diese noch fehlendeInklusion beweisen.