Récursivité

principe en programmation informatique

La récursivité est une démarche qui fait référence à l'objet même de la démarche à un moment du processus. En d'autres termes, c'est une démarche dont la description mène à la répétition d'une même règle[1],[2]. Ainsi, les cas suivants constituent des cas concrets de récursivité :

  • décrire un processus dépendant de données en faisant appel à ce même processus sur d'autres données plus « simples » ;
  • montrer une image contenant des images similaires[3] ;
  • définir un concept en invoquant ce même concept ;
  • écrire un algorithme qui s'invoque lui-même[4] ;
  • définir une structure à partir de l'une au moins de ses sous-structures ;
  • faire pointer un article de Wikipédia vers lui-même ou vers un article qui, par une succession de pointeurs, pointe vers l'article dont on est parti ; ainsi dans l'article que vous lisez, l'expression « pétition de principe » pointe vers un article qui pointe vers le présent article[5].

En informatiqueModifier

 
Un arbre binaire est une structure de données récursive. L’arbre représenté, contenant les neuf éléments {2, 7, 2, 6, 5, 11, 5, 9, 4}, est constitué d’un nœud 2 portant à gauche un arbre à cinq éléments {7, 2, 6, 5, 11} et à droite un arbre à trois élements {5, 9, 4}. Ce dernier est constitué d’un nœud 5 portant à gauche un arbre vide, et à droite un arbre à deux éléments {9, 4}. Ce dernier est constitué d’un nœud 9 portant à gauche un arbre à un élément {4}, et à droite un arbre vide. L’arbre à un élément {4} est constitué d’un nœud 4 portant deux arbres vides.

En informatique, la définition de certaines structures de données, comme les listes ou les arbres, est récursive : elle mentionne le type de données en train d’être défini. Par exemple (voir la figure) un arbre binaire est soit vide, soit un nœud portant deux arbres binaires plus petits.

Par ailleurs, une fonction ou plus généralement un algorithme peut contenir un ou des appels à lui-même, auquel cas il est dit récursif. Ce procédé est en particulier employé pour traiter les structures de données récursives, ainsi que pour réaliser le paradigme algorithmique « diviser pour régner ».

Deux types de données peuvent, dans leur définition respective, se mentionner l'un l'autre ; de même, deux algorithmes peuvent s'appeler l'un l'autre. On parle alors de récursivité croisée, ou mutuelle.

Comme l’usage de boucles, la récursivité permet d’effectuer un nombre d’opérations non connu à l’avance car déterminé par les entrées du programme ; ces deux procédés permettent aussi d’écrire des programmes qui ne terminent pas. Un langage autorisant des boucles, tout comme un langage autorisant la récursivité, est en général Turing-complet.

La récursivité est un point délicat dans l'enseignement de l'informatique[6], car son appropriation par l'apprenant demande une dose d'abstraction.

Un dicton anglais dit ainsi «To iterate is human, to recurse is divine ». En français, on peut traduire par « L'itération est humaine, mais la récursion est divine  »[pas clair][réf. nécessaire]

En linguistiqueModifier

Noam Chomsky, linguiste américain renommé, parmi d'autres, affirme que le manque d'une limite supérieure en ce qui concerne le nombre de phrases grammaticales ainsi que leur longueur (en restant dans le domaine de ce qui est pratique) est le résultat de la récursivité du langage naturel.[7],[8]

Cela se comprend à l'aide d'une définition récursive d'une catégorie syntaxique, comme une phrase. Une phrase peut posséder une structure dans laquelle une phrase enchâssée se trouve après le verbe : Dorothée pense que les sorcières sont dangereuses, dans laquelle la phrase les sorcières sont dangereuses se trouve dans une phrase déjà présente. Donc, une phrase peut être définie récursivement (à peu près) comme quelque chose qui possède une structure qui inclut une phrase nominale, un verbe et une autre phrase (optionnelle). C'est vraiment un cas spécial dans lequel la définition mathématique de la récursivité se manifeste.

