Comme mon emploi du temps s'allège à mesure que la fin de la thèse approche (soutenance vers juillet, date non fixée dans le béton pour le moment), j'ai pris quelques temps pour m'essayer à la programmation d'algorithmes génétiques (en OCaml, parce que je voulais avoir un truc qui fonctionne assez vite).
La donnée de base est une représentation arborescente d'expressions arithmétiques définies avec l'addition, la multiplication et la constante entre 0 et 9. Le but est de faire évoluer les expressions pour qu'elles soient égales à un nombre précis, et que l'arbre de représentation soit le moins haut possible. Presque un algorithme pour la partie chiffres des "chiffres et des lettres" (je viens de m'en rendre compte, j'ai un programme exact pour les chiffres, je vais pouvoir comparer). Bref, commentaires jusqu'à maintenant :
- Pour des grandes valeurs à chercher, l'arbre est plus grand, il faut vraiment tâtonner pour trouver la bonne taille du pools de gènes
- J'ai oublié de mémoizer (programmeurs qui me lisez, un mot à apprendre si vous ne le connaissez) le calcul de fitness pour les gènes, donc forcément le temps pour passer d'une génération à l'autre est relativement long
- Il faut aussi tâtonner pour le taux de mutation et de crossover. Il y a beaucoup de tests à faire, en fait

Le but final serait de m'essayer à la programmation génétique (faire évoluer des programmes), mais c'est pas encore pour maintenant.