Mathematics">
Prog Lineaire
Prog Lineaire
Prog Lineaire
Recherche opérationnelle
Tentative de définition
Programmation linéaire et recherche
Ensemble de méthodes (algorithmiques, mathématiques,
opérationnelle modélisation) afin de prendre des décisions optimales ou proches
de l’optimum dans des problèmes complexes, qui traitent de la
maximisation d’un profit ou la minimisation d’un coût.
Ioan Todinca
Ioan.Todinca@univ-orleans.fr • Comment aller le plus vite d’Orléans à Berlin, en voiture?
tél. 02 38 41 72 93
bureau : en bas à gauche • Comment ordonnancer les tâches d’un projet en fonction de la
main d’œuvre, tout en minimisant sa durée?
• Comment investir ses 1000 euros d’économie de sorte à
maximiser le profit obtenu après deux ans?
1/56 2/56
Introduction Méthode graphique Simplexe Dualité Introduction Méthode graphique Simplexe Dualité
3/56 4/56
Introduction Méthode graphique Simplexe Dualité Introduction Méthode graphique Simplexe Dualité
5/56 6/56
Introduction Méthode graphique Simplexe Dualité Introduction Méthode graphique Simplexe Dualité
7/56 8/56
Introduction Méthode graphique Simplexe Dualité Introduction Méthode graphique Simplexe Dualité
Un autre exemple
Programme linéaire : définition
• Variables réelles : Vous disposez de 10000 euros que vous souhaitez investir. Votre
x1 , x2 , . . . , xn banque vous propose trois types d’investissements. Pour
• Fonction objectif linéaire, à optimiser (min ou max) :
l’investissement A le rendement est de 9% et la somme maximum
que l’on peut investir est de 4000 euros. Pour l’investissement B
z = c1 x1 + c2 x2 + · · · + cn xn
on peut investir jusqu’à 5000 euros, avec un rendement de 4%.
• Contraintes linéaires (égalités ou inégalités) :
Enfin le produit C a un rendement de 8% pour un montant
a11 x1 + a12 x2 + · · · + a1n xn ≤ b1 maximum de 5000 euros.
a21 x1 + a22 x2 + · · · + a2n xn ≥ b2
··· 1. Exprimer ce problème comme un PL. Donner la solution
am1 x1 + am2 x2 + · · · + amn xn = bm optimale.
2. La banque change d’avis. Si vous souhaitez faire un
Solution : toute affectation des variables qui respecte les investissement (A, B ou C) il faut y mettre la somme exacte
contraintes (respectivement 4000, 5000, et 5000 euros). Mettre à jour
Solution optimale : solution qui optimise (maximise ou minimise) votre modèle ; est-ce toujours un PL?
la fonction objectif.
9/56 10/56
Introduction Méthode graphique Simplexe Dualité Introduction Méthode graphique Simplexe Dualité
11/56 12/56
Introduction Méthode graphique Simplexe Dualité Introduction Méthode graphique Simplexe Dualité
• Variables : x1 , . . . , xn
• Donner un exemple de programme linéaire qui n’a pas de
• L’ensemble de points qui satisfont une équation (égalité) solution.
linéaire forme un hyperplan.
• Proposer un PL qui a des solutions, mais pas de solution
• Les points qui satisfont une inégalité linéaire forment un optimale.
demi-espace.
• Proposer un PL qui a plusieurs solutions optimales.
• L’ensemble des solutions d’un ensemble de contraintes :
• Essayer de résoudre par la méthode graphique le système
polyèdre convexe.
suivant :
• Solution optimale (si elle existe) : sommet du polyèdre.
objectif : max 2x + y
Limites : précision ; maximum 3 variables. contraintes : x2 + y2 ≤ 1
Si vous arrivez à visualiser un PL avec 4 variables ou plus... pensez x ≥ 0, y ≥ 0
à consulter un bon psy.
13/56 14/56
Introduction Méthode graphique Simplexe Dualité Introduction Méthode graphique Simplexe Dualité
n
X
[G. Dantzig, 1947] max cj xj
j=1
• Algorithme de résolution de programmes linéaires
• Facile à comprendre et à implanter n
X
• Efficace en pratique, même pour un nombre important de contraintes : aij xj ≤bi i = 1, 2, . . . , m
j=1
variables et de contraintes
xj ≥ 0 j = 1, 2, . . . , n
• Efficacité au pire cas : on en reparlera, voir aussi cours
d’algorithmique. Question : comment mettre un problème quelconque sous forme
standard?
15/56 16/56
Introduction Méthode graphique Simplexe Dualité Introduction Méthode graphique Simplexe Dualité
PL équivalent :
x4 = 5 − 2x1 − 3x2 − x3
max 5x1 + 4x2 + 3x3 x5 = 11 − 4x1 − x2 − 2x3
contraintes 2x1 + 3x2 + x3 ≤ 5 x6 = 8 − 3x1 − 4x2 − 2x3
4x1 + x2 + 2x3 ≤ 11 z = 5x1 + 4x2 + 3x3
3x1 + 4x2 + 2x3 ≤ 8
x1 , x2 , x3 ≥ 0 max z, sous contraintes : x1 , x2 , x3 , x4 , x5 , x6 ≥ 0
Solution initiale : x1 = x2 = x3 = 0, x4 = 5, x5 = 11, x6 = 8 ;
z = 0.
Si on augmente x1 , ça augmente z!
17/56 18/56
Introduction Méthode graphique Simplexe Dualité Introduction Méthode graphique Simplexe Dualité
5 3 1 1
1. De combien ? x1 = 2 − 2 x2 − 2 x3 − 2 x4
x1 ≤ 52 car x4 = 5 − 2x1 − 3x2 − x3 ≥ 0. x5 = 1 + 5x2 + 2x4
1 1 1 3
2. Nouvelle solution ? x6 = 2 + 2 x2 − 2 x3 + 2 x4
x1 = 12 , x2 = x3 = x4 = 0, x5 = 1, x6 = 1
2 ;z= 25
2 . 25 7 1 5
z = − 2 x2 + 2 x3 − 4 x4
3. Reformuler le système afin d’exprimer les variables x1 , x5 , x6 en 2
fonction de x2 , x3 , x4 .
x1 = 52 − 23 x2 − 12 x3 − 21 x4 Augmenter qui? De combien? Qu’obtient-on?
x3 x3 = 1 (x6 = . . . ) à droite : x2 , x3 , x6
19/56 20/56
Introduction Méthode graphique Simplexe Dualité Introduction Méthode graphique Simplexe Dualité
Introduction Méthode graphique Simplexe Dualité Introduction Méthode graphique Simplexe Dualité
Introduction Méthode graphique Simplexe Dualité Introduction Méthode graphique Simplexe Dualité
min x1 + 2x2
contraintes x1 + x2 = 10
x1 − x2 ≥ −10
max 5x1 + 5x2 + 3x3 x1 ≥ 0
contraintes x1 + 3x2 + x3 ≤ 3
−x1 + 3x3 ≤ 2 • min z
2x1 − x2 + 2x3 ≤ 4 → max −z
P
2x1 + 3x2 − x3 ≤ 2 • ai xP
i =b P
x1 , x2 , x3 ≥ 0 → ai xi ≤ b et ai xi ≥ b
P
• ai xP
i ≥b
→ −ai xi ≤ −b
• pas de contrainte x ≥ 0
→ on remplace x par x + − x − , avec x + , x − ≥ 0
27/56 28/56
Introduction Méthode graphique Simplexe Dualité Introduction Méthode graphique Simplexe Dualité
29/56 30/56
Introduction Méthode graphique Simplexe Dualité Introduction Méthode graphique Simplexe Dualité
Lemme
Si deux dictionnaires ont les mêmes variables de base, ils sont
identiques.
• Une ou plusieurs variables de base ont une valeur nulle.
• On ne peut augmenter aucune variable hors base. Théorème
L’algorithme du simplexe termine sur une solution optimale, ou
On fait néanmoins un changement de base. alors il boucle.
La valeur de l’objectif n’augmente pas
... mais ça devrait aller mieux dans quelques étapes. • Les cas de bouclage sont très rares.
• Le bouclage est facile à détecter.
• Il existe des solutions simples pour éviter le bouclage, par
exemple en choisissant à chaque itération comme variables
sortante et entrante celles d’indice minimum.
31/56 32/56
Introduction Méthode graphique Simplexe Dualité Introduction Méthode graphique Simplexe Dualité
Dans la pratique :
• Le nombre d’itérations est proportionnel au nombre de • Trouver un autre dictionnaire faisable.
contraintes initiales (typiquement entre 3m/2 et 3m).
• Ou prouver que le problème n’a pas de solution!
• Croit très peu avec le nombre n de variables initiales.
33/56 34/56
Introduction Méthode graphique Simplexe Dualité Introduction Méthode graphique Simplexe Dualité
n
X
contraintes : aij xj ≤ bi i = 1, 2, . . . , m max x1 − x2 + x3
j=1 contraintes 2x1 − x2 + 2x3 ≤ 4
xj ≥ 0 j = 1, 2, . . . , n 2x1 − 3x2 + x3 ≤ −5
devient : −x1 + x2 − 2x3 ≤ −1
x1 , x2 , x3 ≥ 0
min x0
n
X
contraintes : aij xj −x0 ≤ bi i = 1, 2, . . . , m
j=1
xj ≥ 0 j = 0, 1, . . . , n
35/56 36/56
Introduction Méthode graphique Simplexe Dualité Introduction Méthode graphique Simplexe Dualité
37/56 38/56
Introduction Méthode graphique Simplexe Dualité Introduction Méthode graphique Simplexe Dualité
1 1 0 0 0 0
5
2 0 1 − 12 0 10
Introduction Méthode graphique Simplexe Dualité Introduction Méthode graphique Simplexe Dualité
Introduction Méthode graphique Simplexe Dualité Introduction Méthode graphique Simplexe Dualité
Primal :
Théorème (Dualité faible)
n
X
max cj xj Pour toute solution du primal et toute solution du dual, z,
j=1 l’objectif du primal, est inférieur ou égal à w , l’objectif du dual.
n
X Preuve:
contraintes : aij xj ≤ bi i = 1, 2, . . . , m n
X m
X
j=1 z = cj xj contraintes dual :cj ≤ aij yi
xj ≥ 0 j = 1, 2, . . . , n j=1 i=1
Xn Xm
Dual : ≤ ( aij yi )xj commutativité, associativité
m j=1 i=1
X Xm X n n
X
min bi y i = ( aij xj )yi contraintes primal : aij xj ≤ bi
i=1
i=1 j=1 j=1
Xm
m
X ≤ bi yi objectif dual
contraintes : aij yi ≥ cj j = 1, 2, . . . , n
i=1
i=1 = w
yi ≥ 0 i = 1, 2, . . . , m
43/56 44/56
Introduction Méthode graphique Simplexe Dualité Introduction Méthode graphique Simplexe Dualité
Introduction Méthode graphique Simplexe Dualité Introduction Méthode graphique Simplexe Dualité
z= dernier dico
n m m
X n
X m
X n
X
X X
= z∗ + c j xj + c n+i xn+i yi∗ = −c n+i (z ∗ − bi yi∗ ) + (c j + aij yi∗ )xj = cj xj
j=1 i=1 i=1 j=1 i=1 j=1
n
X m
X n
X En mettant xj := 0, j = 1, . . . , n on obtient
= z∗ + c j xj − yi∗ xn+i xn+i = bi − aij xj
j=1 i=1 j=1 m
X
Xn Xm n
X bi yi = z ∗ ,
= z∗ + c j xj − yi∗ (bi − aij xj ) comm., assoc.
i=1
j=1 i=1 j=1
Xm Xn m
X donc
= (z ∗ − bi yi ) + (c j + aij yi∗ )xj premier dico
w∗ = z∗
i=1 j=1 i=1
n
X (objectif primal = objectif dual).
= cj xj
j=1
49/56 50/56
Introduction Méthode graphique Simplexe Dualité Introduction Méthode graphique Simplexe Dualité
Pour prouver que les yi∗ forment une solution du dual, remarquer Soient x1∗ , . . . , xn∗ une solution du primal et y1∗ , . . . , ym
∗ une solution
Rappel :
Théorème (Ecarts complémentaires version II)
n
X m
X
z = cj xj contraintes dual :cj ≤ aij yi Une solution x1 , . . . , xn du primal est optimale si et seulement si il
j=1 i=1 existe des nombres y1∗ , . . . , ym
∗ tels que :
Xn Xm
• y1∗ , . . . , ym
∗ forment une solution du dual ;
≤ ( aij yi )xj commutativité, associativité
j=1 i=1
• si xj∗ > 0 alors la jème contrainte du dual est atteinte
m X n n Xm
X X
= ( aij xj )yi contraintes primal : aij xj ≤ bi ( aij yi∗ = cj ) ;
i=1 j=1 j=1 i=1
m
X • si la ième contrainte du primal n’est pas atteinte
≤ bi yi objectif dual Xm
i=1 ( aij xj∗ < bi ) alors yi∗ = 0.
= w j=1
On a z = w ssi les deux inégalités deviennent des égalités : Application : si l’on nous propose une solution du primal, pour
• la jème contrainte du dual est atteinte ou xj = 0 ; vérifier son optimalité il suffit de résoudre le système d’équations
• la ième contrainte du primal est atteinte ou yi = 0 ; (de variables yi∗ ) qui en découle.
53/56 54/56
Introduction Méthode graphique Simplexe Dualité Introduction Méthode graphique Simplexe Dualité
Interprétation économique de la dualité yi∗ : profit obtenu par une unité supplémentaire de ressource i.
Théorème
Primal Dual
X n
Xm Pour des valeurs ti suffisament faibles, le programme linéaire
max cj xj min bi yi Pn
j=1 i=1
max j=1 cj xj
n
X m
X
contr : aij xj ≤ bi contr : aij yi ≥ cj Pn
contr. : j=1 aij xj ≤ bi + ti i = 1, 2, . . . , m
j=1 i=1
xj ≥ 0 j = 1, 2, . . . , n
xj ≥ 0 yi ≥ 0
pour tout i = 1, . . . , m et tout j = 1, . . . , n. a une solution optimale de valeur