• Aucun résultat trouvé

Ajustement des paramètres du cDE

3.4 Les algorithmes compactes proposés

3.4.4 Ajustement des paramètres du cDE

Introduction

Nous avons décrit dans le chapitre précèdent différentes méta-heuristiques compactes. Elles ont été utilisées dans plusieurs domaines d’applications (avec mémoire limité) vu les résultats satisfaisants qu’elles présentent.

Dans ce chapitre, nous essayerons de proposer des nouvelles variantes des méta-heuristiques compactes en utilisant non seulement une hybridation entre celle existantes (cPSO, cDE, DEcDE, ...etc).

mais aussi une version compacte d’une nouvelle méta-heuristique qui n’a jamais été com-pactée. Nous commençons d’abord par présenter la motivation qui nous a poussé à choisir l’étude des méta-heuristiques compactes. Ensuite, nous entamons en détail notre contri-bution proposée.

3.1 Problématique et motivation

Les méta-heuristiques basées populations sont des approches efficaces pour élaborer des algorithmes de recherche. Elles nécessitent un espace mémoire et une capacité de calcul élevée pour résoudre un problème donnée. Pour atteindre une solution optimale, un grand nombre d’individus traités est requis dans chaque génération. Cependant, dans certaines situations, les dispositifs de calcul disponibles présentent certaines contraintes de coût et de l’espace mémoire. Selon [17], cette situation est typique en ingénierie de contrôle et en robotique (principalement pour la robotique commerciale). Par exemple, des robots à usage domestique (Ex : un robot aspirateur) doivent suivre un processus d’apprentissage. Ce problème d’optimisation complexe doit être résolu rapidement et sans compter sur un ordinateur à pleine capacité, en raison de contraintes de taille et de coût.

Les algorithmes compacts ont été conçus afin de traiter cette catégorie de problèmes. Ils offrent une alternative et assurent une réduction des capacités de calcul requises. Ils se caractérisent par leur simplicité et leur efficacité et donnent des résultats satisfaisantes dans pas mal de problèmes. Ces avantages nous ont motivé à adapter des propositions nous les mentionnerons en détails dans la section (3.2).

3.2 Algorithme d’optimisation par vagues d’eau

L’optimisation par vagues d’eau “ water waves Optimization” (WWO) qui a été déve-loppée par Zheng [27], est une nouvelle méthode d’optimisation inspirée de la nature, où l’espace de résolution du problème est analogue à celui des fonds marins. Chaque solution de la population étant analogue à “ une onde ou vague d’eau” de hauteur h et une longueur

λ. Supposons qu’il existe un problème de maximisation F avec sa fonction objectif f , le problème F peut être comparé au modèle de vagues d’eaux peu profondes. La relation correspondante est représentée dans la figure (3.1).

Figure 3.1 – Relation entre un problème F et le modèle de vagues d’eaux peu profondes Lors de l’initialisation de la population, pour chaque vague, sa hauteur h est initialisée à une constante hmax et sa longueur d’onde λ à 0, 5. A chaque génération, WWO utilise trois types d’opérations : propagation, rupture et réfraction.

Figure 3.2 – Différentes formes de vagues dans les eaux profondes et peu profondes

3.2.1 La propagation

Pour chaque onde x, l’opérateur de propagation crée une nouvelle onde x0 en calculant un déplacement différent à chaque dimension d et l’ajoute à l’onde d’origine :

Où rand est une fonction générant un nombre aléatoire uniformément réparti dans la plage spécifiée. Ld est la longueur de la dième dimension de l’espace de recherche.

Ensuite, nous évaluons la fonction objectif de x0 :

Si f (x0) est supérieur à f (x), x0 remplace x dans la population et sa hauteur est réinitialisée à hmax;

Sinon, x est restera et sa hauteur est diminuée d’un. Après chaque génération, WWO calcule la longueur de chaque onde x comme suit :

λ = λ.α−(f (x)−fmin+)/(fmax−fmin+) (3.2)

Où α est un paramètre de contrôle appelé coefficient de réduction de la longueur d’onde, fminet fmax représentent les valeurs maximales et minimales de la fonction objec-tive de la population actuelle. Et  est une petite constante posiobjec-tive permettant d’éviter la division par zéro.

