Μ-recursieve functie

In de theoretische informatica vormen de μ-recursieve functies een klasse van functies. De klasse is gedefinieerd als de klasse van functies die de basisfuncties bevat (de constante nulfunctie, de opvolgerfunctie en de projectiefuncties) en afgesloten is onder compositie, primitieve recursie en minimalisatie. De klasse van primitief recursieve functies vormen een onderklasse van de μ-recursieve functies. De μ-recursieve functies komen precies overeen met de berekenbare functies.

Definitie

μ-recursieve functies zijn partiële functies op de natuurlijke getallen, de verzameling N = { 0 , 1 , 2 , 3 , } {\displaystyle \mathbb {N} =\{0,1,2,3,\ldots \}} ; het zijn functies die een of meer natuurlijke getallen als argumenten nemen en als functiewaarde ofwel een natuurlijk getal opleveren, ofwel niet gedefinieerd zijn.

De klasse der μ-recursieve functies is als volgt inductief gedefinieerd:

  • de constante 0-functie, dat wil zeggen de functie c 0 : N N {\displaystyle c_{0}\colon \mathbb {N} \to \mathbb {N} } zodat c 0 ( x ) = 0 {\displaystyle c_{0}(x)=0} , voor alle x N {\displaystyle x\in \mathbb {N} } , is μ-recursief;
  • de opvolgerfunctie s : N N {\displaystyle s\colon \mathbb {N} \to \mathbb {N} } , gedefinieerd als s ( x ) = x + 1 {\displaystyle s(x)=x+1} , is μ-recursief;
  • voor elke 0 < j k {\displaystyle 0<j\leq k} is de projectiefunctie π j , k : N k N {\displaystyle \pi _{j,k}\colon \mathbb {N} ^{k}\to \mathbb {N} } , gedefinieerd als π j , k ( n 1 , , n k ) = n j {\displaystyle \pi _{j,k}(n_{1},\ldots ,n_{k})=n_{j}} , μ-recursief;
  • de compositie van μ-recursieve functies is μ-recursief;
  • primitieve recursie: als g : N k N {\displaystyle g\colon \mathbb {N} ^{k}\to \mathbb {N} } en h : N k + 2 N {\displaystyle h\colon \mathbb {N} ^{k+2}\to \mathbb {N} } μ-recursieve functies zijn, dan is ook de functie f : N k + 1 N {\displaystyle f\colon \mathbb {N} ^{k+1}\to \mathbb {N} } die gedefinieerd wordt als
f ( 0 , n 1 , , n k ) = g ( n 1 , , n k ) f ( m + 1 , n 1 , , n k ) = h ( m , n 1 , , n k , f ( m , n 1 , , n k ) ) {\displaystyle {\begin{aligned}f(0,n_{1},\ldots ,n_{k})&=g(n_{1},\ldots ,n_{k})\\f(m+1,n_{1},\ldots ,n_{k})&=h(m,n_{1},\ldots ,n_{k},f(m,n_{1},\ldots ,n_{k}))\end{aligned}}}
μ-recursief.
  • minimalisatie: als f : N k + 1 N {\displaystyle f\colon \mathbb {N} ^{k+1}\to \mathbb {N} } een μ-recursieve functie is, dan is ook μ f : N k N {\displaystyle \mu f\colon \mathbb {N} ^{k}\to \mathbb {N} } , die als volgt gedefinieerd is:
μ f ( n 1 , , n k ) = min { m f ( n 1 , , n k , m ) = 0  en voor alle  m < m  is  f ( n 1 , , n k , m )  gedefinieerd } {\displaystyle \mu f(n_{1},\ldots ,n_{k})=\min\{m\mid f(n_{1},\ldots ,n_{k},m)=0{\text{ en voor alle }}m'<m{\text{ is }}f(n_{1},\ldots ,n_{k},m'){\text{ gedefinieerd}}\}}
μ-recursief. Hierbij is min {\displaystyle \min \varnothing } niet gedefinieerd.

De minimalisatie μ f {\displaystyle \mu f} van een functie f ( x , y ) {\displaystyle f(x,y)} is de kleinste waarde van y {\displaystyle y} zodat f ( x , y ) = 0 {\displaystyle f(x,y)=0} . Als het zo is dat f ( x , y ) 0 {\displaystyle f(x,y)\neq 0} voor alle y {\displaystyle y} , dan is μ f ( x ) {\displaystyle \mu f(x)} niet gedefinieerd.

Voorbeelden

  • Alle primitief recursieve functies zijn ook μ-recursief.
  • In het bijzonder is de primitief recursieve functie f ( x , y ) = 1 {\displaystyle f(x,y)=1} voor alle x , y N {\displaystyle x,y\in \mathbb {N} } μ-recursief, want ze is de compositie van de opvolgerfunctie, de constante 0-functie en een projectiefunctie.
  • De overal ongedefinieerde functie ω {\displaystyle \omega } , met ω ( x ) {\displaystyle \omega (x)} is niet gedefinieerd voor alle x {\displaystyle x} , is μ-recursief. Deze functie ω {\displaystyle \omega } is gelijk aan de minimalisatie μ f {\displaystyle \mu f} van f {\displaystyle f} (zie hierboven), omdat er geen m {\displaystyle m} bestaat zodat f ( x , m ) = 0 {\displaystyle f(x,m)=0} . Dat wil zeggen: ω = μ f {\displaystyle \omega =\mu f} .

Verband met andere klassen van functies

De μ-recursieve functies komen precies overeen met de berekenbare functies. Dat wil zeggen dat er voor elke μ-recursieve functie een turingmachine bestaat die de functie berekent, en andersom, dat elke turingmachine een μ-recursieve functie berekent. Functies die niet berekenbaar zijn, zoals de busy beaver-functie, zijn daarom ook niet μ-recursief.

De primitief recursieve functies vormen een echte onderklasse van de μ-recursieve functies. De klasse der μ-recursieve functies ontstaat als we de klasse der primitief recursieve functies onder minimalisatie afsluiten. Alle primitief recursieve functies zijn dus ook μ-recursief. Aan de andere kant bestaan er μ-recursieve functies die niet primitief recursief zijn, zoals de Ackermannfunctie.

Literatuur

  • Uwe Schöning, Theoretische Informatik – kurz gefasst, 5. Auflage, Spektrum, 2009
  • Elaine Rich, Automata, Computability and Complexity, Pearson, 2008