Vous êtes sur la page 1sur 59

MÉTHODES DE RÉSOLUTION EN OPTIMISATION COMBINATOIRE

Sommaire
1 Classification des méthodes de résolution

1.1 Méthodes exactes

1.2 Méthodes approchées

2 Notions d’heuristique

2.1 Définition d’une heuristique

2.2 Métaheuristique

2.3 Intensification et diversification

3 Paradigmes des méthodes approchées

Introduction
Face à un problème d’optimisation combinatoire donné, la question à laquelle on doit répondre
est la résolution du problème. Ce dernier possède généralement un nombre énorme de solutions
réalisables. La résolution la plus évidente est de lister toutes les combinaisons possibles afin de
trouver celles qui sont valides et meilleures. On appelle ce type d’algorithme : Algorithmes
Exhaustifs.

Ces algorithmes sont très gourmands en termes de complexité. Ils passent d’algorithmes
polynomiaux à non-polynomiaux avec l’augmentation de la dimension du problème à traiter.
Par exemple, si on veut résoudre le problème de voyageur de commerce, on se retrouve avec
n! combinaisons possibles. Alors chercher un chemin hamiltonien de 4 villes donne 4! = 24
combinaisons possibles, tandis que la résolution du même problème avec 10 villes nécessite
10! = 3, 628, 800 combinaisons possibles.

1 Classification des méthodes de résolution


Les méthodes de l’optimisation combinatoire peuvent être classées en deux grandes familles
de classes : les méthodes exactes et les méthodes approchées.

La figure 3.1 illustre la taxonomie des méthodes de résolution des problèmes d’optimisation.

1
Figure 3.1– Taxonomie des méthodes de résolution de problème d’optimisation

1.1 Méthodes exactes

Les méthodes exactes (appelées aussi complètes) produisent une solution optimale pour une
instance de problème d’optimisation donné. Elles se reposent généralement sur la recherche
arborescente et sur l’énumération partielle de l’espace de solutions. Elles sont utilisées pour
trouver au moins une solution optimale d’un problème. Les algorithmes exacts les plus connus
sont la méthode de séparation et évaluation, la programmation dynamique, et la programmation
linéaire.
L’inconvénient majeur de ces méthodes est l’explosion combinatoire : Le nombre de
combinaisons augmente avec l’augmentation de la dimension du problème. L’efficacité de ces
algorithmes n’est prometteuse que pour les instances de problèmes de petites tailles.

1.2 Méthodes approchées

Contrairement aux méthodes exactes, les méthodes approchées ne fournissent pas forcément
une solution optimale, mais seulement une bonne solution (de qualité raisonnable) dans un
temps raisonnable.

2 Notions d’heuristique

2.1 Définition d’une heuristique

Le mot heuristique, dérivé de la langue grecque, vient du verbe ‘heuriskein’ qui signifie
trouver. Une heuristique est un algorithme qui permet de trouver, dans un temps polynomial
une solution réalisable, tenant en compte d’une fonction objectif, pas nécessairement optimale
(approchée) ou exacte pour un problème d’optimisation difficile. Ce type de méthodes traduit
2
une stratégie (une manière de penser) en s’appuyant sur la connaissance du problème. Une
heuristique est spécifique au problème et ne peut pas être généralisée.

2.2 Métaheuristique

Le mot métaheuristique est composé de deux mots grecs : méta et heuristique. Le mot
méta est un suffixe signifiant au-delà c’est-à-dire de niveau supérieur. Les métaheuristiques
sont des méthodes généralement inspirées de la nature. Contrairement aux heuristiques, elles
s’appliquent à plusieurs problèmes de nature différentes. Pour cela on peut dire qu’elles sont
des heuristiques modernes, de plus haut niveau, dédiées particulièrement à la résolution des
problèmes d’optimisation. Leur but est d’atteindre un optimum global tout en échappant les
optima locaux. Les métaheuristiques regroupent des méthodes qui peuvent se diviser en deux
classes :
1. Métaheuristiques à solution unique :
Ces méthodes traitent une seule solution à la fois, afin de trouver la solution
optimale.
2. Métaheuristiques à population de solutions :
Ces méthodes utilisent une population de solutions à chaque itération jusqu’à
l’obtention de la solution globale.

2.3. Intensification et diversification


Les métaheuristiques se reposent sur la notion d’intensification et de diversification dans le
but de tomber sur des nouvelles solutions. Le principe d’intensification et de diversification
est un point critique pour les méthodes approchées afin d’éviter les optima locaux. Il consiste
à trouver un compromis entre les deux définitions :

1. Intensification :
L’intensification (exploitation) se concentre sur des régions trouvées à l’avance et
considérées comme prometteuses en commençant la recherche dans les voisinages de
leurs meilleures solutions. Une mémoire doit être utilisée pour implémenter cette
stratégie.

2. Diversification :
La diversification (exploration) guide la recherche vers de nouvelles régions dans
l’espace de recherche, dans le but de détecter de nouvelles meilleures solutions. Elle
peut utiliser l’historique de recherche ou simplement une recherche aléatoire.

3
Figure 3.2- (a) diversification (b) intensification

3 Paradigmes des méthodes approchées

Les méthodes approchées regroupent les heuristiques et les métaheuristiques (à solution


unique ou à population de solutions). Quatre paradigmes définissent quatre classes de
méthodes: la construction, la recherche locale, l’évolution et l’hybridation.

La Construction : Son principe est de construire une solution par une suite de choix
partiels et définitifs (sans retour arrière) jusqu’à ce que la solution complète soit obtenue.
La Recherche locale : Elle démarre par solution initiale complète et construit une suite de
solutions de meilleur coût. Le choix se fait dans un ensemble localement proche (dans un
voisinage).
L’évolution : La solution optimale est trouvée à partir d’une population de solutions. Ces
dernières évoluent par des opérateurs inspirés de la nature.
Hybridation : Les méthodes hybrides profitent des avantages de plusieurs méthodes
mélangeant entre les approches.

4
MÉTHODES CONSTRUCTIVES

Sommaire
1. Principe des heuristiques constructives
2. Méthodes gloutonnes
3. Méthodes gloutonne aléatoires
4. Heuristique de plus proche voisin

Introduction

Ce chapitre définit et présente les méthodes constructives. Ces méthodes intuitives et simples
à implémenter sont des heuristiques spécifiques qui ne peuvent s’appliquer que sur un nombre
de problèmes de spécificité commune.

1 Principe des heuristiques constructives

L’idée de base des méthodes constructives est de produire une solution, en partant d’une
combinaison vide, par l’ajout itératif des composants à la sous-solution existante (solution
partielle à une itération donnée). Les choix partiels sont définitifs. Les méthodes constructives
sont largement utilisées comme des auxiliaires dans d’autres méthodes. Elles sont introduites
généralement pour calculer des solutions initiales, ou à l’intérieur d’autres procédures.
L’algorithme 1 illustre le fonctionnement d’une méthode constructive.

Algorithme 1 : Algorithme général d’une méthode constructive

Result : S Solution complète


début
S←φ;
tant que (S n’est pas une solution complète) faire
Choisir un élément de solution e;
S←S+e;
fin
Fin

5
Ces heuristiques ne cherchent pas forcément une bonne solution, mais juste une solution de
qualité modérée dans un temps de calcul réduit. La qualité de la combinaison construite dépend
de l’heuristique choisie.

2 Méthodes gloutonnes

Les méthodes gloutonnes (greedy en anglais) sont les méthodes de construction les plus
connues. A partir d’une configuration initiale, elles sélectionnent le meilleur élément de la
solution à chaque itération en espérant que la solution finale soit optimale. Ces choix
(décisions) se font selon des heuristiques spécifiques.

Exemple : Nous avons un sac-à-dos de capacité maximale c = 10kg. On veut maximiser le


profit sachant qu’on dispose de 5 objets dont le poids et le profit sont présentés dans le tableau
4.1.