3.2.2 La rupture

L’opérateur de rupture brise une vague dans un train d’ondes solitaires lorsque sa vitesse de crête dépasse la célérité de la vague. WWO effectue uniquement la coupure sur une vague x qui atteint un emplacement meilleur que la meilleure solution actuelle xbest. Chaque onde solitaire x0 de x est obtenue en sélectionnant de manière aléatoire k dimensions (où k est un nombre aléatoire entre 1 et un nombre prédéfini kmax) et en ajoutant un décalage différent à la position d’origine à chaque dimension d comme suit :

x0d = xd+ Gaussien(0, 1).βLd (3.3)

Où β est le coefficient de rupture, et gaussien(0, 1) est une fonction générant un nombre aléatoire gaussien avec une moyenne de 0 et un écart type 1. Si la fonction objectif de x0 est mieux que x, x0 prend la place de x dans la population.

3.2.3 La réfraction

L’opérateur de réfraction crée une onde x dont la hauteur diminue à zéro et apprend de xbest. Par réfraction, chaque dimension de la nouvelle position de x0 est calculée comme un nombre aléatoire centré à mi-chemin entre la position d’origine et xbest,d :

x0d= Gaussien(xbest,d+ xd

2 ,

xbest,d− xd

2 ) (3.4)

à jour comme suit :

λ0 = λf (x)

f (x0) (3.5)

Le principe de WWO est présenté dans l’algorithme 12

Algorithme 12 Optimisation par vagues d’eau (WWO)

Initialiser aléatoirement une population P de n solutions (ondes) ; Tantque le critère d’arrêt n’est pas satisfait Faire

Pour chaque vague x ∈ P Faire

Propager x à un nouveau x0 selon Eq. (3.1) ; Si f (x0) > f (x) Alors

Si f (x0) > f (xbest) ; Alors

Rupture x0 en nouvelles vagues selon Eq. (3.3) ; Mettre à jour xbest avec x0;

FinSi

Remplacer x par x0; Sinon

x.h = x.h − 1 ; Si x.h = 0 Alors

Réfracter x à un nouveau x0 selon Eq. (3.4) et (3.5) ; FinSi

FinSi

Metter à jour les longueurs d’onde selon Eq. (3.2) ; FinPour

FinTantque

Renvoyer la meilleure solution trouvée jusqu’à présent

3.3 Proposition d’un algorithme d’optimisation par

vag-ues d’eau compacte (cWWO)

Dans cette section on va présenter la version compacte de l’algorithme par vagues d’eau expliqué en haut, appelé cWWO pour ’compact water wave optimization ’. Elle suit le même principe des algorithmes compactes expliqué dans le chapitre (2). Aussi, nous avons effectué des changements sur les formules utilisées avec un réglage de paramètres de la méta-heuristique originale. Il est important de noter que nous avons implémenté une version simple de WWO dont l’étape de réfraction n’est pas prise en considération et nous avons introduit un nouveau paramètre C divisé par Np dans la mise à jour du P V . Pour mieux comprendre le comportement de cWWO, il est présenté dans l’algorithme 13

Algorithme 13 Optimisation par vagues d’eau compact (cWWO) compteur t = 0 ;

**/initialisation du P V ; Pour i = 1 : dim Faire

Initialization µ[i] = 0 ; Initialization σ[i] = 10 ; FinPour

**/Initialisation du Global best ; Générer xbest vague à partir de P V ; **/Initialisation du local best ; Générer xlb à partir de P V ; xlb = générer de(P V ) ;

Tantque le critère d’arrêt n’est pas atteint Faire C = M axIt/(Cmin× Cmax× dim)iter× rand(0, 1) ; **/Mettre à jour de xlb;

x0lb = xlb+ rand(−1, 1).λ ; Sélection du local best ;

[winner, loser] = ComparerF itness(x0lb, xlb) ; Si winner == x0lb Alors

xlb = x0lb;

[winner, loser] = ComparerF itness(x0lb, xbest) ; Si winner == x0lb Alors xbest = x0lb; β = 1/((t.tmax.dim)t) ; x0lb = xlb+ randn(−1, 1).β.rand(0, 1) ; FinSi Sinon

