Télécharger la présentation
1
Recherches locales et méta-heuristiques
Méthodes de preuves Optimisation Satisfaction de contraintes Chapitre 6
2
Comparaison méthodes complètes / incomplètes
3
Comparaison méthodes complètes / incomplètes
Les méthodes complètes utilisent un mécanisme de raffinement Décomposition : décomposer une instances en sous instances indépendantes Filtrage : interdire des affectations partielles qui sont infaisables ou sous optimales Les méthodes incomplètes utilisent un mécanisme de transformation Mouvement (flip), réparation locale Poursuite d’un gradient local Diversification, aléatoire Espace de recherche Coût
4
Cadre commun : optimisation combinatoire
Définition Chercher une affectation complète A* dans un espace d’état E fini qui minimise une fonction objectif f(A) A* E / f(A*) = minAE f(A) A* est une solution optimale du problème f(A*) est l’optimum Exemples de fonctions objectifs SAT : f(A) = nombre de clauses insatisfaites par A problème Max-SAT CSP : f(A) = nombre de contraintes violées par A problème Max-CSP MPE : f(A) = 1 – P(A)
5
Schéma générique Recherche par améliorations successives
Recherche locale Schéma générique Recherche par améliorations successives
6
Paysage de recherche locale
plateau minimum local optimum
7
Recherche locale Voisinage d’une solution A
Ensemble des solutions obtenues en appliquant une modification élémentaire sur A (par ex., modification de la valeur d’une variable) Propriété d’ergodicité (toute solution est atteignable) Mouvement Remplace la solution courante A par une solution sélectionnée dans le voisinage de A Essai Ensemble de mouvements; chacun part d’une solution initiale différente (fournie par une heuristique)
8
Recherche locale Fonction Recherche Locale ( )
A* Génère solution initiale () Pour t = 1 à Max Essais Faire A Génère nouvelle solution initiale () Pour m = 1 à Max Mouvements Faire A’ Sélectionne dans voisinage ( A ) Si f(A’) < f(A*) Alors A* A’ Si Accepter?( A, A’ ) Alors A A’ retourner Pas trouvé mieux que A* , f(A*) Cas particulier d’arret anticipé: une solution de cout zero a ete trouvee
9
Modes de sélection et d’acceptation
Descente simple Sélection aléatoire et acceptation si f(A’) ≤ f(A) Descente gloutonne Sélection et acceptation du meilleur voisin (même si f(A’)>f(A)) Descente avec minimisation des conflits (cas CSP) Sélection aléatoire parmi les variables impliquées dans un conflit et choix aléatoire parmi les meilleures valeurs Sélection aléatoire parmi les solutions de même coût (évite de répéter la même séquence de mouvements)
10
Recherche par améliorations successives
plateau minimum local optimum
11
Intensification et diversification
Exploiter le passé de la recherche pour focaliser la recherche sur des zones prometteuses de l’espace de recherche Par ex., croisement de deux bonnes solutions en conservant les parties communes (même affectation des variables) et en faisant une affectation aléatoire pour le reste Diversification Explorer de nouvelles zones de l’espace de recherche Naïf : affectation aléatoire des variables Intelligent : affectation aléatoire biaisée par la fréquence d’apparition des valeurs des les solutions visitées Compromis entre intensification et diversification Par ex., réglage du compromis Max Mouvements / Max Essais
12
Méta-heuristiques Comment sortir des minima locaux
Dégradation de la solution courante Marche aléatoire Recuit Simulé Recherche Tabou Modification du voisinage – Recherche à voisinages variables Modification de l’objectif – Recherche guidée Méthodes exploitant une population de solutions
13
Si p est grand alors « marche aléatoire ». Comment régler p ?
Fonction Descente simple avec ajout de bruit ( p ) A* Génère solution initiale () Pour t = 1 à Max Essais Faire A Génère nouvelle solution initiale () Pour m = 1 à Max Mouvements Faire A’ Sélection aléatoire dans voisinage ( A ) Si f(A’) < f(A*) Alors A* A’ Si f(A’) ≤ f(A*) Alors A A’ Sinon Faire A A’ avec une probabilité p retourner Pas trouvé mieux que A* , f(A*) Cas particulier d’arret anticipé: une solution de cout zero a ete trouvee Si p est grand alors « marche aléatoire ». Comment régler p ?
14
(© Lionel Lobjois, CNAM 98)
15
Recuit simulé T1 T2
16
Recuit simulé Fonction Recuit Simulé ( Tinit, Tmin, g )
Tinit choisie telle que p 50% Tmin choisie telle que p proche de 0% Fonction Recuit Simulé ( Tinit, Tmin, g ) A* Génère solution initiale () ; A A* ; T Tinit Tant que (T Tmin) Faire Pour m = 1 à Max Mouvements Faire A’ Sélection aléatoire dans voisinage ( A ) Si f(A’) < f(A*) Alors A* A’ Si f(A’) ≤ f(A*) Alors A A’ Sinon Faire A A’ avec une probabilité T T . g retourner Pas trouvé mieux que A* , f(A*) Cas particulier d’arret anticipé: une solution de cout zero a ete trouvee
17
Recherche tabou
18
Recherche tabou Fonction RechercheTabou ( p )
A* Génère solution initiale () Pour t = 1 à Max Essais Faire A Génère nouvelle solution initiale () ListeTabou Pour m = 1 à Max Mouvements Faire A Sélection gloutonne dans voisinage(A) excepté voisins dans ListeTabou Si f(A) < f(A*) Alors A* A MiseAJour(ListeTabou) retourner Pas trouvé mieux que A* , f(A*) Cas particulier d’arret anticipé: une solution de cout zero a ete trouvee
19
Recherche Tabou Liste tabou
Permet d’éviter les cycles dans la séquence de mouvements Implantation par une liste circulaire ou un âge des mouvements Trop coûteux de mémoriser des solutions, mémorise seulement une liste d’attributs de solutions, par ex. des mouvements interdits ({x=a} {x=b}) Perte d’information (1 mvt interdit = nombreuses solutions interdites) Réglage dynamique de la longueur de la liste tabou à augmenter si solutions fréquemment répétées (diversification) à diminuer en cas d’absence d’améliorations (intensification) réglage aléatoire périodique parmi [Lmin, Lmax] Critère d’aspiration Autoriser des mouvements tabou qui mènent à une meilleure solution
20
Recherche Tabou guidée par l’historique de la recherche
Mémoire court-terme Liste tabou Mémoire long-terme Dernière date (itération) à laquelle une valeur a été choisie Fréquence d’affectation d’une valeur à une variable diversification : favoriser le choix de valeurs rarement utilisées Qualité : identifier des parties de solution de bonne qualité exploiter ces parties dans la construction d’une solution initiale
21
Recherche à voisinage variable
Différents minima locaux suivant le voisinage.
22
Recherche à voisinage variable
3 constats Un minimum local par rapport à un voisinage n’en est pas nécessairement un par rapport à un autre Un minimum global est un minimum local par rapport à tous les voisinages possibles Pour de nombreux problèmes, les minimaux locaux par rapport à un ou à plusieurs voisinages sont relativement proches l’un de l’autre Plusieurs variables d’une solution localement optimale gardent la même valeur dans une solution optimale Comment savoir quelle partie conserver ? Idée : tester différents voisinages remettant en cause plus ou moins de variables
23
Recherche à voisinage variable
24
Recherche à voisinage variable (VNS)
Fonction Variable Neighborhood Search ( N1,N2,…, Nkmax ) A* Génère solution initiale () ; A A* Pour t = 1 à Max Essais Faire k 1 Tant que k ≤ kmax Faire A’ Sélection aléatoire dans voisinage Nk ( A ) A’’ Recherche locale simple( A’ ) Si f(A’’) < f(A*) Alors A* A’’ Si f(A’’) < f(A) Alors A A’’ ; k 1 Sinon k k + 1 retourner Pas trouvé mieux que A* , f(A*) Cas particulier d’arret anticipé: une solution de cout zero a ete trouvee |N1| < |N2| <… < |Nkmax|
25
Recherche locale à l’intérieur de VNS
Fonction Descente gloutonne avec voisinages multiples ( A, N1,N2,…, Nkmax’ ) Répéter jusqu’à absence d’amélioration k 1 Tant que k ≤ kmax’ Faire A’ Sélection gloutonne dans voisinage Nk ( A ) Si f(A’) < f(A) Alors A A’ Sinon k k + 1 retourner Pas trouvé mieux que A , f(A) Methode deterministe. |N1| |N2| … |Nkmax’| , souvent kmax’ ≤ 2
26
Recherche décomposée à voisinage variable (VNDS)
Fonction VariableNeighborhoodDecompositionSearch( kmax ) A* Génère solution initiale () A A* Pour t = 1 à Max Essais Faire k 1 Tant que k ≤ kmax Faire Sélection aléatoire de k variables libres, le reste étant fixé A’ Recherche locale simple sur le sous-problème à k var Si f(A’) < f(A*) Alors A* A’ Si f(A’) < f(A) Alors A A’ ; k 1 Sinon k k + 1 retourner Pas trouvé mieux que A* , f(A*) Cas particulier d’arret anticipé: une solution de cout zero a ete trouvee Possibilité d’hybridation avec une méthode complète pour explorer le ss-pb
27
Modification de l’objectif
28
Modification de l’objectif
Définition d’un ensemble de m attributs caractérisant une solution Par exemple, la violation d’une clause en SAT ou d’une contrainte en CSP pi : paramètre de pénalité : note l’importance (i.e. le coût) d’avoir l’attribut i dans la solution : paramètre de régularisation Ii(A) : fonction indicatrice Ii(A) = 1 : si attribut i présent dans la solution A Ii(A) = 0 : sinon
29
Modification de l’objectif Recherche locale guidée (GLS)
Fonction Guided Local Search ( ) A* Génère solution initiale () A A* pi 0 Pour t = 1 à Max Essais Faire A’ Recherche locale simple (A, f ’ ) Si f(A’) < f(A*) Alors A* A’ Pour tous les attributs i d’utilité maximum Ui(A’) Faire pi pi + 1 Si t mod T = 0 Alors pi pi. /* [0,1[ : facteur d’atténuation */ retourner Pas trouvé mieux que A* , f(A*) Cas particulier d’arret anticipé: une solution de cout zero a ete trouvee ci : contribution de l’attribut i au coût
30
Méthodes exploitant une population de solutions
= recherches locales en parallèle ?
31
(© Lionel Lobjois, CNAM 98)
recherche locale dirigée par des mémoires oscillations stratégiques : alterner intensification et diversification
32
Programmation à mémoire adaptative
Initialiser la mémoire Répéter Construire une solution en s’aidant de la mémoire Améliorer la solution avec une recherche locale Mettre à jour la mémoire Eric Taillard, EIVD, Yverdon, JFRO2003
33
Problème de planification des prises de vues du satellite Pleiades
34
Example of a solution Transition time constraint Image duration, reward and acquisition angle constraint
35
Target and polygon requests
Polygons are composed of several strips Every strip has two possible images
36
Stereo and mono requests
A stereo strip must be acquired twice (twin strip) and both in the same direction
37
Piecewise linear convex objective function
: factor applied on the reward of the request : percentage of the total request area that is acquired
38
Large Neighborhood Search [Shaw98]
Initial solution Resulting solution Additional image 1) Remove one (V) image 2) Keep the order between the remaining selected images 3) All the rejected images are candidates 4) Partial exploration of the neighborhood
39
Total of 10 millions of moves in 5 minutes!!!
Enhanced simulated annealing algorithm E.J. Kuipers, TNO, The Netherlands Part A. Find a most promising solution Fast simulated annealing (60% cpu time, i.e runs) Initial temperature: 0.5 * AverageGain, cooling factor: 0.9, plateau length: Stops after 80 iterations. Performs 40,000 moves/sec on a PIII 850Mhz with a large neighborhood Step 1: Removing 1, 2, 3 or 4 requests (or part of requests) uniform randomly Step 2: Adding 1, 2, 3 or 4 requests (or part of requests) weighted randomly w_req_i = sum_strips_i( gain_k / duration_k ) Greedy insertion of strips that minimizes the total transition time Only feasible solutions Library of good partial schedules (5 strips) learnt at runtime: post-optimization Progressive de-focusing on the largest strips Modified objective function: increasing solution flexibility Part B. Further optimize the best solution of part A Fast simulated annealing without restarting from the empty solution Total of 10 millions of moves in 5 minutes!!!
40
Unified Tabu Search Algorithm [2001] J. -F. Cordeau & G
Unified Tabu Search Algorithm [2001] J.-F. Cordeau & G. Laporte, HEC, Canada Neighborhood with possible infeasible solutions Insert or remove a mono strip or two twin stereo strips with orientations Reverse the direction of a mono strip or two twin stereo strips Choose best insertion position (solution flexibility) Possible violations of time window constraints Modified objective function objective = gain(solution) – α . w(solution) with w(solution) = sum( time window violation ) and α = 1, then α multiplied by 1+ if feasible or by 1- if infeasible randomly chosen in [0,1] at each iteration Post-optimization and diversification mechanisms Every 100 iterations, best reinsert every selected strip Insertion penalty proportional to the strip frequency in the solutions Restarts every 100 iter. from the best known solution with some shuffling
41
ROADEF'2003 : Results of the final stage
Teams (senior category) Grades based on ONERA-CNES evaluations Solving method Language Ranking TNO-PEL: Kuipers - The Netherlands 31.76 (0.4) Simulated annealing - 1 HEC-Crt-GERAD: Cordeau, Laporte - Canada 30.84 (1.1) Tabu search C 2 LGI2P-EMA-EERIE: Vasquez, Vimont, Vlasak - France 30.28 C / C++ 3 DIRO-Crt: Gendreau, Jaumard, Morales - Canada 30.10 (0.8) 4 Poznan Univ. of Technology: Jaszkiewicz - Poland 29.91 (0.8) 5 TNO-PEL: Bloemen - The Netherlands 29.69 (0.7) 6 Bouygues e-Lab: Caseau - France 29.08 Large Neighborhood Search in Constraint Programming Claire 7 Thales-INRA: de Givry, Jeannin - France 23.56 Claire / Eclair / ToOLS 8
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.