Vous êtes sur la page 1sur 35

Algorithme de recherche avec tabou

INF6953

La recherche avec tabou

Historique et principes
La recherche avec tabou a t propose par Fred Glover en 1986. Depuis cette date, la mthode est devenue trs populaire, grce aux succs quelle a remports pour rsoudre de nombreux problmes. Lintention de lauteur tait de concevoir une mthode de recherche intelligente. La mthode utilise une mmoire (ou plusieurs mmoires) qui sont mises jour et exploites au cours de la recherche. Algorithme tabou de base : mmoire court terme (liste taboue) Algorithme tabou volu : mmoire court terme (liste tabou) + mmoire long terme pour assurer lintensification et/ou la diversification

INF6953

La recherche avec tabou

Concepts de base
Lide de base de la liste taboue consiste mmoriser les configurations ou rgions visites et introduire des mcanismes permettant dinterdire la recherche de retourner trop rapidement vers ces configurations. Ces mcanismes sont des interdictions temporaires de certains mouvements (mouvements tabous). Il sagit dinterdire les mouvements qui risqueraient dannuler leffet de mouvements effectus rcemment (voir les exemples). A chaque itration, lalgorithme tabou choisit le meilleur voisin non tabou, mme si celui-ci dgrade la fonction de cot. Pour cette raison, on dit de la recherche avec tabou quelle est une mthode agressive.

INF6953

La recherche avec tabou

Liste taboue
En gnral, la liste tabou contient des attributs. Un attribut qui vient dtre rendu tabou le reste pendant quelques itrations (tabu tenure). Cette dure est fixe par un ou des paramtres. Ensuite, le mouvement perd son statut de mouvement tabou. On parle de stratgie de diversification court terme. Normalement, la liste taboue doit garantir labsence de cycles de petite taille.

INF6953

La recherche avec tabou

Critre daspiration
Dans certains cas, les interdictions occasionnes par la liste taboue peuvent tre juges trop radicales. En effet, on risque dliminer (en les rendant tabous), certains mouvements particulirement utiles. Autrement dit, il sagit dassouplir le mcanisme de liste taboue. Un mcanisme daspiration dtermine un critre selon lequel un mouvement, bien que tabou, peut quand mme tre accept. Il faut faire attention, cependant, au risque dintroduire nouveau des cycles dans la recherche. Par exemple, un critre daspiration rudimentaire peut consister accepter un mouvement sil conduit une configuration meilleure que la meilleure configuration dj trouve. Des mcanismes plus sophistiqus peuvent tre introduits.
La recherche avec tabou 5

INF6953

Liste taboue : adaptation au problme rsoudre


Les principes noncs ci-dessus doivent tre adapts au cas par cas au problme trait. Quelques exemples sont fournis par la suite. Il faut noter que : Cest au concepteur de lalgorithme de spcifier le mcanisme tabou. Pour un problme donn, plusieurs techniques diffrentes sont concevables. Dans la suite on prsente deux exemples : k-coloriage et TSP Le mcanisme de liste taboue prsent est seulement une possibilit. Dautres techniques seraient galement possibles.

INF6953

La recherche avec tabou

Spcification du mcanisme de liste taboue


Pour dcrire le mcanisme tabou, il faut spcifier : La structure de la liste taboue (la nature des lments qui la composent). Comment la liste est mise jour quand un mouvement est effectu (quels lments sont ajouts). Quels mouvements ou voisins sont interdits, selon le contenu de la liste. Il faut par ailleurs dterminer combien de temps un lment reste tabou.

INF6953

La recherche avec tabou

Exemple du k-coloriage de graphe : rappels


Espace de recherche Une configuration S est une fonction S : V -> {1..k} Fonction dvaluation ( minimiser) Pour toute configuration S, f(S) reprsente le nombre dartes violes dans S. Voisinage Un mouvement consiste changer la couleur dun sommet unique. On reprsente un couple sommet / couleur. Le mouvement <x, v> consiste remplacer la couleur courante S(x) du sommet x par la nouvelle couleur v.

INF6953

La recherche avec tabou

Liste taboue : exemple du k-coloriage


Structure de la liste taboue La liste contient des couples variable/valeur Mise jour de la liste Quand le mouvement <x, v> est effectu, on ajoute la liste llment (x, S(x)). Mouvements interdits Si le couple (x, v) appartient la liste, cela interdit le mouvement <x, v>.

INF6953

La recherche avec tabou

