Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Méthodes approchées pour l’optimisation
M.-J. Huguet
https://homepages.laas.fr/huguet
2017-2018
Plan
1. Introduction 2. Heuristiques gloutonnes 3. Méthodes de recherche locale 4. Méthodes à population 5. Hyrbidation 6. Optimisation multi-objectif 7. Conclusion
2
Section 1. Introduction
3
Contexte (1) Optimiser : permettre d’obtenir la meilleure action (le meilleur résultat) par rapport à une situation donnée
Formalisation mathématique Problème :
: ensemble des variables du problème
: domaine des variables : : les valeurs pouvant être prises par
: contraintes du problème
o Relations entre les variables : restreindre les valeurs possibles
: fonction Objectif
o Minimiser (cout/ perte); Maximiser (gain, profit)
4
Contexte (2) Espaces des solutions (alternatives) : produit cartésien des domaines
Taille de l’ensemble des solutions :
Une solution : instanciation , ,
Espace des solutions admissibles : Une solution , et contraintes satisfaites
Résoudre un problème d’optimisation : Déterminer une solution , telle que
Notation :
Optimisation Combinatoire :
minimisation sur un ensemble fini (mais potentiellement très grand)
5
Exemples :
6
Complexité Quelques problèmes de complexité polynomiale :
Problèmes de programmation linéaire
Problèmes d’affectation / couplage maximal
Problèmes 2-SAT
Graphes : plus courts chemins, connexité, arbres couvrants, flot max, …
Beaucoup sont NP-difficiles : Graphes : Voyageur de Commerce, Coloriage, Clique, …
Programmation Linéaire en Nombres Entiers
3-SAT,
….
7
Et en pratique … Certaines instances de problèmes NP-difficiles peuvent être résolues rapidement
Certains problèmes NP-difficile peuvent avoir des cas particuliers de complexité polynomiale Certains problèmes NP-difficiles sont approximables en temps polynomial avec garantie de performances / qualité solution
Exploration intelligente de l’espace de recherche de solutions Maitriser l’explosion combinatoire méthodes exactes / complètes Contourner l’explosion combinatoire
méthodes approchées / incomplètes
8
Encore du vocabulaire … Méthode complète : explore l’ensemble des solutions de façon exhaustive et systématique en structurant l’espace de recherche
Méthode incomplète : explore seulement une sous-partie de l’ensemble des solutions en utilisant des heuristiques pour se guider vers les zones qui semblent plus prometteuses.
Méthode exacte : explore l’espace de recherche dans sa totalité (complète) Optimum global
Méthode approchée : explore une partie de l’espace de recherche Optimum local
Méthode déterministe : réalise toujours la même suite d’actions Méthode stochastique : effectue des choix aléatoires (probabilistes)
9
Familles de méthodes approchées Heuristiques :
méthode approchée conçue pour un problème d'optimisation spécifique permettant d’obtenir des solutions dans un temps de calcul raisonnable
Etymologie (grec) : eurisko : trouver
Reflète une stratégie par rapport à une connaissance du problème
Pas de garantie d’optimalité
Méta-Heuristiques : Ensemble de concepts généraux (méta + heuristique) :
Voisinage, utilisation de la mémoire, inspiration de la physique ou la nature ...
une méta-heuristique : heuristique généraliste peut s'appliquer à plusieurs problèmes d'optimisation Pas de garantie d’optimalité
10
Différentes familles de méthodes approchées Heuristiques « gloutonnes » (constructives)
Obtenir une solution à partir de « règles » de décision
Méta-Heuristiques Méthode à solution unique : Recherche locale o Exploration du voisinage d’une solution
Méthodes à population de solutions o Evolution d’un ensemble de solutions
Hybridation de méthodes
11
Méthodes approchées
Constructives Recherche Locale Evolution
Intérêts des méthodes approchées Quand utiliser une méthode approchée ?
Impossible de passer à l’échelle avec une méthode exacte Contraintes de temps de calcul, de mémoire, de modélisation, ….
Une bonne méthode approchée ? Complexité raisonnable
Solution de bonne qualité, rarement de mauvaise solution
Simple à mettre en œuvre ….
Evaluation d’une méthode approchée Comparaison méthodes exactes sur des jeux de données de taille raisonnable
Comparaison / bornes / temps de calcul / solutions …
12
Section 2. Heuristique gloutonne
Principes d’une Recherche Gloutonne (1) Méthode naïve
Partir d’une affectation vide Tant qu’il y a des variables non affectées
Choisir une variable
Lui affecter une valeur
Les choix successifs ne sont pas remis en cause
Une branche d’une recherche arborescente (sans backtrack)
Les choix effectués doivent garantir l’admissibilité de la solution obtenue (ie. respect des contraintes)
Peut-on toujours le garantir ?
14
Greedy Search
Recherche Constructive
Exemples Coloration de graphe
15
{bleu, rouge} {bleu, rouge, vert}
{bleu, rouge}
{bleu, rouge} {bleu, rouge, vert}
{bleu, rouge}
Instanciation :
Instanciation :
{bleu, rouge} {bleu, rouge, vert}
{bleu, rouge}
Solution pas toujours admissibles
Minimiser nombre de couleurs
Exemples Planification
16
activités durée ressource A1 1 1 A2 1 2 A3 2 1 A4 1 2 A5 2 1
A1 A2 A5 A3 A4 Ressource disponible : 2 Minimiser durée totale
Instanciation :
A1 A2
A3 A4
A5
Durée Totale =
Instanciation :
A1 A2
A3 A4
A5
Durée Totale =
Solutions admissibles Valeurs différentes / objectif
Principes d’une Recherche Gloutonne (2) Qualité de la solution / fonction objectif
Dépend de l’ordre sur les variables et des choix de valeurs Pas de garantie d’optimalité Obtention d’une borne supérieure de la valeur optimale (minimisation)
Heuristiques d’instanciation Quelle variable choisir ? Quelle valeur lui affecter ?
Principe général Choix de variable : la plus importante d’abord (fail-first)
Choix de valeur : celle ayant le plus de chance de conduire à une (bonne) solution (suceed-fisrt)
17
Exemple 1 : Voyageur de commerce (1) Problème :
Un ensemble de villes (sommets d’un graphe)
Distance (cout) entre les villes
Déterminer une tournée (passer 1 ou 1 seule fois par tous les sommets) minimisant la distance parcourue
18
TSP : Traveling Salesman Problem
Exemple 1 : Voyageur de commerce (2) Heuristique : Plus proche Voisin
Choisir un sommet de départ
Tant qu’il reste des sommets non traités Connecter le dernier sommet atteint au sommet libre le plus proche
Relier le dernier sommet au sommet initial
Exemple : démarrer sommet 1 1 3 (Distance = 2)
3 5 (Distance = 2+5=7)
5 4 (Distance = 7+9=16)
4 2 (Distance = 16+4=20)
Connecter 2 à 1 : Distance = 20+9=29
En démarrant du sommet 2 : 2 5 3 1 4 2 (Distance 33) 19
Borne supérieure / tournée min
Exemple 1 : Voyageur de commerce (3) Heuristique : Meilleure Insertion
Choisir un cycle réduit à une boucle sur un sommet
Tant qu’il y a des sommets libres Pour tout sommet libre
o Chercher la meilleur position d’insertion entre 2 sommets et :
• Minimiser
Insérer le sommet minimisant
Exemple : départ de 1 1 1 : insertion de 3 : 1 3 1 / Cout=8
Insertion de 5 entre 1 et 3 : 1 5 3 1 / 8+7=15
Insertion de 4 entre 5 et 3 : 1 5 4 3 1 / 15+5 = 20
Insertion de 2 entre 5 et 4 : 1 5 2 4 3 1 / 20+10 = 30
20 Borne supérieure / tournée min
Exemple 2 : Problème du Sac à dos (1) Problème :
Un ensemble de objets A chaque objet :
Un poids et une utilité
Un sac à dos dont le poids total ne doit pas dépasser la capacité Sélectionner les objets pour maximiser l’utilité
21
Knapsack Problem
Exemple 2 : Problème du Sac à dos (1) Heuristique par intérêt décroissant
Trier les objets par ordre décroissant
Ensemble d’objets sélectionnés :
Sélectionner les objets dans l’ordre : soit l’objet Si alors
Exemple : Capacité sac = 15 (Jaune) : 10/9 = 1,11 OK Poids = 9; Profit = 10
(Vert) : 12/7 = 0,58 NON
(Orange) : 1/2 = 0,5 OK Poids = 11; Profit = 11
(Gris) : 3/7 = 0,43 NON
(Bleu) : 2/5 = 0,4 NON
Solution optimale (Jaune et Bleu) : Poids 14; Profit 12
22
Borne inférieur / profit max
Exemple 3: Coloriage de graphes Planifier sur la semaine les rattrapages de 6 étudiants et de 6 UF avec 2 créneaux par jour tout en minimisant le nombre de créneaux
Pistes : Modéliser le problème par un graphe d’incompatibilité entre UF et se ramener à un problème de coloriage
Calculer une borne inférieure du nombre de créneaux
Proposer une heuristique gloutonne
23
Etudiants Epreuves E1 UF1, UF2, UF5 E2 UF3, UF4 E3 UF2, UF6 E4 UF3, UF4, UF5 E5 UF3, UF6 E6 UF1, UF2, UF3
Exemple 4: Ordonnancement d’activités (1) Minimiser la durée de réalisation de 4 activités nécessitant chacune 2 étapes consécutives utilisant chacune une ressource.
A chaque étape, on connaît la durée d’utilisation de l’unique ressource
A faire : Proposer une borne inférieure de la durée de réalisation
Appliquer l’heuristique gloutonne : MaxTotalDuration consistant à réaliser en premier l’activité ayant la plus grande durée (faire un diagramme de Gantt)
24
Activités Etape 1 / Res1
Etape 2 / Res2
A1 6 8 A2 4 5 A3 4 1 A4 8 4
FlowShop à 2 machines
Exemple 4: Ordonnancement d’activités (2) Heuristique de Johnson
Classer pour l’étape 1 par ordre croissant de durée (limiter inactivité)
Classer pour l’étape 2 par ordre décroissant de durée (limiter attente)
Principe : Séparer les activités en 2 groupes :
o G1 : activités plus rapides Etape 1 & G2 : activités plus rapides Etape 2
Trier G1 et G2
o G1 : Trier sur durée croissante Etape 1 & G2 : Trier durée décroissantes Etape 2
Ordre total activités : G1 puis G2
Cette heuristique de Johnson : fournit la solution optimale pour 2 étapes.
25
Exemple 5 : Remplissage de boites Problème :
Un ensemble de objets ayant une taille
Des boites de capacité Ranger les objets en minimisant le nombre de boites
Heuristique First Fit Decreasing Classer les objets par taille décroissante et les placer dans la première boite possible. Si plus de boite disponible, en prendre une de plus
Heuristique Best Fit Decreasing Classer les objets par taille décroissante et les placer dans la boîte la mieux remplie qui puisse les contenir. Si plus de boite disponible, en prendre une de plus
Note : ces heuristiques ont des propriétés en termes d’écart garanti par rapport à la solution optimale
26
Bin Packing
Exemple 6 : Recouvrement / Partition d’ensembles
Problème : Un ensemble de fini de éléments
Des sous-ensembles ayant chacun un cout est une couverture de si
est une partition de si et si (pavage)
Exemple :
Déterminer couverture/ partition de cout minimal
27
couverture partition pavage
Récapitulatif Recherche Gloutonne (1) Caractéristiques d’une recherche gloutonne
Exploiter des connaissances pour faire les meilleurs choix à chaque étape Très simple à mettre en œuvre Temps de calcul limité :
Complexité : linéaire en fonction du nombre de variables
Aucune garantie d’optimalité : Borne supérieur / objectif en minimisation
Attention Peut ne pas aboutir à une solution admissible Sauf si problème peu contraint
28
Récapitulatif Recherche Gloutonne (2) Cas particuliers où la recherche gloutonne garantit l’obtention d’une solution optimale
Ex: Algo de Kruskal (ou Prim) pour déterminer un arbre couvrant de cout minimal
Cas particulier avec garantie de performance Ex : Bin-Packing, certains problèmes d’ordonnancement, ….
29
Graphe pondéré Arbre couvrant (12) Arbre couvrant min (11)
Variantes d’une Recherche Gloutonne Variantes :
Introduire de l’aléatoire Sur les choix de variables et de valeurs
Lancer plusieurs exécutions de la recherche gloutonne
Arrêt de la méthode Toutes les variables sont instanciées
Récupérer la meilleure solution
30
Section 3. Recherche Locale
31
Principes d’une recherche locale (1) Idée :
Les bonnes solutions ont des caractéristiques communes
Principe : Partir d’une solution initiale Transformations successives
Amélioration de la fonction objectif en explorant des voisinages
Pas de garantie d’optimalité 32
Générer voisinage
Sélectionner solution
Générer voisinage
Principes d’une recherche locale (2) Composants
Espace de recherche des solutions :
Fonction objectif : (cout à minimiser) Voisinage : Opération de transformation :
Algorithme de Recherche locale Solution initiale : ; Meilleure solution : ; Répéter
Choisir
Si alors Jusqu’à « Critères d’arrêt »
33
Local Search
Principes d’une recherche locale (3)
34
Principes d’une recherche locale (4) Algorithme de Recherche locale
Solution initiale : ; (1) Meilleure solution : ; Répéter
Choisir (2) (3)
Si alors Jusqu’à « Critères d’arrêt » (4)
Points clés 1. Comment obtenir une solution initiale ?
2. Comment générer un voisinage ?
3. Comment sélectionner la prochaine solution ?
4. Quand s’arrêter ?
35
Principes d’une recherche locale (5) Algorithme de Recherche locale
Solution initiale : ; (1) Meilleure solution : ; Répéter
Choisir (2) (3)
Si alors Jusqu’à « Critères d’arrêt » (4)
Points clés 1. Comment obtenir une solution initiale ?
Solution aléatoire
Solution connue
Heuristique gloutonne
36
Principes d’une recherche locale (6) Algorithme de Recherche locale
Solution initiale : ; (1) Meilleure solution : ; Répéter
Choisir (2) (3)
Si alors Jusqu’à « Critères d’arrêt » (4)
Points clés 4. Quand s’arrêter ?
Obtention d’une solution de qualité voulue
Nombre d’itérations / Temps d’exécution maximum atteint
Nombre d’itérations / Temps d’exécution maximum sans amélioration atteint
37
Principes d’une recherche locale (7) Algorithme de Recherche locale
Solution initiale : ; (1) Meilleure solution : ; Répéter
Choisir (2) (3)
Si alors Jusqu’à « Critères d’arrêt » (4)
Points clés 2. Comment générer un voisinage ?
38
Voisinages (1) Voisinage d’une solution
Opération de transformation :
Transformation locale sur une solution : La structure globale de la solution n’est pas modifiée
Doit pouvoir être généré et évalué rapidement
Lié à la représentation d’une solution
Graphe de voisinage : Sommets : espace de recherche
Si relation dans le graphe
39
Voisinages (2) Propriétés :
Accessibilité : tout élément de l’espace de recherche peut être atteint (toute solution intéressante) est accessible par transformations successives
Graphe de voisinage Connexe
Réversibilité : on peut revenir à la solution initiale Graphe symétrique
Choix d’un Voisinage : Lié au codage de la solution
Ex : Voyageur de Commerce : ensemble des sommets ou des arêtes
Lié à sa taille (cout de génération et d’évaluation) Ex : , , …/ nombre de variable
40
Exemple de voisinage (1) Ensemble de variables binaires : Voisinage :
Ensemble des chaînes binaires à une distance de Hamming de 1 Pour 5 variables binaires :
01100 01111 01001 00101 11101
Si distance de Hamming de 2,
41
Exemple de voisinage (2) Quelques transformations classiques :
Complémentation Solution = chaine de variables binaires :
remplacer une ou plusieurs valeurs 0/1 par son complémentaire
Solution = chaine de caractères : remplacer une valeur (ou plusieurs) par une autre
Echange / Swap Solution = chaine de caractères
Choisir 2 positions et . Intervertir les caractères situés à ces deux positions
A B C D E F G échanger position 2 et 5 : A E C D B F G
42
Exemple de voisinage (3) Quelques transformations classiques :
Insertion-Décalage Solution = chaine de caractères :
Choisir 2 positions et . Insérer en position le caractère situé en et décaler les caractères qui étaient entre et (exlus)
A B C D E F G et A B F C D E G
Inversion Solution = chaine de caractères
Choisir 2 positions et . Inverser l’ordre d’écriture entre et .
A B C D E F G inversion entre position 2 et 5 : A E D C B F G
43
Voisinages pour le problème du Voyageur de Commerce (1)
Problème : Un ensemble de villes (sommets d’un graphe) : et distance entre villes Déterminer une tournée minimisant la somme des distances parcourues
Espace de recherche : ensemble des permutations de
Soit une solution contenant les arêtes et
Insertion o Supprimer et l’insérer après
o Supprimer et l’insérer après
Swap o Echanger et
2-opt o Remplacer et par et
44
Voisinages pour le problème du Voyageur de Commerce (2) : Insertion
Supprimer et l’insérer après
45
Voisinages pour le problème du Voyageur de Commerce (3) : Swap
Echanger et
46
Voisinages pour le problème du Voyageur de Commerce (4) : 2-opt
Remplacer et par et
47
Taille des voisinages (1) Changer la valeur d’une (plusieurs) variable(s) (SAT / CSP)
Permuter des variables dans une solution (ie. une séquence)
48
x1 x2 x3 0 1 0
x1 x2 x3 1 1 0
x1 x2 x3 0 0 0
x1 x2 x3 0 1 1
x1 x2 x3 x4
x2 x1 x3 x4 x3 x2 x1 x4 x4 x2 x3 x1 x1 x3 x2 x4 x1 x4 x3 x2 x1 x2 x4 x3
Taille des voisinages (2) Taille du voisinage inférieure espace de recherche
Exemple : Changer la valeur d’une variable avec 3 variables binaires o Taille espace recherche = 8 Taille voisinage = 3
Exemple : Permutation de variables dans une séquence de 4 variables o Taille espace recherche = 4! = 24 Taille voisinage = 6
49
Redondance (1) Risque de redondance dans l’exploration
Exemple : Changer la valeur d’une variable avec 3 variables binaires
Redondance au cours des itérations
50
x1 x2 x3 0 1 0
x1 x2 x3 1 0 0
x1 x2 x3 1 1 1
x1 x2 x3 0 1 0
x1 x2 x3 1 1 0
x1 x2 x3 0 0 0
x1 x2 x3 0 1 1
Redondance (2) Risque de redondance dans l’exploration
Exemple : Permutation de variables dans une séquence de 4 variables
Redondance dans la génération
51
x1 x2 x3 x4
x2 x1 x3 x4 x3 x2 x1 x4 x4 x2 x3 x1
x1 x3 x2 x4 x1 x4 x3 x2
x1 x2 x4 x3
x2 x1 x3 x4
x3 x2 x1 x4 x1 x3 x2 x4
x4 x2 x3 x1 x1 x4 x3 x2 x1 x2 x4 x3
Paysage de Recherche Un élément de l’espace de recherche : un point
Fonction Objectif : Evaluation d’un point
Une opération de voisinage graphe de voisinage
Optimum local : tous les voisins sont moins bons / objectif Plateau : ensemble de points connexes dans le graphe de voisinage et ayant même valeur de fonction objectif Bassin d’attraction : voisins que l’on peut atteindre sans dégrader la fonction objectif
52
Sélectionner un voisinage (1) Attention à la taille du voisinage
Si trop petit : risque de ne pas avoir de meilleure solution
Si trop grand : l’exploration est couteuse
Eviter les redondances : Lors de la génération : étudier le voisinage
Ne conserver que les solutions améliorantes (évaluation ….)
Impact du paysage sur la stratégie d’exploration : 1 seul optimum et pas de plateau : Intensifier
Paysages rugueux : Diversifier
Paysage différent selon le voisinage utilisé (et la fonction d’évaluation)
53
Sélectionner un voisinage (2) Dépend du problème à résoudre
Dépend de la représentation des solutions Avoir une idée du paysage des solutions
Échantillonnage des solutions / du voisinage
Lien entre voisinage et sélection d’une solution
Littérature sur le problème considéré
o (FIN COURS 1)
54
Exploration d’un voisinage (1) Algorithme de Recherche locale
Solution initiale : ; (1) Meilleure solution : ; Répéter
Choisir (2) (3)
Si alors Jusqu’à « Critères d’arrêt » (4)
Points clés 3. Comment sélectionner la prochaine solution ?
Premier voisin améliorant
Meilleur voisin améliorant
Aléatoire
…..
55
Exploration d’un voisinage (2) Comment sélectionner la prochaine solution ?
Exploration de l’espace de recherche pour déterminer la nouvelle solution
Sélectionner une solution de meilleure qualité : Premier voisin améliorant (First Improvment) o Savoir générer des voisins prometteurs
Meilleur voisin (Best improvment) o Exploration de tout le voisinage
Méthode Hill-Climbing ou Plus grande pente ou Descente
Permet une intensification de l’exploration autour d’une solution initiale
Aboutit à un optimum local (ou reste bloqué sur un plateau)
56
Algorithmes Hill-Climbing (1)
57
Algorithme First Improvment Solution initiale : ; (1) Meilleure solution : ; Répéter
Choisir tq (2) (3)
Si alors Jusqu’à « Critères d’arrêt » (4)
Algorithme Best Improvment Solution initiale : ; (1) Meilleure solution : ; Répéter
Choisir tq (2) (3)
Si alors Jusqu’à « Critères d’arrêt » (4)
Algorithmes Hill-Climbing (2) Terminaison de la méthode Hill-Climbing
La taille du voisinage ne permet pas de trouver de meilleure solution Solution localement optimale
Pas de bouclage de la méthode
Pas de retour sur une solution déjà trouvée Quand on sélectionne comme solution améliorante, n’a jamais été sélectionnée auparavant comme solution améliorante
58
Exploration aléatoire d’un voisinage Sélectionner une solution aléatoire: Random Walk
Accepte des solutions même non améliorante
Permet une diversification de l’exploration (sortir d’un optimum local)
Ex (maximisation)
59
Diversification Intensification
Intensification / Diversification Combinaison intensification / diversification
Fixer une probabilité de choisir un mouvement « random » :
Choisir aléatoirement une valeur Si alors
Choisir une solution aléatoirement dans -- diversification Sinon
Choisir la meilleure solution -- intensification
Selon la probabilité : compromis diversification / intensification : random walk
: hill-climbing
En pratique : faible
60
Plusieurs solutions initiales Autre amélioration de la méthode Hill-Climbing
Relancer la méthode de descente à partir de plusieurs solutions initiales Conserver la meilleure solution trouvée
Méthode de Descente Multi-Start
61
Principes d’une recherche locale : Evaluation Algorithme de Recherche locale
Solution initiale : ; (1) Meilleure solution : ; Répéter
Choisir (2) (3)
Si alors Jusqu’à « Critères d’arrêt » (4)
Points clés 1. Comment obtenir une solution initiale ?
2. Comment générer un voisinage ? et évaluer 3. Comment sélectionner la prochaine solution ?
4. Quand s’arrêter ?
62
Evaluation d’une solution Evaluation d’une solution / d’un voisin
Estimation a priori de la qualité d’un voisin
Fonction Objectif
Autre fonction d’évaluation
Opération fréquente Doit être la moins coûteuse en temps de calcul
Si possible incrémentale
Exemple Soit un circuit (A B C D E A) de cout Z et un voisinage consistant à échanger 2 arêtes non consécutives : par exemple (AB) avec (CD)
Le circuit voisin (A-C-B-D-E-A) est de cout Z’=Z-(AB)-(CD) + (AC)+(BD)
63
S’échapper des optima locaux (1) Dans une recherche locale :
Impact du choix de la structure de voisinage Impact du choix de la fonction d’évaluation (ie. du paysage parcouru)
Pour diversifier Introduire de l’aléatoire
Autoriser des solutions non améliorantes Mais comment éviter de cycler sur des solutions ?
Faire varier les voisinages
Re-démarrage
Mémorisation
Nombreuses variantes en Recherche Locale
64
Variantes (1) : Iterated Local Search
65
Iterated Local Search 1. s0 Solution initiale; Best s0 2. s Descent(s0) // Exploration 3. repeat 4. s’ Perturbation (s) 5. s’’ Descent(s’) 6. Acceptation :
if f(s’’) < f(s) then s s’’ ; Mise-à-jour(Best, s);
7. until : conditions à définir
Perturbation aléatoire de la solution
Variantes (2) : Méthode à seuil Idée :
Introduire un seuil d’acceptation des solutions non améliorantes
Choisir le premier voisin tel que
Réglage du seuil Détermine le compromis diversification / intensification
Si : aléatoire
Si : les mouvements dégradant la solution sont interdits
Le seuil peut varier au cours des itérations
66
Treshold Accepting
Variantes (3) : Voisinages variables Variable Neighborhood Descent/ Search Définir plusieurs voisinages (diversification)
But : pouvoir sortir des optima locaux et améliorer la qualité de la solution
Principe Effectuer une succession de méthodes de descente
Quand un optimum local est atteint par une méthode de descente: changer de voisinage
Ordonner a priori l’ensemble des voisinages N1, N2, …., Nk
Complexité croissante
67
Variantes (3) : Voisinages variables Principe 1. s Solution initiale 2. i 1 : numéro du voisinage 3. repeat 4. s’ Meilleur Voisin dans Ni(s) //Variante : Random(Ni) // et Descent(s’) 5. if f(s’) < f(s) then //Variante : Rester sur Ni i 1; s s’ // et appliquer Descent(s’) 6. else i i+1 end if 7. until i >k (nombre de voisinages)
68
Variantes (3) : Voisinages variables
69
Variantes (4) : Recuit Simulé Idée
Analogie métallurgie : en chauffant un métal puis en le refroidissant doucement on peut obtenir des structures cristallines résistantes
S. Kirpatrick 1983 / V. Cerny 1985
Pour l’optimisation : Diversifier la recherche en acceptant des voisins qui dégradent la fonction objectf en fonction d’une probabilité d’acceptation qui décroit dans le temps
Stratégie d’exploration : Paramètre (température) qui décroit au cours des itérations
Choix d’un voisin tel que : Si alors -- intensification
Si ( choisi aléatoirement dans [0,1]) alors -- diversification 70
Simulated Annealing
Variantes (4) : Recuit Simulé Température : probabilité d’accepter une solution non améliorante
Condition de Métropolis :
accepter la nouvelle solution avec une probabilité :
Si alors ; si Si alors
Algorithme
71
1. s0 solution initiale 2. T0 Température initiale 3. s s0; T T0 4. while (Conditions) loop 5. s’ Random(N(s)) 6. Deltaf f(s’) – f(s) 7. if Deltaf< 0 ou random < exp(-Delta/T) then 8. s s’ 9. end if 10. T k.T 11. end while 12. Return s
Variantes (4) : Recuit Simulé Au début des itérations :
T élevé : Acceptation fréquente de solutions non améliorantes
En fin des itérations : T faible : acceptation rare de solution non améliorante
Réglage des paramètres
Température initiale
Variation de température : à chaque étape / par palier / adaptative Conditions d’arrêt (température, fonction objectif, …) Trouver le bon paramétrage ….
72
Variantes (4) : Recuit Simulé Etat initial
Solution initiale
Température : doit permettre d’accepter « suffisamment » de solutions voisines
Schéma de refroidissement Si trop rapide : convergence prématurée : on reste dans un optimum local
Si trop lente : exploration trop importante
73
Variantes (5) : Recherche Tabou Constat :
Quand on est sur un optimum local : les solutions voisines sont toutes de moins bonne qualité bassin d’attraction
Glover 1986 / Hansen 1986
Idée : Sortir du bassin d’attraction en acceptant des solutions de moins bonne qualité
Choisir le meilleur voisin même si non améliorant
Mais interdire de revisiter des solutions déjà explorées
Structure pour mémoriser des informations sur les solutions visitées, appelée Liste Tabou pendant un certain nombre d’itérations
74
Tabu Search
Variantes (5) : Recherche Tabou Stratégie d’exploration :
Introduire une liste (initialement vide) A chaque itération : ajouter le dernier mouvement effectué dans L
Choisir une solution voisine s telle que : Le mouvement -- diversification Le cout soit minimal -- intensification
Algorithme
75
1. s solution initiale 2. best s 3. L // Tabu 4. while (Conditions) loop 5. s’ Meilleur-Voisin(N(s), L) // Voisin non tabou 6. if f(s’) < f(best) then 7. best s’ 8. end if 9. Actu_Tabu(s’, L) 10. end while 11. Return best
Variantes (5) : Recherche Tabou Liste Tabou
Conserver les mouvements effectués et non pas les solutions visités Exemple : variables échangées (swap)
Plus rapide à vérifier et moins couteux à mémoriser …
Est parcourue fréquemment dans la recherche de solutions Accès efficace pour vérifier si une solution est tabou
Table de hachage (sur les mouvements, sur la fonction objectif)
o Si collision : Taille de la liste trop petite
Ne pas déconnecter la solution optimale de la solution courante Les informations restent dans la liste pendant une durée limitée (ie un nombre d’itérations)
76
Variantes (5) : Recherche Tabou Exemple d’une liste Tabou
Mouvement effectué sur les solutions : Interdire le mouvement inverse pendant itérations
o Itération : solution obtenue après swap(i, j)
o Interdire swap(j, i) jusqu’à itération
o Matrice pour mémoriser toutes les paires de swap possibles
Mouvement inverse peut être complexe
Le contenu de la liste Tabou
interdit plus de solutions que celles réellement explorées
Ne prévient pas totalement des risques de cyclage
77
Variantes (5) : Recherche Tabou Durée des interdiction
Ne conserver que les derniers mouvements effectués Valeur de : longueur de la liste compromis diversification / intensification
faible :
o peu de voisins interdits risque de rester bloqué sur un optimum local
élevé :
o beaucoup de voisins interdits / parcours potentiellement plus long
o diversification importante mais on risque de louper l’optimum global
Réglage adaptatif en fonction du problème / d’une instance
Annuler une interdiction Autoriser mouvement tabou si amélioration de la fonction objectif
Critère d’aspiration
78
Variantes (5) : Recherche Tabou Attention à l’exploration du voisinage
Taille : se limiter si besoin à une liste de voisins candidats Aléatoire
Les plus pertinents a priori
Evaluation : doit être efficace (incrémentale, approchée)
Variante Mémoire dite à long terme pour guider la recherche
Mémoriser les mouvements effectués et leur qualités respectives
Diversification : Guider vers des parties non explorées
Intensification : Repartir de caractéristiques de bonnes solutions
79
Section 4. Méthodes à population
80
Méthodes à population Idées :
Considérer un ensemble de solutions Modéliser l’évolution de cet ensemble
Méthodes : Algorithmes évolutionnaires (génétiques) Colonie de Fourmis (Ant Colony Optimization Essaim (Particle Swarm Optimization)
…..
81
Algorithmes évolutionnaires (1) Familles de méthodes inspirées des systèmes vivant
année 1970 / 1980
Principe : Recherche dans l'espace des solutions : faire évoluer un ensemble de solutions et sélectionner la meilleure à la fin
Vocabulaire : une solution = un individu ayant une évaluation (fitness)
un ensemble de solutions = une population
Faire évoluer une population de solutions Combiner 2 solutions (parents) = croisement ( enfants)
Modifier 1 solution = mutation
82
Algorithmes évolutionnaires (2) Principe
Evaluation des solutions
Sélection des meilleures solutions
Croisements
Mutations
Convergence Apparition de solutions performantes / objectif
Croisement : intensification les meilleures solutions-parents donnent les meilleures solutions-enfants
Mutation : permet de diversifier l’ensemble de solutions
83
Algorithmes évolutionnaires (3) Algorithme général
1. Initialiser une population de solutions 2. Evaluer les individus 3. while (conditions) loop 4. Sélectionner parents 5. Combiner parents pour produire enfants 6. Modifier enfants 7. Evaluer les nouveaux individus 8. Sélectionner la nouvelle population 9. end while 10. return Meilleur individu
84
Algorithmes évolutionnaires (4) Points clés de la méthode
Codage des solutions Génération d’une population initial
Processus de sélection : parents
nouvelle population
Opérateurs de mutation et de croisement
Paramètres : Taille de la population
Critères d’arrêt
Probabilité de mutation
85
Représentation des solution Représentation des solutions
Classique : codage binaire
Usuel : vecteur de valeurs discrètes
Impact sur la fonction d’évaluation
86
0 0 1 1 0 1 0 1
D A F G H C E B
Population de solutions Population de solutions :
Ensemble de solutions réparties dans l’espace de recherche Génération aléatoire Introduire de bonnes solutions
Taille population Si trop petite : perte de diversité Si trop grande : temps de calcul important
Paramètre à régler expérimentalement
87
Evolution de solutions (1) Evolution de solutions : combiner 2 solutions
Croisement : Découper le vecteur associé à chaque solution en k morceaux
Recombiner les morceaux pour obtenir de nouvelles solutions
Croisement à 1 point (choisi au hasard)
88
0 0 1 1 0 1 0 1
1 0 1 0 0 0 1 1
0 0 1 1 0 0 1 1
1 0 1 0 0 1 0 1
Parent 1
Parent 2
Enfant 1
Enfant 2
Evolution de solutions (2) Evolution de solutions
Exemple : vecteur = une permutation (TSP)
Attention : les enfants ne sont pas des solutions admissibles Les réparer
89
A B C D E F G H
D A F G H C E B
A B C D H C E B
D A F G E F G H
Parent 1
Parent 2
Enfant 1
Enfant 2
A B C D H F E G
D A F G E B C H
Evolution de solutions (3) Evolution de solutions : modifier une solution
Mutation Prendre 1 élément du vecteur d’une solution (au hasard)
Le modifier
Déplacer 1 élément du vecteur
Réparer la solution obtenue si besoin
90
0 0 1 1 0 1 0 1
0 0 0 1 0 1 0 1
A B C D E F G H
A E B C D F G H
Sélection (1) Sélection de parents :
Fixer un nombre de solutions-enfants à générer
Elitisme : Sélectionner uniquement les solutions les plus performantes / fitness
Risque de convergence prématurée de la méthode
91
Sélection (2) Sélection de parents :
Par tournoi (2 à 2) : choisir une paire de solutions au hasard et conserver la meilleure. Itérer jusqu’à avoir suffisamment de solutions sélectionnées
Par roulette/par rang : associer une valeur / un rang à chaque solution. Tirer au hasard de telle sorte qu’un individu important ait une probabilité de sélection plus forte
92
Remplacement (Sélection) Remplacement (Sélection) d’une nouvelle population :
A la fin d’une itération : Solutions de la populations initiales
Solutions obtenues par combinaison / mutation
Nouvelle population : Choisir les meilleures solutions parmi les enfants générés
Choisir les meilleures solutions parmi les parents + les enfants Taille constante
93
Variantes Variantes :
Très nombreuses Liées aux différents paramétrages / options
Algorithmes génétiques : méthode historique Codage binaire principalement
Programmation génétique : Espace de recherche de très grande taille
Parallélisation calculs
94
Colonies de Fourmis (1) Idée :
Auto-organisation des insectes sociaux
Emergence d’un comportement global à partir d’interactions locales Emergence : comportement global non programmé
Comportement : structure
Interactions : communications directes ou indirectes
Systèmes dynamiques
Robustesse et flexibilité
95
Ant Colony Optimization
Colonies de Fourmis (2) Recherche de nourriture par une colonie de fourmis
Individus simples et autonomes
Communication indirecte entre eux via l’environnement Dépôt de phéromones, déplacement guidés par ces phéromones et évaporation
Emergence de « plus courts chemins »
Initialement : tous les chemins sont équi-probables
Les fourmis prenant le PCC reviennent le plus vite
o augmentation des traces sur ces chemins augmentation de la probabilité
Evaporation des traces limiter convergence prématurée
96
Colonies de Fourmis (3) Définir un graphe
Sommets : composants de solutions
Arcs : succession de composants
Solution : meilleur chemin dans le graphe
Principe de la méthode
Communication indirecte via le dépôt de phéromones
Déplacement (calcul) guidé par aléatoire / traces de phéromones
Gestion des traces de phéromones :
o qualité solution -- intensification
o évaporation -- diversification 97
Initialisation des traces de phéromones Répéter
Chaque fourmi calcule un chemin : aléatoire / phéromones, … Mise à jour des traces de phéromones
Jusqu’à : Condition d’arrêt
Colonies de Fourmis (4) Première application (Dorigo 1992)
Voyageur de commerce Nombre de fourmis : ; Nombre de villes :
Distance villes et :
Visibilité :
Importance des phéromones :
Importance de la visibilité :
98
Colonies de Fourmis (5)
99
Colonies de Fourmis (6) Mise à jour des phéromones
Quantité initiale :
Chemin calculé par fourmi :
100
Colonies de Fourmis (7) Variantes
Gestion des traces de phéromones Coefficient multiplicateur / meilleure solution
Seules les meilleures solutions entrainent une trace
Seuil sur des traces minimales et maximales
Poursuivre avec une recherche locale
101
Essaims particulaires (1) Idée :
Population de solutions : essaim
Compromis entre trajectoire individuel et trajectoire du groupe
Un individu : Suit sa propre trajectoire
Subit l’influence des autres
Mémorise sa meilleure performance
102
Particle Swarm Optimization
Essaims particulaires (2) Chaque individu est un élément de l’espace de recherche
Position dans l’espace de recherche
Vitesse : dépend des voisins, des bonnes solutions visitées
Voisinage : ensemble d’individus auxquels il est relié
Déplacer chaque individu en fonction : Comportement « individuel » : suivre sa trajectoire
Comportement « conservateur » : revenir vers la meilleure position déjà visitée
Comportement « collectif » : suivre le meilleur voisin
103
Section 5. Hybridation de méthodes
104
Diversité / Similarités des méthodes (1) Deux grandes familles d’approche :
Méthode de Recherche locale (à solution unique) : Evolutions successives d’une solution
Méthode à population de solutions : Evolution de la population : combinaison/mutation
Processus de sélection
Des concepts similaires : Résultat : solution approchée
Sortir des optima locaux Compromis entre Diversification et Intensification
105
Intensification Pousser la recherche autour de solutions de bonne qualité
Diversification Déplacer la recherche vers de nouvelles parties non explorées de l’espace des solutions
Compromis entre les deux : Spécifique de chaque méthode approchée
De très (trop ?) nombreuses autres méthodes
106
V.7. Diversité / Similarités des méthodes (2)
Hybridation de méthodes Hybridation de méthodes
Algo. Mémétique Combiner algorithmes évolutionnaires et recherche locale
o Population initiale
o Mutation recherche locale
PLNE / PPC + méthodes approchées : Beam Search : Branch and Bound & heuristique
Exploration de grands voisinages avec PPC / PLNE
107
Illustration méthode hybride Principe :
Ens. de solutions
Recherche Locale Parcours voisinage
Intensification
Mutation Diversification
p voisins
Itération Meilleur voisin
Arrêt Conditions à définir
108
Si
S1 S2 S3 Sp-1 Sp
Si’
S1’ S2’ S3’ Sp-1’ Sp’
S1 S2 S3 Sp-1 Sp
S1’ S2’ S3’ Sp-1’ Sp’
génération de voisins
solutions initiales
recherche locale
Nombre d’itération
d’ELS
SiSiSi
GRASP-ELS
Contraintes et Objectifs Contraintes vs Objectif
Introduire des « contraintes » dans la fonction Objectif
Objectif : nb de contraintes non satisfaites (exemple capacité à respecter)
on cherche à minimiser cet objectif, lorsqu’il vaut 0 : obtention d’une solution admissible
Intérêt : Explorer des affectations à la limite entre cohérentes et incohérentes
Traiter des pbs de satisfaction sous forme de pbs d’optimisation
Difficulté : Combiner cet objectif avec celui (ceux) déjà existant(s)
Combinaison linéaire 1 seul objectif
109
Section 6. Optimisation Multi-Objectif
110
Définitions Optimisation multi-objectif
Prendre en compte simultanément plusieurs objectifs contradictoires Exemple : temps / argent
Comment comparer des solutions entre elles ? Qu’est-ce qu’une solution optimale ?
Il existe un ensemble de bonnes solutions : les solutions de compromis Rechercher un équilibre tel que : on ne peut pas améliorer un objectif sans détériorer au moins un des autres objectifs
Front de Pareto
Relation de dominance entre 2 solutions (minimisation des objectifs) : domine ssi pour tout objectif on a :
avec au moins une inégalité stricte :
111
Illustration Exemple : recherche des solutions non dominées
Max f1 et Min f2
112
Caractéristiques de Front de Pareto Forme des Fronts de Pareto à 2 objectifs
113
Calcul d’un Front de Pareto (1) Comment obtenir un Front de Pareto
Points extrêmes : Optimiser 1 seul objectif
Bonne représentation du Front : solutions diversifiées
Optimisation Combinatoire 114
Calcul d’un Front de Pareto (2) Obtention du Front de Pareto avec des méthodes approchées
Evaluation des solutions : Mécanismes d’agrégation / différents objectifs
Archivage des solutions non dominées
Nombreux travaux sur les Algorithmes Génétiques dans un contexte multi-objectif
115
Section 7. Conclusion
116
Conclusion (1) Analyse du problème
Quelles sont les décisions à prendre ? Quelles sont les contraintes ? Quelles sont les objectifs ?
Unique ?
Multiple ?
Cadre de modélisation Caractéristiques du modèle obtenu (expressivité, taille, ….) Lien avec des problèmes classiques Complexité
117
Conclusion (2) Résolution
Concevoir une méthode spécifique ? Utiliser des outils de résolution ?
Décomposer Parties essentielles du problème Intégrer au fur et à mesure
Evaluation Instances « jouet » / Instances taille réelle Analyse critique des résultats
118
Conclusion (3) Plateformes pour méthodes approchées
Metaheuristic optimization frameworks: a survey and benchmarking (2011)
dédiées algo évolutionnaires : JGAP, (Java), GAlib (C++), ….
dédiées recherche locale : JAMES (Java), LocalSolver (payant), …
119
Conclusion (4) Quelle méthode choisir pour résoudre un problème
Produire une bonne solution
Temps de calcul raisonnable
Mais pas de recette miracle Tester plusieurs méthodes, bibliographie, expertise, connaissance métier, …
No Free Lunch Theorem (for Search / Optimization / Learning) Il n’y a pas de méthodes meilleure que les autres sur l’ensemble des problèmes
" any two optimization algorithms are equivalent when their performance is averaged across all possible problems"
120