Cours File - SAVOIR

Transcription

Cours File - SAVOIR
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Méthodes et outils d'optimisation
Optimisation
Mathias Kleiner
[email protected]
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
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
1
Introduction
2
Programmation linéaire
3
Nombres entiers
4
Programmation par Contraintes
5
Meta-heuristiques
6
Conclusion
7
Biblio
Plan du cours
Méthodes et
outils
d'optimisation
1
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
2
Programmation linéaire
3
Nombres entiers
4
Programmation par Contraintes
5
Meta-heuristiques
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
Introduction
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
Problème d'optimisation = minimisation (ou
maximisation) d'une fonction objectif (de coût)
Cette fonction comporte des paramètres et est
gé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 être
dicile à résoudre
⇒ Necessite des outils avancés pour la modélisation et
la résolution
å Variables (paramètres)
å Fonction objectif
å Contraintes
Première dénition
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
fonction objectif f : A → R
Généralement, A ⊂ Rn , et est déni par un ensemble de
contraintes
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
Optimisation et méthodes numériques
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
il existe des méthodes numériques pour résoudre certains
problèmes d'optimisation
cette possibilité depends de caractéristiques du
problème. Par exemple, la méthode (de base) du
gradient requiert que f soit doublement dérivable, que le
problème ne soit pas contraint, et, si l'on cherche un
optimum global, que la région dénie par f soit convexe.
dans ce cours nous étudierons plus particulièrement les
cas où ces techniques ne sont pas (ou dicilement)
applicables
En particulier, nous verrons des problèmes pour lesquels
l'ensemble A est discret
Exemples de problèmes : revenu
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
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érentes
d'engrais et d'insecticide
Les cultures fournissent un revenu diérent
Objectif : maximiser le revenu net
Exemples de problèmes : revenu
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
Un restaurateur possède des oursins, crevettes et huîtres
Dispose de deux types d'assiettes
Objectif : déterminer le nombre d'assiette de chaque
type à proposer pour maximiser le revenu net
Exemples de problèmes : ux de transport
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
Une coopérative laitière eectue quotidiennement le
ramassage de lait dans diérentes fermes
Objectif : eectuer la tournée la plus courte
Exemples de problèmes : couverture de charge
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
Courbe de charge (compagnie aérienne, supermarché,
péages, . . .)
Objectif : Assurer la couverture avec un minimum de
personnel
Exemples de problèmes : emploi du temps
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
Une université doit eectuer un certain nombre de cours
à un certain nombre d'élèves, avec un certain nombre
d'enseignants-chercheurs
contraintes de précédences de cours, salles, désidératas
Objectif : trouver une solution !
Exemples de problèmes : rangement
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
On dispose de containers et d'éléments de tailles
diérentes à ranger dans ces containers (pour envoi)
Objectif : trouver un arrangement pour minimiser le
nombre de containers
Exemples de problèmes : réseaux
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
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 la
longueur du réseau
Exemples de problèmes : conception produit
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
Fabrication d'un système de traction
Diérents matériaux, contraintes de traction
Objectif : minimiser le coût de fabrication
Exemples de problèmes : séparation d'un stock
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
On dispose de rouleaux de tissu d'une certaine longueur
On souhaite les couper pour obtenir des bandes de
longueurs diérentes données
Objectif : minimiser le nombre de rouleaux à acheter
Exemples de problèmes : planication horaires
(work scheduling)
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
Etant donné des besoins / jours en nombre d'employés
Planier les aectations de la semaine
Objectif : minimiser le nombre d'employés
Exemples de problèmes : ordonnancement
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
Planier des tâches sur des machines de production
Contraintes de précédences sur les tâches, délais sur
machines, . . .
Objectif : minimiser le temps de complétion des tâches
Exemples de problèmes : autres
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
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 articielle
Ingénierie
...
Caractéristiques
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
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) ou
incertaines
⇒ les caractéristiques d'un problème inuent sur :
å la modélisation (puissance expressive nécessaire)
å les techniques de résolution
å la diculté (ecacité des méthodes/algorithmes)
Complexité
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
Diculté de résolution d'un problème par un
algorithme/méthode :
å quantité d'opérations/étapes à eectuer (complexité en
temps)
å quantité d'informations à stocker (complexité en espace)
On s'intéresse à un ordre de grandeur en fonction des
données en entrée (indépendant de la puissance
machine) :
å linéaire ou pseudo-linéaire
å polynomial
å exponentiel/factoriel (on parle de problèmes
NP-diciles)
å (in)décidable, (in)calculable
Théorie des automates (deterministes ou
non-deterministes) par A.Turing (machine de Turing)
Complexité : exemple
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Soit un graphe G = (V, E)
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
G est-il connexe ?
Complexité : exemple
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
Soit un graphe G = (V, E)
G possède-t-il un chemin hamiltonien ?
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
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
Quel chemin passant exactement une fois par chaque
point minimise le poids total ?
69 villes → nombre à 100 chires !
Complexité : conséquences
Méthodes et
outils
d'optimisation
Temps de résolution d'un problème selon sa complexité
(10ns par étape)
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
Not.
O (n)
O (n 2 )
O (n 3 )
O (e n )
O (n!)
Complexite
lineaire
quadratique(P)
cubique(P)
exponentielle
factorielle
n=20
200ns
4µs
80ms
10ms
770ans
n=50
500ns
25µs
1.25ms
130jours
1048 ans
n=250
2.5µs
625µs
156ms
1059 ans
?
n=1000
10µs
10ms
10s
?
?
n=104
100µs
1s
2.7h
?
?
ce n'est pas anodin !
distingue complexite pire des cas, en moyenne, en
pratique
il existe des classes polynomiales pour des problèmes
NP-diciles sous certaines conditions
n=106
10ms
2.8h
316ans
?
?
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
Metaheuristiques
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
Metaheuristiques
Conclusion
Biblio
Analyse du problème
Modélisation et choix de méthode
Résolution
Interprétation des résultats
Processus d'optimisation : Analyse du problème
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
Compréhension du système
Dénition des objectifs, du champ de couverture
Obtention des données
...
Processus d'optimisation : Modélisation
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
Choix d'un langage (formel), de la méthode
Traduction du problème : paramètres, domaines,
contraintes, incertitude, . . .
⇒ simplication : résultat d'un consensus entre acteurs
...
Processus d'optimisation : Résolution
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
Mise en oeuvre algorithmique, utilisation d'un
outil/solveur
Analyse de la robustesse, pertinence des résultats
...
Processus d'optimisation : Interpretation
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
Interpréter les résultats dans le monde réel
Présenter aux acteurs
...
Processus d'optimisation : Mise en oeuvre
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Introduction
Exemples
Caractéristiques
Complexité
Processus
Méthodes
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
Mise en oeuvre opérationnelle
Suivi des impacts, actions correctives
⇒ peut donner lieu à la dénition d'un nouveau
problème !
Méthodes 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
Metaheuristiques
Conclusion
Biblio
Méthodes génériques :
Programmation linéaire (modélisation sous forme
d'é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é : recherche
opérationnelle, intelligence articielle, . . .
Méthodes 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
Metaheuristiques
Conclusion
Biblio
Mais pour des cas particuliers, il peut exister des méthodes
dédiées ecaces (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 technologique
ou une étude approfondie, par exemple lorsque la résolution
d'un problème par les méthodes génériques n'est pas
satisfaisante (e.g. temps de calcul trop important).
Plan du cours
Méthodes et
outils
d'optimisation
1
Introduction
2
Programmation linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres méthodes
Outils
3
Nombres entiers
4
Programmation par Contraintes
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Dénition
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Techniques d'optimisation pour des problèmes
caracté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 un
polytope convexe
Forme canonique
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Denition
maximiser
soumis à
c >x
Ax ≤ b, x ≥ 0
où x est un vecteur de variables, c et b des vecteurs de
coecients, et A une matrice de coecients.
D'autres formes (minimisation, variables négatives, etc.)
peuvent être réecrites de manière équivalente en forme
canonique.
Exemple de l'agriculteur
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
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érentes
d'engrais et d'insecticide
Les cultures fournissent un revenu diérent
Objectif : maximiser le revenu net
Exemple de l'agriculteur
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
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érentes
d'engrais et d'insecticide (E1 ,I1 ,E2 ,I2 )
Les cultures fournissent un revenu diérent (S1 ,S2 )
Objectif : maximiser le revenu net
Exemple de l'agriculteur
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Maximiser
soumis à
S1 x1 + S2 x2
x1 + x2 ≤ T
E1 x1 + E2 x2 ≤ E
I1 x1 + I2 x2 ≤ I
x1 ≥ 0, x2 ≥ 0
(fonction objectif)
(limite terrain)
(limite engrais)
(limite insecticide)
(terrain positif !)
Exemple de culture
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
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
Exemple de culture
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Variables de décision : xc (surface de courgettes), xn
(surface de navets)
Maximiser
soumis à
4xc + 5xn
2xc + xn ≤ 8
xc + 2xn ≤ 7
xn ≤ 3
xc , xn ≥ 0
(fonction objectif)
(limite A)
(limite B)
(limite anti-parasite)
(terrain positif !)
Caractéristiques
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Simplex = polytope à N + 1 sommets (pour N
dimensions)
Caractéristiques du problème :
å chaque inégalité du PPL à n variables dénit un
demi-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 de
ses sommets
Interprétation géométrique
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Culture de courgettes et de navets
Interprétation géométrique
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Les lignes de niveau (f = constante) sont des droites
parallèles
⇒ maximum en 1 sommet ou en 1 arête
Interprétation géométrique
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Les lignes de niveau (f = constante) sont des hyperplans
anes
Solutions PPL
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
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
Algorithme naïf de résolution
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Algorithme naïf : énumérer tous les sommets du
polytope, évaluer f , prendre le minimum
⇒ nombre important de sommets ⇒ pas ecace
(confère complexité)
Algorithme du Simplexe
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Algorithme crée par George Dantzig en 1947
Idée : à partir d'un sommet, chercher un sommet voisin
qui améliore l'objectif
Denition (Principe d'amélioration locale)
Soit x0 non optimum, alors il existe un sommet voisin x tel
que f (x ) > f (x0 )
⇒ Méthode de résolution itérative : on part d'un
sommet quelconque, on trouve un sommet voisin qui
améliore l'objectif (règle de pivotage), on réitère
Note : on est passé d'un problème continu à un
problème discret !
Algorithme du Simplexe - Culture
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Illustration courgettes et navets
Algorithme du Simplexe - étapes
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Necessaire de passer en forme standard : égalités
(variables d'écart)
⇒ plus de dimensions mais manipulations algébriques
plus 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
Algorithme du Simplexe : histoire
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Application après-guerre :
å Opérations Vittles et Plainfare pour ravitaillement de la
trizone pendant le blocus de Berlin par pont aérien (23
juin 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 nombreux
domaines d'application
Problème Dual
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Soit P un problème de PL, appelé problème primal
Il existe un problème D, appelé dual, utilisant les mêmes
donné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 un
acheteur, D est un problème de maximisation du prot
pour un vendeur tout en restant compétitif
Exemple : Primal
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
une famille utilise 6 produits alimentaires comme source
de vitamine A et C
produits (unités/kg)
demande
1 2 3 4 5 6 (unités)
vitamine A 1 0 2 2 1 2
9
vitamine B 0 1 3 1 3 2
19
prix/kg
35 30 60 50 27 22
Objectif : minimiser le coût total
Exemple : Dual
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
un producteur de cachets de vitamines synthétiques veut
convaincre la famille d'acheter des vitamines
⇒ Quel prix de vente wA et wB ?
å pour être compétitif
å et maximiser le prot
Exemple : Dual
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Maximiser
soumis à
9wA + 19wB
wA ≤ 35
wC ≤ 30
2wA + 3wc ≤ 60
2wA + wc ≤ 50
wA + 3wc ≤ 27
2wA + 2wc ≤ 22
wA , wC ≥ 0
(fonction objectif)
(produit 1)
(produit 2)
(produit 3)
(produit 4)
(produit 5)
(produit 6)
(prix positif)
Dualité : généralisation économique
Méthodes et
outils
d'optimisation
Optimisation
produit j
coût i
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
ressource i
aij
bi
demande j
cj
Primal (demandeur) : quelle quantité xi de ressource i
acheter pour satisfaire demande à coût minimum
min
X
i
bi xi
s .c .
X
i
aij xi ≥ cj
∀j
Dual (vendeur) : à quel prix wj proposer les produits
pour maximiser le prot tout en restant compétitif
Programmation
par Contraintes
Metaheuristiques
Conclusion
max
X
j
cj wj
s .c .
X
j
aij wi ≥ bi
∀i
Dualité : propriétés
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Le dual du dual est équivalent au primal
Théorème de dualité faible (pour prouver l'optimalité)
Denition
Pour chaque paire de solutions admissibles x de P et w de D
cx ≥ wb
⇒ Si le primal est non-borné, le dual est insatisable (et
inversement).
Théorème de dualité forte (pour garantir qu'une preuve
d'optimalité est possible)
Denition
Si P et D ont des solutions, alors
cx ∗ ≥ w ∗ b
Ecarts complémentaires (pour trouver une solution
optimale du dual connaissant celle du primal)
Autres méthodes
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Améliorations du simplexe, barrières
Algorithme de l'ellipsoïde [Khachiyan, 1979]
Méthodes du point intérieur [Karmakar, 1984]
Versions spéciques à un problème particulier,
combinaisons
...
Outils
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Dénition
Exemples
Caractéristiques
Simplexe
Dualité
Autres
méthodes
Outils
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Outils non-commerciaux et/ou libres : glpk, CLP,
Cassowary, SciLab, . . .
Outils commerciaux : ILOG/IBM CPLEX, MatLab (opt
toolbox), Mathematica, Excel, . . .
Plan du cours
Méthodes et
outils
d'optimisation
1
Introduction
2
Programmation linéaire
3
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de modélisation
Branch-and-Bound
Autres méthodes
Outils
4
Programmation par Contraintes
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
Introduction
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
Programmation linéaire en nombres entiers (PLNE)
Variables de décision discrètes (entiers, booléens)
(contre-intuitivement ?) Pas de méthode générale
ecace de résolution
⇒ branch-and-bound, cutting-planes, branch-and-cut,
...
on entre dans l'optimisation combinatoire
Modélisation générique de l'optimisation
combinatoire
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
Un ensemble E = {e0 , . . . , en } de solutions candidates
(espace de recherche) où ei est une assignation d'un
ensemble de variables
E , généralement déni par des contraintes, a une
cardinalité importante (ex. : n = 2m où m est déni par
la taille du problème)
objectif (maximisation) :
ei ∈ E tel que ∀j , f (ei ) >= f (ej )
Modélisation PLNE canonique
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
Forme PLNE canonique :
maximiser
soumis à
c >x
Ax ≤ b
x ∈ Zn
x ≥0
Exemples : rangement (packing)
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
On dispose de containers et d'éléments de tailles
diérentes à ranger dans ces containers (pour envoi)
Objectif : trouver un arrangement pour minimiser le
nombre de containers
Exemples : rangement 1D (bin packing)
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
un déménageur souhaite empaqueter des objets en
minimisant le nombre de cartons (de capacité C = 6)
Objectif : trouver un arrangement pour minimiser le
nombre de cartons
Objets : livre (2), livre (2), pull (3), chaussettes (1),
chaussures (2), assiettes (5), verres (6)
Exemples : rangement 1D (bin packing)
Méthodes et
outils
d'optimisation
Optimisation
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
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
n
X
minimiser
soumis à
n
X
i =1
j =1
yj
ci xij ≤ 6yj , j = 1, . . . , n
n
X
j =1
xij = 1, i = 1, . . . , n
xij ∈ {0, 1}, yj ∈ {0, 1}
Exemples : sac-à-dos
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
Remplir son sac-à-dos (max. 3kg) pour une randonnée
objet
utilité poids
carte
10
200
gourde A
7
1500
gourde B
3
1500
pull
6
1200
k-way
2
500
tomme
4
800
fruits secs
5
700
Objectif : maximiser l'utilité pour un poids limité
Exemples : sac-à-dos
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
xi = 1 si l'objet i est choisi, 0 sinon
ui utilité de l'objet i, wi son poids
n
X
maximiser
soumis à
n
X
i =1
ui xi
wi xi ≤ 3
i =1
xi ∈ {0, 1}
Exemples : sac-à-dos
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
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
å ...
Exemples : planication horaires (work scheduling)
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
Une chaîne de restauration rapide ouverte 7 jours sur 7 a
besoin des nombres d'employés suivants du lundi au
dimanche : 45, 45, 40, 50, 65, 35, 35. Chaque employé
travaille au maximum 1 jour de n de semaine et 4 jours
dans la semaine
Objectif : déterminer le nombre minimum d'employés
nécessaires et leur aectation.
Exemples : planication horaires (work scheduling)
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
Xi = 1 si on recrute l'employé i (i ∈ [1, n] avec n
susamment grand)
Yij = 1 si l'employé i travaille le jour j (j ∈ [1, 7])
Soit Bj le besoin par jour
n
X
minimiser
soumis à
n
X
i =1
5
X
j =1
7
X
i =1
Xi
Yij >= Bj , ∀j
Yij ≤ 4 ∗ Xi , ∀i
Yij ≤ 1 ∗ Xi , ∀i
j =6
X ∈ {0, 1}, Y ∈ {0, 1}
Exemples : planication horaires (work scheduling)
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Xij ∈ Zn : nombre d'employés ne travaillant pas les jours
i et j (i ∈ [1, 5], j ∈ [6, 7])
Soit Bj le besoin par jour
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
5 X
7
X
minimiser
soumis à
i =1 j =6
XX
i !=k j
XX
i j !=k
Xij
Xij >= Bk , ∀k ∈ [1, 5]
Xij >= Bk , ∀k ∈ [6, 7]
Xi j >= 0
Exemples : séparation d'un stock (cutting-stock)
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
On dispose de rouleaux de tissu d'une certaine longueur
On souhaite les couper pour obtenir des bandes de
longueurs diérentes données
Objectif : minimiser le nombre de rouleaux à acheter
Généralisation du bin packing
Exemples : séparation d'un stock (cutting-stock)
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
j = {0, . . . , m} commandes, avec j requiert quantité qj
de pièces de tissu
i = {0, . . . , n} combinaisons de découpe, avec xi le
nombre 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 la
combinaison i
n
X
minimiser
soumis à
n
X
i =1
i =1
ci xi
xi aij ≥ qj ∀j = 1, . . . , m
xi , aij , qj ∈ Z, xi ≥ 0
Exemple : Illustration cutting-stock
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
une machine peut produire des pièces maîtres de
5600mm de largeur
les commandes sont les suivantes :
largeur quantité
1380
22
1520
25
1560
12
1710
14
1820
18
1880
18
1930
20
2000
10
2050
12
...
...
Exemples : séparation d'un stock (cutting-stock)
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
Diérentes modélisations selon données/objectifs
(nombre de pièces maîtres, changements d'outil de
découpe, . . .)
diverses applications
å 1D : découpe de cables, matériaux
å 2D : découpe de verre, tissu
å liens avec d'autres problèmes types
Techniques de modélisation : ensembles discrets
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
x doit prendre sa valeur parmi P = {p1 , . . . , pk }
⇒ yi ∈ {0, 1}, 1 pour x = pi
k
X
yi = 1
i =1
k
X
x=
pi yi
i =1
xi ∈ {0, 1}
Techniques de modélisation : propositions logiques
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
x et y deux variables booléennes
x ⇒ y : contrainte : x ≤ y
x ∨ y : contrainte : x + y ≥ 1
Techniques de modélisation : ordonnancement
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
Deux tâches de durée di et dj doivent être usinées sur
une 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}
Techniques de modélisation : linéarisation
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
linéariser un terme quadratique simple
ex. xx 0 avec x , x 0 ∈ {0, 1}
introduit une variable y, y = 1 ssi x = 1 et x 0 = 1
x ≤y
x0 ≤ y
x + x0 − 1 ≤ y
yij ∈ {0, 1}
Relaxation linéaire
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
Idée : peut-on résoudre un PLNE X en résolvant le PL
associé ?
⇒ relaxation linéaire denit un polyèdre
P = {X ∈ Rn |Ax ≤ b}
Denition
Un PL P est une formulation de X ssi X = P ∩ Zn
Question : quel lien entre l'optimum du PL et l'optimum
du PLNE ?
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-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
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-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
⇒ peu d'indications, on ne peut pas simplement
résoudre le PL associé
Méthodes énumératives
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
Idée : énumérer les solutions possibles (nombre ni), les
évaluer, conserver la meilleure
Problème : ce nombre peut être très important (car
exponentiel) ⇒ pas ecace
C'est le challenge de l'optimisation combinatoire !
Eliminer a priori des solutions, sans les évaluer
explicitement
Branch-and-Bound : principe
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
On veut résoudre z ∗ = {max cx |x ∈ X }
Partitionne X en (X1 , X2 )
Alors z ∗ = max {z1∗ , z2∗ }
Branch-and-Bound : principe
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Si z1∗ > z2∗ , alors il est inutile d'explorer X2 car il ne
contient pas de solution optimale
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
Comment déterminer de ne pas explorer X2 sans calculer
z2∗ ?
⇒ estimation (par excès) de z2∗ : borne supérieure
Propriété de la relaxation linéaire
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
Soit un problème de maximisation, son PLNE IP, sa
∗ et
relaxation linéaire L et leurs optimums respectifs ZIP
ZL∗
La propriété suivante est vériée :
∗
å ZIP
≤ ZL∗
å ⇒ Si ZL∗ est un entier, c'est l'optimum du PLNE
⇒ le PL fournit une borne supérieure au PLNE !
Branch-and-Bound : principe
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
On partitionne l'ensemble X en {X1 , . . . , Xn }
On calcule les bornes supérieures B (Xi ) de l'optimum
pour chaque Xi
Si B (Xi ) ≤ meilleure solution trouvée, on élague
Sinon on découpe récursivement Xi
⇒ arbre de recherche implicite
Branch-and-Bound : découpe
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
Résolution de la RL sur X (P)
si x ∗ non entier, on branche sur une variable non entière
Branch-and-Bound : découpe
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
X1 = x ∈ X et xi ≤ a
X2 = x ∈ X et xi ≥ a + 1
Branch-and-Bound : découpe
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
Recherche de la meilleure solution sur X2
RL sur X2 (P2 ), découpe, RL sur X21 (P3 ) et X22 (P4 )
Branch-and-Bound : découpe
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
Recherche de la meilleure solution sur X1
RL sur X1 (P1 ), découpe, RL sur X11 (P5 ) et X12 (P6 )
Branch-and-Bound : découpe
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
x ∗ = max (x1∗ , x2∗ )
Branch-and-Bound : élaguage
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
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)
Branch-and-Bound : exemple
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
maximiser z = 2x1 + 3x2
soumis à 5x1 + 7x2 ≤ 35
4x1 + 9x2 ≤ 36
x1 , x2 ≥ 0 ∈ Z
Branch-and-Bound : exemple
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
maximiser z = 2x1 + 3x2
soumis à 5x1 + 7x2 ≤ 35
4x1 + 9x2 ≤ 36
x1 , x2 ≥ 0 ∈ Z
Autres méthodes
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
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éciques à un problème particulier
...
Outils
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Introduction
Modélisation
Exemples
Techniques de
modélisation
Branch-andBound
Autres
méthodes
Outils
Programmation
par Contraintes
Metaheuristiques
Outils non-commerciaux et/ou libres : glpk, LP_SOLVE,
SciLab, . . .
Outils commerciaux : ILOG/IBM CPLEX, MatLab (opt
toolbox), Mathematica, Excel, . . .
Plan du cours
Méthodes et
outils
d'optimisation
1
Introduction
2
Programmation linéaire
3
Nombres entiers
4
Programmation par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
5
Meta-heuristiques
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
Introduction
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
Programmation par contraintes = méthode de
modélisation et de résolution
Variables de décision et leur domaine
Contraintes de diérents types, faciles à vérier
indépendamment, liberté de modélisation
Méthodes de résolution énumératives
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
Metaheuristiques
Conclusion
Biblio
Principes de 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
Metaheuristiques
Conclusion
Biblio
Raisonnement par élimination : on ne cherche pas
directement la valeur d'une variable mais ses valeurs
possibles (réduction du domaine)
Raisonnement énumératif : on essaie diérentes
solutions par étapes successives de construction (arbre
de recherche)
Raisonnement local : on considère les contraintes
indépendamment
Raisonnement par propagation : lorsque le domaine
d'une variable change, on s'intéresse aux contraintes qui
dépendent cette variable (propagation)
Modélisation générique de l'optimisation
combinatoire
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
Un ensemble E = {e0 , . . . , en } de solutions candidates
(espace de recherche) où ei est une assignation d'un
ensemble de variables
E , généralement déni par des contraintes, a une
cardinalité importante (ex. : n = 2m où m est déni par
la taille du problème)
objectif (maximisation) :
ei ∈ E tel que ∀j , f (ei ) >= f (ej )
Modélisation SAT
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
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 une
fonction objectif f (ei ) où ei est une solution candidate
(i.e. une assignation d'une valeur à chaque variable)
Modélisation SAT : exemple
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
Ringo Etoile, musicien londonien, appelle Scotland Yard
pour signaler que son appartement vient d'être
cambriolé. La police a établi les faits suivants :
å Il y a trois suspects : John, Paul et Georges, et personne
d'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
Modélisation SAT : exemple
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
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
Modélisation CSP
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
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 de
valeurs (discrets ou continus) correspondant aux
variables de X
C est un ensemble de contraintes (logiques,
mathématiques, etc.)
Dans un problème d'optimisation, on ajoute une
fonction objectif f (ei ) où ei est une solution candidate
(i.e. une assignation d'une valeur à chaque variable)
Modélisation CSP : exemple
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
On considère l'addition suivante :
S E N D
+ M O R E
= M O N E Y
où chaque lettre représente un chire diérent compris entre
0 et 9.
On souhaite connaitre la valeur de chaque lettre, sachant que
la première lettre de chaque mot représente forcément un
chire diérent de 0.
Modélisation CSP : exemple
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
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}
C 1 : 1000 ∗ S + 100 ∗ E + 10 ∗ N + D + 1000 ∗ M + 100 ∗ O +
10 ∗ R + E = 10000 ∗ M + 1000 ∗ O + 100 ∗ N + 10 ∗ E + Y
C 2 : all − dierent ({S , E , N , D , M , O , R , Y })
Modélisation CSP : exemple
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
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}
C 1 : D + E = Y + 10 ∗ R1
C 2 : R1 + N + R = E + 10 ∗ R2
C 3 : R2 + E + O = N + 10 ∗ R3
C 4 : R3 + S + M = O + 10 ∗ M
C 5 : all − dierent ({S , E , N , D , M , O , R , Y })
Types de contraintes
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
Contraintes par extension (liste des valeurs possibles) ou
par intention (formule logique ou mathématique)
l'ordre n'a pas d'importance
Déclaratives (pas d'algorithme de vérication), non
dirigées (x − 2y = z), pas restreintes à une forme
particulière (i.e. linéaire)
Arité d'une contrainte = nombre de variables impliquées
(x 2 = 4, est − pair (x ), x 6= y)
Contraintes globales (toutes − dierentes (E ))
Contraintes quanticatives, existentielles pour des
problèmes avancés
Jeu des reines
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
But : Placer 4 reines sur un échiquier 4x4 sans qu'elles se
menacent.
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
Modélisation ?
Jeu des reines : modélisation A
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
But : Placer 4 reines sur un échiquier 4x4 sans qu'elles se
menacent.
Variables : Associe à chaque reine i sa
position en lignes (L = ∪i =1..4 Li ) et en
colonnes (C = ∪i =1..4 Ci ) ⇒ 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 }
CoD M = {∀i , j ∈ {1, 2, 3, 4}, i 6= j , Ci + Li 6=
Cj + Lj }
CoD D = {∀i , j ∈ {1, 2, 3, 4}, i 6= j , Ci − Li 6=
Cj − Lj }
Jeu des reines : modélisation B
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
But : Placer 4 reines sur un échiquier 4x4 sans qu'elles se
menacent.
Variables : On place une reine par colonne,
donc on associe à une reine i sa position en
lignes ⇒ 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 }
CoD M = {∀i , j ∈ {1, 2, 3, 4}, i 6= j , Xi + i 6=
Xj + j }
CoD D = {∀i , j ∈ {1, 2, 3, 4}, i 6= j , Xi − i 6=
Xj − j }
Jeu des reines : modélisation C
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
But : Placer 4 reines sur un échiquier 4x4 sans qu'elles se
menacent.
Variables : Une variable par case à domaine
Booleen
⇒ modélisation SAT
Jeu des reines : plusieurs modélisations
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
Il existe (toujours) plusieurs modélisations, laquelle est la
meilleure ?
å Celle qui correspond le mieux à la réalité
å La plus intuitive, la plus simple à trouver
å La plus ecace (voir résolution)
Coloriage de cartes
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
But : Colorier une carte sans que deux pays contigus aient la
même couleur.
Applications : allocation de ressources, emploi du temps,
ordonnancement, . . .
Modélisation ?
Coloriage de cartes
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
But : Colorier une carte sans que deux régions contigues aient
la même couleur.
Applications : allocation de ressources, emploi du temps,
ordonnancement, . . .
Variables : une variable Xi pour chaque
région
Domaines :
Di = {bleu , jaune , rouge , vert }
Contraintes : en extension, ou,
∀i , j tq voisines (i , j ), Xi 6= Xj
Résolution naïve
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
Méthode naïve :
å on énumére les aectations totales
å on vérie si elles sont consistantes
⇒ pas ecace !
Résolution par étapes
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
Construire une aectation totale par incrémentation
d'aectations partielles (arbre de recherche)
Revenir en arrière si une aectation partielle est
inconsistante (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, . . .)
...
Arbre et backtrack : exemple des reines
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
Construire une aectation totale par incrémentation
d'aectations partielles (arbre de recherche)
Revenir en arrière si une aectation partielle est
inconsistante (backtrack)
Anticipation
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
Restreindre les domaines des variables à chaque étape
(anticipation/ltrage par propagation locale des
contraintes)
De manière générale, ltre consiste à modier le
domaines des variables non aectées en fonction de
l'aectation partielle (A) courante
å consistance de noeud (ou 1-consistance) : on enlève de
D (Xi ) toute valeur v telle que A ∪ (Xi , v ) est
inconsistante
å consistance d'arc (ou 2-consistance) : on enlève de
D (Xi ) toute valeur v telle que qu'il existe une variable
Xj dont toutes les valeurs donnent A ∪ (Xi , v ) ∪ (Xj , w )
inconsistante
å consistance de chemin (ou 3-consistance)
å ...
å Si il reste k variables à aecter, à quoi correspond la
k − consistance ?
Anticipation : exemple des reines
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
Restreindre les domaines des variables à chaque étape
(anticipation/ltrage par propagation locale des
contraintes)
1-consistance
Anticipation : exemple des reines
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
Restreindre les domaines des variables à chaque étape
(anticipation/ltrage par propagation locale des
contraintes)
2-consistance
Heuristiques
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
Utiliser des heuristiques = parcourir l'arbre dans un
ordre préférentiel
Préférence non systématique (sinon le problème est
linéaire !), mais très ecace
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)
Connaissances des symétries
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
Utiliser connaissances sur le problème : symétries
å manuel durant la modélisation
å automatique durant la recherche
Variantes
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
MAX-CSP : satisfaire un maximum de contraintes
VCSP : valuation sur les contraintes, maximiser
Conditional CSP : contraintes activées sur certaines
conditions
Dynamic CSP : ajout dynamique de variables au cours
de la recherche
...
Outils
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Introduction
Modélisation
Exemples
Résolution
Outils
Metaheuristiques
Conclusion
Biblio
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, . . .
Plan du cours
Méthodes et
outils
d'optimisation
1
Introduction
2
Programmation linéaire
3
Nombres entiers
4
Programmation par Contraintes
5
Meta-heuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autres
méthodes
Outils
Conclusion
Introduction aux méthodes incomplètes
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autres
méthodes
Outils
Conclusion
Constat : pour de nombreux problèmes (taille), aucune
technique vue precédemment n'est ecace
Les techniques étudiées sont complètes (ou exactes) : si
elles ne fournissent pas de solution, la solution n'existe
pas
Idée : peut-on trouver des méthodes incomplètes qui
soient ecaces dans certains cas ?
Parmis ces méthodes, on trouve les méta-heuristiques
Introduction aux méta-heuristiques
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autres
méthodes
Outils
Conclusion
Principe : on va parcourir partiellement l'espace de
recherche, avec des heuristiques plus complexes
Plusieurs manières de parcourir partiellement :
å
sauter d'une aectation totale à une autre (réparation
locale)
å repartir de la racine en ayant emmagasiné de la
connaissance
å ...
Toutes ces méthodes se reposent sur des techniques
aléatoires (ou stochastiques)
La plupart de ces méthodes sont inspirées du monde réel
(nature et notamment animaux) et de l'intelligence
collective
Nous n'en verrons qu'une toute petite partie
Recuit simulé
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autres
méthodes
Outils
Conclusion
Le recuit simulé est une méthode inspirée de la
metallurgie
Energie E du système = Fonction à minimiser
Temperature T = paramètre contrôlant la diversication
Determine conditions initiales : E0 et T0 (aléatoirement
élevée)
A chaque étape :
å Modie 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)
å Modication de la température : par paliers ou par une
loi de décroissance (Ti +1 = λTi avec λ < 1)
Particle Swarm Optimization
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autres
méthodes
Outils
Conclusion
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 sa
vitesse (vi )
Initialise chaque particule pseudo-aléatoirement
(distribution uniforme)
à chaque étape, chaque particule se déplace
(modication du vecteur vitesse et application à la
position) en fonction de 3 critères :
å son meilleur score (pi )
å le meilleur score de toutes les particules (g )
å facteur aléatoire
vi = ω vi + σp rp (pi − xi ) + σg rg (g − xi ) où ω , σp , σg
sont des paramètres globaux
PSO : exemple 2D
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autres
méthodes
Outils
Conclusion
Applications courantes : choix ou adéquation de
paramètres
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
Metaheuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autres
méthodes
Outils
Conclusion
Applications courantes : choix ou adéquation de
paramètres
Ant Colony Optimization
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autres
méthodes
Outils
Conclusion
ACO = Ant Colony Optimization
Algorithme inspiré de l'observation des colonies de
fourmis : capacité à trouver le chemin le plus court vers
une source de nourriture
Première application algorithmique [Dorigo] : recherche
du plus court chemin dans un graphe aux arêtes
pondérées
Etendu depuis à divers problèmes d'optimisation,
notamment les problèmes de satisfaction de contraintes
???
20%
80%
Ant Colony Optimization : PPC
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autres
méthodes
Outils
Conclusion
A chaque tour, un certain nombre de fourmis articielles
parcourent l'espace de recherche an de construire une
solution (par exemple, un graphe)
Le trajet d'une FA (ici un choix xy) est inuencé par :
β
å une heuristique (ηxy
)
α
å les phéromones déposées par toutes les FA (τxy
)
å facteur aléatoire (α, β )
k =
pxy
α ∗η β
τxy
xy
P α β
z τxz ∗ηxz
Après évaluation de la solution, chaque FA dépose des
phéromones sur son trajet en fonction de la qualité de la
k)
solution (∆τxy
Les phéromones s'évaporent (ρ) au cours du temps an
d'oublier les mauvaises solutions
k
τxy = (1 − ρ)τxy + ∆τxy
Algorithmes génétiques
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autres
méthodes
Outils
Conclusion
Les algorithmes génétiques sont inspirés de la sélection
naturelle
Opérations (sélections, enjambements/croisements,
mutations) appliquées à une population de solutions
candidates
Principe : génération d'une population initiale
(aléatoirement), puis, itérativement :
å Evaluation puis selection (diérentes méthodes) des
meilleurs 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
Algorithmes génétiques : étapes
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autres
méthodes
Outils
Conclusion
Selection : rang, roulette,
tournoi, uniforme
Croisements : place de
l'enjambement
Mutations : i.e.
permutations
Algorithmes génétiques : exemple du VC
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autres
méthodes
Outils
Conclusion
Exemple du voyageur de commerce
Codage : un entier par ville, séquence : suite ordonnée
de villes visités
å S1 = 1 0 5 3 2 7 4 6
å S2 = 7 1 3 5 6 2 0 4
å Croisements :
S10 = 1 0 5 3 2 7 6 4
S20 = 7 1 3 5 6 0 4 2
å Mutation (par permutation) :
S100 = 1 0 7 3 2 5 6 4
Caractéristiques des meta-heuristiques
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autres
méthodes
Outils
Conclusion
Optimum global n'est pas garanti : il ne doit donc pas
être requis
Présence de nombreux paramètres : phases de tests
nécessaires
Contrôle des facteurs d'exploration (ou diversication),
d'intensication, d'aprentissage
Importance du choix de modélisation : liberté relative,
fonction objectif simple à calculer
Robustesse face aux problèmes stochastiques (données
incertaines)
Diverses preuves de convergence ont été fournies sous
certaines conditions
Autres méthodes
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autres
méthodes
Outils
Conclusion
Réseaux de neurones (classication)
Autres réparations locales : recherche tabou
Nombreuses variantes des méthodes présentées
Méthodes hybrides : hybridation globale/locale ou
déterministe/stochastique
...
Outils
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Introduction
Recuit simulé
PSO
ACO
Génétique
Caractéristiques
Autres
méthodes
Outils
Conclusion
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), . . .
Plan du cours
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
1
Introduction
2
Programmation linéaire
3
Nombres entiers
4
Programmation par Contraintes
5
Meta-heuristiques
6
Conclusion
7
Biblio
Conclusion
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
Optimisation est un vaste domaine qui fait intervenir
plusieurs types de compétences
Comprendre le schéma général pour attaquer un
problème : Analyse, Modélisation, Résolution,
Interpretation, Application
Comprendre les avantages et limitations des diérentes
méthodes an de choisir la plus adaptée
(caractéristiques du problème ? objectifs ? contexte ?
diculté de résolution ?)
Se ramener si possible à un problème type an de
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
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
Ce cours est loin d'être exhaustif sur les types de
problèmes (optimisation multi-objectifs, contraintes
temps et stochastiques, données incertaines, objectifs
robustesse, . . .), les méthodes associées et les outils
existants
Nécessaire de maintenir une veille technologique ou de
mettre à jour ses connaissances une fois confronté à une
problématique précise
Associer connaissance théorique à la maîtrise d'outils
performants (et leur langage)
Plan du cours
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
1
Introduction
2
Programmation linéaire
3
Nombres entiers
4
Programmation par Contraintes
5
Meta-heuristiques
6
Conclusion
7
Biblio
Bibliographie
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
Portail RO sur wikipedia (maintenu par E/C)
Recherche opérationnelle pour l'ingénieur [Hêche&al.]
Meta-heuristiques pour l'optimisation dicile [Dréo&al.]
Introduction à la calculabilité [Wolper]
...
Crédits
Méthodes et
outils
d'optimisation
Optimisation
Introduction
Programmation
linéaire
Nombres entiers
Programmation
par Contraintes
Metaheuristiques
Conclusion
Biblio
Une partie du contenu de ce cours est adapté du travail
de :
å
å
å
å
å
å
å
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
...

Documents pareils