Liste taboue : exemple du k-coloriage


Le mcanisme dcrit revient, quand le mouvement <x, v> est effectu, interdire x de retrouver son ancienne valeur S(x). Autrement dit, quand on effectue le mouvement <x, v>, on interdit le mouvement inverse <x, S(x)>

INF6953

La recherche avec tabou

10

Liste taboue : exemple du k-coloriage


Une telle liste peut simplanter facilement laide dune matrice IsTabuUntil[][] de dimension |V| x k. Pour un sommet x et une couleur v, lentier IsTabuUntil[x][v] indique jusqu quelle itration le mouvement (x, v) a t tabou, ou sera tabou. Condition pour dterminer si un mouvement est tabou : VRAI ssi IsTabuUntil[x][v] > iter (iter = numro de litration courante) Procdure pour rendre llment (x, v) tabou pendant h itrations : Faire : IsTabuUntil[x][v] := iter + h

INF6953

La recherche avec tabou

11

Liste taboue : exemple du TSP


On peut se reprsenter une configuration comme lensemble des arcs qui constituent la tourne les arcs sont tous orients dans un mme sens choisi arbitrairement. Un mouvement <(a, b), (c, d)> consiste retirer les deux arcs (a, b) et (c, d) et introduire deux nouvelles arcs (a, c) et (b, d). On peut envisager dutiliser deux listes taboues contenant des artes (paires non oriente) : Une liste appele IN Une liste appele OUT

INF6953

La recherche avec tabou

12

Liste taboue : exemple du TSP


Structure des listes taboues Les listes IN et OUT contiennent des artes (non orientes). Mise jour de la liste : Quand un mouvement <(a, b), (c, d)> est effectu : - On ajoute la liste OUT les lments {a, c} et {b, d} (artes insres). - On ajoute la liste IN les lments {a, b} et {c, d} (artes supprimes). Mouvements interdits Si la paire {a, b} appartient la liste IN, cela interdit tout mouvement qui conduirait introduire larte dans la configuration. Si la paire {a, b} appartient la liste OUT, cela interdit tout mouvement qui conduirait retirer larte dans la configuration.
La recherche avec tabou 13

INF6953

Attributs
En gnral, la liste taboue contient des attributs de solutions. Un attribut p est un prdicat (une fonction boolenne) dfini sur S p : S -> {VRAI, FAUX} Exemple du TSP A chaque arte xy, on peut associer un attribut pxy pxy (S) = VRAI si, et seulement si, larte xy appartient S Exemple du k-coloriage A chaque couple sommet/couleur (x, v), on peut associer un attribut p(x,v) p(x,v) (S) = VRAI si, et seulement si, S(x)=v
La recherche avec tabou 14

INF6953

Attributs et mouvements
Quand on effectue un mouvement, certains mouvements sont acquis par la solutions et certains autres sont perdus Exemple du TSP Quand on effectue le mouvement <(a,b), (c, d)> - les attributs (a,c) et (b, d) sont gagns - les attributs (a,b) et (c, d) sont perdus Exemple du k-coloriage Quand on effectue le mouvement <x, v> - Lattribut (x, v) est acquis - Lattribut (x, S(x)) est perdu

INF6953

La recherche avec tabou

15

Attributs et liste taboue


Pour dfinir le mcanisme tabou, il suffit de spcifier : Que les mouvements acquis sont introduits dans la liste OUT: on interdit les mouvements qui conduiraient les perdre. Que les mouvements perdus sont introduits dans la liste IN : on interdit les mouvements qui conduiraient les reprendre. Dans lexemple propos pour le TSP, on a utilis deux listes IN et OUT et appliqu les principes noncs ci-dessus. Dans le cas du coloriage de graphe, on a utilis seulement une liste OUT et appliqu les principes noncs ci-dessus.

INF6953

La recherche avec tabou

16

Schma de lalgorithme tabou de base


Engendrer une configuration initiale S0 ; S := S0 S* := S ; f* := f(S) T := {} // liste taboue Rpter m := le meilleur mouvement parmi les mouvements non tabous et les mouvements tabous exceptionnels (critre daspiration) S := S (+) m Si f(S) < f(S*) faire S* := S ; f* := f(S) Mettre T jour ; Jusqu <condition fin> Retourner S*

INF6953

La recherche avec tabou

17