[winner, loser] = ComparerF itness(xlb, xbest) ; Si winner == xlb; Alors

xbest = xlb; FinSi

FinSi

**/Mise à jour du P V ; Pour i = 1 : dim Faire

µt+1[i] = µt[i] + NC

p(winner[i] − loser[i]) ; σt+1[i] = qt[i])2+ (µt[i])2− (µt+1[i])2+ NC

p(winner2[i] − loser2[i]) ; FinPour

**/Mettre à jour de λ

λ = λ.α−(f (x)−fmin+)/(fmax−fmin+); t = t + 1 ;

3.4 Les algorithmes compactes proposés

3.4.1 Hybridation basée cPSO_cDE (variante une)

L’optimisation par essaim de particules compact est caractérisée par sa robustesse. Aussi, elle est facile à combiner avec d’autres méthodes d’optimisation. L’algorithme hy-bride proposé que nous avons nommé (cPSO_cDE v1) est basé sur le cDE et le cPSO avec perturbation du P V . Cette nouvelle approche utilise les mêmes règles qui caractérisent le PSO compacte et l’opérateur de croisement binomial du cDE (Cr = 0.5).

Cet opérateur est appliqué entre la solution actuelle (xt) et l’élite (xgb). Il est à noter que nous avons utilisé le mécanisme de perturbation après la mise à jour du P V . Le principe de cette variante est présenté dans l’algorithme 14.

3.4.2 Hybridation basée cPSO_cDE (variante deux)

Cette approche proposée nommée (cPSO-cDE v2 ) est basée aussi sur le cPSO et le cDE. Nous avons utilisé l’opérateur de croisement du cDE Cr(Cr = 0.1) pour la mise à jour de la vélocité des particules du cPSO. Le principe est présenté dans l’algorithme15

3.4.3 Hybridation basée DEcDE

Cette nouvelle approche est basée sur le DEcDE expliquée précédemment avec tous ses paramètres. Nous avons introduit aussi l’opérateur de croisement binomiale(Cr = 0.3). Cette proposition a pour but de bénéficier des avantages des deux opérateurs de croisement. Le détail de cette approche est montré dans l’algorithme 16

Algorithme 14 (cPSO_cDE v1 ) pseudo-code compteur t = 0 ;

**/initialisation du P V ; Pour i = 1 : dim Faire

Initialization µ[i] = 0 ; Initialization σ[i] = 10 ; FinPour

**/Initialisation du Global best ; Générer xgb à partir de P Vlb;

générer de manière aléatoire xt et vt;

Tantque le critère d’arrêt n’est pas atteint Faire **/Nouvelle initialisation du local best ;

xt

lb = générer de(P Vlb) ;

**/Mettre à jour la position et la vélocité ; vt+1= φ1vt+ φ2(xt

lb− xt) + φ3(xt

gb− xt) ; xt+1 = γ1xt+ γ2vt+1;

**/Croisement ;

Pour i = 1 : dim Faire Générer rand(0, 1) ; Si rand(0, 1) > Cr Alors

xt+1[i] = xgb[i] ; FinSi

FinPour

Sélection du local best ;

[winner, loser] = ComparerF itness(xt+1, xlb) ; Mise à jour du P Vlb selon l’algorithme (11) ; **/Perturbation du P V ;

Si rand(0, 1) < Mp Alors Pour i = 1 : dim Faire

µt+1[i] = µt+1[i] + 2τ.rand(0, 1) − τ ; σt+1[i] =p(σt+1[i])2+ τ.rand(0, 1) ; FinPour

FinSi

Mise à jour du Global best selon l’algorithme (11) ; t = t + 1 ;

FinTantque

3.4.4 Ajustement des paramètres du cDE

Le choix des paramètres joue un rôle crucial pour l’efficacité des algorithmes compacts. Le réglage des paramètres des algorithmes influence directement sur leurs performances puisqu’il varie d’un problème à un autre et souvent basé sur l’expertise de l’utilisateur.

