Documente Academic
Documente Profesional
Documente Cultură
Méthodes Numériques
2 Les coniques 14
Rappels de cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Exercices corrigés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3 La méthode de Beale 31
Exercices corrigés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4 La méthode de Dantzig 46
Rappels de cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Exercices corrigés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5 La méthode de Wolfe 57
Rappels de cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Exercices corrigés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
1
Les coefficients λ s’appellent les coefficients de Kuhn-Tucker. Il y en a autant
que de contraintes. Le coefficient λj est associé à la contrainte gj (x) ≤ bj .
Les conditions de Kuhn-Tucker sont des conditions nécessaires qui sont réa-
lisées à l’optimum du problème. Elles s’écrivent vectoriellement de la manière
suivante :
∂L ∂L
xi ≥ 0 ≤0 xi =0
∂xi ∂xi
∂L ∂L
λj ≥ 0 ≥0 λj =0
∂λj ∂λj
g(x) + x0 = b
2
Dans ce cas, les conditions de Kuhn-Tucker s’écrivent comme ceci :
∂L ∂L
xi ≥ 0 ≤0 xi =0
∂xi ∂xi
∂L ∂L
x0j ≥ 0 ≤0 x0j 0 = 0
∂x0j ∂xj
∂L
λj ≥ 0 =0
∂λj
Exercices corrigés
Programme 1
Max (x31 − 3x2 )
x1 − x2 + 2 ≥ 0
2x + x − 2 ≥ 0
1 2
x1 + 2x 2 − 10 ≤ 0
7x1 + 2x2 − 28 ≤ 0
x1 , x2 ≥ 0
−x1 + x2 ≤ 2
−2x1 − x2 ≤ −2
x1 ≥ 0, x2 ≥ 0, λ1 ≥ 0, λ2 ≥ 0, λ3 ≥ 0, λ4 ≥ 0
Il faut ensuite calculer les dérivées partielles par rapport à ces variables
et poser les conditions de signe correspondantes. Dans le cas des dérivées par
3
rapport aux coefficients λ, on retrouve les contraintes :
Ce sont ces dernières conditions qui servent à mener la discussion car elles
présentent une alternative. L’un des deux termes du produit doit être nul. On
discute donc en testant les deux possibilités.
On cherche à maximiser la fonction objectif f = x31 − 3x2 . Intuitivement, on
voit qu’il faut choisir x1 le plus grand possible et x2 le plus petit possible. On
va donc chercher x2 = 0 (les variables doivent être positives).
On est conduit, en remplaçant dans les conditions à x1 = 4, puis λ1 = λ2 =
λ3 = 0 et λ1 = 48/7. C’est l’optimum du problème et on peut vérifier qu’il
remplit toutes les conditions de Kuhn-Tucker.
Programme 2
Max (4x1 − 3x2 )
x + 2x ≤ 7
1 2
2x 1 + 5x 2 ≥8
x1 , x2 ≥ 0
−2x1 − 5x2 ≤ −8
x1 ≥ 0, x2 ≥ 0, λ1 ≥ 0, λ2 ≥ 0
4
Il faut ensuite calculer les dérivées partielles par rapport à ces variables
et poser les conditions de signe correspondantes. Dans le cas des dérivées par
rapport aux coefficients λ, on retrouve les contraintes :
4 − λ1 + 2λ2 ≤ 0
−3 − 2λ1 + 5λ2 ≤ 0
x1 + 2x2 ≤ 7
2x1 + 5x2 ≥ 8
x1 (4 − λ1 + 2λ2 ) = 0
x2 (−3 − 2λ1 + 5λ2 ) = 0
λ1 (x1 + 2x2 − 7) = 0
λ2 (2x1 + 5x2 − 8) = 0
x1 = 7, x2 = 0, λ1 = 4, λ2 = 0.
b
2
● x2 M
●
1
● x1 a
0
y
−1
● ●
−2
−3 −2 −1 0 1 2 3
5
rectangle est S = 2x1 × 2x2 = 4x1 x2 . Le problème s’écrit donc :
Max (4x1 x2 )
2
x1 x2
2
+ 22 = 1
a b
x , x ≥ 0
1 2
6
Corrigé ex. 3 - Économie à deux biens
Il faut maximiser la fonction d’utilité
U (x1 , x2 ) = 2 ln x1 + ln (3 − x2 ).
Les conditions imposées s’écrivent sous la forme de contraintes inégalité : x1 ≥ 1
et x2 ≤ 3. Il faut d’autre part tenir compte des prix p1 et p2 et écrire que l’agent
économique ne peut pas dépenser plus que ce qu’il gagne, autrement dit, il faut
que p1 x1 ≥ p2 x2 .
Finalement le programme d’optimisation s’écrit :
Max 2 ln x1 + ln (3 − x2 )
x 1 ≥ 1
x2 ≤ 3
p1 x1 − p2 x2 ≤ 0
x , x ≥ 0
1 2
−1
− λ2 + λ3 p2 ≤ 0
3 − x2
x1 ≥ 1
x2 ≤ 3
p1 x1 − p2 x2 ≤ 0
λ1 (x1 − 1) = 0
λ2 (x2 − 3) = 0
λ3 (p1 x1 − p2 x2 ) = 0
7
On remarque que, puisqu’on a la condition x1 ≥ 1, on peut exclure le cas où
x1 = 0. La première relation d’exclusion impose donc :
2
+ λ1 − λ3 p1
x1
Par conséquent x2 ne peut pas non plus être nul d’après la troisième contrainte.
La deuxième relation d’exclusion impose donc :
−1
− λ2 + λ3 p2
3 − x2
D’autre part, il n’est pas possible que x2 = 3 car sinon la fonction objectif
ne serait pas définie (à cause du logarithme). La quatrième relation d’exclusion
impose donc que λ2 = 0.
Montrons maintenant que λ3 ne peut pas être nul. S’il l’était, on aurait
−1
λ2 =
3 − x2
ce qui n’est pas possible car le membre de droite est négatif et que λ2 doit être
positif.
Puisque λ3 6= 0, la dernière relation d’exclusion conduit à la relation p1 x1 =
p2 x2 qui indique que l’agent économique travail juste pour satisfaire son besoin
de bien de consommation. Il dépense tout ce qu’il gagne.
La discussion se fait maintenant sur la troisième relation d’exclusion qui n’a
pas encore été utilisée. Il faut distinguer deux cas : ou bien x1 = 1, ou bien
λ2 = 0.
Dans le cas où x1 = 1, les équations conduisent facilement à x2 = p1 /p2 .
Dans le cas où λ2 = 0, on obtient la solution x1 = 2p1 /p2 et x2 = 2.
Il faut ensuite vérifier que les conditions de signe de Kuhn-Tucker sont toutes
vérifiées, ce qui impose des conditions sur p1 et p2 .
On trouve trois possibilités :
p1 < p2
⇒ x1 = 2p1 /p2 , x2 = 2
2p2 ≤ p1 ≤ 3p2 ⇒ x1 = 1, x2 = p1 /p2
p1 > 3p2 ⇒ pas de solution
8
Corrigé ex. 4 - Contrainte dépendant d’un paramètre
Max (x1 − 1)2 (6 − x2 )
x1 ≥ 2
x2 ≤ 5
x1 − mx2 ≤ 0
x , x ≥ 0
1 2
2(x1 − 1)(6 − x2 ) + λ1 − λ3 ≤ 0
−(x1 − 1)2 − λ2 + mλ3 ≤ 0
x1 ≥ 2
x2 ≤ 5
x1 − mx2 ≤ 0
2(x1 − 1)(6 − x2 ) + λ1 − λ3 = 0
9
Cas λ1 = 0
On montre facilement que le cas x2 = 5 conduit à une impossibilité. On en
déduit donc (quatrième relation d’exclusion) que λ2 = 0.
En reportant λ1 = 0 et λ2 = 0 dans les deux relations ci-dessus et en
éliminant λ3 entre elles, on obtient
12m + 1 12m + 1
x1 = x2 =
3 3m
5
La condition x1 ≥ 2 se traduit alors par m ≥ .
12
Cas λ1 6= 0
Cela implique, d’après la trosième relation d’exclusion, x1 = 2 et donc x2 =
2
. La relation x2 ≥ 5 impose donc la condition m ≥ 2/5.
m
En reportant dans les équations ci-dessus, on obtient facilement λ2 = 0, puis
1 5 − 12m
on en déduit λ3 = et finalement λ1 = .
m m
Résumé
12m + 1 12m + 1
Si m ≥ 5/12, la solution est , .
3 3m
2
Si 5/12 ≥ m ≥ 2/5, la solution est 2, .
m
Si m < 2/5, il n’y a pas de solution.
Remarque : si m = 2/5, les trois contraintes sont simultanément saturées,
mais le domaine est réduit au seul point (2,5) !
Min 3x21 − 2x1 x2 + 3x22 − 22x1 − 14x2
−x1 + 3x2 ≤ 1
−3x1 + 7x2 ≤ 0
x1 − x2 ≤ 4
x , x ≥ 0
1 2
10
x1 , x2 , λ1 , λ2 , λ3 ≥ 0
22 − 6x1 + 2x2 + λ1 + 3λ2 − λ3 ≤ 0
14 + 2x1 − 6x2 − 3λ1 − 7λ2 + λ3 ≤ 0
−x1 + 3x2 ≤ 1
−3x1 + 7x2 ≤ 0
x1 − x2 ≤ 4
Il y a aussi les relations d’exclusion :
x1 22 − 6x1 + 2x2 + λ1 + 3λ2 − λ3 = 0
x2 14 + 2x1 − 6x2 − 3λ1 − 7λ2 + λ3 = 0
λ1 (−x1 + 3x2 − 1) = 0
λ2 (−3x1 + 7x2 ) = 0
λ3 (x1 − x2 − 4) = 0
2 ) Le point x1 = 7/2 et x2 = 3/2 est réalisable car ce point vérifie les trois
contraintes, ce qui signifie qu’il appartient au domaine réalisable. On constate
qu’il sature les deux premières inégalités, ce qui signifie qu’il est le point d’in-
tersection des droites représentant ces deux contraintes.
Mais ce point n’est pas optimal. En effet, si on le reporte dans les contraintes,
on obtient λ3 = 0 et, par conséquent, les deux premières relations d’exclusion
conduisent à : (
4 + λ1 + 3λ2 =0
12 − 3λ1 − 7λ2 = 0
d’où on tire λ1 = 32 et λ2 = −12. Cette dernière valeur est impossible car λ2
doit être positif.
3 ) La discussion sur les relations d’exclusion ci-dessus conduit à la solution
(
x∗1 = 13/2
x∗2 = 5/2
11
Corrigé ex. 6 - Allocation de ressources
1 ) Dans le cas où la ressource doit être complètement épuisée, le problème
peut être formulé sous la forme :
Max f1 (x1 ) + f2 (x2 ) + f3 (x3 )
x1 + x2 + x3 = d
x1 , x2 , x3 ≥ 0
x1 + x2 + x3 ≤ d
On doit donc utiliser les conditions de Kuhn-Tucker et non plus celle de La-
grange.
On introduit une variable d’écart x4 comme ceci :
x1 + x2 + x3 + x4 = d.
12
Cette variable représente justement l’excédent de ressource qui n’est pas al-
loué aux trois activités. Cet excédent est revendu au prix unitaire p. On doit
donc ajouter cette recette supplémentaire à la fonction objectif. Le problème est
maintenant :
Max f1 (x1 ) + f2 (x2 ) + f3 (x3 ) + px4
x1 + x2 + x3 + x4 = d
x1 , x2 , x3 , x4 ≥ 0
Le lagrangien devient :
On écrit tout d’abord les conditions de signes portant sur les dérivées par-
tielles :
∂L
= 8 − 2x1 − λ ≤ 0
∂x 1
∂L
∂x = 8 − 4x2 − λ ≤ 0
2
∂L
= 8 − 6x3 − λ ≤ 0
∂x3
∂L = p − λ ≤ 0
∂x4
Il y a ensuite les relations d’exclusion :
x1 (8 − 2x1 − λ) ≤ 0
x2 (8 − 4x2 − λ) ≤ 0
x3 (8 − 6x3 − λ) ≤ 0
x (p − λ) ≤ 0
4
13
12
Si jamais p < 8 − d, alors on a x4 = 0 et on est dans la situation de la
11
question précédente. Cela signifie que le prix de revente des excédents n’est pas
suffisamment intéressant et qu’il n’y a aucun intérêt à ne pas tout répartir.
Si jamais p > 8, au contraire, on aura x1 = x2 = x3 = 0 et donc x4 = d. Cela
signifie que le prix de revente de l’excédent est tellement élevé qu’on préfère ne
rien allouer et tout revendre à ce prix !
3 ) Pour comparer les deux stratégies, il faut connaı̂tre la valeur à l’optimum
de la fonction objectif dans les deux cas étudiés.
6
Dans le premier cas, on calcule f ∗ = 8d − d2 . Dans le deuxième cas, on
11
11
calcule f ∗ = (8 − p)2 + dp. Cette dernière quantité est une fonction de degré 2
24
en p. Elle admet un minimum qu’on trouve en annulant sa dérivée par rapport
à p :
11
− (8 − p) + d = 0
12
12
Cela donne un minimum en p = 8− d et on calcule que la valeur de la fonction
11
6 2
en ce point est 8d − d qui est justement la valeur f ∗ trouvée dans le premier
11
cas.
On en conclut que la deuxième stratégie est meilleure que la première.
2 Les coniques
Rappels de cours
Une conique C est une courbe algébrique de degré 2. C’est l’ensemble des
zéros d’un polynôme de degré 2 à 2 variables, c’est-à-dire l’ensemble des points
(x1 , x2 ) qui vérifient une équation de la forme
Q(X1 , X2 , X3 ) = a1 X12 +a2 X1 X2 +a3 X22 +a4 X1 X3 +a5 X2 X3 +a6 X32 = 0 (8)
Q = tXAX (9)
14
La matrice est définie comme ceci :
1 1
a1 2
a2 a4
2
1 1
A= 2 a2 a3 a5 (10)
1 2
1
a4 a5 a6
2 2
C’est une matrice symétrique. On pose ∆ = det(A). Si ∆ 6= 0, la conique est
dite propre (ou non-dégénérée), autrement elle est dégénérée.
Lorsqu’une forme quadratique est dégénérée, elle se scinde en un produit de
deux polynômes de degré 1. Géométriquement, cela signifie que la conique est
un couple de droites. Si elle est non-dégénérée, la conique est une ellipse, une
hyperbole ou une parabole.
Classification
Afin de déterminer quelle sorte de conique est définie par A, il faut consédérer
la sous-matrice 2 × 2 supérieure gauche, i-e la matrice B obtenue en supprimant
la dernière ligne et la dernière colonne de A :
1
a1 a2
B = 1
2 (11)
a2 a3
2
Le déterminant de B est noté δ. Il vaut
1
δ = a1 a3 − a22 (12)
4
Dans le cas non-dégénéré, la matrice A est de rang 3 et on a la classification
suivante en fonction du déterminant δ = det(B) :
– si δ > 0, C est une ellipse ;
– si δ = 0, C est une parabole ;
– si δ < 0, C est une hyperbole.
Si la conique est dégénérée, A est de rang inférieur à 3 et on a la classification
suivante :
– si δ > 0, C est vide ;
– si δ = 0, C est une paire de droites parallèles (éventuellement confondues) ;
– si δ < 0, C est une paire de droite sécantes.
Le cas de la droite double (droites parallèles confondues) se produit lorsque A
est de rang 1.
Points à l’infini
Hormis dans le cas d’une ellipse, toutes les coniques ont des points à l’infini.
On peut les trouver en faisant tendre X3 −→ 0 dans l’équation (8). À la limite,
on obtient l’équation suivante :
a1 X12 + a2 X1 X2 + a3 X22 = 0
qui peut être réécrite en fonction des variables x1 and x2 comme ceci :
15
x2
On pose t = . La variable t peut être interprétée comme la pente des
x1
directions à l’infini. L’équation précédente devient, après division par x21 :
a1 + a2 t + a3 t2 = 0 (14)
C’est une équation du second degré qui possède des solutions réelles lorsque
son discriminant est non-négatif :
Donc, si δ > 0 (cas d’une ellipse), le discriminant est négatif et il n’y a pas
de solutions : c’est normal puisqu’une ellipse n’a pas de points à l’infini. Si δ < 0
(cas d’une hyperbole), on trouve deux solutions distinctes qui correspondent à la
pente des asymptotes de l’hyperbole. Finalement, si δ = 0 (cas d’une parabole),
on trouve une solution unique qui est la direction asymptotique des branches de
la parabole.
Centre
Certaines coniques ont un centre C. Au centre, le gradient du polynôme
quadratique P est nul. Cela conduit aux équations suivantes :
∂P
=0
∂x1
(16)
∂P
=0
∂x2
En calculant les dérivées partielles, on obtient les équations au centre :
a1 x1 + 1 a2 x2 + a4 = 0
2 (17)
1
a2 x1 + a3 x2 + a5 = 0
2
C’est un système de deux équations linéaires à deux inconnues. Sa matrice
est B et son déterminant est δ. Si δ = det(B) 6= 0, il a une solution unique et la
conique a donc un centre unique. C’est le cas de l’ellipse, de l’hyperbole et des
paires de droites sécantes.
Axes
Les axes de symétrie d’une conique sont des droites passant par le centre.
Leurs vecteurs directeurs sont les vecteurs propres de la matrice B.
Étant donné que B est symétrique, on a les propriétés suivantes :
– les valeurs propres λ1 et λ2 sont réelles (i-e non complexes) ;
– les vecteur propres sont eux aussi réels ;
– la matrice est diagonalisable dans une base orthonormée. Cela signifie
qu’on peut toujours trouver deux vecteur propres orthogonaux dont la
norme est égale à 1. Notons V1 et V2 ces deux vecteurs.
16
Il en résulte qu’une conique a, en général, deux axes et ceux-ci sont ortho-
gonaux entre eux.
Les valeur propres sont les racines du polynôme caractéristique associé à la
matrice B. Ce polynôme est défini par
Équation réduite
Dans le cas d’une conique à centre (ellipse ou hyperbole), on peut changer de
système de coordonnées en translatant l’origine au centre C et en prenant V1 et
V2 comme vecteurs de base. Dans la base {C, V1 , V2 }, désignons les coordonnées
par y1 et y2 . L’équation de la conique dans cette base est remarquablement
simple :
∆
λ1 y12 + λ2 y22 + =0 (20)
δ
La relation entre les coordonnées (x1 , x2 ) et (y1 , y2 ) est donnée par la matrice
de passage T dont les colonnes sont les deux vecteurs V1 et V2 . On a l’identité
suivante : ! !
x1 y1
=T (21)
x2 y2
Exercices corrigés
Conique 1
17
On calcule ∆ = −10125 = −45×225 et δ = 225. La conique est donc une ellipse.
Les coordonnées du centre sont C = (1, 1). Les valeurs propres sont λ1 = 5
et λ2 = 45 et les vecteurs propres correspondants sont respectivement
! !
1 2 1 −1
V1 = √ V2 = √
5 1 5 2
y12
+ y22 = 1
9
3
2
●
1
O
0
−1
−1 0 1 2 3
Conique 2
18
correspondants sont respectivement
! !
1 1 1 1
V1 = √ V2 = √
2 −1 2 1
O
0
−1
−2
−3
−4
−5
−4 −3 −2 −1 0 1 2
Conique 3
19
La droite a pour équation
2 x1 + 3 x2 − 1 = 0
Conique 4
3 − 10 t + 3 t2 = 0
On trouve deux solutions qui sont les pentes des asymptotes : t1 = 1/3 et t2 = 3.
Les asymptotes sont donc les droites passant par le centre et ayant pour
pentes t1 et t2 respectivement. On trouve :
(
x1 − 3 x2 + 8 = 0
3 x1 − x2 = 0
y12 y2
− 2 =1
2 8
20
6
5
4
●
3
2
1
O
0
−2 −1 0 1 2 3 4
Conique 5
3 + 8 t + 4 t2 = 0
On trouve deux solutions qui sont les pentes des asymptotes : t1 = −3/2 et
t2 = −1/2.
21
Les deux droites cherchées sont donc les droites passant par le centre et ayant
pour pentes t1 et t2 respectivement. On trouve :
(
x1 + 2 x2 + 7 = 0
3 x1 + 2 x2 + 15 = 0
O
0
●
−5
−10
−15 −10 −5 0 5
Conique 6
√ √ √ √
− 3x21 + 2x1 x2 + 3x22 + 6 3x1 − 6x2 − 4 − 9 3 = 0
La matrice A représentant la conique est
√ √
− 3 1 3 3
√
A= √ 1 3 −3
√
3 3 −3 −4 − 9 3
22
x2
On pose t = . L’équation précédente devient :
x1
√ √
− 3 + 2 t + 3 t2 = 0
√
On trouve
√ deux solutions qui sont les pentes des asymptotes : t1 = − 3 et
t2 = 3/3.
Les asymptotes sont donc les droites passant par le centre et ayant pour
pentes t1 et t2 respectivement. On trouve :
( √ √
3 x1 + x2 − 3 3 = 0
√
x1 − 3 x2 − 3 = 0
O ●
0
−2
−4
−2 0 2 4 6 8
Conique 7
23
La matrice A représentant la conique est
5 3 −21
A= 3 5 −19
−21 −19 93
●
2
1
O
0
0 1 2 3 4 5
Conique 8
24
La matrice A représentant la conique est
1 3 −13
A= 3 −7 9
−13 9 18
On calcule ∆ = 112 et δ = −16. La conique est donc une hyperbole.
Les coordonnées du centre sont C = (4, 3).
Les pentes des asymptotes sont obtenues avec l’équation :
1 + 6 t − 7 t2 = 0
On trouve deux solutions qui sont les pentes des asymptotes : t1 = −1/7 et
t2 = 1.
Les asymptotes sont donc les droites passant par le centre et ayant pour
pentes t1 et t2 respectivement. On trouve :
(
x1 − x2 − 1 = 0
x1 + 7 x2 − 25 = 0
Les valeurs propres sont λ1 = 2 et λ2 = −8 et les vecteurs propres corres-
pondants sont respectivement
! !
1 3 1 −1
V1 = √ V2 = √
10 1 10 3
L’équation réduite dans la base {C, V1 , V2 } s’écrit
2y12 − 8y22 = 7
8
6
4
●
2
O
0
−2
0 2 4 6 8
25
Corrigé ex. 8 - Famille de coniques dépendant de α
1 ) (4+α) x21 +4(1−α) x1 x2 +(4α+1) x22 +2(2+3α) x1 +2(1−6α) x2 +9α−4 = 0
Dans le cas α = 1, on a l’équation
26
4
3
2
●
1
O
0
−1
−2
−4 −2 0 2 4
alpha=−1 et alpha=1
y12 + y22 = 1
27
La matrice Mm associée à la conique est
m + 1/5 8/5 1
Mm = 8/5
m − 11/5 −2
1 −2 1
et
∆m = m2 − 7m − 8 = (m + 1)(m − 8)
Pour m = −1 et m = 8, la conique est dégénérée. Pour les autres valeurs de m,
il faut discuter selon le signe de δm :
– si −1 < m < 3, le déterminant δm est négatif et la conique est une hyper-
bole ;
– si m < −1 ou m > 3, le déterminant δm est positif et la conique est une
ellipse. Si m = 8, cette ellipse est réduite à un point et, si m > 8, elle est
vide ;
– si m = −1, la conique est un couple de deux droites parallèles ;
– si m = 3, le déterminant δm est nul et la conique est une parabole.
3 ) Les équations au centre de Γm sont
(
(m + 1/5)x1 + 8/5x2 + 1 = 0
8/5x1 + (m − 11/5)x2 − 2 = 0
28
On retrouve le fait que, si m > 8, la conique est vide car tous les coefficients
de cette équation sont alors strictement positifs et l’équation est impossible (en
nombres réels).
Lorsque m = 3, on trouve :
4y12 + 108y2 + 1 = 0.
Pour faire une résolution graphique du programme, il faut tout d’abord re-
présenter le domaine réalisable, c’est-à-dire l’ensemble des points qui vérifient
les contraintes. On doit placer les deux droites
(
D1 : x1 + 2x2 = 4
D2 : 3x1 + x2 = 7
On calcule :
x21 + x22 − 3x1 − 5x2 = (x1 − 3/2)2 − 9/4 + (x2 − 5/2)2 − 25/4
29
5
4
3
● C
y
●
S
1
D1
D2
0
0 1 2 3 4 5
autrement dit
2x1 − x2 = 1/2
On trouve son intersection avec D1 en résolvant le système
(
x1 + 2x2 = 4
2x1 − x2 = 1/2
30
3 La méthode de Beale
Programme 1
2 2
Min(x1 + x2 − 10x1 − 14x2 )
3x1 + 4x2 ≤ 18
x1 et x2 ≥ 0
x0 = 18
Base
∂f
= −2x2 + 14 = 14
∂x2
Puisque 14 > 10, c’est la variable x2 qui va augmenter, tandis que x1 reste
nulle.
Ces dérivées doivent rester positives car la fonction doit croı̂tre (la seconde
ne pose pas de problème puisqu’elle ne dépend pas de x1 ) :
∂f
≥0 ⇐⇒ x1 ≤ 5
∂x1
∂f
≥0 ⇐⇒ x2 ≤ 7
∂x2
31
On recalcule x2 et f en fonction des nouvelles variables hors-base :
9 3 1
x2 = − x1 − x0
2 4 4
25 2 1 02 3 25 5 171
= − x1 − x − x1 x0 + x1 − x0 +
f
16 16 8 4 4 4
On calcule les nouvelles dérivées partielles :
∂f 25 25 3 25
= − x1 − x0 =
∂x1
4 8 8 4
∂f 5 3 1 5
= − − x1 − x0 = −
∂x 0 4 8 8 4
C’est la variable x1 qui va maintenant augmenter, tandis que x0 reste nulle.
On a :
∂f
≥ 0 ⇐⇒ x1 ≤ 2
∂x1
x2 ≥ 0 ⇐⇒ x1 ≤ 6
Donc x1 augmente jusqu’à la valeur 2 mais x2 ne s’annule pas. On n’a donc plus
qu’une seule variable hors-base alors qu’il en faut deux. Pour remédier à cette
situation, on pose
∂f 25 25 3
u= = − x1 − x0
∂x1 4 8 8
Cette variable s’annule si x1 = 2.
La nouvelle situation est donc :
Hors-base u = 0 x0 = 0
Base x1 = 2 x2 = 9/2
On recalcule f et les variables de base en fonction des variables hors-base :
8 3
x1 = 2 − u − x0
25 25
6 4
x2 = 3 + u − x0
25 25
4 1 2
= − u2 − x0 − 2x0 + 49
f
25 25
On calcule les nouvelles dérivées partielles :
∂f 8
=− u=0
∂u
25
∂f = −2 − 2 x0 = −2
∂x0 25
Elles sont négatives ou nulles donc la fonction f ne peut plus augmenter et on
est à l’optimum :
x∗1 = 2
x∗2 = 3
∗
f = 49
La contrainte est saturée puisque x0 est hors-base.
32
Programme 2
2 2
Max 18x1 + 2x2 − (5x1 + 5x2 − 6x1 x2 )
x + x ≤ 3
1 2
x1 + 3x2 ≤ 6
x1 et x2 ≥ 0
x1 = 3 x02 = 6
0
Base
∂f
= 2 + 6x1 − 10x2 (= 14)
∂x2
Puisque 18 > 14, c’est la variable x1 qui va augmenter, tandis que x2 reste
nulle.
Ces dérivées doivent rester positives car la fonction doit croı̂tre (mais la
seconde conduit à une condition toujours vérifiée puisque x1 ≥ 0) :
∂f
≥0 ⇐⇒ x1 ≤ 9/5
∂x1
∂f
≥0 ⇐⇒ x1 ≥ −1/3
∂x2
Par ailleurs, les contraintes impliquent que les deux variables d’écart doivent
rester positives :
x01 = 3 − x1 − x2 ≥ 0 ⇐⇒ x1 ≤ 3
x02 = 6 − x1 − 3x2 ≥ 0 ⇐⇒ x1 ≤ 6
33
On n’a donc plus qu’une seule variable hors-base alors qu’il en faut deux. Pour
remédier à cette situation, on pose
∂f
u1 = = 18 − 10x1 + 6x2
∂x1
Cette variable s’annule si x1 = 9/5, autrement dit, elle est actuellement hors-
base :
Hors-base x = 0 u1 = 0
2
∂f 64 32 64
= − x2 (= )
∂x2 5 5 5
C’est la variable x2 qui va maintenant augmenter, tandis que u1 reste nulle.
On a :
∂f
≥ 0 ⇐⇒ x2 ≤ 2
∂x2
x1 ≥ 0 ⇐⇒ x2 ≥ −3
x01 ≥ 0 ⇐⇒ x2 ≤ 3/4
x02 ≥ 0 ⇐⇒ x2 ≤ 7/6
Donc x2 augmente jusqu’à la valeur 3/4 = Min(2, 3/4, 7/6) et x01 s’annule. La
nouvelle situation est donc :
Hors-base x0 = 0 u1 = 0
1
x1 = 9/4 x2 = 3/4 x02 = 3/2
Base
34
On recalcule f et les variables de base en fonction des variables hors-base :
9 1 3
x1 = − u1 − x01
4 16 8
3 1 5
x2 = + u1 − x01
4 16 8
3 1 9
x02 = − u1 + x01
2 8 4
1 5 2 1 1
f = 24 + u1 − 5x01 − x01 − u21 + u1 x01
2 4 16 4
On calcule les nouvelles dérivées partielles (par rapport aux variables hors-base) :
∂f 1 1 1 1
= − u1 + x01 (= )
∂u1 2 8 4 2
∂f 1 5
= −5 + u1 − x01 (= −5)
0
∂x1 4 2
x1 ≥ 0 ⇐⇒ u1 ≤ 36
x2 ≥ 0 ⇐⇒ u1 ≥ −12
x02 ≥ 0 ⇐⇒ u1 ≤ 12
35
Les dérivées partielles sont maintenant :
∂f
= −8u2 (= 0)
∂u2
∂f
= −4 − 2x01 (= −4)
0
∂x1
La première contrainte est saturée puisque x01 est hors-base, mais la deuxième
∗
ne l’est pas puisque x02 = 1.
x1 = 2 x02 = 16
0
Base
∂f
= 72 − 4x1 − 12x2 (= 72)
∂x2
Puisque 74 > 72, c’est la variable x1 qui va augmenter, tandis que x2 reste
nulle.
Ces dérivées doivent rester positives car la fonction doit croı̂tre :
∂f
≥0 ⇐⇒ x1 ≤ 37/9
∂x1
∂f
≥0 ⇐⇒ x1 ≤ 18
∂x2
36
Par ailleurs, les contraintes impliquent que les deux variables d’écart doivent
rester positives :
x01 = 2 + x1 − 2x2 ≥ 0 ⇐⇒ x1 ≥ −2
x02 = 16 − 2x1 − x2 ≥ 0 ⇐⇒ x1 ≤ 8
On n’a donc plus qu’une seule variable hors-base alors qu’il en faut deux. Pour
remédier à cette situation, on pose
∂f
u1 = = 74 − 18x1 − 4x2
∂x1
Cette variable s’annule si x1 = 37/9, autrement dit, elle est actuellement hors-
base :
Hors-base x = 0 u1 = 0
2
37
On a :
∂f
≥0 ⇐⇒ x2 ≤ 5
∂x2
37
x1 ≥ 0 ⇐⇒ x2 ≤
2
11
x01 ≥ 0 ⇐⇒ x2 ≤
4
x02 ≥ 0 ⇐⇒ x2 ≤ 14
11 37 11
Donc x2 augmente jusqu’à la valeur = Min(5, , , 14) et x01 s’annule. La
4 2 4
nouvelle situation est donc :
Hors-base x01 = 0 u1 = 0
7 11 25
Base x1 = x2 = x02 =
2 4 4
∂f 45 1 9 45
− u1 − x01 (= − )
=−
0
∂x1 4 8 4 4
∂f
On fait donc maintenant diminuer u1 afin que redevienne positive. Les
∂u1
conditions imposent :
∂f
≥0 ⇐⇒ u1 ≤ −10
∂u1
x1 ≥ 0 ⇐⇒ u1 ≤ 70
x2 ≥ 0 ⇐⇒ u1 ≤ 110
x02 ≥ 0 ⇐⇒ u1 ≥ −50
38
La variable u1 ne peut donc dépasser -10 et aucune des variables actuellement
dans la base ne s’annule : il n’y a plus qu’une seule variable hors-base (x01 ). On
doit à nouveau introduire une variable supplémentaire :
∂f 5 1 1
u2 = = − − u1 − x01
∂u1 8 16 8
Actuellement u2 vaut 0 et est donc hors-base.
Le recalcul en fonction des variables hors-base u2 et x01 conduit à :
4 1 0
x1 = 4 + u2 + x
5 5 1
2 2 0
= 3 + u2 −
x2 x
5 1
5
0
x2 = 5 − 2u2 + 2x01
u1 = −10 − 16u2
2
= 266 − 10x01 − x01 − 8u22
f
∂f
= −10 − 2x01 (= −10)
0
∂x1
La première contrainte est saturée puisque x01 est hors-base, mais la deuxième
∗
ne l’est pas puisque x02 = 5.
39
8
6
●
4
y
2
0
0 2 4 6 8
x
12-2)
Les isoquantes sont les coniques d’équation :
40
déplacement depuis l’origine le long de l’axe des x1 . Ce déplacement est arrêté
au point A = (37/9, 0).
8
6
●
C
4
y
●
● S
B
2
● ●
A
0
0 2 4 6 8
74 − 18x1 − 4x2 = 0,
ce qui est l’équation d’une droite. On se déplace le long de cette droite jusqu’à
son intersection avec la première contrainte. On atteint alors le point B =
(7/2, 11/4).
Le déplacement suivant consiste à faire diminuer u1 en laissant x01 nulle, ce
qui signifie qu’on se déplace le long de la première contrainte puisque x01 est la
variable d’écart de cette contrainte. Cela conduit au point S = (4, 3) qui ne peut
pas être dépassé car autrement la fonction objectif diminuerait. S est donc la
solution du problème.
41
technologique, on a les contraintes suivantes :
(
4x1 + 3x2 ≤ 27
x1 + 2x2 ≤ 12
x1 = 27 x02 = 12
0
Base
∂f
= 30 − 6x2 (= 30)
∂x2
Puisque 160 > 30, c’est la variable x1 qui va augmenter, tandis que x2 reste
nulle.
Ces dérivées doivent rester positives car la fonction doit croı̂tre (la seconde
ne dépend pas de x1 ) :
∂f
≥0 ⇐⇒ x1 ≤ 5
∂x1
∂f
≥0 ⇐⇒ x2 ≤ 5
∂x2
Par ailleurs, les contraintes impliquent que les deux variables d’écart doivent
rester positives :
x02 = 12 − x1 − 2x2 ≥ 0 ⇐⇒ x1 ≤ 12
x1 = 5 x01 = 7 x02 = 7
Base
On n’a donc plus qu’une seule variable hors-base alors qu’il en faut deux. Pour
remédier à cette situation, on pose
∂f
u1 = = 160 − 32x1
∂x1
42
Cette variable s’annule si x1 = 5, autrement dit, elle est actuellement hors-base :
Hors-base x = 0 u = 0
2 1
x1 = 5 x01 = 7 x02 = 7
Base
∂f
= 30 − 6x2 (= 30)
∂x2
C’est la variable x2 qui va maintenant augmenter, tandis que u1 reste nulle.
On note que x1 ne dépend pas de x2 . Les contraintes de signe imposent donc :
∂f
≥0 ⇐⇒ x2 ≤ 5
∂x2
x01 ≥ 0 ⇐⇒ x2 ≤ 7/3
x02 ≥ 0 ⇐⇒ x2 ≤ 7/2
Donc x2 augmente jusqu’à la valeur 7/3 = Min(5, 7/3, 7/2) et x01 s’annule. La
nouvelle situation est donc :
Hors-base x0 = 0 u = 0
1 1
43
On calcule les nouvelles dérivées partielles (par rapport aux variables hors-base) :
∂f 2 1 1 2
= − u1 + x01 (= )
∂u 3 4 12 3
1
∂f 16 1 2 16
+ u1 − x01 (= − )
=−
0
∂x1 3 12 3 3
On fait donc augmenter u1 . On note que x2 et x02 augmentent si u1 augmente.
Les autres conditions imposent :
∂f
≥0 ⇐⇒ u1 ≤ 16
∂u1
x1 ≥ 0 ⇐⇒ u1 ≤ 160
∂f 1
= −4 − x01 (= −4)
0
∂x1 2
La fonction objectif ne peut donc plus augmenter et on est à l’optimum :
∗
x1 = 9/2
x∗2 = 3
∗
f = 459
La première contrainte est saturée puisque x01 est hors-base, mais la deuxième
∗ 3
ne l’est pas puisque x02 = .
2
44
Par comparaison, on peut traiter le cas d’un modèle à prix constant en
prenant p1 = 144 et p2 = 27. On a alors affaire à un programme linéaire dont le
maximum se trouve sur la même contrainte mais au point x∗1 = 27/4 et x∗2 = 0.
45
4 La méthode de Dantzig
Rappels de cours
On écrit le programme sous la forme suivante :
t
Max(c.x + xBx)
Ax + x0 = b
x et x0 ≥ 0
2B 0 I −tA −tc
A I 0 0 b (26)
1 1t
− c 0 0 − b 0
2 2
Lorsque l’origine fait partie du domaine de définition, on la prend comme
point de départ. La situation de départ est donc :
x=0 λ=0
0
x =b λ0 = −c
46
Au départ, les variables x et λ sont hors base, les variables x0 et λ0 constituent
la base.
L’algorithme de Dantzig est analogue à celui du simplexe. À partir du tableau
initial, on passe d’un tableau à l’autre par la méthode du pivot.
On distingue cependant deux sortes de tableaux : les tableaux standards sont
ceux pour lesquels toutes les relations d’exclusion sont satisfaites, les tableaux
non standards sont ceux pour lesquels au moins une des relations n’est pas
satisfaite.
Les critères pour déterminer la variable entrante et la variable sortante dif-
fèrent selon que le tableau est standard ou non.
Critère d’entrée : on fait entrer une variable duale. Celle de la paire qui se
trouve entièrement hors-base.
Critère de sortie : on fait sortir la variable qui correspond au plus petit rap-
port positif entre la colonne de droite et la colonne de la variable entrante pour
les variables primales et pour la variable duale de la paire qui est entièrement
dans la base.
Le dernier tableau doit impérativement être standard. On est à l’optimum
lorsque le critère d’entrée ne peut plus s’appliquer, c’est-à-dire lorsqu’il n’y a
plus de variable duale négative dans la base.
Exercices corrigés
Programme 1
2 2
Max(6x1 + 8x2 − x1 − x2 )
3x1 + 4x2 ≤ 25/2
x1 et x2 ≥ 0
47
Le premier tableau est :
x1 x2 x0 λ01 λ02 λ
-2 0 0 1 0 -3 -6 λ01
0 -2 0 0 1 -4 -8 λ02
3 4 1 0 0 0 25/2 x0
-3 -4 0 0 0 -25/4 0
Ce tableau est standard car toutes les relations d’exclusion (24) sont véri-
fiées : pour chacune des paires {x1 , λ01 }, {x2 , λ02 } et {x0 , λ}, une des variables est
dans la base et l’autre est hors-base.
On fait entrer la variable primale dont la duale est la plus négative : c’est
x2 . On fait sortir la variable correspondant au plus petit rapport positif entre
la colonne de droite et la colonne entrante pour les variables primales et pour
la variable duale λ02 (celle qui a désigné la variable entrante) :
25/2 −8 25
Min , =
4 −2 8
Donc x0 est la variable sortante. La ligne de x0 sert de ligne pivot et on exécute
la transformation du pivot autour de la valeur 4 (à l’intersection de la ligne de
x0 et de la colonne de x2 ).
On obtient le tableau suivant :
x1 x2 x0 λ01 λ02 λ
-2 0 0 1 0 -3 -6 λ01
3/2 0 1/2 0 1 -4 -7/4 λ02
3/4 1 1/4 0 0 0 25/8 x2
0 0 1 0 0 -25/4 25/2
Ce tableau est non-standard car la paire {x2 , λ02 } est entièrement dans la
base tandis que la paire {x0 , λ} est entièrement hors-base. Dans ce cas-là, on
fait entrer une variable duale : celle de la paire qui est entièrement hors-base, à
savoir λ.
On fait sortir la variable correspondant au plus petit rapport positif entre la
colonne de droite et la colonne entrante pour les variables primales et pour la
variable duale de la paire qui est entièrement dans la base, à savoir λ02 :
25/8 −7/4 7
Min , =
0 −4 16
Donc λ02 est la variable sortante. La ligne de λ02 sert de ligne pivot et on exécute
la transformation du pivot autour de la valeur -4 (à l’intersection de la ligne de
λ02 et de la colonne de λ).
On obtient le tableau suivant :
48
x1 x2 x0 λ01 λ02 λ
-25/8 0 -3/8 1 -3/4 0 -75/16 λ01
-3/8 0 -1/8 0 -1/4 1 7/16 λ
3/4 1 1/4 0 0 0 25/8 x2
-75/32 0 7/32 0 -25/16 0 975/64
Ce tableau est standard. Puisque λ01 < 0 on fait entrer x1 . On calcule les
rapports positifs entre colonne de droite et colonne entrante :
25/8 −75/16 −75/16 3
Min , = =
3/4 −25/8 −25/8 2
Ce dernier tableau est celui de l’optimum car il est standard et qu’on ne peut
plus appliquer le critère d’entrée. On trouve donc la solution :
∗
x1 = 3/2
x∗2 = 2
∗
f = 75/4
Programme 2
2 2
Min(x1 + 2x2 − 4/3x1 x2 − 8x1 − 4x2 )
5x − x ≤ 8
1 2
−x1 + x2 ≤ 2
x1 et x2 ≥ 0
49
x1 x2 x01 x02 λ01 λ02 λ1 λ2
-2 4/3 0 0 1 0 -5 1 -8 λ01
4/3 -4 0 0 0 1 1 -1 -4 λ02
5 -1 1 0 0 0 0 0 8 x01
-1 1 0 1 0 0 0 0 2 x02
-4 -2 0 0 0 0 -4 -1 0
Ce tableau est non-standard car la paire {x1 , λ01 } est entièrement dans la
base tandis que la paire {x01 , λ1 } est entièrement hors-base. Dans ce cas-là, on
fait entrer une variable duale : celle de la paire qui est entièrement hors-base, à
savoir λ1 .
On fait sortir la variable correspondant au plus petit rapport positif entre la
colonne de droite et la colonne entrante pour les variables primales et pour la
variable duale de la paire qui est entièrement dans la base, à savoir λ1 . Ici il n’y
a qu’un seul rapport :
−24/5 24
Min =
−5 25
Donc λ01 est la variable sortante. La ligne de λ01 sert de ligne pivot et on exécute
la transformation du pivot autour de la valeur -5 (à l’intersection de la ligne de
λ01 et de la colonne de λ1 ).
On obtient le tableau suivant :
50
x1 x2 x01 x02 λ01 λ02 λ1 λ2
0 -14/75 -2/25 0 -/5 0 1 -1/5 24/25 λ1
0 -266/75 -14/75 0 1/5 1 0 -4/5 -532/75 λ02
1 -1/5 1/5 0 0 0 0 0 8/5 x1
0 4/5 1/5 1 0 0 0 0 18/5 x02
0 -266/75 12/25 0 -4/5 0 0 -1,8 256/25
Ce tableau est standard. Puisque λ02 < 0 on fait entrer x2 . On calcule les
rapports positifs entre colonne de droite et colonne entrante :
18/5 −532/75 −532
Min , = =2
4/5 −266/75 −266
Donc λ02 est la variable sortante.
Le prochain tableau est standard :
x1 x2 x01 x02 λ01 λ02 λ1 λ2 b
0 0 -4/57 0 -4/19 -1/19 1 -3/19 4/3 λ1
0 1 1/19 0 -15/266 -75/266 0 30/133 2 x2
1 0 4/19 0 -3/266 -15/266 0 6/133 2 x1
0 0 3/19 1 6/133 30/133 0 -24/133 2 x02
0 0 2/3 0 -1 -1 0 -1 52/3 f
On constate que le critère d’entrée ne s’applique plus. On a donc atteint
l’optimum et on trouve la solution :
∗
x 1
=2
x 2∗
=2
∗
x02 =2
∗
λ1 = 4/3
f ∗ = 52/3
Corrigé ex. 15 -
On considère le programme quadratique suivant :
Max(2x1 + 2x2 − 4x21 + 4x1 x2 − x22 )
−x1 + x2 ≤ 1
−7x1 + 5x2 ≤ 0
5x1 + 2x2 ≤ 30
x et x ≥ 0
1 2
51
x1 x2 x01 x02 x3 λ01 λ02 λ1 λ2 λ3
-8 4 0 0 0 1 0 1 7 -5 -2 λ01
4 -2 0 0 0 0 1 -1 -5 -2 -2 λ02
-1 1 1 0 0 0 0 0 0 0 1 x01
-7 5 0 1 0 0 0 0 0 0 0 x02
5 2 0 0 1 0 0 0 0 0 30 x03
-1 -1 0 0 0 0 0 -1/2 0 -15 0
La seule variable négative est λ02 donc on doit faire entrer x2 . On calcule les
rapports positifs entre colonne de droite et colonne entrante :
5 7/4 115/4 7
Min , , =
4 3/2 9/2 6
Donc x02 est la variable sortante et le prochain tableau ne sera pas standard.
L’énoncé ne demande pas de calculer les tableaux suivants.
En poursuivant les calculs, on arrive au tableau ci-dessous qui est donné par
l’énoncé :
x1 x2 x01 x02 x3 λ01 λ02 λ1 λ2 λ3
1 0 5/2 -1/2 0 0 0 0 0 0 5/2 x1
0 0 9/7 -3/7 0 5/7 1 -2/7 0 -39/7 -15/7 λ02
0 0 6/7 -2/7 0 1/7 0 1/7 1 -5/7 4/7 λ2
0 1 7/2 -1/2 0 0 0 0 0 0 7/2 x2
0 0 -39/2 7/2 1 0 0 0 0 0 21/2 x03
0 0 6 -1 0 0 0 -1/2 0 -15 6
52
À partir de ce tableau, on va terminer l’algorithme. On constate qu’il n’est
pas standard car la paire {x2 , λ02 } est entièrement dans la base tandis que la paire
{x01 , λ1 } est entièrement hors-base. Dans ce cas-là, on fait entrer une variable
duale : celle de la paire qui est entièrement hors-base, à savoir λ1 .
On fait sortir la variable correspondant au plus petit rapport positif entre la
colonne de droite et la colonne entrante pour les variables primales et pour la
variable duale de la paire qui est entièrement dans la base, à savoir λ02 :
5/2 −15/7 7/2 21/2 15
Min , , , =
0 −2/7 0 0 2
Trois de ces rapports sont en fait infinis, donc λ02 est la variable sortante et le
prochain tableau sera standard.
La ligne de λ02 sert de ligne pivot et on exécute une transformation du pivot
autour de la valeur -2/7 (à l’intersection de la ligne de λ02 et de la colonne de
λ1 ).
On obtient le tableau suivant :
x1 x2 x01 x02 x3 λ01 λ02 λ1 λ2 λ3
1 0 5/2 -1/2 0 0 0 0 0 0 5/2 x1
0 0 -9/2 3/2 0 -5/2 -7/2 1 0 39/2 15/2 λ1
0 0 3/2 -1/2 0 1/2 1/2 0 1 -7/2 -1/2 λ2
0 1 7/2 -1/2 0 0 0 0 0 0 7/2 x2
0 0 -39/2 7/2 1 0 0 0 0 0 21/2 x03
0 0 15/4 -1/4 0 -5/4 -7/4 0 0 -21/4 39/4
Ce n’est pas encore l’optimum car λ2 < 0. On fait donc entrer x02 et on
cherche le plus petit rapport positif entre la colonne de droite et la colonne
entrante : −1/2 21/2
Min , =1
−1/2 7/2
La variable sortante est donc λ2 qui est la duale de x02 : le prochain tableau sera
standard.
Après le pivot, on obtient le tableau suivant :
53
On est maintenant à l’optimum et on trouve donc la solution :
x∗1 =3
∗
x2 =4
x0 ∗ = 1
2
x03 ∗ = 7
λ∗1 = 6
∗
f = 10
54
1 ) On veut représenter graphiquement le programme quadratique suivant :
Min (9x21 − 4x1 x2 + 6x22 − 60x1 − 20x2 )
x + 2x ≤ 5
1 2
x1 + 4x2 ≤ 8
x1 et x2 ≥ 0
● C
3
2
●
1
S D2
D1
0
0 1 2 3 4 5 6 7
55
x1 x2 x01 x02 s01 s02 s1 s2 b
-18 4 0 0 1 0 -1 -1 -60 s01
4 -12 0 0 0 1 -2 -4 -20 s02
1 2 1 0 0 0 0 0 5 x01
1 4 0 1 0 0 0 0 8 x02
-30 -10 0 0 0 0 -5/2 -4 0 f
56
5 La méthode de Wolfe
Rappels de cours
La méthode de Wolfe s’applique lorsque l’origine n’appartient pas au do-
maine réalisable, c’est-à-dire lorsque le point de coordonnées nulles ne vérifie
pas les contraintes. Dans ce cas, on ne peut pas appliquer la méthode de Dant-
zig car celle-ci prend l’origine comme point de départ.
Il faut donc trouver un point de départ qui appartienne au domaine réali-
sable. La méthode de Wolfe est très similaire à la méthode des valeurs ajoutées
qui traite le même problème de point de départ dans le cas de la méthode du
simplexe.
On introduit donc, dans les équations de la méthode de Dantzig, des valeurs
ajoutées w et w0 comme ceci :
(
2Bx + tλ0 − tA tλ ±w = −tc
(27)
Ax +x0 ±w0 = b
Le signe à placer devant les variables w et les variables w0 est choisi en fonction
du terme qui figure dans le membre de droite. Si ce terme est positif on écrit
+w, sinon on écrit −w, pour faire en sorte que numériquement la valeur de la
variable w (ou w0 ) soit toujours positive.
Il y a autant de wi qu’il y a de variables dans le problème initial et autant
de wj0 qu’il y a de contraintes.
L’objectif, comme dans la méthode des valeurs ajoutées, est d’annuler toutes
les variables w et w0 . On remplace la fonction objectif du problème par l’objectif
X X
Min wi + wj0
57
Corrigé ex. 17 - Résolutions par la méthode de Wolfe
Programme 1
On veut résoudre le programme suivant :
Max (10x1 + 10x2 − x21 − x22 )
x + x ≥ 3
1 2
2x 1 + 3x 2 ≤ 12
x1 , x2 ≥ 0
Ensuite les tableaux s’enchaı̂nent comme dans une méthode du pivot clas-
sique. On ne détaille pas ici les critères d’entrée et de sortie. Tout d’abord x2
entre et w10 sort :
58
x1 x2 x01 x02 λ01 λ02 λ1 λ2 w1 w2 w10 w20
-10/3 0 4/3 0 1 -2/3 1/3 0 -1 2/3 -4/3 0 -22/3 w1
-2/3 -0 2/3 -0 -0 -1/3 -1/3 1 -0 1/3 -2/3 -0 4/3 λ2
1 1 -1 0 0 0 0 0 0 0 1 0 3 x2
-1 0 3 1 0 0 0 0 0 0 -3 1 3 w20
-7/3 0 -5/3 -1 1 -2/3 1/3 0 0 5/3 8/3 0 -31/3
59
La deuxième contrainte est saturée puisque x02 est hors-base.
Programme 2
Min (x21 + x22 − 8x1 − 6x2 )
x + 2x ≥ 2
1 2
2x 1 + 5x 2 ≤ 10
x1 , x2 ≥ 0
On change aussi les signes dans la première contrainte pour qu’elle soit dans le
bon sens :
−x1 − 2x2 ≤ −2
On a
! ! !
−1 0 −1 −2 −1
B= A= b= c= 8 6
0 −1 2 5 10
60
Maintenant on fait entrer λ2 et sortir w2 :
61