Recherches itératives avancées

Transcription

Recherches itératives avancées
Optimisation Combinatoire
(Méthodes approchées)
IV. Méthodes itératives avancées
(Les bases)
Iterated Local Search (ILS)
●
Idée principale
–
Recherche locale itérative pour atteindre
rapidement un optimum local (Intensification)
–
Perturbation pour échapper aux optimas
locaux (Diversification)
–
Critère d'acceptation pour contrôler la
balance entre diversification et intensification
ILS
●
ILS peut être vue comme une marche dans l'espace des
Optima locaux
–
●
La recherche locale définit en quelque sorte un voisinage (on parle
de bassins d'attraction)
Les différentes composantes du ILS sont complémentaires
ILS : version de base
exemple du SMTWTP
●
●
●
●
Solution Initiale : EDD
Local Search : VND utilisant l'échange, le
swap et l'insertion
Perturbation : k-opt move (aléatoire)
Critère d'acceptation : accepter seulement
les optimas locaux améliorant f(s'*) <= f(s*)
ILS - perturbation
●
●
●
●
Degrès de la perturbation
–
Trop elevée : équivalent à un restart aléatoire
–
Trop faible : la recherche locale peut défaire la perturbation et
donc échouer à échapper d'un optimum local vers un autre
Le degrès de la perturbation peut varier de façon
adaptative
Une perturbation aléatoire est simple mais pas toujours
effective
La perturbation est complémentaire à la recherche
locale
ILS – critère d'acceptation
●
Intensification Vs Diversification dans l'espace
des optima locaux
–
Toujours accepter s'*
–
N'accepter que les s'* qui améliorent s*
–
Choix intermédiaires:
●
●
●
●
Probabiliste !
Grand déluge : accepter s'* si f(s'*) < (1+epsilon) . f(s*)
Etc
Le choix dépend de la façon avec laquelle les
optimas locaux sont connectés entre eux
ILS – Résumé
●
●
Très simple mais peut s'avérer
redoutablement efficace
Le choix de la recherche locale, de la
perturbation, et du critère d'acceptation en
concordance les uns avec les autres est
primordial pour une performance maximale !
VNS : Variable neighborhood
Search
●
●
●
●
Changer de voisinage est une une perturbation au sens ILS
Local search : e.g., un (piped) VND (Generalized VNS)
Ordre des voisinages : e.g., du plus petit vers le plus grand
Critère d'acceptation : e.g., comme pour ILS
TS – Tabu Search
●
Idée principale
–
●
●
Utiliser une mémoire au cours de la recherche pour échapper
des optima locaux
Associer une Liste Tabou respectivement à certaines
solutions ou à certaines composantes
Ne pas autoriser de visiter des solutions (ayant des
composantes) dans la liste tabu
TS – Tabu Search
●
●
Les positions (solutions) non-tabu dans N(s) sont
appelées des voisins admissibles (au sens TS)
À chaque étape de la recherche :
–
●
la solution, ou les composants ajoutés/supprimés, sont
déclaré tabous pour un nombre fixé d'étapes de
recherche → Tabu Tenure
Critère d'aspiration :
–
Définit des exceptions qui peuvent amener la recherche à ne
pas respecter les movements tabu
●
e.g., Lorsque une solution de très bonne qualité est obtenue en
considérant un movement tabu
TS – Exemple pour SAT
●
Espace de recherche : comme d'habitude
●
Voisinage : 1-flip (changer la valeur d'une variable)
●
Mémoire Tabou : associer une valeur avec chaque variable x de
la formule logique F
●
Initialisation : random
●
Recherche locale Itérative :
●
–
Une variable est tabou si elle a été modifié lors des tt dernières itérations
(on y touche plus !)
–
Un voisin est admissible si il n'est pas tabou (diversification) ou possède
moins de clauses non vérifiés que la meilleur solution vue au cours de la
recherche
–
Move : le voisin avec le moins de clauses non satifaites (intensification)
Critère d'arrêt : F satisfaite ou nombre d'itéartion maximal atteint
TS – remarques générales
●
Plusieurs améliorations possibles
–
–
Mémoire à court terme et mémoire à long terme
●
Considérer des solutions de très bonne qualité et néttoyer la liste tabu
●
Gêler certaines composantes pour une longue période
●
Forcer l'utilisation de composantes pas souvent considérées
'Tabu Tenure' cruciale
●
●
–
Méthodes avancées pour régler la TT
Robust Tabu search [Taillard 91]
–
●
<<< : stagnation dans les optimas locaux ; >>> : voisins admissibles trop
peu nombreux
Reactive tabu search [Battiti et Techiolli 94]
TS est l'une des méthodes les plus puissantes en
optimisation combinatoire
DLS – Dynamic Local Search
●
Idée principale :
–
●
Associer une pénalité sur certaines composantes
–
●
Modifier la fonction d'évaluation lorsque la recherche arrive sur
un optimum local
Ceci détermine le poid ou l'impacte des composantes dans la
fonction d'évaluation
Lorsque arrivé sur un optimum local, augmenter les penalités
jusqu'à trouver des solutions améliorantes → échapper de
l'optimum local
Résumé
●
Toutes les méthodes possèdent des
composantes d'intensification et de
diversification
–
Une TS, un ILS, un VNS, ou tout autre approche
n'existent pas en tant que telle :
●
●
–
Encore faut il spécifier leurs composantes et les
régler de façon spécifiques (optimisée) par rapport au
problème (instances) considéré
En changeant un ingrédient (d'intensification ou de
diversification), les performances peuvent changer
Pas de recette miracle !
●
On a encore besoin de l'expertise de l'homme