Vous êtes sur la page 1sur 26

Métaheuristique

Proposé par : Réalisé par :


Mr. SEDQUI Abdelfettah EL MABTOUL Omar
HARRACHY Mohamed Amine
KOUDOUNI Oussama
ARROUMI Yasser
KHALDOUN Hamza
MUSTAPHA SOUAID

Année universitaire 2022/2023


1
Table des matières :

1 Introduction : ................................................................................. 4
2 Problèmes d’optimisation : ............................................................ 4
2.1 Concepts : ................................................................................................................................ 4
2.2 Optimisation combinatoire : ................................................................................................... 5

3 Classification des méthodes d’optimisation :................................. 8


3.1 Méthodes de résolution exactes : ........................................................................................... 9
3.1.1 La méthode séparation et évaluation (Branch and Bound) : .......................................... 9
3.1.2 La méthode de coupes planes (Cutting-Plane) :............................................................ 11
3.1.3 La méthode (Branch and Cut) :...................................................................................... 12

4 Heuristiques et méta-heuristiques :............................................. 13


4.1 Méthodes heuristiques : ....................................................................................................... 13
4.2 Méta-heuristiques : ............................................................................................................... 14
4.2.1 Le recuit simulé (simulated annealing) : ....................................................................... 15
4.2.2 La recherche Tabou (Tabu Search) : .............................................................................. 17
4.2.3 Les algorithmes génétiques : ......................................................................................... 18
4.2.4 Les algorithmes de colonies de fourmis : ...................................................................... 21
4.2.5 L’optimisation par essaim de particules : ...................................................................... 23

5 Conclusion : ................................................................................. 25

2
Liste des figures :

Figure 1:Classification des méthodes d’optimisation ............................................................................. 8


Figure 2: Solutions possibles de l’exemple de sac à dos ....................................................................... 10
Figure 3: Résolution de l’exemple de sac à dos par Branch & Bound ................................................... 11
Figure 4:Fonctionnement de l’algorithme de recuit simulé. ................................................................. 16
Figure 5: Représentation schématique d’une mutation dans le cas d’un codage binaire .................... 21
Figure 6: L’expérience du pont à double branche................................................................................. 22

3
1 Introduction :
Les heuristiques ou les méta-heuristiques exploitent généralement des processus aléatoires
dans l’exploration de l’espace de recherche pour faire face à l’explosion combinatoire
engendré par l’utilisation des méthodes exactes.

L’optimisation combinatoire (OC) occupe une place très importante en recherche


opérationnelle et en informatique. De nombreuses applications pouvant être modélisées
sous la forme d’un problème d’optimisation combinatoire (POC) telles que le problème du
voyageur de commerce, l’ordonnancement de tâches, le problème de la coloration de
graphes, etc

La résolution des problèmes combinatoires est assez délicate puisque le nombre fini de
solutions réalisables croît généralement avec la taille du problème, ainsi que sa complexité.
Cela a poussé les chercheurs à développer de nombreuses méthodes de résolution en
recherche opérationnelle (RO) et en intelligence artificielle (IA). Ces approches de résolution
peuvent être classées en deux catégories : les méthodes exactes et les méthodes
approchées.

2 Problèmes d’optimisation :
2.1 Concepts :
Un problème d’optimisation se définit comme la recherche, parmi un ensemble de solutions
possibles S (espace de décision), qui rendent minimale ou maximale une fonction mesurant
la qualité de cette solution. Cette fonction est appelée fonction objectif.

Un problème d’optimisation mono-objectif : est défini par un ensemble de variables, une


fonction objective et un ensemble de contraintes.

Un problème d’optimisation multi objectif : est défini par un ensemble de variables, un


ensemble de fonctions objectif et un ensemble de contraintes.
Espace d’état : appelé aussi domaine de recherche, est l’ensemble des domaines de
définition des différentes variables du problème.
Les variables du problème : Variable de conception ou de décision peuvent être de nature
diverse (réelle, entière, booléenne. etc.) et exprimer des données qualitatives ou
quantitatives.
La fonction objective : Fonction de coût définit le but à atteindre, on cherche à minimiser ou
à maximiser celle-ci.

4
2.2 Optimisation combinatoire :
L'optimisation combinatoire occupe une place très importante en recherche opérationnelle,
en mathématiques discrètes et en informatique. Son importance se justifie d'une part par la
grande difficulté des problèmes d'optimisation et d'autre part par de nombreuses
applications pratiques pouvant être formulées sous la forme d'un problème d'optimisation
combinatoire. Bien que les problèmes d'optimisation combinatoire soient souvent faciles à
définir, ils sont généralement difficiles à résoudre. En effet, la plupart de ces problèmes
appartiennent à la classe des problèmes NP-difficiles et ne possèdent donc pas à ce jour de
solution algorithmique efficace valable pour toutes les données.

Le principe essentiel d'une méthode exacte consiste généralement à énumérer, souvent de


