Académique Documents
Professionnel Documents
Culture Documents
Un élément de Rn est une solution. Une solution x 2 Rn est une solution admissible si
x 2 ⌦. Si une solution admissible x? est telle que f (x?) f (x) pour toute autre
solution admissible x, on dit que la solution x? est optimale. Le coût optimal est alors
donné par f (x?).
Si pour tout K il existe une solution admissible x 2 ⌦ telle que f (x) K, le coût
optimal est non borné; on dit aussi que le coût optimal est égal à 1. Lorsqu’un
problème de minimisation ne possède pas de solution admissible, on dit aussi que son
coût optimal est égal à +1.
Lorsqu’il existe, le coût optimal d’un problème d’optimisation est toujours unique. Par
contre, il peut y avoir de nombreuses solutions optimales.
Introduction 1–11
Problème du mélange
Le problème du mélange (ou problème diététique) est celui d’un diététicien qui doit
sélectionner pour un coût minimum une combinaison d’aliments en vue d’obtenir un
contenu nutritif donné.
Introduction 1–12
Variables. Soit xi la quantité de l’aliment i utilisée pour la synthèse.
Introduction 1–13
Problème de transport
Introduction 1–14
Variables. xij la quantité de produit à transporter de i à j.
Introduction 1–15
Problème de flot dans un réseau
Introduction 1–16
Variables. Soit xij la quantité de flot qui traverse le lien (i, j).
Bilan au noeud i (i = 2, . . . , n 1)
P P
j xji j xij = 0
Bilan au noeud n
P P
j xjn j xnj = b
P
Objectif. Minimiser le coût total i,j cij xij
Introduction 1–17
Dualité
Introduction 1–23
Problème de planification
Un hopital planifie les horaires de ses infirmières. Une infirmière travaille cinq jours
d’affilée et se repose ensuite durant deux jours avant de recommencer.
Introduction 1–24
Variables. Soit xi le nombre d’infirmières démarrant leur semaine le jour i.
Le problème s’écrit
minimiser x1 + x2 + x3 + x4 + x5 + x6 + x7
x1 + x4 + x5 + x6 + x7 d1
x1 + x2 + x5 + x6 + x7 d2
x1 + x2 + x3 + x6 + x7 d3
x1 + x2 + x3 + x4 + x7 d4
x1 + x2 + x3 + x4 + x5 d5
x2 + x3 + x4 + x5 + x6 d6
x3 + x4 + x5 + x6 + x7 d7
xi 0
Introduction 1–25
Solution Matlab
X=LINPROG(f,A,b) solves the linear programming problem: min f’*x subject to: A*x <=
b
A =
-1 0 0 -1 -1 -1 -1
-1 -1 0 0 -1 -1 -1
-1 -1 -1 0 0 -1 -1
-1 -1 -1 -1 0 0 -1
-1 -1 -1 -1 -1 0 0
0 -1 -1 -1 -1 -1 0
0 0 -1 -1 -1 -1 -1
b =
f =
1 1 1 1 1 1 1
Introduction 1–26
>> linprog(f, A, b) Optimization terminated successfully.
ans =
Introduction 1–27
Exemple
Soit le problème
maximiser 3x1 + 5x2
x1 4
2x2 12
3x1 + 3x2 22
x1, x2 0
xi entiers
Solution du problème relaxé (sans la contrainte “xi entiers”): (4/3, 6), coût optimal 34.
Introduction 1–28
Problème relaxé
Si une solution optimale du problème relaxé est entière, alors c’est aussi une solution
optimale du problème en nombres entiers.
Si les solutions du problème relaxé ne sont pas entières, alors le coût optimal pour le
problème relaxé permet seulement de borner le coût optimal du problème initial.
Introduction 1–29
Problème du sac à dos
Introduction 1–30
Problème du sac à dos
(Knapsack problem)
xi 2 {0, 1}
Introduction 1–31
Optimisation entière, binaire ou mixte
Minimisation (ou maximisation) d’une fonction objectif linéaire sous des contraintes
d’égalité et d’inégalité linéaires, avec la contrainte supplémentaire que certaines des
variables sont entières ou binaires.
maximiser cT x
Ax b
x 0
Optimisation entière: xi entiers.
Introduction 1–32
Problème d’a↵ectation
(Assignment problem)
Problème équivalent: Dans une matrice carrée on choisit exactement un élément par
ligne et un élément par colonne. La somme des éléments choisis est minimum.
Introduction 1–33
Problème d’a↵ectation
xij 2 {0, 1}
Introduction 1–34
Problème d’a↵ectation (examen Juin 2002)
Introduction 1–35
Optimisation de portefeuille
Introduction 1–39
Le graal
Nous souhaitons des algorithmes d’optimisation rapides, faciles à mettre en oeuvre, peu
gourmands en temps calcul, peu gourmands en mémoire, peu sensibles aux erreurs
d’arrondis, dont la convergence est assurée et qui permettent une analyse post-optimale.
Introduction 1–43
Taxinomie
Mais aussi...
Introduction 1–44
Bref historique
Introduction 1–45
Les logiciels
Matlab
X=LINPROG(f,A,b) solves the linear programming problem:
X = FMINSEARCH(FUN,X0) returns a vector X that is a local minimizer of the function that is described in FUN (usually an
M-file: FUN.M) near the starting vector X0.
Introduction 1–46
Introduction 1–47
Le cours
1. Optimisation linéaire.
3. Algorithme du simplexe.
4. Dualité.
Introduction 1–48
Ouvrages élémentaires généraux
Linear and Nonlinear Programming, Stephen Nash and Ariela Sofer, McGraw-Hill,
1996.
Introduction 1–49
Ouvrages élémentaires spécialisés
Optimisation linéaire
Optimisation non-linéaire
Introduction 1–50
Ouvrages plus pointus
Introduction 1–51
Vincent Blondel INMA1702 (2007-2008)
Cours 2
Forme standard et variantes
2–1
Forme générale
est équivalent (au sens où les objectifs optimaux et les solutions optimales se déduisent
l’une de l’autre) au programme linéaire sous forme géométrique
minimiser cT x
Ax = b
x 0
Soit
P Ai la i-ème colonne de A. On cherche des quantités xi 0 pour lesquelles
Aixi = b et telles que cT x est minimum.
Forme géométrique
minimiser cT x
Ax b
Forme standard
minimiser cT x
Ax = b
x 0
P
• Elimination des contraintes d’inégalité. Pour chaque inégalité
P de type aij xj bi
nous introduisons
P une variable d’écart si. L’inégalité aij xj bi est remplacée par
les contraintes aij xj si = bi et si 0.
• Elimination des variables libres. Une variable libre xi est remplacée par xi = x+
i xi ,
où x+
i et xi sont de nouvelles variables pour lesquelles nous imposons x+
i 0 et
xi 0.
est équivalent (au sens où les objectifs optimaux et les solutions optimales se déduisent
l’une de l’autre) au programme linéaire sous forme standard