• Aucun résultat trouvé

2. Emission acoustique

2.3. Algorithmes génétiques

2.3.2. Terminologie et fonctionnement

Les algorithmes génétiques se basent sur le principe d'évolution comme énoncé par Charles Darwin dans « De l'origine des espèces (1859) : In the struggle for survival, the fittest win out at the expense of their rivals because they succeed in adapting themselves best to their environment ». Le but de ces algorithmes est de combiner les points forts de chaque individu pour en créer de nouveaux, plus adaptés à répondre au problème d’optimisation posé.

Les algorithmes génétiques utilisent un langage spécifique qu’il convient ici d’expliciter. Le champ lexical rencontré est le suivant :

- un individu est un jeu de valeurs des paramètres du modèle. Il représente donc une

solution potentielle ;

- le génome d'un individu est l'ensemble de ces paramètres ;

- un gène est un paramètre particulier d'un individu, c'est-à-dire une composante du

génome ;

- une population est un ensemble d'individus et représente donc un ensemble de solutions

possibles ;

- une génération est une population à un moment donné ;

- un parent est un individu choisi comme base pour créer un individu de la génération

suivante ;

- l’efficacité d’un individu est sa capacité à répondre au problème posé ;

- la fonction fitness ou performance est la fonction qui permet l’évaluation des individus.

Il convient généralement d’en minimiser la valeur. Elle est directement reliée à la fonction objectif (transcription du problème) La valeur calculée a pour but d’évaluer si un individu est mieux adapté (efficace) qu’un autre à son environnement.

Un algorithme génétique peut schématiquement se décomposer en une série d’opérations qui sont répétées génération après génération. Les étapes principales en sont présentées sur la figure 1-32. La recherche de la solution débute par l’initialisation d’une population. Les individus de cette population sont ensuite évalués, éventuellement classés, de manière à permettre la sélection des meilleurs individus qui serviront de parents aux individus de la génération suivante. Afin de réaliser la reproduction, des opérateurs de mutation et de croisement s’appliquent sur cette population intermédiaire d’individus sélectionnés. Une fois la nouvelle population créée, à priori plus performante

que la population précédente, une nouvelle évaluation est effectuée. Le critère d’arrêt, ou éventuellement le critère de convergence, est alors examiné. Il est peut être mis fin au processus de calcul, par la rencontre d’une des conditions d’arrêt suivante, définies par l’opérateur :

- nombre limite de génération atteint, nombre cependant délicat à fixer à priori;

- convergence de la solution : évolution de la valeur de la fonction fitness sur une ou plusieurs générations à un seuil qu’il convient d’ajuster.

Le meilleur individu apparait comme la solution du problème posé. Dans le cas contraire, le processus est reconduit : sélection, reproduction et évaluation jusqu’à satisfaire la condition d’arrêt.

Figure 1- 32. Principales étapes d’un algorithme génétique.

La première étape d’optimisation par algorithme génétique consiste donc à initialiser une population avec, de façon générale, une méthode aléatoire. Cette population se compose d’un ensemble d’individus (points dans l’espace de recherche), solutions possibles du problème. Le choix de la population initiale d’individus conditionne fortement la rapidité de l’algorithme. Si la position de l’optimum dans l’espace considéré est totalement inconnue, il est naturel d’engendrer aléatoirement des individus en faisant des tirages uniformes dans chacun des domaines associés aux composantes de cet espace, en veillant à ce que les individus produits respectent les contraintes [MIC 91]. Si par contre, des informations a priori sur le problème sont disponibles, il paraît bien évidemment naturel d’engendrer les individus dans un sous-domaine particulier afin d’accélérer la convergence. Dans l’hypothèse où la gestion des contraintes ne peut se faire directement, les contraintes sont généralement incluses dans la fonction fitness à optimiser sous forme de pénalités.

Le codage des données au sein d’un individu est un des éléments essentiels de la méthode. Historiquement, le codage utilisé par les algorithmes génétiques était représenté sous forme de chaînes de bits contenant toute l’information nécessaire à la description d’un point dans l’espace à balayer. Ce type de codage a pour intérêt de permettre de créer des opérateurs de croisement et de mutation simples. C’est également en utilisant ce type de codage que les premiers résultats de convergence théorique ont été obtenus. Ce type de codage n’est cependant pas satisfaisant dans certains cas, comme dans les problèmes d’optimisation au sein d’espaces de grande dimension. Les algorithmes génétiques utilisant des vecteurs réels [GOL 91, WRI 91] évitent cette difficulté en conservant les variables du problème dans le codage de l’élément de population, sans passer par un codage binaire intermédiaire. Certains les appellent RCGA : Real Coded Genetic Algorithms [PAN 08, SRI 08].

