Cours Optimisation
Cours Optimisation
Cours Optimisation
1
Objec1fs du module
2
CONTENU DU MODULE
3
Recherche opérationnelle (RO)
4
Origines de la RO
5
• Modélisation
Traduction de problèmes réels en
équations mathématiques
• Optimisation
Identification de la meilleure configuration
possible d’un système
• Simulation
Reproduction du fonctionnement d’un
système complexe par un ordinateur
6
Techniques de la RO
7
Modèle de programma1on linéaire
8
9
Exemple introduc1f: cas Produc1on
1 lingot Acier LQ (300DH) 1 lingot Acier HQ (800€)
2kg 1kg
4kWh 5kWh
3h 10h
10
Formalisa)on du problème (1/3)
11
1) Variables de décision
11
Formalisa)on du problème (2/3)
12
2) Contraintes
12
Solu)ons
13
Solutions admissibles
13
Représenta)on graphique
14
15
Formalisa)on du problème (3/3)
16
16
Solutions
17
Solu@on op@male
Théorème
S’il existe une solu@on op@male, alors elle est égale à un
sommet du simplexe de l’ensemble des solu@ons admissibles.
17
18
Programmation linéaire
Méthode graphique
• Sommets du simplexe
• Droite isoprofit
• Fonc@on-objec@f
18
Méthode graphique
19
Point O :
19
Méthode graphique
20
Point D, solu@on de :
Z=1200k€
20
Méthode graphique
21
Point C, solution de :
Z=2067k€
21
Méthode graphique
22
Point A, solution de :
Z=2400k€
22
Méthode graphique
23
Point B, solu@on de :
Z=2520k€
23
Méthode graphique
24
24
25
25
Algorithme du simplexe (max)
26
26
Algorithme du simplexe
27
Algorithme du simplexe
27
Forme canonique
28
Maximiser
28
Forme canonique
29
29
Variables d’écart
30
Exemple :
30
Forme standard
31
Exemple :
31
Solu)on ini)ale admissible
32
Base Résultat
2 1 1 0 0 8
4 5 0 1 0 20
3 10 0 0 1 30
-Z 300 800 0 0 0 0
33
Etape 0 : tableau initial
34
Base Résultat
2 1 1 0 0 8
4 5 0 1 0 20
3 10 0 0 1 30
-Z 300 800 0 0 0 0
300 800 0 0 0 0
35
Interprétation géométrique
36
Base Résultat
2 1 1 0 0 8
4 5 0 1 0 20
3 10 0 0 1 30
-Z 300 800 0 0 0 0
36
Etape 1 : choix du pivot, variable sortante
37
Base Résultat
2 1 1 0 0 8
4 5 0 1 0 20
3 10 0 0 1 30
37
Interprétation géométrique
38
2 1 1 0 0 8 8/1=8
4 5 0 1 0 20 20/5=4
3 10 0 0 1 30 30/10=3
-Z 300 800 0 0 0 0
38
Etape 1 : choix du pivot
39
39
Etape 2 : mise à jour du tableau
40
Base Résultat
2 1 1 0 0 8
4 5 0 1 0 20
3 10 0 0 1 30
-Z 300 800 0 0 0 0
Base Résultat
1,7 0 1 0 -0,1 5
2,5 0 0 1 -0,5 5
0,3 1 0 0 0,1 3
-Z 60 0 0 -80 0 -2 400
40
Interprétation géométrique
41
Base Résultat
1,7 0 1 0 -0,1 5
2,5 0 0 1 -0,5 5
0,3 1 0 0 0,1 3
-Z 60 0 0 -80 0 -2 400
41
Itération étape 1
42
42
Itération étape 2
43
Base Résultat
1,7 0 1 0 -0,1 5
2,5 0 0 1 -0,5 5
0,3 1 0 0 0,1 3
-z 60 0 0 -80 0 -2 400
Base Résultat
1 0 0 0,4 -0,2 2
Base Résultat
0 0 1 -0,68 0,24 1,6
1 0 0 0,4 -0,2 2
0 1 0 -0,12 0,16 2,4
-Z 0 0 0 -24 -68 -2 520
44
45
Arrêt de l’algorithme
Base Résultat
1 0 0 0,4 -0,2 2
45
l’algorithme du simplexe
46
Forme standard
• Après avoir transformé les contraintes d’inégalité en égalités, nous retrouvons le
problème sous sa forme standard où certaines variables peuvent être des
variables d’écart:
min
Sujet à
z = c1 x1 + c2 x2 + ... + cn xn
a11 x1 + a12 x 2 + ... + a1n x n = b1
a 21 x1 + a 22 x 2 + ... + a 2 n x n = b2
. . . .
. . . .
a m1 x1 + a m 2 x 2 + ... + a mn x n = bm
x1 , x 2 , ..., x n ³ 0
47
min z
Sujet à
c1 x1 + c 2 x 2 + ... + c n x n - z = 0
x1 , x 2 , ..., x n ³ 0
48
Simplexe –forme avec tableaux
Itération typique
• Décrivons une itération typique pour résoudre le problème général avec le simplexe – forme avec
tableaux
• Le système
x1 + + a 1m +1 x m +1 + ... + a 1s x s + ... + a 1n x n = b1
x2 + + a 2 m +1 x m +1 + ... + a 2 s x s + ... + a 2 n x n = b 2
. . . .
x r + + a rm +1 x m +1 + ... + a rs x s + ... + a rn x n = b r
. . . .
x m + a mm +1 x m +1 + ... + a ms x s + ... + a mn x n = b m
c m +1 x m +1 + ... + c s x s + ... + c n x n = z - z
49
Itération typique
50
Étape 1: Choix de la variable d’entrée
{ }
c s = min c j
1£ j £ 0
• En se référant à la dernière ligne du tableau, soit
Variable d’entrée
Si c s ≥ 0, alors la solution
courante est optimale et
l’algorithme s’arrête
51
Étape 2: Choix de la variable de sortie
xi = bi - a is xs ³ 0
Si a is £ 0 " 1 £ i £ m
le problème n’est pas Variable d’entrée
borné et l’algo. s’arrête
Variable d’entrée
Variable de sortie
53
Étape 3: Pivot L’élément de pivot est à l’intersection de la
ligne
a rs de la variable d’entrée xs et de la colonne
de la variable de sortie xr
Variable d’entrée
a rs
Variable de sortie
a rs
54
Étape 3: Pivot
Divisons la ligne r par l’élément
de pivot a rs afin d’obtenir la
ligne r résultante
Variable d’entrée
a rs
Variable de sortie
1
a rs
55
Étape 3: Pivot
Divisons la ligne r par l’élément
de pivot a rs afin d’obtenir la
ligne r résultante
Variable d’entrée
a rs
Variable de sortie
1 ar m +1 arn br
!1!
ars ars ars ars
56
Étape 3: Pivot
Multiplions la ligne r résultante
par a is pour la soustraire de la
ligne i du tableau. Ceci ramène le
coefficient de la variable d’entrée xs à 0. Variable d’entrée
a rs
Variable de sortie
1 ar m +1 arn br
!1!
ars ars ars ars
57
Étape 3: Pivot
Multiplions la ligne r résultante
par a is pour la soustraire de la
ligne i du tableau. Ceci ramène le
coefficient de la variable d’entrée xs à 0. Variable d’entrée
a rs
Variable de sortie
1 ar m +1 arn br
!1!
ars ars ars ars
58
Étape 3: Pivot
Multiplions la ligne r résultante
par a is pour la soustraire de la
ligne i du tableau. Ceci ramène le
coefficient de la variable d’entrée xs à 0. Variable d’entrée
a rs
Variable de sortie
1 ar m +1 arn br
!1!
ars ars ars ars
59
Étape 3: Pivot
Multiplions la ligne r résultante
par a is pour la soustraire de la
ligne i du tableau. Ceci ramène le
coefficient de la variable d’entrée xs à 0. Variable d’entrée
a rs
Variable de sortie
1 ar m +1 arn br
!1!
ars ars ars ars
60
Tableau résultant
pour amorcer la prochaine itération
61
Problèmes équivalents
62
Tableau équivalent au système
u = 30 – 5x – 3y
p = 24 – 2x – 3y
h = 18 – 1x – 3y
z = 0 –8x – 6y
63
u = 30 – 5x – 3y
p = 24 – 2x – 3y
h = 18 – 1x – 3y
z = 0 –8x – 6y
64
u = 30 – 5x – 3y
p = 24 – 2x – 3y
h = 18 – 1x – 3y
z =0 –8x – 6y
br ìï b i üï
xs = = min í : a is > 0ý
a rs 1£i £ m ï a is ïþ
î
65
u = 30 – 5x – 3y
p = 24 – 2x – 3y
h = 18 – 1x – 3y
z = 0 –8x – 6y
La variable correspondante u
devient la variable de sortie
br ìï b i üï
xs = = min í : a is > 0ý
a rs 1£i £ m ï a is ïþ
î
66
u = 30 – 5x – 3y
p = 24 – 2x – 3y
h = 18 – 1x – 3y
z = 0 –8x – 6y
67
• variable de sortie
variable d’entrée
Ceci est équivalent à
(5x + 3y + u =30) / 5 => x + 3/5y + 1/5u =6
68
Divisons cette ligne par 5
• variable de sortie
variable d’entrée
Ceci est équivalent à
(5x + 3y + u =30) / 5 => x + 3/5y + 1/5u =6
69
Divisons cette ligne par 5
variable de sortie
variable d’entrée
x + 3 / 5 y + 1/ 5u = 6
70
Divisons cette ligne par 5
variable de sortie
variable d’entrée
x + 3 / 5 y + 1/ 5u = 6
71
deuxième ligne
moins
2(la première ligne)
ó 2x + 3y + p = 24
– 2 (x +3/5y + 1/5u = 6)
0x + 9/5y –2/5u + p = 12
72
deuxième ligne
moins
2(la première ligne)
Le tableau devient
0 x + 9 / 5 y - 2 / 5u + p = 12
73
deuxième ligne
moins
2(la première ligne)
Le tableau devient
0 x + 9 / 5 y - 2 / 5u + p = 12
74
En répétant le processus pour les autres lignes du tableau
75
Méthode du simplexe – notation matricielle
76
Méthode du simplexe – notation matricielle
• Le problème de programmation linéaire sous la forme standard
min
z = c1 x1 + c2 x2 + ... + cn xn
Sujet à
Sujet à Ax = b
x³0 . . . .
c, x Î R n , b Î R m a m1 x1 + a m 2 x 2 + ... + a mn x n = bm
A matrice m ´ n
x1 , x 2 , ..., x n ³ 0
77
Problème du restaurateur:
x y u p h min z = -8 x - 6 y
Sujaet à 5 x + 3 y + u = 30
æ5 3 1 0 0 ö
ç ÷ 2 x + 3 y + p = 24
A = ç 2 3 0 1 0÷
ç 1 3 0 0 1÷ 1x + 3 y + h = 18
è ø x, y , u , p , h ³ 0
c T = [ -8, -6, 0, 0, 0]
min z = c T x
Sujet à Ax = b
é30 ù x³0
b = êê 24 úú
êë18 úû c, x Î R 5 , b Î R 3
A matrice 3 ´ 5
78
Méthode du simplexe – notation matricielle
min z
Sujet à
79
Méthode du simplexe – notation matricielle
80
Méthode du simplexe – notation matricielle
• Une sous matrice B de A est une base de A si elle est mxm et non singulière
(i.e, B-1 existe)
• Pour faciliter la présentation, supposons que la base B que nous considérons
est composée des m premières colonnes de A, et ainsi
A = [B ! R ]
Dénotons également
éxB ù éc B ù
x=ê ú c=ê ú
ëxR û ëc R û
81
min z
min z
é xB ù
Sujet à Ax =b Sujet à [ B! R] ê x ú = b
ë Rû
cT x - z = 0
é xB ù
x³0 é cB ! cR ù ê ú - z = 0
T T
ë û x
ë Rû
x³0
82
min z
min z é xB ù
Sujet à BxB + RxR =b
Sujet à [ B! R] ê x ú = b
ë Rû
cBT xB + cRT xR - z = 0 é xB ù
é cB ! cR ù ê ú - z = 0
T T
xB , xR ³ 0 ë û x
ë Rû
x³0
83
• Exprimons xB en fonction de xR en utilisant les contraintes du problème
Bx B + Rx R = b
B -1 ( Bx B + Rx R ) = B -1b
B -1 Bx B + B -1 Rx R = B -1b
Ix B + B -1 Rx R = B -1b
• Ainsi
Ix B = - B -1 Rx R + B -1b
84
En remplaçant xB par sa valeur
min z en fonction de xR dans l’équation
de la fonction économique
Sujet à BxB + RxR =b Notons que ces deux problèmes sont
cBT xB + cRT xR - z = 0 équivalents car le deuxième est obtenu
du premier à l’aide d’opérations
xB , xR ³ 0 élémentaires utilisant une matrice
non singulière B-1
min z
Sujet à IxB + B -1RxR = B -1b
cBT (- B -1RxR + B -1b) + cRT xR - z = 0
xB , xR ³ 0
85
min z
Sujet à IxB + B -1RxR = B -1b
cBT (- B -1RxR + B -1b) + cRT xR - z = 0
xB , xR ³ 0
min z
En regroupant les coefficients de xR
Sujet à IxB + B -1RxR = B -1b
0 xB + (cRT - cBT B -1R ) xR - z = -cBT B -1b
xB , xR ³ 0
86
min z
Sujet à Ix B + B -1 Rx R = B -1b
0 x B + (c TR - c TB B -1 R) x R - z = -c TB B -1b
xB , xR ³ 0
87
-
88
Les variables de xB (dénotées Les variables de xR (dénotées
jusqu’ici variables dépendantes) jusqu’ici variables
qui sont associées aux colonnes indépendantes) sont dénotées
de la base B, sont dénotées variables hors base
variables de base
89
Pour obtenir la solution de base associée à la base B,
posons xR = 0
et alors xB = B-1b.
La solution de base est réalisable si xB ≥ 0
90
Puisque tout tableau du simplexe est associé à une base de A constituée
des colonnes associées aux variables de base (variables dépendantes),
il s’ensuit que dans l’algorithme du simplexe, nous passons d’une
solution de base réalisable à une nouvelle solution de base réalisable
ayant une valeur plus petite ou égale.
91
Notion de multiplicateurs du simplexe
• Considérons la dernière ligne du tableau du simplexe associé à la base B qui correspond aux
vecteurs des coûts relatifs des variables:
cBT cRT
c = éë cB , cR
T T T
ùû = éë cBT , cRT ùû - cBT B -1 [ B ! R ] = c T - cBT B -1 A 92
Notion de multiplicateurs du simplexe
c T = c T - cBT B -1 A
où
a • j colonne de la matrice de
dénote la jième
contrainte A
93
Notion de multiplicateurs du simplexe
c j = c j - p T a• j
94
Sensitivité de la valeur optimale aux
modifications des termes de droite
• Les multiplicateurs du simplexe associés à une base optimale permettent de mesurer l’effet de
modifier les termes de droite sur la valeur optimale d’un problème.
• Considérons le problème original et un autre où les termes de droite sont modifiés
min z min z!
Sujet à Ax = b Sujet à Ax! = b + Db
cT x - z = 0 c T x! - z! = 0
x³0 x! ³ 0
95
Sensitivité de la valeur optimale aux
modifications des termes de droite
min z min z!
Sujet à Ax = b Sujet à Ax! = b + Db
cT x - z = 0 c T x! - z! = 0
x³0 x! ³ 0
• Dénotons par B* une base optimale du problème original, et la solution de base optimale
correspondante x*R = 0
x* * = B*-1b = b ³ 0
B
*-1
dont la valeur (optimale pourz *le=problème)
c T* x* * + cest
T *
x
R R = c T
donnée* B
par b = c T
*b
B B B B
96
Sensitivité de la valeur optimale aux
modifications des termes de droite
min z min z!
Sujet à Ax = b Sujet à Ax! = b + Db
cT x - z = 0 c T x! - z! = 0
x³0 x! ³ 0
Db
• Choisissons la valeur de de telle sorte que
B *-1 (b + Db) = B *-1b + B *-1 Db ³ 0
• Donc B* demeure une base réalisable pour le nouveau problème modifié puisque la solution de
base associée est
~* c *T = c T - p *T A
xR = 0
~
x B** = B *-1 (b + Db) ³ 0 p *T = c T* B*-1
B
98
cj
p *T = c T* B*-1
B
• Évaluons la valeur optimale du nouveau problème:
z!* = c T* x! * * + cRT x! *R z * = c T* B*-1b
B B B
*-1
=c B T
(b + Db)
B*
= c T* B*-1b + c T* B*-1Db
B B
= z + p Db
* *T
m
= z* + åi =1
p i* Dbi
99
Sensitivité de la valeur optimale aux
modifications des termes de droite
• Évaluons la valeur optimale du nouveau problème:.
z!* = c T* x! * * + cRT x! *R
B B
=c B T *-1
(b + Db) Ainsi, p i* indique la taux de variation
B* unitaire de la valeur optimale de la
= c T* B*-1b + c T* B*-1Db fonction économique lorsque le terme
B B
= z + p *T Db
* de droite bi de la contrainte i est modifié
m d’une quantité Dbi choisie de telle
= z* + åi =1
p i* Dbi sorte que la base demeure réalisable
pour le nouveau problème.
100
Problème du restaurateur transformé en min
101
x y u p h -z
p *T = c T* B*-1
1 1
B
x 1 0 0 - 0 3
4 4 é 1
0 -
1 ù
ê 4 4 ú
1 3 ê 1 ú é 3
p 0 0 - 1 - 0 3 p *T = [ -8 0 - 6] ê - 1 -
3
ú = ê - 0 - ùú
1
4 4 ê 4 4 ú ë 2 2û
1 5 ê 1 5 ú
y 0 1 - 0 0 3 ê - 12 0
12 ú
ë û
12 12
3 1
-z 0 0 0 1 54
2 2
z!* = z * + p *T Db
é Db ù
é 3 1ùê 1 ú 3 1
= -54 + ê - 0 - ú Db2 = -54 - Db1 + 0Db2 - Db3
ë 2 2 û ê Db ú 2 2
ë 3û
3
Db1 < 0 Þ - Db1 > 0 Þ z!* > z *
2
102