SlideShare a Scribd company logo
1 of 29
Download to read offline
la recherche Tabou
2 
historique 
1986 : bien que son origine remonte à 1977, la RT n’est proposée qu'à l'année 1986 par Fred Glover [Glover 86] 
méthode développée pour résoudre des problèmes combinatoires (la plupart NP-durs) 
révolution de cette méthode par rapport aux autres: permet de surmonter le problème des optima locaux par l’utilisation de listes taboues (principe de mémoire)
3 
Principe de base 
poursuivre la recherche de solutions même lorsqu’un optimum 
local est rencontré et ce, 
en permettant des déplacements qui n’améliorent pas la solution 
en utilisant le principe de mémoire pour éviter les retours en arrière (mouvements cycliques)
4 
Principe de base 
•Dans recuit simulé, pour ne pas rester bloqué dans un minimum local, le recuit simulé accepte de façon probabiliste des configurations accroissant temporairement le coût de la solution. 
•La recherche Tabou procède de même, mais de manière déterministe, en prenant comme nouvelle configuration celle qui a le coût le plus faible dans le voisinage de la configuration courante même si elle est moins bonne que la configuration courante. 
•Cette stratégie présente cependant l'inconvénient de pouvoir se bloquer dans des cycles, i.e. revenir sur des configurations déjà rencontrées. 
C'est pourquoi, pour ne pas boucler et permettre de sortir des pièges formés par les minima locaux, on contraint la recherche, en classant certains mouvements (le passage d'une configuration à une autre) comme tabous ( interdits )
5 
Principes de base 
 La recherche Tabou est donc une procédure itérative guidant le choix des mouvements, en utilisant les heuristiques suivantes : 
assurer la décroissance de la fonction coût que l'on cherche à minimiser, en sélectionnant un mouvement faisant décroître ce coût; 
si aucun mouvement ne permet de faire diminuer le coût, choisir le mouvement entraînant la remontée en coût la plus faible; 
maintenir une liste de mouvements ou configurations tabous durant une certaine période, afin d'interdire le retour vers une configuration déjà rencontrée.
6 
Problème Exemple: Problème d'affectation quadratique 
Etant donné n objets et des flots fij entre l'objet i et l'objet j (i,j =1..n), et n emplacements avec des distances drs entre les emplacements r et s (r,s = 1..n), il s'agit de placer les n objets sur les n emplacements de manière à minimiser la somme des produits flots  distances. 
Chercher une permutation p, dont la ième composante pi donne la place de l'objet i, qui minimise 
  ninjpipjijdf11.
7 
Problème Exemple: 
Problème d'affectation quadratique 
 Applications pratiques: 
 Répartition de batiments ou services (campus universitaire, 
hôpital) fij représente la fréquence avec laquelle les personnes 
doivent se déplacer du batiment i au batiment j. dpipj est la 
distance entre l'emplacement pi et l'emplacement pj 
 Placement de modules logiques dans des circuits 
