Académique Documents
Professionnel Documents
Culture Documents
ProblemesNP-difficiles-converti
ProblemesNP-difficiles-converti
NP-difficiles
Heuristiques & Méta-
heuristiques
Métaheuristiques (2020-2021) 1
Motivation
■ Problèmes NP-difficiles
■ L'objectif :
■ Obtenir rapidement des solutions
1
Méthodes approchées
■ Une méthode approchée pour un POC est un
algorithme qui a pour but de rechercher une
solution réalisable de bonne qualité, mais sans
garantie d'optimalité, en un temps de calcul
raisonnable
■ On distingue :
■ Les heuristiques
■ Les méta-heuristiques
Notion d'heuristique
■ Méthode approchée
■ Plusieurs types :
■ Méthodes constructives
■ Méthodes d'amélioration (ou de recherche locale)
classiques
■ …
2
Méthodes constructives
■ Méthodes très anciennes en O.C. et en I.A.
■ Construisent pas à pas une solution
■ Engendrent une solution en ajoutant chaque
composant individuel (arc, nœud, variable)
jusqu' à l'obtention d'une solution réalisable
■ Exemple :
■ Les algorithmes gloutons
Algorithmes gloutons
■ Méthodes constructives
■ A chaque itération (ou étape constructive)
■ Le choix le plus intéressant, relativement à un critère donné, est
effectué pour avoir la meilleure solution partielle.
■ Le choix effectué est définitif, ce qui interdit toute modification
ultérieure.
■ Exemple :
■ L'heuristique du plus proche voisin pour le problème du Voyageur
de Commerce
6
3
Algorithmes gloutons
Exemple
■ Heuristique du plus proche voisin (Nearest
neighbor heuristic ) :
■ On choisit une première ville au hasard
■ On construit un chemin en allant vers la ville la
plus proche n'appartenant pas déjà au chemin
■ On joigne la première et la dernière ville, une
fois toutes les villes traitées
4
Algorithme du plus proche voisin
Algorithme PPV_PVC(matrice distances d)
Initialiser la longueur totale : lg € 0
k ← 0
Partir d'une ville i au hasard
tantque k < #villes faire
Chercher la ville j la plus proche de i
sans sous-tour
lg ← lg +d(i,j)
i ← j
k ← k + 1
ftq
finAlgo
10
5
Méthodes d'amélioration
(ou de recherche locale) classiques
■ Principe :
■ On part d'une solution réalisable s du POC défini par (X, f)
■ On définit "un voisinage" V(s) de s (V(s) est une partie deX)
■ On cherche s'il existe s' dans V(s) tel que : f(s')<f(s)
■ Si tel est le cas, on remplace s par s' et on recommence
■ Sinon on s'arrête : on a obtenu un minimum local
■ Solution de départ :
■ générée aléatoirement
■ obtenue par un algorithme glouton
11
Recherche Locale
Illustration
12
6
Recherche Locale
Décisions à prendre
■ Solution de départ :
■ Générée aléatoirement
■ Obtenue à l'aide d'un algorithme glouton
13
Recherche locale
Définitions
■ Le voisinage d’une solution s ∈ X est un sous-
ensemble de X :
V: X 2X
■ Toute solution dans le voisinage V(s) de s est dite
voisine à s
■ s ∈ X minimum local, par rapport au voisinage
V(s), si f(s)≤ f(s'); pour tout s' ∈ V(s)
■ sCX minimum global, si f(s) ≤ f(s'); pour tout s' ∈ S
■ La notion de minimum local est liée à la structure
de voisinage choisie
14
7
Recherche Locale
Eléments de base
■ Voisinage :
■ Fonction qui associe à chaque élément de X, un sous-ensemble de X
■ Notion d'optimum local relative au voisinage
■ Fonction d'évaluation :
■ Permet de mesurer la qualité des solutions
■ C'est l'objectif initial si l'on travaille dans l'espace de recherche réalisable
■ Objectif initial+une fonction de pénalité si l'on travaille dans l'espace de
recherche non réalisable
■ Stratégie de déplacement :
■ Règle de choix permettant de passer d'une solution à une solution voisine
15
Recherche Locale
L'algorithme général
■ Départ :
■ solution initiale obtenue par une méthode constructive
■ Itération :
■ amélioration de la solution courante par une recherche dans
son voisinage
■ Arrêt :
■ premier optimum local trouvé (il n'y a pas desolution voisine
meilleure que la solution courante)
16
8
Recherche Locale
La descente (simple)
■ À chaque itération, sélectionner dans le voisinage une
solution meilleure que la solution courante
Algorithme descente (solution initiale sO) s
← sO
arrêt ← faux
tantque arrêt = faux faire
générer un voisinage N(s)
si il n'existe pas s'dans N(s) tq
f(s') < f(s) alors arrêt ← vrai
sinon
choisir un voisin s' de s tq
f(s') < f(s)
s ← s'
fsi
ftq
retourner s
finAlgo
17
La descente (simple)
Illustration
18
9
La descente (simple)
Illustration
19
La descente (simple)
Illustration
20
10
La descente (simple)
Illustration
21
Recherche Locale
La plus grande descente
■ À chaque itération, sélectionner la meilleure solution du
voisinage de la solution courante
Algorithme plus_grande_descente (solution initiale sO)
s ← sO
arrêt ← faux
tantque arrêt = faux faire
générer un voisinage N(s)
choisir le meilleur voisin s' de s
si f(s') < f(s) alors
s ← s'
sinon
arrêt ← vrai
fsi
ftq
retourner s
finAlgo
22
11
La plus grande descente
Illustration
23
Recherche Locale
■ Choix à faire :
■ Représentation de l’espace des solutions réalisables
■ Fonction à optimiser, de coût
■ Structure du voisinage
24
12
Exemple de voisinage
■ Dans le problème du voyageur de commerce, les voisins
d'une tournée sont les tournées obtenues
■ En supprimant deux arcs non contigus de la tournée
■ Et en reconnectant les deux sous-tournées obtenues
■ …
26
13
Représentation d'une solution
Exemple : le PVC (1)
■ Chaque solution est représentée par un vecteur de
m éléments, où m est le nombre d'arêtes dans le
circuit hamiltonian
14
Notion de Voisinage
■ L'espace de recherche est structuré ; il est défini par :
■ L'ensemble des solutions de X ;
■ Un voisinage.
29
Voisinages
Exemple 1 : PVC
■ Une solution est représentée par une permutation :
Solution s = (s1, …, si -1, si, si +1, …, sj, …, sn)
■ Exemple :
Voisins de (1,2,3,4) = {(2,1,3,4),(1,3,2,4), (1,2,4,3)}
30
15
Voisinages
exemple 1 : PVC (suite 1)
■ L'espace de recherche défini par :
■ l’ensemble de solutions X
■ un voisinage N
31
Voisinages
exemple 1 : PVC (suite 2)
1243 1342
1234 1324
2314 3214
2341 3241
2431 3421
4231 4321
4123 4132
1423 1432
32
16
Voisinages
Exemple 2 : PVC
■ Le voisinage le plus connu pour le PVC est appelé
k-opt :
■ Consiste à enlever k arêtes et à reformer un cycle en
ajoutant k autres arêtes
■ L'énumération du voisinage est possible en O(n k ), où n
= #villes
33
Voisinages
exemple 2 : PVC
■ Voisinage 2-opt, appelé aussi 2-echange, pour le PVC
■ Pour ce voisinage, un tour T' est voisin d’un tour T si T' résulte
de T après l’échange de 2 arêtes, non adjacentes, e et e' de T
par 2 nouvelles arêtes :
■ Une illustration de ce procédé est proposée par la figure suivante
■ On suppose que ces arêtes sont (A,B) et (C,D) et de même direction
■ On supprime les arcs (A,B) et (C,D) et on les remplace par les arcs
(A,C) et (B,D)
■ Exercice
■ Donner un schéma de l'espace de recherche (4 villes)
34
17
Voisinage 2-Opt
35
Voisinage 2-opt
36
18
Voisinages
exemple 3 : PVC
■ Voisinage 3-Opt pour le PVC
■ Consiste à enlever 3 arêtes et à reformer un cycle en ajoutant
3 autres arêtes :
■ Une illustration dans la figure suivante
■ Exercice :
■ Donner un schéma de l'espace de recherche (4 villes)
37
Voisinage 3-Opt
38
19
Voisinage 3-opt
39
Voisinage 3-opt
Un exemple
40
20
Voisinages
■ L’espace de recherche peut être vu comme un graphe où les
sommets représentent les solutions et les arêtes connectent
les paires de solutions voisines
■ Cet espace peut être vu aussi comme une surface avec des
cols et des sommets, définis par la valeur des solutions et par
la proximité (les relations de voisinage) entre elles
41
Voisinage
(Remarques)
■ La liste des voisinages n'est pas exhaustive
42
21
Algorithmes de recherche locale
(Questions fondamentales)
■ Définition du voisinage
43
6 5
7
1 8 4
14
15 9
10
11
2 3
44
22
Problème du voyageur de commerce
symétrique
1243 1342
1234 1324
2314 3214
2341 3241
2431 3421
4231 4321
4123 4132
1423 1432 45
48 49
49 50 52 50
47 48
46 48
50 51
49 48
50 52 50 49
48 47
48 46
46
23
Algorithmes de recherche locale
(Performance)
■ Différents aspects de l’espace de recherche
peuvent influencer la performance d’un algorithme
de recherche locale
47
■ Nombre d’itérations
48
24
Algorithmes de recherche locale
(réduire les difficultés)
■ Réduction des voisinages : considérer un sous-ensemble du voisinage (par
exemple, par randomisation)
49
50
25
Notion de méta-heuristique (2)
■ Méthode approchée, mais applicable à un vaste domaine
d’applications:
■ concept général de résolution approchée
51
Méta-heuristiques
Quelques définitions
■ “A metaheuristic is formally defined as an iterative
generation process which guides a subordinate heuristic by
combining intelligently different concepts for exploring and
exploiting the search space, learning strategies are used to
structure information in order to find efficiently near-optimal
solutions.” [I.H. Osman and G. Laporte, 1996]
52
26
Méta-heuristiques
Caractéristiques [Blum et Roli 2003]
■ Stratégies qui permettent de guider la recherche d’une solution optimale
■ But visé : explorer l’espace de recherche efficacement afin de déterminer des solutions
(presque) optimales
■ Peuvent contenir des mécanismes qui permettent d’éviter d’être bloqué dans des régions de
l’espace d recherche
■ Concepts de base pouvant être décrit de manière abstraite, sans faire appel à un problème
spécifique
■ Peuvent faire appel à des heuristiques qui tiennent compte de la spécificité du problème
traité, mais ces heuristiques sont contrôlées par une stratégie de niveau supérieur
53
Méta-heuristiques
Classifications possibles
■ S’inspirent de la nature ou ne s’en inspirent pas
■ Multi-solutions ou mono-solution
27
Méta-heuristiques
Deux principes de base
■ Intensification (ou exploitation)
■ permet d’examiner en profondeur une zone particulière de l’espace de
recherche
56
28
Méta-heuristiques
Classification étudiée
■ Dépend du nombre de solutions utilisées en même
temps
■ On distingue :
■ Les méta-heuristiques mono-solution
Appelées méthodes de trajectoire ou de recherche locale
57
Méthodes de trajectoire
(de recherche locale)
■ Manipulent une seule solution à la fois
■ Tentent itérativement d'améliorer une solution
■ Le processus de recherche est caractérisé par
une trajectoire dans l'espace de recherche
■ Exemples :
■ recuit simulé ;
■ recherche tabou ;
■ ...
58
29
Méthodes de populations
(évolutives)
■ Travaillent avec un ensemble (une population) de
solutions (individus)
■ Le processus de recherche peut être vu comme
l'évolution d'un ensemble de points dans l'espace
de recherche
■ Exemples :
■ Algorithmes génétiques ;
■ Algorithmes de colonies de fourmis ;
■ …
59
Méthodes Hybrides
■ Combinent plusieurs méta-heuristiques
■ Exemples :
■ GRASP ;
■ Scatter Search ;
■ …
60
30
Méthodes de trajectoire
■ Recherche locale de base : l'amélioration
itérative
■ Le recuit simulé
■ La recherche taboue
■ La recherche à voisinages variables
■ La recherche locale guidée
■ La recherche locale itérée
■ …
61
L'amélioration itérative
■ Appelée aussi la descente
■ La recherche locale la plus élémentaire (de
base)
■ Un mouvement (un déplacement ou une
transformation) est effectué seulement si la
solution qu'il produit est meilleure que la
solution courante
■ L'algorithme s'arrête au premier minimum
rencontré
62
31
L'amélioration itérative
Illustration
63
L'amélioration itérative
algorithme descente simple
64
32
L'amélioration itérative
algorithme plus grande descente
65
L'amélioration itérative
difficultés
■ Recherche bloquée dans un minimum local
■ Le coût du minimum local a une valeur qui
peut être très éloignée de l'optimum global
66
33
L'amélioration itérative
remèdes aux difficultés
■ Accepter, sous certaines conditions, de se
déplacer d'une solution s vers une solution s'
voisine qui fait décroître la qualité
■ Utiliser plusieurs structures de voisinages
durant la recherche
■ Faire varier la fonction objectif le processus
de recherche (pour rendre moins attractifs
les minima locaux déjà visités)
67
34