Vous êtes sur la page 1sur 149

Méthodes et

outils
d'optimisation
Optimisation
Méthodes et outils d'optimisation
Introduction Optimisation
Programmation
linéaire
Nombres entiers
Programmation
Mathias Kleiner
par Contraintes mathias.kleiner@ensam.eu
Meta-
heuristiques
http://www.lsis.org/kleinerm
Conclusion
Biblio
Mai 2013

http://creativecommons.org/licenses/by-sa/3.0/
Plan du cours

Méthodes et
outils
d'optimisation
1 Introduction
Optimisation

Introduction 2 Programmation linéaire


Programmation
linéaire
Nombres entiers 3 Nombres entiers
Programmation
par Contraintes
Meta-
4 Programmation par Contraintes
heuristiques
Conclusion
Biblio
5 Meta-heuristiques

6 Conclusion

7 Biblio
Plan du cours

Méthodes et
outils
d'optimisation 1 Introduction
Optimisation Introduction
Exemples
Introduction
Introduction
Caractéristiques
Exemples Complexité
Caractéristiques Processus
Complexité
Processus
Méthodes
Méthodes
Programmation
linéaire 2 Programmation linéaire
Nombres entiers
Programmation
par Contraintes
3 Nombres entiers
Meta-
heuristiques
4 Programmation par Contraintes
Conclusion
Biblio
5 Meta-heuristiques
Introduction

Méthodes et
outils
d'optimisation
Optimisation
Problème d'optimisation = minimisation (ou
maximisation) d'une fonction objectif (de coût)
Introduction
Introduction
Cette fonction comporte des paramètres et est
Exemples généralement soumise à des contraintes
Caractéristiques
Complexité
En fonction des caractéristiques du problèmes
Processus (paramètres fortement variables, domaines discrets,
Méthodes types de contraintes, etc.), le problème peut être
Programmation
linéaire
dicile à résoudre
Nombres entiers ⇒ Necessite des outils avancés pour la modélisation et
Programmation la résolution
par Contraintes
å Variables (paramètres)
Meta-
heuristiques å Fonction objectif
Conclusion å Contraintes
Biblio
Première dénition

Méthodes et
outils
d'optimisation
Optimisation

Introduction fonction objectif f : A → R


Introduction
Exemples Généralement, A ⊂ Rn , et est déni par un ensemble de
Caractéristiques contraintes
Complexité
Processus Le domaine de A est appelé espace de solutions, les
Méthodes
éléments de A sont appelés solutions candidates
Programmation
linéaire une solution candidate ai qui minimise f
Nombres entiers (∀aj ∈ A, f (ai ) ≤ f (aj )) est appelée solution optimale
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Biblio
Optimisation et méthodes numériques

Méthodes et
outils
d'optimisation
Optimisation il existe des méthodes numériques pour résoudre certains
problèmes d'optimisation
Introduction
Introduction cette possibilité depends de caractéristiques du
Exemples problème. Par exemple, la méthode (de base) du
Caractéristiques
Complexité
gradient requiert que f soit doublement dérivable, que le
Processus problème ne soit pas contraint, et, si l'on cherche un
Méthodes optimum global, que la région dénie par f soit convexe.
Programmation
linéaire dans ce cours nous étudierons plus particulièrement les
Nombres entiers cas où ces techniques ne sont pas (ou dicilement)
Programmation
par Contraintes
applicables
Meta- En particulier, nous verrons des problèmes pour lesquels
heuristiques
l'ensemble A est discret
Conclusion
Biblio
Exemples de problèmes : revenu

Méthodes et
outils
d'optimisation
Optimisation

Introduction Un agriculteur possède un certain nombre d'hectares,


Introduction
Exemples d'engrais et d'insecticide
Caractéristiques Possibilité de planter du maïs ou du blé
Complexité
Processus Les cultures requièrent des quantités diérentes
Méthodes d'engrais et d'insecticide
Programmation
linéaire Les cultures fournissent un revenu diérent
Nombres entiers
Objectif : maximiser le revenu net
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Biblio
Exemples de problèmes : revenu

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Introduction
Exemples Un restaurateur possède des oursins, crevettes et huîtres
Caractéristiques
Complexité Dispose de deux types d'assiettes
Processus
Méthodes
Objectif : déterminer le nombre d'assiette de chaque
Programmation
type à proposer pour maximiser le revenu net
linéaire
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Biblio
Exemples de problèmes : ux de transport

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Introduction
Exemples
Caractéristiques Une coopérative laitière eectue quotidiennement le
Complexité ramassage de lait dans diérentes fermes
Processus
Méthodes Objectif : eectuer la tournée la plus courte
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Biblio
Exemples de problèmes : couverture de charge

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Introduction
Exemples Courbe de charge (compagnie aérienne, supermarché,
Caractéristiques
Complexité
péages, . . .)
Processus Objectif : Assurer la couverture avec un minimum de
Méthodes
Programmation
personnel
linéaire
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Biblio
Exemples de problèmes : emploi du temps

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Introduction
Exemples
Une université doit eectuer un certain nombre de cours
Caractéristiques à un certain nombre d'élèves, avec un certain nombre
Complexité d'enseignants-chercheurs
Processus
Méthodes contraintes de précédences de cours, salles, désidératas
Programmation
linéaire Objectif : trouver une solution !
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Biblio
Exemples de problèmes : rangement

Méthodes et
outils
d'optimisation
Optimisation
On dispose de containers et d'éléments de tailles
Introduction diérentes à ranger dans ces containers (pour envoi)
Introduction
Exemples Objectif : trouver un arrangement pour minimiser le
Caractéristiques nombre de containers
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Biblio
Exemples de problèmes : réseaux

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Introduction
Exemples
On souhaite approvisionner une région en eau potable
Caractéristiques diérents consommateurs, diérents points de pompage
Complexité
Processus contraintes de pression
Méthodes
Objectif : minimiser le nombre points de pompage et la
Programmation
linéaire longueur du réseau
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Biblio
Exemples de problèmes : conception produit

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Introduction
Exemples
Caractéristiques Fabrication d'un système de traction
Complexité Diérents matériaux, contraintes de traction
Processus
Méthodes Objectif : minimiser le coût de fabrication
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Biblio
Exemples de problèmes : séparation d'un stock

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Introduction
Exemples On dispose de rouleaux de tissu d'une certaine longueur
Caractéristiques
Complexité On souhaite les couper pour obtenir des bandes de
Processus longueurs diérentes données
Méthodes
Programmation
Objectif : minimiser le nombre de rouleaux à acheter
linéaire
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Biblio
Exemples de problèmes : planication horaires
(work scheduling)
Méthodes et
outils
d'optimisation
Optimisation

Introduction
Introduction
Exemples
Caractéristiques Etant donné des besoins / jours en nombre d'employés
Complexité Planier les aectations de la semaine
Processus
Méthodes Objectif : minimiser le nombre d'employés
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Biblio
Exemples de problèmes : ordonnancement

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Introduction
Exemples Planier des tâches sur des machines de production
Caractéristiques
Complexité Contraintes de précédences sur les tâches, délais sur
Processus machines, . . .
Méthodes
Programmation
Objectif : minimiser le temps de complétion des tâches
linéaire
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Biblio
Exemples de problèmes : autres

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Euler : "Il n'y a rien dans le monde qui ne se réalise sans
Introduction la volonté de minimiser ou maximiser quelque chose."
Exemples
Caractéristiques
Encore beaucoup d'autres domaines d'application :
Complexité å Economie/Finances
Processus å Biologie
Méthodes å Transport
Programmation å Organisation/Logistique/SCM
linéaire
å Robotique/Intelligence articielle
Nombres entiers
å Ingénierie
Programmation
par Contraintes å ...
Meta-
heuristiques
Conclusion
Biblio
Caractéristiques

Méthodes et
outils
d'optimisation
Optimisation
Continuité, linéarité, bornes de la fonction de coût ?
Introduction Variables discretes ? Domaine des variables ?
Introduction
Exemples mono-objectif, multi-objectifs ?
Caractéristiques
Complexité Contraintes linéaires ? Quadratiques ?
Processus Connaissances stochastiques (i.e pseudo-aléatoires) ou
Méthodes
Programmation
incertaines
linéaire ⇒ les caractéristiques d'un problème inuent sur :
Nombres entiers å la modélisation (puissance expressive nécessaire)
Programmation å les techniques de résolution
par Contraintes
Meta-
å la diculté (ecacité des méthodes/algorithmes)
heuristiques
Conclusion
Biblio
Complexité

Méthodes et
outils
d'optimisation Diculté de résolution d'un problème par un
Optimisation algorithme/méthode :
å quantité d'opérations/étapes à eectuer (complexité en
Introduction
temps)
Introduction
å quantité d'informations à stocker (complexité en espace)
On s'intéresse à un ordre de grandeur en fonction des
Exemples
Caractéristiques
Complexité données en entrée (indépendant de la puissance
Processus
Méthodes
machine) :
Programmation å linéaire ou pseudo-linéaire
linéaire å polynomial
Nombres entiers å exponentiel/factoriel (on parle de problèmes
Programmation NP-diciles)
par Contraintes
å (in)décidable, (in)calculable
Meta-
heuristiques Théorie des automates (deterministes ou
Conclusion non-deterministes) par A.Turing (machine de Turing)
Biblio
Complexité : exemple

