CourPL24 25H
CourPL24 25H
Recherche opérationnelle
Programmation linéaire
La recherche opérationnelle
La recherche opérationnelle (ou en abrégé RO) est la discipline
Pr. LAKHBAB des méthodes scientiques, telles que les mathématiques ou encore
[email protected]
l'informatique utilisables pour élaborer de meilleures décisions.
Faculté des Sciences Aïn Chock
2024-2025
Recherche Opérationnelle
Pr. LAKHBAB (FSAC) Programmation Linéaire
La Recherche Opérationnelle n'a pas pour but de prendre des problème d'optimisation.
décisions, mais de clarier le contexte dans lequel ces décisions sont La fonction objectif dépend de quelques paramètres sur
prises en proposant des outils d'optimisation. lesquels on peut agir pour faire évoluer le système considéré :
2
L'optimisation
ces paramètres sont appelés : variables de décision.
est une discipline mathématique qui, bien qu'omniprésente depuis Et en n, on décrit les contraintes imposées aux variables de
décisions.
3
Une fois le model est formulé, on élabore un algorithme non vide, et f : D −→ R une application sur D à valeurs réelles.
permettant de chercher la solution. La forme générale d'un problème d'optimisation est donnée par
Un algorithme est une suite nie d'opérations (élémentaires) qui, min f (x) ou max f (x) (1)
à partir de données, conduit à la solution d'un problème. x∈D x∈D
Le choix d'un tel algorithme est basé sur ces avantages, en coût est la variable de décision,
calculatoire et de sa supériorité par rapport aux implémentations x = (x1 , . . . , xn )T
l'ensemble D est le domaine admissible ou réalisable,
temporelles.
et f est la fonction objectif (appelée aussi : fonction coût ou
fonction économique).
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Une tonne du ciment C necéssite 30 min de calcination dans un Dans ce cas : combien produire de C et C ?
four à chaux et 30 min de broyage.
2 1 2
x : quantité du ciment C à produire par jour (en Tonne).
Le four et l'atelier de broyage sont disponibles respectivement 6h et 1 1
x : quantité du ciment C à produire par jour (en Tonne).
8h par jour. 2 2
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Préléminaires Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité Algorithme
Préléminaires
du Simplex Dual Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité
Contrainte de broyage :
max z = 500x + 700x
Une tonne du ciment C (Resp. C ) necéssite 20 min (Resp. 40x + 30x ≤ 360
1 2
Contraintes de non-négativité : x ≥ 0, x ≥ 0
1 2
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
La forme générale d'un programme linéaire est donnée par : Formes Matricielles
Pn
max z = cj xj
j=1
ou ∀i = 1, ..., m,
n
P
aij xj ≤, = ≥; bi
Forme Canonique Forme Standard
0 1
j=1
xj ≥ ∀j = , ..., n.
max z = c T x
max z = cT x
Convention ij
Inéquation −→ Equation
Equation −→ Inéquation
0
n
X n
X
aij xj ≤ bi ⇐⇒ aij xj + ei = bi , ei ≥
n
P n
P j=1 j=1
n
aij xj ≤ bi
aij xj ≤ bi
j=1 j=1
0
n n
X
aij xj = bi ⇐⇒ n ⇐⇒ n
X X
P
aij xj ≥ bi
P
(−aij )xj ≤ −bi aij xj ≥ bi ⇐⇒ aij xj − ei = bi , ei ≥
j=1
j=1 j=1
j=1 j=1
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Préléminaires Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité Algorithme
Préléminaires
du Simplex Dual Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Déterminer le sens des inégalités pour chaque contrainte : Déterminer le domaine réalisable : 1
de maximisation de z .
Pour z = 0, on a la droite (D ) d'équation x = x
4 2
2
3 1
Pour z = 3, on a la droite (D ) d'équation x = x + 1
5 2
2
3 1
(D ), ainsi x =
Pr. LAKHBAB (FSAC) Programmation Linéaire
3
Pr. LAKHBAB
8/3
∗
(FSAC)
∗
Programmation Linéaire
Ensembles convexes
Dénition Dénitions
Un sous-ensemble C ⊂ V , d'un espace vectoriel V , est convexe si Soient x , . . . , x ∈ R , une combinaison convexe de
1 k n
L'intersection d'une collection arbitraire d'ensembles convexes Soit S ⊂ V , l'enveloppe convexe de S , notée co(S), est
est un ensemble convexe. l'ensemble déni comme l'intersection de tous les ensembles
Si C , D sont deux sous-ensembles convexes de V et β ∈ R, convexes contenant S .
alors les ensembles : Soit S ⊂ V , l'enveloppe convexe de S est le plus petit ensemble
C + D = {x ∈ Rn : x = c + d, c ∈ C , d ∈ D} convexe de V contenant S .
βC = {x ∈ Rn : x = βc, c ∈ C }
Pr. LAKHBAB sont convexes. (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Préléminaires Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité Algorithme
Préléminaires
du Simplex Dual Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité
Dénitions
Un polyèdre est un ensemble qui peut être décrit comme Dénition
{x ∈ R : Ax ≤ b, x ≥ 0}, Un point extrême (sommet) d'un polyèdre X est un point qui ne
peut pas être exprimé comme combinaison convexe d'autres points
n
où A ∈ M (R) et b ∈ R . m de X .
Un ensemble de la forme {x ∈ R : Ax = b, x ≥ 0} est un
m,n
Propriété
n
Un polyèdre X est dit borné s'il existe une constante c > 0 telle que points extêmes.
∥ x ∥≤ c, ∀x ∈ X
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Problème considéré
Théorème
On considère un programme linéaire de maximisation d'une forme On considère le programme linéaire suivant :
linéaire z = c x sur un polyèdre convexe (déni à l'aide des
T
...
0 x≥
x1 c1 b1
Preuve : ...
Corollaire .. .. et ..
x2 c2 b2
x = , c = b=
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Préléminaires Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité Algorithme
Préléminaires
du Simplex Dual Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité
Bases de A
xB
Les bases de A sont les matrices m × m inversibles extraites de A.
Ax = [B N]
xN
Dénitions
La forme canonique par rapport à la base B , du problème (P) x est dite solution réalisable si elle vérie les contraintes
∗
est donnée par : (Ax = b et x ≥ 0).
∗ ∗
avec
N
réalisable.
T −1
cT T
N = cN − cB B N B
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Préléminaires Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité Algorithme
Préléminaires
du Simplex Dual Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité
On a (S) ⇐⇒ Ax = b,
Remarques où A = 10 01 01 11 , et b = 3
x = (x1 , x2 , x3 , x4 )T
6
Il y a au plus C bases valides.
m
1 0 , B = [A 1 0 ,
Exemple
0 1
B1 = [A.1 , A.2 ] = 2
.1 , A.3 ] =
0 1
Déterminer les bases et les bases réalisables du système linéaire
1 1 , B = [A
0 0 ,
suivant : +x = 3
.1
B = [A , A ] =
3
0 1 .4
4
.2 , A.3 ]=
1 1
0 1 , B = [A 0 1 .
x
x +x +x = 6
1 4
.2
1 1 .4 .3 , A.4
1 1
(S) B = [A , A ] = ]=
2 3 4 5 6
On note A la j colonne de A
.j eme
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
On a det(B ) ̸= 0 =⇒ B est une base. Caractérisation des solutions de base réalisables Optimales
De même, on vérie que B , B , B et B sont des bases.
1 1
3 ≥ 0, Théorème
L'ensemble des points extrêmes correspond à l'ensemble des
B1−1 b =
6 solutions de bases réalisables.
3 ≥ 0,
6
−1
B b=
2
−3
Preuve : ...
6 ≱ 0, Théorème
−1
B b=
3
3
−1
B b=
5
3 ≥ 0.
3
−1 Preuve : ...
B b=
6
Ainsi B , B , B et B sont des base réalisables, alors que B est
une base non réalisable.
1 2 5 6 3
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Préléminaires Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité Algorithme
Préléminaires
du Simplex Dual Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité
Preuve
Soit B une base réalisable vériant c̄ ≤ 0.
On se donne la formulation canonique par rapport à B
N
max z = cBT B −1 b + c T
N xN Exemple
(P̃) xB = B −1 b − B −1 NxN
0
xB , xN ≥
Déterminer les bases optimales du programme linéaire suivant :
+2x
On a z(x) = c B b + |{z} T
B c −1
x
|{z}
T
N N
≤0 ≥0
≤ cBT B −1 b = z(x̃)
Ainsi x̃ est une solution optimale.
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Préléminaires Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité Algorithme
Préléminaires
du Simplex Dual Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité
b̄ = B b .
m
s'il existe s ∈ N tel que c̄ > 0 , alors on peut construire une
a
1 0 0 1
x
+x +x = 6 =⇒ A =
0 1 1 1 .
1 4
(S) x
≥0
2 3 4
x , x , x , x
1 2 3 4 z(x̃) ≥ z(x)
La règle de pivotage permet de choisir, parmi toutes les variables Si on adopte le 1 critère de Dantzig, la variable x entrera en
er
a. 1
er
critère de Dantzig
b. Règle de Bland
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Préléminaires Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité Algorithme
Préléminaires
du Simplex Dual Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité
(x ) .
X X is s
(xB )i = b̄i − āij xj = b̄i − āij xj − āis xs = b̄i − āis xs
Dans ce cas, il faut faire attention à la positivité de (x ) !
B i
j∈N j∈N \{s}
B i
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
augmenter indéniment la valeur de x sans sortir de Supposons pour un problème donné, que x est la variable, 2
a. 2
eme
critère de Dantzig ou critère de sortie
b̄ 8 2 , 1} = 1
4 1/2 5 5
i
min { } = min{ ,
Remarques ā āi 2 >0 i2
Pour rester à l'intérieur du domaine réalisable, il est obligatoire de Le minimum est vérié par la troisième ligne, ce qui correspond à la
respecter le deuxième critère de Dantzig. variable x , ainsi x sort de la base.
4 4
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Préléminaires Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité Algorithme
Préléminaires
du Simplex Dual Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité
Exemple 2 4
ā 9
8 Exemple 3
Supposons que ā = −5/2 et b̄ = 2 . On a
12
22
1 1 ā 0 8
−2 1
22
b̄ 81 8 ā
Ici ā ≤ 0, ∀i ∈ {1, 2, 3}. Alors le problème est non borné,
32
91 9
i
min { } = min{ , } =
z = +∞.
i2
āāi 2 >0 i2 ∗
3. avec xB = (x3 , x1 , x4 )T et x2 est la variable entrante. 4. avec xB = (x3 , x1 , x4 )T et x2 est la variable entrante.
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Préléminaires Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité Algorithme du Simplex Dual
Algorithme de Simplex
5
Soit B la base réalisable courante du programme linéaire,
1
Dans ce cas, on utilise la règle de Bland, c.à.d. parmi ces deux Déterminer t l'indice de la variable correspondant à la
variables, on choisit celle de plus petit indice. Ainsi x sort de la r ligne de la base.
base.
3 eme
linéaire (P).
Dénition
Une solution de base est dite dégénérée si le vecteur x = B b a −1 Remarque
des composante nulle. Dans le cas d'un problème de minimisation, seul le critère d'entrée
B
sera modié :
Théorème Choisir s tel que c̄ < 0
Sous l'hypothèse de non-dégénéréscence, l'algorithme du
s
base B , cT
N
T
B
−1
max z = cBT B −1 b + c T
et pour ne pas alourdir le tableau, on supprime la colonne
N xN
(P̃)
xB = B −1 b − B −1 NxN
xB , xN ≥ 0 correspondant à z
On'a pour les contraintes xB
Im
xN
B −1 N B −1 b
xB = B −1 b − B −1 NxN ⇐⇒ xB + B −1 NxN = B −1 b (3) 0 cTN −cBT B −1 b
⇐⇒ Im xB + B −1 NxN + z = B −1 b 0 (4)
Remarque
et pour la fonction objectif On a supposé, pour simplier, que les variables de base étaient les
m premières variables!
z = cBT B −1 b + c T
N xN ⇐⇒ 0x + c B
T
N xN − z = −cBT B −1 b (5) Si les variables de base se présentent dans un ordre quelconque,
est la matrice identitée d'ordre m. elles seront aisément identiées par le fait que les colonnes
correspondantes sont à une permutation près, les colonnes de I .
Im
m
Pr. LAKHBAB (FSAC) Programmation Linéaire
Préléminaires Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité Algorithme
Préléminaires
du Simplex Dual Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité
par
rs ij Résoudre le problème suivant à l'aide de la méthode du
Simplex
1
1 si j = i, j ̸= r
a
max z = x + 2x
1/a si j = i = r
−3x + 2x ≤ 2
1 2
si
rs
−x + 2x ≤ 4
d = 1 2
ij
−a /a j = r , i ̸= r
0 sinon .
is rs
(P )
x +x ≤5
1 1 2
x ,x ≥ 0
est appelée matrice de pivotage sur l'élément a de A.
1 2
rs 1 2
Ax = b ⇐⇒ DAx = Db ,
Les tableaux [A|b] et [DA|Db] sont équivalents. a. c.à.d les tableaux du Simplex.
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Soit B la base réalisable courante, et x la solution correspondante, Il est possible après un certain nombre de changements de bases de
on a retrouver une base déjà rencontrée et de cycler indéniment.
On peut régler ce problème par l'utilisation de la règle de Bland.
z(x) = cBT B −1 b + c̄NT xN = cBT B −1 b + c̄j xj = cBT B −1 b
La règle de Bland
X
Dans le cas de dégénéréscence où b̄ = 0, on a θ = = 0. Alors la b̄r parmi toutes les variables susceplibles d'entrer en base (càd
valeur z de la nouvelle solution x̃ ne varie pas après le changement telles que c̄ > 0) choisir celle du plus petit indice.
r ārs
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Préléminaires Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité Algorithme
Préléminaires
du Simplex Dual Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité
x +x ≤6
1 2
6
1 2
x − 3x ≥ 10
1 2
(P)
x +x +x =
−x +3x 10
1 2 3
x ,x ≥ 0
1 2
+x4 =−
0
1 2
1 2
≥
On met le programme (P) sous la forme standard
x1 , x2 , x3 , x4
max z = −x +2x
Si on considère la base B = {x , x }, on a N = {x , x }, ainsi
x = x = 0.
3 4 1 2
=6
1 2
1 2
On remplace dans le système linéaire, on trouve que x = 6 et
x +x +x
3 10
1 2 3
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Dans le cas où b ≥ 0, on peut facilement déterminer une solution que le second membre b soit positif.
de base réalisable. Il sut de considérer la base On ne suppose pas que la matrice A ∈ M (R), est de plein
B = {e , e , . . . , e }, N = {x , x , . . . , x }
rang, ni qu'il existe bien des solutions réalisables!
m,n
Pour les variables Hors-Base, on a x = x = . . . = x = 0, alors
1 2 m 1 2 n
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Préléminaires Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité Algorithme
Préléminaires
du Simplex Dual Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité
Un programme auxiliaire associé à (P) est donné par On considère les programmes linéaires suivants :
Pm
min za = i=1 ai Pm
max z = c T x
(Pa ) Ax + a = b min za = i=1 ai
x ≥ ,a ≥ 0 0 (P)
Ax = b
x≥ 0
(Pa )
Ax + a = b
x ≥ ,a ≥ 0 0
1 est le vecteur des variables auxiliaires.
a = {a1 , a2 , . . . , am }T
Proposition
Le problème (P ) est toujours un problème de minimisation, Le programme linéaire (P) admet une solution réalisable si et
quelque soit le type du problème initial.
2
a
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
On applique l'algorithme du Simplex au problème (P ). Soit z la ∗ On considère un programme linéaire sous la forme canonique
solution trouvée à la n des itérations.
a a
n
réalisable.
1
j=1
a
1
n
(P)
Si z = 0,
P
aij xj ≤ bi ∀i = , ..., m,
∗
0 1
2 j=1
a
si aucune variable auxiliaire n'est dans la base nale Bf , alors xj ≥ ∀j = , ..., n.
a
Dénition
Le problème dual du problème (P) est donné par
m
Formulation Matricielle
P
min w = yi bi
i=1
On considère le programme primal (P), son programme dual est
1
m
(D)
donné par (D)
P
aij yi ≥ cj ∀ j = , ..., n,
0 1
i=1
yi ≥ ∀i = , ..., m.
max z = c T x min w = b T y
Exemple (P) Ax ≤ b (D) AT y ≥ c
Donner le programme dual du programme suivant
x≥ 0
y≥ 0
max z = x + 2x
−3x + 2x ≤ 2
1 2
−x + 2x ≤ 4
1 2
(P)
x +x ≤5
1 2
x ,x ≥ 0
1 2
1 2
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Préléminaires Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité Algorithme
Préléminaires
du Simplex Dual Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité
Remarques Exemple
Le problème (D) peut s'exprimer sous la forme
1
Montrer l'eet d'une contrainte primale de type (≥), sur le dual.
− max −b T y
Pn
(−A)T y ≤ −c
max z = cj xj
0
j=1
y≥
n
P
a1j xj ≤ b1
Le dual du dual est le primal.
2
(P) j=1
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Préléminaires Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité Algorithme du Simplex Dual
Primal Dual
Passage de (P) à (D) (forme canonique) Max Min
c : coecient de la f obj. z c : second membre
n
y ≥0
P n
a x ≤b
ij j i i
0
n m
P
xj ≥ aij yi ≥ cj
Contrainte : Ax≤b Variable y ≥0 x ≤0
i=1
m
(P) Ax ≤ b
0 0
(D) AT y ≥ c
Si c x̄ = b ȳ , alors x̄ et ȳ sont des solutions optimales, pour (P)
T T
x≥ y≥
et (D) respéctivement.
(x̄, ȳ )
Lemme précédent
T T
c x̄ ≤ b ȳ
a. x̄ (P) ȳ (D) c x̄ ≤ b y ∀y solution réalisable duale.
T T
T T T T
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Théorème Remarques
Si un des deux problèmes primal (P) OU dual (D) possède une Si la fonction z n'est pas majorée sur son domaine réalisable,
solution optimale avec valeur nie, alors la même chose est vraie alors le problème dual n'admet pas de solution réalisable.
pour l'autre problème, et les valeurs optimales des deux problèmes Inversement, si la fonction w n'est pas minorée sur son
sont égales z = max z = min w = w .
∗ ∗
domaine réalisable, alors le problème primal n'admet pas de
Théorème solution réalisable.
Si les deux problèmes primal (P) ET dual (D) ont des solutions Remarque
réalisables, alors chacun d'eux a une solution optimale et Le primal et le dual peuvent être simultanément non réalisables.
z ∗ = max z = min w = w ∗
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Préléminaires Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité Algorithme
Préléminaires
du Simplex Dual Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité
(P) Ax ≤ b
0
(D) AT y ≥ c
0 Théorème
x≥ y≥
Soit (x, y ) un couple de solutions réalisables Primal/Dual.
(A y − c) x ≥ 0
T T
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Théorème des Ecarts Complémentaires (TEC) Théorème des Ecarts Complémentaires (TEC)
On a De la même manière, on trouve
.. ..
m m
. (AT y − c)T x = (
P P
ai 1 yi − c1 )x1 + · · · + ( ain yi − cn )xn
. Par conséquent i=1 i=1
n n
P P
= bi −
..
b − Ax = − a x aij xj
b i j=1 ij j
.. j=1
.. 0 ⇐⇒ (X a y − c )x = 0
m
1
(AT y − c)T x = ij i j j ∀j = , · · · , n
i=1
Ainsi n n Ainsi
(b − Ax)T y = (b1 −
P P
a1j xj )y1 + · · · + (bm − amj xj )ym
Donc
n
0 1
j=1 j=1
0
P
(bi − aij xj )yi = ∀i = , · · · , m
(b − Ax)T y =
ET ET
j=1
⇐⇒
0 ⇐⇒ (b − X a x )y = 0 1 y − c) x = 0
n
( a y − c )x = 0 1
(b − Ax)T y = ∀i = , · · · , m (AT T m
i ij j i
P
∀j = , · · · , n
ij i j j
j=1
i=1
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Préléminaires Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité Algorithme
Préléminaires
du Simplex Dual Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité
Utilité du TEC
Connaissant la solution optimale de l'un des problèmes (P) ou Utilisation pratique du TEC
(D), le théorème des écarts complémentaires permet de Soit (x, y ) un couple de solutions optimales Primal/Dual.
retrouver directement la solution optimale de l'autre problème. à partir du (TEC), on remarque que
Le théorème permet aussi de vérier si une solution donnée est Si P a x < b =⇒ y = 0
n
optimale. 1
j=1
ij j i i
Notation 2 Si P a y > c =⇒ x = 0
m
i=1
ij i j j
j=1
ij j i 3 Si y > 0 =⇒ b − P a x = 0
i i
n
ij j
n j=1
Si x > 0 =⇒ P a y − c = 0
P
aij x̄j < bi m
4
j=1 j ij i j
i=1
La contrainte m
P
i=1
aij yi ≥ cj est serrée pour un point ȳ , si
m
P
aij ȳi > cj
i=1
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Fraises, 700 kilos de Lait et 300 kilos de sucre. La vente des yaourts
(P)
x ≤ 300
1 2
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Le problème dual
On pose Notations
y : Prix unitaire d'achat des fraises (en Dh).
1 x : quantité du produit j ∀j = 1, ..., n.
y : Prix unitaire d'achat du lait (en Dh). b : quantité disponible de la ressource i ∀i = 1, ..., m.
j
2
y : Prix unitaire d'achat du sucre (en Dh). a : quantité de la ressource i utilisée pour la production d'une
i
2
Le deuxième problème se modélise comme suit : unité de produit j .
ij
2y + y ≥ 40
1 2 3
i
y + 2x + y ≥ 50
1 2
(D)
y ,y ,y ≥ 0
1 2 3
1 2 3
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Préléminaires Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité Algorithme
Préléminaires
du Simplex Dual Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité
dispose.
j=1 ∗
son prix totale d'achat w = P b y soit minimal. d'optimalité (c ≤ 0, pour un problème de maximisation). On dit
m N
i=1
ij i j
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
de Maximisation).
− x1 −x2 +x3 =− N
4 5
(P)
−x1 − x2 +x4 = −
0 On suppose que b̄ = B b ≱ 0 −1
Remarque b̄ = min{b̄ : i = 1, . . . , m}
Au lieu d'appliquer la phase 1, pour rendre le problème primal
r i
réalisable, puis la phase 2, on applique l'algorithme de Simplex Soit t l'indice de la variable correspondant à la ligne r de la base.
Dual qui garde la dual réalisabilité, pour atteindre après un certain Alors x sort de la base, et le pivot sera dans la la ligne r du
tableau.
t
nombre d'itérations à une base réalisable.
Pr. LAKHBAB (FSAC) Programmation Linéaire Pr. LAKHBAB (FSAC) Programmation Linéaire
Préléminaires Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité Algorithme du Simplex Dual
c̄ ≤ 0
ā rj 5
c̄ − j s
ā
| | = min{| |; ā < 0 et j ∈ N }
rs
c̄s c̄ j
Remarque
rj
ā rs ā rj
Dans le cas d'un problème de minimisation, c̄ doit rester positif, Alors, la variable d'entrée est x .
ainsi :
N
Bibliographie
Préléminaires Résolution algèbrique La méthode de Simplex Simplex Phase 1 Dualité Algorithme du Simplex Dual
Exemples
Résoudre par l'algorithme dual du simplexe les problèmes suivant : Optimisation combinatoire, méthodes mathématiques et
min z = 3x + x algorithmiques, Graphes et programmation linéaire.
x − x ≤ −1 .
1 2 Michel
max z = −x − x
3x + x ≥ 4
1 2
−x − x ≤ −3
1 2 Sakarovitch
+ 4x ≥ 5
1 2
(P ) (P )
2x + x ≤ 2
1 2 1 2
.
Michel
x
x ,x ≥ 0
1 2
x ,x ≥ 0
1 2
Minoux
min z = 3x + 2x
x +x ≥2
1 2
Programmation linéaire. Méthode du simplexe.
−x + x ≥ 3
1 2
http ://www.fsr.ac.ma/cours/maths/bernoussi/RO-
S. El Bernoussi
(P )
≥4
3 1 2
x ELBERNOUSSI-2010-P1.pdf
x ,x ≥ 0
1
1 2