Table 4.1. Exemple d’un problème de sac-à-dos binaire


Objet wi pi
1 15 5
2 20 4
3 2 1
4 10 3
5 5 2

Une heuristique gloutonne qui peut résoudre ce problème serait d’ajouter en premier les objets
ayant le meilleur rapport valeur/poids. La solution globale sera alors : S = 2, 3, 4, 5. Si on
modélise le problème en binaire la solution sera : S = {0, 1, 1, 1, 1}.

3 Méthodes gloutonne aléatoires

Les méthodes gloutonnes sont des algorithmes très rapides. Cependant la résolution d’un
problème d’optimisation combinatoire donné par ce type de méthode retourne toujours la
même solution. Cette solution peut passer de côté par la solution optimale si l’heuristique
choisie n’est pas adaptée.
Pour diversifier la recherche, on ajoute un peu d’aléatoire. Un algorithme glouton aléatoire ne
choisit pas le meilleur élément mais un élément e parmi les meilleurs candidats. L’exécution
de l’algorithme, plusieurs fois, peut retourner une meilleure solution.
Exemple : Pour un problème de voyageur de commerce, on applique un algorithme glouton
aléatoire de façon à choisir une ville dans un rayon spécifique (disant un rayon de 10 km).

6
4 Heuristique de plus proche voisin

Cette heuristique gloutonne est spécifique aux problèmes de cheminements (voyageur de


commerce, chemin le plus court, arbre minimal, etc.). Elle consiste à choisir un sommet de
départ et visiter son voisin le plus proche, qui n’a pas encore été visité, jusqu’à l’obtention
d’une solution complète. L’algorithme 2 résume le fonctionnement de l’heuristique du plus
proche voisin.

La solution obtenue par cette heuristique ne garantit pas un résultat optimal. Comme toute
heuristique constructive, on pourrait améliorer la solution en exécutant n fois l’algorithme du
plus proche voisin en changeant à chaque fois le point de départ.

Algorithme 2 : Algorithme de l’heuristique du plus proche voisin

Result : S Solution complète


Données : e, v0, v : sommet
début
S←φ;
Initialisation du premier sommet v0 ;
v ← v0 ;
tant que (S n’est pas une solution complète) faire
Choisir le sommet e le plus proche de v ;
si (e == v0) et (le chemin est incomplet) alors
Éliminer ce voisin et chercher un autre ;
sinon
On élimine le voisinage de e ;
On élimine e du voisinage des autres sommets ;
S←S+e;
v←e;
fin
fin
Relier le dernier sommet v au premier sommet v0 ;
fin

7
MÉTHODES DE RECHERCHE LOCALE
Sommaire

1 Principe de la Recherche Locale


1.1 Notion de voisinage
1.2 Critère d’arrêt
1.3 Algorithme
1.4 Transformation élémentaire
1.5 Exemple
1.6 Inconvénients
1.7 Méthode de l’escalade
2 Recuit Simulé (Simulated Annealing)
3 Recherche Taboue

Introduction
Les méthodes de recherche locale sont des métaheuristiques à base de solution unique. La
recherche se fait localement sur un ensemble de voisins de la solution actuelle.

Ce chapitre explique le principe de la recherche locale ainsi que la présentation de deux


méthodes : La méthode de Recuit Simulé, et la méthode de recherche taboue.

1 Principe de la Recherche Locale


Vu l’explosion de l’espace de recherche d’un problème d’optimisation combinatoire,
l’énumération peut être contournée par le fait de relier certaines solutions entre elles. Ainsi, à
partir d’une solution, on peut en trouver une solution voisine.

1.1. Notion de voisinage

Un algorithme de recherche locale part d'une solution candidate et la déplace de


façon itérative vers une solution voisine. Cette méthode est applicable seulement si une notion
de voisinage est définie sur l'espace de recherche. Par exemple, le voisinage d'un arbre
recouvrant est un autre arbre recouvrant qui diffère seulement par un nœud. Pour le problème
SAT, les voisins d'une bonne affectation sont habituellement les affectations qui diffèrent
seulement par la valeur d'une variable. Le même problème peut avoir plusieurs définitions

8
différentes de voisinage ; l'optimisation locale avec des voisinages qui limitent les changements
à k composantes de la solution est souvent appelée k-optimale.

Habituellement, chaque solution candidate a plus d'une solution voisine ; le choix de celle vers
laquelle se déplacer est pris en utilisant seulement l'information sur les solutions voisines de la
solution courante, d'où le terme de recherche locale. Quand le choix de la solution voisine est
fait uniquement en prenant celle qui maximise le critère, la métaheuristique prend le nom
de hill climbing (escalade de colline).

1.2. Critère d’arrêt

Le critère d'arrêt de la recherche locale peut être une limite en durée. Une autre possibilité est
de s'arrêter quand la meilleure solution trouvée par l'algorithme n'a pas été améliorée depuis un
nombre donné d'itérations. Les algorithmes de recherche locale sont des algorithmes sous-
optimaux puisque la recherche peut s'arrêter alors que la meilleure solution trouvée par
l'algorithme n'est pas la meilleure de l'espace de recherche. Cette situation peut se produire
même si l'arrêt est provoqué par l'impossibilité d'améliorer la solution courante car la solution
optimale peut se trouver loin du voisinage des solutions parcourues par l'algorithme.

1.3. Algorithme

Le principe des méthodes de recherche locale, appelées aussi méthodes de recherche de


voisinage, se pose sur la construction d’un voisinage de solutions. Autrement dit, à partir d’une
solution de départ S0 on engendre une suite finie de solution Sn déterminées comme plus
proches. Généralement, la taille du voisinage est réduite. Ce principe est résumé dans
l’algorithme 3.

Algorithme 3 : Algorithme général d’une méthode de recherche locale


Resultat : S : Solution
Données :
S0 : Solution initiale;
S : Solution optimale;
S’ : Solution voisine;
fit : réel;
début
Choisir S0 une solution initiale;
S ← S0;
fit ← f(S);
tant que (∃S’ dans le voisinage de S) et (acceptable(S’)) faire
S ← S’;
fit ← f(S);

9
fin
fin
1.4. Transformation élémentaire

La construction d’un voisinage est définie par des transformations élémentaires. Ces transformations
sont des opérations qui permettent de changer une solution S en une autre solution voisine S’. Le
voisinage V (S) est l’ensemble de solutions localement proche, que l’on peut obtenir en appliquant à S
une transformation locale élémentaire.

On cite quelques transformations élémentaires :


— Complément : Pour une solution codée en binaire, la transformation élémentaire est par
exemple : remplacer un bit quelconque par son bit complémentaire :
000111 → 001111

— Échange (Swap) : Pour une solution codée en caractères (ou en binaires), permuter 2
caractères données :
ABCDE → AECDB
— Insertion Décalage : Pour une chaîne de caractères (ou binaires), choisir 2 positions i et j,
mettre le caractère de la position j en position i et décaler les caractères à droite :
i=2,j=5 : ABCDEFG −→ AFBCDEG
1.5. Exemple

On prend comme exemple le problème du voyageur de commerce, qui consiste, étant donnée
une liste de villes et les distances entre celles-ci, à trouver un circuit qui passe par toutes les
villes, et qui est le plus court possible. Autrement dit, l'ensemble des solutions admissibles est
l’ensemble des circuits qui passent par toutes les villes, et l'objectif est la minimisation de la
longueur. On peut considérer que l'on se place sur un graphe non orienté dont les sommets sont
les villes, et les arêtes sont des routes entre les villes.

Un algorithme de recherche locale simple, appelé 2-opt, est le suivant : partir d'un circuit
quelconque, et itérer la recherche suivante. Prendre deux arêtes (A,B) et (C,D), et les remplacer
par les arêtes par (A,D) et (B,C). Si ce nouveau circuit est plus court le conserver et continuer,
sinon reprendre le circuit précédent et essayer une autre paire d'arêtes.