Méthodes et
outils
d'optimisation
Optimisation
Soit un graphe G = (V, E)
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes G est-il connexe ?
Meta-
heuristiques
Conclusion
Biblio
Complexité : exemple

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Soit un graphe G = (V, E)
Nombres entiers
Programmation
G possède-t-il un chemin hamiltonien ?
par Contraintes
Meta-
heuristiques
Conclusion
Biblio
Complexité : exemple

Méthodes et
outils
d'optimisation
Optimisation Soit un graphe G = (V , Ep ) complet
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Quel chemin passant exactement une fois par chaque
Programmation
par Contraintes point minimise le poids total ?
Meta-
heuristiques 69 villes → nombre à 100 chires !
Conclusion
Biblio
Complexité : conséquences

Méthodes et
outils
d'optimisation
Optimisation Temps de résolution d'un problème selon sa complexité
Introduction (10ns par étape)
Introduction Not. Complexite n=20 n=50 n=250 n=1000 n=104 n=106
Exemples O (n) lineaire 200ns 500ns 2.5µs 10µs 100µs 10ms
Caractéristiques O (n 2 ) quadratique(P) 4µs 25µs 625µs 10ms 1s 2.8h
O (n 3 ) cubique(P) 80ms 1.25ms 156ms 10s 2.7h 316ans
Complexité O (e n ) exponentielle 10ms 130jours 1059 ans ? ? ?
Processus O (n!) factorielle 770ans 1048 ans ? ? ? ?
Méthodes
Programmation ce n'est pas anodin !
linéaire
Nombres entiers
distingue complexite pire des cas, en moyenne, en
Programmation
pratique
par Contraintes
il existe des classes polynomiales pour des problèmes
Meta-
heuristiques NP-diciles sous certaines conditions
Conclusion
Biblio
Processus d'optimisation

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Biblio
Processus d'optimisation

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire Analyse du problème
Nombres entiers Modélisation et choix de méthode
Programmation
par Contraintes Résolution
Meta-
heuristiques
Interprétation des résultats
Conclusion
Biblio
Processus d'optimisation : Analyse du problème

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Introduction
Exemples Compréhension du système
Caractéristiques
Complexité Dénition des objectifs, du champ de couverture
Processus
Méthodes
Obtention des données
Programmation ...
linéaire
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Biblio
Processus d'optimisation : Modélisation

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Introduction
Exemples
Choix d'un langage (formel), de la méthode
Caractéristiques Traduction du problème : paramètres, domaines,
Complexité
Processus
contraintes, incertitude, . . .
Méthodes ⇒ simplication : résultat d'un consensus entre acteurs
Programmation
linéaire ...
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Biblio
Processus d'optimisation : Résolution

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Introduction
Exemples Mise en oeuvre algorithmique, utilisation d'un
Caractéristiques
Complexité
outil/solveur
Processus Analyse de la robustesse, pertinence des résultats
Méthodes
Programmation ...
linéaire
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Biblio
Processus d'optimisation : Interpretation

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Introduction
Exemples
Caractéristiques Interpréter les résultats dans le monde réel
Complexité
Processus
Présenter aux acteurs
Méthodes ...
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Biblio
Processus d'optimisation : Mise en oeuvre

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Introduction
Exemples Mise en oeuvre opérationnelle
Caractéristiques
Complexité Suivi des impacts, actions correctives
Processus
Méthodes
⇒ peut donner lieu à la dénition d'un nouveau
Programmation
problème !
linéaire
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Biblio
Méthodes d'optimisation