La probabilité d’application de l’opérateur croisement CR de l’algorithme cDE est l’un des paramètres que nous avons essayé d’ajuster. L’opérateur Cr doit être choisi dans l’intervalle [0, 1]. Nous avons essayé plusieurs valeurs pour ce paramètre et nous avons remarqué que la valeur (Cr = 0.1) donne des résultats mieux que ceux du cDE et le

Algorithme 15 (cPSO_cDE v2 ) pseudo-code compteur t = 0 ;

**/initialisation du P V ; Pour i = 1 : dim Faire

Initialization µ[i] = 0 ; Initialization σ[i] = 10 ; FinPour

**/Initialisation du Global best ; Générer xgb à partir de P Vlb;

générer de manière aléatoire xt et vt;

Tantque le critère d’arrêt n’est pas atteint Faire **/Nouvelle initialisation du local best ;

xt

lb = générer de(P Vlb) ; **/Mettre à jour la vélocité ; Si rand(0, 1) > Cr Alors

vt+1 = φ1vt+ φ2(xt

lb− xt) + φ3(xt

gb− xt) ; FinSi

**/Mettre à jour la position ; xt+1 = γ1xt+ γ2vt+1;

Sélection du local best ;

[winner, loser] = ComparerF itness(xt+1, xlb) ; Mise à jour du P Vlb selon l’algorithme (11) ; **/Perturbation du P V ;

Si rand(0, 1) < Mp Alors Pour i = 1 : dim Faire

µt+1[i] = µt+1[i] + 2τ.rand(0, 1) − τ ; σt+1[i] =p(σt+1[i])2+ τ.rand(0, 1) ; FinPour

FinSi

Mise à jour du Global best selon l’algorithme (11) ; t = t + 1 ;

FinTantque

Algorithme 16 pseudo-code DEcDE_CRbinomiale

Compteur t = 0 ;

**/Initialisation du P V ; Pour i = 1 : dim Faire

Initialization µ[i] = 0 ; Initialization σ[i] = 10 ; FinPour

Générer elite à partir du P V ;

Tantque le critère d’arrêt n’est pas atteint Faire Si rand(0, 1) < Mt; Alors

**/Mutation trigonométrique ;

Générer 3 individus xr, xs, et xt a partir de P V ; xof f = (xr+xs+xt)

3 + (ps− pr)(xr− xs) + (pt− ps)(xs− xt) + (pr− pt)(xt− xr) ; Sinon

**/Mutation ;

Générer 3 individus xr, xs, et xt a partir de P V ; x0of f = xt+ F (xr− xs) ;

**/Croisement ;

Appliquer le croisement exponentiel montrer dans l’algorithme9 et générer xof f; FinSi

**/Sélection Elite ;

[winner, loser] = ComparerF itness(xof f, elite) ; Si xof f == winner Alors

elite = xof f; FinSi

**/Mise à jour du P V ;

Mise à jour du P V Appliquer selon l’algorithme (10) ; Si rand(0, 1) > Mt; Alors

Générer 1 individus ind a partir de P V ; **/Croisement ;

Appliquer le croisement binomiale ; Pour i = 1 : dim Faire

Générer rand(0, 1) ; Si rand(0, 1) > Cr Alors ind[i] = elite[i] ; FinSi FinPour FinSi **/Sélection Elite ;

[winner, loser] = ComparerF itness(ind, elite) ; Si ind == winner Alors

elite = ind ; FinSi

**/Mise à jour du P V ; **/Perturbation du P V ;

Mise à jour et la Perturbation du P V Appliquer selon l’algorithme (10) ; t = t + 1 ;

Conclusion

Dans ce chapitre, nous avons abordé en détails quelques variantes de méta-heuristiques compactes. Nous avons insisté sur l’utilité de l’hybridation afin d’améliorer les algo-rithmes compacts existants en plus nous avons introduit une nouvelle approche de méta-heuristique compacte (cWWO). Toutes ces nouvelles variantes présentées dans ce chapitre n’exigent que des capacités de calculs minimales.

Dans le chapitre qui suit, les performances de ces algorithmes seront étudiées, testées et validées sur un ensemble de fonctions Benchmark tout en les comparant aux méta-heuristiques compactes de l’état de l’art.

Étude expérimentale et validation

Sommaire

Documents relatifs