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