• [^] # Re: algo génétique... ça sent le roussi...

    Posté par . En réponse à la dépêche Ca marche au GPL. Évalué à 8.

    Oui, entre autres. Plus exactement, il y a deux grandes catégories d'écueils : quantitatifs et qualitatifs.
    • Qualitatifs : Il y a plusieurs choix à faire. - Le mode de représentation des variables du problème. Il s'agit en général d'un compromis entre facilité d'obtention et de traduction vis-à-vis du problème réel d'une part, et possibilité d'utiliser des fonctions performantes d'autre part (voir ci-dessous). - La fonction de sélection de la population d'une génération à l'autre (fonction de fitness). Le plus souvent il s'agit d'un choix empirique, le problème ne permettant pas de formuler une fonction de manière exacte. - Les fonctions de mutation et de croisement permettant de créer aléatoirement de nouveaux individus dans chaque génération. A priori, la façon dont ces nouveaux individus sont créés à partir des anciens doit n'être pas totalement arbitraire, mais respecter la sémantique du problème (par exemple si je mute à partir d'un individu proche d'une solution optimale, il serait de bon ton que l'individu obtenu par mutation ait des chances de lui aussi être proche d'une solution optimale ;-)).
    • Quantitatifs : - L'espace décrivible par les variables du problème est en général immense (probablement infini, et peu adapté à une quantification trop grossière). Il faut néanmoins arriver à des résultats avec une population restreinte (quelques dizaines de milliers d'individus par génération par exemple). - La convergence n'est pas immédiate. En multipliant le nombre d'individus par le nombre de générations, ça fait un sacré nombre de tests. - Corollaire 1 : les algos g ne sont intéressants que lorsqu'il est hors de question de trouver un cheminement déterministe raisonnable pour arriver à la solution. - Corollaire 2 : même dans ce cadre, les fonctions de sélection, de croisement et de mutation ont intérêt à être rapides (d'où le problème d'une bonne représentation des données, ce qui est loin d'être évident sachant que le croisement "de base" est le remplacement d'un bout de chaîne (de bits ou d'octets) par un autre bout de chaîne et que cela doit pouvoir conserver au moins empiriquement certaines propriétés de l'individu).
    Voilà voilà. Tout ceci est assez livresque, mais les propriétés citées plus haut sont logiques en soi - et confirmées par l'expérience de ceux qui y ont mis les pattes. NB : dommage que ça s'appelle "algos génétiques", ça amène à la confusion des tas de gens. Au moins on peut dire "réseaux neuro-mimétiques", ce qui souligne qu'il y a une analogie métaphorique au départ, mais pas de lien scientifique fort. Algos généticomorphes ?