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/

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 approximation 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/

Voila 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 de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">