Chapitre 3 la recherche tabou
-
Upload
achraf-manaa -
Category
Documents
-
view
399 -
download
1
Transcript of Chapitre 3 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
n
i
n
j
pipjij df1 1
.
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
pipjij df1 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 sfSs
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 sS 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é sm On définit alors le voisinage N(s) = {s'|s'=sm, mM}
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
pi1
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 sm à ceux
différents de m-1 (car (sm)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
1 2 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
Va
leu
r d
es s
olu
tions (
à m
inim
iser)
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
Va
leu
r d
es s
olu
tions (
à m
inim
iser)
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