métaheuristiques pour loptimisation combinatoire sébastien verel manuel clergue
TRANSCRIPT
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 raisonnableSans 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 TSPN villes : (N-1)!/2 solutions possibles
Si N=20 prend 1 heure de calculN=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 :
1. Initialisation de s appartenant à S
2. Choisir s’ dans N(s)
3. 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
1. Initialisation aléatoire s appartenant à S
2. Choisir le voisin s’ le plus performant de N(s)pour tout s1 de N(s) f(s1) <= f(s’)
3. 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 perturbationSi l’énergie croît, le système accepte la perturbation selon Paccept
Recuit Simulé (SA)1. 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’
3. 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.InitialisationUne 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