Article de reference

Fonction récursive générale

En logique mathématique et en informatique , une fonction récursive générale , également appelée fonction récursive partielle ou fonction μ-récursive , est une fonction partiell...

En logique mathématique et en informatique , une fonction récursive générale , également appelée fonction récursive partielle ou fonction μ-récursive , est une fonction partielle des nombres naturels vers les nombres naturels qui est « calculable » au sens intuitif comme au sens formel . Si la fonction est totale , on l'appelle aussi fonction récursive totale (parfois abrégée en fonction récursive ). En théorie de la calculabilité , il a été démontré que les fonctions μ-récursives sont précisément les fonctions calculables par les machines de Turing (c'est l'un des théorèmes qui soutiennent la thèse de Church-Turing ). Les fonctions μ-récursives sont étroitement liées aux fonctions récursives primitives , et leur définition inductive (ci-dessous) s'appuie sur celle des fonctions récursives primitives. Cependant, toute fonction récursive totale n'est pas une fonction récursive primitive ; l'exemple le plus connu est la fonction d'Ackermann .

D’autres classes de fonctions équivalentes sont les fonctions du lambda-calcul et les fonctions qui peuvent être calculées par des algorithmes de Markov .

Le sous-ensemble de toutes les fonctions récursives totales avec des valeurs dans .

La plus petite classe de fonctions incluant les fonctions initiales et stable par composition et récursivité primitive (c'est-à-dire sans minimisation) est celle des fonctions récursives primitives . Toutes les fonctions récursives primitives sont totales, ce qui n'est pas le cas des fonctions récursives partielles ; par exemple, la minimisation de la fonction successeur n'est pas définie. Les fonctions récursives primitives sont un sous-ensemble des fonctions récursives totales, qui sont elles-mêmes un sous-ensemble des fonctions récursives partielles. Par exemple, on peut démontrer que la fonction d'Ackermann est totalement récursive et non primitive.

Fonctions primitives ou « basiques » :

  1. Fonctions constantes : Pour tout entier naturel
    D'autres définitions utilisent une fonction zéro comme fonction primitive qui renvoie toujours zéro, et construisent les fonctions constantes à partir de la fonction zéro, de la fonction successeur et de l' opérateur de composition .
  2. Fonction successeur S :
  3. Fonction de projectionfonction identité ) : Pour tous les nombres naturels