On peut arrêter l'algorithme lorsque toutes les paires d'arêtes ont été testées. La solution
obtenue n'est pas garantie d'être optimale, mais peut tout de même être utile et de qualité.

10
1.6. Inconvénients

Le principal problème d’une heuristique de recherche locale est qu’il est possible qu’une
fonction possède plusieurs minimaux locaux distincts du minimum global, tel qu’illustré
à la figure suivante. Dans ce cas, il est donc possible que l’algorithme d’exploration locale
reste pris dans un tel minimum local.

Une des façons d’éviter ce problème peut alors être de répéter le processus de recherche
locale, et ce avec des valeurs de départ différentes en ne conservant que la meilleure
solution trouvée. Cette dernière heuristique illustre les deux mécanismes présents dans la
plupart des heuristiques et métaheuristiques :
- Un mécanisme visant à l’intensification des caractéristiques des bonnes solutions. On
explore le voisinage local pour tenter de trouver une configuration qui améliore la
fonction à optimiser.
- Un mécanisme visant à la diversification des configurations explorées. Pour éviter de
rester pris dans un minimum local, on tente donc de visiter différentes parties de
l’espace des solutions.

1.7. Methode de l’escalade (Hill-Climbing)

• Entrée
– État initial (tiré de l’environnement ou aléatoire).
– Fonction à optimiser :
• notée VALUE dans l’algorithme;
• parfois aussi notée h ou h(n).
• Méthode
– Le nœud courant est initialisé à l’état initial.
– Itérativement, le nœud courant est comparé à ses successeurs (voisins) immédiats.
• Le meilleur successeur immédiat (celui qui a la plus grande valeur VALUE que le nœud
courant), devient le nœud courant.
• Si un tel voisin n’existe pas, on arrête et on retourne le nœud courant comme solution.

11
Algorithme 4. Algorithme de l’escalade (Hill Climbing)

2 Recuit Simulé (Simulated Annealing)

Le recuit simulé est une méthode de recherche locale qui simule le procédé de recuit en
métallurgie. Ce processus alterne des cycles de refroidissement lents et de réchauffage
(recuit) qui ont pour effet de minimiser l’énergie du matériau.
2.1.Principe naturel
On commence par chauffer le métal jusqu'à une certaine température où il devient liquide
(les atomes peuvent donc circuler librement). Après avoir atteint ce stade, on abaisse la
température très lentement de sorte à obtenir un solide (Olivier, 2001). Si cette baisse de

12
température est brusque on obtient alors du verre ; si au contraire cette baisse de
température est très lente (laissant aux atomes le temps d'atteindre l'équilibre statistique),
nous obtiendrons des structures de plus en plus régulières, jusqu’à atteindre un état
d’énergie minimale correspondant à la structure parfaite d’un Crystal, on dit alors que le
système est « gelé ». Au cas où cet abaissement de température ne se ferait pas assez
lentement, il pourrait apparaitre des défauts. Il faudrait alors les corriger en réchauffant de
nouveau légèrement la matière de façon à permettre aux atomes de retrouver la liberté de
mouvement, leur facilitant ainsi un éventuel réarrangement conduisant à une structure plus
stable. (Olivier, 2001)
2.2.Principe de la métaheuristique

L’idée principale du recuit simulé tel qu’il a été proposé par Metropolis en 1953 est de
simuler le comportement de la matière dans le processus du recuit très largement utilisé
dans la métallurgie. Le but est d’atteindre un état d’équilibre thermodynamique, cet état
d’équilibre (où l’énergie est minimale) représente - dans la méthode du recuit simulé – la
solution optimale d’un problème ; L’énergie du système sera calculée par une fonction coût
(ou fonction objectif) spécifique à chaque problème (Kendall). La méthode va donc essayer
de trouver la solution optimale en optimisant une fonction objectif, pour cela, un paramètre
fictif de température a été ajouté par Kirkpatrick, Gelatt et Vecchi. En gros le principe
consiste à générer successivement des configurations à partir d'une solution initiale S0 et
d'une température initiale T0 qui diminuera tout au long du processus jusqu'à atteindre une
température finale ou un état d’équilibre (optimum global).

2.3.Algorithme
La méthode du recuit simulé, introduite par Kirkpatrick et al. (1983), exploite le voisinage
et permet la redirection vers une solution voisine de moindre qualité avec une probabilité
non nulle. Autrement dit, on n’améliore pas toujours la solution. Cette opération permet
d’échapper les optima locaux.
L’algorithme 5 présente le fonctionnement de la méthode Recuit Simulé. Le paramètre T
représente la température qui diminue tout en long de la résolution. Une probabilité p est
liée à la température et aux valeurs de la fonction de fitness de la solution actuelle et celle
de la solution voisine. Cette probabilité définit l’acceptation de la nouvelle solution.

Algorithme 5 : Algorithme Recuit Simulé


Result : S : Solution
Données :

13
S0, S et S’ : Solution initiale, optimale et voisine;
Voisin : Liste de solutions;
T0, T, fit : réels;
Début
Initialiser S0 et T0;
S ← S0;
T ← T0;
fit ← f(S);
répéter
Choisir aléatoirement S’ ∈ Voisin(S);
∆ = f(S’) − fit;
si ∆ ≤ 0 alors
S ← S’ ;
fit ← f(S);
sinon
Prendre p nombre aléatoire de [0, 1];
si p < e−∆/T alors
S ← S’ ;
fit ← f(S);
fin
fin
Mise à jour de la température T;
jusqu’à critère d’arrêt;
fin

Discussion
— Si T est très élevée alors p est élevée (−∆/T  0 , e0 = 1). On a de forte chance d’accepter
la nouvelle solution (une dégradation de qualité).

−∞
— Si T est très petite alors p est très petite (−∆/T  −∞ , e = 0). On a de forte chance de
laisser la solution actuelle.

— Si ∆ est un énorme alors la probabilité est petite.

— Plus la température T est petite plus la probabilité p est petite.

Dans la méthode du recuit simulé, les mécanismes d’intensification et de diversification sont


contrôlés par la température. Une température élevée permet la diversification. Comme la
température décroît, la recherche tend à s’intensifier vers la fin de l’algorithme.

Dans un premier temps, T étant généralement choisi très grand, beaucoup de solutions - même
celles dégradant la valeur de f - sont acceptées, et l'algorithme équivaut à une visite aléatoire
de l'espace des solutions. Mais à mesure que la température baisse, la plupart des solutions
augmentant l'énergie sont refusés, et l'algorithme se ramène à une amélioration itérative

14
classique. A température intermédiaire, l'algorithme autorise de temps en temps des
transformations qui dégradent la fonction objectif. Il laisse ainsi une chance au système de
s'extraire d'un minima local. (Autin, 2006)

2.4.Exemple d’application. Le problème du voyageur de commerce

Le recuit simulé peut être appliqué au problème du voyageur de commerce. Le but est alors de
trouver le circuit hamiltonien de coût minimal dans un graphe. L’énergie représentera la
distance totale à parcourir, et un état du système représentera le chemin entre les villes.
L’algorithme va donc tenter de minimiser la longueur totale du chemin, en modifiant l’ordre
des villes à parcourir. Soit le graphe suivant représentant un ensemble de villes :

Le résultat obtenu en échangeant les sommets 2 et 3, la distance totale a augmenté. Pour une
heuristique classique cette est solution est rejetée car la distance doit être minimisée, mais le
recuit simulé pourra l’accepter si la température est encore élevée, et cette solution qui est «
mauvaise » par rapport à la première va lui permettre de trouver une solution meilleure :

15
Le graphique suivant résume les résultats trouvés :

En résumé : Le recuit simulé, en acceptant une mauvaise solution, a réussi à échapper au


minima local et à obtenir une solution meilleure.

2.5. Domaines d’applications


