Vous êtes sur la page 1sur 34

Résolution des problèmes

NP-difficiles
Heuristiques & Méta-
heuristiques

Métaheuristiques (2020-2021) 1

Motivation
■ Problèmes NP-difficiles

■ L'objectif :
■ Obtenir rapidement des solutions

■ En peu de temps de développement

■ Avec un peu de connaissances du problème

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

■ Généralement dédiée à la résolution d’un problème


particulier

■ 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.

■ Algorithmes généralement rapides et très simples


■ Principal défaut : solutions de qualité médiocre

■ 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

Heuristique du Plus Proche Voisin


Exemple 3
2 4 3
2 2

Soit l’instance, du PVC, suivante : 3 2


1 4
1 4
3 5
5
L’heuristique du PPV partant du sommet (ville) 1 donne :

Villes ajoutées Tour 2 3


1 1 2 1 2
2 1-2
5 1-2-5 4
1 2
3 1-2-5-3
4 1-2-5-3-4 4
1 -2-5-3-4-1 5 8

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

Recherche Locale classique


■ Appelée aussi la 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
PVC[Lin 65, Lin 73]
■ 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

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

■ Choix d'un voisin qui améliore la solution courante :


■ Enumérer les voisins jusqu'à ce qu'on en découvre une solution
qui améliore strictement (1ère amélioration)
■ Rechercher le meilleur voisin (meilleure amélioration)

■ Comment évaluer rapidement les voisins à chaque


itération :
■ Techniques delta, matrices de gains, …

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

Tous ces choix peuvent être critiques !

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

■ On a donc de l'ordre de n(n-1)/2 voisins d'une tournée, si n


est le nombre de villes.

■ Pour appliquer une méthode de recherche locale, il faut


donc avoir au préalable défini une notion de voisinage
d'une solution

■ Pour le même problème, plusieurs notions de voisinage


peuvent être définies.
25

Représentation d'une solution

■ Utilisation d'indicateurs d'appartenance

■ Sous forme de permutations

■ …

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

■ V = (v1, v2, …, vm)


■ vi = 1 si l'arête i appartient circuit hamiltonian
■ vi = 0 sinon a 1 b
5
2
4
6
■ Un circuit de 4 villes : d c
3
Trois solutions réalisables (parmi 64 p ossib ilités) :
(1,1,1,1,0,0), (1,0,1,0,1,1), (0,1,0,1,1,1)
27

Représentation d'une solution


Exemple : le PVC (2)
■ Chaque solution est représentée par l’ordre dans
laquelle les sommets sont visités, c.à.d., comme une
permutation circulaire des n sommets

■ Le premier sommet peut être choisi arbitrairement

■ Pour le circuit à 4 villes, 3! solutions réalisables (en


fixant le sommet a) : 1
(a)bcd (a)dcb a b
5
2
(a)bdc (a)cdb 4
6
(a)cbd (a)dbc d c
3
28

14
Notion de Voisinage
■ L'espace de recherche est structuré ; il est défini par :
■ L'ensemble des solutions de X ;
■ Un voisinage.

■ Un voisinage est un ensemble d'éléments de X :


N(s) = {s1, s2, …, sk} solutions voisines de s

■ Un voisinage introduit la notion de proximité entre les


solutions de X

29

Voisinages
Exemple 1 : PVC
■ Une solution est représentée par une permutation :
Solution s = (s1, …, si -1, si, si +1, …, sj, …, sn)

■ On considère le voisinage N1 d'une solution s


défini comme suit :
N1(s) = {(s1, …, si+1, si , …, sn) tel que i = 1, …, n-1}

■ 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

■ On représente une solution par une permutation


■ On considère le voisinage N1
■ On suppose des circuits avec 4 villes :

31

Voisinages
exemple 1 : PVC (suite 2)
1243 1342

1234 1324

2143 2134 3124 3142

2314 3214

2341 3241

2431 3421

4231 4321

2413 4213 4312 3412

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

■ On considère les voisinages 2-opt et 3-opt pour le


PVC
■ Ces voisinages ont été définis par Lin (1965)

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)

■ Il n’existe qu’une seule manière de former T' par un 2-échange


■ Nombre de voisins 2-opt d'une solution du PVC : n(n-3)/2

■ 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

■ Le voisinage 3-opt est assez large ; il y a plusieurs façons


pour former le cycle après avoir enlevé 3 arêtes

■ Nombre de voisins 2-opt d'une solution du PVC :


■ n(n-3)(n-2)

■ 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

■ Un chemin dans l’espace de recherche est une séquence de


solutions, deux solutions consécutives étant toujours voisines

■ La notion d'optimum local est liée à la structure de voisinage


choisie

41

Voisinage
(Remarques)
■ La liste des voisinages n'est pas exhaustive

■ Adapter un voisinage au problème et à la connaissance fine qu'on en a

■ Le système de voisinage doit permettre d'explorer tout l'espace des


solutions réalisables

■ Choix à effectuer en tenant compte de la fonction d'évaluation


