Vous êtes sur la page 1sur 9

Heuristique et métaheuristique

 Un algorithme heuristique permet d’identifier au


moins une solution réalisable à un problème
IFT1575 Modèles de recherche opérationnelle (RO) d’optimisation, mais sans garantir que cette solution
soit optimale
 Exemple : appliquer une fois la méthode du gradient
8. Optimisation combinatoire à un modèle de programmation non convexe
 Une métaheuristique est une stratégie générale,
applicable à un grand nombre de problèmes, à partir
de laquelle on peut dériver un algorithme heuristique
pour un problème particulier

8. Optimisation combinatoire 2

Optimisation combinatoire Problème du voyageur de commerce


 Domaine qui étudie les problèmes de la forme :  Un voyageur de commerce doit visiter un certain
max x∈X f ( x) nombre de villes
où X est un ensemble fini, mais de très grande taille  Il doit visiter chaque ville une et une seule fois
 Exemples :  Étant donné des distances entre chaque paire de
 Problème de l’arbre partiel minimum : X est l’ensemble de villes, il doit minimiser la distance totale parcourue
tous les arbres partiels possibles  On peut représenter ce problème par un graphe :
 Programmation linéaire : X est l’ensemble de tous les points chaque ville correspond à un sommet et chaque arête
extrêmes du domaine réalisable à une paire de villes pouvant être visitées l’une à la
 Dans ces deux exemples, on peut faire beaucoup suite de l’autre
mieux que d’énumérer toutes les solutions  Le problème correspond à trouver un tour complet
 Pour d’autres problèmes, on ne sait pas vraiment (circuit Hamiltonien) dans ce graphe qui minimise la
faire beaucoup mieux!!! somme des distances
8. Optimisation combinatoire 3 8. Optimisation combinatoire 4

1
Exemple Méthodes exactes
 Problème d’optimisation combinatoire : X est
l’ensemble des tours possibles
 Dans un graphe complet, il y a (n-1)!/2 tours
possibles, donc X est de très grande taille
 Il n’existe pas d’algorithme efficace comme pour le
problème de l’arbre partiel minimum
 Le mieux (empiriquement) est d’utiliser la
programmation en nombres entiers :
 Dantzig-Fulkerson-Johnson 1954!
 Aujourd’hui, on peut résoudre des problèmes ayant plus de
10000 villes : http://www.tsp.gatech.edu/
8. Optimisation combinatoire 5 8. Optimisation combinatoire 6

Méthodes heuristiques Méthode de montée (descente)


 Il faut être conscient que ces méthodes exactes  Étant donné une solution réalisable initiale, on tente
peuvent prendre beaucoup de temps, surtout lorsque de l’améliorer par une modification d’un certain type
les problèmes sont de grande taille  Dans l’ensemble de toutes les modifications d’un
 Une autre approche consiste à utiliser des méthodes certain type, on choisit celle qui améliore le plus la
heuristiques visant à identifier rapidement de bonnes valeur de l’objectif (s’il y en a une!)
solutions  Cette approche est une métaheuristique, appelée
 On les classe souvent en deux catégories : méthode de montée (max) ou de descente (min)
 Méthodes constructives : permettent de construire une  Exemple : méthode du gradient en programmation
solution réalisable non linéaire
 Méthodes d’amélioration : permettent de visiter plusieurs  Modification : faire un pas dans la direction du gradient
solutions réalisables en tentant d’améliorer la valeur de
l’objectif (l’objet de notre étude)  On calcule la modification (t*) qui améliore le plus la valeur
de l’objectif
8. Optimisation combinatoire 7 8. Optimisation combinatoire 8

2
Inversion de sous-tours Inversion de sous-tours : exemple
 Pour le problème du voyageur de commerce, on peut
définir plusieurs types de modification
 Un type de modification possible consiste à inverser
l’ordre de visite d’une sous-séquence de villes
 Par exemple, si la séquence de visite des villes est
1-2-3-4-5-6-7-1 et que nous choisissions d’inverser la
sous-séquence 3-4, la solution 1-2-4-3-5-6-7-1 serait
obtenue suite à cette modification
 Sur notre exemple, on peut vérifier que la distance
totale passe de 69 à 65 suite à cette modification

8. Optimisation combinatoire 9 8. Optimisation combinatoire 10