manière implicite, l'ensemble des solutions de l'espace de recherche. Pour améliorer
l'énumération des solutions, une telle méthode dispose de techniques pour détecter le plus
tôt possible les échecs (calculs de bornes) et d'heuristiques spécifiques pour orienter les
différents choix. Parmi les méthodes exactes, on trouve la plupart des méthodes
traditionnelles (développées depuis une trentaine d'années) telles les techniques de
séparation et évaluation progressive (SEP) ou les algorithmes avec retour arrière. Les
méthodes exactes ont permis de trouver des solutions optimales pour des problèmes de
taille raisonnable.

L'Optimisation Combinatoire consiste à trouver un "meilleur" choix parmi un ensemble fini


(souvent très grand) de possibilités. Nous explorons et exploitons les propriétés structurelles
des problèmes ("bonnes" caractérisations, décompositions, etc) qui permettent de concevoir
des algorithmes efficaces (exacts ou approchés) ou alors montrent que de tels algorithmes
n'existent pas.

Un grand nombre de ramifications se sont par la suite développées celles que nous traitons
peuvent être regroupées sous le terme d’Optimisation Combinatoire.

L'Optimisation Combinatoire consiste à trouver la meilleure solution parmi un nombre fini


(mais souvent très grand) de choix. C'est une branche de la « Programmation
Mathématique » qui recouvre les méthodes qui servent à déterminer l'optimum d'une
fonction sous des contraintes données. Il s'agit donc de minimiser une fonction sur

5
un ensemble fini, mais éventuellement très grand, et dont les propriétés mathématiques ne
sont pas facilement caractérisables.

La recherche d’une solution optimale peut être totalement inappropriée dans certaines
applications pratiques en raison de la dimension du problème, de la dynamique qui
caractérise l’environnement de travail, du manque de précision dans la récolte des données,
de la difficulté de formuler les contraintes en termes explicites ou de la présence d’objectifs
contradictoires.

Les problèmes combinatoires sont des défis au sens commun. Ils sont donc étudiés mais ils
restent méconnus y compris par de nombreux informaticiens. En effet, certains croient en la
puissance absolue de l'ordinateur et ne s'inquiètent pas des problèmes de taille de données
ni de complexité des algorithmes. D'autres se font une montagne des problèmes dits NP-
difficiles. Or, ma déjà longue lutte contre les problèmes combinatoires m'a appris que la
situation réelle est beaucoup plus complexe, en particulier si on se place d'un point de vue
pratique. Certains d'entre eux sont effectivement simples et relèvent d'une heuristique, type
recuit simulé, méthode tabou ou génétique. D'autres, au contraire, demandent des études
fines et des programmes spécifiques. Mais, dans tous les cas, l'intervention humaine est
cruciale. Il faut savoir exploiter les spécificités d'un problème et c'est une erreur de croire à
l'automaticité de sa résolution.

Parmi les défis au sens commun, il y a donc les problèmes combinatoires pour lesquels il est,
a priori, impossible d'énumérer. On distingue toutefois les problèmes faciles des problèmes
difficiles.

a) Problèmes faciles : Il en est ainsi pour les problèmes de toute petite taille (il faut
énumérer !), pour les problèmes fortement contraints (il suffit d'énumérer !), pour les
problèmes faiblement contraints (une heuristique type recuit simulé ou méthode tabou
sera parfaite surtout dans un contexte industriel) et enfin pour les problèmes résolus
polynomialement, encore faut-il le savoir !
b) Problèmes difficiles : Mon expérience pratique me permet d'affirmer qu'ils sont
fréquents et que pour les résoudre il faut utiliser de multiples outils (méthodes sérielles,
recuit simulé, méthodes arborescentes, programmation dynamique, algorithme) Il faut

6
ajouter que pour certains d'entre eux la méthode actuelle la plus efficace est de
reproduire l'expertise humaine.
c) Les méthodes automatiques : (ça n'existe pas encore !) Il y a 40 ans, GOMORY découvrait ses
fameuses coupes pour la Programmation Linéaire en Nombres Entiers (PLNE). Or, de très
nombreux problèmes combinatoires peuvent se modéliser par un PLNE. A l'époque, on a cru
pouvoir résoudre les problèmes combinatoires. L'espoir a été déçu ! 40 ans après, on ne sait pas
résoudre automatiquement les problèmes combinatoires. Mais il n'est pas exclu théoriquement
que cela soit possible dans l'avenir. Cela revient à dire que les problèmes NP-difficiles pourraient
être résolus "pratiquement" de façon polynomiale. Il faudrait une grande avancée
algorithmique.
d) Les méthodes semi-automatiques : Modéliser un problème combinatoire ne sert à rien , si on
ne décrit pas, en plus, son algorithme de résolution et plus particulièrement de bonnes
évaluations, certains disent de bonnes contraintes. D'où l'idée de faire des langages de
programmation adaptés au combinatoire et incluant des parcours arborescents avec des choix
automatiques. L'avantage est de pouvoir, au moins pour le spécialiste d'un tel langage,
programmer très vite. A mon avis, un tel outil reste ambitieux car on a des surcoûts liés à la
rigidité d'un tel système et à la faiblesse de leurs structures de données .En fait, tout modèle est
une simplification de la réalité et, quand on modélise, il faut chercher à obtenir le modèle le plus
représentatif que l'on puisse espérer résoudre de façon satisfaisante !
e) Les programmes spécifiques : Je citerai les méthodes arborescentes, les méthodes polyédrales
et la programmation dynamique, mais aussi les heuristiques. L'expérience de résolution des
problèmes combinatoires montre l'importance cruciale pour construire une méthode efficace
des points suivants :
 Une modélisation adaptée;
 La complexité des algorithmes et des structures de données;
 La proximité de la machine (langage procédural, par exemple);
 La proximité du problème (si on n'a pas d'excellentes évaluations, celles-ci sont inutiles).

7
3 Classification des méthodes d’optimisation :
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 ses 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 petite taille.

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.