La récursivité joue un rôle important non seulement en syntaxe, mais aussi dans la sémantique du langage naturel. Le mot et, par exemple, peut être considéré comme une fonction qui peut s'appliquer aux sens des phrases pour créer de nouvelles phrases. Cela s'effectue également en ce qui concerne les sens des phrases nominales, verbales, parmi d'autres formes phrasales. C'est aussi le cas pour les verbes transitifs, intransitifs ou même ditransitifs. Afin de lui fournir une seule dénotation suffisamment flexible, et se définit tout simplement comme ayant la possibilité de représenter des arguments à travers n'importe quelles formes significatives. Cela peut s'effectuer en définissant et pour un cas simple dans lequel on combine des phrases, puis définir les autres cas récursivement en termes du cas simple[9].

La grammaire du sanskrit de Pānini utilise déjà la récursivité au Ve siècle av. J.-C. Les constructions des langues sont essentiellement récursives, par exemple la construction des groupes nominaux : la clé de la serrure de la porte d'entrée de la maison de la rue du bout du village. Des travaux menés par le professeur Daniel Everett tendraient cependant à montrer l'absence de récursivité dans la langue Pirahã[10].

Certains auteurs ont considéré que la capacité à construire des structures récursives est propre aux systèmes de communication humaine, mais cette affirmation est aujourd'hui remise en cause par des travaux de cognition animale[11].

Un dictionnaire (dictionnaire de définition) est un exemple de récursivité : chaque mot du dictionnaire est défini par d'autres mots eux-mêmes définis par d'autres mots dans ce même dictionnaire.

 
Figure de Sierpiński.

Dans les artsModifier

Dans le domaine des arts, le procédé récursif est appelé mise en abîme et c'est l'artiste Maurits Cornelis Escher qui en fait le plus grand usage ; il est connu pour ses œuvres inspirées par la récursivité. De son côté, la publicité a aussi utilisé la récursivité, rendant célèbres en France La vache qui rit et Dubonnet[3].

En biologieModifier

La récursivité est particulièrement présente en biologie, notamment dans les motifs de végétaux et les processus de développement. Les diatomées présentent en particulier de belles structures récursives.

En mathématiquesModifier

 
Le triangle de Sierpiński — une récurrence de triangles formant une fractale.

Suite définie récursivementModifier

Fonctions récursivesModifier

Une fonction peut être définie en fonction d'elle-même. Un exemple familier est la suite de Fibonacci vue comme une fonction  , à savoir  . Pour qu'une telle définition ait un sens, elle doit conduire à des valeurs immédiatement évaluables: dans le cas de la suite de Fibonacci on pose   et  .

Un exemple : le flocon de KochModifier

Le flocon de Koch est une figure fractale utilisant un procédé simple de récursivité.

 
Le flocon de Koch - une récurrence de triangles formant une fractale.

À l'étape initiale, on a un triangle équilatéral. L'étape suivante consiste à construire trois triangles équilatéraux en prenant pour base le tiers central de chacun des côtés du triangle initial. En répétant ce procédé d'abord pour les trois nouveaux triangles, puis autant de fois qu'on le veut, on obtient le flocon de Koch.

Récursivité, imprédicativité et auto-référenceModifier

 
Une publicité récursive.

Définir un concept à partir de lui-même a été appelé par les logiciens et les mathématiciens imprédicativité, notion qui ne doit pas être confondue avec celle de récursivité bien qu'elle lui soit apparentée. On parle aussi d'auto-référence. Il existe des théories logiques imprédicatives (comme le système F dû à Jean-Yves Girard), mais elles doivent être définies avec précaution si l'on veut préserver leur cohérence, car les paradoxes ne sont pas loin. Ainsi en théorie des ensembles, le paradoxe de Russell montre qu'il ne peut pas y avoir d'ensemble constitué des ensembles qui ne se contiennent pas eux-mêmes (popularisé comme le paradoxe du barbier, en effet « si le barbier est celui qui rase ceux qui ne se rasent pas eux-mêmes, qui rase le barbier ? »). Toujours en théorie des ensembles, l'axiome de fondation proscrit les ensembles qui se contiennent eux-mêmes.

C'est pour jouer sur ces principes que des informaticiens facétieux ont défini des acronymes récursifs qui ne définissent rien puisqu'ils sont imprédicatifs et incohérents. De même, l'aphorisme suivant : « Pour comprendre le principe de récursivité, il faut d'abord comprendre le principe de récursivité »[réf. nécessaire], est imprédicatif et peut être considéré comme une pétition de principe.

En systémique, neurosciences et systèmes complexes, cognitionModifier

