Ecrivez-nous
|
programmation génétique (informatique)
programmation génétique (informatique), forme particulière d'algorithme génétique, proposée au début des années quatre-vingt-dix par John Koza, et qui consiste à faire évoluer une population de programmes afin d’obtenir le plus adapté pour un problème donné.
Le programme est le plus souvent représenté sous la forme d'un arbre. Un arbre est une structure de données très courante en informatique, composé de nœuds reliés par des arêtes. C’est une structure hiérarchique, c’est-à-dire que chaque nœud peut posséder des fils (des nœuds de rang inférieur) et un parent (de rang supérieur). Le seul nœud qui n’ait pas de parent est appelé le nœud racine. Ici, comme l’arbre représente un programme, chaque nœud est une instruction et chacun de ses fils est un argument de cette instruction. Le langage de programmation LISP est couramment utilisé pour cette représentation, car il offre des facilités de programmation, mais il est possible d’utiliser n’importe quel langage pour faire de la programmation génétique. Les algorithmes génétiques utilisés en programmation génétique diffèrent des algorithmes génétiques classiques à divers niveaux : tout d’abord, afin d’évaluer l’adaptation du programme, celui-ci doit être interprété. Le programmeur doit donc fournir les instructions utilisables par les individus de la population, et aussi expliciter leur sens. Par ailleurs, la taille du génotype évolue au cours des générations : elle n’est plus fixe.
Les applications de la programmation génétique sont nombreuses et concernent divers domaines de recherche. Par exemple, elle est utilisée pour la recherche d’algorithmes, ou bien la construction d’une fonction mathématique dont on souhaite spécifier des propriétés particulières, ou encore l'élaboration du comportement et du contrôle d'un robot (réel ou simulé). |