Figure 1:Classification des méthodes d’optimisation

8
3.1 Méthodes de résolution exactes :
3.1.1 La méthode séparation et évaluation (Branch and Bound) :
L’algorithme de séparation et évaluation, plus connu sous son appellation anglaise Branch and
Bound (B&B) (Land et Doig 1960), repose sur une méthode arborescente de recherche d’une solution
optimale par séparations et évaluations, en représentant les états solutions par un arbre d’états,
avec des noeuds, et des feuilles. Le branch-and-bound est basé sur trois axes principaux : –
L’évaluation, La séparation et La stratégie de parcours.

 L’évaluation permet de réduire l’espace de recherche en éliminant quelques sous


ensembles qui ne contiennent pas la solution optimale. L’objectif est d’essayer d’évaluer
l’intérêt de l’exploration d’un sous-ensemble de l’arborescence. Le branch-and-bound utilise
une élimination de branches dans l’arborescence de recherche de la manière suivante : la
recherche d’une solution de coût minimal, consiste à mémoriser la solution de plus bas coût
rencontré pendant l’exploration, et à comparer le coût de chaque noeud parcouru à celui de
la meilleure solution. Si le coût du noeud considéré est supérieur au meilleur coût, on arrête
l’exploration de la branche et toutes les solutions de cette branche seront nécessairement
de coût plus élevé que la meilleure solution déjà trouvée.
 La séparation consiste à diviser le problème en sous-problèmes. Ainsi, en résolvant tous les
sous-problèmes et en gardant la meilleure solution trouvée, on est assuré d’avoir résolu le
problème initial. Cela revient à construire un arbre permettant d’énumérer toutes les
solutions. L’ensemble de neouds de l’arbre qu’il reste encore à parcourir comme étant
susceptibles de contenir une solution optimale, c’est-à-dire encore à diviser, est appelé
ensemble des neouds actifs.
 La stratégie de parcours La largeur d’abord : Cette stratégie favorise les sommets
les plus proches de la racine en faisant moins de séparations du problème initial. Elle
est moins efficace que les deux autres stratégies présentées,
 La profondeur d’abord : Cette stratégie avantage les sommets les plus éloignés de la
racine (de profondeur la plus élevée) en appliquant plus de séparations au problème
initial. Cette voie mène rapidement à une solution optimale en économisant la
mémoire,
 Le meilleur d’abord : Cette stratégie consiste à explorer des sousproblèmes
possédant la meilleure borne. Elle permet aussi d’éviter l’exploration de tous les
sous-problèmes qui possèdent une mauvaise évaluation par rapport à la valeur
optimale.

9
Exemple du problème du sac à dos :
Le problème de sac à dos consiste à remplir un sac à dos de capacité b avec des produits x1,
x2,..., xn, qui ont un poids b1, b2,..., bn et rapportent un cout c1, c2,..., cn par unité, de façon
à maximiser le profit. On considére l’exemple suivant :

Pour ne pas violer la contrainte du problème chaque variable peut prendre les valeurs suivantes x1 ∈
{0, 1, 2, 3}, x2 ∈ {0, 1, 2}, x3 ∈ {0, 1, 2} et x4 ∈ {0, 1, 2, 3, 4},

Figure 2: Solutions possibles de l’exemple de sac à dos

Le neoud x1 = 3 avec (x2 = 0, x3 = 0, x4 = 0), dans ce cas, on a mis un seul article dans le sac et
prendre comme évaluation du noeud 3 × 4 = 12 : c’est une évaluation exacte qui correspond à une
solution. Cela permet d’initialiser la valeur de la meilleure solution courante à 12. 2.

Le noeud x1 = 2, On fixe l’article qui donne le meilleur rapport cout/poids, cela est vérifié pour
l’article 2. L’évaluation du noeud est donc calculée par : 8 + (5 × 64/49) = 14, 53. Puisque 14, 53 > 12,
on divise ce noeud. 3.

Le noeud x1 = 2, x2 = 1, pour le noeud x1 = 3, on obtient une évaluation exacte égale à 13. La


solution correspondante devient la nouvelle meilleure solution courante et la meilleure valeur est
égale à 13.

10
Le noeud x1 = 2, x2 = 0 a comme évaluation 8 + (6 × 64/60) = 14, 4 (x3 = 64/60, x4 = 0). Puisque 14, 4
> 13, on divise ce noeud. 5.

Le noeud x1 = 2, x2 = 0, x3 = 1, a comme évaluation est exacte égale à 14. La solution correspondante


devient la nouvelle meilleure solution courante et la meilleure valeur est égale à 14. 6.

Le noeud x1 = 1, a comme évaluation égale à 4 + (5 × 97/49) = 13, 89. On passe au dernier noeud x1 =
0, a comme évaluation égale à 5 × 130/49 = 13, 26 (x2 = 130/49).

La valeur de la solution optimale égale à 14 et elle consiste à prendre 2 unités du produit 1 et une du
produit 3 (x1 = 2, x2 = 0, x3 = 1, x4 = 0).

Figure 3: Résolution de l’exemple de sac à dos par Branch & Bound

3.1.2 La méthode de coupes planes (Cutting-Plane) :


La méthode de coupes planes a été développée par (Schrijver 1986), elle est destinée à résoudre des
problèmes d’optimisation combinatoire (POC) qui se formulent sous la forme d’un programme
linéaire (PL) : min{c T x : Ax ≥ b, x ∈ R n }

