Vous êtes sur la page 1sur 108

UNIVERSITÉ IBN TOFAIL

FACULTÉ DES SCIENCES- KÉNITRA


DÉPARTEMENT D’INFORMATIQUE

LES MÉTAHEURISTIQUES

MASTER BIG DATA AND CLOUD


COMPUTING
DÉPARTEMENT D’INFORMATIQUE
FACULTÉ DES SCIENCES DE KÉNITRA

J. ALAMI CHENTOUFI
1
OBJECTIF DU COURS

Introduction aux problèmes d’optimisation

Etude des différentes métaheuristiques pour résoudre


des problèmes d’optimisation combinatoire difficile

Application sur des problèmes d’optimisation

Implémentation en Java

2
OUTLINE

INTRODUCTION

OPTIMISATION COMBINATOIRE

INTRODUCTION AUX MÉTAHEURISTIQUES

MÉTHODES DE VOISINAGE: RECUIT SIMULÉ ET RECHERCHE TABOU

ALGORITHMES EVOLUTIONNAIRES

AUTRES APPROCHES

ÉNONCÉ DU PROJET

3
INTRODUCTION

4
INTRODUCTION

COMPLEXITÉ DES PROBLÈMES RÉELS

Importance croissante des problèmes d’optimisation


De nombreux secteurs y sont confrontés:
Réseau
Transport
Planification
Finance
Traitement d’images
Médecine, etc

5
INTRODUCTION

DÉFINITIONS

Problème d’optimisation : min / max{f(x) : x ∈ S}


Variable de décision : élément x ∈ Rn : représentant un inconnu
Région réalisable : ensemble des solutions vérifiant les contraintes du
problème ➔ ensemble S
Solution réalisable : solution qui vérifie les contraintes du problème : x est
réalisable ⇔ x ∈ S
Critère à optimiser : fonction objectif f : S → R
Solution optimale : meilleure solution réalisable selon l’objectif f
x * ∈ S est optimale ⇔ f ( x * ) ≤ f ( x ), ∀x ∈ S

6
INTRODUCTION

7
PARTIE I. OPTIMISATION COMBINATOIRE

PROBLÈMES D’OPTIMISATION COMBINATOIRES/ DISCRETS


EXEMPLES DE PROBLÈMES D’OPTIMISATION COMBINATOIRE
COMPLEXITÉS DES ALGORITHMES
THÉORIE DE LA COMPLEXITÉ
CLASSE DE COMPLEXITÉ DES PROBLÈMES D’OPTIMISATION
RÉSOLUTION DES PROBLÈMES D’OPTIMISATION
CLASSIFICATION GÉNÉRALE DES ALGORITHMES D’OPTIMISATION

8
OPTIMISATION COMBINATOIRE

PROBLÈME D’OPTIMISATION COMBINATOIRE POC/ DISCRÈTES

Soit N = {1,…, n} un ensemble fini discret avec cj un coût, ∀ j∈N


Soit S un ensemble des sous ensembles réalisables de N:
Trouver une solution X de S de coût minimum:
& #
min % ∑ c j : X ∈ S " avec ∑ c j : fonction coût
$ j∈X ! j∈X

N: ensemble des décisions possibles


S: ensemble des solutions réalisables (ensemble de décisions)

AVANTAGES

Comme l’espace des solutions candidates est discret et fini, il est possible :

d’énumérer chacune des solutions réalisables


de vérifier qu’une solution est réalisable
de calculer le coût d’une solution réalisable
de conserver la meilleure solution après énumération exhaustive

9
OPTIMISATION COMBINATOIRE

EXEMPLES DE POC

Affectation de fréquences dans les réseaux cellulaires


Problème du sac-à-dos
Problème de voyageur de commerce
Yield management : gestion de ressources
Scheduling problem : Gestion des horaires de train, gestion des
emplois du temps, etc
etc

10
EXEMPLES DE PROBLÈMES D’OPTIMISATION COMBINATOIRE (1/3)

Problème du voyageur de Commerce (Travelling Salesman Problem TSP):

11
EXEMPLES DE PROBLÈMES D’OPTIMISATION COMBINATOIRE (1/3)

PROBLÈME TSP

Un voyageur de commerce doit visiter un certain nombre de villes une


et une seule fois.
Étant données des distances entre chaque paire de villes, il doit
Minimiser la distance totale parcourue
Le TSP peut être représenté par un graphe : chaque ville correspond à un
sommet et chaque arête à une paire de villes pouvant être visitées l’une
à la suite de l’autre
Le TSP consiste à trouver un tour complet (circuit Hamiltonien) dans ce
graphe qui minimise la somme des distances
Le Nombre de solutions possibles pour N « villes » : N! / 2

12
EXEMPLES DE PROBLÈMES D’OPTIMISATION COMBINATOIRE (2/3)

PROBLÈME DU PLUS COURT CHEMIN (SHORTEST PATH PROBLEM)


Trouver un chemin de longueur minimale entre deux villes données:
Une ville de départ (source S) et une ville de destination (puits t)

APPLICATIONS
Recherche de la route la moins coûteuse
Recherche de la route la plus rapide dans
un réseau

Données : G = (V,A) graphe orienté avec deux sommets s et t, et cij


longueur de l’arc (i,j) ∈ A
Objectif : choisir des arêtes afin de minimiser la longueur totale
Contraintes : former un chemin entre s et t
13
EXEMPLES DE PROBLÈMES D’OPTIMISATION COMBINATOIRE (3/3)

PROBLÈME DU SAC À DOS (KNAPSACK PROBLEM)


Choisir un sous-ensemble d’objets d’utilité maximale et à placer
dans un sac tel que la capacité soit respectée

Données : W : capacité maximale du sac, I : ensemble de n objets avec


pour chaque objet i ∈ I : pi l’utilité et wi le poids
Objectif : choisir des objets afin de maximiser l’utilité totale
Contraintes : ne pas dépasser la capacité du sac
14
COMPLEXITÉ DES ALGORITHMES (1/2)

