Recherches locales et méta-heuristiques

Slides:



Advertisements
Présentations similaires
Explorer un espace d’états
Advertisements

Fabrice Lauri, François Charpillet, Daniel Szer
Apprentissage supervisé à partir de séquences
Voyager à l’aide de l’optimisation combinatoire Simon de Givry
Métaheuristiques pour l’optimisation combinatoire
Application de réseaux bayésiens à la détection de fumées polluantes
Equipe optimisation TempoSoft
A Pyramid Approach to Subpixel Registration Based on Intensity
Optimisation dans les télécommunications
A.Faÿ 1 Recherche opérationnelle Résumé de cours.
Génération de coupes pour la planification d’agents
El-Djillali TALBI Doctorant systèmes industriels
Ordonnancement des mouvements de deux robots
École des Mines d ’Alès site EERIE à Nîmes
Génération de colonnes
Optimisation globale non déterministe
Travail d’Etude et de Recherche :
Y. Caseau 22/04/ Challenge ROADEF: Combinaison de Propagation de Contraintes et de Méta-Heuristiques Yves Caseau & all Bouygues – e-lab Francoro.
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
UNIVERSITE DES SCIENCES ET DE LA TECHNOLOGIE D’ORAN
Ministère de l’enseignement supérieur et de la recherche scientifique Université des Sciences et de la Technologie d’Oran (Mohamed Boudiaf) Faculté des.
Application des algorithmes génétiques
CHALLENGE ROADEF 2001 Résolution par une métaheuristique à base de recherche à voisinage variable et propagation par contraintes Fabrice BUSCAYLET Fabrice.
Algorithmes Branch & Bound
Heuristiques A. Introduction B. Recherche d ’une branche
Optimisation linéaire
Hybridation dune Méthode Glouton et dune Recherche Locale Weinberg Benjamin Laboratoire dInformatique Fondamental de Lille, France.
III – Convergence Asymptotique
Optimisation en nombres entiers Recherche Opérationnelle GC-SIE.
La segmentation
4. Algorithme de Recuit Simulé
II- L’algorithme du recuit simulé (pseudo-code)

Algorithmes d ’approximation
Optimisation-Identification et Cast3M
2. Algorithme de Recherche Tabou
L’adaptativité pour un solveur de l’équation de Vlasov

Heuristiques C. Recherche de la meilleure branche . Branch And Bound
Arbres et graphes.
les méthodes de recherche locale
Programmation dynamique
Graph cuts et applications
Optimisation par les algorithmes génétiques
Bases de données fédéréEs hétérogènes
Optimisation de requêtes
Programmation linéaire en nombres entiers
Algorithmes Branch & Bound
Licence Informatique Algorithmique des graphes
Chapitre 5 Test de circuits séquentiels
Travaux Pratiques Optimisation Combinatoire
RAISONNEMENT À PARTIR DE CAS R à PC. PLAN DU TRAVAIL Introduction Introduction Raisonnement analogique Raisonnement analogique Principe et étapes de R.
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
Classification de données par l’algorithme FPSO-GA
Optimisation pour la Conception de Systèmes Embarqués
Université Farhat Abbas_setif
Algorithmes génétiques en optimisation combinatoire
Présenté par : ABED Djemaa; BAKHOUIA Roqiya.
Méthode des moindres carrés (1)
Optimisation des horaires de personnel
Optimisation par les algorithmes génétiques
ANNEE UNIVERSITAIRE :2010/2011
Peuplement d’une ville virtuelle S.ESTIENNE PRE001v1.01 Exemple d’utilisation du GA 1. Initialement une population est choisie au hasard. 2. Chaque individu.
1 Logiciels de confection automatique d’horaires.
Le Jeu et l’intelligence artificielle
Problème du Car Sequencing
Recuit simulé Une métaheuristique venue de la métallurgie.
Proposition d’une métaheuristique pour le
Les étapes de l’algorithme choisi -Calcul des fitness -Mélange si stagnation -Sélection quasi-élitiste -Croisement -Mutation.
Variable Neighborhood Descent (VND) Réalisée par Nadia Sassi Eya baghdedi AU
Transcription de la présentation:

Recherches locales et méta-heuristiques Méthodes de preuves Optimisation Satisfaction de contraintes Chapitre 6

Comparaison méthodes complètes / incomplètes

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

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*) = minAE 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)

Schéma générique Recherche par améliorations successives Recherche locale Schéma générique Recherche par améliorations successives

Paysage de recherche locale plateau minimum local optimum

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)

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

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)

Recherche par améliorations successives plateau minimum local optimum

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

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

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 ?

(© Lionel Lobjois, CNAM 98)

Recuit simulé T1 T2

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

Recherche tabou

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

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

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

Recherche à voisinage variable Différents minima locaux suivant le voisinage.

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

Recherche à voisinage variable

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|

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

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

Modification de l’objectif

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

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

Méthodes exploitant une population de solutions = recherches locales en parallèle ?

(© Lionel Lobjois, CNAM 98) recherche locale dirigée par des mémoires oscillations stratégiques : alterner intensification et diversification

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

Problème de planification des prises de vues du satellite Pleiades

Example of a solution Transition time constraint Image duration, reward and acquisition angle constraint

Target and polygon requests Polygons are composed of several strips Every strip has two possible images

Stereo and mono requests A stereo strip must be acquired twice (twin strip) and both in the same direction

Piecewise linear convex objective function : factor applied on the reward of the request : percentage of the total request area that is acquired

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

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. 6-12 runs) Initial temperature: 0.5 * AverageGain, cooling factor: 0.9, plateau length: 8000. 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!!!

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

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