Dans le cas, où (POC) est de grande taille pour le représenter explicitement en mémoire ou pour
qu’il tient dans un solveur de programmation linéaire, on utilise une technique qui consiste à enlever
une partie de ces contraintes et de résoudre le problème relaxé (POCR).

11
La solution optimale de (PL) est contenue dans l’ensemble de solutions réalisables de cette
relaxation. Pour un problème de minimisation la solution optimale du problème (POCR) est inférieure
ou égale à la solution optimale donnée par (POC).

Cette méthode consiste à résoudre un problème relaxé, et à ajouter itérativement des contraintes
du problème initial. On définit une contrainte pour le problème de minimisation (1.1) par le couple
(s,s0) où s ∈ R n et s0 ∈ R, cette contrainte est dite violée par la solution courante x si pour tout y ∈ {x
: Ax ≥ b} on a s Tx < s0 et s Ty ≥ s0, on appelle alors ces contraintes des coupes planes. On arrête
l’algorithme lorsqu’il n’y a plus de contraintes violées par la solution courante, on obtient ainsi une
solution optimale pour le problème initial. La méthode des coupes planes est peu performante mais
sa performance est améliorée lorsqu’elle est combinée avec la méthode "Branch and Bound".

3.1.3 La méthode (Branch and Cut) :


La méthode des coupes planes n’est pas toujours efficace face aux problèmes difficiles. De même,
bien que l’algorithme du "Branch and Bound" puisse être très performant pour une certaine classe
de problèmes, pour cela on utilise la méthode "Branch and Cut" qui combine entre l’algorithme du
"Branch and Bound" et de la méthode des coupes planes. Pour une résolution d’un programme
linéaire en nombres entiers, la méthode "Branch and Cut" commence d’abord par relaxer le
problème puis appliquer la méthode des coupes planes sur la solution trouvée.

Si on n’obtient pas une solution entière alors le problème sera divisé en plusieurs sous-problèmes
qui seront résolus de la même manière. On veut résoudre le problème d’optimisation (minctx : Ax ≥
b; x ∈ Rn ) avec A ∈ Rmxn et b ∈ Rm.

Algorithm ( Branch and Cut)

Liste des problèmes = ∅ ;


Initialiser le programme linéaire par le sous problème de contraintes (A1, b1) avec A1 ∈ Rm1xnet b1 ∈
Rm1 ) avec m1 << m ;
Etapes d’évaluation d’un sous problème Calculer la solution optimale x¯ du programme linéaire c tx¯
= min(c tx : A1x ≥ b1, x ∈ Rn );
Solution courante= Appliquer la méthode des coupes polyédrales() ;
Fin étapes d’évaluation
Si Solution courante est réalisable alors x ∗ = x¯ est la solution optimale de min(c tx : Ax ≥ b, x ∈ Rn );
Sinon
Ajouter le problème dans Liste des sous problèmes ;
Fin Si
Tant que Liste des sous problèmes 6= ∅ faire Sélectionner un sous problème ;

12
Brancher le problème ;
Appliquer les étapes d’évaluation ;
Fin Tant que

4 Heuristiques et méta-heuristiques :
4.1 Méthodes heuristiques :
Les méthodes arborescentes sont des méthodes efficaces pour traiter de nombreux problèmes.
Toutefois, au contraire des algorithmes polynomiaux, leur efficacité est fortement fonction des
données du problème. De plus elles sont lourdes à mettre en oeuvre et ne permettent souvent de
résoudre optimalement que des problèmes de tailles réduites. Pour toutes ces raisons, il est souvent
nécessaire d'utiliser des méthodes heuristiques qui permettent de construire des solutions d'un
problème, mais ne garantissent plus l'optimalité. Expliquons une heuristique simple pour le
problème du voyageur de commerce. On commence par choisir la ville de départ. La deuxième ville
choisie est alors la ville la plus voisine. Une fois choisies un certain nombre de villes, on choisit la ville
non choisie la plus proche de la dernière ville introduite et on itère jusqu'à ce que l'on revienne au
point de départ. Cette heuristique évidemment très naïve donne des résultats très mauvais
pratiquement. C'est pourquoi, on introduit les méthodes de voisinage. Présentons d'abord les
méthodes de descente. L'idée est de définir une relation de voisinage sur l'ensemble des circuits
hamiltoniens de telle sorte qu'il soit facile de calculer le meilleur voisin d'un sommet. On part alors
du circuit hamiltonien construit à l'aide de l'heuristique naïve. Puis on calcule son meilleur voisin , si
celui-ci est de coût plus faible que le tour initial, on le retient. On itère , en descendant, jusqu'à
obtenir un tour dont tous les voisins sont moins bons que lui-même. On a alors trouvé un optimum
local par rapport à la relation de voisinage. Remarquons qu'il n'y a pas de raison pour que cet
optimum local soit un optimum global.

Toutefois ces méthodes de descente sont extrêmement efficaces quand la relation de voisinage est
bien choisie. Par exemple, pour un problème de voyageur de commerce symétrique, la méthode K-
opt de LIN et KERNINGHAN, permet de trouver très rapidement, même pour des problèmes de
grande taille (par exemple 1000 villes) des solutions proches à 2 ou 3 % de la solution optimale.
Toutefois les résultats des méthodes de voisinage sont rarement aussi bons. On a constaté
empiriquement que le problème du voyageur de commerce est un problème NPdifficile pour lequel il
est relativement facile, le plus souvent, de construire de bonnes solutions. Ceci explique que
pratiquement, on cherche à échapper à l'optimum local. Il y a trois techniques principales pour y
parvenir: le recuit simulé, le tabou et le génétique. Dans le recuit simulé, quand le voisin d'un
sommet est meilleur, on descend comme précédemment