Critre darrt
On peut arrter la recherche tout moment. Contrairement au recuit simul Des critres darrt possibles sont : Si une solution prouve optimale a t trouve. Si une limite a t atteinte en ce qui concerne - Le nombre ditrations ; - Le temps de calcul. Si la recherche semble stagner : nombre ditrations sans amlioration de la meilleure configuration trouve.

INF6953

La recherche avec tabou

18

Listes de candidats
Dans la recherche avec tabou, on cherche normalement le meilleur mouvement non tabou. Cependant, cette manire de procder peut se rvler trop coteuse. Pour y remdier, on peut se limiter engendrer seulement un sous-ensemble des voisins (ou mouvements). On parle de liste de candidats. Construction dune liste de candidats Les candidats de la liste peuvent tre engendrs de manire alatoire (chantillon alatoire). Une autre approche consiste slectionner les voisins qui semblent les plus prometteurs selon un critre quelconque.

INF6953

La recherche avec tabou

19

Comportement de lalgorithme tabou


Si la liste taboue est courte Il y a moins dinterdictions (mouvements tabous). La recherche pouse mieux les optima locaux rencontrs. Lalgorithme tend parcourir de moins grandes distances dans lespace de recherche. Il explore moins lespace de recherche. Le risque de cycles est plus grand. Si la liste taboue est longue Il y a davantage dinterdictions (mouvements tabous). La recherche risque de manquer de nombreux optima locaux sur son chemin. Lalgorithme tend parcourir de plus grandes distances dans lespace de recherche. Il explore davantage lespace de recherche. Le risque de cycles est rduit.
La recherche avec tabou 20

INF6953

Comportement de lalgorithme tabou


Le comportement de lalgorithme dpend De la longueur de la liste taboue. Mais aussi de la taille de la liste de candidats (si on en utilise une). Dans le cas o une liste de candidats est utilise : Les meilleurs mouvements risque de ne pas appartenir la liste. Une liste de taille rduite joue donc un rle de randomisation. Il y a donc deux forces qui conjuguent leurs effets pour ressortir des optima locaux : la liste taboue et la liste de candidats. Plus la liste de candidats est petite, moins la liste taboue a besoin dtre grande.

INF6953

La recherche avec tabou

21

Rglage de la longueur de la liste taboue


Un point complexe mais crucial pour les performances de lalgorithme est de fixer le nombre ditrations pendant lequel un attribut reste tabou = longueur de la liste (=tabu tenure). Ce nombre ditrations peut tre constant et fix par un paramtre lgtl. Une technique plus robuste semble tre de fixer deux valeurs lgltMax et lgtlMin et de choisir alatoirement une valeur entre les deux. Dans certains cas, la taille du voisinage volue pendant la recherche. Dans ce cas, on fait gnralement la taille de la liste. Voir lexemple de lalgorithme TabuCol.

INF6953

La recherche avec tabou

22

Rglage auto-adaptatif de la longueur de la liste taboue


Une autre technique consiste laisser la longueur de la liste taboue se rgler elle-mme au cours de la recherche : Si on observe que lalgorithme tend cycler (ou tend rester confin dans la mme rgion), on augmente la longueur de la liste Sinon on la rduit lgrement Dans lalgorithme tabou ractif (Reactive Tabu Search, Battiti) : La longueur de la liste taboue est auto-adaptative - Quand on rencontre une configuration dj visite, on augmente la dure. - Sinon, on diminue progressivement la longueur de la liste. Implmentation : au cours de la recherche, on mmorise les configurations visites laide dune table de hachage.

INF6953

La recherche avec tabou

23

Techniques additionnelles
Un algorithme tabou de base comprend une liste taboue (mmoire court terme) et un critre daspiration. Un algorithme tabou volu comprend en outre une technique de diversification et / ou une technique dintensification. Les techniques de diversification et dintensification font appel des mmoires long terme.

INF6953

La recherche avec tabou

24

Mmoire long terme


Dans la mthode tabou, on peut utiliser des mmoires long terme. Celles-ci peuvent servir implanter des techniques dintensification et/ou de diversification (voir plus loin). Les mmoires long terme permettent de stocker : Des solutions entires - par exemple, des solutions particulirement performantes (elite solutions) ; La frquence selon laquelle un attribut a appartenu la solution courante ; La frquence selon laquelle un mouvement a t effectu, ou selon laquelle un attribut a t rintroduit dans la solution.

INF6953

La recherche avec tabou

25

Mmoire long terme