Comme pour toute méta-heuristique, la méthode du recuit simulé peut être appliquée dans de
nombreux problèmes d’optimisation, les chercheurs l’ont utilisée essentiellement dans :
 La conception des circuits intégrés (Kirkpatrick, et al., 1988)(problème de placement
et de répartition) ;
 Le routage des paquets dans les réseaux ;
 La segmentation d'images ;
 Le problème du voyageur de commerce ;
 Et, le problème du sac à dos.
2.6. Avantages et Inconvénients
2.6.1. Avantages
 Facile à implémenter ;
 Donne généralement de bonnes solutions par rapport aux algorithmes de recherche
classiques ;
 Peut être utilisé dans la plupart des problèmes d’optimisation ;

16
 Il converge vers un optimum global (lorsque le nombre d’itérations tend vers l’infini
(Autin, 2006)).
Cela fait de lui une option attrayante pour les problèmes d'optimisation difficiles.
2.6.2. Inconvénients

Le principal inconvénient du recuit simulé est qu'une fois l'algorithme piégé à basse
température dans un minimum local, il lui est impossible de s'en sortir. Plusieurs solutions
ont été proposées pour tenter de résoudre ce problème, par exemple en acceptant une
brusque remontée de la température de temps en temps, pour relancer la recherche sur
d’autres régions plus éloignées. (Autin, 2006)

On peut citer quelques autres inconvénients comme :

 La difficulté de déterminer la température initiale :

 Si elle est trop basse, la qualité de recherche sera mauvaise.


 Si elle est trop haute, le temps de calcul sera élevé.

 L'impossibilité de savoir si la solution trouvée est optimale ;

 Dégradation des performances pour les problèmes où il y a peu de minimas locaux


(comparé avec les heuristiques classiques comme la descente du gradient par exemple).

3 Recherche Taboue

La recherche taboue a été introduite par Glover (1989). L’exploitation du voisinage permet de
se déplacer de la solution courante vers son meilleur voisin. Ce dernier n’est pas forcément
meilleur que la solution courante. Cette méthode permet un déplacement d’une solution S vers
la meilleure solution S’ appartenant à son voisinage V(S). L’algorithme 6 résume la procédure
de la Recherche Taboue. Le déplacement interdit, d’où vient le mot tabou, consiste au retour
vers une solution récemment visitée. Pour cela, les solutions visitées sont temporairement
interdites et stockées dans une liste taboue.

Une fois la liste taboue est remplie, la solution la plus ancienne est retirée (selon le principe
d’une file d’attente). La taille de cette liste est un paramètre crucial qui affecte la résolution du
problème. Elle peut être statique ou dynamique.

Discussion

— Si la liste taboue est courte :

17
— Il y a moins d’interdictions.

— On risque de n’exploiter que peu de distance (intensification).

— Le risque de tourner en cycle, est plus grand.

— Si la liste taboue est longue :

— Il y a d’avantage d’interdictions.

— On parcourt de plus grandes distances (diversification).

— Le risque de cycles est réduit.

— Le comportement de l’algorithme dépend de :

— La longueur de la liste taboue.

— La taille du voisinage.

— Plus le voisinage est petit, moins la liste taboue a besoin d’être grande.

Dans la méthode de Recherche Taboue, les mécanismes d’intensification et de diversification


sont contrôlés par la taille de la liste taboue : On fait de l’intensification, si on diminue la taille
et on favorise la diversification dans le cas contraire.

Algorithme 6 : Algorithme Recherche taboue

Result : S : Solution
Données :
S0, S et S’ : Solution initiale, optimale et voisine;
Voisin, ListeTaboue : Liste de solutions;
T0, T, fit : réels;
début
Initialiser S0, Voisin et ListeTaboue;
S ← S0;
fit ← f(S);
répéter
Choisir la meilleure S’ ∈ Voisin(S) tel que S’ ∈ ListeTaboue;
si S’ si elle est meilleure que S alors
S ← S’;
fin
Enfiler (ListeTaboue, S’);
si ListeT aboue est pleine alors
Défiler (ListeTaboue);
fin
jusqu’à critère d’arrêt;
Fin

18
Exemple récapitulatif
Soit le problème suivant :

1. Appliquer l’algorithme de descente par inversions de sous-tours pour minimiser la


distance totale. Partir d’une solution initiale : 1-2-3-4-5-6-7-1 (69). Arrêter s’il n’y a
aucune inversion de sous-tours qui permette d’améliorer la fonction objectif.
2. Appliquer la méthode de recherche taboue en identifiant le voisinage par inversion de
sous-tours, ce qui implique l’ajout de deux liens et l’élimination de deux liens. Soit la
longueur de la liste Taboue=4. Arrêter l’algorithme après trois itérations consécutives
sans amélioration.
3. Appliquer la méthode de recuit simulé avec T=0.2.Zc. Diviser la température par 2
toutes les cinq itérations. Arrêter après 25 itérations.

19
MÉTHODES D’EVOLUTION
Sommaire

1 Algorithmes génétiques
1.1. Codage/Décodage de la population
1.2. Population initiale
1.3. Adaptation
1.4. Sélection
1.5. Croisement
1.6. Mutation
1.7. Mise à jour de la population
1.8. Intensification/Diversification
1.9. Algorithme
1.10. Convergence et mesure de performance pour un AG
2 Optimisation par Colonies des fourmis
3 Essaim de Particules (PSO)
2.1. Voisinage
2.2. Facteur d’inertie et Vitesse maximale
2.3. Les coefficients de confiance
2.4. Algorithme

Introduction
Les méthodes d’évolution sont généralement basées sur une population de solutions : On
commence par une population de solutions pour améliorer la solution globale.
Contrairement aux recherches locales, les méthodes à base de population de solutions
améliorent, au fur et à mesure des itérations, une population de solutions. Ces méthodes
commencent par une population initiale pour arriver ou s’approcher de la solution optimale du
problème.
Ces algorithmes sont très flexibles et ont la capacité de traiter des problèmes avec des fonctions
objectif de différentes propriétés, qu’elles soient continues, discrètes ou mixtes.

1. Algorithmes génétiques
20
Pour les espèces vivantes, la reproduction est conduite par une sélection naturelle. Cette
dernière est définie par Darwin (1866) comme étant l’adaptation de survie ; les individus les
mieux adaptés tendent à survivre et ont de plus grandes probabilités de se reproduire.
Les algorithmes génétiques simulent ce processus de l’évolution d’une population. La
population regroupe n solutions appelées individus. La reproduction de la population
sélectionnée se fait en utilisant deux opérations : le croisement et la mutation. Les nouvelles
générations sélectionnent, au fur et à mesure, les individus les mieux adaptés afin de trouver la
meilleure solution au problème.
Le code de l’algorithme correspondant représente les étapes essentielles pour un algorithme
génétique. Ainsi, pour mettre en œuvre l’algorithme génétique, on passe par le codage de
l’individu, l’évaluation et les opérateurs de reproduction (croisement et mutation).
Algorithme 6 : Algorithme génétique
Result : S : Meilleure Solution de la population
début
Initialiser la population de solution avec un ensemble de combinaisons ;
répéter
Sélectionner des combinaisons;
Créer de nouvelles combinaisons par croisement et mutation;
Mise à jour de la population;
jusqu’à critère d’arrêt;
Fin

1.1 Codage/Décodage de la population

Avant la reproduction de la population, il faut savoir que le codage des individus est une étape
très importante. Chaque individu de la population est codé par un chromosome. On retrouve
différentes techniques de codages. Le codage est un processus de représentation des gènes. Le
processus peut être effectué par utilisation des : bits, nombres, arbres, tableaux, listes ou tous
autres objets. La littérature définit deux types de codage : binaire et réel.

1.1.1 Codage binaire

21
Exemple

22
1.1.2 Codage réel

Le décodage est une transformation du chromosome en valeur du problème recherché (avant


chaque évaluation de l’individu).

1.2 Population initiale

23
1.3 Adaptation

