nombreuses manières différentes, suivant le modèle considéré
(gaussienne, etc.) et selon que l’on considère les variables du
problème corrélées ou pas [6].
Le pseudo-code de l’Algorithme 2 résume le
fonctionnement global des EDA.
Initialisation aléatoire de la population X0
Calcul du modèle P0
Xt=X0
Pt=P0
Faire
Sélection de la sous-famille Xt
parent de Xt
Calcul de Pt+1 à partir de Xt
parent
Échantillonnage de Pt+1 pour créer Xt+1
offspring
Remplacement de certains éléments de Xt par les éléments
de Xt+1
offspring pour créer Xt+1
t=t+1
Tant que le critère d’arrêt n’est pas atteint
Algorithme 2. Principe d’un EDA
IV. ALGORITHME TRIBES
TRIBES est le premier algorithme d’OEP totalement
adaptatif, dans le sens où il ne nécessite aucun paramètre.
L’utilisateur n’a qu’à définir sa fonction objectif et son critère
d’arrêt. Le caractère adaptatif de TRIBES se présente sous
deux formes:
- Adaptation structurelle : la taille de l’essaim évolue
au cours du temps
- Adaptation comportementale : les stratégies de
déplacement des particules changent au cours du
temps
Ainsi, si l’on se réfère à l’OEP basique, ces deux types
d’adaptations nous affranchissent de la définition de N, w, c1
et c2.
L’essaim est divisé en plusieurs "tribus" de tailles
variables. Le but est d’explorer différentes régions de l’espace
de recherche, généralement des optima locaux, et d’échanger
les informations entre les tribus en vue de trouver l’optimum
global. Il existe deux types de communications: une
communication intra-tribu, qui fonctionne comme dans une
OEP classique, et une communication inter-tribus, où chaque
tribu échange avec les autres les informations de son
"shaman", i.e. la meilleure particule de la tribu.
Au départ, on commence avec une seule particule formant
une tribu unique. Au fur et à mesure du traitement et suivant
le comportement de la particule initiale, on va soit ajouter,
soit enlever, des particules à l’essaim, créant ainsi de
nouvelles tribus, destinées à explorer de nouvelles régions de
l’espace de recherche. Par exemple, si une tribu est
performante, on va lui enlever une de ses particules,
logiquement la plus mauvaise, étant donné que l’on considère
qu’elle ne peut rien apporter de plus aux performances
globales alors que, à l’opposé, si une tribu se comporte mal,
on va avoir tendance à lui ajouter une particule, pour élargir
son espace de recherche. Ces ajouts ou retraits ne se font pas,
bien sûr, à chaque itération, l’information apportée par ces
modifications devant se propager dans l’essaim.
La figure 2 nous montre un exemple de suppression de
particule avec la redistribution des liens d’information qui en
découle. P est la plus mauvaise particule de la tribu et M est
la meilleure.
Figure 2. Suppression de particule
La figure 3 montre un exemple de composition d’un essaim
lors de deux itérations successives pour la fonction Rastrigin
2D [5]. Sur la première image, on voit un essaim composé
d’une seule tribu qui n’arrive pas à trouver l’optimum
(1.9005,-1.5644). Pour accélérer le processus, on crée à
l’itération suivante des particules sur tout l’espace de
recherche, qui vont former une nouvelle tribu chargée
d’explorer des zones pas encore explorées par la première
tribu. Les particules peuvent être générées soit aléatoirement
dans tout l’espace de recherche, soit dans une hypersphère
centrée sur la meilleure informatrice de la meilleure particule
de la tribu génératrice, ou soit dans la plus grande zone
inoccupée de l’espace de recherche.
De même, les performances de chaque particule sont
étudiées pour définir quelle stratégie de déplacement va
utiliser la particule. Il est à noter que la performance d’une
particule n’est pas jugée sur la valeur de la fonction objectif,
mais sur l’évolution de la particule entre deux itérations:
détérioration de la fonction objectif, statu quo ou
amélioration. Dans notre cas, l’indice de performance est jugé
sur les deux dernières évolutions de la particule. Comme dans
le cas des tribus, on va avoir tendance à privilégier un
déplacement de grande envergure pour les mauvaises
particules, alors que le déplacement des bonnes particules
s’assimilera davantage à une recherche locale. Les stratégies
de déplacement utilisées sont:
- la méthode des pivots,
- la méthode des pivots bruitée,
- la méthode de recherche par gaussiennes
indépendantes.
Ces stratégies sont libres de tout paramètre et sont basées
sur des tirages aléatoires dans des hypersphères ayant pour
centre un des vecteurs pi ou g. Les coefficients de pondération
sont calculés à partir des valeurs de la fonction objectif en ces
points.
L’Algorithme 3, situé en fin de document, résume le
e-STA copyright © 2008 by see
Volume 5 (2008), N°1 pp 21-27