13
. Si au contraire le voisin d'un sommet est moins bon, on le retient éventuellement à la place du
sommet courant et ceci avec une certaine probabilité p. On fait diminuer cette probabilité au cours
du temps de façon à s'autoriser au début de nombreuses remontées et à la fin de l'algorithme très
peu de remontées. Techniquement, un paramètre T décroissant, appelé température permet cela.
On a : [p = 1 - exp (-T)].

Les inconvénients du recuit simulé sont les suivants : on n'a pas de garantie d'optimalité, du moins
en un temps raisonnable; il est souvent très coûteux en temps de calcul ; enfin la température est
délicate à régler. Dans les méthodes tabous, si on ne peut plus descendre, on s'autorise également
les remontées afin d'échapper à un minimum local. Mais il y a alors un risque de cyclage. Pour
l'éviter, on maintient une liste dynamique et de longueur limitée, contenant une liste de
modifications récemment effectuées. Cette liste est gérée selon la règle premier entré, premier sorti.

Les méthodes tabous ont des inconvénients similaires à ceux du recuit simulé. Citons, pour
terminer, les méthodes génétiques. Cette fois, à chaque itération, on conserve un nombre de
solutions plus grand que 1 qui forment la population. On choisit alors une sous population, souvent
de cardinal 2, et on a une règle, dite génétique, pour construire à partir de cette sous-population,
une nouvelle solution. On itèr, après avoir mis dans la population cette nouvelle solution (naissance)
et retiré une autre solution (mort). Ces méthodes ne garantissent pas non plus l'optimalité. Les
performances de ces trois méthodes dépendent des problèmes et de l'habileté de leur concepteur.
On ne peut donc pas dire que l'une est meilleure que les autres. Elles sont efficaces si l'on arrive à
définir une bonne relation de voisinage facile à calculer.

4.2 Méta-heuristiques :
Face aux difficultés rencontrées par les heuristiques pour avoir une solution réalisable de bonne
qualité pour des problèmes d’optimisation difficiles, les métaheuristiques ont fait leur apparition. Ces
algorithmes sont plus complets et complexes qu’une simple heuristique, et permettent
généralement d’obtenir une solution de très bonne qualité pour des problèmes issus des domaines
de la recherche opérationnelle ou de l’ingénierie dont on ne connait pas de méthodes efficaces pour
les traiter ou bien quand la résolution du problème nécessite un temps élevé ou une grande
mémoire de stockage. Le rapport entre le temps d’exécution et la qualité de la solution trouvée
d’une métaheuristique reste alors dans la majorité des cas très intéressant par rapport aux différents
types d’approches de résolution.

La plupart des métaheuristiques utilisent des processus aléatoires et itératifs comme moyens de
rassembler de l’information, d’explorer l’espace de recherche et de faire face à des problèmes

14
comme l’explosion combinatoire. Une métaheuristique peut être adaptée pour différents types de
problèmes, tandis qu’une heuristique est utilisée à un problème donné.

Plusieurs d’entre elles sont souvent inspirées par des systèmes naturels dans de nombreux
domaines tels que : la biologie (algorithmes évolutionnaires et génétiques) la physique (recuit
simulé), et aussi l’éthologie (algorithmes de colonies de fourmis). Un des enjeux de la conception des
métaheuristiques est donc de faciliter le choix d’une méthode et le réglage des paramètres pour les
adapter à un problème donné. Les métaheuristiques peuvent être classées de nombreuses façons.
On peut distinguer celles qui travaillent avec une population de solutions de celles qui ne manipulent
qu’une seule solution à la fois.

Les méthodes qui tentent itérativement d’améliorer une solution sont appelées méthodes de
recherche locale ou méthodes de trajectoire. Ces méthodes construisent une trajectoire dans
l’espace des solutions en tentant de se diriger vers des solutions optimales. Les exemples les plus
connus de ces méthodes sont : La recherche Tabou et le Recuit Simulé. Les algorithmes génétiques,
l’optimisation par essaim de particules et Les algorithmes de colonies de fourmis présentent les
exemples les plus connus des méthodes qui travaillent avec une population.

4.2.1 Le recuit simulé (simulated annealing) :


Le recuit simulé (SA) a été introduit par (Kirkpatrik et al. 1983) et (Cerný 1985) comme une méthode
de recherche locale normale, utilisant une stratégie pour éviter les minima locaux. Cette
métaheuristique est basée sur une technique utilisée depuis longtemps par les métallurgistes qui,
pour obtenir un alliage sans défaut, faisant alterner les cycles de réchauffage (ou de recuit) et de
refroidissement lent des métaux. Le recuit simulé s’appuie sur des travaux faites par (Metropolis et
al. 1953), qui ont pu décrire l’évolution d’un système en thermodynamique.

Le principe du recuit simulé est de parcourir de manière itérative l’espace des solutions. On part
avec une solution notée s0 initialement générée de manière aléatoire dont correspond une énergie
initiale E0, et une température initiale T0 généralement élevée. A chaque itération de l’algorithme,
un changement élémentaire est effectué sur la solution, cette modification fait varier l’énergie du
système ∆E. Si cette variation est négative (la nouvelle solution améliore la fonction objective, et
permet de diminuer l’énergie du système), elle est acceptée.

