Úvodní stránka | Tato stránka v originále

Primitivní rekurzivní funkce

Primitivní rekurzivní funkce být třída funkcí, které tvoří důležitý stavební kámen na cestě k plnému utváření vypočitatelnosti. Oni jsou definované používání rekurze a složení jako centrální operace. Primitivní rekurzivní funkce jsou přísný podmnožina rekurzivní funkce (který být přesně ty funkce, které my voláme "vypočitatelný"; vidět Kostel-Turing teze).

Tabulka s obsahem
1 definice
2 příklad primitivní rekurzivní funkční definice
3 limitace primitivních rekurzivních funkcí
4 vztah k rekurzivním funkcím

Definice

Primitivní rekurzivní funkce vezmou přirozená čísla nebo n-tice přirozených čísel jako argumenty a produkce přirozené číslo. Funkce, která vezme n argumenty je volán n-ary. Základní primitivní rekurzivní funkce jsou dány těmi axiómy:

  1. funkce konstanty 0 je primitivní rekurzivní.
  2. funkce nástupce S, který vezme jeden argument a vrátí se následující číslo jak daný Peano postuláty, je primitivní rekurzivní.
  3. funkce projekce Pin, který vzít n argumenty a návrat jejich ith argument, být primitivní rekurzivní.

Komplexnější primitivní rekurzivní funkce mohou být získány tím, že aplikuje operátory dané těmito axiómy:

  1. Složení: Given f, k- ary primitivní rekurzivní funkce, a k l- ary primitivní rekurzivní funkce g0,...,gk- 1, složení f s g0,...,gk- 1, i. e. funkce h(x0,...,xl- 1) = f(g0(x0,...,xl- 1),...,gk- 1(x0,...,xl- 1)), je primitivní rekurzivní.
  2. Primitivní rekurze: Given f k- ary primitivní rekurzivní funkce a g (k+ 2) - ary primitivní rekurzivní funkce, (k+ 1) - ary funkce definovaná jako primitivní rekurze f a g, i. e. funkce h kde h(0,x0,...,xk- 1) = f(x0,...,xk- 1) a h(S(n),x0,...,xk- 1) = g(h(n,x0,...,xk- 1),n,x0,...,xk- 1), je primitivní rekurzivní.

(Poznamenat, že funkce projekce dovolí nám překonat zřejmou tuhost v termínech arity funkcí nahoře, jak přes složení my můžeme projít kolem nějaké podmnožiny argumentů.)

Funkce je primitivní rekurzivní jestliže to je jeden z základních funkcí nahoře, nebo moci být získán od jednoho z základních funkcí tím, že aplikuje operace konečné množství časů.

Příklad primitivní rekurzivní funkční definice

;Sčítání: Intuitivně my bychom rádi definovali sčítání rekurzívně jak:

sčítat (0,x) =x
sčítat (n+ 1,x) = sčítat (n,x) + 1

Aby seděl tomuto do přísný primitivní rekurzivní definice, my definujeme:

sčítat (0,x) =P01(x)
sčítat (S (n),x) =S(P03(sčítat (n,x),n,x))

Poznamenat to P01 je jednoduše funkce identity; jeho zahrnutí je vyžadováno definicí primitivního rekurzivního operátora nahoře; to hraje roli h. Složení S a P03, který je primitivní rekurzivní, hraje roli g.

;Odčítání: My můžeme definovat omezené odčítání, i. e. odčítání to dolní části ven u 0 (protože my máme žádnou představu záporných čísel přesto). Nejprve my musíme definovat " předchůdce " funkce, které akty jak protiklad nástupce fungují.

Intuitivně my bychom rádi definovali předchůdce jak:

pred (0) = 0
pred (n+ 1) =n

Sedět tomuto v k formální primitivní rekurzivní definice, my píšeme:

pred (0) = 0
pred (S (n)) =P12(pred (n),n)

Teď my můžeme definovat odčítání ve velmi podobné cestě k jak my jsme definovali sčítání.