Edgar Morin a très souvent utilisé le concept de récursivité, qu'il appelle boucle récursive, notamment dans ses ouvrages constituant la Méthode. La boucle récursive est à causalité circulaire : la conséquence agit sur la cause de l'effet. La plasticité cérébrale, composée de la plasticité neuronale et de la plasticité synaptique, est un exemple de boucle récursive. Par exemple : le cerveau a la capacité de piloter l'enchaînement des différents muscles de commande lors du premier apprentissage d'un mouvement complexe (swing du golf). La répétition du geste modifie les réseaux neuronaux et synaptiques qui deviennent ainsi aptes à de nouvelles capacités : l'apprentissage des gestes pour les effets donnés à la balle.

« Le principe de récursion organisationnelle va au-delà du principe de la rétroaction (feed-back); il dépasse la notion de régulation pour celle d'autoproduction et auto-organisation. C'est une boucle génératrice dans laquelle les produits et les effets sont eux-mêmes producteurs et causateurs de ce qui les produit. […] Les individus humains produisent la société dans et par leurs interactions, mais la société, en tant que tout émergeant, produit l'humanité de ces individus en leur apportant le langage et la culture »[12].

Dans le 6e opus de La Méthode, Edgar Morin propose la récursion éthique.

« L'auto-examen, l'autocritique et la gymnastique psychique coïncident en la pratique récursive qui consiste à évaluer nos évaluations, juger nos jugements, critiquer nos critiques. […]

La récursion éthique met également en boucle compréhension/explication (c'est-à-dire examen objectif/subjectif) : toute explication doit être complétée par la compréhension, toute compréhension doit être complétée par l'explication.

La récursion éthique, enfin, nous renforce immunologiquement contre notre tendance à culpabiliser autrui, devenant bouc émissaire de nos fautes »[13].

Voir aussiModifier

Sur les autres projets Wikimedia :

Articles connexesModifier

Liens externesModifier

Notes et référencesModifier

  1. « RECURSIVITÉ : Définition de RECURSIVITÉ », sur www.cnrtl.fr (consulté le ).
  2. Éditions Larousse, « Définitions : récursivité - Dictionnaire de français Larousse », sur www.larousse.fr (consulté le ).
  3. a et b Publicité Dubonnet.
  4. En algorithmique, les algorithmes récursifs sont couramment employés.
  5. Notons que le système de wiki détecte les liens hypertextes qui pointent sur la page les mentionnant et les supprime afin d'éviter des problèmes de boucle aux robots parcourant les pages.
  6. (en) Matthias Hauswirth et The Education Column by Juraj Hromkovic, « If you have parents, you can learn recursion. », Bulletin of EATCS, vol. 3, no 123,‎ (lire en ligne, consulté le ).
  7. Pinker, Steven, 1954-, The language instinct : the new science of language and the mind, Penguin, , 494 p. (ISBN 978-0-14-103765-3 et 0-14-103765-2, OCLC 277159505, lire en ligne)
  8. (en) Steven Pinker et Ray Jackendoff, « The faculty of language: what's special about it? », Cognition, vol. 95, no 2,‎ , p. 201–236 (DOI 10.1016/j.cognition.2004.08.004, lire en ligne, consulté le )
  9. (en) Paul Portner et Barbara H. Partee, Formal Semantics, coll. « The Essential Readings », (ISBN 978-0-631-21541-7, DOI 10.1002/9780470758335, lire en ligne)
  10. René Lemieux, « De la Weltanschauung du bon sauvage aux polémiques du MIT: Everett contra Chomsky », sur Laboratoire de résistance sémiotique (consulté le ).
  11. (en) A. Rey, P. Perruchet et J. Fagot, « Centre-Embedded structures are a by-product of associative learning and working memory constraints: Evidence from baboons (Papio papio) », Cognition, 123, 180-184.
  12. Edgar Morin et Jean-Louis Le Moigne, L'intelligence de la complexité, Paris, L'Harmattan, , 332 p. (ISBN 978-2-7384-8085-9, lire en ligne), p. 255, reprise avec de legères modifications de Edgar Morin, « Vers un nouveau paradigme », Sciences humaines, no 47,‎ , p. 20-23.
  13. Edgar Morin, La méthode : L'éthique, t. 6, Seuil, , 285 p. (ISBN 978-2-7578-0183-3), p. 120-121.