Si la solution trouvée est moins bonne que la précédente alors elle sera acceptée avec une
probabilité P calculée suivant la distribution de Boltzmann suivante :

15
En fonction du critère de Metropolis, un nombre e ∈ [0, 1] est comparé à la probabilité p = exp− ∆E T
Si p ≤ e la nouvelle solution est acceptée. Le fonctionnement du critère de Metropolis est interprété
par :

 Si ∆E = f(s 0 ) − f(s) < 0 alors e − ∆E T > 1, donc e est toujours inférieur à cette valeur, et on
accepte la solution s’.
 Si ∆ > 0 et T est très grande, alors e − ∆E T ∼= 1, tout voisin est systématiquement accepté.
 Si ∆ > 0 et T est très petite, alors e − ∆E T ∼= 0, une dégradation a peu de chances d’être

Figure 4:Fonctionnement de l’algorithme de recuit simulé.

16
Algorithm (Recuit simulé) :

 Avantages : La méthode du recuit simulé a l’avantage d’être souple vis-à-vis des évolutions
du problème et facile à implémenter.
– Contrairement aux méthodes de descente, SA évite le piège des optima locaux
, – Excellents résultats pour un nombre de problèmes complexes.
 Inconvénients :
– Nombreux tests nécessaires pour trouver les bons paramètres.

4.2.2 La recherche Tabou (Tabu Search) :


La recherche tabou (TS) est une méthode de recherche locale combinée avec un ensemble de
techniques permettant d’éviter d’être piègé dans un minimum local ou la répétition d’un cycle. La
recherche tabou est introduite principalement par Glover (Glover 1986), Hansen (Hansen 1986),
Glover et Laguna dans (Glover et Laguna 1997). Cette méthode a montré une grande efficacité pour
la résolution des problèmes d’optimisation difficiles. En effet, à partir d’une solution initiale s dans un
ensemble de solutions local S, des sous-ensembles de solution N(s) appartenant au voisinage S sont
générés. Par l’intermédiaire de la fonction d’évaluation nous retenons la solution qui améliore la
valeur de fct, choisie parmi l’ensemble de solutions voisines N(s).

17
L’algorithme accepte parfois des solutions qui n’améliorent pas toujours la solution courante. Nous
mettons en oeuvre une liste tabou (tabu list) T de longueur k contenant les k dernières solutions
visitées, ce qui ne donne pas la possibilité a une solution déjà trouvée d’être acceptée et stockée
dans la liste tabou. Alors le choix de la prochaine solution est effectué sur un ensemble des solutions
voisines en dehors des éléments de cette liste tabou. Quand le nombre k est atteint, chaque nouvelle
solution sélectionnée remplace la plus ancienne dans la liste. La construction de la liste tabou est
basée sur le principe FIFO, c’est-à-dire le premier entré est le premier sorti. Comme critère d’arrêt on
peut par exemple fixer un nombre maximum d’itérations sans amélioration de s*, ou bien fixer un
temps limite après lequel la recherche doit s’arrêter.

Algorithm (la recherche tabou) :

Avantages et inconvénients :

La recherche tabou est une méthode de recherche locale, et la structure de son algorithme de base
est proche de celle du recuit simulé, avec l’avantage d’avoir un paramétrage simplifié : le
paramétrage consistera d’abord à trouver une valeur indicative t d’itérations pendant lesquelles les
mouvements sont interdits. Il faudra également choisir une stratégie de mémorisation. En revanche,
la méthode tabou exige une gestion de la mémoire de plus en plus lourde en mettant des stratégies
de mémorisation complexe. L’efficacité de la méthode tabou offre son utilisation dans plusieurs
problèmes d’optimisation combinatoire classiques tels que le problème de voyageur de commerce,
le problème d’ordonnancement, le problème de tournées de véhicules, etc.

4.2.3 Les algorithmes génétiques :


Les algorithmes génétiques (AG) sont des algorithmes d’optimisation stochastique fondés sur les
mécanismes de la sélection naturelle et de la génétique. Ils ont été adaptés à l’optimisation par John
Holland (Holland 1975), également les travaux de David Goldberg ont largement contribué à les
enrichir (Goldberg 1989a), (Goldberg 1989b).

18
Le vocabulaire utilisé est le même que celui de la théorie de l’évolution et de la génétique, on
emploie le terme individu (solution potentielle), population (ensemble de solutions), génotype (une
représentation de la solution), gène (une partie du génotype), parent, enfant, reproduction,
croisement, mutation, génération, etc.

Leur fonctionnement est extrêmement simple, on part d’une population de solutions potentielles
(chromosomes) initiales, arbitrairement choisies. On évalue leur performance (Fitness) relative. Sur la
base de ces performances on crée une nouvelle population de solutions potentielles en utilisant des
opérateurs évolutionnaires simples : la sélection, le croisement et la mutation. Quelques individus se
reproduisent, d’autres disparaissent et seuls les individus les mieux adaptés sont supposés survivre.
On recommence ce cycle jusqu’à ce qu’on trouve une solution satisfaisante. En effet, l’héritage
génétique à travers les générations permet à la population d’être adaptée et donc répondre au
critère d’optimisation, la figure 1.5 illustre les principales étapes d’un algorithme génétique. Un
algorithme génétique recherche le ou les extrema d’une fonction définie sur un espace de données.
Son mise en oeuvre nécessite :

 Le codage des données La première étape est de définir et coder convenablement le