électroniques : fij représente le nombre de connexions devant 
être réalisés entres les modules i et j dpipj est la distance entre 
l'emplacement pi et l'emplacement pj 
  
  
n 
i 
n 
j 
ij pipj f d 
1 1 
min . 
Exemple de solution d'un problème de connexion entre modules électroniques, 
l'épaisseur des traits est proportionnelle au nombre de connexions
8 
Algorithme de base 
Hypothèse 
Le problème à résoudre peut se formuler de la manière suivante: 
min f (s) 
sS 
f : la fonction objectif 
s : une solution réalisable 
S : ensemble des solutions réalisables
9 
Algorithme de base 
Schéma de l’algorithme tabou de base 
• Engendrer une configuration initiale s0 ; s := s0 
• s* := s ; f* := f(s) 
• T := {} // liste taboue 
• Répéter 
m := le meilleur mouvement parmi les mouvements non 
tabous et mouvements tabous exceptionnels (améliorant la 
meilleure solution) 
s := s  m 
si f(s) < f(s*) alors s* := s ; f* := f(s) 
Mettre T à jour (ajouter cycliquement m à T) ; 
• Jusqu’à <condition fin> 
• Retourner s*
10 
Algorithme de base 
Voisinage 
On définit pour toute solution sS un ensemble N(s)S qu'on appellera ensemble des solutions voisines de s. 
Exemple: pour le problème d'affectation quadratique: 
• s est une permutation des n objets 
•N(s) l'ensemble des solutions obtenues en transposant à chaque fois deux objets de s 
1 2 3 4 5 6 7 8 
1 2 7 4 5 6 3 8 
1 2 3 4 5 6 7 8 
1 5 3 4 2 6 7 8
11 
Algorithme de base 
Mouvement : modification apportée à une solution 
Cas du problème d'affectation quadratique : transposition de deux 
éléments dans la permutation. 
L'ensemble N(s) des solutions voisines de la solution s s'exprime comme l'ensemble des solutions admissibles que l'on peut obtenir en appliquant à la solution s un mouvement m appartenant à un ensemble de mouvements M 
L'application de m sur s sera noté sm 
On définit alors le voisinage N(s) = {s'|s'=sm, mM} 
1 2 3 4 5 6 7 8 
1 2 7 4 5 6 3 8
12 
Algorithme de base 
1 2 3 4 5 6 7 8 
1 2 7 4 5 6 3 8 
Mouvement : Trois mouvements possibles sur les permutations 
Transposition 
1 2 3 4 5 6 7 8 
1 2 4 3 5 6 7 8 
inversion 
1 2 3 4 5 6 7 8 
1 2 3 7 4 5 6 8 
déplacement 
Ces objets changent de place 
n-1 mouvements possibles 
n.(n-1)/2 mouvements possibles 
n.(n-2)+1 mouvements possibles
13 
Algorithme de base 
Mouvement : le choix du type de mouvement dépond du problème: 
Transposition: plus efficace que le déplacement pour le problème d'affectation quadratique car il ne change que la positions des objets transposés. 
Inversion : le plus mauvais vue la taille réduite du voisinage qu'il engendre 
Déplacement meilleur pour les problèmes d'ordonnancement car c'est le séquencement qui est important pas la position individuelle des taches 
n-1 mouvements possibles 
n.(n-1)/2 mouvements possibles 
n.(n-2)+1 mouvements possibles
14 
échanger 6 et 2 
Accélération de la recherche du meilleur voisin: pour certains problèmes il existe des méthodes pour accélérer cette recherche 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
Buckets 
P1 to P2 
P2 to P1 
-3 
-2 
-1 
0 
1 
2 
3 
-3 
-2 
-1 
0 
1 
2 
3 
1 
9 
10 
3 
2 
5 
7 
8 
4 
6 
gain 
P1 
P2 
Cas du problème du Bi-partitionnement de graphes :The bucket-sort technique
15 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
Buckets 
P1 to P2 
P2 to P1 
-3 
-2 
-1 
0 
1 
2 
3 
-3 
-2 
-1 
0 
1 
2 
3 
1 
9 
10 
3 
2 
5 
7 
8 
4 
6 
P1 
P2 
Seuls les gains des noeuds échangés ainsi que les noeuds qui leur sont adjacents sont recalculés 
Cas du problème du Bi-partitionnement de graphes :The bucket-sort technique
16 
Considérer seulement un sous ensemble de N(s), par exemple en tirant aléatoirement dans N(s) un nombre de solutions beaucoup plus petit que |N(s)| 
Partitionner l'ensemble M des mouvements en k sous ensembles; à chaque itération un seul de ces sous-ensembles sera examiné: On réalise un examen partiel mais cyclique du voisinage. 
avantage: un examen partiel peut engendrer une certaine diversité dans les solutions visitées car les mouvements qui auront été élus ne l'auraient jamais été avec un examen complet du voisinage 
Accélération de la recherche du meilleur voisin: D'autres techniques plus générales
17 
On peut faire l'hypothèse qu'un mouvement de bonne qualité pour une solution restera bon pour des solutions proches 
Classer à une itération l'ensemble de mouvements réalisables par qualité décroissante et les placer dans une liste de mouvements candidats. 
Pendant les quelques itérations ultérieures seuls seront considérés les mouvements classés parmi les meilleurs 
Il faut périodiquement évaluer complètement le voisinage pour conserver une liste de candidats convenable 
Accélération de la recherche du meilleur voisin: Liste de mouvements candidats
18 
Mémoire à court terme 
Problème: vérifier si une solution du voisinage a déjà été visitée 
Solution 1 Mémoriser chaque solution visitée et tester à chaque itération et pour chaque solution éligible si cette dernière a été énumérée 
Utilisation de tables de Hachage: appliquer une fonction f sur les composantes de la solution s, f(s) sera l'indice de la case dans la table de hachage qui indique l'existence de S (la valeur 1 indique l'existence de la solution, la valeur 0 indiquant son absence) 
Problème 1: problème de collisions, une solution s1 non visitée peut avoir la même fonction de hachage qu'une solution s2 visitée. 
Problème 2 ça ne permet pas de résoudre le problème de surcroit de la place mémoire tout au long des itérations 
 
Problème 3 : risque de blocage de la recherche locale faute de solutions voisines non interdites
19 
Mémoire à court terme 
Problème: vérifier si une solution du voisinage a déjà été visitée 
Solution 2: interdire le retour à une solution dont la valeur a déjà été obtenue au cours des t dernières itérations. 
Implémentation : Soit un tableau T de Taille M (suffisamment grand). Et soit f(sk) la valeur supposée entière de la solution sk retenue à l'itération k. On mémorisera dans T[f(sk) modulo M] la valeur k+t. 
Si une solution s' du voisinage potentiel de la solution à l'itération k' est telle que k' < T[f(s') modulo M], s' ne sera plus retenue comme solution éligible. Cette interdiction sera levée lorsqu'on avancera dans les itérations
20 
Mémoire à court terme 
 Problème: vérifier si une solution du voisinage a déjà été visitée 
 Problème de collision, des solutions différentes ayant la même valeur 
qu'une solution interdite seront aussi interdites; il faut que la fonction 
objectif ait une large étendue de valeurs. 
 Solution on pourra remplacer la valeur de la fonction objectif par une 
fonction de hachage à large éventail de valeurs possibles: dans le cas de 
problème sur des permutations on propose: 
i 
n 
i 
p i  1 
2 Qui prend un nombre potentiel de valeurs 
différentes proportionnel à O(n4) 
Remarque: même avec une table de hachage très grande, les collisions restent 
fréquentes. 
Exemple pour un problème sur des permutations de taille n=100, avec des 
transpositions comme structure de voisinage, environ 5 solutions entreront en 
collision avec la solution de départ si on utilise une table à 106 éléments
21 
Mémoire à court terme 
Liste de mouvements interdits 
Au lieu de restreindre le voisinage N(S) à des solutions non encore visitées on travaille plutôt sur l'ensemble des mouvements M applicables à une solution (typiquement de taille O(n) ou O(n2) 
On limite l'ensemble des mouvements applicables sur sm à ceux différents de m-1 (car (sm)m-1=s) on mémorise donc pendant un certain nombre d'itérations les mouvements inverses de ceux qui ont été effectués 
Inconvénients: si après avoir effectué la transposition (i,j) on interdit le mouvement (i,j) on effectue ensuite le transposition (i,k), l'interdiction de (i,j) empêchera de visiter certaines solutions sans garantir la prévention du bouclage: exemple (i,j)(k,p)(i,p)(k,j)(k,i)(j,p) ne modifie pas la solution.
22 
Mémoire à court terme 
Liste de mouvements interdits 
exemple (i,j)(k,p)(i,p)(k,j)(k,i)(j,p) ne modifie pas la solution. 
Prenons l'exemple i = 2, j= 4, k= 5, p = 7 
12 3 4 5 6 7 8 (i,j) 1 4 3 2 5 6 7 8 (k,p) 1 4 3 2 7 6 5 8 (i,p) 1 5 3 2 7 6 4 8 (k,j) 1 5 3 7 2 6 4 8 (k,i) 1 2 3 7 5 6 4 8 (j,p) 1 2 3 4 5 6 7 8 cyclage 
Solution: c'est pas le mouvement (i,j) qu'il faut interdire mais de remettre simultanément l'element i à la position pi et l'élément j à la position pj
23 
Mémoire à court terme 
Durée des interdictions 
Nombre de mouvements interdits 
Valeur des solutions (à minimiser) 
Moyenne de toutes les solutions visitées 
Moyenne des meilleures solutions trouvées 
5 
10 
15 
20 
25 
30 
Influence du nombre d'itérations pendant lesquelles on interdit les mouvements
24 
Mémoire à court terme 
Durée des interdictions 
Nombre de mouvements interdits 
Valeur des solutions (à minimiser) 
Moyenne de toutes les solutions visitées 
Moyenne des meilleures solutions trouvées 
5 
10 
15 
20 
25 
30 
Pour un très petit nombre de mouvements interdits, la recherche aura tendance à visiter toujours les mêmes solutions. 
Si ce nombre augmente, la probabilité de rester prisonnier dans un nombre restreint de solutions diminue et la probabilité de visiter de bonnes solutions augmente 
Si ce nombre devient très grand le nombre de mouvements disponibles devient très réduit et la recherche se retrouve encore piégée.
25 
Mémoire à court terme 
Comment fixer la durée des interdictions 
En essayant expérimentalement plusieurs nombres possibles 
En tirant aléatoirement un nombre dans un intervalle et en renouvelant périodiquement ce nombre 
Augmenter ou diminuer ce facteur sur la base de critères récoltés durant la recherche (en calculant le degré de diversité des solutions visitées, si la diversité diminue on augmente la durée des interdictions et inversement)
26 
Mémoire à court terme 
Critère d'aspiration 
•Un mouvement tabou m appliqué à une solution courante x peut paraître attrayant s'il engendre, une solution meilleure que la meilleure solution rencontrée, le mouvement m sera alors accepté, malgré son caractère tabou. 
Un mouvement tabou m appliqué à une solution x peut être accepté s'il engendre une solution jamais visitée, par exemple, si son coût n'appartient pas à la liste des coûts de toutes les solutions déjà visitées
27 
Utilisation de l'historique de recherche Pour exploiter l'information acquise au cours de l'évolution de l'algorithme, on définit des mémoires supplémentaires, ayant une vision plus globale de l'espace des configurations : les mémoires à moyen et long terme. La mémoire à moyen terme sert à intensifier la recherche vers des zones favorables de l'espace de recherche tandis que la mémoire à long terme diversifie la recherche, en favorisant les zones non encore explorées. 
Direction de la recherche à moyen et long terme
28 
•Intensification: vient du constat que les meilleures configurations ont des caractéristiques communes. Dans cette optique, l'intensification cherche, dans un premier temps, les caractéristiques communes aux bonnes solutions, puis oriente la recherche vers des zones de l'espace de recherche dont les configurations présentent les caractéristiques mises en évidence 
•Ce processus est répété régulièrement, en utilisant une mémoire à moyen terme permettant d'enregistrer et d'analyser les meilleures configurations rencontrées durant un certain laps de temps 
Comme méthodes d'intensification on peut citer : 
la pénalisation des mouvements, conduisant à des configurations ne présentant pas les caractéristiques désirées, en modifiant provisoirement la fonction de coût ; 
•la restriction temporaire de la recherche, en contraignant certaines variables des configurations (x = (x1; x2; :::; xN), N étant le nombre de variables) à avoir leur valeurs dans un intervalle de taille restreinte. 
Direction de la recherche à moyen et long terme
29 
•Diversification: Elle consiste à guider L'exploration vers de nouvelles zones de l'espace de recherche, contenant des configurations qui sont très différentes de celles rencontrées jusqu'à présent. Pour cela, on mémorise des informations sur les configurations visitées tout au long de la recherche, d'où le qualificatif de mémoire à long terme, afin de trouver les caractéristiques des configurations qui ne sont pas souvent rencontrées ou de trouver les mouvement qui n'ont jamais été utilisés et forcer leur utilisation afin de garantir l'extraction de l'optimum local 
Pour implanter la diversification, on utilise notamment les principes suivants : 
•pénaliser les mouvements aboutissant à des configurations fréquemment rencontrées ; 
•interdire les mouvements dont la fréquence d'occurrence dépasse un certain seuil ; 
•utiliser une liste Tabou longue activée périodiquement 
Direction de la recherche à moyen et long terme

More Related Content

What's hot

Les 10 plus populaires algorithmes du machine learning
Les 10 plus populaires algorithmes du machine learningLes 10 plus populaires algorithmes du machine learning
Les 10 plus populaires algorithmes du machine learningHakim Nasaoui
 
Le problème de voyageur de commerce: algorithme génétique
Le problème de voyageur de commerce: algorithme génétiqueLe problème de voyageur de commerce: algorithme génétique
Le problème de voyageur de commerce: algorithme génétiqueRima Lassoued
 
Introduction au Deep Learning
Introduction au Deep Learning Introduction au Deep Learning
Introduction au Deep Learning Niji
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexitéSana Aroussi
 
Chapitre 4-Apprentissage non supervisé (1) (1).pdf
Chapitre 4-Apprentissage non supervisé (1) (1).pdfChapitre 4-Apprentissage non supervisé (1) (1).pdf
Chapitre 4-Apprentissage non supervisé (1) (1).pdfZizoAziz
 
Algorithme Colonie de fourmis
Algorithme Colonie de fourmisAlgorithme Colonie de fourmis
Algorithme Colonie de fourmiskamar MEDDAH
 
Réseaux de neurones récurrents et LSTM
Réseaux de neurones récurrents et LSTMRéseaux de neurones récurrents et LSTM
Réseaux de neurones récurrents et LSTMJaouad Dabounou
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrigeAmineMouhout1
 
Les réseaux de neurones
Les réseaux de neuronesLes réseaux de neurones
Les réseaux de neuronesMariam Amchayd
 
Apprentissage supervisé.pdf
Apprentissage supervisé.pdfApprentissage supervisé.pdf
Apprentissage supervisé.pdfhanamettali
 
Introduction au Machine Learning
Introduction au Machine LearningIntroduction au Machine Learning
Introduction au Machine LearningMathieu Goeminne
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceLilia Sfaxi
 
Algorithme génétique
Algorithme génétiqueAlgorithme génétique
Algorithme génétiqueIlhem Daoudi
 

What's hot (20)

Les 10 plus populaires algorithmes du machine learning
Les 10 plus populaires algorithmes du machine learningLes 10 plus populaires algorithmes du machine learning
Les 10 plus populaires algorithmes du machine learning
 
Le problème de voyageur de commerce: algorithme génétique
Le problème de voyageur de commerce: algorithme génétiqueLe problème de voyageur de commerce: algorithme génétique
Le problème de voyageur de commerce: algorithme génétique
 
Introduction au Deep Learning
Introduction au Deep Learning Introduction au Deep Learning
Introduction au Deep Learning
 
L'algorithme du Recuit simule
L'algorithme du Recuit simuleL'algorithme du Recuit simule
L'algorithme du Recuit simule
 
5.5 Clustering
5.5 Clustering5.5 Clustering
5.5 Clustering
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexité
 
Règles d’association
Règles d’associationRègles d’association
Règles d’association
 
Chapitre 4-Apprentissage non supervisé (1) (1).pdf
Chapitre 4-Apprentissage non supervisé (1) (1).pdfChapitre 4-Apprentissage non supervisé (1) (1).pdf
Chapitre 4-Apprentissage non supervisé (1) (1).pdf
 
Algorithme Colonie de fourmis
Algorithme Colonie de fourmisAlgorithme Colonie de fourmis
Algorithme Colonie de fourmis
 
Réseaux de neurones récurrents et LSTM
Réseaux de neurones récurrents et LSTMRéseaux de neurones récurrents et LSTM
Réseaux de neurones récurrents et LSTM
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
 
Deep learning
Deep learningDeep learning
Deep learning
 
Les réseaux de neurones
Les réseaux de neuronesLes réseaux de neurones
Les réseaux de neurones
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
 
Apprentissage supervisé.pdf
Apprentissage supervisé.pdfApprentissage supervisé.pdf
Apprentissage supervisé.pdf
 
Les systèmes de recommandations
Les systèmes de recommandationsLes systèmes de recommandations
Les systèmes de recommandations
 
Introduction au Machine Learning
Introduction au Machine LearningIntroduction au Machine Learning
Introduction au Machine Learning
 
Présentation pfe
Présentation pfePrésentation pfe
Présentation pfe
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
 
Algorithme génétique
Algorithme génétiqueAlgorithme génétique
Algorithme génétique
 

Viewers also liked

Problème De Sac à Dos
Problème De Sac à Dos Problème De Sac à Dos
Problème De Sac à Dos chagra bassem
 
AG41 : Recherche opérationnelle Tournée de véhicules
AG41 : Recherche opérationnelle Tournée de véhiculesAG41 : Recherche opérationnelle Tournée de véhicules
AG41 : Recherche opérationnelle Tournée de véhiculesBenjamin Guillet
 
Nano Comp Ps Clay
Nano Comp Ps ClayNano Comp Ps Clay
Nano Comp Ps Clayvchapuis
 
Multi Objective Optimization
Multi Objective OptimizationMulti Objective Optimization
Multi Objective OptimizationNawroz University
 
Chapitre 2 problème de plus court chemin
Chapitre 2 problème de plus court cheminChapitre 2 problème de plus court chemin
Chapitre 2 problème de plus court cheminSana Aroussi
 
traitement thermique et thermochimique
traitement thermique et thermochimiquetraitement thermique et thermochimique
traitement thermique et thermochimiqueRafael Nadal
 
Production planning & control & Forecasting
Production planning & control & ForecastingProduction planning & control & Forecasting
Production planning & control & ForecastingJenıstön Delımä
 
Variable neighborhood search
Variable neighborhood searchVariable neighborhood search
Variable neighborhood searchAhmed Fouad Ali
 
Chapitre v algorithmes gloutons
Chapitre v algorithmes gloutonsChapitre v algorithmes gloutons
Chapitre v algorithmes gloutonsSana Aroussi
 
La sélection multi objectifs des services web à base de recuit simulé
La sélection multi objectifs des services web à base de recuit simuléLa sélection multi objectifs des services web à base de recuit simulé
La sélection multi objectifs des services web à base de recuit simuléHassen Sic
 
Resolucion 270 del 23 de mayo de 2014
Resolucion 270 del 23 de mayo de 2014Resolucion 270 del 23 de mayo de 2014
Resolucion 270 del 23 de mayo de 2014Pvd Rionegro Digiital
 
Lego mindtorms nxt
Lego mindtorms nxtLego mindtorms nxt
Lego mindtorms nxtFelipe Tovar
 
Cannes lions slide share
Cannes lions slide shareCannes lions slide share
Cannes lions slide shareInnerChildTV
 
El niño, su centralidad y sus derechos
El niño, su centralidad y sus derechosEl niño, su centralidad y sus derechos
El niño, su centralidad y sus derechosZaira Delgado Sanchez
 
Cros Jacques:Souvenirs de la mascarade
 Cros Jacques:Souvenirs de la mascarade Cros Jacques:Souvenirs de la mascarade
Cros Jacques:Souvenirs de la mascaradeMedjgo Gomedj
 

Viewers also liked (20)

Problème De Sac à Dos
Problème De Sac à Dos Problème De Sac à Dos
Problème De Sac à Dos
 
AG41 : Recherche opérationnelle Tournée de véhicules
AG41 : Recherche opérationnelle Tournée de véhiculesAG41 : Recherche opérationnelle Tournée de véhicules
AG41 : Recherche opérationnelle Tournée de véhicules
 
Nano Comp Ps Clay
Nano Comp Ps ClayNano Comp Ps Clay
Nano Comp Ps Clay
 
Lecture29
Lecture29Lecture29
Lecture29
 
Multi Objective Optimization
Multi Objective OptimizationMulti Objective Optimization
Multi Objective Optimization
 
Chapitre 2 problème de plus court chemin
Chapitre 2 problème de plus court cheminChapitre 2 problème de plus court chemin
Chapitre 2 problème de plus court chemin
 
traitement thermique et thermochimique
traitement thermique et thermochimiquetraitement thermique et thermochimique
traitement thermique et thermochimique
 
Knapsack Problem
Knapsack ProblemKnapsack Problem
Knapsack Problem
 
Production planning & control & Forecasting
Production planning & control & ForecastingProduction planning & control & Forecasting
Production planning & control & Forecasting
 
Variable neighborhood search
Variable neighborhood searchVariable neighborhood search
Variable neighborhood search
 
Simulated annealing
Simulated annealingSimulated annealing
Simulated annealing
 
Tabu search
Tabu searchTabu search
Tabu search
 
Chapitre v algorithmes gloutons
Chapitre v algorithmes gloutonsChapitre v algorithmes gloutons
Chapitre v algorithmes gloutons
 
La sélection multi objectifs des services web à base de recuit simulé
La sélection multi objectifs des services web à base de recuit simuléLa sélection multi objectifs des services web à base de recuit simulé
La sélection multi objectifs des services web à base de recuit simulé
 
Resolucion 270 del 23 de mayo de 2014
Resolucion 270 del 23 de mayo de 2014Resolucion 270 del 23 de mayo de 2014
Resolucion 270 del 23 de mayo de 2014
 
Lego mindtorms nxt
Lego mindtorms nxtLego mindtorms nxt
Lego mindtorms nxt
 
Presentación1
Presentación1Presentación1
Presentación1
 
Cannes lions slide share
Cannes lions slide shareCannes lions slide share
Cannes lions slide share
 
El niño, su centralidad y sus derechos
El niño, su centralidad y sus derechosEl niño, su centralidad y sus derechos
El niño, su centralidad y sus derechos
 
Cros Jacques:Souvenirs de la mascarade
 Cros Jacques:Souvenirs de la mascarade Cros Jacques:Souvenirs de la mascarade
Cros Jacques:Souvenirs de la mascarade
 

Similar to Chapitre 3 la recherche tabou

optimisation cours.pdf
optimisation cours.pdfoptimisation cours.pdf
optimisation cours.pdfMouloudi1
 
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfChapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfMbarkiIsraa
 
165380609 livre-professeur-maths-1ere-s
165380609 livre-professeur-maths-1ere-s165380609 livre-professeur-maths-1ere-s
165380609 livre-professeur-maths-1ere-sEttaoufik Elayedi
 
Introduction à la théorie de graphes et application
Introduction à la théorie de graphes et applicationIntroduction à la théorie de graphes et application
Introduction à la théorie de graphes et applicationMohamedSalimBelkorch
 
Chapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfChapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfMbarkiIsraa
 
iteration par valeur.ppt
iteration par valeur.pptiteration par valeur.ppt
iteration par valeur.pptSaidaSoundouss
 
Chapitre 6 hachage statique
Chapitre 6 hachage statiqueChapitre 6 hachage statique
Chapitre 6 hachage statiqueSana Aroussi
 
Cours-optimisation.pdf
Cours-optimisation.pdfCours-optimisation.pdf
Cours-optimisation.pdfMouloudi1
 
Localisation d’une source émettrice par un réseau d’antennes
Localisation d’une source émettrice par un réseau d’antennesLocalisation d’une source émettrice par un réseau d’antennes
Localisation d’une source émettrice par un réseau d’antennesAhmed Ammar Rebai PhD
 

Similar to Chapitre 3 la recherche tabou (20)

optimisation cours.pdf
optimisation cours.pdfoptimisation cours.pdf
optimisation cours.pdf
 
Diviser Pour Régner
Diviser Pour RégnerDiviser Pour Régner
Diviser Pour Régner
 
Oc1 2013
Oc1 2013Oc1 2013
Oc1 2013
 
PLNE.pptx
PLNE.pptxPLNE.pptx
PLNE.pptx
 
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfChapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
 
IA
IAIA
IA
 
165380609 livre-professeur-maths-1ere-s
165380609 livre-professeur-maths-1ere-s165380609 livre-professeur-maths-1ere-s
165380609 livre-professeur-maths-1ere-s
 
Rapport MOGPL
Rapport MOGPLRapport MOGPL
Rapport MOGPL
 
Introduction à la théorie de graphes et application
Introduction à la théorie de graphes et applicationIntroduction à la théorie de graphes et application
Introduction à la théorie de graphes et application
 
Chapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfChapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdf
 
iteration par valeur.ppt
iteration par valeur.pptiteration par valeur.ppt
iteration par valeur.ppt
 
246242769 sequence-1-pdf
246242769 sequence-1-pdf246242769 sequence-1-pdf
246242769 sequence-1-pdf
 
coursAlgo_V5.pdf
coursAlgo_V5.pdfcoursAlgo_V5.pdf
coursAlgo_V5.pdf
 
Chapitre 6 hachage statique
Chapitre 6 hachage statiqueChapitre 6 hachage statique
Chapitre 6 hachage statique
 
0 c2 2013
0 c2 20130 c2 2013
0 c2 2013
 
Comment faire disparaître les rides
Comment faire disparaître les ridesComment faire disparaître les rides
Comment faire disparaître les rides
 
Cours-optimisation.pdf
Cours-optimisation.pdfCours-optimisation.pdf
Cours-optimisation.pdf
 
csp_sir_C1_4.pptx
csp_sir_C1_4.pptxcsp_sir_C1_4.pptx
csp_sir_C1_4.pptx
 
Cours cluster si2e
Cours cluster si2eCours cluster si2e
Cours cluster si2e
 
Localisation d’une source émettrice par un réseau d’antennes
Localisation d’une source émettrice par un réseau d’antennesLocalisation d’une source émettrice par un réseau d’antennes
Localisation d’une source émettrice par un réseau d’antennes
 

Chapitre 3 la recherche tabou

  • 2. 2 historique 1986 : bien que son origine remonte à 1977, la RT n’est proposée qu'à l'année 1986 par Fred Glover [Glover 86] méthode développée pour résoudre des problèmes combinatoires (la plupart NP-durs) révolution de cette méthode par rapport aux autres: permet de surmonter le problème des optima locaux par l’utilisation de listes taboues (principe de mémoire)
  • 3. 3 Principe de base poursuivre la recherche de solutions même lorsqu’un optimum local est rencontré et ce, en permettant des déplacements qui n’améliorent pas la solution en utilisant le principe de mémoire pour éviter les retours en arrière (mouvements cycliques)
  • 4. 4 Principe de base •Dans recuit simulé, pour ne pas rester bloqué dans un minimum local, le recuit simulé accepte de façon probabiliste des configurations accroissant temporairement le coût de la solution. •La recherche Tabou procède de même, mais de manière déterministe, en prenant comme nouvelle configuration celle qui a le coût le plus faible dans le voisinage de la configuration courante même si elle est moins bonne que la configuration courante. •Cette stratégie présente cependant l'inconvénient de pouvoir se bloquer dans des cycles, i.e. revenir sur des configurations déjà rencontrées. C'est pourquoi, pour ne pas boucler et permettre de sortir des pièges formés par les minima locaux, on contraint la recherche, en classant certains mouvements (le passage d'une configuration à une autre) comme tabous ( interdits )
  • 5. 5 Principes de base  La recherche Tabou est donc une procédure itérative guidant le choix des mouvements, en utilisant les heuristiques suivantes : assurer la décroissance de la fonction coût que l'on cherche à minimiser, en sélectionnant un mouvement faisant décroître ce coût; si aucun mouvement ne permet de faire diminuer le coût, choisir le mouvement entraînant la remontée en coût la plus faible; maintenir une liste de mouvements ou configurations tabous durant une certaine période, afin d'interdire le retour vers une configuration déjà rencontrée.
  • 6. 6 Problème Exemple: Problème d'affectation quadratique Etant donné n objets et des flots fij entre l'objet i et l'objet j (i,j =1..n), et n emplacements avec des distances drs entre les emplacements r et s (r,s = 1..n), il s'agit de placer les n objets sur les n emplacements de manière à minimiser la somme des produits flots  distances. Chercher une permutation p, dont la ième composante pi donne la place de l'objet i, qui minimise   ninjpipjijdf11.
  • 7. 7 Problème Exemple: Problème d'affectation quadratique  Applications pratiques:  Répartition de batiments ou services (campus universitaire, hôpital) fij représente la fréquence avec laquelle les personnes doivent se déplacer du batiment i au batiment j. dpipj est la distance entre l'emplacement pi et l'emplacement pj  Placement de modules logiques dans des circuits électroniques : fij représente le nombre de connexions devant être réalisés entres les modules i et j dpipj est la distance entre l'emplacement pi et l'emplacement pj     n i n j ij pipj f d 1 1 min . Exemple de solution d'un problème de connexion entre modules électroniques, l'épaisseur des traits est proportionnelle au nombre de connexions
  • 8. 8 Algorithme de base Hypothèse Le problème à résoudre peut se formuler de la manière suivante: min f (s) sS f : la fonction objectif s : une solution réalisable S : ensemble des solutions réalisables
  • 9. 9 Algorithme de base Schéma de l’algorithme tabou de base • Engendrer une configuration initiale s0 ; s := s0 • s* := s ; f* := f(s) • T := {} // liste taboue • Répéter m := le meilleur mouvement parmi les mouvements non tabous et mouvements tabous exceptionnels (améliorant la meilleure solution) s := s  m si f(s) < f(s*) alors s* := s ; f* := f(s) Mettre T à jour (ajouter cycliquement m à T) ; • Jusqu’à <condition fin> • Retourner s*
  • 10. 10 Algorithme de base Voisinage On définit pour toute solution sS un ensemble N(s)S qu'on appellera ensemble des solutions voisines de s. Exemple: pour le problème d'affectation quadratique: • s est une permutation des n objets •N(s) l'ensemble des solutions obtenues en transposant à chaque fois deux objets de s 1 2 3 4 5 6 7 8 1 2 7 4 5 6 3 8 1 2 3 4 5 6 7 8 1 5 3 4 2 6 7 8
  • 11. 11 Algorithme de base Mouvement : modification apportée à une solution Cas du problème d'affectation quadratique : transposition de deux éléments dans la permutation. L'ensemble N(s) des solutions voisines de la solution s s'exprime comme l'ensemble des solutions admissibles que l'on peut obtenir en appliquant à la solution s un mouvement m appartenant à un ensemble de mouvements M L'application de m sur s sera noté sm On définit alors le voisinage N(s) = {s'|s'=sm, mM} 1 2 3 4 5 6 7 8 1 2 7 4 5 6 3 8
  • 12. 12 Algorithme de base 1 2 3 4 5 6 7 8 1 2 7 4 5 6 3 8 Mouvement : Trois mouvements possibles sur les permutations Transposition 1 2 3 4 5 6 7 8 1 2 4 3 5 6 7 8 inversion 1 2 3 4 5 6 7 8 1 2 3 7 4 5 6 8 déplacement Ces objets changent de place n-1 mouvements possibles n.(n-1)/2 mouvements possibles n.(n-2)+1 mouvements possibles
  • 13. 13 Algorithme de base Mouvement : le choix du type de mouvement dépond du problème: Transposition: plus efficace que le déplacement pour le problème d'affectation quadratique car il ne change que la positions des objets transposés. Inversion : le plus mauvais vue la taille réduite du voisinage qu'il engendre Déplacement meilleur pour les problèmes d'ordonnancement car c'est le séquencement qui est important pas la position individuelle des taches n-1 mouvements possibles n.(n-1)/2 mouvements possibles n.(n-2)+1 mouvements possibles
  • 14. 14 échanger 6 et 2 Accélération de la recherche du meilleur voisin: pour certains problèmes il existe des méthodes pour accélérer cette recherche 1 2 3 4 5 6 7 8 9 10 Buckets P1 to P2 P2 to P1 -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3 1 9 10 3 2 5 7 8 4 6 gain P1 P2 Cas du problème du Bi-partitionnement de graphes :The bucket-sort technique
  • 15. 15 1 2 3 4 5 6 7 8 9 10 Buckets P1 to P2 P2 to P1 -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3 1 9 10 3 2 5 7 8 4 6 P1 P2 Seuls les gains des noeuds échangés ainsi que les noeuds qui leur sont adjacents sont recalculés Cas du problème du Bi-partitionnement de graphes :The bucket-sort technique
  • 16. 16 Considérer seulement un sous ensemble de N(s), par exemple en tirant aléatoirement dans N(s) un nombre de solutions beaucoup plus petit que |N(s)| Partitionner l'ensemble M des mouvements en k sous ensembles; à chaque itération un seul de ces sous-ensembles sera examiné: On réalise un examen partiel mais cyclique du voisinage. avantage: un examen partiel peut engendrer une certaine diversité dans les solutions visitées car les mouvements qui auront été élus ne l'auraient jamais été avec un examen complet du voisinage Accélération de la recherche du meilleur voisin: D'autres techniques plus générales
  • 17. 17 On peut faire l'hypothèse qu'un mouvement de bonne qualité pour une solution restera bon pour des solutions proches Classer à une itération l'ensemble de mouvements réalisables par qualité décroissante et les placer dans une liste de mouvements candidats. Pendant les quelques itérations ultérieures seuls seront considérés les mouvements classés parmi les meilleurs Il faut périodiquement évaluer complètement le voisinage pour conserver une liste de candidats convenable Accélération de la recherche du meilleur voisin: Liste de mouvements candidats
  • 18. 18 Mémoire à court terme Problème: vérifier si une solution du voisinage a déjà été visitée Solution 1 Mémoriser chaque solution visitée et tester à chaque itération et pour chaque solution éligible si cette dernière a été énumérée Utilisation de tables de Hachage: appliquer une fonction f sur les composantes de la solution s, f(s) sera l'indice de la case dans la table de hachage qui indique l'existence de S (la valeur 1 indique l'existence de la solution, la valeur 0 indiquant son absence) Problème 1: problème de collisions, une solution s1 non visitée peut avoir la même fonction de hachage qu'une solution s2 visitée. Problème 2 ça ne permet pas de résoudre le problème de surcroit de la place mémoire tout au long des itérations  Problème 3 : risque de blocage de la recherche locale faute de solutions voisines non interdites
  • 19. 19 Mémoire à court terme Problème: vérifier si une solution du voisinage a déjà été visitée Solution 2: interdire le retour à une solution dont la valeur a déjà été obtenue au cours des t dernières itérations. Implémentation : Soit un tableau T de Taille M (suffisamment grand). Et soit f(sk) la valeur supposée entière de la solution sk retenue à l'itération k. On mémorisera dans T[f(sk) modulo M] la valeur k+t. Si une solution s' du voisinage potentiel de la solution à l'itération k' est telle que k' < T[f(s') modulo M], s' ne sera plus retenue comme solution éligible. Cette interdiction sera levée lorsqu'on avancera dans les itérations
  • 20. 20 Mémoire à court terme  Problème: vérifier si une solution du voisinage a déjà été visitée  Problème de collision, des solutions différentes ayant la même valeur qu'une solution interdite seront aussi interdites; il faut que la fonction objectif ait une large étendue de valeurs.  Solution on pourra remplacer la valeur de la fonction objectif par une fonction de hachage à large éventail de valeurs possibles: dans le cas de problème sur des permutations on propose: i n i p i  1 2 Qui prend un nombre potentiel de valeurs différentes proportionnel à O(n4) Remarque: même avec une table de hachage très grande, les collisions restent fréquentes. Exemple pour un problème sur des permutations de taille n=100, avec des transpositions comme structure de voisinage, environ 5 solutions entreront en collision avec la solution de départ si on utilise une table à 106 éléments
  • 21. 21 Mémoire à court terme Liste de mouvements interdits Au lieu de restreindre le voisinage N(S) à des solutions non encore visitées on travaille plutôt sur l'ensemble des mouvements M applicables à une solution (typiquement de taille O(n) ou O(n2) On limite l'ensemble des mouvements applicables sur sm à ceux différents de m-1 (car (sm)m-1=s) on mémorise donc pendant un certain nombre d'itérations les mouvements inverses de ceux qui ont été effectués Inconvénients: si après avoir effectué la transposition (i,j) on interdit le mouvement (i,j) on effectue ensuite le transposition (i,k), l'interdiction de (i,j) empêchera de visiter certaines solutions sans garantir la prévention du bouclage: exemple (i,j)(k,p)(i,p)(k,j)(k,i)(j,p) ne modifie pas la solution.
  • 22. 22 Mémoire à court terme Liste de mouvements interdits exemple (i,j)(k,p)(i,p)(k,j)(k,i)(j,p) ne modifie pas la solution. Prenons l'exemple i = 2, j= 4, k= 5, p = 7 12 3 4 5 6 7 8 (i,j) 1 4 3 2 5 6 7 8 (k,p) 1 4 3 2 7 6 5 8 (i,p) 1 5 3 2 7 6 4 8 (k,j) 1 5 3 7 2 6 4 8 (k,i) 1 2 3 7 5 6 4 8 (j,p) 1 2 3 4 5 6 7 8 cyclage Solution: c'est pas le mouvement (i,j) qu'il faut interdire mais de remettre simultanément l'element i à la position pi et l'élément j à la position pj
  • 23. 23 Mémoire à court terme Durée des interdictions Nombre de mouvements interdits Valeur des solutions (à minimiser) Moyenne de toutes les solutions visitées Moyenne des meilleures solutions trouvées 5 10 15 20 25 30 Influence du nombre d'itérations pendant lesquelles on interdit les mouvements
  • 24. 24 Mémoire à court terme Durée des interdictions Nombre de mouvements interdits Valeur des solutions (à minimiser) Moyenne de toutes les solutions visitées Moyenne des meilleures solutions trouvées 5 10 15 20 25 30 Pour un très petit nombre de mouvements interdits, la recherche aura tendance à visiter toujours les mêmes solutions. Si ce nombre augmente, la probabilité de rester prisonnier dans un nombre restreint de solutions diminue et la probabilité de visiter de bonnes solutions augmente Si ce nombre devient très grand le nombre de mouvements disponibles devient très réduit et la recherche se retrouve encore piégée.
  • 25. 25 Mémoire à court terme Comment fixer la durée des interdictions En essayant expérimentalement plusieurs nombres possibles En tirant aléatoirement un nombre dans un intervalle et en renouvelant périodiquement ce nombre Augmenter ou diminuer ce facteur sur la base de critères récoltés durant la recherche (en calculant le degré de diversité des solutions visitées, si la diversité diminue on augmente la durée des interdictions et inversement)
  • 26. 26 Mémoire à court terme Critère d'aspiration •Un mouvement tabou m appliqué à une solution courante x peut paraître attrayant s'il engendre, une solution meilleure que la meilleure solution rencontrée, le mouvement m sera alors accepté, malgré son caractère tabou. Un mouvement tabou m appliqué à une solution x peut être accepté s'il engendre une solution jamais visitée, par exemple, si son coût n'appartient pas à la liste des coûts de toutes les solutions déjà visitées
  • 27. 27 Utilisation de l'historique de recherche Pour exploiter l'information acquise au cours de l'évolution de l'algorithme, on définit des mémoires supplémentaires, ayant une vision plus globale de l'espace des configurations : les mémoires à moyen et long terme. La mémoire à moyen terme sert à intensifier la recherche vers des zones favorables de l'espace de recherche tandis que la mémoire à long terme diversifie la recherche, en favorisant les zones non encore explorées. Direction de la recherche à moyen et long terme
  • 28. 28 •Intensification: vient du constat que les meilleures configurations ont des caractéristiques communes. Dans cette optique, l'intensification cherche, dans un premier temps, les caractéristiques communes aux bonnes solutions, puis oriente la recherche vers des zones de l'espace de recherche dont les configurations présentent les caractéristiques mises en évidence •Ce processus est répété régulièrement, en utilisant une mémoire à moyen terme permettant d'enregistrer et d'analyser les meilleures configurations rencontrées durant un certain laps de temps Comme méthodes d'intensification on peut citer : la pénalisation des mouvements, conduisant à des configurations ne présentant pas les caractéristiques désirées, en modifiant provisoirement la fonction de coût ; •la restriction temporaire de la recherche, en contraignant certaines variables des configurations (x = (x1; x2; :::; xN), N étant le nombre de variables) à avoir leur valeurs dans un intervalle de taille restreinte. Direction de la recherche à moyen et long terme
  • 29. 29 •Diversification: Elle consiste à guider L'exploration vers de nouvelles zones de l'espace de recherche, contenant des configurations qui sont très différentes de celles rencontrées jusqu'à présent. Pour cela, on mémorise des informations sur les configurations visitées tout au long de la recherche, d'où le qualificatif de mémoire à long terme, afin de trouver les caractéristiques des configurations qui ne sont pas souvent rencontrées ou de trouver les mouvement qui n'ont jamais été utilisés et forcer leur utilisation afin de garantir l'extraction de l'optimum local Pour implanter la diversification, on utilise notamment les principes suivants : •pénaliser les mouvements aboutissant à des configurations fréquemment rencontrées ; •interdire les mouvements dont la fréquence d'occurrence dépasse un certain seuil ; •utiliser une liste Tabou longue activée périodiquement Direction de la recherche à moyen et long terme