Post on 17-Oct-2021
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Méthodes et outils d'optimisationOptimisation
Mathias Kleinermathias.kleiner@ensam.eu
http://www.lsis.org/kleinerm
Mai 2013
http://creativecommons.org/licenses/by-sa/3.0/
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Plan du cours
1 Introduction
2 Programmation linéaire
3 Nombres entiers
4 Programmation par Contraintes
5 Meta-heuristiques
6 Conclusion
7 Biblio
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Plan du cours
1 IntroductionIntroductionExemplesCaractéristiquesComplexitéProcessusMéthodes
2 Programmation linéaire
3 Nombres entiers
4 Programmation par Contraintes
5 Meta-heuristiques
6 Conclusion
7 Biblio
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Introduction
Problème d'optimisation = minimisation (oumaximisation) d'une fonction objectif (de coût)
Cette fonction comporte des paramètres et estgénéralement soumise à des contraintes
En fonction des caractéristiques du problèmes(paramètres fortement variables, domaines discrets,types de contraintes, etc.), le problème peut êtredi�cile à résoudre
⇒ Necessite des outils avancés pour la modélisation etla résolution
å Variables (paramètres)å Fonction objectifå Contraintes
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Première dé�nition
fonction objectif f : A→ RGénéralement, A ⊂ Rn, et est dé�ni par un ensemble decontraintes
Le domaine de A est appelé espace de solutions, leséléments de A sont appelés solutions candidates
une solution candidate ai qui minimise f(∀aj ∈ A, f (ai ) ≤ f (aj)) est appelée solution optimale
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Optimisation et méthodes numériques
il existe des méthodes numériques pour résoudre certainsproblèmes d'optimisation
cette possibilité depends de caractéristiques duproblème. Par exemple, la méthode (de base) dugradient requiert que f soit doublement dérivable, que leproblème ne soit pas contraint, et, si l'on cherche unoptimum global, que la région dé�nie par f soit convexe.
dans ce cours nous étudierons plus particulièrement lescas où ces techniques ne sont pas (ou di�cilement)applicables
En particulier, nous verrons des problèmes pour lesquelsl'ensemble A est discret
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemples de problèmes : revenu
Un agriculteur possède un certain nombre d'hectares,d'engrais et d'insecticide
Possibilité de planter du maïs ou du blé
Les cultures requièrent des quantités di�érentesd'engrais et d'insecticide
Les cultures fournissent un revenu di�érent
Objectif : maximiser le revenu net
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemples de problèmes : revenu
Un restaurateur possède des oursins, crevettes et huîtres
Dispose de deux types d'assiettes
Objectif : déterminer le nombre d'assiette de chaquetype à proposer pour maximiser le revenu net
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemples de problèmes : �ux de transport
Une coopérative laitière e�ectue quotidiennement leramassage de lait dans di�érentes fermes
Objectif : e�ectuer la tournée la plus courte
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemples de problèmes : couverture de charge
Courbe de charge (compagnie aérienne, supermarché,péages, . . .)
Objectif : Assurer la couverture avec un minimum depersonnel
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemples de problèmes : emploi du temps
Une université doit e�ectuer un certain nombre de coursà un certain nombre d'élèves, avec un certain nombred'enseignants-chercheurs
contraintes de précédences de cours, salles, désidératas
Objectif : trouver une solution !
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemples de problèmes : rangement
On dispose de containers et d'éléments de taillesdi�érentes à ranger dans ces containers (pour envoi)
Objectif : trouver un arrangement pour minimiser lenombre de containers
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemples de problèmes : réseaux
On souhaite approvisionner une région en eau potable
di�érents consommateurs, di�érents points de pompage
contraintes de pression
Objectif : minimiser le nombre points de pompage et lalongueur du réseau
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemples de problèmes : conception produit
Fabrication d'un système de traction
Di�érents matériaux, contraintes de traction
Objectif : minimiser le coût de fabrication
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemples de problèmes : séparation d'un stock
On dispose de rouleaux de tissu d'une certaine longueur
On souhaite les couper pour obtenir des bandes delongueurs di�érentes données
Objectif : minimiser le nombre de rouleaux à acheter
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemples de problèmes : plani�cation horaires(work scheduling)
Etant donné des besoins / jours en nombre d'employés
Plani�er les a�ectations de la semaine
Objectif : minimiser le nombre d'employés
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemples de problèmes : ordonnancement
Plani�er des tâches sur des machines de production
Contraintes de précédences sur les tâches, délais surmachines, . . .
Objectif : minimiser le temps de complétion des tâches
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemples de problèmes : autres
Euler : "Il n'y a rien dans le monde qui ne se réalise sans
la volonté de minimiser ou maximiser quelque chose."
Encore beaucoup d'autres domaines d'application :
å Economie/Financeså Biologieå Transportå Organisation/Logistique/SCMå Robotique/Intelligence arti�cielleå Ingénierieå . . .
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Caractéristiques
Continuité, linéarité, bornes de la fonction de coût ?
Variables discretes ? Domaine des variables ?
mono-objectif, multi-objectifs ?
Contraintes linéaires ? Quadratiques ?
Connaissances stochastiques (i.e pseudo-aléatoires) ouincertaines
⇒ les caractéristiques d'un problème in�uent sur :
å la modélisation (puissance expressive nécessaire)å les techniques de résolutionå la di�culté (e�cacité des méthodes/algorithmes)
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Complexité
Di�culté de résolution d'un problème par unalgorithme/méthode :
å quantité d'opérations/étapes à e�ectuer (complexité entemps)
å quantité d'informations à stocker (complexité en espace)
On s'intéresse à un ordre de grandeur en fonction desdonnées en entrée (indépendant de la puissancemachine) :
å linéaire ou pseudo-linéaireå polynomialå exponentiel/factoriel (on parle de problèmes
NP-di�ciles)å (in)décidable, (in)calculable
Théorie des automates (deterministes ounon-deterministes) par A.Turing (machine de Turing)
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Complexité : exemple
Soit un graphe G = (V, E)
G est-il connexe ?
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Complexité : exemple
Soit un graphe G = (V, E)
G possède-t-il un chemin hamiltonien ?
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Complexité : exemple
Soit un graphe G = (V ,Ep) complet
Quel chemin passant exactement une fois par chaquepoint minimise le poids total ?
69 villes → nombre à 100 chi�res !
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Complexité : conséquences
Temps de résolution d'un problème selon sa complexité(10ns par étape)
Not. Complexite n=20 n=50 n=250 n=1000 n=104 n=106
O(n) lineaire 200ns 500ns 2.5µs 10µs 100µs 10ms
O(n2) quadratique(P) 4µs 25µs 625µs 10ms 1s 2.8h
O(n3) cubique(P) 80ms 1.25ms 156ms 10s 2.7h 316ans
O(en) exponentielle 10ms 130jours 1059ans ? ? ?
O(n!) factorielle 770ans 1048ans ? ? ? ?
ce n'est pas anodin !
distingue complexite pire des cas, en moyenne, enpratique
il existe des classes polynomiales pour des problèmesNP-di�ciles sous certaines conditions
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Processus d'optimisation
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Processus d'optimisation
Analyse du problème
Modélisation et choix de méthode
Résolution
Interprétation des résultats
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Processus d'optimisation : Analyse du problème
Compréhension du système
Dé�nition des objectifs, du champ de couverture
Obtention des données
. . .
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Processus d'optimisation : Modélisation
Choix d'un langage (formel), de la méthode
Traduction du problème : paramètres, domaines,contraintes, incertitude, . . .
⇒ simpli�cation : résultat d'un consensus entre acteurs
. . .
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Processus d'optimisation : Résolution
Mise en oeuvre algorithmique, utilisation d'unoutil/solveur
Analyse de la robustesse, pertinence des résultats
. . .
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Processus d'optimisation : Interpretation
Interpréter les résultats dans le monde réel
Présenter aux acteurs
. . .
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Processus d'optimisation : Mise en oeuvre
Mise en oeuvre opérationnelle
Suivi des impacts, actions correctives
⇒ peut donner lieu à la dé�nition d'un nouveauproblème !
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Méthodes d'optimisation
Méthodes génériques :
Programmation linéaire (modélisation sous formed'équations linéaires)
Programmation en nombres entiers (variables entières)
Programmation quadratique
Programmation dynamique
Méthodes énumératives (PPC) : SAT, CSP, Models
Méta-heuristiques (optimisation stochastique)
. . .
domaines de recherche/activité : rechercheopérationnelle, intelligence arti�cielle, . . .
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Méthodes d'optimisation
Mais pour des cas particuliers, il peut exister des méthodesdédiées e�caces (optimales ou approchées). Par exemple :
Sac à dos, sous conditions : algorithme glouton
Ordonnancement : méthode du chemin critique (PERT)
Ordonnancement à 2 machines : algorithme de Johnson
. . .
→ longue liste en évolution : requiert une veille technologiqueou une étude approfondie, par exemple lorsque la résolutiond'un problème par les méthodes génériques n'est passatisfaisante (e.g. temps de calcul trop important).
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Plan du cours
1 Introduction
2 Programmation linéaireDé�nitionExemplesCaractéristiquesSimplexeDualitéAutres méthodesOutils
3 Nombres entiers
4 Programmation par Contraintes
5 Meta-heuristiques
6 Conclusion
7 Biblio
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Dé�nition
Techniques d'optimisation pour des problèmescaractérisés par :
å une fonction objectif linéaireå soumise à des contraintes d'égalité et/ou d'inégalités
linéaire
⇒ modélisation par un ensemble d'équations linéaires
on peut noter que les contraintes dé�nissent alors unpolytope convexe
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Forme canonique
De�nition
maximiser c>x
soumis à Ax ≤ b, x ≥ 0
où x est un vecteur de variables, c et b des vecteurs decoe�cients, et A une matrice de coe�cients.
D'autres formes (minimisation, variables négatives, etc.)peuvent être réecrites de manière équivalente en formecanonique.
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemple de l'agriculteur
Un agriculteur possède un certain nombre d'hectares,d'engrais et d'insecticide
Possibilité de planter du maïs ou du blé
Les cultures requièrent des quantités di�érentesd'engrais et d'insecticide
Les cultures fournissent un revenu di�érent
Objectif : maximiser le revenu net
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemple de l'agriculteur
Un agriculteur possède un certain nombre d'hectares(T ), d'engrais (E ) et d'insecticide (I )
Possibilité de planter du maïs (x1) ou du blé (x2)
Les cultures requièrent des quantités di�érentesd'engrais et d'insecticide (E1,I1,E2,I2)
Les cultures fournissent un revenu di�érent (S1,S2)
Objectif : maximiser le revenu net
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemple de l'agriculteur
Maximiser S1x1 + S2x2 (fonction objectif)
soumis à x1 + x2 ≤ T (limite terrain)
E1x1 + E2x2 ≤ E (limite engrais)
I1x1 + I2x2 ≤ I (limite insecticide)
x1 ≥ 0, x2 ≥ 0 (terrain positif !)
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemple de culture
Culture de courgettes et de navets
8l d'engrais A disponible → 2l/m2 pour courgettes,1l/m2 pour navets
7l d'engrais B disponible → 1l/m2 pour courgettes,2l/m2 pour navets
3l anti-parasite disponible → 1l/m2 pour navets
Objectif : produire le maximum (en poids) de légumes,sachant que rendements = 4kg/m2 courgettes, 5kg/m2
navets
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemple de culture
Variables de décision : xc (surface de courgettes), xn(surface de navets)
Maximiser 4xc + 5xn (fonction objectif)
soumis à 2xc + xn ≤ 8 (limite A)
xc + 2xn ≤ 7 (limite B)
xn ≤ 3 (limite anti-parasite)
xc , xn ≥ 0 (terrain positif !)
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Caractéristiques
Simplex = polytope à N + 1 sommets (pour Ndimensions)
Caractéristiques du problème :
å chaque inégalité du PPL à n variables dé�nit undemi-espace dans un espace Euclidien à n dimensions
å leur intersection est l'ensemble des solutions candidateså l'ensemble des points pour lesquels la fonction objectif
réalise la valeur v est un hyperplanå la fonction objectif étant linéaire et concave sur le
polytope, elle admet un minimum sur (au moins) un deses sommets
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Interprétation géométrique
Culture de courgettes et de navets
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Interprétation géométrique
Les lignes de niveau (f = constante) sont des droitesparallèles
⇒ maximum en 1 sommet ou en 1 arête
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Interprétation géométrique
Les lignes de niveau (f = constante) sont des hyperplansa�nes
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Solutions PPL
La région admissible peut-être :
å vide ⇒ pas de solution (optimale)å non vide et bornée ⇒ 1 ou ∞ solutions optimaleå non vide et non bornée ⇒ 0 ou 1 ou ∞ solutions
optimales
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Algorithme naïf de résolution
Algorithme naïf : énumérer tous les sommets dupolytope, évaluer f , prendre le minimum
⇒ nombre important de sommets ⇒ pas e�cace(confère complexité)
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Algorithme du Simplexe
Algorithme crée par George Dantzig en 1947
Idée : à partir d'un sommet, chercher un sommet voisinqui améliore l'objectif
De�nition (Principe d'amélioration locale)
Soit x0 non optimum, alors il existe un sommet voisin x telque f (x) > f (x0)
⇒ Méthode de résolution itérative : on part d'unsommet quelconque, on trouve un sommet voisin quiaméliore l'objectif (règle de pivotage), on réitère
Note : on est passé d'un problème continu à unproblème discret !
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Algorithme du Simplexe - Culture
Illustration courgettes et navets
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Algorithme du Simplexe - étapes
Necessaire de passer en forme standard : égalités(variables d'écart)
⇒ plus de dimensions mais manipulations algébriquesplus simples
Maximiser 4xc + 5xn Maximiser 4xc + 5xn
soumis à 2xc + xn ≤ 8 soumis à 2xc + xn + e1 = 8
xc + 2xn ≤ 7 xc + 2xn + e2 = 7
xn ≤ 3 xn + e3 = 3
xc , xn ≥ 0 xc , xn, e1, e2, e3 ≥ 0
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Algorithme du Simplexe : histoire
Application après-guerre :
å Opérations Vittles et Plainfare pour ravitaillement de latrizone pendant le blocus de Berlin par pont aérien (23juin 1948 � 12 mai 1949)
å Simplexe exécuté à la main (des milliers de variables),jusqu'à 12 000 tonnes de matériel par jour !
1975 : prix Nobel économie Kantorovitch
aujourd'hui : PL largement répandue à de nombreuxdomaines d'application
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Problème Dual
Soit P un problème de PL, appelé problème primal
Il existe un problème D, appelé dual, utilisant les mêmesdonnées mais un objectif di�érent (inverse)
Ce problème a une illustration économique importante :si P est un problème de minimisation de coût pour unacheteur, D est un problème de maximisation du pro�tpour un vendeur tout en restant compétitif
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemple : Primal
une famille utilise 6 produits alimentaires comme sourcede vitamine A et C
produits (unités/kg) demande1 2 3 4 5 6 (unités)
vitamine A 1 0 2 2 1 2 9vitamine B 0 1 3 1 3 2 19
prix/kg 35 30 60 50 27 22Objectif : minimiser le coût total
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemple : Dual
un producteur de cachets de vitamines synthétiques veutconvaincre la famille d'acheter des vitamines
⇒ Quel prix de vente wA et wB ?
å pour être compétitifå et maximiser le pro�t
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemple : Dual
Maximiser 9wA + 19wB (fonction objectif)
soumis à wA ≤ 35 (produit 1)
wC ≤ 30 (produit 2)
2wA + 3wc ≤ 60 (produit 3)
2wA + wc ≤ 50 (produit 4)
wA + 3wc ≤ 27 (produit 5)
2wA + 2wc ≤ 22 (produit 6)
wA,wC ≥ 0 (prix positif)
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Dualité : généralisation économique
ressource i demande j
produit j aij cjcoût i bi
Primal (demandeur) : quelle quantité xi de ressource iacheter pour satisfaire demande à coût minimum
min∑i
bixi s.c.∑i
aijxi ≥ cj ∀j
Dual (vendeur) : à quel prix wj proposer les produitspour maximiser le pro�t tout en restant compétitif
max∑j
cjwj s.c.∑j
aijwi ≥ bi ∀i
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Dualité : propriétés
Le dual du dual est équivalent au primal
Théorème de dualité faible (pour prouver l'optimalité)
De�nition
Pour chaque paire de solutions admissibles x de P et w de Dcx ≥ wb
⇒ Si le primal est non-borné, le dual est insatis�able (etinversement).
Théorème de dualité forte (pour garantir qu'une preuved'optimalité est possible)
De�nition
Si P et D ont des solutions, alorscx∗ ≥ w ∗ b
Ecarts complémentaires (pour trouver une solutionoptimale du dual connaissant celle du primal)
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Autres méthodes
Améliorations du simplexe, barrières
Algorithme de l'ellipsoïde [Khachiyan, 1979]
Méthodes du point intérieur [Karmakar, 1984]
Versions spéci�ques à un problème particulier,combinaisons
. . .
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Dé�nition
Exemples
Caractéristiques
Simplexe
Dualité
Autresméthodes
Outils
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Outils
Outils non-commerciaux et/ou libres : glpk, CLP,Cassowary, SciLab, . . .
Outils commerciaux : ILOG/IBM CPLEX, MatLab (opttoolbox), Mathematica, Excel, . . .
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Plan du cours
1 Introduction
2 Programmation linéaire
3 Nombres entiersIntroductionModélisationExemplesTechniques de modélisationBranch-and-BoundAutres méthodesOutils
4 Programmation par Contraintes
5 Meta-heuristiques
6 Conclusion
7 Biblio
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Introduction
Programmation linéaire en nombres entiers (PLNE)
Variables de décision discrètes (entiers, booléens)
(contre-intuitivement ?) Pas de méthode généralee�cace de résolution⇒ branch-and-bound, cutting-planes, branch-and-cut,. . .
on entre dans l'optimisation combinatoire
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Modélisation générique de l'optimisationcombinatoire
Un ensemble E = {e0, . . . , en} de solutions candidates(espace de recherche) où ei est une assignation d'unensemble de variables
E , généralement dé�ni par des contraintes, a unecardinalité importante (ex. : n = 2m où m est dé�ni parla taille du problème)
objectif (maximisation) :ei ∈ E tel que ∀j , f (ei ) >= f (ej)
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Modélisation PLNE canonique
Forme PLNE canonique :
maximiser c>x
soumis à Ax ≤ b x ≥ 0
x ∈ Zn
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemples : rangement (packing)
On dispose de containers et d'éléments de taillesdi�érentes à ranger dans ces containers (pour envoi)
Objectif : trouver un arrangement pour minimiser lenombre de containers
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemples : rangement 1D (bin packing)
un déménageur souhaite empaqueter des objets enminimisant le nombre de cartons (de capacité C = 6)
Objectif : trouver un arrangement pour minimiser lenombre de cartons
Objets : livre (2), livre (2), pull (3), chaussettes (1),chaussures (2), assiettes (5), verres (6)
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemples : rangement 1D (bin packing)
xij = 1 si l'article i est rangé dans la boîte j , 0 sinon
yj = 1 si la boîte j est utilisée, 0 sinon
minimisern∑
j=1
yj
soumis àn∑
i=1
cixij ≤ 6yj , j = 1, . . . , n
n∑j=1
xij = 1, i = 1, . . . , n
xij ∈ {0, 1}, yj ∈ {0, 1}
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemples : sac-à-dos
Remplir son sac-à-dos (max. 3kg) pour une randonnéeobjet utilité poids
carte 10 200gourde A 7 1500gourde B 3 1500
pull 6 1200k-way 2 500tomme 4 800
fruits secs 5 700
Objectif : maximiser l'utilité pour un poids limité
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemples : sac-à-dos
xi = 1 si l'objet i est choisi, 0 sinon
ui utilité de l'objet i , wi son poids
maximisern∑
i=1
uixi
soumis àn∑
i=1
wixi ≤ 3
xi ∈ {0, 1}
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemples : sac-à-dos
Problème classique : utiliser au mieux une capacité,allocation de ressources
Nombreuses variantes (utilité di�érente selon conteneur,combinaisons augmentent l'utilité, . . .)
Applications
å �nances : gestion de portefeuilleå gestion de personnel pour un projetå . . .
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemples : plani�cation horaires (work scheduling)
Une chaîne de restauration rapide ouverte 7 jours sur 7 abesoin des nombres d'employés suivants du lundi audimanche : 45, 45, 40, 50, 65, 35, 35. Chaque employétravaille au maximum 1 jour de �n de semaine et 4 joursdans la semaine
Objectif : déterminer le nombre minimum d'employésnécessaires et leur a�ectation.
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemples : plani�cation horaires (work scheduling)
Xi = 1 si on recrute l'employé i (i ∈ [1, n] avec nsu�samment grand)Yij = 1 si l'employé i travaille le jour j (j ∈ [1, 7])Soit Bj le besoin par jour
minimisern∑
i=1
Xi
soumis àn∑
i=1
Yij >= Bj ,∀j
5∑j=1
Yij ≤ 4 ∗ Xi ,∀i
7∑j=6
Yij ≤ 1 ∗ Xi ,∀i
Xi ∈ {0, 1},Yij ∈ {0, 1}
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemples : plani�cation horaires (work scheduling)
Xij ∈ Zn : nombre d'employés ne travaillant pas les joursi et j (i ∈ [1, 5], j ∈ [6, 7])
Soit Bj le besoin par jour
minimiser5∑
i=1
7∑j=6
Xij
soumis à∑i!=k
∑j
Xij >= Bk , ∀k ∈ [1, 5]
∑i
∑j!=k
Xij >= Bk , ∀k ∈ [6, 7]
Xi j >= 0
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemples : séparation d'un stock (cutting-stock)
On dispose de rouleaux de tissu d'une certaine longueur
On souhaite les couper pour obtenir des bandes delongueurs di�érentes données
Objectif : minimiser le nombre de rouleaux à acheter
Généralisation du bin packing
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemples : séparation d'un stock (cutting-stock)
j = {0, . . . ,m} commandes, avec j requiert quantité qjde pièces de tissu
i = {0, . . . , n} combinaisons de découpe, avec xi lenombre de fois où elle est utilisée, et ci son coût (déchet)
aij le nombre de fois où la commande j apparait dans lacombinaison i
minimisern∑
i=1
cixi
soumis àn∑
i=1
xiaij ≥ qj∀j = 1, . . . ,m
xi , aij , qj ∈ Z, xi ≥ 0
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemple : Illustration cutting-stock
une machine peut produire des pièces maîtres de5600mm de largeur
les commandes sont les suivantes :
largeur quantité
1380 221520 251560 121710 141820 181880 181930 202000 102050 12. . . . . .
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Exemples : séparation d'un stock (cutting-stock)
Di�érentes modélisations selon données/objectifs(nombre de pièces maîtres, changements d'outil dedécoupe, . . .)
diverses applications
å 1D : découpe de cables, matériauxå 2D : découpe de verre, tissuå liens avec d'autres problèmes types
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Techniques de modélisation : ensembles discrets
x doit prendre sa valeur parmi P = {p1, . . . , pk}⇒ yi ∈ {0, 1}, 1 pour x = pi
k∑i=1
yi = 1
x =k∑i=1
piyi
xi ∈ {0, 1}
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Techniques de modélisation : propositions logiques
x et y deux variables booléennes
x ⇒ y : contrainte : x ≤ y
x ∨ y : contrainte : x + y ≥ 1
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Techniques de modélisation : ordonnancement
Deux tâches de durée di et dj doivent être usinées surune même ressource
ti et tj le temps de départ d'usinage
ti + di ≤ tj + M(1− yij)
tj + dj ≤ ti + M(yij)
yij ∈ {0, 1}
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Techniques de modélisation : linéarisation
linéariser un terme quadratique simple
ex. xx ′ avec x , x ′ ∈ {0, 1}introduit une variable y , y = 1 ssi x = 1 et x ′ = 1
x ≤ y
x ′ ≤ y
x + x ′ − 1 ≤ y
yij ∈ {0, 1}
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Relaxation linéaire
Idée : peut-on résoudre un PLNE X en résolvant le PLassocié ?
⇒ relaxation linéaire de�nit un polyèdreP = {X ∈ Rn|Ax ≤ b}
De�nition
Un PL P est une formulation de X ssi X = P ∩ Zn
Question : quel lien entre l'optimum du PL et l'optimumdu PLNE ?
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Relaxation linéaire : illustration
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Relaxation linéaire : illustration
⇒ peu d'indications, on ne peut pas simplementrésoudre le PL associé
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Méthodes énumératives
Idée : énumérer les solutions possibles (nombre �ni), lesévaluer, conserver la meilleure
Problème : ce nombre peut être très important (carexponentiel) ⇒ pas e�cace
C'est le challenge de l'optimisation combinatoire !
Eliminer a priori des solutions, sans les évaluerexplicitement
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Branch-and-Bound : principe
On veut résoudre z∗ = {max cx |x ∈ X}Partitionne X en (X1,X2)
Alors z∗ = max{z∗1, z∗
2}
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Branch-and-Bound : principe
Si z∗1> z∗
2, alors il est inutile d'explorer X2 car il ne
contient pas de solution optimale
Comment déterminer de ne pas explorer X2 sans calculerz∗2?
⇒ estimation (par excès) de z∗2: borne supérieure
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Propriété de la relaxation linéaire
Soit un problème de maximisation, son PLNE IP , sarelaxation linéaire L et leurs optimums respectifs Z ∗IP etZ ∗LLa propriété suivante est véri�ée :
å Z∗IP ≤ Z∗Lå ⇒ Si Z∗L est un entier, c'est l'optimum du PLNE
⇒ le PL fournit une borne supérieure au PLNE !
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Branch-and-Bound : principe
On partitionne l'ensemble X en {X1, . . . ,Xn}On calcule les bornes supérieures B(Xi ) de l'optimumpour chaque Xi
Si B(Xi ) ≤ meilleure solution trouvée, on élague
Sinon on découpe récursivement Xi
⇒ arbre de recherche implicite
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Branch-and-Bound : découpe
Résolution de la RL sur X (P)
si x∗ non entier, on branche sur une variable non entière
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Branch-and-Bound : découpe
X1 = x ∈ X et xi ≤ a
X2 = x ∈ X et xi ≥ a + 1
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Branch-and-Bound : découpe
Recherche de la meilleure solution sur X2
RL sur X2 (P2), découpe, RL sur X21 (P3) et X22 (P4)
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Branch-and-Bound : découpe
Recherche de la meilleure solution sur X1
RL sur X1 (P1), découpe, RL sur X11 (P5) et X12 (P6)
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Branch-and-Bound : découpe
x∗ = max(x∗1, x∗
2)
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Branch-and-Bound : élaguage
On élague une branche si :
å La RL n'a pas de solution (discard)å La RL a une solution entière (optimum)å La borne sup. est inférieure à la meilleure solution
actuelle (discard)
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Branch-and-Bound : exemple
maximiser z = 2x1 + 3x2
soumis à 5x1 + 7x2 ≤ 35
4x1 + 9x2 ≤ 36
x1, x2 ≥ 0 ∈ Z
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Branch-and-Bound : exemple
maximiser z = 2x1 + 3x2
soumis à 5x1 + 7x2 ≤ 35
4x1 + 9x2 ≤ 36
x1, x2 ≥ 0 ∈ Z
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Autres méthodes
Améliorations (choix des partitions, ordre de résolution,. . .)
Coupes (cuts), plans sécants (cutting-planes)
Contraintes redondantes (symmétries)
Méthodes mixtes (branch-and-cut)
Versions spéci�ques à un problème particulier
. . .
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques demodélisation
Branch-and-Bound
Autresméthodes
Outils
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Outils
Outils non-commerciaux et/ou libres : glpk, LP_SOLVE,SciLab, . . .
Outils commerciaux : ILOG/IBM CPLEX, MatLab (opttoolbox), Mathematica, Excel, . . .
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Plan du cours
1 Introduction
2 Programmation linéaire
3 Nombres entiers
4 Programmation par ContraintesIntroductionModélisationExemplesRésolutionOutils
5 Meta-heuristiques
6 Conclusion
7 Biblio
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Introduction
Programmation par contraintes = méthode demodélisation et de résolution
Variables de décision et leur domaine
Contraintes de di�érents types, faciles à véri�erindépendamment, liberté de modélisation
Méthodes de résolution énumératives
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Du Sudoku à la PPC
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Principes de la PPC
Raisonnement par élimination : on ne cherche pasdirectement la valeur d'une variable mais ses valeurspossibles (réduction du domaine)
Raisonnement énumératif : on essaie di�érentessolutions par étapes successives de construction (arbrede recherche)
Raisonnement local : on considère les contraintesindépendamment
Raisonnement par propagation : lorsque le domained'une variable change, on s'intéresse aux contraintes quidépendent cette variable (propagation)
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Modélisation générique de l'optimisationcombinatoire
Un ensemble E = {e0, . . . , en} de solutions candidates(espace de recherche) où ei est une assignation d'unensemble de variables
E , généralement dé�ni par des contraintes, a unecardinalité importante (ex. : n = 2m où m est dé�ni parla taille du problème)
objectif (maximisation) :ei ∈ E tel que ∀j , f (ei ) >= f (ej)
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Modélisation SAT
Un problème SAT est un doublet {X ,C} où :
X est un ensemble de variables booléennes (littéraux){x0, . . . , xn}C est un ensemble de contraintes sous la forme CNF(forme normale conjonctive)
å CNF = conjonction de clauseså clause = disjonction de littéraux
Dans un problème d'optimisation, on ajoute unefonction objectif f (ei ) où ei est une solution candidate(i.e. une assignation d'une valeur à chaque variable)
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Modélisation SAT : exemple
Ringo Etoile, musicien londonien, appelle Scotland Yardpour signaler que son appartement vient d'êtrecambriolé. La police a établi les faits suivants :
å Il y a trois suspects : John, Paul et Georges, et personned'autre ne peut être coupable
å Si John est coupable, alors il a un et un seul compliceå Si Paul est innocent alors Georges l'est aussiå Si Georges est innocent alors Paul l'est aussiå Si il y a exactement deux coupables, alors John est l'un
d'entre eux
Modélisez puis dessinez l'arbre de recherche
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Modélisation SAT : exemple
X = {J,P,G}
C = (à mettre sous forme CNF)
å J ∨ P ∨ Gå J ⇒ ((P ∧ ¬G ) ∨ (G ∧ ¬P))å ¬P ⇒ ¬Gå ¬G ⇒ ¬På ((J ∧ P ∧ ¬G ) ∨ (J ∧ ¬P ∧ G ) ∨ (¬J ∧ P ∧ G ))⇒ J
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Modélisation CSP
Un problème CSP est un triplet {X ,D,C} où :
X est un ensemble de variables {x0, . . . , xn}D = {d0, . . . , dn} est un ensemble de domaines devaleurs (discrets ou continus) correspondant auxvariables de X
C est un ensemble de contraintes (logiques,mathématiques, etc.)
Dans un problème d'optimisation, on ajoute unefonction objectif f (ei ) où ei est une solution candidate(i.e. une assignation d'une valeur à chaque variable)
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Modélisation CSP : exemple
On considère l'addition suivante :S E N D
+ M O R E
= M O N E Yoù chaque lettre représente un chi�re di�érent compris entre0 et 9.On souhaite connaitre la valeur de chaque lettre, sachant quela première lettre de chaque mot représente forcément unchi�re di�érent de 0.
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Modélisation CSP : exemple
Modélisation A (horizontale) :
X = {S ,E ,N,D,M,O,R,Y }D(S) = D(M) = {1, 2, 3, 4, 5, 6, 7, 8, 9}D(E ) = D(N) = D(D) = D(O) = D(R) = D(Y ) ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9}C1 : 1000∗S+100∗E +10∗N+D+1000∗M+100∗O+10∗R +E = 10000∗M +1000∗O +100∗N +10∗E +Y
C2 : all − di�erent({S ,E ,N,D,M,O,R,Y })
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Modélisation CSP : exemple
Modélisation B (verticale) :
X = {S ,E ,N,D,M,O,R,Y }D(S) = D(M) = {1, 2, 3, 4, 5, 6, 7, 8, 9}D(E ) = D(N) = D(D) = D(O) = D(R) = D(Y ) ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9}C1 : D + E = Y + 10 ∗ R1C2 : R1 + N + R = E + 10 ∗ R2C3 : R2 + E + O = N + 10 ∗ R3C4 : R3 + S + M = O + 10 ∗MC5 : all − di�erent({S ,E ,N,D,M,O,R,Y })
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Types de contraintes
Contraintes par extension (liste des valeurs possibles) oupar intention (formule logique ou mathématique)
l'ordre n'a pas d'importance
Déclaratives (pas d'algorithme de véri�cation), nondirigées (x − 2y = z), pas restreintes à une formeparticulière (i.e. linéaire)
Arité d'une contrainte = nombre de variables impliquées(x2 = 4, est − pair(x), x 6= y)
Contraintes globales (toutes − di�erentes(E ))
Contraintes quanti�catives, existentielles pour desproblèmes avancés
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Jeu des reines
But : Placer 4 reines sur un échiquier 4x4 sans qu'elles semenacent.
Modélisation ?
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Jeu des reines : modélisation A
But : Placer 4 reines sur un échiquier 4x4 sans qu'elles semenacent.
Variables : Associe à chaque reine i saposition en lignes (L = ∪i=1..4Li ) et encolonnes (C = ∪i=1..4Ci ) ⇒ X = L ∪ C )Domaines :∀i ∈ {1, 2, 3, 4}DLi = DCi = {1, 2, 3, 4}Contraintes :CoL = {∀i , j ∈ {1, 2, 3, 4}, i 6= j , Li 6= Lj}CoC = {∀i , j ∈ {1, 2, 3, 4}, i 6= j ,Ci 6= Cj}CoDM = {∀i , j ∈ {1, 2, 3, 4}, i 6= j ,Ci + Li 6=Cj + Lj}CoDD = {∀i , j ∈ {1, 2, 3, 4}, i 6= j ,Ci − Li 6=Cj − Lj}
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Jeu des reines : modélisation B
But : Placer 4 reines sur un échiquier 4x4 sans qu'elles semenacent.
Variables : On place une reine par colonne,donc on associe à une reine i sa position enlignes ⇒ X = {X1,X2,X3,X4})Domaines : ∀i ∈ {1, 2, 3, 4}DXi
= {1, 2, 3, 4}Contraintes :CoL = {∀i , j ∈ {1, 2, 3, 4}, i 6= j ,Xi 6= Xj}CoDM = {∀i , j ∈ {1, 2, 3, 4}, i 6= j ,Xi + i 6=Xj + j}CoDD = {∀i , j ∈ {1, 2, 3, 4}, i 6= j ,Xi − i 6=Xj − j}
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Jeu des reines : modélisation C
But : Placer 4 reines sur un échiquier 4x4 sans qu'elles semenacent.
Variables : Une variable par case à domaineBooleen
⇒ modélisation SAT
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Jeu des reines : plusieurs modélisations
Il existe (toujours) plusieurs modélisations, laquelle est lameilleure ?
å Celle qui correspond le mieux à la réalitéå La plus intuitive, la plus simple à trouverå La plus e�cace (voir résolution)
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Coloriage de cartes
But : Colorier une carte sans que deux pays contigus aient lamême couleur.Applications : allocation de ressources, emploi du temps,ordonnancement, . . .
Modélisation ?
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Coloriage de cartes
But : Colorier une carte sans que deux régions contigues aientla même couleur.Applications : allocation de ressources, emploi du temps,ordonnancement, . . .
Variables : une variable Xi pour chaquerégion
Domaines :Di = {bleu, jaune, rouge, vert}Contraintes : en extension, ou,∀i , j tq voisines(i , j), Xi 6= Xj
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Résolution naïve
Méthode naïve :
å on énumére les a�ectations totaleså on véri�e si elles sont consistantes
⇒ pas e�cace !
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Résolution par étapes
Construire une a�ectation totale par incrémentationd'a�ectations partielles (arbre de recherche)
Revenir en arrière si une a�ectation partielle estinconsistante (backtrack)
Restreindre les domaines des variables à chaque étape(anticipation par propagation locale des contraintes)
utiliser des heuristiques
utiliser connaissances sur le problème (symétries, . . .)
. . .
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Arbre et backtrack : exemple des reines
Construire une a�ectation totale par incrémentationd'a�ectations partielles (arbre de recherche)
Revenir en arrière si une a�ectation partielle estinconsistante (backtrack)
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Anticipation
Restreindre les domaines des variables à chaque étape(anticipation/�ltrage par propagation locale descontraintes)
De manière générale, �ltre consiste à modi�er ledomaines des variables non a�ectées en fonction del'a�ectation partielle (A) courante
å consistance de noeud (ou 1-consistance) : on enlève deD(Xi ) toute valeur v telle que A ∪ (Xi , v) estinconsistante
å consistance d'arc (ou 2-consistance) : on enlève deD(Xi ) toute valeur v telle que qu'il existe une variableXj dont toutes les valeurs donnent A ∪ (Xi , v) ∪ (Xj ,w)inconsistante
å consistance de chemin (ou 3-consistance)å . . .å Si il reste k variables à a�ecter, à quoi correspond la
k − consistance ?
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Anticipation : exemple des reines
Restreindre les domaines des variables à chaque étape(anticipation/�ltrage par propagation locale descontraintes)
1-consistance
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Anticipation : exemple des reines
Restreindre les domaines des variables à chaque étape(anticipation/�ltrage par propagation locale descontraintes)
2-consistance
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Heuristiques
Utiliser des heuristiques = parcourir l'arbre dans unordre préférentiel
Préférence non systématique (sinon le problème estlinéaire !), mais très e�cace
Types :
å Heuristiques de variables (min-domain, max-constraints)å Heuristiques de valeurs
Création de l'ordre :
å statique (une fois pour toutes au départ)å dynamique (à chaque étape)
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Connaissances des symétries
Utiliser connaissances sur le problème : symétries
å manuel durant la modélisationå automatique durant la recherche
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Variantes
MAX-CSP : satisfaire un maximum de contraintes
VCSP : valuation sur les contraintes, maximiser
Conditional CSP : contraintes activées sur certainesconditions
Dynamic CSP : ajout dynamique de variables au coursde la recherche
. . .
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-heuristiques
Conclusion
Biblio
Outils
Outils non-commerciaux et/ou libres : Comet, Gecode,Choco, Cassowary, GNU Prolog, SWI Prolog, ECLiPSe(Prolog), Alloy (R-SAT), . . .
Outils commerciaux : ILOG/IBM CPLEX, CHARME,CHIP v5, . . .
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autresméthodes
Outils
Conclusion
Biblio
Plan du cours
1 Introduction
2 Programmation linéaire
3 Nombres entiers
4 Programmation par Contraintes
5 Meta-heuristiquesIntroductionRecuit simuléPSOACOGénétiqueCaractéristiquesAutres méthodesOutils
6 Conclusion
7 Biblio
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autresméthodes
Outils
Conclusion
Biblio
Introduction aux méthodes incomplètes
Constat : pour de nombreux problèmes (taille), aucunetechnique vue precédemment n'est e�cace
Les techniques étudiées sont complètes (ou exactes) : sielles ne fournissent pas de solution, la solution n'existepas
Idée : peut-on trouver des méthodes incomplètes quisoient e�caces dans certains cas ?
Parmis ces méthodes, on trouve les méta-heuristiques
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autresméthodes
Outils
Conclusion
Biblio
Introduction aux méta-heuristiques
Principe : on va parcourir partiellement l'espace derecherche, avec des heuristiques plus complexes
Plusieurs manières de parcourir partiellement :
å sauter d'une a�ectation totale à une autre (réparationlocale)
å repartir de la racine en ayant emmagasiné de laconnaissance
å . . .
Toutes ces méthodes se reposent sur des techniquesaléatoires (ou stochastiques)
La plupart de ces méthodes sont inspirées du monde réel(nature et notamment animaux) et de l'intelligencecollective
Nous n'en verrons qu'une toute petite partie
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autresméthodes
Outils
Conclusion
Biblio
Recuit simulé
Le recuit simulé est une méthode inspirée de lametallurgie
Energie E du système = Fonction à minimiser
Temperature T = paramètre contrôlant la diversi�cation
Determine conditions initiales : E0 et T0 (aléatoirementélevée)
A chaque étape :å Modi�e solution courante et évalue la variation
d'énergie ∆E
Si ∆E < 0, elle est appliquée
Sinon, elle est appliquée avec une probabilité de e−∆
E
T
(règle de Metropolis)
å Modi�cation de la température : par paliers ou par uneloi de décroissance (Ti+1 = λTi avec λ < 1)
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autresméthodes
Outils
Conclusion
Biblio
Particle Swarm Optimization
PSO = Particle Swarm Optimization
un essaim de particule se déplace dans un espace à n
dimensions (n = nombre de variables)
Une particule est caractérisée par sa position (xi ) et savitesse (vi )
Initialise chaque particule pseudo-aléatoirement(distribution uniforme)
à chaque étape, chaque particule se déplace(modi�cation du vecteur vitesse et application à laposition) en fonction de 3 critères :
å son meilleur score (pi )å le meilleur score de toutes les particules (g)å facteur aléatoire
vi = ωvi + σprp(pi − xi ) + σg rg (g − xi ) où ω, σp, σgsont des paramètres globaux
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autresméthodes
Outils
Conclusion
Biblio
PSO : exemple 2D
Applications courantes : choix ou adéquation deparamètres
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autresméthodes
Outils
Conclusion
Biblio
PSO : exemple 2D
Global best
Local best Random factor
Applications courantes : choix ou adéquation deparamètres
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autresméthodes
Outils
Conclusion
Biblio
Ant Colony Optimization
ACO = Ant Colony OptimizationAlgorithme inspiré de l'observation des colonies defourmis : capacité à trouver le chemin le plus court versune source de nourriturePremière application algorithmique [Dorigo] : recherchedu plus court chemin dans un graphe aux arêtespondéréesEtendu depuis à divers problèmes d'optimisation,notamment les problèmes de satisfaction de contraintes
???20%
80%
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autresméthodes
Outils
Conclusion
Biblio
Ant Colony Optimization : PPC
A chaque tour, un certain nombre de fourmis arti�cielles
parcourent l'espace de recherche a�n de construire unesolution (par exemple, un graphe)
Le trajet d'une FA (ici un choix xy) est in�uencé par :
å une heuristique (ηβxy )å les phéromones déposées par toutes les FA (ταxy )å facteur aléatoire (α, β)
pkxy =ταxy∗η
βxy∑
z ταxz∗η
βxz
Après évaluation de la solution, chaque FA dépose desphéromones sur son trajet en fonction de la qualité de lasolution (∆τkxy )
Les phéromones s'évaporent (ρ) au cours du temps a�nd'oublier les mauvaises solutions
τxy = (1− ρ)τxy + ∆τkxy
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autresméthodes
Outils
Conclusion
Biblio
Algorithmes génétiques
Les algorithmes génétiques sont inspirés de la sélectionnaturelle
Opérations (sélections, enjambements/croisements,mutations) appliquées à une population de solutionscandidates
Principe : génération d'une population initiale(aléatoirement), puis, itérativement :
å Evaluation puis selection (di�érentes méthodes) desmeilleurs individus
å Croisements (di�érentes possibilités) par paireså Mutations sur une faible partie de la population
résultante
Comment représenter les solutions sous forme de gênes(i.e séquence de valeurs) ? ⇒ importance du codage
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autresméthodes
Outils
Conclusion
Biblio
Algorithmes génétiques : étapes
Selection : rang, roulette,tournoi, uniforme
Croisements : place del'enjambement
Mutations : i.e.permutations
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autresméthodes
Outils
Conclusion
Biblio
Algorithmes génétiques : exemple du VC
Exemple du voyageur de commerce
Codage : un entier par ville, séquence : suite ordonnéede villes visités
å S1 = 1 0 5 3 2 7 4 6å S2 = 7 1 3 5 6 2 0 4å Croisements :
S′1 = 1 0 5 3 2 7 6 4
S′2 = 7 1 3 5 6 0 4 2
å Mutation (par permutation) : S ′′1= 1 0 7 3 2 5 6 4
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autresméthodes
Outils
Conclusion
Biblio
Caractéristiques des meta-heuristiques
Optimum global n'est pas garanti : il ne doit donc pasêtre requis
Présence de nombreux paramètres : phases de testsnécessaires
Contrôle des facteurs d'exploration (ou diversi�cation),d'intensi�cation, d'aprentissage
Importance du choix de modélisation : liberté relative,fonction objectif simple à calculer
Robustesse face aux problèmes stochastiques (donnéesincertaines)
Diverses preuves de convergence ont été fournies souscertaines conditions
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autresméthodes
Outils
Conclusion
Biblio
Autres méthodes
Réseaux de neurones (classi�cation)
Autres réparations locales : recherche tabou
Nombreuses variantes des méthodes présentées
Méthodes hybrides : hybridation globale/locale oudéterministe/stochastique
. . .
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autresméthodes
Outils
Conclusion
Biblio
Outils
Outils non-commerciaux et/ou libres : ParadisEO(evol.,local, PSO), ECj (evol.), oMetah (evol., local,ACO, RS), . . .
Outils commerciaux : ILOG/IBM CPLEX (RS, local),Mathematica (RS), . . .
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Plan du cours
1 Introduction
2 Programmation linéaire
3 Nombres entiers
4 Programmation par Contraintes
5 Meta-heuristiques
6 Conclusion
7 Biblio
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Conclusion
Optimisation est un vaste domaine qui fait intervenirplusieurs types de compétences
Comprendre le schéma général pour attaquer unproblème : Analyse, Modélisation, Résolution,Interpretation, Application
Comprendre les avantages et limitations des di�érentesméthodes a�n de choisir la plus adaptée(caractéristiques du problème ? objectifs ? contexte ?di�culté de résolution ?)
Se ramener si possible à un problème type a�n depro�ter de l'expérience accumulée
Suivre un fonctionnement itératif et tester abondamment
Si vous faites appel à une expertise extérieure pour uneou plusieurs étapes, la compréhension du domainepermet de chi�rer et de superviser
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Conclusion
Ce cours est loin d'être exhaustif sur les types deproblèmes (optimisation multi-objectifs, contraintestemps et stochastiques, données incertaines, objectifsrobustesse, . . .), les méthodes associées et les outilsexistants
Nécessaire de maintenir une veille technologique ou demettre à jour ses connaissances une fois confronté à uneproblématique précise
Associer connaissance théorique à la maîtrise d'outilsperformants (et leur langage)
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Plan du cours
1 Introduction
2 Programmation linéaire
3 Nombres entiers
4 Programmation par Contraintes
5 Meta-heuristiques
6 Conclusion
7 Biblio
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Bibliographie
Portail RO sur wikipedia (maintenu par E/C)
Recherche opérationnelle pour l'ingénieur [Hêche&al.]
Meta-heuristiques pour l'optimisation di�cile [Dréo&al.]
Introduction à la calculabilité [Wolper]
. . .
Méthodes etoutils
d'optimisation
Optimisation
Introduction
Programmationlinéaire
Nombres entiers
Programmationpar Contraintes
Meta-heuristiques
Conclusion
Biblio
Crédits
Une partie du contenu de ce cours est adapté du travailde :
å Wikipedia : portail ROå Nadia Brauner & al. - Laboratoire G-SCOP (Grenoble)å Christine Solnon - Laboratoire LIRIS (Lyon)å Philippe Chretienne - ISIMAå Philippe Liberti - LIXå Vincent Mousseau - Centrale Pariså . . .