problème. Cette étape associe à chaque point de l’espace de recherche une structure
de données spécifique, appelée génotype ou ensemble de chromosomes, qui
caractérisera chaque individu de la population. Le codage de chaque individu en
séquence est essentielle dans l’élaboration d’un algorithme génétique dont dépend
notamment l’implémentation des opérateurs de transformations. Ainsi, cette phase
détermine la structure de données qui sera utilisée pour coder le génotype des
individus de la population. Le codage doit donc être adapté au problème traité.
 Génération de la population initiale, c’est-à-dire le choix des dis positifs de départ
que nous allons faire évoluer, ce choix de la population initiale d’individus
conditionne fortement la rapidité de l’algorithme. Néanmoins, une initialisation
aléatoire est plus simple à réaliser : les valeurs des gènes sont tirées au hasard selon
une distribution uniforme. Toutefois, il peut être utile de guider la génération initiale
vers des sous domaines intéressants de l’espace de recherche. Par exemple lors
d’une recherche d’optima dans un problème d’optimisation sous contraintes, il est
préférable de produire des éléments satisfaisant les contraintes. La population
initiale doit être suffisamment diversifiée et de taille assez importante pour que la
recherche puisse parcourir l’espace d’état dans un temps limité.
 Fonction d’adaptation (Fitness) L’évaluation de la Fitness est généralement l’étape
dans laquelle on mesure la performance de chaque individu. Pour pouvoir juger la

19
qualité d’un individu et ainsi le comparer aux autres, il faut établir une mesure
commune d’évaluation. Aucune règle n’existe pour définir cette fonction, son calcul
peut ainsi être quelconque, que ce soit une simple équation ou une fonction affine.
La manière la plus simple est de poser la fonction d’adaptation comme la
formalisation du critère d’optimisation.
 Sélection permet d’identifier statistiquement les meilleurs individus d’une
population et d’éliminer les mauvais, pendant le passage d’une génération à une
autre, ce processus est basé sur la performance de l’individu. L’opérateur de
sélection doit être conçu pour donner également une chance aux mauvais éléments,
car ces éléments peuvent, par croisement ou mutation, engendrer une descendance
pertinente par rapport au critère d’optimisation. Il existe différentes techniques de
sélection, on propose quelques-unes.
 Sélection uniforme : On ne s’interesse pas à la valeur d’adaptation fitness et la
sélection s’effectue d’une manière aléatoire et uniforme telle que chaque individu i a
la même probabilité Prob(i) = 1/Tpop comme tous les autres individus (Tpop est la
taille de la population).
 Sélection par tournoi : Deux individus sont choisis au hasard, on compare leurs
fonctions d’adaptation et le mieux adapté est sélectionné.
 Croisement uniforme : Il constitue la généralisation du principe d’échange introduit
par le croisement en un point. Il procède en effet à l’échange de chaque élément
selon une probabilité fixée. Le jeu de paramètres se réduit donc à la donnée de cette
probabilité.
 Croisement MPX : Le croisement MPX (Maximal Preservative X), a été proposé par
(Mülhenbein 1993) pour résoudre le problème du voyageur de commerce. L’idée de
cet opérateur est d’insérer une partie du chromosome d’un parent dans le
chromosome de l’autre parent de telle façon que le chromosome résultant soit le
plus proche possible de ses parents tout en évitant les doublons.
 Mutation L’opérateur de mutation est un processus où un changement mineur du
code génétique appliqué à un individu pour introduire de la diversité et ainsi d’éviter
de tomber dans des optimums locaux. Cet opérateur est appliqué avec une
probabilité Pm généralement inférieure à celle du croisement Pc.

20
Figure 5: Représentation schématique d’une mutation dans le cas d’un codage binaire

4.2.4 Les algorithmes de colonies de fourmis :


Les algorithmes de colonies de fourmis ont été proposés par Colorni, Dorigo et Maniezzo en 1992
(Colorni et al. 1992b) et appliquées la première fois au problème du voyageur de commerce. Ce sont
des algorithmes itératifs à population où tous les individus partagent un savoir commun qui leur
permet d’orienter leurs futurs choix et d’indiquer aux autres individus des choix à suivre ou à éviter.

Le principe de cette métaheuristique repose sur le comportement particulier des fourmis, elles
utilisent pour communiquer une substance chimique volatile particulière appelée phéromone grâce à
une glande située dans leur abdomen. En quittant leur nid pour explorer leur environnement à la
recherche de la nourriture, les fourmis arrivent à élaborer des chemins qui s’avèrent fréquemment
être les plus courts pour aller du nid vers une source de nourriture. Chaque fourmi dépose alors une
quantité de phéromones sur ces pistes qui deviendront un moyen de communication avec leurs
congénères, les fourmis choisissent ainsi avec une probabilité élevée les chemins contenant les plus
fortes concentrations de phéromones à l’aide des récepteurs situés dans leurs antennes.

La figure illustre et confirme ce constat, une expérience a été faite par gauss et de Neubourg en 1989
appelée expérience du pont à double branche, les fourmis qui retournent au nid rapidement, après
avoir visité la source de nourriture, sont celles qui ont choisi la branche courte et les fourmis
empruntant cette branche faisant plus d’aller-retour, et par conséquent la quantité de phéromones
déposée sur la plus courte branche est relativement supérieure que celle présente sur la plus longue
branche. Puisque les fourmis sont attirées plus vers les pistes de plus grande concentration en
phéromones, alors la branche courte sera la plus empruntée par la majorité des fourmis. Cette
métaheuristique a permis de résoudre différents problèmes d’optimisation combinatoire à forte
complexité, comme le problème du voyageur de commerce, le problème de coloration de graphe et
le problème d’affectation quadratique.

