Qu'est-ce que la programmation génétique?
La programmation génétique consiste à utiliser un programme informatique pour écrire un autre programme informatique à l’aide d’une méthodologie basée sur un algorithme évolutif. Ce processus est souvent comparé à la programmation linéaire, dans laquelle le programmeur écrit des instructions spécifiques à exécuter par l'ordinateur. LISP et Scheme sont les langages de programmation les plus courants pour ce type de travail en raison de leur fonctionnalité de haut niveau et de leur flexibilité. En raison de sa similitude conceptuelle avec l'évolution biologique, la programmation génétique est souvent citée comme exemple d'informatique bio-inspirée.
Les programmes génétiques (GP) génèrent et exécutent des milliers de programmes et choisissent les plus efficaces. Par exemple, un généraliste peut être utilisé pour créer un programme permettant de dessiner une esquisse d’une photo. La première chose à faire par le spécialiste consiste à créer un ensemble de programmes qui utilisent diverses fonctions de dessin sur ordinateur selon des combinaisons aléatoires. Ensuite, le GP exécutera chacun de ces programmes dans l’ordre, en affichant les résultats de chacun dans des fichiers image.
La prochaine étape pour le GP consiste à sélectionner le meilleur de ces programmes dans l’ensemble. Ce processus est généralement la partie la plus difficile de la programmation génétique. Dans le cas du programme de dessin, le généraliste utiliserait un logiciel de comparaison d'images pour déterminer lequel des dessins aléatoires était le plus similaire à l'image que le logiciel tentait de dessiner. Parmi les programmes générés aléatoirement, le médecin généraliste sélectionnerait les premiers et rejeterait les autres. Le processus de sélection est connu sous le nom d'évaluation de la condition physique et est généralement considéré comme la partie la plus difficile du programme génétique.
Une fois que les meilleurs programmes ont été sélectionnés, le GP les utilisera comme base d’un nouveau lot de programmes. Chaque nouveau lot s'appelle une génération. Les deux manières de créer la nouvelle génération sont la mutation et le croisement. La mutation fonctionne en prenant l'un des programmes existants et en y apportant des modifications aléatoires, pour le mieux. Crossover, également appelé élevage, fonctionne en prenant deux des meilleurs programmes et en combinant des éléments pour créer de nouveaux programmes.
Après avoir créé un nouveau lot de programmes, le GP répète le processus de leur exécution et de leur évaluation, puis répète les processus de sélection, d'élimination et de génération. Les omnipraticiens exécuteront fréquemment des centaines de générations avant de trouver un programme unique avec un résultat satisfaisant. Malgré cette limitation, la programmation génétique est un moyen courant de résoudre certains types de problèmes informatiques difficiles, notamment les problèmes d'ingénierie robotique et d'intelligence artificielle.