Descente par inversion de sous-tours Exemple


 Identifier une solution réalisable initiale  Solution initiale : 1-2-3-4-5-6-7-1 (69)
 Considérer toutes les inversions de sous-tours et  Inversions de sous-tours (les autres possibilités ne
choisir celle qui améliore le plus la distance totale mènent pas à une solution réalisable) :
parcourue par le nouveau tour ainsi obtenu  1-3-2-4-5-6-7-1 : 68
 Arrêter s’il n’y a aucune inversion de sous-tours qui  1-2-4-3-5-6-7-1 : 65
permette d’améliorer la distance totale parcourue  1-2-3-5-4-6-7-1 : 65
1-2-3-4-6-5-7-1 : 66
 Cette méthode est intéressante, mais elle ne garantit 

pas de trouver une solution optimale  Il y a deux modifications qui diminuent le plus la
 Elle identifie plutôt un optimum local (par rapport au distance : on choisit la première
type de modification utilisé)

8. Optimisation combinatoire 11 8. Optimisation combinatoire 12

3
Exemple (suite) Exemple (suite)
 Solution courante : 1-2-4-3-5-6-7-1 (65)  Pourtant, la solution obtenue de valeur 64 n’est pas
 Inversions de sous-tours : optimale : la solution 1-2-4-6-7-5-3-1 est de valeur
 1-2-3-4-5-6-7-1 : 69 (solution précédente!) 63 et on peut vérifier qu’elle est optimale
 1-2-4-6-5-3-7-1 : 64  Plusieurs métaheuristiques utilisent la même
 Il n’y a qu’une seule modification qui diminue la approche (par type de modifications, ou voisinage)
distance totale : on la choisit que la descente, mais tentent d’éviter de demeurer
 Inversions à partir de 1-2-4-6-5-3-7-1 : piégé dans un minimum local (recherche avec
 1-2-4-3-5-6-7-1 : 65 (solution précédente!) tabous, recuit simulé)
 1-2-4-6-5-7-3-1 : 66
 D’autres tentent de combiner plusieurs solutions
 Aucune modification n’améliore la valeur de l’objectif:
on arrête (populations) pour en générer de nouvelles
(algorithmes génétiques)
8. Optimisation combinatoire 13 8. Optimisation combinatoire 14

Recherche avec tabous Recherche avec tabous (suite)


 L’idée de cette méthode est de permettre des  À cette fin, on conservera une liste des dernières
modifications qui n’améliorent pas la valeur de modifications effectuées en rendant taboue (en
l’objectif interdisant) la modification inverse
 Toutefois, on choisira toujours la meilleure  Cette liste taboue peut être vue comme une mémoire
modification possible à court terme permettant de guider la recherche
 Mais nous venons de voir qu’une des modifications  A chaque itération, on choisit la meilleure
possibles nous ramène à la solution précédente modification possible (excluant celles qui sont
 Il faut donc changer la définition de l’ensemble des taboues), puis on met à jour cette liste en ajoutant la
modifications possibles pour interdire celles qui nous modification inverse de celle effectuée
ramènent à la solution précédente

8. Optimisation combinatoire 15 8. Optimisation combinatoire 16

4
Recherche avec tabous (suite) Retour au voyageur de commerce
 Contrairement à la méthode de descente, il n’y a pas  Voisinage : inversion de sous-tours, ce qui implique
de critère d’arrêt simple l’ajout de deux liens et l’élimination de deux liens
 Typiquement, on utilise une combinaison des critères  Liste taboue : les deux liens ajoutés sont insérés
suivants : dans la liste taboue; une modification est taboue si
 Nombre maximum d’itérations les deux liens à éliminer sont dans la liste taboue
 Temps limite  On ne conservera dans la liste taboue que les liens
 Nombre d’itérations successives sans amélioration ajoutés lors des deux dernières itérations : on dit que
 Il n’y a plus de modification possible la longueur de la liste taboue est 4
 Adaptation de cette métaheuristique pour résoudre  On arrête l’algorithme lorsque trois itérations
un problème particulier : structure de voisinage + consécutives sans amélioration ont été exécutées (ou
implantation de la liste taboue lorsqu’il n’y a plus de modification possible)
8. Optimisation combinatoire 17 8. Optimisation combinatoire 18