21
Figure 6: L’expérience du pont à double branche

Principe de l’algorithme :

Dans ce paragraphe on décrit l’implémentation d’un algorithme de colonie de fourmis original dit
’Ant System’ (AS) (Colorni et al. 1992a), orienté pour résoudre le problème de voyageur de
commerce (TSP), ce problème consiste à trouver le plus court cycle hamiltonien dans un graphe, où
chaque sommet du graphe représente une ville. La distance entre les villes i et j est représentée par
dij, et le couple (i, j) représente l’arête entre ces deux villes. Nous initialisons d’abord la quantité de
phéromone sur les arêtes à τinit > 0, chaque fourmi parcourt le graphe est construit un trajet
complet (une solution). A chaque étape de la construction des solutions, la fourmi doit décider à quel
sommet elle va se déplacer, cette décision est prise d’une manière probabiliste fondée sur les valeurs
de phéromone et d’une information statistique qui permet notamment de trouver une bonne
solution. La probabilité pour qu’une fourmi k se déplace du sommet i au sommet j, qui appartient à
un ensemble de sommets qui ne sont pas encore visités par la fourmi k noté Ski, est :

α et β sont deux paramètres qui influencent sur l’importance de l’intensité de phéromone τij, et
l’information statistique dite visibilité ηij. Cette valeur guide le choix des fourmis vers des villes

22
proches, et éviter le plus possible celles trop lointaines (ηij = 1 dij ). Pour α = 0, on prend en compte
juste la visibilité c’est-à-dire que le choix sera tombé à chaque fois sur la ville la plus proche. Si β = 0,
seules les pistes de phéromones jouent sur le choix. Pour éviter une sélection trop rapide d’un
chemin, un compromis convenable entre ces deux paramètres est obligatoire.

Lorsque toutes les fourmis ont construit une solution, une quantité de phéromones ∆τ k ij est
déposée par chaque fourmi k sur son trajet. Pour toute itération t, si le chemin (i, j) est dans la
tournée de la fourmi k la quantité de phéromones déposée sur ce trajet est :

Donc l’ajout de la quantité de phéromones dépend certainement de la qualité de la solution obtenue


c’est-à-dire plus la tournée parcourue est petite plus l’ajout de la quantité de phéromones est
important. Dans le but de ne pas négliger toutes les mauvaises solutions obtenues, et ainsi éviter la
convergence vers des optima locaux de mauvaise qualité, le concept d’évaporation des pistes de
phéromones est simulé à travers un paramètre ρ appelé le taux d’évaporation (0 < ρ < 1) comme
suit :

4.2.5 L’optimisation par essaim de particules :


. Cette méthode est inspirée du comportement social des animaux évoluant en essaim.

Au départ, ils cherchaient à simuler la capacité des oiseaux à voler de façon synchrone et leur
aptitude à changer brusquement de direction tout en restant en une formation optimale.

Les particules sont les individus et elles se déplacent dans l’hyperespace de recherche en se basant
sur des informations limitées :

1. Chaque particule est dotée d’une mémoire qui lui permet de mémoriser le meilleur point par
lequel elle est déjà passée et elle a tendance à retourner vers ce point.

2. Chaque particule est informée du meilleur point connu au sein de son voisinage et elle va tendre à
aller vers ce point.

Chaque individu utilise donc, non seulement, sa propre mémoire, mais aussi l’information locale sur
ses plus proches voisins pour décider de son propre déplacement. Des règles simples, telles que "
aller à la même vitesse que les autres ", " se déplacer dans la même direction " ou encore " rester

23
proche de ses voisins " sont des exemples de comportements qui suffisent à maintenir la cohésion de
l’essaim.

Le déplacement d’une particule est influencé par les trois types de comportement :

1. Une composante physique : la particule tend à suivre sa suivre sa propre voie.

2. Une composante cognitive : la particule tend à revenir vers le meilleur site par lequel elle est déjà
passée.

3. Une composante sociale : la particule tend à se diriger vers le meilleur site déjà atteint par ses
voisins.

Algorithm Optimisation par Essaim Particulaire (OEP) :

24
5 Conclusion :
Nous pouvons conclure que les méta-heuristiques présentent une classe de méthodes approchées
adaptables à une grande variété de problèmes d’optimisation combinatoire et mènent à des
résultats pertinents. Mais il existe assez peu de contributions permettant de comprendre la raison de
cette efficacité.

Les problèmes combinatoires sont des défis au sens commun. Ils sont donc étudiés mais ils restent
méconnus y compris par de nombreux informaticiens. En effet, certains croient en la puissance
absolue de l'ordinateur et ne s'inquiètent pas des problèmes de taille de données ni de complexité
des algorithmes

Certains d'entre eux les méthodes sont effectivement simples et relèvent d'une heuristique, type
recuit simulé, méthode tabou ou génétique. D'autres, au contraire, demandent des études fines et
des programmes spécifiques. Mais, dans tous les cas, l'intervention humaine est cruciale. Il faut
savoir exploiter les spécificités d'un problème et c'est une erreur de croire à l'automaticité de sa
résolution.

25

Vous aimerez peut-être aussi