Opérateurs (le domaine d'une fonction définie par un opérateur est l'ensemble des valeurs des arguments telles que chaque application de fonction effectuée lors du calcul fournisse un résultat bien défini) :

  1. Opérateur de compositionopérateur de substitution ) : Étant donné une fonction m -airem fonctions k -aires
    Cela signifie que
  2. Opérateur de récursion primitive : Étant donné la fonction k -airek + 2-aire
    Cela signifie que
  3. Opérateur de minimisation : Étant donné une fonction ( k +1)-airek -aire
    0\quad { ext{for}}\quad i=0,\ldots ,z-1\quad { ext{and}}\\f(z,x_{1},\ldots ,x_{k})&=0\quad \end{aligned μ(f)(x1,,xk)=zdef f(je,x1,,xk)>0pourje=0,,z1etf(z,x1,,xk)=0{\displaystyle {\begin{aligned}\mu (f)(x_{1},\ldots ,x_{k})=z{\stackrel {\mathrm {def} }{\iff }}\ f(i,x_{1},\ldots ,x_{k})&>0\quad { ext{for}}\quad i=0,\ldots ,z-1\quad { ext{and}}\\f(z,x_{1},\ldots ,x_{k})&=0\quad \end{aligned}}}0\quad { ext{pour}}\quad i=0,\ldots ,z-1\quad { ext{et}}\\f(z,x_{1},\ldots ,x_{k})&=0\quad \end{aligned

Intuitivement, la minimisation cherche — en commençant la recherche à partir de 0 et en remontant — le plus petit argument qui fait que la fonction renvoie zéro ; s’il n’existe pas un tel argument, ou si l’on rencontre un argument pour lequel n'est pas défini pour l'argument

Alors que certains manuels utilisent l'opérateur μ tel que défini ici d'autres exigent que l'opérateur μ soit appliqué uniquement aux fonctions totales peut être utilisé pour comparer des fonctions μ-récursives partielles. Ceci est défini pour toutes les fonctions partielles f et g de sorte que

Cela se vérifie si et seulement si, pour tout choix d'arguments, soit les deux fonctions sont définies et leurs valeurs sont égales, soit les deux fonctions ne sont pas définies.

Exemples

Des exemples n'impliquant pas l'opérateur de minimisation peuvent être trouvés dans la section Fonction récursive primitive#Exemples .

Les exemples suivants sont destinés uniquement à illustrer l'utilisation de l'opérateur de minimisation ; ils pourraient également être définis sans lui, bien que d'une manière plus compliquée, puisqu'ils sont tous récursifs primitifs.

racine carrée entière de x peut être définie comme le plus petit z tel quex (z+1)2>x{\displaystyle (z+1)^{2}>x}x En utilisant l'opérateur de minimisation, on obtient une définition récursive générale :Not , Gt , et Mul sont respectivement la négation logique , le supérieur à et la multiplication, . En fait,x) (PasGt(Mul(SP12,SP12),P22))(z,x)=(¬S(z)S(z)>x){\displaystyle (\operatorname {Not} \circ \operatorname {Gt} \circ (\operatorname {Mul} \circ (S\circ P_{1}^{2},S\circ P_{1}^{2}),P_{2}^{2}))\;(z,x)=(\lnot S(z)*S(z)>x)}x) est0 si et seulement si,x S(z)S(z)>x{\displaystyle S(z)*S(z)>x}x tient. Par conséquent.z tel quex S(z)S(z)>x{\displaystyle S(z)*S(z)>x}x tient. Le connecteur de négation Not est nécessaire puisque Gt encode la vérité par1 , tandis que μ recherche0 .

Les exemples suivants définissent des fonctions récursives générales qui ne sont pas récursives primitives ; par conséquent, elles ne peuvent éviter d'utiliser l'opérateur de minimisation.

fonction d'Ackermann

Fonction récursive totale

Une fonction récursive générale est dite totale si elle est définie pour toute entrée, ou, de manière équivalente, si elle peut être calculée par une machine de Turing totale . Il n'existe aucun moyen de déterminer par le calcul si une fonction récursive générale donnée est totale — voir le problème de l'arrêt .

Équivalence avec d'autres modèles de calculabilité

Dans l' équivalence des modèles de calculabilité , un parallèle est établi entre les machines de Turing qui ne s'arrêtent pas pour certaines entrées et le résultat indéfini de cette entrée dans la fonction récursive partielle correspondante. L'opérateur de recherche non borné n'est pas définissable par les règles de la récursivité primitive, car celles-ci ne fournissent aucun mécanisme pour les « boucles infinies » (valeurs indéfinies).

théorème de la forme normale

Un théorème de forme normale dû à Kleene affirme que pour chaque k, il existe des fonctions récursives primitivesk variables libres, il existe un e tel que

Le nombre e est appelé un indice ou un nombre de Gödel pour la fonction f . Une conséquence de ce résultat est que toute fonction μ-récursive peut être définie en utilisant une seule instance de l'opérateur μ appliqué à une fonction récursive primitive (totale).

Minsky observe le

Construire U consiste à écrire la définition d'une fonction récursive générale U ( n , x ) qui interprète correctement le nombre n et calcule la fonction appropriée de x . Construire U directement impliquerait essentiellement le même effort et les mêmes idées que ceux que nous avons investis dans la construction de la machine de Turing universelle

Symbolisme

Plusieurs symbolismes différents sont utilisés dans la littérature. L'un des avantages de l'utilisation de ces symbolismes est que la dérivation d'une fonction par « imbrication » des opérateurs est plus facile à écrire sous une forme compacte. La chaîne de paramètres suit.

  • Fonction constante : Kleene utilise "
par exemple
par exemple
  • Fonction successeur : Kleene utilise
  • Fonction identité : Kleene (1952) utilise
par exemple
  • Opérateur de composition (substitution) : Kleene utilise une police en gras
Si on nous donne
alors
De la même manière, mais sans les indices et les exposants, BBJ écrit :
  • Récursivité primitive : Kleene utilise le symbole
  • étape de base :
  • étape d'induction :
Exemple : définition de récursion primitive de
  • étape de base : (a)
  • étape d'induction :

Exemple : Kleene donne un exemple de la manière d'effectuer la dérivation récursive de

  1. étape de base :
étape d'induction :

Il arrive à :

Exemples

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index