Exemple Exemple (suite)


 Reprenons le même exemple : la recherche avec  À partir de la solution courante 1-2-4-6-5-3-7-1, il y a
tabous effectue les mêmes modifications que la deux modifications :
descente, mais gère également la liste taboue  Inversion de la sous-séquence 6-5-3 → élimination des liens
 Solution initiale : 1-2-3-4-5-6-7-1 (69) 4-6 et 3-7, mais les deux sont dans la liste taboue :
 Itération 1 : modification taboue
 Inversion de la sous-séquence 3-4 → ajout des liens 2-4 et  Inversion de la sous-séquence 3-7 → ajout des liens 5-7 et
3-5 → Liste taboue = 2-4, 3-5 3-1, élimination des liens 5-3 et 7-1 → Liste taboue = 4-6,
 Nouvelle solution : 1-2-4-3-5-6-7-1 (65) 3-7, 5-7, 3-1
 Itération 2 :  Nouvelle solution : 1-2-4-6-5-7-3-1 (66 > 65)
 Inversion de la sous-séquence 3-5-6 → ajout des liens 4-6 et  Voyons cet algorithme implanté dans IOR Tutorial
3-7 → Liste taboue = 2-4, 3-5, 4-6, 3-7
 Nouvelle solution : 1-2-4-6-5-3-7-1 (64)

8. Optimisation combinatoire 19 8. Optimisation combinatoire 20

5
Recuit simulé Recuit simulé (suite)
 Comme dans la recherche avec tabous, on permet  A partir d’une solution courante, on effectue une
des modifications qui n’améliorent pas la valeur de modification au hasard qui nous amène à une
l’objectif solution candidate
 Au lieu de choisir la modification la plus intéressante  Zc = valeur de l’objectif pour la meilleure solution
parmi toutes les modifications possibles, on en choisit  Zn = valeur de l’objectif pour la solution candidate
une au hasard  T = paramètre appelé température, qui prend une
 On va biaiser le choix vers des modifications qui valeur élevée lors des premières itérations, puis
améliorent ou tout au moins ne détériorent pas trop diminue au fil des itérations
la valeur de l’objectif  Supposons un problème de maximisation

8. Optimisation combinatoire 21 8. Optimisation combinatoire 22

Recuit simulé (suite) Recuit simulé (suite)


 Si Zn ≥ Zc accepter la solution candidate x = (Zn – Zc)/T Prob(acceptation) = ex
 Si Zn < Zc accepter la solution candidate avec une -0,01 0,990
probabilité ex, où x = (Zn – Zc)/T -0,1 0,905
 Si T est élevé, x est près de 0 et alors ex est élevé : -0,25 0,779
on a de fortes chances d’accepter la modification
même si elle mène à une moins bonne solution -0,5 0,607

 Si T est petit, x est près de 0 lorsque Zn est près de -1 0,368


Zc et alors ex est élevé : on a de fortes chances -2 0,135
d’accepter une modification qui ne détériore pas trop -3 0,050
la valeur de l’objectif -4 0,018
 Pour un problème de minimisation, on inverse Zn et Zc -5 0,007
dans la formule
8. Optimisation combinatoire 23 8. Optimisation combinatoire 24

6
Retour au voyageur de commerce Exemple
 Voisinage : inversion de sous-tours  Solution initiale : 1-2-3-4-5-6-7-1; Zc = 69
 Choix d’une modification au hasard : on choisit au  Température initiale : T = 0,2.69 = 13,8
hasard le début et la fin de la sous-séquence à
 Modification choisie au hasard : inverser la sous-
inverser (si l’inversion n’amène pas vers une solution
réalisable, on recommence jusqu’à ce qu’on obtienne séquence 3-4 → solution candidate 1-2-4-3-5-6-7-1;
une solution candidate réalisable) Zn = 65
 La température initiale est fixée à T = 0,2.Zc, ce qui  Puisque Zn ≤ Zc, on accepte cette modification
est relativement élevé comparé à Zn – Zc  Solution courante : 1-2-4-3-5-6-7-1; Zc = 65
 Ensuite, on divise la température par 2 à toutes les  Modification choisie au hasard : inverser la sous-
cinq itérations séquence 3-5-6→ solution candidate 1-2-4-6-5-3-7-1;
 On arrête après 25 itérations Zn = 64 : on l’accepte
