Generel rekursiv funktion - General recursive function
I matematisk logik og datalogi er en generel rekursiv funktion , delvis rekursiv funktion eller μ-rekursiv funktion en delvis funktion fra naturlige tal til naturlige tal, der er "beregningsbar" i intuitiv forstand. Hvis funktionen er total, kaldes den også en total rekursiv funktion (undertiden forkortet til rekursiv funktion ). I beregningsteorien er det vist, at μ-rekursive funktioner netop er de funktioner, der kan beregnes af Turing-maskiner (dette er en af sætningerne, der understøtter kirken – Turing-tesen ). Μ-rekursive funktioner er tæt forbundet med primitive rekursive funktioner , og deres induktive definition (nedenfor) bygger på de primitive rekursive funktioner. Imidlertid er ikke hver total rekursiv funktion en primitiv rekursiv funktion - det mest berømte eksempel er Ackermann -funktionen .
Andre ækvivalente klasser af funktioner er funktionerne i lambda calculus og de funktioner, der kan beregnes af Markov -algoritmer .
Delmængden af alle samlede rekursive funktioner med værdier i {0,1} er kendt inden beregningskomplicerethed teori som kompleksitet klasse R .
Definition
De μ-rekursive funktioner (eller generelle rekursive funktioner ) er delfunktioner, der tager endelige mængder af naturlige tal og returnerer et enkelt naturligt tal. De er den mindste klasse af delfunktioner, der inkluderer de indledende funktioner og lukkes under sammensætning, primitiv rekursion og μ -operatøren .
Den mindste klasse af funktioner inklusive de indledende funktioner og lukket under komposition og primitiv rekursion (dvs. uden minimering) er klassen af primitive rekursive funktioner . Selvom alle primitive rekursive funktioner er totale, er dette ikke tilfældet med delvise rekursive funktioner; for eksempel er minimeringen af efterfølgerfunktionen udefineret. De primitive rekursive funktioner er en delmængde af de samlede rekursive funktioner, som er en delmængde af de delvise rekursive funktioner. For eksempel kan Ackermann-funktionen bevises at være total rekursiv og ikke-primitiv.
Primitive eller "grundlæggende" funktioner:
-
Konstante funktioner Ck
n: For hvert naturligt tal og alle alternative definitioner brug i stedet en nul -funktion som en primitiv funktion, der altid returnerer nul, og byggede de konstante funktioner fra nul -funktionen, efterfølgerfunktionen og sammensætningsoperatoren.
-
Efterfølgerfunktion S:
-
Projektionsfunktion (også kaldet identitetsfunktionen ): For alle naturlige tal, således at :
Operatører ( domænet for en funktion defineret af en operatør er sættet af værdierne for argumenterne, således at hver funktionsapplikation, der skal udføres under beregningen, giver et veldefineret resultat):
-
Sammensætningsoperator (også kaldet substitutionsoperatoren ): Givet en m-ary-funktion og m k-ary-funktioner : Dette betyder, at det kun er defineret, hvis og alle er defineret.
-
Primitiv rekursionsoperator : I betragtning af k -ary -funktionen og k +2 -ary -funktionen : Dette betyder, at det kun er defineret, hvis og er defineret for alle
-
Minimering operatør : Givet en ( k + 1) foldig funktion , den k foldig funktion er defineret ved: Intuitivt minimering søger-begynder søgningen fra 0 og fortsætter opad-den mindste argument, medfører, at funktionen til at vende tilbage nul; hvis der ikke er et sådant argument, eller hvis man støder på et argument, som f ikke er defineret for, så afsluttes søgningen aldrig og er ikke defineret for argumentet ( Bemærk : Mens nogle lærebøger bruger μ-operatoren som defineret her, kan andre som kræver, at μ-operatøren kun anvendes på samlede funktioner . Selvom dette begrænser μ-operatoren i forhold til definitionen her, forbliver klassen af μ-rekursive funktioner den samme, hvilket følger af Kleene's Normal Form Theorem (se nedenfor ) Den eneste forskel er, at det bliver uafgjort, om en specifik funktionsdefinition definerer en μ-rekursiv funktion, da det er uafgjort, om en beregningsbar (dvs. μ-rekursiv) funktion er total.)
Den stærke lighed operatør kan bruges til at sammenligne partielle u-rekursive funktioner. Dette er defineret for alle delfunktioner f og g, så
holder, hvis og kun hvis begge valg af argumenter enten er defineret, og deres værdier er ens, eller begge funktioner er udefinerede.
Total rekursiv funktion
En generel rekursiv funktion kaldes total rekursiv funktion, hvis den er defineret for hvert input, eller, tilsvarende, hvis den kan beregnes af en total Turing -maskine . Der er ingen måde at beregne, om en given generel rekursiv funktion er total - se Stop problem .
Ækvivalens med andre beregningsmodeller
I ækvivalensen af modeller til beregning trækkes en parallel mellem Turing -maskiner , der ikke terminerer for visse input og et udefineret resultat for dette input i den tilsvarende partielle rekursive funktion. Den ubegrænsede søgeoperator kan ikke defineres ved reglerne for primitiv rekursion, da disse ikke giver en mekanisme for "uendelige sløjfer" (udefinerede værdier).
Normal form sætning
En normal form sætning på grund af Kleene siger, at for hver k er der primitive rekursive funktioner og sådan, at for enhver μ-rekursiv funktion med k frie variabler er der en e , der
- .
Tallet e kaldes et indeks eller Gödel -nummer for funktionen f . En konsekvens af dette resultat er, at enhver μ-rekursiv funktion kan defineres ved hjælp af en enkelt forekomst af μ-operatoren, der anvendes på en (total) primitiv rekursiv funktion.
Minsky observerer, at den ovenfor definerede i det væsentlige er den μ-rekursive ækvivalent til den universelle Turing-maskine :
At konstruere U er at nedskrive definitionen af en general-rekursiv funktion U (n, x), der korrekt tolker tallet n og beregner den passende funktion af x. at konstruere U direkte ville indebære stort set den samme indsats og i det væsentlige de samme ideer , som vi har investeret i at konstruere den universelle Turing -maskine
Symbolik
En række forskellige symboler bruges i litteraturen. En fordel ved at bruge symbolikken er en afledning af en funktion ved at "indlejre" operatørerne, at den ene inden i den anden er lettere at skrive i en kompakt form. I det følgende vil vi forkorte strengen af parametre x 1 , ..., x n som x :
-
Konstant funktion : Kleene bruger "Cn
q( x ) = q "og Boolos-Burgess-Jeffrey (2002) (BBJ) bruger forkortelsen" const n ( x ) = n ":
- fx C7
13 (r, s, t, u, v, w, x) = 13 - f.eks. const 13 (r, s, t, u, v, w, x) = 13
- fx C7
- Efterfølgerfunktion : Kleene bruger x 'og S til "Efterfølger". Da "efterfølger" anses for at være primitiv, bruger de fleste tekster apostrofen som følger:
- S (a) = a +1 = def a ', hvor 1 = def 0', 2 = def 0 '' osv.
-
Identitetsfunktion : Kleene (1952) bruger "Un
i"for at angive identitetsfunktionen over variablerne x i ; BBJ bruge identitetsfunktions -idn
iover variablerne x 1 til x n :
- Un
i( x ) = idn
i( x ) = x i - fx U7
3 = id7
3 (r, s, t, u, v, w, x) = t
-
Komposition (substitution) operatør : Kleene bruger en fed skrift Sm
n(for ikke at forveksle med hans S for "efterfølger" ! ). Overskriften "m" refererer til m'et i funktionen "f m ", hvorimod abonnementet "n" refererer til den nte variabel "x n ":
- Hvis vi får h ( x ) = g (f 1 ( x ), ..., f m ( x ))
- h ( x ) = Sn
m(g, f 1 , ..., f m )
- h ( x ) = Sn
- På lignende måde, men uden sub- og efterskriften, skriver BBJ:
- h ( x ' ) = Cn [g, f 1 , ..., f m ] ( x )
- Primitiv rekursion : Kleene bruger symbolet " R n (basistrin, induktionstrin)", hvor n angiver antallet af variabler, BBJ bruger "Pr (basistrin, induktionstrin) ( x )". Givet:
- basistrin: h (0, x ) = f ( x ) og
- induktionstrin: h (y+1, x ) = g (y, h (y, x ), x )
- Eksempel: primitiv rekursionsdefinition af a + b:
-
- basistrin: f (0, a) = a = U1
1(en) - induktionstrin: f (b ', a) = (f (b, a))' = g (b, f (b, a), a) = g (b, c, a) = c '= S (U3
2(b, c, a))
- R 2 {U1
1(a), S [(U3
2(b, c, a)]} - Pr {U1
1(a), S [(U3
2(b, c, a)]}
- basistrin: f (0, a) = a = U1
-
Eksempel : Kleene giver et eksempel på, hvordan man udfører den rekursive afledning af f (b, a) = b + a (bemærk omvendelse af variabler a og b). Han starter med 3 indledende funktioner
-
- S (a) = a '
- U1
1(a) = a - U3
2(b, c, a) = c - g (b, c, a) = S (U3
2(b, c, a)) = c ' - basistrin: h (0, a) = U1
1(en)
- induktionstrin: h (b ', a) = g (b, h (b, a), a)
Han ankommer til:
- a+b = R 2 [U1
1, S.3
1(S, U3
2)]]
- a+b = R 2 [U1
Eksempler
Se også
Referencer
- Kleene, Stephen (1991) [1952]. Introduktion til metamatematik . Walters-Noordhoff og Nordholland. ISBN 0-7204-2103-9.
- Soare, R. (1999) [1987]. Rekursivt talbare sæt og grader: En undersøgelse af beregningsfunktioner og beregningsgenererede sæt . Springer-Verlag. ISBN 9783540152996.
- Minsky, Marvin L. (1972) [1967]. Beregning: Endelige og uendelige maskiner . Prentice-Hall. s. 210–5. ISBN 9780131654495.
- På siderne 210-215 viser Minsky, hvordan man opretter μ-operatøren ved hjælp af registermaskinsmodellen og dermed demonstrerer dens ækvivalens med de generelle rekursive funktioner.
- Boolos, George ; Burgess, John ; Jeffrey, Richard (2002). "6.2 Minimering" . Beregnelighed og logik (4. udgave). Cambridge University Press. s. 70–71. ISBN 9780521007580.