Vous êtes sur la page 1sur 39

Des mots pour le dire...

minimiser f (x1, . . . , xn)


sous la contrainte (x1, . . . , xn) 2 ⌦
Les scalaires x1, . . . , xn 2 R sont les variables de décision, f est la fonction objectif
(fonction coût, fonction profit) et ⌦ est le domaine admissible.

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é.

Soit n aliments et m éléments nutritifs. L’aliment i contient une quantité aji de


l’élément nutritif j.
aliment 1 ··· aliment n
élément nutritif 1 a11 ··· a1n
.. .. ..
élément nutritif m am1 ··· amn
Soit ci le coût unitaire de l’aliment i et soit bj le contenu nutritif recherché de l’élément
j.

Le problème consiste à déterminer le mélange à e↵ectuer pour synthétiser b pour un coût


minimum (dans une variante, on spécifie les contenus nutritifs minimaux de l’aliment de
synthèse).

Introduction 1–12
Variables. Soit xi la quantité de l’aliment i utilisée pour la synthèse.

Contraintes. On souhaite synthétiser le contenu nutritif idéal


P
ajixi = bj

Objectif. On cherche à minimiser le coût total


P
i ci xi .

Introduction 1–13
Problème de transport

Un produit est transporté de m origines vers n destinations. Le produit est disponible en


quantités a1, a2, . . . , am aux origines et les demandes aux destinations sont de
b1, b2, . . . , bn. Le coût de transport d’une unité du produit de l’origine i à la destination j
est de cij .

On désire déterminer les quantités du produit à transporter de i à j de manière à


satisfaire les demandes tout en minimisant le coût total des transports.

Introduction 1–14
Variables. xij la quantité de produit à transporter de i à j.

Contraintes. On ne peut pas dépasser les disponibilités aux origines


P
j xij  ai

Les demandes aux destinations sont satisfaites


P
i xij bj
P
Objectif. Le coût total i,j cij xij est minimum.

Introduction 1–15
Problème de flot dans un réseau

On considère un réseau de communication de n noeuds. Les noeuds sont connectés entre


eux par des liens de communication. Un lien entre le noeud i et le noeud j est représenté
par le couple (i, j). Nous supposons que chaque lien (i, j) possède une capacité
maximale de uij unités de flot (uij = 0 en cas d’absence de lien). La transmission sur le
lien (i, j) coûte cij par unité de flot tranmise.

Le noeud 1 génère b unités qui doivent être transmises au noeud n. La transmission se


fait, soit par un lien direct (1, n), soit par une suite de liens.

On désire trouver le flot qui permet la transmission pour un coût minimum.

Introduction 1–16
Variables. Soit xij la quantité de flot qui traverse le lien (i, j).

Contraintes. Bilan au noeud 1


P P
j xj1 j x1j = b

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.

La demande d’infirmières pour le jour i (i = 1, . . . , 7) est de di.

Combien d’infirmières faut-il pour satisfaire cette demande?

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 =

-20 -21 -19 -23 -18 -20 -17

f =

1 1 1 1 1 1 1

Introduction 1–26
>> linprog(f, A, b) Optimization terminated successfully.

ans =

1.8000 8.8000 -1.2000 7.8000 0.8000 3.8000 5.8000

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.

Solution du problème non relaxé (1, 6), coût optimal 33.

Introduction 1–28
Problème relaxé

Une manière de procéder pour résoudre un problème en nombres entiers consiste à


ignorer la contrainte “xi entier”. On obtient ainsi une relaxation du problème.

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

On rempli un sac à dos d’objets. Il y a n objets susceptibles de rentrer dans le sac.


L’objet i est de poids ai et procure une satisfaction ci. Parmi les ensembles d’objets dont
la somme des poids ne dépasse pas b trouvez ceux pour lesquels la somme des
satisfactions est maximum.

Introduction 1–30
Problème du sac à dos
(Knapsack problem)

Variables. Soit xi = 1 si l’objet i est inclus et xi = 0 sinon.

Equations. Le poids du sac ne dépasse pas b.


Pn
i=1 ai xi  b

Les variables sont binaires

xi 2 {0, 1}

Objectif. La satisfaction globale est maximum


Pn
maximiser i cixi

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.

Optimisation mixte: xi entiers pour i 2 N .

Optimisation en variables binaires: xi 2 {0, 1}.

Introduction 1–32
Problème d’a↵ectation
(Assignment problem)