1.4 Sélection

24
1.4.1. La méthode de la roulette

25
1.4.2. Sélection par « élitisme »

26
1.4.3. Sélection par tournoi

27
1.4.4. Sélection par rang

28
1.5 Croisement

La naissance d’un nouvel individu, nécessite la prise aléatoire d’une partie des gènes de chacun
des deux parents. Ce phénomène, issu de la nature est appelé croisement (crossover).
Deux individus (parents) produisent deux nouveaux individus (enfants). Les enfants héritent
des caractéristiques de leurs parents. Cela se fait par une découpe de chacun des individus
parents, dans les mêmes positions, en m morceaux. En échangeant les morceaux on obtient les
nouveaux individus. Le croisement est une opération qui ne touche pas forcément toute la
population. La littérature définit plusieurs opérateurs de croisement. Ils différent selon le type
de codage adapté et la nature du problème traité.
1.5.1. Croisement binaire

29
30
1.5.2. Croisement réel
Le codage réel requiert des opérateurs génétiques spécifiques pour la manipulation des
chromosomes. Il est de plusieurs types :
L’opérateur de Croisement PMX (Partially Mapped Crossover)
PMX est un opérateur de croisement à deux points de coupure qui définit un segment de même
longueur dans chacun des parents P1 et P2. Les segments sont indiqués avec une trame foncée
dans la partie (a) de la figure Fig. 12. Ces segments sont copiés vers les enfants E1 et E2. E1 a
hérité du segment de P2 et E2 de P1, comme le montre la partie (b) de la figure.
A partir de l’un de ces segments, on établit à chaque gène une liste de correspondance. Cette
liste va servir à placer les gènes redondants et elle est formée de la manière suivante : pour
chaque position du segment on note x le gène qui s'y trouve et y celui de l'autre enfant dans la

31
même position. Tant que y est retrouvé ailleurs dans le segment de départ, on note y' son
correspondant dans l'autre enfant et on remplace y par y'. Par exemple, le gène correspondant
à "1" de El est "6" mais ce gène existe aussi dans El et son correspondant est "3". Ainsi dans la
liste de correspondance, on note que "1" a pour correspondant "3". La liste complètement
formée se trouve à la marge de la partie (b) du schéma.
On procède ensuite au placement des gènes hors segment en les copiant des parents respectifs.
Par exemple, copier "l" de P1 dans E1 provoque un conflit puisque ce gène existe déjà. On
utilise alors son correspondant dans la liste qui est "3". En procédant de manière itérative, on
arrive à former les enfants E1 et E2 illustrés dans la partie (c) de la figure.

L’opérateur de Croisement CX (Cycle Crossover)


CX est un opérateur qui satisfait la condition suivante : chaque gène d'un enfant provient de
l'un des parents à la même position. Les enfants sont donc formés en copiant un gène d'un
parent et en éliminant l'autre à la même position puisqu'il va appartenir au deuxième enfant.
Une fois que les positions occupées sont copiées par élimination, on a complété un cycle. Les
places restantes des deux enfants sont complétées par les parents opposés.
Dans l’exemple présenté dans la figure Fig. 13 partie (a), la première position de E1 est
attribuée à "1" provenant de P1. Le gène de P2 situé à la même position est "4", il est recherché
dans P1 et retrouvé à la quatrième position. Le gène "4" est copié dans E1 et son correspondant
"8" est recherché dans P1 et retrouvé à la huitième position. "8" est copié dans El à cette même
position et son correspondant "3" est recherché dans Pl et retrouvé à la troisième position. "3"
est copié dans El et son correspondant "2" est recherché dans Pl et retrouvé à la deuxième
position. "2" est copié et son correspondant "1" est retrouvé dans Pl à la première position où

32
cette position est déjà occupée dans El donc le cycle est terminé. Le cycle de El est "1, 4, 8,
3,2" et de manière analogue, le cycle "4, 1, 2, 3,8" est formé pour E2.
En dernier lieu, il faut combler les positions vacantes à partir des parents opposés. Par exemple,
les gènes "7 ,6 ,9" de El proviennent de P2. On obtient ainsi les enfants illustrés dans la partie
(b) de la figure, Fig. 13.

L’opérateur de Croisement OX (Order Crossover)


OX est un opérateur avec deux points de coupure qui copie le segment formé par ces deux
points de coupure dans les deux enfants. Par la suite, il recopie, à partir du deuxième point de
coupure ce qui reste des gènes dans l'ordre du parent opposé en évitant les doublons.
La figure (Fig. 14) présente un exemple du déroulement du croisement avec l'opérateur OX.
Dans la partie (a), un segment est formé par les points de coupure dans les deux parents et ces
segments sont copiés tels quels dans les enfants El et E2 comme le montre la partie (b).
Enfin, on procède à la copie des gènes situés hors du segment copié. Pour cela, on se place à
partir du deuxième point de coupure et on choisit les gènes non redondants provenant du parent
opposé. Par exemple, dans la partie (c) de la Figure ?, on essaie de placer le gène "6" de P2
après le deuxième point de coupure dans El mais ce gène existe déjà à l'intérieur du segment.
Il est donc ignoré et on passe au suivant. Le gène "2" ne présente pas de conflit, il est donc
copié et ainsi de suite jusqu'à où on forme les deux enfants El et E2 tel qu'elle est illustrée dans
la partie (c) de la figure.

33
1.6 Mutation
L’opération de la mutation est une modification d’un seul gène pour passer d’une solution à
une autre. Cela permet à certains caractères d’apparaître ou de disparaître de façon aléatoire.
La mutation ne touche pas toute la population.

C'est un processus où un changement mineur de code génétique appliqué à un individu pour


introduire de la diversité et ainsi d'éviter de tomber dans des optimums locaux. Différentes
manières de mutation d’un chromosome sont aussi définies dans la littérature.

1.9.1. Mutation en codage binaire


Dans un algorithme génétique simple, la mutation en codage binaire est la modification
aléatoire occasionnelle (de faible probabilité) de la valeur d’un caractère de la chaîne.
1.9.2. Mutation en codage réel
Pour le codage réel, les opérateurs de mutation les plus utilisés sont les suivants :
Mutation par inversion
Deux positions sont sélectionnées au hasard et tous les gènes situés entre ces positions sont
inversés. La figure Fig. 15, montre un exemple de mutation par inversion. L'individu i avant
mutation est représenté dans la partie (a) avec le segment formé par les deux positions
sélectionnées. L'inversion est effectuée à l'étape (b) afin de produire l'individu i'.

34
Mutation par insertion
Deux positions sont sélectionnées au hasard et le gène appartenant à l'une est inséré à l'autre
position. Dans la Figure Fig. 16 partie (a), les gènes "3" et "6" de l'individu i sont sélectionnés.
La deuxième étape, illustrée par la partie (b), montre l'insertion de "6" avant "3" et le décalage
de tous les autres gènes.

Mutation par déplacement


Une séquence est sélectionnée au hasard et déplacée vers une position elle-même tirée au
hasard. Un exemple de mutation par déplacement est illustré à la figure Fig. 17. Dans la partie
(a), la séquence "3-4-5-6" est sélectionnée et déplacée à la première position pour former
l'individu i' représenté dans la partie (b).

Mutation par permutation


Deux positions sont sélectionnées au hasard et les gènes situés dans ces positions sont
permutés. Comme il est illustré à la Figure Fig. 18, les éléments "3" et "6" sont sélectionnés
dans i (partie (a)) et permutés dans i' (partie (b)).

1.7 Mise à jour de la population


La taille de la population doit être statique : Si on commence par n individus avant la
reproduction, il faut terminer la génération avec n individus. La mise à jour de la population

35
est une sélection par rang : une 2ème sélection où on ne garde que les meilleurs individus. Cette
sélection peut écraser partiellement ou totalement la population précédente.

