320 likes | 665 Vues
Métaheuristiques pour l’optimisation combinatoire. Sébastien Verel Manuel Clergue. Optimisation Combinatoire. S : ensemble de solutions potentielles de cardinal au plus dénombrable (souvent fini de grande taille) Problème combinatoire : Trouver la ou les solutions de S convenable
E N D
Métaheuristiquespour l’optimisation combinatoire Sébastien Verel Manuel Clergue
Optimisation Combinatoire • S : ensemble de solutions potentielles de cardinal au plus dénombrable (souvent fini de grande taille) • Problème combinatoire : • Trouver la ou les solutions de S convenable • Optimisation combinatoire : • f : S -> R fonction à optimiser (ou de coût) • Trouver la ou les solutions de S donnant la ou les plus grandes (ou plus petites) valeurs pour f.
Optimisation Combinatoire • Exemples : • Affectation de fréquence en téléphonie • Le problème du sac-à-dos • Couverture d’ensemble • Découpage de verre sans perte • Routage de véhicules • Le voyageur de commerce • Yield management : gestion de ressource • Horaire de train • … … ………………. et même plus…..
Heuristiques • Du grec heuriskein : trouver/découvrir (heureka) • Une heuristique est plutôt une méthode qui cherche (stratégie)… puisqu’on ne peut garantir le résultat • Définition : une heuristique est une méthode qui cherche de bonne solution (proche de l’optimalité) • Remarques : • Temps de calcul raisonnable • Sans garantir faisabilité ou l’optimalité. • Très large succès : de« un aveu d’impuissance » • à « des techniques performantes de résolution »
Heuristiques • Exemple (très) naïf : l’énumération • Sur le TSP N villes : (N-1)!/2 solutions possibles Si N=20 prend 1 heure de calcul N=21 prend 20 heures N=22 prend 17,5 jours N=25 prend 6 siècles !
Métaheuristiques • Classification : • Méthodes exactes de construction : • branch and bound, simplex • Algorithme évolutifs : • Algo. Génétiques • Programmation Génétique • Stratégies d’évolution • Recherche locale • Méthode de descente (Hill-Climbing) • Recuit Simulé • Tabou • …
Évaluation des MétaHeuristiques • Le problème n’est pas tellement de générer une solution, mais de connaître sa qualité • Évaluation en moyenne (et écart-type) • Évaluation en meilleur solution obtenue • Évaluation du compromis entre qualité/coût
Recherche Locale • Notion de voisinage : • Fonction de voisinage N : S -> 2^S • Indique les voisins d’une solution • Exemple: • S = {0,1}^N , chaînes binaires de longueur N • s1 appartient à N(s2) ssi distHamming(s1,s2) = 1
Recherche Locale • Algorithme général : • Initialisation de s appartenant à S • Choisir s’ dans N(s) • Aller à l’étape 2 si la condition d’arrêt n’est pas vérifiée • en générale l’étape 2 distingue les métaheuristiques
Recherche Locale • Remarques : • On peut mémoriser la « meilleure » solution rencontrée • Utilisation d’une évaluation incrémentale pour améliorer les temps de calcul
Recherche Locale • Choix à faire : • Représentation de l’Espace des solutions faisables • Fonction à optimiser, de coût • Structure du voisinage Tous ces choix peuvent être critiques!..
Recherche Locale • Le problème et son modèle • Solution exacte à un modèle approximatif ? • Solution approximative à un modèle exact ? • Problème P et NP • Problèmes de décision • Transformabilité (réductibilité) • NP-dur et NP-complets • P=NP ?? PNP ??
Hill-Climber ou Steepest descent • Initialisation aléatoire s appartenant à S • Choisir le voisin s’ le plus performant de N(s) pour tout s1 de N(s) f(s1) <= f(s’) • Aller à l’étape 2 si une amélioration est possible • Remarque: • S’arrête sur optimum local • On peut choisir le premier plus performant au lieu du performant
Recuit Simulé (SA) • Simulated Annealing (Kirkpatrick 83) • Inspirer par la physique statistique et les refroidissement des métaux • Autorise les déplacements qui dégradent en fonction d’une probabilité qui dépend d’une température • Paccept = exp(-E / T) • Si l’énergie décroît, le système accepte la perturbation • Si l’énergie croît, le système accepte la perturbation selon Paccept
Recuit Simulé (SA) • Sélectionner une solution initiale s • Sélectionner une température initiale t> 0 • 2. Sélectionner au hasard s’ N(s); • = f(s’) – f(s); • si < 0 • alors s = s’ • sinon x=hasard([0,1]); • if x < exp(-/t) alors s = s’ • Aller à l’étape 2 si la condition d’arrêt n’est pas vérifiée • actualiser la température t
Recuit Simulé (SA) • Paramètre de la recherche : • Température initiale : De façon à avoir 80% d’acceptation de descente au début • Schéma de refroidissement : T(n+1) = alpha * T(n) Changement à un nombre fixe d’itération Changement à un nombre fixe de descente ou de montée • Condition d’arrêt : nombre maximale d’itération température finale convergence vers une solution
Recherche Tabou (TS) • Méthode proposée par F. Glover en 1986 • Future Paths for Integer Programming and links to Artificial Intelligence • Introduire une notion de mémoire dans la stratégie d’exploration de l’espace de recherche • Recherche tabou parce qu’il y a interdiction de reprendre des solutions récemment visitées
Recherche Tabou (TS) • A chaque itération, « le moins mauvais » voisin est choisit • Pour éviter les cycles, c’est à dire la répétition infinie d’une séquence de mouvements, les L derniers mouvements sont considérés comme interdits, L étant la taille de la liste tabou • À chaque itération, le mouvement effectué est donc le moins mauvais mouvement non tabou
Recherche Tabou (TS) • 1.Initialisation Une solution initiale s, s* = s0, c*=f(s) TL = 2. s’ N(s) tel que x N(s), f(x)f(s’) et s’ TL Si f(s) < c* alors s*= s , c* = f(s) Mise à jour de TL • 3. Aller à l’étape 2 si la condition d’arrêt n’est pas vérifiée
Recherche Tabou (TS) • Stratégie d’intensification : Les meilleures solutions rencontrées sont mémorisées Les propriétés communes en sont dégagées On oriente la recherche vers les régions ainsi définies • Stratégie de diversification : On mémorise les solutions les plus visitées On impose un système de pénalités Les mouvements les moins utilisés sont favorisés
Recherche Tabou (TS) • Aspiration : Consiste à lever le statut Tabou d’un mouvement, si il se révèle intéressant En général, le mouvement est choisi quelque soit son état si il conduit à une amélioration de la meilleure solution • Taille de la liste tabou : La taille L est à déterminer empiriquement Ni trop longue, ni trop petite Règles statiques/dynamiques
Recherche Tabou (TS) • Sélection du meilleur voisin : Best Fit : le voisinage est exploré en entier First Fit : un partie du voisinage est explorée • Utilisation d’une table de calculs : Pour éviter de calculer entièrement le coût de chaque voisin, à chaque itération on mémorise dans une table les modifications au coût de la solution courante associées à chacun des mouvements possibles
Paysage de Fitness • Définition : (Wrigth 1932) • (S,f,V) est un paysage de fitness où : • S Ensemble des solutions • f : S -> R fonction à optimiser • V Relation de voisinage
Paysage de Fitness • Problème d’optimisation: • Trouver Sopt, f(sopt) = max { f(s) | s in S } • Maximum local: Sloc • Pour tout s in V(sloc), f(s) <= f(sloc)
Paysage de Fitness et Rugosité • Présence optima locaux • Régularité du paysage (smooth) • Difficulté d’optimisation
Mesures de Rugosité • Nombre d’optima locaux • Distribution des optima locaux • Distances entre optima • Par marche adaptative ou analytiquement
Micro exemples • OneMax : S = {0,1}^N • f(s) = #1 • Fonction « trap »: • …voir tableau
Autocorrélation • Autocorrélation (Weinberger) : • (s0, s1, s2, s3, ….) marche aléatoire • Rho(l) = cov(f(sn), f(sn+l)) • / (sig[f(sn)]sig[f(sn+l)]) • Longueur de corrélation : • 1 / ln(Rho(1))
Rugosité - Dynamique • Rugosité : Vision d’un grimpeur • Rugosité : Notion d’information locale
Cause de la rugosité • Epistasie : • lien entre les gènes ou variables, degré de non linéarité • Epistasie équivalent à rugosité • NK-Fitness landscapes
Conclusion • Très bons résultats sur certains types de problèmes • Algorithmes faciles à mettre en œuvre • Il faut faire les bons choix de paramétrage • Solution non garantie • Tendance : hybridation des métaheuristiques