RAPPEL

Un algorithme est une méthode de calcul précise, rigoureuse, qui


pour chaque donnée fournit un résultat en un nombre fini d’étapes
élémentaires.
Un algorithme dont les données en entrée sont de taille n et dont
le nombre d’étapes est borné par:
Un polynôme de n (n2, n3, n10, log(n), nlog(n)…) est dit
polynomial. Il est "efficace".
Une puissance en n (2n, kn, n!....) est dit exponentiel.Il n'est
pas efficace.

15
COMPLEXITÉ DES ALGORITHMES (2/2)

Exemples de classes de complexité

16
THÉORIE DE LA COMPLEXITÉ

RAPPEL

Connaître la complexité d'une réponse par un algorithme à un problème


posé de façon mathématique
Problème de Décision : Réponse par OUI ou NON
Chaque POC peut être formulé comme un problème de décision :
Trouver s*∈ S tel que f(s*) = min { f(s) / s ∈ S}

Soit d un nombre, le problème de décision est formulé de la manière


suivante : ∃ s* ∈ S tel que f(s*) ≤ d ?? ➔ Oui / Non

17
CLASSE DE COMPLEXITÉ DES PROBLÈMES D’OPTIMISATION (1/5)

LES PRINCIPALES CLASSES DE COMPLEXITÉ

Classes P (Polynomial)
Classe NP (Non Deterministic Polynomial)
Classe NP- Complet

18
CLASSE DE COMPLEXITÉ DES PROBLÈMES D’OPTIMISATION (2/5)

CLASSES DE PROBLÈMES DE COMPLEXITÉ P

Classe des problèmes dits faciles:  Problèmes qui utilisent des


algorithmes efficaces pour trouver des solutions.
Un problème est facile (polynomial) si on peut le résoudre par un
algorithme "efficace" (temps polynomial en fonction de la taille de
l’instance)

EXEMPLES DE PROBLÈMES DE COMPLEXITÉ P

Vérifier qu'un nombre n'est pas premier


L'existence d'une chaîne eulérienne dans un graphe

Rappel: une chaîne eulérienne est une chaine que l’on peut
dessiner sans jamais lever le crayon et sans passer deux fois par la
même arête.
Exemple: la chaîne 2 – 1 – 4 – 3 – 2 – 5 – 3 est une chaîne
eulérienne. 19
CLASSE DE COMPLEXITÉ DES PROBLÈMES D’OPTIMISATION (3/5)

Exemples de chaine Eulérienne:

3 4
a a

Départ
b c 3
3 c 4
3 b

d
5 d
5
Pas de chaine Eulérienne arrivée

20
CLASSE DE COMPLEXITÉ DES PROBLÈMES D’OPTIMISATION (4/5)

CLASSES DE PROBLÈMES DE COMPLEXITÉ NP


Problèmes utilisant des algorithmes efficaces pour vérifier des solutions
La classe NP contient l’ensemble des problèmes polynômiaux pouvant
être résolus par un algorithme de complexité polynomiale de façon non-
déterministe : choisissez une solution possible au hasard, on peut décider
pour cette solution candidate seulement en un temps polynômial.
La résolution des problèmes NP peut nécessiter l’examen d’un grand
nombre (éventuellement exponentiel) de cas, mais que l’examen de
chaque cas doit pouvoir être fait en temps polynomial.
En général, pour cette classe de complexité, il est facile de VERIFIER
que la réponse est oui, mais on ne peut pas forcément trouver que la
réponse est oui.

21
CLASSE DE COMPLEXITÉ DES PROBLÈMES D’OPTIMISATION (5/5)

CLASSES DE PROBLÈMES DE COMPLEXITÉ NP-COMPLETS


Les problèmes NP-Complets sont problèmes de NP qui sont plus
difficiles à résoudre dans le sens où l’on ne trouve pas d’algorithme
polynomial pour les résoudre de façon déterministe
Les problèmes les plus difficiles de NP définissent la classe de
problèmes NP- Complets.
Un problème d’optimisation est NP- Difficile si le problème de
décision associé est NP-Complet (exemple: TSP)

22
RÉSOLUTION DES PROBLÈMES D’OPTIMISATION

OPTIMISER UNE FONCTION EN RESPECTANT UN ENSEMBLE DE "CONTRAINTES"???

Le problème à résoudre est-il facile ou difficile ?


Si le problème est "facile": présenter un algorithme efficace.
Si le problème est "difficile":
et de "petite taille": chercher la solution optimale du problème.
et de "grande taille": chercher une solution approchée et garantir la
valeur de cette solution.

23
CLASSIFICATION GÉNÉRALE DES ALGORITHMES D’OPTIMISATION

Algorithmes d’optimisation
24
PARTIE II. INTRODUCTION AUX MÉTAHEURISTIQUES

MOTIVATIONS
MÉTHODES APPROCHÉES
LES HEURISTIQUES ET LES MÉTAHEURISTIQUES
PARADIGME DES HEURISTIQUES
MÉTHODES CONSTRUCTIVES
RECHERCHE LOCALE

25
MOTIVATIONS

Complexité des problèmes réels (NP- Hard)


Difficulté de modélisation des informations
Informations réelles incertaines et imprécises
Rapidité de traitement
Solutions satisfaisantes / approchées

Utilisation des méthodes approchées

26
MÉTHODES APPROCHÉES

DÉFINITION

Une méthode approchée est un algorithme qui cherche une solution


satisfaisante, sans garantie d’optimalité, en un temps de calcul
raisonnable
Deux principales classes de méthodes approchées:
Les heuristiques
Les métaheuristiques

27
LES HEURISTIQUES

DÉFINITIONS

Heuristique (du grec ancien eurisko) ➔ trouver.