náhradník (0,x) =P01(x)
náhradník (S (n),x) = pred (P03(náhradník (n,x),n,x))

(Poznamenat, že pro příčinu jednoduchosti, pořadí argumentů bylo změněno od " standard " definice sedět požadavkům primitivní rekurze, i. e. náhradník (,b) odpovídá b-. Toto mohlo snadno být korigován používat složení s vhodnými projekcemi.)

Mnoho jiných známých funkcí může být ukazováno být primitivní rekurzivní; některé příklady zahrnují conditionals, umocňování, primality testování, a kurs-- cení přerušení, a primitivní rekurzivní funkce mohou být rozšířeny operovat jiné objekty takový jako celé číslo a racionální čísla.

Limitace primitivních rekurzivních funkcí

Primitivní rekurzivní funkce inklinují odpovídat si velmi blízko s naší intuicí co vypočitatelná funkce musí být. Jistě počáteční soubor funkcí být intuitivně vypočitatelný (v jejich velmi jednoduchost), a dvě operace který jeden může vytvořit nový primitivní rekurzivní funkce jsou také velmi přímý. Nicméně soubor primitivních rekurzivních funkcí nezahrnuje každou možnou vypočitatelnou funkci -- - toto může být viděno s variantou Cantor je diagonalization argument. Tento argument poskytuje vypočitatelnou funkci, která není primitivní rekurzivní. Náčrtek důkazu je takto:

Primitivní rekurzivní funkce mohou být computably počítaný. Toto počítat je jedinečný na definicích funkcí, ačkoli ne jedinečný na skutečných funkcích sám (jak každá funkce může mít nekonečný počet definic -- - zvažovat, že prostě skládá identitní operátor). Počítat je vypočitatelný v pocitu, že to může být definováno dolů formátovat modely vypočitatelnosti takový jak rekurzivní funkce nebo Turing stroje; ale žádost k Kostel-Turing teze je pravděpodobně dostatečný.

Nyní zvažovat matici kde řady primitivní rekurzivní funkce jednoho argumentu pod tímto počítají, a sloupce jsou přirozená čísla. Pak každý element (i, j) correponds k ith unární primitivní rekurzivní funkce být počítal s číslem j. My můžeme psát toto jak fi(j).

Nyní zvažovat funkci g(x) = S (fx(x)). g leží na úhlopříčce této matice a prostě přidává jednoho k hodnotě to shledá. Tato funkce je vypočitatelná (nahoře), ale jasně žádná primitivní rekurzivní funkce existuje který počítá to, zatímco to se liší od každého možný primitivní rekurzivní funkce u nejméně jedné hodnoty. Tak tam muset být vypočitatelné funkce, které nejsou primitivní rekurzivní.

Poznamenat, že tento argument může být aplikován na nějakou třídu vypočitatelný (úplné) funkce, které mohou jsou vyjmenovány tímto způsobem. Proto, nějaký takový explicitní seznam vypočitatelný (úplné) funkce mohou nikdy být kompletní. Poznámka nicméně to částečný vypočitatelné funkce (ti který nemusí být definován pro všechny argumenty) moci být výslovně vyjmenovaný, pro příklad tím, že vyjmenuje Turing stroj encodings.

Jeden může také výslovně exponát jednoduchý 1-ary vypočitatelná funkce který je rekurzívně definovaný pro nějaké přirozené číslo, ale který není primitivní rekurzivní, vidět Ackermann funkce.

Vztah k rekurzivním funkcím

Soubor primitivních rekurzivních funkcí nezahrne všechno to my myslíme na jak vypočitatelný. Přesto oni tvoří důležitou třídu a mnoho z funkcí normálně studoval v teorii čísel a přiblíženích k skutečný-cenil funkce, být primitivní rekurzivní.

Aby formoval plnou třídu vypočitatelných funkcí, my musíme počítat s částečné funkce a představit dalšího operátora k nahoře: nespoutané hledání operátor (vidět Rekurzivní funkce).