Les Algorithmes GénétiquesNov 1999, Juin 2000Les algorithmes génétiques sont constitués par une catégorie de programmes dont l'objectif est de résoudre un problème en reproduisant les mécanismes de la sélection naturelle. Ces algorithmes sont particulièrement adaptés à l'optimisation de problèmes combinatoires et notamment des problèmes dits NP-complets (dont le temps de calcul croit de façon non polynomiale avec la complexité du problème). Ces algorithmes constituent parfois une alternative intéressante aux réseaux de neurones mais sont le plus souvent complémentaires. Un exemple peut être donnée dans le cas d'un système à N variables (dans le cas où N est grand) et où seulement certaines combinaisons de ces variables sont pertinentes dans quelques cas particuliers. Le problème du voyageur de commerce des bien connu des chercheurs ("Traveling Salesman Problem"). L'énoncé est le suivant: un voyageur de commerce doit effectuer un déplacement dans 20 villes des Etats-Unis, quel est l'itinéraire le plus court ? Résoudre ce problème par un algorithme génétique pour 20 villes équivaut à utiliser une centrale nucléaire pour alimenter une seule maison, mais qu'en est-il lorsque vous avez 100, 10000 ou même 1 milliard de villes ou de points ? Un algorithme traditionnel aura généralement un temps de calculs dissuasif et c'est justement là qu'interviennent les algorithmes génétiques, pour vous aider à réduire ce temps de calcul.
| |||||||||||||||||||||||||||||||||||||||||||||||||
t = 0; Initialisation de P[t]; Evaluation de P[t]; Tant Que Population Non Identique t = t + 1; Selection de P[t] dans P[t-1]; Recombinaison de P[t]; Evaluation de P[t]; Fin Tant Que |
Nous disposons en première période d'une population P(0) d'individus ayant des caractéristiques diverses (aléatoires au départ) et dont les chaines de caractères représentes des solutions potentielles à notre problème. Les caractéristiques des individus sont ainsi codées par des chaînes de caractères de taille fixe et les individus n'ont aucune connaissance d'un modèle éventuel. A chaque période, nous sélectionnons les meilleurs individus selon une fonction objectif et certains individus mutent ou se reproduisent. Nous itérons le processus jusqu'à la condition de terminaison (stabilité des caractéristiques de la population sur deux périodes par exemple). "Evaluation" utilise la fonction d'évaluation qui dépend de notre problème et qu'il faudra minimiser ou maximiser.
La sélectionComme son nom l'indique, la sélection vise à sélectionner une sous population à partir d'une population parent. La méthode la plus courante est celle initiée par Holland lui même en 1975 : la "roulette wheel" selection, qui est une méthode de sélection proportionnelle au niveau de fitness des individus. Le nombre de fois qu'un individus sera sélectionné est égal à son fitness divisé par la moyenne du fitness de la population totale (plus exactement, la partie entière représente le nombre de fois qu'il sera sélectionné, et la partie flottante la probabilité qu'il aura d'être sélectionné à nouveau ). Cette fonction est déterminante dans un algorithme génétique et de nombreuses méthodes de sélection, bien plus complexes sont disponibles : le sigma scaling, la sélection à la Boltzman, la sélection par rang, la sélection par tournois...
Le crossoverLe crossover, qui symbolise la reproduction sexuée (toujours par métaphore du mécanisme de sélection naturelle), est une des étapes importantes de l'A.G. C'est l'instrument majeur des innovations au sein de l'algorithme, c'est lui qui insufle le changement. Il peut être effectué de plusieurs manières mais la plus courante croise les chaines de caractères de deux individus parents pour former des chaines de caractère enfants. La figure ci-dessous illuste un "single-point" crossover avec deux parent (A,B) et deux enfants (C,D) qui échangent une partie de leur chaine.
Le taux de crossover est en général assez fort et se situe entre 70% et 95% de la population totale.
La mutationComme pour le crossover, la mutation vise à modifier de façon aléatoire une partie de la population.C'est le second mécanisme d'innovation d'un AG. Ici, le principe est de choisir une valeur de remplacement aléatoire pour l'un des gènes des individus de la population concernés. D'autres méthodes de mutation peuvent aussi être utilisées comme la mutation par soustraction numérique fixée sur un gène, ou remplacée par une valeur aléatoire choisie dans un sous ensemble de valeur (pour un cas réel par exemple). A la différence du crossover le taux de mutation est généralement faible et se situe entre 0.5% et 1% de la population totale. Ce taux faible permet d'éviter une dispersion aléatoire de la population et n'entraine que quelques modifications sur un nombre limité d'individus. La mutation prend une place de plus en plus importante dans les algorithmes génétiques, alors qu'il y a encore quelques années son rôle était encore considéré comme accessoire.
L'évaluationL'évaluation est la phase au sein de laquelle l'ensemble des individus devant être évalués (notamment ceux ayant subit une mutation ou un crossover) vont pouvoir quantifier leur degré d'élitisme. Le degré de fitness d'un individus sera calculé à l'aide de cette fonction d'évaluation qu'il faudra maximiser ou minimiser. L'opération de fait à l'aide d'une fonction fournie par l'auteur et qui dépend très étroitement du problème à résoudre via l'A.G.
Existe-il un paramétrage universel ?Non il n'existe pas de paramètres qui soient adaptés à la résolution de tous les problèmes qui peuvent être posés à une A.G. Cependant, certaines valeurs sont souvent utilisées peuvent être de bons points de départ pour démarrer une recherche de solution(s) à l'aide d'un A.G.
Bien sur ces valeurs sont données à titre indicatif et ne peuvent en aucun cas s'appliquer à l'ensemble des problèmes que peuvent résoudrent les algorithmes génétiques. Une approche prudente consiste à essayer différents paramètres et à choisir ceux qui vous donnent les résultats les plus satisfaisants.
Quelques sources d'information