Méthode approchée conçue pour un problème d’optimisation particulier
permettant de trouver des solutions avec un temps de calcul raisonnable.
Traduit une stratégie, une manière de penser, s’appuyant sur notre
connaissance du problème.
Indispensable pour les problèmes NP−difficiles car généralement ils ont
une complexité polynomiale.

HEURISTIQUE VS. ALGORITHMES EXACTS


Algorithme exact : garantit une solution optimale
Heuristique : pas de garantie d’optimalité

28
LES MÉTAHEURISTIQUES

DÉFINITIONS

Une heuristique est spécifique à un problème et ne peut pas être généralisée


Méta + heuristique = au-delà + trouver ➔ trouver avec un plus haut niveau
d’abstraction
Une méta-heuristique est un ensemble de concepts : voisinage (modification
d’une solution), utilisation de la mémoire, inspiration de la physique ou la
nature …
Une méta-heuristique est une heuristique généraliste, pouvant s’appliquer à
plusieurs problèmes d’optimisation
Classification habituelle des métaheuristiques : en fonction du nombre de
solutions qu’elles manipulent:
Métaheuristiques à solution unique
Métaheuristiques à population de solutions

29
PARADIGME DES HEURISTIQUES

Heuristiques

Recherche ………..
Construction Locale

DÉFINITION
Méthode de Construction: la solution est construite par une suite de
choix
Recherche locale (ou voisinage) : une solution initiale modifiée
itérativement

30
PRINCIPES DES HEURISTIQUES CONSTRUCTIVES

PRINCIPE

Construisent pas à pas une solution


Engendrent une solution en ajoutant chaque composant (nœud,
arc, variables) jusqu’à l’obtention d’une solution réalisable
Exemple de méthodes constructives: Les Algorithmes Gloutons

31
HEURISTIQUES CONSTRUCTIVES GLOUTONNES

DÉFINITION

Un algorithme glouton (greedy) est un algorithme qui, à chaque étape de


la résolution d’un problème, fait un choix optimal dont le but que le
résultat final soit optimal.
À chaque étape, Le choix le plus intéressant, relativement à un critère
donné, est effectué pour avoir la meilleure solution partielle.

AVANTAGE ET INCONVÉNIENTS DES MÉTHODES DE GLOUTON

Avantage: Algorithmes généralement rapides et très simples


Inconvénients : solutions de qualité médiocre

32
HEURISTIQUES CONSTRUCTIVES GLOUTONNES

Fonction HeuristiqueConstructive ( ) : Solution S


S : Solution
Sß φ
Tant que ( S n’est pas une solution complète ) faire
Choisir un nouvel élément de solution e
S ß S +e
Fin Tant que
Retourner S;
Fin

Pseudo-Code de l’Algorithme Glouton

33
HEURISTIQUES CONSTRUCTIVES GLOUTONNES (PLUS PROCHE VOISIN)

HEURISTIQUE DU PLUS PROCHE VOISIN (PPV) POUR TSP (NEAREST NEIGHBOUR HEURISTIC)

Choisir aléatoirement une première ville


À chaque étape, On construit un chemin en allant vers la ville la plus
proche n'appartenant pas déjà au chemin
Relier la dernière ville à la première (pour obtenir un cycle)

34
HEURISTIQUES CONSTRUCTIVES GLOUTONNES (PLUS PROCHE VOISIN)

V10
V8 V9

V7
V6

V5 V4

V3

V2

V1

35
Illustration du Plus proche voisin au TSP
HEURISTIQUES CONSTRUCTIVES GLOUTONNES (PLUS PROCHE VOISIN)

Algorithme PPV_TSP
Initialiser la longueur totale du circuit: Lt ß 0
Kß 0
Choisir une ville Vi de départ au hasard
Tant que K < Nvilles faire
Chercher la ville Vj la plus proche de Vi sans sous- tour
Lt ß Lt+ d(Vi, Vj)
Vi ß Vj
K ßK+1
Fin Tant que
Fin

Pseudo- code de l’heuristique du plus proche voisin


Appliqué au TSP

36
HEURISTIQUES CONSTRUCTIVES GLOUTONNES (HEURISTIQUE D’INSERTION)

PRINCIPE DE L’HEURISTIQUE D’INSERTION POUR TSP


Idée de construction :
Initialisation : choisir aléatoirement une première ville
À chaque étape, insérer la ville qui minimise un critère donné dans
le cycle de villes déjà construit.
Insertion du plus proche voisin : insérer la ville la plus proche des villes
déjà visitées
Insertion à moindre coût : insérer la ville ayant le moindre coût
d’insertion (engendrant la plus petite augmentation de la longueur du
cycle)

37
HEURISTIQUES CONSTRUCTIVES GLOUTONNES (HEURISTIQUE D’INSERTION)

V10
V8 V9

V7
V6

V5 V4

V3

V2

V1

38
HEURISTIQUES CONSTRUCTIVES GLOUTONNES (HEURISTIQUE D’INSERTION)

V10
V8 V9

V7
V6

V5 V4

V3

V2

V1

39
HEURISTIQUES CONSTRUCTIVES GLOUTONNES (HEURISTIQUE D’INSERTION)

V10
V8 V9

V7
V6

V5 V4

V3

V2

V1

40
HEURISTIQUES CONSTRUCTIVES GLOUTONNES (HEURISTIQUE D’INSERTION)

V10
V8 V9

V7
V6

V5 V4

V3

V2

V1

41
HEURISTIQUES CONSTRUCTIVES GLOUTONNES (HEURISTIQUE D’INSERTION)

V10
V8 V9

V7
V6

V5 V4

V3

V2

V1

42
HEURISTIQUES CONSTRUCTIVES GLOUTONNES (HEURISTIQUE D’INSERTION)

V10
V8 V9

V7
V6

V5 V4

V3

V2

V1

43
HEURISTIQUES CONSTRUCTIVES GLOUTONNES (HEURISTIQUE D’INSERTION)

V10
V8 V9