Méthodes et
outils
d'optimisation
Méthodes génériques :
Optimisation
Programmation linéaire (modélisation sous forme
Introduction
Introduction
d'équations linéaires)
Exemples Programmation en nombres entiers (variables entières)
Caractéristiques
Complexité Programmation quadratique
Processus
Méthodes
Programmation dynamique
Programmation Méthodes énumératives (PPC) : SAT, CSP, Models
linéaire
Nombres entiers
Méta-heuristiques (optimisation stochastique)
Programmation ...
par Contraintes
Meta-
domaines de recherche/activité : recherche
heuristiques opérationnelle, intelligence articielle, . . .
Conclusion
Biblio
Méthodes d'optimisation

Méthodes et
outils
d'optimisation
Optimisation Mais pour des cas particuliers, il peut exister des méthodes
Introduction dédiées ecaces (optimales ou approchées). Par exemple :
Introduction
Exemples
Sac à dos, sous conditions : algorithme glouton
Caractéristiques Ordonnancement : méthode du chemin critique (PERT)
Complexité
Processus Ordonnancement à 2 machines : algorithme de Johnson
Méthodes ...
Programmation
linéaire → longue liste en évolution : requiert une veille technologique
Nombres entiers ou une étude approfondie, par exemple lorsque la résolution
Programmation
par Contraintes
d'un problème par les méthodes génériques n'est pas
Meta- satisfaisante (e.g. temps de calcul trop important).
heuristiques
Conclusion
Biblio
Plan du cours

Méthodes et
outils
d'optimisation 1 Introduction
Optimisation

Introduction
2 Programmation linéaire
Programmation
Dénition
linéaire Exemples
Dénition
Exemples
Caractéristiques
Caractéristiques Simplexe
Simplexe Dualité
Dualité
Autres Autres méthodes
méthodes Outils
Outils
Nombres entiers
Programmation 3 Nombres entiers
par Contraintes
Meta-
heuristiques 4 Programmation par Contraintes
Conclusion
Dénition

Méthodes et
outils
d'optimisation
Optimisation

Introduction Techniques d'optimisation pour des problèmes


Programmation caractérisés par :
linéaire
Dénition å une fonction objectif linéaire
Exemples å soumise à des contraintes d'égalité et/ou d'inégalités
Caractéristiques linéaire
Simplexe
Dualité ⇒ modélisation par un ensemble d'équations linéaires
Autres
méthodes on peut noter que les contraintes dénissent alors un
Outils polytope convexe
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Forme canonique

Méthodes et
outils
d'optimisation
Optimisation Denition
Introduction
Programmation
linéaire
maximiser c >x
Dénition soumis à Ax ≤ b, x ≥ 0
Exemples
Caractéristiques
Simplexe
Dualité où x est un vecteur de variables, c et b des vecteurs de
Autres
méthodes coecients, et A une matrice de coecients.
Outils
Nombres entiers D'autres formes (minimisation, variables négatives, etc.)
Programmation peuvent être réecrites de manière équivalente en forme
par Contraintes
canonique.
Meta-
heuristiques
Conclusion
Exemple de l'agriculteur

Méthodes et
outils
d'optimisation
Optimisation

Introduction Un agriculteur possède un certain nombre d'hectares,


Programmation
linéaire d'engrais et d'insecticide
Dénition Possibilité de planter du maïs ou du blé
Exemples
Caractéristiques Les cultures requièrent des quantités diérentes
Simplexe d'engrais et d'insecticide
Dualité
Autres Les cultures fournissent un revenu diérent
méthodes
Outils Objectif : maximiser le revenu net
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Exemple de l'agriculteur

Méthodes et
outils
d'optimisation
Optimisation

Introduction Un agriculteur possède un certain nombre d'hectares


Programmation
linéaire (T ), d'engrais (E ) et d'insecticide (I )
Dénition Possibilité de planter du maïs (x1 ) ou du blé (x2 )
Exemples
Caractéristiques Les cultures requièrent des quantités diérentes
Simplexe d'engrais et d'insecticide (E1 ,I1 ,E2 ,I2 )
Dualité
Autres Les cultures fournissent un revenu diérent (S1 ,S2 )
méthodes
Outils Objectif : maximiser le revenu net
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Exemple de l'agriculteur

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
linéaire
Maximiser S1 x1 + S2 x2 (fonction objectif)
Dénition soumis à x1 + x2 ≤ T (limite terrain)
Exemples
Caractéristiques E1 x1 + E2 x2 ≤ E (limite engrais)
Simplexe
Dualité
I1 x1 + I2 x2 ≤ I (limite insecticide)
Autres
méthodes
x1 ≥ 0, x2 ≥ 0 (terrain positif !)
Outils
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Exemple de culture

Méthodes et
outils
d'optimisation
Optimisation
Culture de courgettes et de navets
Introduction
Programmation 8l d'engrais A disponible → 2l /m2 pour courgettes,
linéaire 1l /m2 pour navets
Dénition
Exemples 7l d'engrais B disponible → 1l /m2 pour courgettes,
Caractéristiques 2l /m2 pour navets
Simplexe
Dualité 3l anti-parasite disponible → 1l /m2 pour navets
Autres
méthodes Objectif : produire le maximum (en poids) de légumes,
Outils sachant que rendements = 4kg /m2 courgettes, 5kg /m2
Nombres entiers
navets
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Exemple de culture

Méthodes et
outils
d'optimisation
Optimisation
Variables de décision : xc (surface de courgettes), xn
Introduction (surface de navets)
Programmation
linéaire
Dénition Maximiser 4xc + 5xn (fonction objectif)
Exemples
Caractéristiques soumis à 2xc + xn ≤ 8 (limite A)
Simplexe
Dualité
xc + 2xn ≤ 7 (limite B)
Autres
méthodes
xn ≤ 3 (limite anti-parasite)
Outils xc , xn ≥ 0 (terrain positif !)
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Caractéristiques

Méthodes et
outils
d'optimisation
Optimisation
Simplex = polytope à N + 1 sommets (pour N
Introduction
dimensions)
Programmation
linéaire Caractéristiques du problème :
Dénition å chaque inégalité du PPL à n variables dénit un
demi-espace dans un espace Euclidien à n dimensions
Exemples
Caractéristiques
Simplexe å leur intersection est l'ensemble des solutions candidates
Dualité å l'ensemble des points pour lesquels la fonction objectif
Autres réalise la valeur v est un hyperplan
méthodes
Outils å la fonction objectif étant linéaire et concave sur le
Nombres entiers
polytope, elle admet un minimum sur (au moins) un de
ses sommets
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Interprétation géométrique

Méthodes et
outils
d'optimisation
Optimisation
Culture de courgettes et de navets
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Interprétation géométrique

Méthodes et
outils
d'optimisation Les lignes de niveau (f = constante) sont des droites
Optimisation parallèles
Introduction ⇒ maximum en 1 sommet ou en 1 arête
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Interprétation géométrique

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Les lignes de niveau (f = constante) sont des hyperplans
Programmation anes
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Solutions PPL

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
linéaire La région admissible peut-être :
Dénition å vide ⇒ pas de solution (optimale)
Exemples
Caractéristiques
å non vide et bornée ⇒ 1 ou ∞ solutions optimale
Simplexe å non vide et non bornée ⇒ 0 ou 1 ou ∞ solutions
Dualité optimales
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Algorithme naïf de résolution

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
linéaire Algorithme naïf : énumérer tous les sommets du
Dénition
Exemples polytope, évaluer f , prendre le minimum
Caractéristiques ⇒ nombre important de sommets ⇒ pas ecace
Simplexe
Dualité (confère complexité)
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Algorithme du Simplexe

Méthodes et
outils
d'optimisation
Optimisation
Algorithme crée par George Dantzig en 1947
Idée : à partir d'un sommet, chercher un sommet voisin
Introduction
qui améliore l'objectif
Programmation
linéaire
Dénition Denition (Principe d'amélioration locale)
Exemples
Caractéristiques
Soit x0 non optimum, alors il existe un sommet voisin x tel
Simplexe que f (x ) > f (x0 )
Dualité
Autres ⇒ Méthode de résolution itérative : on part d'un
méthodes
Outils sommet quelconque, on trouve un sommet voisin qui
Nombres entiers améliore l'objectif (règle de pivotage), on réitère
Programmation
par Contraintes
Note : on est passé d'un problème continu à un
Meta-
problème discret !
heuristiques
Conclusion
Algorithme du Simplexe - Culture

Méthodes et
outils
d'optimisation
Optimisation Illustration courgettes et navets
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Algorithme du Simplexe - étapes

Méthodes et
outils
d'optimisation
Optimisation
Necessaire de passer en forme standard : égalités
(variables d'écart)
Introduction
⇒ plus de dimensions mais manipulations algébriques
Programmation
linéaire plus simples
Dénition
Exemples
Caractéristiques Maximiser 4xc + 5xn Maximiser 4xc + 5xn
Simplexe
Dualité
soumis à 2xc + xn ≤ 8 soumis à 2xc + xn + e1 = 8
Autres
méthodes
xc + 2xn ≤ 7 xc + 2xn + e2 = 7
Outils xn ≤ 3 xn + e3 = 3
Nombres entiers
xc , xn ≥ 0 xc , xn , e1 , e2 , e3 ≥ 0
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Algorithme du Simplexe : histoire

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Application après-guerre :
Programmation å Opérations Vittles et Plainfare pour ravitaillement de la
linéaire trizone pendant le blocus de Berlin par pont aérien (23
Dénition
juin 1948  12 mai 1949)
Exemples
Caractéristiques
å Simplexe exécuté à la main (des milliers de variables),
Simplexe jusqu'à 12 000 tonnes de matériel par jour !
Dualité
Autres
1975 : prix Nobel économie Kantorovitch
méthodes
Outils
aujourd'hui : PL largement répandue à de nombreux
Nombres entiers
domaines d'application
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Problème Dual

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Soit P un problème de PL, appelé problème primal
Programmation
linéaire Il existe un problème D, appelé dual, utilisant les mêmes
Dénition
Exemples
données mais un objectif diérent (inverse)
Caractéristiques Ce problème a une illustration économique importante :
Simplexe
Dualité
si P est un problème de minimisation de coût pour un
Autres acheteur, D est un problème de maximisation du prot
méthodes
Outils
pour un vendeur tout en restant compétitif
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Exemple : Primal

Méthodes et
outils
d'optimisation
Optimisation

Introduction une famille utilise 6 produits alimentaires comme source


Programmation
linéaire de vitamine A et C
Dénition
Exemples
produits (unités/kg) demande
Caractéristiques 1 2 3 4 5 6 (unités)
Simplexe vitamine A 1 0 2 2 1 2 9
Dualité
Autres
vitamine B 0 1 3 1 3 2 19
méthodes prix/kg 35 30 60 50 27 22
Outils
Objectif : minimiser le coût total
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Exemple : Dual

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
linéaire un producteur de cachets de vitamines synthétiques veut
Dénition convaincre la famille d'acheter des vitamines
Exemples
Caractéristiques ⇒ Quel prix de vente wA et wB ?
Simplexe å pour être compétitif
Dualité å et maximiser le prot
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Exemple : Dual

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Maximiser 9wA + 19wB (fonction objectif)
Programmation soumis à wA ≤ 35 (produit 1)
linéaire
Dénition wC ≤ 30 (produit 2)
Exemples
Caractéristiques
2wA + 3wc ≤ 60 (produit 3)
Simplexe 2wA + wc ≤ 50 (produit 4)
Dualité
Autres wA + 3wc ≤ 27 (produit 5)
méthodes
Outils 2wA + 2wc ≤ 22 (produit 6)
Nombres entiers wA , wC ≥ 0 (prix positif)
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Dualité : généralisation économique

Méthodes et
outils
d'optimisation
ressource i demande j
Optimisation
produit j aij cj
coût i bi
Introduction
Programmation
linéaire
Primal (demandeur) : quelle quantité xi de ressource i
Dénition acheter pour satisfaire demande à coût minimum
Exemples
Caractéristiques
Simplexe
min bi xi s .c . aij xi ≥ cj ∀j
X X
Dualité
Autres i i
méthodes
Outils Dual (vendeur) : à quel prix wj proposer les produits
Nombres entiers pour maximiser le prot tout en restant compétitif
Programmation
par Contraintes

max cj wj s .c . aij wi ≥ bi ∀i
X X
Meta-
heuristiques
Conclusion j j
Dualité : propriétés

Méthodes et
outils Le dual du dual est équivalent au primal
d'optimisation
Théorème de dualité faible (pour prouver l'optimalité)
Optimisation
Denition
Introduction
Pour chaque paire de solutions admissibles x de P et w de D
Programmation
linéaire cx ≥ wb
Dénition
Exemples ⇒ Si le primal est non-borné, le dual est insatisable (et
Caractéristiques inversement).
Simplexe
Dualité Théorème de dualité forte (pour garantir qu'une preuve
Autres
méthodes
d'optimalité est possible)
Outils
Denition
Nombres entiers
Programmation
Si P et D ont des solutions, alors
par Contraintes cx ∗ ≥ w ∗ b
Meta-
heuristiques Ecarts complémentaires (pour trouver une solution
Conclusion optimale du dual connaissant celle du primal)
Autres méthodes

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation Améliorations du simplexe, barrières
linéaire
Dénition
Algorithme de l'ellipsoïde [Khachiyan, 1979]
Exemples Méthodes du point intérieur [Karmakar, 1984]
Caractéristiques
Simplexe Versions spéciques à un problème particulier,
Dualité combinaisons
Autres
méthodes ...
Outils
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Outils

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
linéaire Outils non-commerciaux et/ou libres : glpk, CLP,
Dénition
Exemples Cassowary, SciLab, . . .
Caractéristiques Outils commerciaux : ILOG/IBM CPLEX, MatLab (opt
Simplexe
Dualité toolbox), Mathematica, Excel, . . .
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Conclusion
Plan du cours

Méthodes et
outils
d'optimisation 1 Introduction
Optimisation

Introduction
2 Programmation linéaire
Programmation
linéaire
3 Nombres entiers
Nombres entiers
Introduction
Introduction
Modélisation Modélisation
Exemples Exemples
Techniques de
modélisation Techniques de modélisation
Branch-and-
Bound
Branch-and-Bound
Autres Autres méthodes
méthodes
Outils
Outils
Programmation
par Contraintes
Meta-
4 Programmation par Contraintes
heuristiques
Introduction

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation linéaire en nombres entiers (PLNE)
Programmation
linéaire Variables de décision discrètes (entiers, booléens)
Nombres entiers
Introduction
(contre-intuitivement ?) Pas de méthode générale
Modélisation ecace de résolution
Exemples ⇒ branch-and-bound, cutting-planes, branch-and-cut,
Techniques de
modélisation ...
Branch-and-
Bound on entre dans l'optimisation combinatoire
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Modélisation générique de l'optimisation
combinatoire
Méthodes et
outils
d'optimisation
Optimisation

Introduction Un ensemble E = {e0 , . . . , en } de solutions candidates


Programmation (espace de recherche) où ei est une assignation d'un
linéaire
Nombres entiers
ensemble de variables
Introduction E , généralement déni par des contraintes, a une
Modélisation
Exemples
cardinalité importante (ex. : n = 2m où m est déni par
Techniques de la taille du problème)
modélisation
Branch-and- objectif (maximisation) :
Bound
Autres
ei ∈ E tel que ∀j , f (ei ) >= f (ej )
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Modélisation PLNE canonique

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
Forme PLNE canonique :
linéaire
Nombres entiers
Introduction
Modélisation
maximiser c >x
Exemples soumis à Ax ≤ b x ≥0
x ∈ Zn
Techniques de
modélisation
Branch-and-
Bound
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Exemples : rangement (packing)

Méthodes et
outils
d'optimisation
Optimisation
On dispose de containers et d'éléments de tailles
Introduction diérentes à ranger dans ces containers (pour envoi)
Programmation
linéaire Objectif : trouver un arrangement pour minimiser le
Nombres entiers nombre de containers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-and-
Bound
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Exemples : rangement 1D (bin packing)

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation un déménageur souhaite empaqueter des objets en
linéaire
minimisant le nombre de cartons (de capacité C = 6)
Nombres entiers
Introduction Objectif : trouver un arrangement pour minimiser le
Modélisation nombre de cartons
Exemples
Techniques de Objets : livre (2), livre (2), pull (3), chaussettes (1),
modélisation
Branch-and-
chaussures (2), assiettes (5), verres (6)
Bound
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Exemples : rangement 1D (bin packing)

Méthodes et
outils
d'optimisation xij = 1 si l'article i est rangé dans la boîte j, 0 sinon
Optimisation yj = 1 si la boîte j est utilisée, 0 sinon
Introduction
Programmation n
linéaire
minimiser yj
X
Nombres entiers
Introduction
j =1
Modélisation n
soumis à ci xij ≤ 6yj , j = 1, . . . , n
X
Exemples
Techniques de
modélisation i =1
Branch-and- n
Bound
xij = 1, i = 1, . . . , n
X
Autres
méthodes j =1
Outils
Programmation
xij ∈ {0, 1}, yj ∈ {0, 1}
par Contraintes
Meta-
heuristiques
Exemples : sac-à-dos

Méthodes et
outils
d'optimisation
Optimisation
Remplir son sac-à-dos (max. 3kg) pour une randonnée
Introduction objet utilité poids
Programmation
linéaire carte 10 200
Nombres entiers gourde A 7 1500
Introduction gourde B 3 1500
Modélisation
Exemples
pull 6 1200
Techniques de k-way 2 500
modélisation
Branch-and-
tomme 4 800
Bound fruits secs 5 700
Autres
méthodes Objectif : maximiser l'utilité pour un poids limité
Outils
Programmation
par Contraintes
Meta-
heuristiques
Exemples : sac-à-dos

Méthodes et
outils
d'optimisation
Optimisation
xi = 1 si l'objet i est choisi, 0 sinon
Introduction ui utilité de l'objet i, wi son poids
Programmation
linéaire n
maximiser ui xi
X
Nombres entiers
Introduction
Modélisation
i =1
Exemples
n
soumis à wi xi ≤ 3
X
Techniques de
modélisation
Branch-and-
i =1
Bound xi ∈ {0, 1}
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Exemples : sac-à-dos

Méthodes et
outils
d'optimisation
Optimisation

Introduction Problème classique : utiliser au mieux une capacité,


Programmation
linéaire
allocation de ressources
Nombres entiers Nombreuses variantes (utilité diérente selon conteneur,
Introduction
Modélisation
combinaisons augmentent l'utilité, . . .)
Exemples Applications
Techniques de å nances : gestion de portefeuille
modélisation
Branch-and- å gestion de personnel pour un projet
Bound å ...
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Exemples : planication horaires (work scheduling)

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
Une chaîne de restauration rapide ouverte 7 jours sur 7 a
linéaire besoin des nombres d'employés suivants du lundi au
Nombres entiers dimanche : 45, 45, 40, 50, 65, 35, 35. Chaque employé
Introduction
Modélisation
travaille au maximum 1 jour de n de semaine et 4 jours
Exemples dans la semaine
Techniques de
modélisation Objectif : déterminer le nombre minimum d'employés
Branch-and-
Bound
nécessaires et leur aectation.
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Exemples : planication horaires (work scheduling)

Méthodes et
outils Xi = 1 si on recrute l'employé i (i ∈ [1, n] avec n
d'optimisation susamment grand)
Optimisation Yij = 1 si l'employé i travaille le jour j (j ∈ [1, 7])
Introduction Soit Bj le besoin par jour
Programmation n
linéaire
minimiser Xi
X
Nombres entiers
Introduction i =1
Modélisation n
soumis à Yij >= Bj , ∀j
X
Exemples
Techniques de
modélisation i =1
Branch-and- 5
Bound
Yij ≤ 4 ∗ Xi , ∀i
X
Autres
méthodes j =1
Outils
7
Programmation
Yij ≤ 1 ∗ Xi , ∀i
X
par Contraintes
Meta- j =6
heuristiques
X ∈ {0, 1}, Y ∈ {0, 1}
Exemples : planication horaires (work scheduling)

Méthodes et
outils
d'optimisation Xij ∈ Zn : nombre d'employés ne travaillant pas les jours
Optimisation i et j (i ∈ [1, 5], j ∈ [6, 7])
Introduction
Soit Bj le besoin par jour
Programmation
linéaire 5 X
7
Nombres entiers
minimiser Xij
X
Introduction
Modélisation i =1 j =6
Exemples
soumis à Xij >= Bk , ∀k ∈ [1, 5]
XX
Techniques de
modélisation i !=k j
Branch-and-
Xij >= Bk , ∀k ∈ [6, 7]
XX
Bound
Autres
méthodes i j !=k
Outils
Xi j >= 0
Programmation
par Contraintes
Meta-
heuristiques
Exemples : séparation d'un stock (cutting-stock)

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
linéaire
On dispose de rouleaux de tissu d'une certaine longueur
Nombres entiers On souhaite les couper pour obtenir des bandes de
Introduction longueurs diérentes données
Modélisation
Exemples Objectif : minimiser le nombre de rouleaux à acheter
Techniques de
modélisation Généralisation du bin packing
Branch-and-
Bound
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Exemples : séparation d'un stock (cutting-stock)

Méthodes et
outils
d'optimisation j = {0, . . . , m} commandes, avec j requiert quantité qj
Optimisation de pièces de tissu
i = {0, . . . , n} combinaisons de découpe, avec xi le
Introduction
Programmation
nombre de fois où elle est utilisée, et ci son coût (déchet)
linéaire
aij le nombre de fois où la commande j apparait dans la
Nombres entiers
Introduction
combinaison i
Modélisation n
Exemples
minimiser ci xi
X
Techniques de
modélisation i =1
Branch-and- n
Bound
soumis à xi aij ≥ qj ∀j = 1, . . . , m
X
Autres
méthodes
i =1
Outils
Programmation
xi , aij , qj ∈ Z, xi ≥ 0
par Contraintes
Meta-
heuristiques
Exemple : Illustration cutting-stock

Méthodes et
outils
d'optimisation une machine peut produire des pièces maîtres de
Optimisation 5600mm de largeur
Introduction les commandes sont les suivantes :
Programmation
linéaire
largeur quantité
Nombres entiers 1380 22
Introduction 1520 25
Modélisation
Exemples
1560 12
Techniques de 1710 14
modélisation
Branch-and-
1820 18
Bound 1880 18
Autres
méthodes 1930 20
Outils 2000 10
Programmation
par Contraintes
2050 12
Meta-
... ...
heuristiques
Exemples : séparation d'un stock (cutting-stock)

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
Diérentes modélisations selon données/objectifs
linéaire (nombre de pièces maîtres, changements d'outil de
Nombres entiers découpe, . . .)
Introduction
Modélisation diverses applications
Exemples å 1D : découpe de cables, matériaux
Techniques de
modélisation å 2D : découpe de verre, tissu
Branch-and- å liens avec d'autres problèmes types
Bound
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Techniques de modélisation : ensembles discrets

Méthodes et
outils
d'optimisation
Optimisation x doit prendre sa valeur parmi P = {p1 , . . . , pk }
Introduction
⇒ yi ∈ {0, 1}, 1 pour x = pi
Programmation
linéaire
Nombres entiers
k
yi = 1
X
Introduction
Modélisation i =1
Exemples
Techniques de
k
x= pi yi
X
modélisation
Branch-and-
Bound i =1
Autres
méthodes
xi ∈ {0, 1}
Outils
Programmation
par Contraintes
Meta-
heuristiques
Techniques de modélisation : propositions logiques

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
linéaire
Nombres entiers
x et y deux variables booléennes
Introduction x ⇒ y : contrainte : x ≤ y
Modélisation
Exemples x ∨ y : contrainte : x + y ≥ 1
Techniques de
modélisation
Branch-and-
Bound
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Techniques de modélisation : ordonnancement

Méthodes et
outils
d'optimisation
Optimisation
Deux tâches de durée di et dj doivent être usinées sur
Introduction une même ressource
Programmation
linéaire ti et tj le temps de départ d'usinage
Nombres entiers
Introduction
Modélisation
Exemples
ti + di ≤ tj + M (1 − yij )
Techniques de
modélisation
tj + dj ≤ ti + M (yij )
Branch-and-
Bound
yij ∈ {0, 1}
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Techniques de modélisation : linéarisation

Méthodes et
outils
d'optimisation
Optimisation
linéariser un terme quadratique simple
Introduction
ex. xx 0 avec x , x 0 ∈ {0, 1}
Programmation
linéaire introduit une variable y, y = 1 ssi x = 1 et x 0 = 1
Nombres entiers
Introduction x ≤y
Modélisation
Exemples x0 ≤ y
Techniques de
modélisation x + x0 − 1 ≤ y
Branch-and-
Bound yij ∈ {0, 1}
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Relaxation linéaire

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Idée : peut-on résoudre un PLNE X en résolvant le PL
Programmation
associé ?
linéaire
⇒ relaxation linéaire denit un polyèdre
P = {X ∈ Rn |Ax ≤ b}
Nombres entiers
Introduction
Modélisation
Exemples Denition
Techniques de
modélisation Un PL P est une formulation de X ssi X = P ∩ Zn
Branch-and-
Bound Question : quel lien entre l'optimum du PL et l'optimum
Autres
méthodes
du PLNE ?
Outils
Programmation
par Contraintes
Meta-
heuristiques
Relaxation linéaire : illustration

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-and-
Bound
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Relaxation linéaire : illustration

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-and-
Bound
Autres
méthodes
⇒ peu d'indications, on ne peut pas simplement
Outils
Programmation
résoudre le PL associé
par Contraintes
Meta-
heuristiques
Méthodes énumératives

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Idée : énumérer les solutions possibles (nombre ni), les
Programmation
linéaire évaluer, conserver la meilleure
Nombres entiers Problème : ce nombre peut être très important (car
Introduction
Modélisation
exponentiel) ⇒ pas ecace
Exemples C'est le challenge de l'optimisation combinatoire !
Techniques de
modélisation Eliminer a priori des solutions, sans les évaluer
Branch-and-
Bound explicitement
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Branch-and-Bound : principe

Méthodes et
outils
d'optimisation
Optimisation
On veut résoudre z ∗ = {max cx |x ∈ X }
Introduction
Partitionne X en (X1 , X2 )
Programmation
linéaire Alors z ∗ = max {z1∗ , z2∗ }
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-and-
Bound
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Branch-and-Bound : principe

Méthodes et
outils
d'optimisation
Optimisation
Si z1∗ > z2∗ , alors il est inutile d'explorer X2 car il ne
contient pas de solution optimale
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-and-
Bound
Autres Comment déterminer de ne pas explorer X2 sans calculer
méthodes
Outils
z2∗ ?
Programmation ⇒ estimation (par excès) de z2∗ : borne supérieure
par Contraintes
Meta-
heuristiques
Propriété de la relaxation linéaire

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Soit un problème de maximisation, son PLNE IP, sa
Programmation
linéaire relaxation linéaire L et leurs optimums respectifs ZIP
∗ et

Nombres entiers ZL∗


Introduction
Modélisation
La propriété suivante est vériée :
Exemples å ZIP

≤ ZL∗
Techniques de
modélisation
å ⇒ Si ZL∗ est un entier, c'est l'optimum du PLNE
Branch-and-
Bound
⇒ le PL fournit une borne supérieure au PLNE !
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Branch-and-Bound : principe

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
On partitionne l'ensemble X en {X1 , . . . , Xn }
linéaire
On calcule les bornes supérieures B (Xi ) de l'optimum
Nombres entiers
Introduction
pour chaque Xi
Modélisation Si B (Xi ) ≤ meilleure solution trouvée, on élague
Exemples
Techniques de Sinon on découpe récursivement Xi
modélisation
Branch-and- ⇒ arbre de recherche implicite
Bound
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Branch-and-Bound : découpe

Méthodes et
outils
d'optimisation
Optimisation Résolution de la RL sur X (P)
Introduction
si x ∗ non entier, on branche sur une variable non entière
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-and-
Bound
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Branch-and-Bound : découpe

Méthodes et
outils
d'optimisation
X1 = x ∈ X et xi ≤ a
Optimisation
X2 = x ∈ X et xi ≥ a + 1
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-and-
Bound
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Branch-and-Bound : découpe

Méthodes et
outils Recherche de la meilleure solution sur X2
d'optimisation RL sur X2 (P2 ), découpe, RL sur X21 (P3 ) et X22 (P4 )
Optimisation

Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-and-
Bound
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Branch-and-Bound : découpe

Méthodes et
outils Recherche de la meilleure solution sur X1
d'optimisation RL sur X1 (P1 ), découpe, RL sur X11 (P5 ) et X12 (P6 )
Optimisation

Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-and-
Bound
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Branch-and-Bound : découpe

Méthodes et
outils
d'optimisation
x ∗ = max (x1∗ , x2∗ )
Optimisation

Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-and-
Bound
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Branch-and-Bound : élaguage

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
linéaire On élague une branche si :
Nombres entiers å La RL n'a pas de solution (discard)
Introduction å La RL a une solution entière (optimum)
Modélisation
å La borne sup. est inférieure à la meilleure solution
Exemples
Techniques de actuelle (discard)
modélisation
Branch-and-
Bound
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Branch-and-Bound : exemple

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
linéaire maximiser z = 2x1 + 3x2
Nombres entiers soumis à 5x1 + 7x2 ≤ 35
Introduction
Modélisation 4x1 + 9x2 ≤ 36
Exemples
Techniques de x1 , x2 ≥ 0 ∈ Z
modélisation
Branch-and-
Bound
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Branch-and-Bound : exemple

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation maximiser z = 2x1 + 3x2
Exemples
Techniques de soumis à 5x1 + 7x2 ≤ 35
modélisation
Branch-and- 4x1 + 9x2 ≤ 36
Bound
Autres x1 , x2 ≥ 0 ∈ Z
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Autres méthodes

Méthodes et
outils
d'optimisation
Optimisation

Introduction Améliorations (choix des partitions, ordre de résolution,


Programmation
linéaire . . .)
Nombres entiers Coupes (cuts), plans sécants (cutting-planes)
Introduction
Modélisation Contraintes redondantes (symmétries)
Exemples Méthodes mixtes (branch-and-cut)
Techniques de
modélisation Versions spéciques à un problème particulier
Branch-and-
Bound ...
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Outils

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
linéaire Outils non-commerciaux et/ou libres : glpk, LP_SOLVE,
Nombres entiers SciLab, . . .
Introduction
Modélisation Outils commerciaux : ILOG/IBM CPLEX, MatLab (opt
Exemples
Techniques de
toolbox), Mathematica, Excel, . . .
modélisation
Branch-and-
Bound
Autres
méthodes
Outils
Programmation
par Contraintes
Meta-
heuristiques
Plan du cours

Méthodes et
outils
d'optimisation 1 Introduction
Optimisation

Introduction
2 Programmation linéaire
Programmation
linéaire
3 Nombres entiers
Nombres entiers
Programmation
par Contraintes 4 Programmation par Contraintes
Introduction
Modélisation
Introduction
Exemples Modélisation
Résolution Exemples
Outils
Meta-
Résolution
heuristiques Outils
Conclusion
Biblio
5 Meta-heuristiques
Introduction

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation Programmation par contraintes = méthode de
linéaire
modélisation et de résolution
Nombres entiers
Programmation
Variables de décision et leur domaine
par Contraintes
Introduction
Contraintes de diérents types, faciles à vérier
Modélisation indépendamment, liberté de modélisation
Exemples
Résolution
Méthodes de résolution énumératives
Outils
Meta-
heuristiques
Conclusion
Biblio
Du Sudoku à la PPC

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-
heuristiques
Conclusion
Biblio
Principes de la PPC

Méthodes et
outils
d'optimisation
Optimisation Raisonnement par élimination : on ne cherche pas
Introduction
directement la valeur d'une variable mais ses valeurs
Programmation possibles (réduction du domaine)
linéaire
Raisonnement énumératif : on essaie diérentes
Nombres entiers
Programmation
solutions par étapes successives de construction (arbre
par Contraintes de recherche)
Introduction
Modélisation Raisonnement local : on considère les contraintes
Exemples indépendamment
Résolution
Outils Raisonnement par propagation : lorsque le domaine
Meta- d'une variable change, on s'intéresse aux contraintes qui
heuristiques
dépendent cette variable (propagation)
Conclusion
Biblio
Modélisation générique de l'optimisation
combinatoire
Méthodes et
outils
d'optimisation
Optimisation

Introduction Un ensemble E = {e0 , . . . , en } de solutions candidates


Programmation (espace de recherche) où ei est une assignation d'un
linéaire
Nombres entiers
ensemble de variables
Programmation E , généralement déni par des contraintes, a une
par Contraintes
Introduction
cardinalité importante (ex. : n = 2m où m est déni par
Modélisation la taille du problème)
Exemples
Résolution
objectif (maximisation) :
Outils ei ∈ E tel que ∀j , f (ei ) >= f (ej )
Meta-
heuristiques
Conclusion
Biblio
Modélisation SAT

Méthodes et
outils
d'optimisation
Optimisation
Un problème SAT est un doublet {X , C } où :
Introduction
X est un ensemble de variables booléennes (littéraux)
Programmation
linéaire {x0 , . . . , xn }
Nombres entiers C est un ensemble de contraintes sous la forme CNF
Programmation
par Contraintes
(forme normale conjonctive)
Introduction å CNF = conjonction de clauses
Modélisation å clause = disjonction de littéraux
Exemples
Résolution Dans un problème d'optimisation, on ajoute une
Outils fonction objectif f (ei ) où ei est une solution candidate
Meta-
heuristiques
(i.e. une assignation d'une valeur à chaque variable)
Conclusion
Biblio
Modélisation SAT : exemple

Méthodes et
outils
d'optimisation
Optimisation
Ringo Etoile, musicien londonien, appelle Scotland Yard
Introduction pour signaler que son appartement vient d'être
Programmation cambriolé. La police a établi les faits suivants :
linéaire
å Il y a trois suspects : John, Paul et Georges, et personne
Nombres entiers
d'autre ne peut être coupable
Programmation
par Contraintes å Si John est coupable, alors il a un et un seul complice
Introduction å Si Paul est innocent alors Georges l'est aussi
Modélisation å Si Georges est innocent alors Paul l'est aussi
Exemples
å Si il y a exactement deux coupables, alors John est l'un
Résolution
Outils d'entre eux
Meta- Modélisez puis dessinez l'arbre de recherche
heuristiques
Conclusion
Biblio
Modélisation SAT : exemple

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation X = {J,P,G}
linéaire
C = (à mettre sous forme CNF)
Nombres entiers
å J ∨P ∨G
å J ⇒ ((P ∧ ¬G ) ∨ (G ∧ ¬P ))
Programmation
par Contraintes
Introduction å ¬P ⇒ ¬G
Modélisation å ¬G ⇒ ¬P
Exemples
å ((J ∧ P ∧ ¬G ) ∨ (J ∧ ¬P ∧ G ) ∨ (¬J ∧ P ∧ G )) ⇒ J
Résolution
Outils
Meta-
heuristiques
Conclusion
Biblio
Modélisation CSP

Méthodes et
outils
d'optimisation
Optimisation
Un problème CSP est un triplet {X , D , C } où :
Introduction X est un ensemble de variables {x0 , . . . , xn }
Programmation
linéaire D = {d0 , . . . , dn } est un ensemble de domaines de
Nombres entiers valeurs (discrets ou continus) correspondant aux
Programmation
par Contraintes
variables de X
Introduction C est un ensemble de contraintes (logiques,
Modélisation
Exemples
mathématiques, etc.)
Résolution Dans un problème d'optimisation, on ajoute une
Outils
fonction objectif f (ei ) où ei est une solution candidate
Meta-
heuristiques (i.e. une assignation d'une valeur à chaque variable)
Conclusion
Biblio
Modélisation CSP : exemple

Méthodes et
outils
d'optimisation
Optimisation

Introduction On considère l'addition suivante :


Programmation
S E N D
linéaire + M O R E
Nombres entiers = M O N E Y
Programmation
par Contraintes où chaque lettre représente un chire diérent compris entre
Introduction 0 et 9.
Modélisation
Exemples
On souhaite connaitre la valeur de chaque lettre, sachant que
Résolution la première lettre de chaque mot représente forcément un
Outils chire diérent de 0.
Meta-
heuristiques
Conclusion
Biblio
Modélisation CSP : exemple

Méthodes et
outils
d'optimisation
Optimisation
Modélisation A (horizontale) :
Introduction
Programmation X = {S , E , N , D , M , O , R , Y }
linéaire
Nombres entiers
D (S ) = D (M ) = {1, 2, 3, 4, 5, 6, 7, 8, 9}
Programmation D (E ) = D (N ) = D (D ) = D (O ) = D (R ) = D (Y ) =
par Contraintes
Introduction
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
Modélisation C 1 : 1000 ∗ S + 100 ∗ E + 10 ∗ N + D + 1000 ∗ M + 100 ∗ O +
Exemples
Résolution
10 ∗ R + E = 10000 ∗ M + 1000 ∗ O + 100 ∗ N + 10 ∗ E + Y
Outils C 2 : all − dierent ({S , E , N , D , M , O , R , Y })
Meta-
heuristiques
Conclusion
Biblio
Modélisation CSP : exemple

Méthodes et
outils
d'optimisation
Optimisation Modélisation B (verticale) :
Introduction
X = {S , E , N , D , M , O , R , Y }
Programmation D (S ) = D (M ) = {1, 2, 3, 4, 5, 6, 7, 8, 9}
linéaire
Nombres entiers D (E ) = D (N ) = D (D ) = D (O ) = D (R ) = D (Y ) =
Programmation {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
par Contraintes
Introduction C 1 : D + E = Y + 10 ∗ R1
Modélisation C 2 : R1 + N + R = E + 10 ∗ R2
Exemples
Résolution C 3 : R2 + E + O = N + 10 ∗ R3
Outils
Meta-
C 4 : R3 + S + M = O + 10 ∗ M
heuristiques C 5 : all − dierent ({S , E , N , D , M , O , R , Y })
Conclusion
Biblio
Types de contraintes

Méthodes et
outils
d'optimisation
Optimisation Contraintes par extension (liste des valeurs possibles) ou
par intention (formule logique ou mathématique)
Introduction
Programmation l'ordre n'a pas d'importance
linéaire
Nombres entiers
Déclaratives (pas d'algorithme de vérication), non
Programmation
dirigées (x − 2y = z), pas restreintes à une forme
par Contraintes particulière (i.e. linéaire)
Introduction
Modélisation Arité d'une contrainte = nombre de variables impliquées
Exemples (x 2 = 4, est − pair (x ), x 6= y)
Résolution
Outils Contraintes globales (toutes − dierentes (E ))
Meta-
heuristiques
Contraintes quanticatives, existentielles pour des
Conclusion problèmes avancés
Biblio
Jeu des reines

Méthodes et
outils
d'optimisation
Optimisation

Introduction But : Placer 4 reines sur un échiquier 4x4 sans qu'elles se


Programmation menacent.
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction Modélisation ?
Modélisation
Exemples
Résolution
Outils
Meta-
heuristiques
Conclusion
Biblio
Jeu des reines : modélisation A

Méthodes et
outils
d'optimisation But : Placer 4 reines sur un échiquier 4x4 sans qu'elles se
Optimisation menacent.
Introduction
Variables : Associe à chaque reine i sa
Programmation
position en lignes (L = ∪i =1..4 Li ) et en
linéaire colonnes (C = ∪i =1..4 Ci ) ⇒ X = L ∪ C )
Nombres entiers
Programmation
Domaines :
par Contraintes ∀i ∈ {1, 2, 3, 4}DLi = DCi = {1, 2, 3, 4}
Introduction
Modélisation Contraintes :
Exemples CoL = {∀i , j ∈ {1, 2, 3, 4}, i 6= j , Li 6= Lj }
Résolution
Outils
CoC = {∀i , j ∈ {1, 2, 3, 4}, i 6= j , Ci 6= Cj }
Meta-
CoD M = {∀i , j ∈ {1, 2, 3, 4}, i 6= j , Ci + Li 6=
heuristiques Cj + Lj }
Conclusion CoD D = {∀i , j ∈ {1, 2, 3, 4}, i 6= j , Ci − Li 6=
Biblio Cj − Lj }
Jeu des reines : modélisation B

Méthodes et
outils
d'optimisation
Optimisation
But : Placer 4 reines sur un échiquier 4x4 sans qu'elles se
menacent.
Introduction
Variables : On place une reine par colonne,
Programmation
linéaire donc on associe à une reine i sa position en
Nombres entiers lignes ⇒ X = {X1 , X2 , X3 , X4 })
Programmation
par Contraintes Domaines : ∀i ∈ {1, 2, 3, 4}DXi = {1, 2, 3, 4}
Introduction
Modélisation
Contraintes :
Exemples CoL = {∀i , j ∈ {1, 2, 3, 4}, i 6= j , Xi 6= Xj }
Résolution CoD M = {∀i , j ∈ {1, 2, 3, 4}, i 6= j , Xi + i 6=
Outils
Xj + j }
Meta-
heuristiques CoD D = {∀i , j ∈ {1, 2, 3, 4}, i 6= j , Xi − i 6=
Conclusion Xj − j }
Biblio
Jeu des reines : modélisation C

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
linéaire
But : Placer 4 reines sur un échiquier 4x4 sans qu'elles se
Nombres entiers menacent.
Programmation
par Contraintes
Variables : Une variable par case à domaine
Introduction Booleen
Modélisation
Exemples
⇒ modélisation SAT
Résolution
Outils
Meta-
heuristiques
Conclusion
Biblio
Jeu des reines : plusieurs modélisations

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
linéaire Il existe (toujours) plusieurs modélisations, laquelle est la
Nombres entiers meilleure ?
Programmation å Celle qui correspond le mieux à la réalité
par Contraintes
Introduction
å La plus intuitive, la plus simple à trouver
Modélisation å La plus ecace (voir résolution)
Exemples
Résolution
Outils
Meta-
heuristiques
Conclusion
Biblio
Coloriage de cartes

Méthodes et
outils
d'optimisation
Optimisation But : Colorier une carte sans que deux pays contigus aient la
Introduction même couleur.
Programmation Applications : allocation de ressources, emploi du temps,
linéaire
ordonnancement, . . .
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples Modélisation ?
Résolution
Outils
Meta-
heuristiques
Conclusion
Biblio
Coloriage de cartes

Méthodes et
outils
d'optimisation
Optimisation But : Colorier une carte sans que deux régions contigues aient
Introduction la même couleur.
Programmation Applications : allocation de ressources, emploi du temps,
linéaire
ordonnancement, . . .
Nombres entiers
Programmation Variables : une variable Xi pour chaque
par Contraintes
Introduction région
Modélisation Domaines :
Exemples
Résolution Di = {bleu , jaune , rouge , vert }
Outils Contraintes : en extension, ou,
Meta-
heuristiques ∀i , j tq voisines (i , j ), Xi 6= Xj
Conclusion
Biblio
Résolution naïve

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
linéaire Méthode naïve :
Nombres entiers
å on énumére les aectations totales
Programmation å on vérie si elles sont consistantes
par Contraintes
Introduction ⇒ pas ecace !
Modélisation
Exemples
Résolution
Outils
Meta-
heuristiques
Conclusion
Biblio
Résolution par étapes

Méthodes et
outils
d'optimisation
Optimisation
Construire une aectation totale par incrémentation
Introduction
d'aectations partielles (arbre de recherche)
Programmation
linéaire Revenir en arrière si une aectation partielle est
Nombres entiers inconsistante (backtrack)
Programmation
par Contraintes Restreindre les domaines des variables à chaque étape
Introduction (anticipation par propagation locale des contraintes)
Modélisation
Exemples utiliser des heuristiques
Résolution
Outils utiliser connaissances sur le problème (symétries, . . .)
Meta- ...
heuristiques
Conclusion
Biblio
Arbre et backtrack : exemple des reines

Méthodes et
outils
d'optimisation
Construire une aectation totale par incrémentation
Optimisation
d'aectations partielles (arbre de recherche)
Revenir en arrière si une aectation partielle est
Introduction
inconsistante (backtrack)
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-
heuristiques
Conclusion
Biblio
Anticipation

Méthodes et
outils
d'optimisation
Restreindre les domaines des variables à chaque étape
Optimisation
(anticipation/ltrage par propagation locale des
contraintes)
Introduction De manière générale, ltre consiste à modier le
Programmation
linéaire
domaines des variables non aectées en fonction de
Nombres entiers
l'aectation partielle (A) courante
Programmation
å consistance de noeud (ou 1-consistance) : on enlève de
par Contraintes D (Xi ) toute valeur v telle que A ∪ (Xi , v ) est
Introduction inconsistante
Modélisation
å consistance d'arc (ou 2-consistance) : on enlève de
Exemples
Résolution D (Xi ) toute valeur v telle que qu'il existe une variable
Outils Xj dont toutes les valeurs donnent A ∪ (Xi , v ) ∪ (Xj , w )
Meta- inconsistante
heuristiques å consistance de chemin (ou 3-consistance)
Conclusion å ...
Biblio å Si il reste k variables à aecter, à quoi correspond la
k − consistance ?
Anticipation : exemple des reines

Méthodes et
outils Restreindre les domaines des variables à chaque étape
d'optimisation
(anticipation/ltrage par propagation locale des
Optimisation
contraintes)
Introduction 1-consistance
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-
heuristiques
Conclusion
Biblio
Anticipation : exemple des reines

Méthodes et
outils
d'optimisation
Optimisation Restreindre les domaines des variables à chaque étape
Introduction (anticipation/ltrage par propagation locale des
Programmation contraintes)
linéaire
Nombres entiers
2-consistance
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-
heuristiques
Conclusion
Biblio
Heuristiques

Méthodes et
outils
d'optimisation
Optimisation
Utiliser des heuristiques = parcourir l'arbre dans un
Introduction ordre préférentiel
Programmation
linéaire Préférence non systématique (sinon le problème est
Nombres entiers linéaire !), mais très ecace
Programmation
par Contraintes Types :
Introduction å Heuristiques de variables (min-domain, max-constraints)
Modélisation å Heuristiques de valeurs
Exemples
Résolution Création de l'ordre :
Outils å statique (une fois pour toutes au départ)
Meta- å dynamique (à chaque étape)
heuristiques
Conclusion
Biblio
Connaissances des symétries

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
linéaire
Nombres entiers Utiliser connaissances sur le problème : symétries
Programmation å manuel durant la modélisation
par Contraintes å automatique durant la recherche
Introduction
Modélisation
Exemples
Résolution
Outils
Meta-
heuristiques
Conclusion
Biblio
Variantes

Méthodes et
outils
d'optimisation
Optimisation

Introduction MAX-CSP : satisfaire un maximum de contraintes


Programmation
linéaire VCSP : valuation sur les contraintes, maximiser
Nombres entiers
Conditional CSP : contraintes activées sur certaines
Programmation
par Contraintes conditions
Introduction
Modélisation
Dynamic CSP : ajout dynamique de variables au cours
Exemples de la recherche
Résolution
Outils
...
Meta-
heuristiques
Conclusion
Biblio
Outils

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
linéaire Outils non-commerciaux et/ou libres : Comet, Gecode,
Nombres entiers Choco, Cassowary, GNU Prolog, SWI Prolog, ECLiPSe
Programmation (Prolog), Alloy (R-SAT), . . .
par Contraintes
Introduction Outils commerciaux : ILOG/IBM CPLEX, CHARME,
Modélisation CHIP v5, . . .
Exemples
Résolution
Outils
Meta-
heuristiques
Conclusion
Biblio
Plan du cours

Méthodes et
outils
d'optimisation 1 Introduction
Optimisation

Introduction
2 Programmation linéaire
Programmation
linéaire
3 Nombres entiers
Nombres entiers
Programmation
par Contraintes 4 Programmation par Contraintes
Meta-
heuristiques
Introduction 5 Meta-heuristiques
Recuit simulé
PSO
Introduction
ACO Recuit simulé
Génétique PSO
Caractéristiques
Autres ACO
méthodes Génétique
Outils
Conclusion
Caractéristiques
Introduction aux méthodes incomplètes

Méthodes et
outils
d'optimisation
Optimisation

Introduction Constat : pour de nombreux problèmes (taille), aucune


Programmation technique vue precédemment n'est ecace
linéaire
Nombres entiers Les techniques étudiées sont complètes (ou exactes) : si
Programmation elles ne fournissent pas de solution, la solution n'existe
par Contraintes
pas
Meta-
heuristiques Idée : peut-on trouver des méthodes incomplètes qui
Introduction
Recuit simulé
soient ecaces dans certains cas ?
PSO Parmis ces méthodes, on trouve les méta-heuristiques
ACO
Génétique
Caractéristiques
Autres
méthodes
Outils
Conclusion
Introduction aux méta-heuristiques

Méthodes et
outils
d'optimisation Principe : on va parcourir partiellement l'espace de
Optimisation recherche, avec des heuristiques plus complexes
Introduction Plusieurs manières de parcourir partiellement :
Programmation å sauter d'une aectation totale à une autre (réparation
linéaire locale)
Nombres entiers å repartir de la racine en ayant emmagasiné de la
Programmation connaissance
par Contraintes
å ...
Meta-
heuristiques Toutes ces méthodes se reposent sur des techniques
Introduction
Recuit simulé aléatoires (ou stochastiques)
PSO La plupart de ces méthodes sont inspirées du monde réel
ACO
Génétique (nature et notamment animaux) et de l'intelligence
Caractéristiques collective
Autres
méthodes Nous n'en verrons qu'une toute petite partie
Outils
Conclusion
Recuit simulé

Méthodes et
outils
d'optimisation Le recuit simulé est une méthode inspirée de la
Optimisation metallurgie
Introduction Energie E du système = Fonction à minimiser
Programmation
linéaire
Temperature T = paramètre contrôlant la diversication
Nombres entiers Determine conditions initiales : E0 et T0 (aléatoirement
Programmation élevée)
par Contraintes
Meta-
A chaque étape :
heuristiques å Modie solution courante et évalue la variation
Introduction d'énergie ∆E
Recuit simulé
Si ∆E < 0, elle est appliquée
PSO ∆E
ACO Sinon, elle est appliquée avec une probabilité de e− T
Génétique (règle de Metropolis)
Caractéristiques
å Modication de la température : par paliers ou par une
Autres
méthodes loi de décroissance (Ti +1 = λTi avec λ < 1)
Outils
Conclusion
Particle Swarm Optimization

Méthodes et
outils
d'optimisation
PSO = Particle Swarm Optimization
Optimisation un essaim de particule se déplace dans un espace à n
dimensions (n = nombre de variables)
Introduction
Programmation
Une particule est caractérisée par sa position (xi ) et sa
linéaire vitesse (vi )
Nombres entiers
Initialise chaque particule pseudo-aléatoirement
Programmation
par Contraintes (distribution uniforme)
Meta-
heuristiques
à chaque étape, chaque particule se déplace
Introduction (modication du vecteur vitesse et application à la
Recuit simulé position) en fonction de 3 critères :
PSO å son meilleur score (pi )
ACO
å le meilleur score de toutes les particules (g )
Génétique
Caractéristiques å facteur aléatoire
Autres
méthodes vi = ω vi + σp rp (pi − xi ) + σg rg (g − xi ) où ω , σp , σg
Outils sont des paramètres globaux
Conclusion
PSO : exemple 2D

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Meta-
heuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques Applications courantes : choix ou adéquation de
Autres
méthodes paramètres
Outils
Conclusion
PSO : exemple 2D

Méthodes et
outils
d'optimisation
Optimisation

Introduction Local best Random factor


Programmation
linéaire
Nombres entiers Global best
Programmation
par Contraintes
Meta-
heuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques Applications courantes : choix ou adéquation de
Autres
méthodes paramètres
Outils
Conclusion
Ant Colony Optimization

Méthodes et
outils ACO = Ant Colony Optimization
d'optimisation Algorithme inspiré de l'observation des colonies de
Optimisation fourmis : capacité à trouver le chemin le plus court vers
Introduction une source de nourriture
Programmation Première application algorithmique [Dorigo] : recherche
linéaire
du plus court chemin dans un graphe aux arêtes
Nombres entiers
pondérées
Programmation
par Contraintes Etendu depuis à divers problèmes d'optimisation,
Meta- notamment les problèmes de satisfaction de contraintes
heuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques ???
20%
Autres
méthodes
Outils
Conclusion 80%
Ant Colony Optimization : PPC

Méthodes et
outils
d'optimisation
A chaque tour, un certain nombre de fourmis articielles
Optimisation
parcourent l'espace de recherche an de construire une
solution (par exemple, un graphe)
Introduction Le trajet d'une FA (ici un choix xy) est inuencé par :
Programmation
linéaire å une heuristique (ηxy
β
)
Nombres entiers å les phéromones déposées par toutes les FA (τxy
α
)
Programmation
å facteur aléatoire (α, β )
par Contraintes
k =
pxy
α ∗η β
τxy xy
Meta- P α β
heuristiques z τxz ∗ηxz
Introduction Après évaluation de la solution, chaque FA dépose des
Recuit simulé
PSO
phéromones sur son trajet en fonction de la qualité de la
ACO solution (∆τxyk)
Génétique
Caractéristiques
Les phéromones s'évaporent (ρ) au cours du temps an
Autres d'oublier les mauvaises solutions
méthodes
τxy = (1 − ρ)τxy + ∆τxyk
Outils
Conclusion
Algorithmes génétiques

Méthodes et
outils
d'optimisation Les algorithmes génétiques sont inspirés de la sélection
Optimisation naturelle
Introduction Opérations (sélections, enjambements/croisements,
Programmation mutations) appliquées à une population de solutions
linéaire
Nombres entiers
candidates
Programmation Principe : génération d'une population initiale
par Contraintes (aléatoirement), puis, itérativement :
Meta- å Evaluation puis selection (diérentes méthodes) des
heuristiques
Introduction meilleurs individus
Recuit simulé å Croisements (diérentes possibilités) par paires
PSO å Mutations sur une faible partie de la population
ACO
résultante
Génétique
Caractéristiques Comment représenter les solutions sous forme de gênes
Autres
méthodes (i.e séquence de valeurs) ? ⇒ importance du codage
Outils
Conclusion
Algorithmes génétiques : étapes

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
linéaire
Nombres entiers Selection : rang, roulette,
Programmation tournoi, uniforme
par Contraintes
Meta-
Croisements : place de
heuristiques l'enjambement
Introduction
Recuit simulé Mutations : i.e.
PSO permutations
ACO
Génétique
Caractéristiques
Autres
méthodes
Outils
Conclusion
Algorithmes génétiques : exemple du VC

Méthodes et
outils
d'optimisation
Optimisation

Introduction Exemple du voyageur de commerce


Programmation
linéaire
Codage : un entier par ville, séquence : suite ordonnée
Nombres entiers
de villes visités
Programmation
å S1 = 1 0 5 3 2 7 4 6
par Contraintes å S2 = 7 1 3 5 6 2 0 4
Meta- å Croisements :
heuristiques
S10 = 1 0 5 3 2 7 6 4
Introduction
Recuit simulé
S20 = 7 1 3 5 6 0 4 2
PSO å Mutation (par permutation) : S100 = 1 0 7 3 2 5 6 4
ACO
Génétique
Caractéristiques
Autres
méthodes
Outils
Conclusion
Caractéristiques des meta-heuristiques

Méthodes et
outils
d'optimisation
Optimisation
Optimum global n'est pas garanti : il ne doit donc pas
être requis
Introduction
Présence de nombreux paramètres : phases de tests
Programmation
linéaire nécessaires
Nombres entiers Contrôle des facteurs d'exploration (ou diversication),
Programmation
par Contraintes d'intensication, d'aprentissage
Meta-
heuristiques
Importance du choix de modélisation : liberté relative,
Introduction fonction objectif simple à calculer
Recuit simulé
PSO
Robustesse face aux problèmes stochastiques (données
ACO incertaines)
Génétique
Caractéristiques
Diverses preuves de convergence ont été fournies sous
Autres certaines conditions
méthodes
Outils
Conclusion
Autres méthodes

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation Réseaux de neurones (classication)
linéaire
Autres réparations locales : recherche tabou
Nombres entiers
Programmation Nombreuses variantes des méthodes présentées
par Contraintes
Meta-
Méthodes hybrides : hybridation globale/locale ou
heuristiques déterministe/stochastique
Introduction
Recuit simulé ...
PSO
ACO
Génétique
Caractéristiques
Autres
méthodes
Outils
Conclusion
Outils

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
linéaire Outils non-commerciaux et/ou libres : ParadisEO
Nombres entiers (evol.,local, PSO), ECj (evol.), oMetah (evol., local,
Programmation ACO, RS), . . .
par Contraintes
Meta-
Outils commerciaux : ILOG/IBM CPLEX (RS, local),
heuristiques Mathematica (RS), . . .
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autres
méthodes
Outils
Conclusion
Plan du cours

Méthodes et
outils
d'optimisation
1 Introduction
Optimisation

Introduction 2 Programmation linéaire


Programmation
linéaire
Nombres entiers 3 Nombres entiers
Programmation
par Contraintes
Meta-
4 Programmation par Contraintes
heuristiques
Conclusion
Biblio
5 Meta-heuristiques

6 Conclusion

7 Biblio
Conclusion

Méthodes et
outils Optimisation est un vaste domaine qui fait intervenir
d'optimisation
plusieurs types de compétences
Optimisation
Comprendre le schéma général pour attaquer un
Introduction problème : Analyse, Modélisation, Résolution,
Programmation
linéaire
Interpretation, Application
Nombres entiers Comprendre les avantages et limitations des diérentes
Programmation méthodes an de choisir la plus adaptée
par Contraintes
Meta-
(caractéristiques du problème ? objectifs ? contexte ?
heuristiques diculté de résolution ?)
Conclusion
Se ramener si possible à un problème type an de
Biblio
proter de l'expérience accumulée
Suivre un fonctionnement itératif et tester abondamment
Si vous faites appel à une expertise extérieure pour une
ou plusieurs étapes, la compréhension du domaine
permet de chirer et de superviser
Conclusion

Méthodes et
outils
d'optimisation
Optimisation
Ce cours est loin d'être exhaustif sur les types de
Introduction problèmes (optimisation multi-objectifs, contraintes
Programmation
linéaire
temps et stochastiques, données incertaines, objectifs
Nombres entiers robustesse, . . .), les méthodes associées et les outils
Programmation existants
par Contraintes
Meta-
Nécessaire de maintenir une veille technologique ou de
heuristiques mettre à jour ses connaissances une fois confronté à une
Conclusion problématique précise
Biblio
Associer connaissance théorique à la maîtrise d'outils
performants (et leur langage)
Plan du cours

Méthodes et
outils
d'optimisation
1 Introduction
Optimisation

Introduction 2 Programmation linéaire


Programmation
linéaire
Nombres entiers 3 Nombres entiers
Programmation
par Contraintes
Meta-
4 Programmation par Contraintes
heuristiques
Conclusion
Biblio
5 Meta-heuristiques

6 Conclusion

7 Biblio
Bibliographie

Méthodes et
outils
d'optimisation
Optimisation

Introduction
Programmation
linéaire
Portail RO sur wikipedia (maintenu par E/C)
Nombres entiers Recherche opérationnelle pour l'ingénieur [Hêche&al.]
Programmation
par Contraintes
Meta-heuristiques pour l'optimisation dicile [Dréo&al.]
Meta- Introduction à la calculabilité [Wolper]
heuristiques
Conclusion ...
Biblio
Crédits

Méthodes et
outils
d'optimisation
Optimisation

Introduction Une partie du contenu de ce cours est adapté du travail


Programmation de :
linéaire
å Wikipedia : portail RO
Nombres entiers
å Nadia Brauner & al. - Laboratoire G-SCOP (Grenoble)
Programmation
par Contraintes å Christine Solnon - Laboratoire LIRIS (Lyon)
Meta- å Philippe Chretienne - ISIMA
heuristiques å Philippe Liberti - LIX
Conclusion å Vincent Mousseau - Centrale Paris
Biblio å ...

Vous aimerez peut-être aussi