IV.5.1.1 Construction de la population initiale
Il est tout à fait possible de créer les
individus de manière aléatoire [web 8]. Et cette méthode
amène un concept très utile dans les algorithmes
génétiques : la diversité. Plus les individus de la
population de départ seront différents les uns des autres, plus
nous aurons de chance d'y trouver, non pas la solution parfaite, mais de quoi
fabriquer les meilleures solutions possibles.
Problème de l'informaticien en
vacances
Nous n'allons pas parcourir tous les chemins
possibles, il y en aurait trop. Nous créons une population d'individus
au hasard : par exemple {A,B,C,D,E,F,G,H,I,J}, {D,A,F,J,C,E,G,H,B,I},
{J,A,H,F,D,C,I,G,E,B} ou encore {J,F,A,C,B,E,I,H,G,D}.
Une population intéressante pourrait être
de taille 100, l'essentiel étant que les individus contiennent toutes
les villes une et une seule fois, et qu'ils soient relativement
différents les uns des autres.
IV.5.1.2 La taille de la population à manipuler
La taille de la population initiale est
également laissée à l'appréciation du programmeur.
Il n'est souvent pas nécessaire d'utiliser des populations
démesurées. Une taille de 100 ou 150 individus
85
s'avèrera souvent amplement suffisante, tant
pour la qualité des solutions trouvées que pour le temps
d'exécution de notre algorithme. Evidemment, ce n'est qu'un ordre de
grandeur. Ensuite, libre à vous de modifier la taille de la population
initiale en fonction du problème à résoudre si les
solutions trouvées ne vous conviennent pas
IV.5.2 L'évaluation des individus
Une fois que la population initiale a été
créée, nous allons en sortir les individus les plus
prometteurs, ceux qui vont participer à
l'amélioration de notre population. Nous allons donc attribuer une
'note' ou un indice de qualité à chacun de nos individus. La
méthode d'évaluation des individus est laissée au
programmeur en fonction du problème qu'il a à optimiser ou
à résoudre.
Cette étape intermédiaire
d'évaluation peut même devenir une étape importante du
processus d'amélioration de notre population. En effet, les
différents individus ne sont pas toujours comparables, il n'est pas
toujours possible de dire qu'un individu est meilleur ou moins bon qu'un autre.
C'est le cas des problèmes multicritères, lorsqu'une solution
dépend de plusieurs paramètres. Vous pourrez toujours dire qu'un
nombre est supérieur ou non à un autre, mais vous ne pourrez pas
dire si un vecteur est supérieur ou non à un autre. La notion de
supériorité pour les vecteurs n'existe pas. Vous pouvez comparer
leur norme, mais pas les vecteurs eux-mêmes.
|