V7
V6

V5 V4

V3

V2

V1

44
HEURISTIQUES CONSTRUCTIVES GLOUTONNES (HEURISTIQUE D’INSERTION)

V10
V8 V9

V7
V6

V5 V4

V3

V2

V1

45
HEURISTIQUES CONSTRUCTIVES GLOUTONNES (HEURISTIQUE D’INSERTION)

V10
V8 V9

V7
V6

V5 V4

V3

V2

V1

46
HEURISTIQUES CONSTRUCTIVES GLOUTONNES

MÉTHODES CONSTRUCTIVES GLOUTONNES

De complexité polynomiale
Une succession de choix localement optimaux ne garantit
pas une solution optimale

47
RECHERCHE LOCALE (LOCAL SEARCH)

DÉFINITIONS

Appelée aussi la méthode de descente ou l'amélioration itérative


Représente une classe de méthodes anciennes pour résoudre des
problèmes très difficiles, comme le TSP
Contrairement à l'approche de construction, la recherche locale
manipule des solutions complètes durant la recherche
Dans la littérature, on emploie le terme recherche locale pour désigner
la classe des méthodes de voisinage au lieu de la descente seule

48
RECHERCHE LOCALE (LOCAL SEARCH)

PRINCIPES
On part d’une solution s réalisable du POC, défini par (S, F), et on essaie de
l’améliorer itérativement. S: l’ensemble de solutions réalisable et F: la fonction
objectif
La solution de départ est générée aléatoirement ou en utilisant un algorithme
glouton
Pour améliorer une solution s, on applique une légère modification . On parle ,
dans ce cas, de solution voisine.
On définit alors un voisinage V( s ), tel que V(s) ∈ S
On cherche s'il existe s' dans V(s) tel que :
Si F(s') < F(s) alors on remplace s par s' et on recommence
Sinon on s'arrête et la méthode retourne un minimum local

49
RECHERCHE LOCALE (LOCAL SEARCH)

DÉFINITIONS

Le voisinage dune solution s ∈ S est un sous-ensemble de S tel que V: Sà 2S

Toute solution dans le voisinage V(s) de s’ est dite voisine à s


s ∈ S est un minimum local, par rapport au voisinage V(s), si F(s) ≤ F(s'); ∀s’∈V(s)
s ∈ S est un minimum global, si F(s) ≤ F(s'); ∀ s' ∈ S
La notion de minimum local est liée à la structure de voisinage choisie

50
RECHERCHE LOCALE (LOCAL SEARCH)

ÉLÉMENTS DE BASE
Définition d’une structure de voisinage:
Fonction qui associe à chaque élément de S, un sous-ensemble de S
Dépend du problème à résoudre
Fonction d'évaluation des solutions:
Permet de mesurer la qualité des solutions
en général, c’est la fonction objectif à optimiser
Stratégie de remplacement de solutions:
Règle de choix permettant de passer d'une solution à une solution voisine

51
RECHERCHE LOCALE (LOCAL SEARCH)

EXEMPLES DE VOISINAGE POUR LE TSP


Soient U et V deux villes, X et Y leurs villes consécutives
respectivement dans la solution d’un TSP
Structures de voisinage possibles:
Insertion
- supprimer U et l’insérer après V
- supprimer U et X, et insérer (U, X) après V
- supprimer U et X, et insérer (X, U) après V
Échange (swap)
- échanger U et V
- échanger (U, X) et V
- échanger (U, X) et (V, Y)
2-opt
- remplacer (U, X) et (V, Y) par (U, V) et (X, Y)

52
EXEMPLES DE VOISINAGE POUR LE TSP (INSERTION 1/3)

V10 V10

V8 V9 V8 V9

Insertion de U après V
V7 u = V7 et v = V10 V7

V6 V6

V5 V4 V5 V4

V3 V3

V2 V2

V1 V1

V1àV5 àV6àV10àV8àV9àV7àV3àV4àV2àV1 V1àV5 àV6àV10àV7àV8àV9àV3àV4àV2àV1

53
EXEMPLES DE VOISINAGE POUR LE TSP (INSERTION 2/3)

V10 V10

V8 V9 V8 V9

Insertion de (U, X) après V


U= V7, X = V3 et V = V10
V7 V7

V6 V6

V5 V4 V5 V4

V3 V3

V2 V2

V1 V1

V1àV5 àV6àV10àV8àV9àV7àV3àV4àV2àV1 V1àV5 àV6àV10àV7àV3àV8àV9àV4àV2àV1

54
EXEMPLES DE VOISINAGE POUR LE TSP (INSERTION 3/3)

V10 V10

V8 V9 V8 V9

Insertion de (X, U) après V


V7 U= V7, X = V3 et V = V10 V7

V6 V6

V5 V4 V5 V4

V3 V3

V2 V2

V1 V1

V1àV5 àV6àV10àV8àV9àV7àV3àV4àV2àV1 V1àV5 àV6àV10àV3àV7àV8àV9àV4àV2àV1

55
EXEMPLES DE VOISINAGE POUR LE TSP (ECHANGE 1/3)

V10 V10
V8 V9 V8 V9

V7 Echange de U et V V7
U= V7 et V = V10
V6 V6

V5 V4 V5 V4

V3 V3

V2 V2

V1 V1

V1àV5 àV6àV10àV8àV9àV7àV3àV4àV2àV1 V1àV5 àV6àV7àV8àV9àV10àV3àV4àV2àV1

56
EXEMPLES DE VOISINAGE POUR LE TSP (ECHANGE 2/3)

V10 V10
V8 V9 V8 V9

Echange de (U, X) et V
V7 U= V7, X= V3 et V = V10 V7

V6 V6

V5 V4 V5 V4

V3 V3

V2 V2

V1 V1

V1àV5 àV6àV10àV8àV9àV7àV3àV4àV2àV1 V1àV5 àV6àV7àV3àV8àV9àV10àV4àV2àV1

57
EXEMPLES DE VOISINAGE POUR LE TSP (ECHANGE 3/3)

V10 V10
V8 V9 V8 V9

V7 Echange de (U, X) et (V, Y) V7


U= V7, V = V10, X= V3 et Y= V8
V6 V6

V5 V4 V5 V4

V3 V3

V2 V2

V1 V1

V1àV5 àV6àV10àV8àV9àV7àV3àV4àV2àV1 V1àV5 àV6àV7àV3àV9àV10àV8àV4àV2àV1

58
EXEMPLES DE VOISINAGE POUR LE TSP (2- OPT)

V10 V10
V8 V9 V8 V9

Remplacer (U, X) et (V, Y) par (U,


V7 V) et (X, Y) V7
U= V7, V = V10, X= V3 et Y= V8
V6 V6

V5 V4 V5 V4

V3 V3

V2 V2

V1 V1

V1àV5 àV6àV10àV8àV9àV7àV3àV4àV2àV1 V1àV5 àV6àV3àV8àV9àV7àV10àV4àV2àV1

59
RECHERCHE LOCALE (LOCAL SEARCH)

À chaque itération, sélectionner dans le voisinage une solution


acceptable c’est-à-dire une solution meilleure que la solution
courante
Fonction RechercheLocale (F, S, s0): meilleure solution S*
Début
s* ß s0
F * ß F(s*)
Tant que ( ∃ s’ dans V(s*) ET acceptable (s’)) faire
s* ß s’
F * ß F(s*)
FinTq
Retourner s*
Fin

Pseudo- code de la recherche locale

60
RECHERCHE LOCALE (LOCAL SEARCH)

AVANTAGES ET INCONVÉNIENTS
Une méthode locale basique, rapide, mais s’arrête au premier optimum
local trouvé, elle s’y trouve alors piégée.
Afin d’améliorer les performances de la méthode de recherche locale, on
est amené à:
autoriser, de temps en temps, une dégradation de la solution
courante
contrôler la dégradation pour éviter la divergence de l’algorithme

61
PARTIE III. MÉTHODES DE VOISINAGE: RECUIT SIMULÉ ET
RECHERCHE TABOU

RECUIT SIMULÉ:
INTRODUCTION, ANALOGIE, PRINCIPES, ALGORITHME,
PARAMÈTRES ET APPLICATION
RECHERCHE TABOU:
INTRODUCTION, PRINCIPES DE BASE, ALGORITHME,
MÉMOIRE TABOU ET CONCEPTS AVANCÉS

62
RECUIT SIMULÉ (SIMULATED ANNEALING SA)

INTRODUCTION

Méthode utilisée depuis les années 80:


Metropolis (1953): simulation du refroidissement de matériaux (Thermodynamique)
Kirkpatrick et al (IBM 1983): utilisation pour la résolution de problèmes
d’optimisation.
But : échapper aux optima locaux
Principe : probabilité non nulle de sélection d’une solution voisine dégradée

Recherche Locale

Recuit Simulé: 63
RECUIT SIMULÉ (SIMULATED ANNEALING SA)

ANALOGIE

Processus utilisé en métallurgie pour améliorer la qualité d’un solide en


cherchant un état d’énergie minimal qui correspond à une structure stable du
métal:
1. initialement, un métal est chauffé à une haute température jusqu’à fusion.
2. puis diminuer progressivement la température jusqu’à atteindre une énergie
minimale. On obtient alors une structure cristalline qui est un état stable.
Processus de refroidissement:
1. Diminution brutale de la température état solide amorphe: le métal obtenu
contient beaucoup de défauts
2. Diminution progressive de la température état solide cristallin: les atomes
se réarrangent, les défauts disparaissent et le métal résultant a une structure
très ordonnée

64
RECUIT SIMULÉ (SIMULATED ANNEALING SA)

Métallurgie Problème d’optimisation

Energie Fonction à minimiser

État du système Une solution

État amorphe Minimum local

État cristallin Minimum global

Température Paramètre de contrôle

Recuit Déplacement dans l’ensemble


S (recherche locale)

Analogie entre recuit physique et problème d’optimisation

65
RECUIT SIMULÉ (SIMULATED ANNEALING SA)

Fonction Recuit_Simule(F, S, s0 , T0 , ε, k) : meilleure solution s∗


s∗ : solution
T : réel //température
s ← s0 ; T ← T0 ;

Tant que (T > ε) faire


choisir s’ aléatoirement dans ϑ(s∗); ΔF ← F(s’) − F (s*);
Si (ΔF ≤ 0) Alors
s*← s’ ; //accepter s’
Sinon
Générer un nombre aléatoire r de [0, 1]
Si r < e-ΔF/T Alors
s*← s’
Finsi
Finsi
T ← k×T //refroidir la température ( 0.8≤ k <1)
FinTantQue
Retourner s∗
Fin

Pseudo code du recuit simulé 66


RECUIT SIMULÉ (SIMULATED ANNEALING SA)

REMARQUES

Méthode stochastique
Probabilité d’acceptation p = e-ΔF/T
ΔF: si dégradation grande probabilité plus petite

Température T élevée: début de la recherche (recherche aléatoire)


Plus la température descend, plus la probabilité d’acceptation devient
petite
On autorise plus de dégradation au début qu’à la fin : convergence vers un
état d’énergie minimale

67
RECUIT SIMULÉ (SIMULATED ANNEALING SA)

ADAPTATION À UN PROBLÈME D’OPTIMISATION

Pour mettre en œuvre la méthode SA, il faut déterminer quelques paramètres:


La valeur initiale T0: généralement très élevée

La configuration (solution) initiale S0 : généralement choisie aléatoirement

La stratégie de voisinage pour passer à une autre configuration


La stratégie de refroidissement de température
Le(s) critère(s) d’arrêt

68
RECUIT SIMULÉ (SIMULATED ANNEALING SA)

CRITÈRES D’ARRÊTS

Choix d’une limite du temps


Limite sur le nombre d’itérations sans amélioration de la solution courante
Choix d’une température minimale

69
RECUIT SIMULÉ (SIMULATED ANNEALING SA)

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;
Il converge vers un optimum global (lorsque le nombre d’itérations est très
grand)

INCONVÉNIENTS
Réglage des paramètres qui influence la qualité de la solution
Temps de calcul très grand pour quelques applications

70
RECHERCHE TABOUE (TABU SEARCH)

INTRODUCTION

Méthode proposée par F. Glover en 1986


But : échapper aux optima locaux
Principe : Introduction de la notion de mémoire dans la stratégie d’exploration
Interdiction de reprendre des solutions déjà (ou récemment) rencontrées

71
RECHERCHE TABOUE (TABU SEARCH)

PRINCIPES DE BASE (1/2)

L’idée de cette méthode est de permettre des modifications qui n’améliorent


pas la valeur de l’objectif
Toutefois, on choisira toujours la meilleure modification possible dans le voisinage
Il est possible qu’une des modifications possibles nous ramène à la solution
précédente
Il faut donc changer la définition de l’ensemble des modifications possibles pour
interdire celles qui ramènent à la solution précédente

72
RECHERCHE TABOUE (TABU SEARCH)

PRINCIPES DE BASE (2/2)

On conservera une liste des dernières modifications effectuées en rendant taboue


(en interdisant) la modification inverse
La liste taboue peut être vue comme une mémoire à court terme permettant de
guider la recherche
A chaque itération, on choisit la meilleure modification possible (excluant celles
qui sont taboues), puis on met à jour cette liste en ajoutant la modification inverse
de celle effectuée

73
RECHERCHE TABOUE (TABU SEARCH)

Fonction Tabu_Search (F, S, s0 ) : meilleure solution Best


s ç s0
Liste_Tabou ç φ
Best ç s0
répéter
choisir s’ ∈ V(S) / F(s’) ≤ F(s)
Si s’ n’est pas taboue ou F(s’) ≤ F(Best) alors
sç s’
FinSi
Update Liste_Tabou
Update Best
jusqu’à Critère d’arrêt vérifié
Retourner Best
Fin
Pseudo code de la recherche taboue

74
RECHERCHE TABOUE (TABU SEARCH)

CRITÈRES D’ARRÊTS

Contrairement à la méthode de descente, il n’y a pas de critère


d’arrêt simple
En général, on utilise une combinaison des critères suivants :
Nombre maximum d’itérations
Temps limite
Nombre d’itérations successives sans amélioration
Il n’y a plus de modifications possibles

75
RECHERCHE TABOUE (TABU SEARCH)

APPLICATION AU PVC

Choix du voisinage : échange de deux villes, ce qui implique l’ajout de


deux liens et l’élimination de deux autres.
Liste taboue : les deux liens ajoutés sont insérés dans la liste taboue; une
modification est taboue si les deux liens à éliminer sont dans la liste taboue
Critère d’arrêt: par exemple 3 itérations successives sans amélioration de
la solution (ou lorsqu’il n’y a pas de modifications possibles)
On ne conservera dans la liste taboue que les liens ajoutés lors des deux
dernières itérations: on dit que la longueur de la liste taboue est 4

76
RECHERCHE TABOUE (TABU SEARCH)

Solution initiale : 1->2->3->4->5->6->7->1, Distance du circuit = 129, Liste Taboue: Vide

Itération 1 :

Echange des villes 3 et 4 ➔ Ajout des liens: 2->4 et 3->5 ➔ Liste Taboue: 2->4, 3 -> 5
Nouvelles solution: 1->2->4->3->5->6->7->1 , Distance du circuit = 121

Itération 2 :
Echange des villes 3 et 6➔ Ajout des liens: 4->6 et 3->7, élimination des liens: 4->3 et
6 -> 7 ➔ Liste Taboue: 2->4, 3 -> 5, 4 ->6 et 3->7
Nouvelle solution: 1->2-> 4->6->5->3->7->1 , Distance du circuit = 119

Itération 3 :
Echange des villes 5 et 7➔ Ajout des liens: 6->7 et 5->1, élimination des liens: 6 ->5 et
7->1 ➔ Liste Taboue: 2->4, 3 -> 5, 4->6, 3->7, 6->5 et 7->1
Nouvelle solution: 1->2-> 4->6->7->3->5->1 , Distance du circuit = 120

Il n’existe plus de modifications possibles Arrêt, Solution: Distance= 119

77
RECHERCHE TABOUE (TABU SEARCH)

CONCEPT AVANCÉ: CRITÈRE D’ASPIRATION

L’objectif de la recherche Taboue est d’éviter de revenir aux


solutions déjà visitées.
Possibilité d’annuler une interdiction Taboue: Critère d’aspiration
Lever le statut Tabou d’une modification à une itération donnée,
si elle conduit à une solution de bonne qualité que la solution courante

78
PARTIE IV. ALGORITHMES ÉVOLUTIONNAIRES

MÉTAHEURISTIQUES À BASE DE POPULATION

ALGORITHMES ÉVOLUTIONNAIRES

ALGORITHMES GÉNÉTIQUES

APPLICATION AU TSP

79
MÉTAHEURISTIQUES À BASE DE POPULATION

CARACTÉRISTIQUES

A chaque itération, le processus de recherche considère un ensemble


(une population) de solutions au lieu d’une seule solution
Les métaheuristiques à base de population s’inspirent de
phénomènes Naturels (Biologiques, Culturels, Sociaux, etc.)

80
MÉTAHEURISTIQUES À BASE DE POPULATION

DIFFÉRENTES APPROCHES

Évolution génétique: Algorithmes évolutionnaires (Algorithmes


Génétiques, Programmation Evolutive, Stratégie Evolutive,
Programmation Génétique, Systèmes Immunitaires)
Évolution culturelle: Algorithmes Culturels
Intelligence collective : Essaims particulaires, colonies de fourmis,
colonies d’abeilles

81
MÉTAHEURISTIQUES À BASE DE POPULATION

HISTORIQUE

Programmation évolutive : L. Fogel, 1962

Algorithmes génétiques : J. Holland, 1962

Stratégies d’évolution : I. Rechenberg & H.-P. Schwefel, 1965

Programmation génétique : J. Koza, 1989

Algorithmes culturels : R. G Reynolds, 1994

Essaims particulaires : R. Eberhart et J. Kennedy, 1995

Colonie de fourmis : M. Dorigo, 1996

82
ALGORITHMES ÉVOLUTIONNAIRES

PRINCIPES DE BASE

Basés sur la théorie de l'évolution naturelle des espèces [Darwin,


1859] :"L’évolution des êtres vivants repose sur la compétition qui
sélectionne les individus les plus adaptés, leur assurant une descendance,
donc une transmission aux enfants des caractéristiques génétiques utiles."

PRINCIPES FONDAMENTAUX

Sélection : Favorise la reproduction et la survie des individus les plus


adaptés par rapport à leur environnement
Reproduction : Permet le brassage, la recombinaison et les variations des
caractères héréditaires des parents pour former une nouvelle progéniture

83
ALGORITHMES ÉVOLUTIONNAIRES

Algorithme évolutif {
t←0
Initialiser la population P(t)
Evaluer P(t)
Répéter {
t←t+1
Sélectionner les parents
Appliquer les opérateurs génétiques
Evaluer la population des enfants crées
Créer par une stratégie de sélection la nouvelle population P(t)
}
Tant que (condition d’arrêt n’est pas satisfaite)
}

Structure de base d’un algorithme évolutif

84
ALGORITHMES GÉNÉTIQUES

HISTORIQUE

Inventés par John Holland en 1970


Classe de méthodes d’optimisation inspirées de l’évolution génétique naturelle
Manipulent des populations d’individus (Solutions)
Un individu représente une solution au problème étudié
Les populations d’individus évoluent selon un processus de sélection naturelle :
"les individus les mieux adaptés se reproduisent le plus souvent"
Utilisent des opérateurs génétiques pour créer de nouveaux individus

85
ALGORITHMES GÉNÉTIQUES

DOMAINES D’APPLICATION

Ordonnancement
Coloriage des graphes
Gestion des emplois du temps
Voyageur de commerce
Affectation de fréquences
Routage
Traitement d’images médicales
Etc.

86
ALGORITHMES GÉNÉTIQUES

TERMINOLOGIE (1/2)

Population : Un ensemble d’individus qui interagissent durant l’application


d’un algorithme évolutionnaire
Individu : Un membre de la population qui représente une solution du
problème à résoudre. Son génome consiste en un ou plusieurs chromosomes.
Gène : Une partie d’un chromosome qui encode un paramètre de la solution.
Génotype : Représentation génétique d’un individu. Valeur encodée du
chromosome.

87
ALGORITHMES GÉNÉTIQUES

TERMINOLOGIE (2/2)

Chromosome : Une structure de données qui représente les gènes d’un


individu, en général des chaînes de bits.
Phénotype : La représentation d’un individu dans l’espace des solutions.
Valeur décodée du chromosome.
Allèles : Valeurs possibles d’un gène.
Fitness : Une valeur qui indique la qualité (ou le degré d’adaptation) d’un
individu (solution).

88
ALGORITHMES GÉNÉTIQUES

Système biologique Problème d’optimisation

Individu Solution candidate


Allèle Un élément du gène (ex. bit)
Gène Variable
Génotype (ou chromosome) Ensemble de variables
Phénotype Valeur réelle des variables
Adaptation Fonction objectif

Analogie entre le système biologique et un problème d’optimisation

89
ALGORITHMES GÉNÉTIQUES

OPÉRATEURS DE BASE D’UN AG

Sélection : favoriser les individus de la population les mieux adaptés


(meilleure fitness)
Reproduction ou croisement : brassage du patrimoine génétique des
individus parents pour produire deux enfants ( Pc ∈ [0.7, 1[ )
Mutation : Modifier des chromosomes aléatoirement pour introduire de la
diversité ( Pm ∈ [0.005, 0.01] )

90
ALGORITHMES GÉNÉTIQUES

Initialisation de
FONCTIONNEMENT D’UN AG la population

Evaluation des individus


Sélection des meilleurs parmi eux Sélection
Croisement
Mutation Croisement
Stratégie de remplacement
Mutation

Remplacement

Critère d ’arrêt
Validé? non

oui

Meilleur individu
91
ALGORITHMES GÉNÉTIQUES

Algorithme Génétique {
t←0
Initialiser la population P(t)
Evaluer P(t)
Répéter {
t←t+1
P(t)= Sélectionner(P(t-1))
Croiser (P(t))
Muter (P(t))
Evaluer P(t)
}
Jusqu’à (condition d’arrêt validée)
}

Pseudo code d’un algorithme génétique

92
ALGORITHMES GÉNÉTIQUES

COMPOSANTS PRINCIPAUX D’UN AG

Codage des solutions (chromosomes)


Génération d’une population initiale
Processus de sélection
Opérateurs de mutation et de croisement
Paramètres : taille de la population, critère d’arrêt (nombre
total de générations), probabilités de mutation et de croisement

93
ALGORITHMES GÉNÉTIQUES

CODAGE DES SOLUTIONS (CHROMOSOMES)

Plusieurs représentations possibles (dépend entre autres du


problème traité):

Binaire
Réelle
Par permutation
Matricielle
Sous forme d’un arbre

94
ALGORITHMES GÉNÉTIQUES

Codage des solutions: (représentation binaire)

Phénotype :

Entier
Génotype (8bits)
Réel
1 0 1 0 0 0 1 1
Ordonnancement

95
ALGORITHMES GÉNÉTIQUES

Codage des solutions (représentation binaire)

Génotype (8bits) Phénotype :


1 0 1 0 0 0 1 1 Entier = 163

Décodage

1× 27 + 0 × 26 + 1× 25 + 0 × 2 4 + 0 × 23 + 0 × 2 2 + 1× 21 + 1× 20 = 163

96
ALGORITHMES GÉNÉTIQUES

Codage des solutions (représentation binaire)


Phénotype peut être un réel, e.g. un nombre entre 2.5 et 20.5 utilisant 8 digits
binaires:

Génotype (8bits) Phénotype :


1 0 1 0 0 0 1 1 Réel =13.9609

Décodage

163
x = 2.5 + (20.5 − 2.5) = 13.9609
256

97
ALGORITHMES GÉNÉTIQUES

Codage des solutions (représentation binaire)


Phénotype peut être un ordonnancement e.g. 8 jobs, 2 machines

Génotype (8bits) Phénotype :


1 0 1 0 0 0 1 1 Ordonnancement :
Job Machine
1 2
2 1
3 2
4 1
5 1
6 1
7 2
8 2

98
ALGORITHMES GÉNÉTIQUES

Codage des individus (autres représentations) :

Codage par permutation (ex. TSP)

A:153264798
B:856723149

Codage réel (ex. fonctions numériques)

A : (1.3, 2.5, .001)


B : (0, 1.2, .0008)

99
ALGORITHMES GÉNÉTIQUES

Opérateur de sélection

Sélection par roue de loterie :


Attribuer à chaque chromosome une portion dans la roue proportionnelle à
sa fitness cumulative

Sélection par tournois :


Choisir le meilleur individu parmi un ensemble d’individus

100
ALGORITHMES GÉNÉTIQUES

Croisement des individus (crossover)


Croisement binaire en un seul point:
P1 110010101010 0101010
P2 010101001011 1100101
F1 110010101010 1100101
F2 010101001011 0101010

Croisement dans le cas d’un codage par permutation:


1 Choix aléatoire d’un point de crossover
2 Création fils1 : tous les nombres à gauche du crossover sont ceux du premier
père, puis ensuite les éléments de la deuxième partie de ce parent sont
réordonnées dans l'ordre d'apparition qu'ils ont dans le deuxième parent (P2)
P1 (1 2 3 4 5 6 7 8 9)
P2 (4 5 3 6 8 9 7 2 1)
F1 (1 2 3 4 5 6 8 9 7)
F2 (4 5 3 6 8 1 2 7 9)

101
ALGORITHMES GÉNÉTIQUES

MUTATION

Modifier arbitrairement un allèle d’un chromosome


Explorer l’espace de recherche
Introduire de la diversité génétique au sein de la population
Echapper des optima locaux

EXEMPLES

Représentation en vecteur de bits : changer la valeur d’un bit


Permutation : échanger la position de deux entiers
Arbre : une feuille ou un nœud est changé

102
ALGORITHMES GÉNÉTIQUES

STRATÉGIE DE REMPLACEMENT

Les enfants remplacent leur parents

Garder les meilleurs chromosomes d’une génération à l’autre

CRITÈRES D’ARRÊT
Perte de diversité génétique (tous les individus sont similaires)

Pas d'amélioration de la meilleure solution

Nombre maximal de générations

103
ALGORITHMES GÉNÉTIQUES

Paramètres d’un AG

Taille de la population

Probabilité de croisement

Probabilité de mutation

Nombre de générations

104
ALGORITHMES GÉNÉTIQUES

Avantages

Pas d’hypothèse sur l’espace de recherche

Largement applicable

Fournit plusieurs solutions

Co-évolution (compétition), Parallélisme et distribution, ...

Un bon compromis exploitation/exploration de l’espace de recherche

Inconvénients

Pas de garantie sur l’optimalité de la solution identifiée

Réglage fin des paramètres

105
APPLICATION AU TSP

Représentation : Une permutation désigne un individu et donne l’ordre de


visite
des villes : (0 1 2 3 4 5 6 7 8 9)
Croisement :
Partially Mapping Crossover (PMX)
Order Crossover (OX)
...
Mutation :
Echange de deux villes
Renversement de parcours entre deux villes
...
Fitness :
Donnée par la longueur d’une tournée

106
APPLICATION AU TSP

Partially Mapping Crossover (PMX)


Choisir deux points de coupure :
Parent 1 : 2 5 1 | 4 0 9 | 3 7 8 6
Parent 2 : 5 9 2 | 7 6 8 | 3 4 0 1
Echanger les segments entre les deux points de coupure :
Enfant 1 : 2 5 1 | 7 6 8 | 3 7 8 6
Enfant 2 : 5 9 2 | 4 0 9 | 3 4 0 1
Eliminer les doublons en utilisant la correspondance précédente :
Enfant 1 : 2 5 1 | 7 6 8 | 3 4 9 0
Enfant 2 : 5 8 2 | 4 0 9 | 3 7 6 1

107
APPLICATION AU TSP

Order Crossover (OX)


Choisir deux points de coupure :
Parent 1 : 2 5 1 | 4 0 9 | 3 7 8 6
Parent 2 : 5 9 2 | 7 6 8 | 3 4 0 1
Copier les segments entre les deux points de coupure aux mêmes positions
dans les
enfants :
Enfant 1 : - - - | 4 0 9 | - - - -
Enfant 2 : - - - | 7 6 8 | - - - -
Remplir les positions restantes en considérant la séquence des villes dans
l’autre parent, en commençant au 2ème point de coupure (lorsque la fin du
chromosome est atteinte, la séquence continue en position 1) :
Enfant 1 : 7 6 8 | 4 0 9 | 3 1 5 2
Enfant 2 : 4 0 9 | 7 6 8 | 3 2 5 1

108

Vous aimerez peut-être aussi