1.8 Intensification/Diversification
On fait appel aux mécanismes d’intensification et de diversification pour un algorithme
génétique au cours de la reproduction. On intensifie la recherche pendant le croisement et on
diversifie par la mutation.

1.9. Algorithme

1.10. Convergence et mesure de performance d’un AG

Le critère de convergence peut être de nature diverse. Les paramètres qui conditionnent la
convergence d’un algorithme génétique sont :

 La taille de la population d’individus

 Le nombre maximal de génération

 La probabilité de croisement ;

 La probabilité de mutation.
Les valeurs de tels paramètres dépendent fortement de la problématique étudiée. Ainsi il
n’existe pas de paramètres qui soient adaptés à la résolution de tous les problèmes qui peuvent
être posés à un algorithme génétique. Cependant certaines valeurs sont souvent utilisées
(définies dans la littérature) et peuvent être de bons points de départ pour démarrer une
recherche de solutions à l’aide d’un AG.

 La probabilité de croisement est choisie dans l’intervalle [0.5, 0.9] ;

 La probabilité de mutation est choisie dans l’intervalle [0.05, 0.1].

36
Exercice 1.
Soit le problème de voyageur de commerce décrit comme suit :

1 2 3 4 5
1 7 6 8 3
2 7 2 4 3
3 6 2 5 6
4 8 4 5 4
5 3 3 6 4

1. Appliquer une méthode constructive 6 fois de suite afin d’obtenir 6 solutions


différentes. Laquelle vous choisissez ?
2. Soit P la population initiale composée des 6 solutions précédentes. Evaluer-les.
Proposer une fonction de fitness adaptée à :
- la sélection par rang,
- la sélection par roulette.
3. Appliquer la sélection par rang, puis proposer un opérateur de croisement permettant
d’avoir deux nouvelles solutions E1 et E2. Définir P1.
4. Appliquer une mutation par insertion au niveau du 4ème gène sur E1 et E2.
5. Réitérer le processus 2 fois et donner la meilleure solution trouvée.
Exercice 2.
Dans cet exercice on s’intéresse à l’implémentation de l’opérateur de croisement utilisé
dans les algorithmes génétiques (AG). Le codage utilisé est le codage binaire.
1. Ecrire une fonction One-Point Crossover qui permet de croiser entre deux vecteurs
parents pour produire deux vecteurs enfants. La taille des vecteurs est l.
2. Ecrire une fonction Two-Point Crossover qui permet de croiser entre deux
vecteurs parents pour produire deux vecteurs enfants. La taille des vecteurs est l.
Le croisement uniforme Uniform Crossover est une autre technique qui permet de traiter
le croisement avec appel au caractère aléatoire au niveau de chaque bit et non pas aux
points des coupures.
3. Ecrire une fonction Uniform Crossover qui permet de croiser entre deux vecteurs
parents pour produire deux vecteurs enfants.
4. Proposer un opérateur de croisement entre K vecteurs qui permet de produire K
enfants.

Exercice 3.
1. Ecrire un algorithme de sélection à base de la méthode de tournoi.
2. Ecrire un algorithme de sélection à base de la méthode de l’élitisme.

37
Exercice 4.

Soit à minimiser la fonction f(x)=x2-1, à l’aide d’un algorithme génétique, avec x  0.0,
10.0],

- Quelle est la taille nécessaire pour représenter un individu en binaire ?

- Donner la représentation binaire des individus ayant pour valeur 0.5, 1.2, 2.2, 6.5, 7.6,
9.9.
- Donner l’évaluation puis l’adaptation de ces individus.

1. Ecrire l’algorithme qui implémente la méthode de sélection « Roue de loterie », puis dérouler
cet algorithme sur les individus cités dans la première question.

2. Quelle est la complexité de votre algorithme de sélection ?

Exercice 5.

On désire calculer le couple d’entiers (a,b) de [-30,+30]2 pour lequel la fonction f(a,b) = 2a-b2
est maximale par un algorithme génétique en utilisant une population de 3 individus.

1) Supposons qu’à l’itération i, la population contient les individus : (1,0) ; (5,1) ; (2,3).
Calculer les probabilités de sélection de chacun de ces individus lorsqu’on utilise :

a) une sélection par roulette ;

b) une sélection par rang.

2) Quel est le nombre de bits nécessaires pour coder une solution en binaire. Justifier.

3) Considérons un opérateur de croisement en un seul point de deux individus (a,b) et (c,d)


codés en binaire.

a) Appliquer cet opérateur aux individus (5,1) et (2,3) ;

b) Ecrire l’algorithme correspondant en se servant des fonctions suivantes :

• Rand() : retourne un float compris entre 0 et 1 ;

• Int(r) : convertit le float r en entier.

• Bin(a) : retourne un tableau binaire de 8 bits représentant l’entier a en binaire ;

• Dec(x) : retourne l’entier représentant la chaine binaire x en décimal.

38
2. Optimisation par colonies des fourmis
Dans ces dernières années, l’intelligence en essaims avait gagné une grande popularité.
L’intelligence en essaims est souvent définie comme (Bonabeau et al., 1999) :

Toute tentative de concevoir des algorithmes ou des dispositifs de résolution des problèmes,
distribuées, inspirés des comportements collectifs des insectes sociaux ou d’autres sociétés
animales.

L’approche est motivée par le fait que la richesse en comportements dans les insectes
sociaux, émerge, non pas des entités prises séparément, mais à travers les interactions entre
elles. Il a été proposé que même avec des sociétés plus complexes, les individus sont moins
compliqués et plus simples (Delgado et al. 1997).

Kennedy et autres dans leur livre « Swarm Intelligence » (Kennedy et al., 2001), avaient
remis en cause cette dernière définition, en se basant sur une définition plus ancienne,
donnée pour décrire les systèmes de simulation des essaims : « Nous utilisons le terme
“Essaims” dans un sens général pour référencer toute structure de collection d’agents en
interaction. L’exemple classique d’essaims est l’essaim des abeilles, mais la métaphore
d’essaim peut être élargie aux autres systèmes avec une architecture similaire. Une colonie
de fourmis peut être vue comme un essaim dans lequel ces entités et ces agents sont des
fourmis, un essaim d’oiseaux est un essaim et pour lequel ces agents sont des oiseaux, …».

Quatre principes gouvernant l’intelligence en essaims :

Feedback positif : Permet de renforcer les meilleurs choix dans le système.

Feedback négatif : Permet l’ignorance et la suppression des mauvais choix dans le


système.

Aspect aléatoire : Permet la bonne exploration de l’espace de solution, d’une manière


indépendante de la qualité, ce qui donne de la créativité.

Interaction multiple : Principe de base permettant la construction des meilleures


solutions et choix.

Les essaims de fourmis par exemple offrent une grande diversité de comportements et de
morphologies. L’étude précise de leur comportement (l’éthologie) est souvent limitée aux
espèces les moins populeuses pour des raisons pratiques et évidentes d’étude en laboratoire.

39
Cette diversité exubérante est une mine d’inspiration fascinante pour les systèmes
informatiques. C’est ainsi que les capacités des fourmis en matière de coopération, de
communication, de compétition et d’apprentissage, peuvent être mises à profit pour la
conception de robots ou d’algorithmes de résolution de problèmes, qui constitue l’objet de
ce chapitre.

2.1. Intelligence Collectives des Fourmis


Les fourmis offrent une grande diversité de comportements et de morphologies, l’étude
précise de leurs comportements est souvent limitée aux espèces les moins populeuses pour
des raisons pratiques.
Cette diversité est une mine d’inspiration fascinante pour les systèmes informatiques, c’est
ainsi que les capacités des fourmis en matière de coopération, de communication, de
compétition et d’apprentissage peuvent être mise à profit pour la conception des algorithmes
de résolution des problèmes. Les principales caractéristiques des fourmis que l’on pourra
retrouver dans les systèmes informatiques sont :
2.1.1. Communication
Les fourmis ont développé des mécanismes de communication très élaborés, il a été défini
plusieurs types de réponse mettant en œuvre une forme de communication :
 L’alarme.
 L’attraction simple.
 Le recrutement.
 L’échange d’aliments solides.
 Le marquage de territoire et du nid.

