• Aucun résultat trouvé

Chapitre 2 : Modélisations du Système

I. Algorithme évolutionnaire

La méthode d’optimisation choisie est basée sur un algorithme évolutionnaire [PRI05]. Dans cette section, nous présentons le principe de cet algorithme. Comme tout algorithme d’optimisation, il s’agit tout d’abord de poser les définitions de l’objectif, de contraintes, et de variables.

L’optimisation d’un modèle vise à obtenir le meilleur résultat possible sur un critère donné. On exprime ce résultat sous la forme d’une fonction que l’optimisation doit conduire à minimiser : c’est la fonction objectif. Pour cela, l’algorithme agit sur les paramètres du modèle. Ce sont les variables de l’optimisation, auxquelles l’algorithme va affecter différentes valeurs et relever leur influence sur la fonction objectif. Il s’agira alors de faire évoluer ces jeux de paramètres afin d’améliorer le résultat de la fonction objectif. Cependant, toutes les solutions de la fonction objectif ne sont pas acceptables. Il existe des contraintes qui limitent les possibilités de résultat admissible. Nous distinguons ici deux types de contraintes : les contraintes de bornes qui limitent les valeurs potentielles que peuvent prendre les paramètres (typiquement : une longueur ne pouvant pas être négative, la valeur minimale nulle sera une contrainte de borne), et les contraintes qui touchent à la pertinence du résultat obtenu par l’évaluation. Par exemple, une configuration du système qui conduirait à des températures trop élevées ne serait pas acceptable. Toutes les solutions calculées par l’algorithme d’optimisation doivent nécessairement être en-dessous de cette contrainte, sans quoi la solution est éliminée.

Ainsi, le travail principal de l’algorithme d’optimisation consiste à faire évoluer les jeux de variables entre deux itérations afin d’améliorer le résultat de la fonction objectif. Pour cela, l’algorithme d’évolution différentielle utilisé se base sur une analogie avec les théories de l’évolution. La théorie Darwiniste sur l’évolution s’appuie sur le fait que pour subsister, une espèce doit s’adapter. Cette adaptation réside dans la sélection naturelle des individus les plus forts et la transmission de leur caractère aux générations suivantes. L’algorithme évolutionnaire repose sur les mêmes bases.

Page 116

Soit un problème d’optimisation qui fait intervenir un ensemble de paramètres dans le cadre d’une simulation. Des jeux de valeurs aléatoires et successifs vont donc être attribués à ces paramètres afin de trouver le meilleur ensemble de valeurs pour définir la solution optimale.

On appelle individu un jeu de valeurs attribué à une simulation. Chaque paramètre variable est nommé gène. Ainsi, un individu est caractérisé par un ensemble de gènes. L’optimisation va tout d’abord former une population initiale, formée de plusieurs individus. Notons n le nombre d’individus. L’algorithme va tout d’abord évaluer les n simulations, afin d’en retirer n valeurs de la fonction objectif.

À partir des résultats de la population initiale, l’algorithme va construire une nouvelle population. On parle alors de générations, qui sont des populations successives dans le temps. Un individu étant un ensemble de paramètres, on le représente fréquemment sous forme de vecteur. La notation pour le nième individu d’une population sera Xn, où Xn(j) représentera le jième paramètre de l’optimisation. Nous indiquerons l’indice de la génération en exposant : XnG est le nième individu de la génération G.

La déduction d’une génération à partir de la précédente se fait par une suite d’opérations faites sur les individus. Chacun d’entre eux est à l’origine d’un nouvel individu obtenu par mutation différentielle. Nous créons ainsi un individu temporaire que nous noterons VnG en appliquant la relation de l’équation (46).

= �+ �. �− � (46)

Où F, appelé facteur d’échelle, est un nombre réel compris entre 0 et 1. XkG et XsG sont deux individus sélectionnés au hasard dans la population courante.

VnG est un individu muté, obtenu par simple translation du vecteur de base XnG en fonction de deux autres individus. Dans le cas où les individus ne sont formés que de deux gènes a et b, la figure 78 illustre la mutation différentielle.

Page 117

Figure 78 : Mutation différentielle pour le cas à deux paramètres a et b.

Une étape de recombinaison discrète permet ensuite de faire une opération de croisement entre les individus mutés et les individus de la génération G. Un nouvel individu, que nous noterons UnG est créé pour chaque élément muté VnG. Les paramètres de UnG sont issus de VnGou de l’individu de la génération G, XnG.

Un coefficient de croisement, noté Cr, défini par l’utilisateur et compris entre 0 et 1, permet de définir l’importance accordée à cette manipulation entre individus. Un nombre, lui aussi compris entre 0 et 1, est tiré aléatoirement et comparé à Cr pour chaque paramètre de chaque individu. Si le résultat est plus grand que Cr, le paramètre initial est conservé, sinon le paramètre de l’individu muté est retenu. Le croisement est illustré sur la figure 79.

Figure 79 : Recombinaison pour le cas à deux paramètres a et b.

Enfin, une dernière opération est menée : la sélection. Si la valeur de l’objectif de l’individu UnG

est meilleure que celle associée à l’individu XnG, alors UnG prend la place de XnG dans la génération G+1. Sinon, XnG est reconduit pour cette nouvelle génération.

Page 118

La nouvelle génération ainsi formée possède le même nombre d’individus que la génération précédente.

À l’itération suivante, les trois opérations de sélection, de croisement, et de mutation sont appliquées. Ce processus est reproduit jusqu’à l’une des conditions d’arrêt suivantes :

 le cas de convergence : le meilleur individu reste le même pendant un nombre défini de générations successives, ou bien évolue très légèrement dans une tolérance définie. Alors, les paramètres associés à cet individu sont considérés comme étant les paramètres optimaux du problème ;

 le cas de convergence lente : au bout d’un nombre maximal de générations autorisé, l’algorithme est arrêté. Cette condition d’arrêt est voulue par l’utilisateur de l’algorithme afin de ne pas laisser une optimisation se dérouler indéfiniment. Cela signifie que la convergence de l’algorithme est trop lente.

Soulignons que le champ d’exploration formé par les valeurs possibles que peuvent prendre les paramètres peut comporter un minimum local dans lequel l’algorithme pourrait « se laisser enfermer ». Ce scénario est cependant limité par l’introduction d’un ou plusieurs individus au hasard.

La proportion d’aléatoire dans l’application de l’algorithme évolutionnaire ne permet pas d’affirmer que la solution donnée est la solution optimale, même en cas de convergence. En effet, il y a toujours une chance qu’un minimum global existe ailleurs. Dès lors, il est bon de lancer plusieurs optimisations et de prêter attention aux réglages de sélection, de croisement, de mutation et de hasard.

Page 119

Documents relatifs