Programmation Génétique – Genetic Programming

Voici un aspect de la programmation auquel je ne m’étais jamais intéressé et pour cause on ne peut pas dire que j’ai le profil d’un développeur. En revanche j’y avais déjà pensé plusieurs fois sans toutefois lui donner son nom exact. Merci donc à Stormi qui m’a fait découvrir un petit logiciel en flash qui met en application ce principe.

http://www.wreck.devisland.net/ga/ (site fermé)

Alors pour résumer la programmation génétique est une méthode de programmation s’inspirant de la théorie de l’évolution de Darwin. Elle se fixe pour but de trouver par approximations successives des programmes répondant au mieux à une tâche donnée. Le programme que l’on a développé est donc capable de sélectionner les meilleurs résultats de séries d’évènements répétés avec d’infimes changements de variables afin de faire évoluer son programme vers un fonctionnement optimal. On y insère aussi des croisements entre les « génomes » les plus prometteurs. Cela semble bien compliqué ainsi, mais on en trouve des applications assez intéressantes ainsi Roger Alsing nous présente dans son blog la reproduction du portrait de Mona Lisa à travers la programmation génétique et des séries de polygones.

Genetic Programming: Evolution of Mona Lisa

J’avoue que le résultat est assez bluffant, mais que j’ai plus observé le premier programme évoluer durant plusieurs heures. Bon, je ne suis pas assez compétent, du moins pour le moment, pour coder moi même une telle application, mais on peut déjà trouver quelques exemples assez sympathiques sur le net comme les deux ci-dessous :

http://www.eigenfaces.com/

http://picbreeder.org/

Voilà pour ce soir et en attendant, pour ceux qui souhaiteraient une définition plus complète de la programmation génétique ou de son histoire, je vous inviterais à consulter déjà l’article français de Wikipedia ou encore l’article de la version anglaise qui est à peine plus complète : Genetic Programming. Sur ce, amusez-vous bien. 🙂

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

 

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.