La communication chimique est la plus présente chez les fourmis. Les phéromones, sont des
mélanges hydrocarbures, sont à la base de la communication de nombreuses espèces.

Les ouvrières sont capables de déposer des traces chimiques sur le trajet qu’elles empruntent
pour ramener de la nourriture. Ils sont capables aussi de déclencher des alarmes quand le nid
est attaqué et ainsi mobiliser un grand nombre d’individus pour défendre la fourmilière.

La communication entre les individus peut se faire directement ou indirectement, l’utilisation


des phéromones est majoritairement considérée comme une forme indirecte puisque l’échange
d’information se fait grâce au support du sol, ce principe est appelé principe de la stigmergie.

2.2.2. Principe de la Stigmergie

40
Un principe fondamental des comportements émergents à travers des interactions locales est
la stigmergie. Le biologiste Grassé est le premier qui fait introduire ce concept dans les années
cinquante (Grassè, 1959), devenue maintenant une voie de recherche et de conception dans
les systèmes d’agents artificiels. Grassé fut découvrir le principe en étudiant les
comportements des insectes sociaux. Le nom stigmergie dérivé du mot Grec « Stigma » veut
dire « Signe » et le mot « Ergon » veut dire « Travail », indiquant que les activités des
individus sont influencées par des signes externes, eux-mêmes générés par les activités des
individus. Ainsi, des tâches simples doivent être coordonnées par le moyen de la
communication indirecte et émanant à l’émergence de phénomènes.

Deux formes de la stigmergie ont été identifiées. Une stigmergie Sematectonique, entraînant
un changement physique dans les caractéristiques de l’environnement. La construction du nid
chez les fourmis est un exemple de la stigmergie sema-tectonique. Une fourmi observe une
structure en développement et c’est à son tour d’y participer à la construction. La deuxième
forme de la stigmergie est basée sur la trace. Ici les marques sont des traces, déposées par les
fourmis sur l’environnement, émanant à une forme de contribution indirecte à la tâche en
question et réalisant une influence sur le comportement désiré.

La stigmergie n’explique pas les mécanismes de coordination en détail, mais pour des
problèmes inverses pour concevoir des systèmes accomplissant des tâches globales, la
stigmergie fournit le concept général permettant la coordination entre les individus et le
comportement global au niveau de la colonie.

Les avantages de l’utilisation de l’approche par stigmergie sont :

 L’utilisation des individus simples.

 Réduction de la communication entre individus.

 Une approche incrémentale dans la construction des meilleures solutions. Ce qui


montre une méthode d’apprentissage incrémentale pour la résolution des problèmes.

 La flexibilité et la tolérance aux pannes.


Les fourmis sociales exhibent les deux formes de la stigmergie. La stigmergie sema-
tectonique est observée dans la construction du nid.

La stigmergie à base de la trace de la phéromone est beaucoup plus observée dans la recherche
de nourriture, avec l’émergence du chemin minimal entre la source de nourriture et le nid
(Goss et al., 1989). Il a été démontré que les fourmis n’utilisent aucune information visuelle

41
dans leurs activités, et sans aucun contrôle central indiquant aux fourmis le chemin à
employer (Hölldobler et al., 1990).

2.2.2.1 Phéromones
La phéromone est une substance chimique qui joue un rôle très important dans la réalisation
des tâches définies. Il permet de refléter une caractéristique des systèmes complexes. La
présence de la phéromone dans une piste joue le rôle d’un moyen permettant l’attraction des
fourmis à la piste renforcée.

La phéromone est soumise à l’évaporation, due aux contraintes d’environnement. Le rôle


inverse est joué à travers le processus de propagation et de sécrétion de la phéromone.

L’évaporation permet de réduire les amplifications et de créer des points de fluctuations, pour
lesquels des nouvelles situations prometteuses peuvent être visitées. Ce mécanisme conduit à
la découverte des nouvelles régions riches en nourriture.

2.2.2.2 Propagation
La propagation de la phéromone est un processus qui permet de laisser passer une quantité de
la phéromone d’un emplacement à un autre emplacement voisin. Si le taux d’évaporation est
de ½ par exemple, la moitié de la quantité de la phéromone de l’emplacement actuel est
propagée vers les emplacements voisins.

2.2.2.3 Evaporation
L’évaporation est un processus, qui permet de réduire la quantité de la phéromone dans un
emplacement par un taux défini. Cette évaporation est due aux contraintes de
l’environnement.

2.3 Le Fourragement
La recherche de la nourriture, appelée aussi « le fourragement », est une activité souvent plus
dispersée spatialement que la construction du nid et qui peut aussi être mise en œuvre de façon
très différente suivant les espèces de fourmis.

La communication peut avoir un impact important, en particulier pour les mécanismes de


recrutement, dont le principal intérêt collectif est de rassembler les ouvrières sur les sources de
nourriture rentables. D’un point de vue plus général, la communication mise en œuvre pour la
recherche de nourriture peut être considérée comme une forme de mémoire collective.

Les étapes suivantes expliquent bien ce mécanisme,

42
La figure Fig. 19, montre un scénario initial. Les fourmis emploient le chemin marqué par la
trace de la phéromone. Le chemin joint le nid à la source de nourriture. La phéromone est une
substance chimique générée et perçoive par les fourmis. La substance représente le moyen de
communication indirecte dans le scénario. Les fourmis dans leurs retours au nid, déposent une
quantité de la phéromone à chaque déplacement et préfèrent de se déplacer vers les
emplacements les plus concentrés de la phéromone.

Lorsque le chemin émergé est obstrué à l’aide d’un obstacle, comme le montre la figure Fig.
20, les fourmis prennent une décision aléatoire pour choisir l’un des deux branches droite ou
gauche de l’obstacle. Au début et sans présence d’aucune concentration de la phéromone, le
flux des fourmis se subdivise en deux flux approximativement égaux. Le choix aléatoire donne
une exploration des deux choix, figure 21.

Le chemin représenté dans la figure Fig. 21 (a), est le plus concentré en phéromone. Ainsi, les
fourmis qui circulent sur ce chemin, arrivent en premier à la destination et permettent la
formation d’un flux entre le nid et la source de nourriture. Tandis que dans le deuxième chemin,
représenté à l’aide de la figure Fig. 21 (b), la quantité secrétée est moins concentré. En effet
avec la considération du caractère d’évaporation de la phéromone, le chemin le plus court

43
devient le plus concentré, ce qui conduit à une attraction des fourmis jusqu’au recrutement de
toutes les fourmis, comme il est indiqué dans la figure Fig.22.

2.3. Optimisation par Colonies des Fourmis


La capacité des fourmis à trouver le plus court chemin entre une source de nourriture et leur
nid, a été utilisée pour résoudre des problèmes d'optimisation combinatoire. Les traces de la
phéromone, représentent une attirance pour un arc du graphe modélisant le problème.

Chaque fourmi construit une solution pour le problème et l'évaluation de chaque solution est
utilisée pour mettre à jour les traces de la phéromone. Ces principes ont été appliqués en
premier au problème de voyageur de commerce (Colorni et al., 1991) (Colorni et al., 1992).
Après des variations de la méthode ont été proposées par (Dorigo et al., 1996a) (Gambardella
et al., 1996). La même technique est appelée pour d'autres problèmes combinatoires comme
l'affectation quadratique et autres problèmes (Gambardella et al., 1999) (Maniezzo et al., 1999).

2.3.1 Principes de l’algorithme ACO


La méthode ACO « Ant Colony Optimisation » est une métaheuristique inspirée du
comportement des fourmis dans la recherche des nourritures. La première version d’algorithme
a été développée par Dorigo (Dorigo et al. 1997).

