méta-heuristiques 1. introduction 2. optimisation ... · exemple - transport voyageur de commerce...
TRANSCRIPT
Méta-Heuristiques
M.-J. Huguet
https://homepages.laas.fr/huguet
2017-2018
Plan
1. Introduction
2. Optimisation Combinatoire
3. Heuristiques gloutonnes
4. Méthodes de recherche locale
5. Méthodes à population
6. Hyrbidation
7. Optimisation multi-objectif
8. Conclusion
2
Section 1. Introduction
3
Optimisation Prise de décision
Evaluation des décisions Critères / Objectif
Faire les choix les plus pertinents
Modélisation
Méthodes de résolution
Connaissances sur le(s) problèmes
Optimisation Combinatoire
Recherche opérationnelle
4
Exemple Ordonnancement / Planification Ordonner la réalisation des différentes activités compte tenu de contraintes
temporelles, de séquencement, de ressources disponibles en quantité limité, ….
Exemple : ordonnancer un projet
Planification de prises du vidage de prises de vue
5 6
7
Exemple Optimisation des consommation énergétiques Prévision des besoins Sources énergétiques Météo
Planifier l’utilisation de l’énergie
8
Exemple - Transport Voyageur de commerce (Traveling Salesman Problem) Dans un graphe déterminer un trajet de cout minimal passant une fois et une
seule par l’ensemble des sommets Exemple : livraison clients
Tournées de véhicules (Vehicle Routing Problem) Idem voyageur de commerce mais on dispose de plusieurs véhicules pour
parcourir tous les sommets Exemple : collecte de déchets
9
Traveling Salesman Problem (TSP) Recherche d’un circuit/chemin hamiltonien
Nombreuses variantes : Pb symétrique ou non, fenêtres temporelles, ….
TSP : http://www.math.uwaterloo.ca/tsp/index.html
Concord : http://neos.mcs.anl.gov/neos/solvers/co:concorde/TSP.html
10
Vehicle Routing Problem (VRP) Contexte :
Très nombreuses variantes : Fenêtres temporelles, véhicules hétérogènes, pick-up & delivery, multi-dépôt,
synchronisation … Site : http://neo.lcc.uma.es/radi-aeb/WebVRP/
11 Optimisation Combinatoire
Secteurs et Applications Industrielles (1) Types de problèmes :
Planifier, Ordonnancer (Planning, Scheduling, Allocation)
Transporter (Routing,Transportation)
Découpe et Empilement (Cutting, Packing)
Secteurs économiques : Secteur industriel (gestion production, stratégie)
Services, Hôpitaux, Administrations
Logistique et Transport
Aéronautique, Espace
Réseaux et Télécom, Systèmes Embarqués
Développement durable (gestion de l’énergie, de ressource, …)
etc.
12
Secteurs et Applications Industrielles (2) Objectifs usuels Temps Argent Quantité Equilibrage (ex : utilisation de ressources)
Qualité de service Robustesse
Mais aussi : Sécurité
Environnement
Vie privée13
Démarche et difficultés (1) Points clés en RO : Analyse d’un problème (compréhension, complexité, …) Modélisation Méthodes de résolution Validation expérimentale
14
Démarche et difficultés (2) Difficultés : Compréhension du problème (clients, état de l’art, complexité, ….)
Résolution Temps de résolution / Espace mémoire acceptable
Passage de la théorie mathématique à l’implémentation informatique (ex. précision)
Outil existant / développement
Analyse des résultats Efficacité de la méthode
Qualité des résultats obtenus (à quoi se comparer ?)
Généricité, Reproductibilité
15
En savoir plus Société Française de Recherche Opérationnelle et d’Aide à la
Décision (ROADEF) Chercheurs / Enseignants Chercheurs Industriels
http://www.roadef.org
Challenge ROADEF/EURO Concours basés sur un problème posé par un industriel
A Toulouse Equipes de recherche : https://www.laas.fr/public/fr/roc mais aussi autres établissements (ENAC, ONERA, IRIT, IMT, ONERA)
Secteurs industrie et services
16
Section 2. Optimisation Combinatoire
17
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)
18
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 : solution ∗ ∈ Ω, telle que ∗ ∈
Notation : ∗ Optimisation Combinatoire : minimisation sur un ensemble fini (mais potentiellement très grand)
19
Classification (partielle) de problèmes ∅ : pas de contraintes Problèmes d’Optimisation
∅ : pas d’objectif Problèmes de Décision / Satisfaction de Contraintes
: domaines énumérables (discrets) Problèmes Combinatoires
linéaire, inéquations linéaires : Problèmes d’optimisation linéaire (Programmation Linéaire / PL)
: Problèmes d’optimisation linéaire en nombres entiers (PLNE)
0,1 : Problèmes d’optimisation linéaire en variables binaires
20
Focus sur problèmes combinatoires
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,
….
21
Exemple (1) Problème de Voyageur de Commerce Traveling Salesman Problem (TSP) Trouver un circuit de cout minimal passant une fois et une seule par tous les
sommets d’un graphe Complexité : NP-difficile
22
Exemple (2) Explosion combinatoire - Nombre de solutions d’un TSP ! possbilités Méthode « Brute Force »
23Univers : 14 E+09 ans
Processeur 3 GHz 3 instructions par nano seconde
10 villes 1/100s
15 villes 1 heure
19 villes 1 an
27 villes 8x âge Univers
Processeur plus rapide 1 instruction /temps de Planck (5.39 10 )s
10 villes -
15 villes -
19 villes -
27 villes -
35 villes 5/100s
40 villes 12h
50 villes 400x âge Univers
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
24
Exploration de l’espace de recherche (1) Espace de recherche des solutions : Ensemble de solutions (alternatives) : produit cartésien des domaines Taille de l’ensemble des solutions : … Ensemble de solutions admissibles : Une solution ← , ∈ et satisfaites
Taille de : dépend des contraintes (et des domaines)
Trouver une solution (optimale) ? Explorer / Explorer Comment contenir l’explosion combinatoire ?
Méthodes de recherche arborescente
25
Exploration de l’espace de recherche (2) Principe des méthodes
arborescentes Séparer (Branch) :
Structurer l’exploration
Décomposer en sous problèmes disjoints de taille restreinte
Heuristiques de choix de variables et de choix de valeur
Elaguer : (Bound) Calcul de bornes / Objectif
(Propagate/Filtering) Propager pour réduire les domaines
26
P
P1 P2
P11 P12 P13
But : maitriser l’explosion combinatoire
Exploration de l’espace de recherche (3) Principe des méthodes arborescentes Si une solution est obtenue pour un sous problème Arrêt de la décomposition
Si , , - Problème de satisfaction a une solution ssi ou ont une solution
Si une solution est obtenue pour : arrêt ( non considéré)
Si , , , - Problème d’optimisation (min) Opt ,
27
P
P1 P2
P11 P12 P13
Exploration de l’espace de recherche (4) Méthodes connues Algorithme DPLL (vu en 4e année – Prog Logique) Instanciation progressive de variables (ordre de parcours)
Elagage de l’arborescence (simplifier les clauses)
Retour arrière chronologique en cas d’échec
Algorithme A* (vu en 4e année – IA) Recherche d’un chemin dans des graphes d’états
Recherche guidée par fonction d’évaluation
Mais aussi : Branch and Bound (cadre PLNE – 5e année)
Backtrack Chronologique / Forward Checking (cadre CSP – 5e année)
28
Exploration de l’espace de recherche (5) Principe des méthodes approchées
Intensification : Accentuer l’exploration dans des zones prometteuses
Diversification : Découvrir de nouvelles zones
Compromis intensification / diversification Aléatoire
Guidé par la fonction objectif
Guidé par d’autres évaluations (solutions explorées, contraintes, paysage, …)
29
But : contourner l’explosion combinatoire
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)
30
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é31
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
32
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 …
33
Section 3. 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 ?
35
Greedy Search
Recherche Constructive
Exemples Coloration de graphe
36
{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
37
activités durée ressourceA1 1 1A2 1 2A3 2 1A4 1 2A5 2 1
A1 A2 A5A3 A4Ressource disponible : 2Minimiser durée totale
Instanciation : 1, 3, 2, 4, 5A1
A2A3
A4A5
Durée Totale = 6Instanciation : 1, 2, 3, 5, 4A1
A2A3
A4A5
Durée Totale = 5Solutions admissiblesValeurs 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)
38
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
39
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)40
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
41Borne supérieure / tournée min
Exemple 2 : Problème du Sac à dos (1) Problème :
Un ensemble de objets 1, … 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é
42
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
43
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
44
Etudiants EpreuvesE1 UF1, UF2, UF5E2 UF3, UF4E3 UF2, UF6E4 UF3, UF4, UF5E5 UF3, UF6E6 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)
45
Activités Etape 1 /Res1
Etape 2 /Res2
A1 6 8A2 4 5A3 4 1A4 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.
46
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
47
Bin Packing 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
48
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, ….
49
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
50
Section 4. Recherche Locale
51
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é52
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 ∗ ← s, ∗ ←
Jusqu’à « Critères d’arrêt »
53
Local Search
Principes d’une recherche locale (3)
54
Principes d’une recherche locale (4) Algorithme de Recherche locale
Solution initiale : ∈ ; ← (1) Meilleure solution : ∗ ← ; ∗ ← Répéter
Choisir ∈ (2) (3) ← ′ Si ∗ alors ∗ ← s, ∗ ←
Jusqu’à « Critères d’arrêt » (4)
Points clés1. Comment obtenir une solution initiale ?
2. Comment générer un voisinage ?
3. Comment sélectionner la prochaine solution ?
4. Quand s’arrêter ?
55
Principes d’une recherche locale (5) Algorithme de Recherche locale
Solution initiale : ∈ ; ← (1) Meilleure solution : ∗ ← ; ∗ ← Répéter
Choisir ∈ (2) (3) ← ′ Si ∗ alors ∗ ← s, ∗ ←
Jusqu’à « Critères d’arrêt » (4)
Points clés1. Comment obtenir une solution initiale ?
Solution aléatoire
Solution connue
Heuristique gloutonne
56
Principes d’une recherche locale (6) Algorithme de Recherche locale
Solution initiale : ∈ ; ← (1) Meilleure solution : ∗ ← ; ∗ ← Répéter
Choisir ∈ (2) (3) ← ′ Si ∗ alors ∗ ← s, ∗ ←
Jusqu’à « Critères d’arrêt » (4)
Points clés4. 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
57
Principes d’une recherche locale (7) Algorithme de Recherche locale
Solution initiale : ∈ ; ← (1) Meilleure solution : ∗ ← ; ∗ ← Répéter
Choisir ∈ (2) (3) ← ′ Si ∗ alors ∗ ← s, ∗ ←
Jusqu’à « Critères d’arrêt » (4)
Points clés2. Comment générer un voisinage ?
58
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
59
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
60
Exemple de voisinage (1) Ensemble de variables binaires :
Voisinage : Ensemble des chaînes binaires à une distance de Hamming de 1 Pour 5 variables binaires : 01101
01100 01111 01001 00101 11101
5 Si distance de Hamming de 2,
61
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
62
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 3 et 6 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
63
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 ,64
Voisinages pour le problème du Voyageur de Commerce (2) : Insertion Supprimer et l’insérer après
65
Voisinages pour le problème du Voyageur de Commerce (3) : Swap Echanger et
66
Voisinages pour le problème du Voyageur de Commerce (4) : 2-opt Remplacer , et , par , et ,
67
Taille des voisinages (1) Changer la valeur d’une (plusieurs) variable(s) (SAT / CSP)
Permuter des variables dans une solution (ie. une séquence)
68
x1 x2 x30 1 0
x1 x2 x31 1 0
x1 x2 x30 0 0
x1 x2 x30 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 binaireso Taille espace recherche = 8 Taille voisinage = 3
Exemple : Permutation de variables dans une séquence de 4 variableso Taille espace recherche = 4! = 24 Taille voisinage = 6
69
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
70
x1 x2 x30 1 0
x1 x2 x31 0 0
x1 x2 x31 1 1
x1 x2 x30 1 0
x1 x2 x31 1 0
x1 x2 x30 0 0
x1 x2 x30 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
71
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
72
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)
73
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)74
Exploration d’un voisinage (1) Algorithme de Recherche locale
Solution initiale : ∈ ; ← (1) Meilleure solution : ∗ ← ; ∗ ← Répéter
Choisir ∈ (2) (3) ← ′ Si ∗ alors ∗ ← s, ∗ ←
Jusqu’à « Critères d’arrêt » (4)
Points clés3. Comment sélectionner la prochaine solution ?
Premier voisin améliorant
Meilleur voisin améliorant
Aléatoire
…..75
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)
76
Algorithmes Hill-Climbing (1)
77
Algorithme First ImprovmentSolution initiale : ∈ ; ← (1)Meilleure solution : ∗ ← ; ∗ ←Répéter
Choisir ∈ tq ′ (2) (3) ← ′Si ∗ alors ∗ ← s, ∗ ←
Jusqu’à « Critères d’arrêt » (4)
Algorithme Best ImprovmentSolution initiale : ∈ ; ← (1)Meilleure solution : ∗ ← ; ∗ ←Répéter
Choisir ∈ tq ∀ ∈ ′ ′ ′′ (2) (3) ← ′Si ∗ alors ∗ ← s, ∗ ←
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
78
Exploration aléatoire d’un voisinage Sélectionner une solution aléatoire: RandomWalk Accepte des solutions même non améliorante
Permet une diversification de l’exploration (sortir d’un optimum local)
Ex (maximisation)
79
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 1 : random walk
0 : hill-climbing
En pratique : faible
80
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
81
Principes d’une recherche locale : Evaluation Algorithme de Recherche locale
Solution initiale : ∈ ; ← (1) Meilleure solution : ∗ ← ; ∗ ← Répéter
Choisir ∈ (2) (3) ← ′ Si ∗ alors ∗ ← s, ∗ ←
Jusqu’à « Critères d’arrêt » (4)
Points clés1. Comment obtenir une solution initiale ?
2. Comment générer un voisinage ? et évaluer3. Comment sélectionner la prochaine solution ?
4. Quand s’arrêter ?
82
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)
83
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
84
Variantes (1) : Iterated Local Search
85
Iterated Local Search1. s0 Solution initiale; Best s02. s Descent(s0) // Exploration3. repeat4. s’ Perturbation (s)5. s’’ Descent(s’)6. Acceptation :
if f(s’’) < f(s) thens 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 0 : les mouvements dégradant la solution sont interdits
Le seuil peut varier au cours des itérations
86
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
87
Variantes (3) : Voisinages variables Principe
1. s Solution initiale2. i 1 : numéro du voisinage3. repeat4. 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+1end if
7. until i >k (nombre de voisinages)
88
Variantes (3) : Voisinages variables
89
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 Δ 0 alors ← ′ -- intensification
Si ( choisi aléatoirement dans [0,1]) alors ← ′ -- diversification
90
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
91
1. s0 solution initiale2. T0 Température initiale3. s s0; T T04. while (Conditions) loop5. s’ Random(N(s))6. Deltaf f(s’) – f(s)7. if Deltaf< 0 ou random < exp(-Delta/T) then8. s s’9. end if10. T k.T11. end while12. 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 ….
92
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
93
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
94
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
95
1. s solution initiale2. best s3. L // Tabu4. while (Conditions) loop5. s’ Meilleur-Voisin(N(s), L) // Voisin non tabou6. if f(s’) < f(best) then7. best s’8. end if9. Actu_Tabu(s’, L)10. end while11. 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)
96
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
97
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
98
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
99
Section 5. Méthodes à population
100
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) …..
101
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
102
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
103
Algorithmes évolutionnaires (3) Algorithme général
1. Initialiser une population de solutions2. Evaluer les individus3. while (conditions) loop4. Sélectionner parents5. Combiner parents pour produire enfants6. Modifier enfants7. Evaluer les nouveaux individus8. Sélectionner la nouvelle population9. end while10. return Meilleur individu
104
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
105
Représentation des solution Représentation des solutions Classique : codage binaire
Usuel : vecteur de valeurs discrètes
Impact sur la fonction d’évaluation
106
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
107
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)
108
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
109
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
110
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
111
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
112
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
113
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
114
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é
115
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
116
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 -- diversification117
Initialisation des traces de phéromonesRé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é :
118
Colonies de Fourmis (5)
119
Colonies de Fourmis (6) Mise à jour des phéromones
Quantité initiale :
Chemin calculé par fourmi :
120
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
121
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
122
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
123
Section 6. Hybridation de méthodes
124
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
125
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
126
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
127
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
128
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
129
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
Exemple : Tournées de Véhicules (1) Travaux de recherche
Thèse Thibaut Vidal 2012 (Université de Montréal-CIRRELT – UT Troyes)
Problèmes de Tournées de Véhicules (Dantzig & Ramser, 1959) clients / villes (localisation, quantité demandé)
véhicules (homogènes) de capacité
Solution : tournées de cout minimal permettant de desservir tous les clients
Problème NP-Difficile Résolution exacte : N=300/400
Nombreux travaux de recherche Méthodes exactes et approchées
Nombreuses applications : transport, distribution, logistique
130
Exemple : Tournées de Véhicules (2) Formulation mathématique
131
Exemple : Tournées de Véhicules (3) De nombreuses variantes
Attributs supplémentaires / contraintes ou objectifs Time windows, multi-périodes, multi-dépôt, véhicules hétérogènes, chargement des
véhicules, temps de trajet dépendant des horaires, pick and delivery, ….
Plus de 200 caractéristiques supplémentaires dans la littérature / applications Pouvant être combinées ….
Méthodes dédiées à des problèmes spécifiques
Objectif des recherches : proposer une approche unificatrice
o Classification des attributs / structure des problèmes
Unified Hybrid Genetic Search
132
Exemple : Tournées de Véhicules (4) Classification des attributs
3 familles Assignment (clients aux routes; routes aux dépôts ou périodes, ….)
Sequencing (ordre de visite des clients)
Evaluation des routes (contraintes liées aux trajets effectués)
Attention à l’encodage d’une solution et à la combinaison des attributs
Algorithme Génétique Sélection, croisement, réparation
Mutation recherche locale (Education) Efficacité de la recherche locale
Fonction d’évaluation : cout + diversité
133
Exemple : Tournées de Véhicules (5) Attention très forte à l’efficacité de la Recherche Locale
Représentation des solutions et évaluation des voisinages Voisinage : concaténation de sous-séquences de routes
Pré-calculs avec des structures de données efficaces pour l’évaluation de sous-séquences
134
Exemple : Tournées de Véhicules (6) Evaluation des solutions Combinaison Fonction objectif
Contribution à la diversité de la population Distance / autres individus
Utilisé lors de la sélection des parents Utilisé pour déterminer la nouvelle population Permet de favoriser l’exploration de l’espace de recherche
Garantit le maintien de solutions performantes / objectif
135
Exemple : Tournées de Véhicules (7) Evaluation expérimentale sur :
Environ 50 problèmes de la famille VRP
200 jeux de données
240 méthodes
Amélioration des résultats de l’état de l’art Une méthode générale peut surpasser des méthodes dédiées
Production de code source en libre accès : https://github.com/vidalthi/HGS-CARP
Plusieurs transferts industriels
136
Section 7. Optimisation Multi-Objectif
137
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 :
138
Illustration Exemple : recherche des solutions non dominées
Max f1 et Min f2
139
Caractéristiques de Front de Pareto Forme des Fronts de Pareto à 2 objectifs
140
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 Combinatoire141
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
A DEVELOPPER …
142
Section 8. Conclusion
143
Conclusion (1) Analyse du problème Quelles sont les décisions à prendre ? Quelles sont les contraintes ? Quelles sont les objectifs ? Unique ?
Multiple ?
Modélisation Caractéristiques du modèle obtenu (taille, ….) Lien avec des problèmes classiques Complexité
144
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
145
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), …
146
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"
147