méthodes approchées pour l’optimisation · exemple 2 : problème du sac à dos (1) yproblème :...

60
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

Upload: others

Post on 07-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 2: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 3: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 4: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 5: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 6: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 7: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 8: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 9: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 10: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 11: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 12: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 13: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 14: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 15: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 16: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 17: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 18: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 19: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 20: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 21: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 22: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 23: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 24: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 25: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 26: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 27: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 28: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 29: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 30: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 31: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 32: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 33: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 34: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 35: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 36: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 37: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 38: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 39: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 40: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 41: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 42: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 43: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 44: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 45: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 46: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 47: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 48: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 49: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 50: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

Colonies de Fourmis (5)

99

Colonies de Fourmis (6) Mise à jour des phéromones

Quantité initiale :

Chemin calculé par fourmi :

100

Page 51: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 52: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 53: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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)

Page 54: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 55: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 56: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 57: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 58: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 59: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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

Page 60: Méthodes approchées pour l’optimisation · Exemple 2 : Problème du Sac à dos (1) yProblème : yUn ensemble de J objets 0 L < s á å J = yA chaque objet : yUn poids S Ü et

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