Répartition optimale de tâches

Il y a n personnes disponibles et n tâches a accomplir. A chaque personne on a↵ecte


exactement une tâche. On souhaite que toutes les tâches soient a↵ectées. Le coût de la
réalisation de la tâche j par la personne i est de cij . On cherche une a↵ectation des
tâches qui minimise le coût total.

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

Variables. Soit xij = 1 si la personne i e↵ectue la tâche j et xij = 0 sinon.

Equations. Chaque personne e↵ectue exactement une tâche


Pn
j=1 xij = 1 i = 1, . . . , n

Chaque tâche est e↵ectuée par exactement une personne


Pn
i=1 xij = 1 j = 1, . . . , n

Les variables sont binaires

xij 2 {0, 1}

Objectif. Le coût total est minimum


Pn
minimiser i,j=1 cij xij

Introduction 1–34
Problème d’a↵ectation (examen Juin 2002)

Il y a 50 groupes d’étudiants en première candidature FSA. On souhaite a↵ecter un


projet par groupe. Il y a 10 projets disponibles et chaque projet peut être a↵ecté à au
plus 10 groupes. On a demandé à chaque groupe de classer les trois projets qui ont leur
préférence. On souhaite a↵ecter à chaque groupe un des projets qu’il a classés et
maximiser le nombre de groupes qui recoivent leur premier choix. S’il y a plusieurs
a↵ectations qui satisfont cette contrainte, on souhaite, parmi l’ensemble de ces
a↵ectations, choisir celle qui maximise le nombre de groupes qui recoivent leur deuxième
choix. Vous êtes coordinateur d’année en FSA; proposez une manière pour résoudre ce
problème.

Introduction 1–35
Optimisation de portefeuille

Harry M. MARKOWITZ. 1990 Nobel Laureate in Economics.

Un investisseur désire maximiser le rendement attendu de ses investissements tout en en


contrôlant le risque. Il répartit ses ressources entre plusieurs produits financiers.

Introduction 1–39
Le graal

Les problèmes d’optimisation possèdent souvent des milliers de variables et de


contraintes. Ils possèdent rarement une solution analytique.

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

minimiser f (x1, . . . , xn)


sous la contrainte (x1, . . . , xn) 2 ⌦
Variables: réelles, entières, booléennes.

Objectif: linéaire, quadratique, non-linéaire, convexe.

Contraintes: (sans), linéaires, convexe.

Mais aussi...

Modèles: Optimisation multicritère, modèles stochastiques, modèles temporels, etc.

Méthodes: Optimisation quadratique, optimisation de réseaux, optimisation convexe,


dérivation symbolique, programmation dynamique, méthodes de points intérieurs, etc.

Introduction 1–44
Bref historique

• 1907. de la Vallée Poussin. Solution de kAx bk1.


• 1930s. Kantorovich (Union soviétique). Applications à l’économie. Plannification de production.
• 1940s. Dantzig. Problèmes logistiques militaires durant la deuxième guerre mondiale. (1947:
Algorithme du simplexe.)
• 1950s–60s. Identification d’applications dans beaucoup d’autres domaines. Optimisation de structures,
théorie du contrôle, conception de filtres, etc.
• 1979. Algorithme de l’ellipsoide (Khachiyan). Plus efficace que l’algorithme du simplexe dans le pire
des cas, mais moins rapide en pratique.
• 1984. Algorithme de point intérieur (Karmarkar). Complexité polynomiale. Plus efficace en pratique.
• 1984–aujourd’hui. Beaucoup de variations des méthodes de point intérieur. Logiciels spécialisés pour
des problèmes de grande taille.

Introduction 1–45
Les logiciels

Microsoft Excel. Le Solveur de Microsoft Excel utilise le code d’optimisation non


linéaire Generalized Reduced Gradient (GRG2) mis au point aux Etats-Unis par Leon
Lasdon, University of Texas (Austin) et Allan Waren, Cleveland State University. Les
problèmes linéaires et de nombres entiers utilisent la méthode simplexe, avec des bornes
sur les variables, ainsi que la méthode branch-and-bound mise en oeuvre par John
Watson et Dan Fylstra, Frontline Systems, Inc.

Matlab
X=LINPROG(f,A,b) solves the linear programming problem:

min f’*x subject to: A*x <= b

X=QUADPROG(H,f,A,b) solves the quadratic programming problem:

min 0.5*x’*H*x + f’*x subject to: A*x <= b x

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.

2. Géométrie des polyèdres.

3. Algorithme du simplexe.

4. Dualité.

5. Optimisation en nombres entiers.

Ensuite: Optimisation non-linéaire.

Introduction 1–48
Ouvrages élémentaires généraux

Linear and Nonlinear Programming (Second Edition), David Luenberger, Addison


Wesley, 1984.

Linear and Nonlinear Programming, Stephen Nash and Ariela Sofer, McGraw-Hill,
1996.

Introduction to Mathematical Programming (Second Edition), Frederick Hillier and


Gerald Lieberman, McGraw-Hill, 1995.

Numerical Optimization, Jorge Nocedal and Stephen Wright, Springer, 1999.

Practical Optimization Methods, A. Bhatti, Springer, 2000.

Convex optimization, S. Boyd, L. Vandenberghe, Stanford University, Lecture Notes,


1998-1999.

Introduction 1–49
Ouvrages élémentaires spécialisés

Optimisation linéaire

Introduction to Linear Optimization, Dimitri Bertsimas and John Tsitsiklis, Athena


Scientific, 1997.

Linear Programming. Foundation and Extensions, Robert Vanderbei, Kluwer


Academic Publishers, 1996.

Optimisation non-linéaire

Nonlinear Programming, Dimitri Bertsekas, Athena Scientific, 1999.

Optimisation en nombres entiers

Integer Programming, Laurence Wolsey, Wiley, 1998.

Introduction 1–50
Ouvrages plus pointus

Theory of Linear and Integer Programming, Alexander Schryver, Wiley, 1986.

Interior-Point Polynomial Algorithms in Convex Programming, Yurii Nesterov and


Arkadi Nemirovskii, SIAM Studies in Applied Mathematics, 1994.

Integer and Combinatorial Optimization, George Nemhauser and Laurence Wolsey,


Wiley, 1988.

Introduction 1–51
Vincent Blondel INMA1702 (2007-2008)

Cours 2
Forme standard et variantes

Beaucoup de problèmes d’optimisation sont linéaires, ce qui en rend la résolution plus


aisée. Le caractère linéaire d’un problème n’est parfois pas immédiatement apparent.

2–1
Forme générale

minimiser (ou maximiser) cT x


aTi x  bi i 2 M1
aTi x bi i 2 M2
aTi x = bi i 2 M3
xi 0 i 2 N1
xi  0 i 2 N2

Forme standard et variantes 2–2


Forme géométrique

Un programme linéaire sous forme géométrique est un problème de la forme


minimiser cT x
Ax b

Forme standard et variantes 2–3


De la forme générale à la forme géométrique

• max cT x = min( cT x).


• La contrainte aT x  b est équivalente à la contrainte aT x b.
• Les contraintes xi 0 et xi  0 sont des cas particuliers des contraintes de la forme
aT x b.
• La contrainte aT x = b est équivalente aux contraintes conjointes aT x b et aT x  b.

Conclusion. Tout programme linéaire peut s’écrire sous forme géométrique


minimiser cT x
Ax b

Forme standard et variantes 2–4


Le programme linéaire
maximiser 2x1 x2 + 4x3
x1 + x2 + x4  2
3x2 x3 = 5
x3 + x4 3
x1 0
x3  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 géométrique

minimiser 2x1 + x2 4x3


x1 x2 x4 2
3x2 x3 5
3x2 + x3 5
x3 + x4 3
x1 0
x3 0

Forme standard et variantes 2–5


Forme standard

Un programme linéaire sous forme standard est un problème de la forme


minimiser cT x
Ax = b
x 0

Forme standard et variantes 2–6


Interprétation de la forme standard

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.

Le problème est celui de la synthèse


P du vecteur cible b par un choix de quantités positives
xi qui minimise le coût total cixi.

Forme standard et variantes 2–7


De la forme géométrique à la forme standard

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.

Forme standard et variantes 2–8


Le programme linéaire
minimiser 2x1 + 4x2
x1 + x2 3
3x1 + 2x2 = 14
x1 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

minimiser 2x1 + 4x+


2 4x2
x1 + x+2 x2 s1 = 3
3x1 + 2x+
2 2x2 = 14
x1, +
x2 , x2 , s1 0

Forme standard et variantes 2–9

Vous aimerez peut-être aussi