8. Optimisation combinatoire 25 8. Optimisation combinatoire 26

Exemple (suite) Algorithmes génétiques


 Solution courante : 1-2-4-6-5-3-7-1; Zc = 64  Ces métaheuristiques sont basées sur une analogie
 Modification choisie au hasard : inverser la sous- entre le processus de génération d’une population de
séquence 3-7 → solution candidate 1-2-4-6-5-7-3-1; solutions et la théorie de l’évolution
Zn = 66  Les solutions (individus) survivent et deviennent
 Puisque Zn > Zc, Prob(acceptation) = e(-2/13,8) = 0,865 parents en croisant leurs caractéristiques (gènes),
 On génère un nombre selon une loi U[0,1] : si ce ce qui donne de nouvelles solutions, les enfants
nombre est < 0,865, on accepte la modification,
 Des mutations peuvent également intervenir
sinon, on la refuse
permettant aux solutions d’acquérir des
 Voyons cet algorithme dans IOR Tutorial
caractéristiques qui ne se retrouvent pas chez leurs
 La même approche peut être adaptée pour résoudre parents
des modèles de programmation non convexe (voir
dans IOR Tutorial)
8. Optimisation combinatoire 27 8. Optimisation combinatoire 28

7
Algorithmes génétiques (suite) Retour au voyageur de commerce
 Étant donné une population de solutions, on évalue la  Les solutions qui forment la population initiale sont
valeur de l’objectif (le degré d’adaptation) pour choisies au hasard
chacune  Des parents sont choisis au hasard (mais on choisit
 En biaisant le choix vers les solutions les mieux davantage parmi les mieux adaptés)
adaptées, on choisit les solutions qui seront croisées  Supposons qu’on a les deux parents suivants :
pour devenir des parents  P1 : 1-2-3-4-5-6-7-1
 Chaque couple de parents donnera naissance à deux  P2 : 1-2-4-6-5-7-3-1
enfants en croisant leurs caractéristiques (et en  Afin de générer un enfant, on choisira pour chaque
permettant des mutations de temps en temps) sommet un lien choisi au hasard parmi les liens des
 Ajouter les enfants à la population et éliminer de la deux parents
population les solutions les moins adaptées
8. Optimisation combinatoire 29 8. Optimisation combinatoire 30

Exemple Exemple (suite)


 P1 : 1-2-3-4-5-6-7-1 et P2 : 1-2-4-6-5-7-3-1  Pour offrir plus de choix, on va considérer que la
 Pour le sommet 1, on peut choisir 1-2 ou 1-7 (P1) ou tournée construite jusqu’à maintenant (1-2-4-3) est
1-2 ou 1-3 : P(1-2) = ½, P(1-7) = ¼, P(1-3) = ¼ une inversion de celle de P1 : 1-2-3-4-5-6-7-1
 Supposons qu’on choisit 1-2  Pour compléter l’inversion de 3-4, on ajouterait le lien
 Pour le sommet 2, on peut choisir 2-3 ou 2-4 3-5, qu’on considère alors comme un choix possible
pour l’enfant
 Supposons qu’on choisit 2-4 : 1-2-4
 Supposons qu’on fasse ce choix : 1-2-4-3-5
 Pour le sommet 4, on peut choisir 4-3 ou 4-5 ou 4-6
 Les choix sont alors : 5-6 (P1) ou 5-6 ou 5-7 (P2)
 Supposons qu’on choisit 4-3 : 1-2-4-3
 Choisissons 5-6 : 1-2-4-3-5-6
 Pour le sommet 3, on peut choisir 3-7, mais rien
d’autre!...  On doit alors compléter le tour : 1-2-4-3-5-6-7-1
8. Optimisation combinatoire 31 8. Optimisation combinatoire 32

8
Exemple (suite)
 Cette procédure de génération d’un enfant inclut
également une mutation (avec probabilité < 0,1), qui
consiste à rejeter le lien choisi provenant d’un parent
et à choisir un lien au hasard parmi tous ceux
possibles
 Il est possible que les choix successifs nous amènent
dans un cul-de-sac (aucun tour complet possible à
partir du tour partiel) : on reprend alors la procédure
depuis le début
 Voir cet algorithme génétique dans IOR Tutorial

8. Optimisation combinatoire 33

Vous aimerez peut-être aussi