Solution dlite On mmorise certaines de meilleures solutions rencontres au cours de la recherche. Recency memory Pour chaque attribut (ou composant = solution component), nombre ditrations conscutives pendant lesquelles lattribut a t prsent dans la solution courante (sans interruption) Frequency memory Pour chaque attribut
nombre total ditrations pendant lesquelles lattribut a t prsent dans la solution courante depuis le dbut de la recherche. Ou nombre de fois que lattribut a t impliqu dans un mouvement (a t modifi)

INF6953

La recherche avec tabou

26

Techniques dintensification
Lide la base de lintensification est quon devrait explorer de faon plus approfondies les rgions qui semblent les plus prometteuses. Le principe de lintensification consiste retourner priodiquement visiter des zones de lespace de recherche qui semblent particulirement prometteuses. De nombreuses techniques ont t proposes : Repartir de bonnes solutions dj rencontres ; Reconstruire une solution de dpart qui tente de combiner des attributs qui ont t prsents souvent dans les configurations visites ; Geler certains attributs qui ont t souvent prsents dans les configurations visites ou dans les configurations dlite releves.

INF6953

La recherche avec tabou

27

Techniques dintensification
Technique 1 Redmarrer la recherche partir dune solution dlite Et geler les composants qui semblent les plus intressants. Technique 2 Redmarrer la recherche partir dune solution dlite Et changer le voisinage pour autoriser davantage de types de mouvements, de manire largir le voisinage. Si une liste de candidats est utilise, augmenter lchantillon.

INF6953

La recherche avec tabou

28

Techniques de diversification
Le principe de la diversification consiste inciter lalgorithme se diriger vers des rgions qui nont pas encore t visites. De nombreuses techniques ont t proposes : Repartir dune configuration alatoire Reconstruire une solution de dpart qui tente de combiner des attributs qui ont t prsents le moins souvent dans les configurations visites. Modifier la fonction de cot pour - favoriser les attributs peu frquents - pnaliser les attributs frquents

INF6953

La recherche avec tabou

29

Techniques de diversification
Difficult typiquement rencontre : la recherche est trop locale et reste confine dans une portion de lespace de recherche. On risque donc domettre dexplorer certaines rgions contenant de bonnes solutions. Diversification : Cest un mcanisme par lequel on arrte le cours habituel de la recherche et on oblige temporairement la recherche se diriger vers des rgions inexplores.

INF6953

La recherche avec tabou

30

Techniques de diversification
Diversification par relance On construit une solution qui contient des composants rarement utiliss, et on effectue une relance partir de cette solution. Diversification en continu On biaise lvaluation des mouvements en ajoutant lobjectif un terme reli la frquence des attributs : Les attributs les plus frquents sont pnaliss Les attributs les moins frquents sont encourags Oscillations stratgiques :

INF6953

La recherche avec tabou

31

Utilisation de lintensification et de la diversification


Lintensification et la diversification visent des objectifs opposs. Lintensification nest pas forcment ncessaire, car on peut estimer que les rgions explores lont t suffisamment minutieusement. La diversification est gnralement plus importante, car il est frquent que la recherche reste confine dans certaines rgions.

INF6953

La recherche avec tabou

32

Algorithme tabou stochastique


Lide de tabou stochastique est dintroduire de lalatoire au sein de lalgorithme tabou. A chaque itration, on choisira un mouvement non tabou en privilgiant les meilleurs dentre eux. Choix dun mouvement Les mouvements candidats sont parmi les mouvements non tabous et les mouvements tabous exceptionnels (critre daspiration). La probabilit de choisir un mouvement candidat m crot avec sa qualit Par exemple, la probabilit de choix dun mouvement peut tre proportionnelle exp(-delta(m)/T), que le mouvement amliore ou non.

INF6953

La recherche avec tabou

33

Algorithme tabou stochastique


Diffrences avec le recuit simul Les mouvements qui amliorent nont pas tous la mme probabilit dtre choisis. Le paramtre not T (analogue la temprature) ne varie pas pendant la recherche. Autre technique On peut galement soumettre le caractre tabou dun mouvement des probabilits. Dans ce cas, tout mouvement peut tre choisi a priori, mais la probabilit dun mouvement dcrot sil a t introduit rcemment dans la liste taboue.

INF6953

La recherche avec tabou

34

Algorithme tabou : conclusions


Mme lalgorithme tabou de base est souvent dune efficacit remarquable.

INF6953

La recherche avec tabou

35

Vous aimerez peut-être aussi