Lorsqu’une fourmi doit prendre de décision sur la direction à prendre, elle doit choisir le
chemin ayant la plus forte concentration en phéromone, c'est-à-dire la décision dépend de la
probabilité de transition d’un emplacement à une autre. Cette probabilité dépend de la
concentration en phéromone. C’est exactement le principe utilisé par les algorithmes
d’optimisation à base des fourmis.

Chaque fourmi est considérée comme un agent capable de générer des solutions, la décision à
prendre une fourmi pour construire une solution dépend de deux facteurs :

44
2.3.1.1. Evaporation

45
2.3.1.2. Renforcement

2.3.2. Algorithme

2.4. Application: Voyageur de commerce

46
L’émergence de chemin minimale entre la source de nourriture et le nid est utilisée en premier
pour résoudre le problème de voyageur de commerce. Le travail qui suit est inspirée des travaux
de (Colorni et al. 1991) (Colorni et al. 1992) (Dorigo et al. 1996a) (Gambardella et al. 1996).

2.5. Ant System (AS)

47
48
2.6. Algorithme AS pour PVC
Les étapes essentielles de l’algorithme résolvant le voyageur de commerce (PVC) à base des
fourmis, sont les suivantes :

49
3. Méthodes d’optimisation par essaims particules
3.1. Introduction

Les réseaux de nuerons, le recueil simulé, les algorithmes culturels, l’optimisation par
colonies des fourmis et les algorithmes évolutionnaires sont des instances pour lesquelles
les théories en psychologie, en physique et en biologie avaient influencé le développement
des méthodes de calculs pour la résolution des problèmes.

Les individus apprennent, l’un de l’autre, non seulement les faits mais aussi les méthodes
et techniques, traitant ces faits. Le modèle de simulation appelé Modèle d’Adaptation
Culturelle (MAC), montre à travers les simulations informatiques que la dissémination des
propriétés culturelles, peut émerger à travers des interactions sociales (Axelrod, 1997). Ce
modèle constitue l’élément de base de la méthode d’optimisation par essaims particulaires
(OEP).

La méthode OEP, développée par Kennedy et al. (Kennedy, et al. 1995), a été influencée
par les travaux cités au-dessus, pour lesquels l’apprentissage social est l’élément de base
de ces modèles. La méthode a été aussi influencée par les travaux de Reynold et Heppener
dans la simulation des essaims, et plus particulièrement la simulation de comportement de
vol d’oiseaux (Reynold, 1987) (Heppner, 1990).

50
L’OEP, est un outil d’optimisation basé sur une population d’individus. Il a été prouvé que
l’OEP peut donner des bons résultats pour les problèmes d’optimisation combinatoires
discrets (Sheloker et al. 2006), et continues avec une fonction mono-objective ou multi-
objectives (Van der bergh et al. 2006).

La méthode OEP est favorablement comparable aux autres méthodes d’optimisations,


comme les algorithmes évolutionnaires et l’évolution différentielle (Vesterstrom et al.
2004).

3.2. Algorithme de base

L’algorithme de base d’OEP, consiste en un essaim de particules ou une population de


solutions candidates. Ces particules coexistent et en évolution dans l’espace de recherche,
basés sur leurs expériences et le savoir partagés avec le voisinage. Chaque particule possède
deux paramètres, la position et la vitesse (x(t), v(t)). La population vole dans l’espace de
recherche à base des deux équations (1) et (2), suivantes (Clerc, 2006) :

Plusieurs versions du modèle d’équation de base de la méthode, ont été proposées dans la
littérature. Une standardisation a été proposée en 2006 visant à donner un seul modèle
d’équation. Un grand nombre des travaux réalisés à base de la méthode, vise à trouver des

51
valeurs aux paramètres d’équations, afin d’adapter les particules dans l’espace des
solutions. Nous résumons les progrès de la méthode en trois catégories :

 Certains travaux étaient dévoués aux avancements théoriques, comme la convergence de


modèle d’équation ou l’adaptation du modèle aux environnements dynamiques (Kennedy
et al. 1995) (Clerc, 2006) (Van der bergh et al. 2006).

 D’autres travaux, sont centrés sur l’aspect social des particules, proprement dit le
voisinage informant les particules (Kennedy et al. 2003) (Mendes et al. 2004).

 Le reste des travaux a été concentré sur l’utilisation de la philosophie de la méthode, pour
la résolution des problèmes d’optimisation dans les différentes disciplines.

3.3. Essaims particules et voisinage

3.3.1. Modèle topologique de base

Deux modèles considérés comme ancêtres pour l’OEP, le modèle Lbest et le modèle Gbest.
Ces deux modèles représentent permettent de préciser le voisinage informant des particules.
Dans le modèle Lbest, un individu est connecté à son voisin immédiat selon une topologie
en anneau. L’individu d’index i est influencé par les deux individus, celui d’ordre (i -1) et
de (i +1), respectivement.
Typiquement, il n’y a que deux voisins pour un individu dans le modèle Lbest. Dans la
topologie Gbest, un individu est connecté à la totalité de la population selon une topologie
en étoile. Le meilleur individu acte comme un attracteur, permettant d’attirer tous les
individus de la population vers son bassin. Le mouvement des individus est influencé par
l’attracteur.
Dans le modèle Lbest, l’essaim est divisé en groupes d’individus, qui permettent une
meilleure exploration de l’espace de recherche (Kennedy et al. 2003) (Abraham et al. 2005).
Cependant, dans le modèle Gbest, il n’y a qu’un seul groupe qui explore l’espace de
recherche, ce qui donne une convergence prématurée de l’essaim vers des optimums locaux.

52
Ce modèle est bien conseillé dans les problèmes où la fonction objective est unimodale,
alors que l’approche Lbest est recommandée pour les fonctions objectives multimodales.

3.3.2. Autres topologies

La notion de topologie est divisée en deux types : spatiale, si le voisinage est mesuré à
travers une distance euclidienne entre deux positions ou sociale, s’il est déterminé à travers
une structure de données comme les tableaux, listes, arbres ou hiérarchique.

Dans la plupart des cas, les topologies de voisinage contrôlent les deux critères
d’exploration et d’exploitation d’une population. Elles affectent ainsi, la capacité de
communication et la performance des groupes (Kennedy et al. 2003) (Mendes et al. 2004).
Il existe plusieurs topologies :

53
3.3.3. L’essaim particule entièrement informé

54
L’importante différence entre l’OEP canonique et FIPS est la contribution de l’expérience
dans l’apprentissage, en contraste avec l’OEP canonique dans laquelle l’expérience
contribue par la moitié.

55
Dans FIPS l’individu est complètement informé. Différentes expérimentations ont été faites
par Kennedy et Mendes, à base de différentes topologies en utilisant plusieurs types de FIPS,
avec différents coefficients de contribution dans l’apprentissage.

Pour conclure, dans l’ordre de comparer, il serait nécessaire de trouver des topologies qui
s’adaptent bien à chaque algorithme. Alors on peut penser à quelque chose comme « le
meilleur voisin possédant un grand poids » (Clerc, 2006).

3.4. Applications

Soient les fonctions suivantes :

Ces fonctions et d’autres sont des benchmarks utilisés pour tester les méthodes
d’optimisation global pour le cas de minimisation. Nous utilisons la fonction
Rosenbrock pour l’implémenter par la méthode d’optimisation par essaimes, nous
utilisons le standard PSO définie par Clerc (Clerc 2006). X est de dimension D, donc
chaque individu ou position de l’individu est représenté sous forme d’un vecteur de
dimension D. Le minimum de la fonction est connu, min =0.

3.4.1.1.Paramètres de l’algorithme

56
3.4.1.2. Initialisation de l’essaim (position et vitesse)

3.4.1.3.Première évaluation

57
3.4.1.4. Fonction d’évaluation

3.4.1.5. Topologie d’Informant

58
1.1.

59

Vous aimerez peut-être aussi