Processus génétiques : création d’une nouvelle

La sélection permet d’identifier statistiquement les meilleurs individus d’une population et d’éliminer les mauvais. On trouve dans la littérature un nombre important de principes de sélection plus ou moins adaptés aux problèmes qu’ils traitent. Les principes de sélection suivants sont les plus couramment utilisés :

- roulette wheel selection [GOL 89] : la probabilité de sélection d’un individu est proportionnelle à sa performance. Le principe est le même que celui d’une roulette de casino qui comporterait des secteurs de tailles variables pour chaque individu (voir figure 1-33). Soit f(i) la performance de l’individu i alors la proportion de la roue occupée par cet individu est :

= = n j f j i f i P 1 ( ) ) ( ) ( Equation 1- 11.

Cette méthode, de loin la plus utilisée, n’est pas sans faille. Si un individu occupe une large proportion de la roue, les autres individus auront une probabilité réduite d’être sélectionnés. La population se retrouve alors peu diversifiée ;

Figure 1- 33. Exemple de roulette wheel selection pour cinq individus (A, B, C, D et E).

- sélection élitiste : sélectionne les n meilleurs individus de la population après l’avoir triée de manière décroissante selon leurs fitness ;

- sélection par tournoi : choix aléatoire de deux individus. Les deux individus sont évalués et comparés (« combat ») ; le meilleur est sélectionné. Le processus est répété n fois pour obtenir n individu de p ;

- sélection stochastique uniforme : les individus forment une ligne au sein de laquelle ils occupent chacun un segment proportionnel à leur fitness. L’algorithme balaye la ligne selon un pas constant et sélectionne les individus sur lesquels il s’arrête successivement. Le premier incrément est une fraction aléatoire du pas.

Le croisement a pour but d’enrichir la diversité de la population en manipulant la structure des chromosomes. Classiquement, les croisements sont envisagés avec deux parents (P1 et P2) et génèrent deux enfants. Initialement, le croisement associé au codage par chaînes de bits est le croisement à découpage de chromosomes (slicing crossover). Pour effectuer ce type de croisement sur des chromosomes constitués de M gènes, on tire aléatoirement une position dans chacun des parents. On échange ensuite les deux sous-chaînes terminales de chacun des deux chromosomes, ce qui produit deux enfants C1 et C2. On peut étendre ce principe en découpant le chromosome non pas en 2

souschaînes mais en 3 (croisement à deux points, voir figure 1-34a) ou plus (croisement multipoint) [BRI 91].

L’opérateur de mutation apporte aux algorithmes génétiques la propriété d’ergodicité de parcours d’espace. Cette propriété indique que l’algorithme génétique sera susceptible d’atteindre tous les points de l’espace, sans pour autant les parcourir tous dans le processus de résolution. Ainsi en toute rigueur, l’algorithme génétique peut converger sans croisement, et certaines implémentations fonctionnent de cette manière [FOG 66]. Les propriétés de convergence des algorithmes génétiques sont donc fortement dépendantes de cet opérateur sur le plan théorique. Pour les problèmes discrets, l’opérateur de mutation consiste généralement à tirer aléatoirement un gène dans le chromosome et à le remplacer par une valeur aléatoire (voir figure 1-34b). Si la notion de distance existe, cette valeur peut être choisie dans le voisinage de la valeur initiale.

Figure 1- 34. (a) Croisement à deux points. (b) Principe de l’opérateur de mutation, le gène n°6 est ici affecté.

Enfin, différents critères d'arrêt de l'algorithme peuvent être choisis :

- le nombre maximal de générations peut être fixé à priori. C'est ce que l'utilisateur est tenté de faire lorsque il doit trouver une solution dans un temps limité.

- L'algorithme peut être arrêté lorsque la population n'évolue plus ou plus suffisamment rapidement : la valeur de la fonction « objectif » se stabilise.