■ calcul rapide de la différence de coût entre une solution et son voisin

■ Le voisinage doit permettre d'atteindre n'importe quelle solution à partir de


n'importe quelle autre. Sinon :
■ Multi-start partant des différentes composantes connexes (si on les connaît) ;
■ Autoriser les solutions non réalisables.

42

21
Algorithmes de recherche locale
(Questions fondamentales)
■ Définition du voisinage

■ Stratégie de recherche dans le voisinage

■ Complexité de chaque itération :


■ Dépend du nombre de solutions dans le voisinage
■ Dépend du calcul efficace du coût de chaque solution
voisine

43

Problème du voyageur de commerce


symétrique
0

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

2143 2134 3124 3142

2314 3214

2341 3241

2431 3421

4231 4321

2413 4213 4312 3412

4123 4132

1423 1432 45

Problème du voyageur de commerce


symétrique
51 50

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

■ Connexité : il doit y avoir un chemin entre chaque paire


de solutions de l’espace de recherche

■ Distance entre deux solutions : nombre de sommets


visités sur le chemin le plus court entre elles.

■ Diamètre : distance entre les deux solutions les plus


eloignées (diamètres réduits !)

47

Algorithmes de recherche locale


(Difficultés)
■ Arrêt prématuré sur le premier optimum local

■ Sensibles à la solution de départ

■ Sensibles au voisinage choisi

■ Sensibles à la stratégie de recherche

■ 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)

■ Accepter parfois des solutions qui n’améliorent pas la solution courante, de


façon à pouvoir sortir d’un optimum local

■ Multi-départ (ou relance) : appliquer l’algorithme de recherche locale à


partir de plusieurs solutions de départ

■ Multi-voisinages dynamiques : changer de définition de voisinage après


avoir obtenu un optimum local (par exemple, 2-opt après 3-opt)

■ Méta-heuristiques : utiliser ces méthodes générales pour réduire les


difficultés et améliorer les algorithmes de recherche locale

49

Notion de méta-heuristique (1)


■ Les méta-heuristiques sont apparues dans les années
1980 ; elles forment une famille d'algorithmes dont le
but est la résolution des problèmes d'optimisation
difficiles

■ méta-heuristique = méta + heuristique :


■ "méta" signifie en grec "au-delà" ou "niveau supérieur"
■ "heuristique" vient de "heuriskein" qui signifie "trouver"

■ Il s'agit donc de trouver des solutions à des problèmes


en utilisant plusieurs (méta)heuristiques

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

■ De très nombreuses approches méta-heuristiques ont été


proposées

■ Les plus connues:


■ Recuit Simulé (Simulated Annealing)
■ Recherche Tabou (Tabu Search)
■ Algorithmes Génétiques (Genetic Algorithms)
■ Recherche à Voisinage Variable (Variable Neighborhood Search)
■ Colonies de Fourmis (Ant System)
■ …

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]

■ “A metaheuristic is an iterative master process that guides


and modifies the operations of subordinate heuristics to
efficiently produce high-quality solutions. It may manipulate
a complete (or incomplete) single solution or a collection of
solutions at each iteration. The subordinate heuristics may
be high (or low) level procedures, or a simple local search, or
just a constructive method.” [S. Voß et al., 1999]

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

■ Une simple procédure de recherche locale ou des processus d’apprentissage complexes

■ En général non-déterministes et ne donnent aucune garantie d’optimalité

■ 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

■ Peuvent faire usage de l’expérience accumulée durant la recherche de l’optimum, pour


mieux guider la suite du processus de recherche

53

Méta-heuristiques
Classifications possibles
■ S’inspirent de la nature ou ne s’en inspirent pas

■ Multi-solutions ou mono-solution

■ Fonction objectif statique ou dynamique

■ Utilisent une ou plusieurs structures de voisinage

■ Usage de la mémoire ou aucun historique du passé


54

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

■ Diversification (ou exploration)


■ permet d’orienter la recherche vers de nouvelles zones (prometteuses)
dans l’espace de recherche

■ Une recherche heuristique efficace


■ nécessite un bon compris entre intensification et diversification

■ Les méta-heuristiques fournissent des moyens différents


pour la mise en oeuvre de ces deux principes
complémentaires

Diversification & Intensification


■ Il doit exister un équilibre entre la diversification et
l'intensification
■ La diversification se rapporte à l'exploration de l'espace de
recherche
■ L'intensification signifie l'exploitation de l'expérience de
recherche (concentrer la recherche dans une petite région)

■ L'équilibre est important :


■ pour identifier rapidement des régions avec des solutions de
qualité élevée
■ et pour ne pas perdre beaucoup de temps avec les régions
qui ne fournissent pas de bonnes solutions

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

■ Les méta-heuristiques multi-solutions


Appelées méthodes de populations ou évolutives

■ Les méta-heuristiques hybrides

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

■ D'où le besoin de stratégies qui permettent


d'éviter le piège des minima locaux et
poursuivre la recherche vers de "meilleures"
solutions

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

Vous aimerez peut-être aussi