Académique Documents
Professionnel Documents
Culture Documents
29 mars 2023
Table des matières
1 Introduction à l’optimisation 3
1.1 Introduction et Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Notion d’infimum, supremum, minimum, maximum . . . . . . . . . . . . . . . . . 3
1.3 Notion de programme mathématique . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.1 Définitions et premières propriétés . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.2 Typologie des programmes mathématiques . . . . . . . . . . . . . . . . . . 10
4 Notion de dualité 27
4.1 Généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.1.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.1.2 Liens entre problèmes primal et dual . . . . . . . . . . . . . . . . . . . . . 28
4.2 Dualité lagrangienne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1
6 Résolution des programmes linéaires 38
6.1 Résultats théoriques fondamentaux . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.1.1 Notions sur les polyèdres convexes et sommets . . . . . . . . . . . . . . . . 38
6.1.2 Existence de solution optimale . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.2 Méthode graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.3 Méthode du simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.3.1 Base, solutions de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.3.2 Forme canonique par rapport à une base réalisable . . . . . . . . . . . . . 43
6.3.3 Caractérisation des solutions de base réalisables optimales . . . . . . . . . 44
6.3.4 Algorithme primal du simplexe . . . . . . . . . . . . . . . . . . . . . . . . 47
6.3.5 Convergence de l’algorithme du simplexe . . . . . . . . . . . . . . . . . . . 48
6.3.6 Méthode des tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.3.7 Initialisation de l’algorithme du simplexe . . . . . . . . . . . . . . . . . . . 53
6.3.8 Méthode du grand M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2
Chapitre 1
Introduction à l’optimisation
∀ x ∈ X, m ≤ x.
∀ x ∈ X, x ≤ M.
3
Si X = ∅, par convention son infimum est égal à +∞ : inf(∅) = +∞
2) Si X est non vide et admet des majorants, par définition le supremum de X noté sup(X)
ou supx∈X (x) est le plus petit des majorants de X.
Si X est non vide et n’admet pas de majorants, par convention, le supremum de X est égal à
+∞.
Si X = ∅, par convention sup(∅) = −∞.
Ces notions sont aussi caractérisées par :
Proposition 1.2.1 1) Si X est non vide et admet des minorants,
{
m ≤ x ∀x ∈ X
m = inf(X) ⇔
∀ε > 0, ∃xε ∈ X : m ≤ xε < m + ε.
2) Si X est non vide et admet des majorants,
{
x ≤ M ∀x ∈ X
M = sup(X) ⇔
∀ε > 0, ∃xε ∈ X : M − ε < xε ≤ M.
On a le résultat suivant.
Proposition 1.2.2 Pour tout X ⊂ R, on a supx∈X (x) = − inf x∈X (−x)
Définition 1.2.3 (Suite minimisante/Suite maximisante) Soit X une partie non vide de R.
On appelle suite minimisante de X, toute suite {xk } d’éléments de X telle que
lim xk = inf(X).
k→+∞
On montre que
Proposition 1.2.3 Si X est une partie non vide R, alors il existe toujours une suite minimisante
de X et une suite maximisante de X.
Preuve : Montrons d’abord l’existence d’une suite minimisante. Comme X est non vide, alors
nécessairement inf(X) ∈ R ∪ {−∞}
i) inf(X) ∈ R. D’après la proposition (1.2.1)
1
∀k ∈ N∗ , ∃xk ∈ X : inf(X) ≤ xk ≤ inf(X) + .
k
La suite {xk } ainsi construite converge vers inf(X).
ii) inf(X) = −∞. X admet seulement −∞ comme minorant. Par conséquent pour tout k ∈ N,
il existe xk ∈ X tel que
xk ≤ −k
La suite {xk } ainsi construite converge vers −∞.
On montre de façon analogue l’existence d’une suite maximisante.
4
1.3 Notion de programme mathématique
1.3.1 Définitions et premières propriétés
Soit f : Rn → R une fonction définie sur Df et C une partie de Df .
∀ x ∈ C, f (x∗ ) ≤ f (x).
Les points où la valeur minimale est atteinte (on dit aussi les points qui réalisent le minimum)
sont les solutions optimales du programme de minimisation de f sur C. On note cet ensemble
arg min{f (x) : x ∈ C}. Compte tenu de ce qui précède, on a :
Les points où la valeur maximale est atteinte (on dit aussi les points qui réalisent le maximum)
sont les solutions optimales du programme mathématique de maximisation de f sur C. On note
cet ensemble arg max{f (x) : x ∈ C}. On a :
Exemple 1.3.1
5
1) Considérons le programme mathématique de minimisation ”minimiser f (x) = x2 + 1 sur
R”. On a :
∀ x ∈ R, f (x) ≥ 1 = f (0).
Donc la fonction un minimum en x∗ = 0.
2) Le programme mathématique de maximisation ”maximiser f (x) = x + 3 sur R” n’a pas de
solution. En effet supposons que la fonction f atteigne son maximum en un point x∗ . On a alors
∀ x ∈ C, f (x∗ ) ≥ f (x).
Définition 1.3.2 Un élément x∗ ∈ C est dit point de minimum local (respectivement de maximum
local) de f sur C s’il existe un voisinage V de x∗ tel que : tel que :
6
Dans la suite on distinguera systématiquement les optima locaux appélés également optima re-
latifs et les optima globaux appelés également optima absolus. Tout optimum global a évidemment
les propriétés d’un optimum local alors que la réciproque est fausse ; un optimum local peut ne
pas être un optimum global.
Très souvent la nature des problèmes d’optimisation conduit à privilégier la recherche d’un
optima globaux plutôt que des optima locaux. On peut penser que pour détecter les minima
(resp. maxima) globaux il suffit de déterminer les minima (resp. maxima) locaux puis de repérer
le plus petit (resp. le plus grand). Cette stragtégie est logique mais parfois difficile à mettre en
œuvre surtout dans les problèmes théoriques.
Dans le cas convexe le problème ne se pose pas comme indiqué dans le théorème ci-dessous.
Preuve :
On donne la démonstration pour f convexe.
1) Montrons d’abord par l’absurde que tout minimu local est nécessairement global.
Soit x∗ un minimum local qui n’est pas un minimum global. Il existe un r > 0 tel que :
Comme x∗ n’est pas minimum global, il existe x∗∗ tel que f (x∗∗ ) < f (x∗ ).
Puisque C est convexe alors,
Ce qui contredit le fait que f atteint un minimum local en x∗ sur la boule ouverte B(x∗ , r).
2) Considérons à présent l’ensemble des solutions optimales
f (x∗ ) = f (x∗∗ ) = α.
7
Comme f est convexe, on a
Donc on a
∀λ ∈]0, 1[, f ((1 − λ)x∗ + λx∗∗ ) = α.
Par suite
(1 − λ)x∗ + λx∗∗ ∈ A, ∀λ ∈]0, 1[.
D’où le théorème.
On donne à présent deux propriétés très générales des problèmes d’optimisation. En pratique
elles peuvent permettre de transformer un problème en un autre problème parfaitement équivalent
qui peut être plus simple à résoudre.
Définition 1.3.5 Soient (P1 ) et (P2 ) deux programmes mathématiques. Le programme (P1 ) est tel
que l’ensemble des solutions réalisables est X et la fonction-objectif est f , et (P2 ) a pour ensemble
de solutions réalisables Y et de fonction-objectif g. Les programmes (P1 ) et (P2 ) sont équivalents
si on peut associer à toute solution admissible de l’un, une solution admissible de l’autre avec
la même valeur pour les critères. C’est-à-dire pour tout x ∈ X, on peut associer y ∈ Y tel que
f (x) = g(y).
8
Proposition 1.3.1 On a :
max f (x) = − min(−f )(x).
x∈C x∈C
Autrement dit la fonction f atteint un maximum sur C en un point x∗ si et seulement si la fonction
−f atteint un minimum sur C en x∗ .
Preuve : Si f atteint un maximum sur C en un point x∗ , alors par définition,
∀ x ∈ C, f (x) ≤ f (x∗ ).
En multipliant par −1 les deux membres de l’inégalité, on a :
∀ x ∈ C, −f (x) ≤ −f (x∗ ).
Ce qui signifie que (−f ) atteint un minimum en x∗ .
La réciproque est immédiate
D’après cette proposition, les résultats concernant les programmes de maximisation peuvent
être transposés dans les programmes de minimisation, à condition bien entendu de changer le
signe de la fonction-objectif. Par conséquent, tout programme mathématique peut se ramener à
un programme de minimisation.
Théorème 1.3.3 Soit le programme de minimisation ”minimiser f sur C” dans lequel l’ensemble-
image f (C) est un intervalle de R.
Soit φ : R → R une fonction continue strictement croissante sur f (C).
La fonction f atteint un minimum sur C en un point x∗ si et seulement si la fonction φ ◦ f
atteint un minimum sur C en x∗ .
Preuve :
Condition nécessaire :
Comme x∗ minimise f sur C, on a :
∀ x ∈ C, f (x∗ ) ≤ f (x).
Ce qui entraı̂ne (puisque φ est croissante sur f (C)) :
∀ x ∈ C, φ ◦ f (x∗ ) ≤ φ ◦ f (x).
Donc x∗ minimise φ ◦ f sur C.
Condition suffisante :
Si x∗ minimise φ ◦ f sur C, on a :
∀ x ∈ C, φ ◦ f (x∗ ) ≤ φ ◦ f (x).
Puisque φ est continue et strictement croissante sur l’intervalle f (C), elle réalise une bijection de
f (C) sur φ(f (C)) et admet donc une bijection réciproque φ−1 définie sur l’intervalle φ(f (C)) et
à valeur dans f (C). Cette bijection réciproque a même sens de variation que φ. Alors pour tout
x∈C :
φ ◦ f (x∗ ) ≤ φ ◦ f (x)
entraı̂ne que :
φ−1 (φ ◦ f (x∗ )) ≤ φ−1 (φ ◦ f (x))
c’est-à-dire :
f (x∗ ) ≤ f (x),
donc x∗ minimise f sur C.
9
Remarque 1.3.1 Ce résultat reste valable pour les problèmes de maximisation.
Ce théorème doit être utilisé pour rendre un problème d’optimisation plus maniable. Par
exemple il est plus facile de résoudre le problème ”maximiser f (x, y) = 32 ln x + 45 ln y sur R∗+ × R∗+ ”
que celui-ci ”maximiser g(x, y) = x 3 y 5 sur R∗+ × R∗+ ”.
2 4
Définition 1.3.6 Un programme mathématique optx∈C f (x) est dit libre si C ⊂ Df (Df est le
domaine de définition de f ) ne traduit aucune contrainte entre les variables de commande.
A contrario, un programme d’optimisation est non libre ou sous contraintes, si des contraintes
s’exercent sur les variables de commande. Il y a deux types de contraintes : des contraintes d’égalité
et des contraintes d’inégalité.
Une contrainte d’égalité se présente formellement comme une équation cartésienne du type
h(x) = 0 où h est une fonction de Rn dans R. Elle signale une liaison entre les variables de
commande.
Une contrainte d’inégalité se présente comme une inéquation du type g(x) ≤ 0 où g est une
fonction de Rn dans R. Elle signale une liaison entre les variables de commande.
Le programme se présente donc sous la forme :
opt{ f (x)
gi (x) ≤ 0, i = 1, · · · , m
hj (x) = 0, j = 1, · · · , p
Si f , les gi et hj sont toutes des applications affines, le programme est dit linéaire et dans le
contraire, on parle de programme non linéaire. Un programme non linéaire est quadratique, si f
est quadratique, et les fonctions gi et hj sont des applications affines,
10
Chapitre 2
α = infn f (x) (P )
x∈R
Définition 2.1.1 La fonction f est dite coercive (on dit aussi que f est infinie à l’infini) si on
a : f (x) −→ +∞ quand ∥x∥ −→ +∞.
Exemple 2.1.1
Preuve : Immédiate
11
Théorème 2.1.1 Si f : Rn → R est continue et coercive (infinie à l’infini), alors il existe un
point qui réalise le minimum de f sur Rn . Autrement dit, il existe x ∈ Rn tel que
f (x) ≤ f (y) ∀y ∈ Rn .
Preuve :
Soit α = inf x∈Rn f (x) < +∞. Soit (xk )k∈N une suite minimisante c’est-à-dire telle que :
Montrons que la suite (xk )k∈N est bornée. Par l’absurde, on suppose qu’elle ne l’est pas c’est-
à-dire qu’il existe une sous suite notée (xφ(k) )k de (xk )k∈N telle que : limk→+∞ ∥xφ(k) ∥ = +∞. Par
coercivité de f , on a alors : limk→+∞ f (xφ(k) ) = +∞, ce qui contredit (2.1).
La suite (xk )k∈N est donc bornée : il existe alors une suite extraite notée (xψ(k) )k de (xk )k∈N
qui converge vers x ∈ Rn . En utilisant maintenant la continuité de f , on a alors :
Théorème 2.1.2 (Condition suffisante d’unicité) Si f est strictement convexe, alors le problème
(P ) a au plus une solution optimale globale.
Ce théorème n’est pas une condition d’existence de minimum pour la fonction f . Par exemple
la fonction f (x) = ex est strictement convexe mais n’atteint pas son minimum sur R.
Remarque 2.1.1 Il faut noter que l’hypothèse de continuité dans le théorème ci-dessus n’est pas
nécessaire, car toute fonction convexe sur Rn et à valeurs dans R est continue.
Définition 2.1.2 On appelle fonction elliptique une fonction f ∈ C 1 (Rn , R) fortement convexe.
Théorème 2.1.4 (Condition suffisante d’existence et d’unicité) Si f est une fonction el-
liptique alors le problème (P ) admet une et une seule solution optimale globale.
Définition 2.2.1 Si f : Rn → R une fonction différentiable. On dit que x∗ est un point station-
naire ou critique de f si ∇f (x∗ ) = 0.
12
On a le théorème :
Remarque 2.2.1 1) Ce théorème n’a pas de sens si la fonction f n’est pas différentiable en x∗ .
2) Cette condition nécessaire du premier ordre permet de sélectionner un certain nombre de
candidats à être des minima locaux ou globaux. La réciproque est fausse. Un point critique n’est pas
nécessairement un minimum local (global). Ce peut être un minimum local ou global, un maximum
local ou global ou ni l’un ni l’autre. C’est dire que ce résultat n’est en général pas une condition
suffisante.
Dans le cas convexe, la condition nécessaire du premier ordre ci-dessus est suffisante.
∇f (x∗ ) = 0.
Preuve : On sait que la condition est nécessaire. Montrons à présent qu’elle est suffisante.
Soit x∗ un point tel que ∇f (x∗ ) = 0. Comme f est convexe alos, on a :
f (x) ≥ f (x∗ ) ∀ x ∈ Rn .
Corollaire 2.2.1 Si f est une fonction quadratique avec f (x) = 12 ⟨Ax, x⟩ − ⟨b, x⟩ où A est une
matrice carrée d’ordre n à coefficients réels, symétrique et définie positive, alors il existe un mi-
nimum unique x̄ ∈ Rn de f et qui est l’unique solution du système Ax = b.
13
2.2.2 Conditions d’optimalité du second ordre
Théorème 2.2.3 (Condition nécessaire d’optimalité du second ordre) Si f : Rn → R est
une fonction deux fois différentiable sur Rn , une condition nécessaire pour que x∗ soit un minimum
local (global) de f sur Rn est que : ∇f (x∗ ) = 0 et ∇2 f (x∗ ) est semi défini positif.
Preuve : Soit x∗ un minimum local de f sur Rn . On sait que la condition 1) est satisfaite. Il reste
à montrer la condition 2). Par définition du minimum local, il existe un voisinage V de x∗ dans
Rn tel que f (x) ≥ f (x∗ ) pour tout x ∈ V .
Soit h ∈ Rn . En utilisant le développement de Taylor au voisinage de x∗ , à l’ordre deux et la
condition 1), on a : pour t suffisamment petit,
t2 2
f (x∗ + th) = f (x∗ ) + ⟨∇ f (x∗ )h, h⟩ + t2 ∥h∥2 ε(th),
2
avec ε continue et limt→0 ε(th) = 0.
Pour t ̸= 0 suffisamment petit de sorte que x∗ + th ∈ V , on a :
f (x∗ + th) − f (x∗ ) 1
0≤ 2
= ⟨∇2 f (x∗ )h, h⟩ + ε(th).
t 2
En passant à la limite, t tendant 0, on obtient : ⟨∇2 f (x∗ )h, h⟩ ≥ 0.
On a aussi une condition suffisante d’optimalité.
Théorème 2.2.4 (Condition suffisante d’optimalité du second ordre) On suppose que f :
Rn → R est une fonction deux fois différentiable sur Rn . Si x∗ est tel que ∇f (x∗ ) = 0 et ∇2 f (x∗ )
est défini positif, alors x∗ est un minimum local strict de f .
Preuve : La matrice étant définie positive, il existe λ > 0 tel que
∀ h ∈ Rn , ⟨∇2 f (x∗ )h, h⟩ ≥ λ∥h∥2 .
D’après la formule de Taylor on a :
1
f (x) − f (x∗ ) = ⟨∇f (x∗ ), x − x∗ ⟩ + ⟨∇2 f (x∗ )(x − x∗ ), x − x∗ ⟩ + ∥x − x∗ ∥2 ε(x − x∗ )
2
∗
avec ε continue et limx→x∗ ε(x − x ) = 0.
On a alors ( )
∗ ∗ 2 λ ∗
f (x) − f (x ) ≥ ∥x − x ∥ + ε(x − x )
2
Pour x suffisamment proche de x∗ , λ
2
+ ε(x − x∗ ) est du signe de λ c’est-à-dire strictement
positif.
On en déduit les corollaires suivants :
Corollaire 2.2.2 Si f ∈ C 2 (Rn , R) (c’est-à-dire que f : Rn → R admet des dérivées partielles
d’ordre 1 et 2 qui sont continues), si x est un point critique de f tel que la matrice hessienne de
f en x (qui est une matrice carrée d’ordre n symétrique) a pour valeurs propres (qui sont réelles)
ordonnées λ1 ≤ λ2 ≤ · · · ≤ λn , alors :
• Si λi > 0 pour tout i ∈ {1, · · · , n}, f admet un minimum local en x.
• Si λi < 0 pour tout i ∈ {1, · · · , n}, f admet un maximum local en x.
• Si λ1 < 0 et λn > 0, f n’admet pas d’extremum en x.
• S’il existe un i ∈ {1, · · · , n} tel que λi = 0 et les autres valeurs propres sont de même signe,
on ne peut pas conclure.
14
Corollaire 2.2.3 (cas de dimension deux) Si x est un point critique de f ∈ C 2 (R2 , on définit
les coefficients r, s, t par :
∂ 2f ∂2f ∂ 2f ∂2f
r= (x), s= (x) = (x), t= (x).
∂x2 ∂x∂y ∂y∂x ∂y 2
Alors
• Si rt − s2 > 0 et r > 0, f admet un minimum local en x.
• Si rt − s2 > 0 et r < 0, f admet un maximum local en x.
• Si rt − s2 < 0, f n’admet pas d’extremum en x, c’est un point selle.
• Si rt − s2 = 0, on ne peut pas conclure.
α = infn f (x) (P )
x∈R
Définition 2.3.2 On dit que l’algorithme A converge si la suite {xk } engendrée par l’algorithme
converge vers une limite x∗ .
La convergence est dite locale si elle n’a lieu que pour des points de départ x0 dans un voisinage
de x∗ . Dans le cas contraire la convergence est globale.
Définition 2.3.3 Soit {xk } une suite de limite x∗ définie par la donnée d’un algorithme conver-
geant A. On dit que la convergence de A est :
- linéaire si l’erreur ek = ∥xk − x∗ ∥ décroit linéairement i.e
15
Si αk est une suite géométrique, la convergence de l’algorithme est dite géométrique.
- superlinéaire d’ordre p > 1 si l’erreur ek = ∥xk − x∗ ∥ décroit de la manière suivante :
∃ C ≥ 0, ∃ k0 : ∀ k ≥ k0 , ek+1 ≤ C[ek ]p .
Dans le cas p = 2, la convergence de l’algorithme est dite quadratique.
Méthodes du gradient
Il s’agit d’une famille de méthodes itératives qui s’appliquent à des fonctions différentiables et
qui utilisent l’opposé du gradient comme direction de déplacement c’est-à-dire : à l’étape k, on
prend comme pas de déplacement , dk = −∇f (xk ). Il reste ensuite le choix du pas de déplacement,
c’est la phase de recherche linéaire. Ce choix détermine la méthode. Il existe plusieurs possibilités :
- prendre un pas constant, on parle alors d’algorithme à pas constant ;
- prendre un pas optimal, i. e. λk qui minimise ϖ(λ) = f (xk − λ∇f (xk ), (λ ≥ 0), on parle alors
d’algorithme du gradient àà pas optimal ;
- prendre un pas qui respecte certaines règles tout en nécessitant peu de calculs au niveau de
la recherche linéaire.
Nous nous intéressons ici à l’algorithme du gradient à pas optimal on dit aussi de la plus forte
pente qui est le suivant :
16
Algorithme du gradient à pas optimal
0) Choix d’un itéré initial x0 ∈ Rn initialisation : k := 0 ;
1) Arrêt de l’algorithme si test d’arrêt vérifié ;
2) Prendre dk = −∇f (xk ) ;
3) Déterminer λk > 0 tel que f (xk + λk dk ) = minλ≥0 f (xk + λdk ) ;
4) xk+1 = xk + λk dk , k := k + 1 et aller en 1.
Le test d’arrêt peut être par exemple :
• le gradient est très petit : ∥∇f (xk )∥ ≤ ε, où ε est un paramètre donné ;
• la suite {xk } est ”presque” stationnaire : |f (xk+1 ) − f (xk )| ≤ ε, (ε donné).
On peut aussi exiger que l’un de ces tests soit vérifié sur plusieurs itérations ou que plusieurs
tests soient satisfaits simultanément.
On montre que dans la méthode du gradient à pas optimal, les directions de déplacement
successives sont orthogonales :
Théorème 2.3.1 Etant donné l’algorithme du gradient à pas optimal, on a pour tout k, ⟨dk , dk+1 ⟩ =
0.
Théorème 2.3.2 Si la fonction f est de classe C 1 et coercive, alors pour tout point de départ x0 ,
la méthode du gradient à pas optimal converge vers un point stationnaire de f .
On remarque que dans la pratique, pour certaines fonctions comme la fonction banane de
Rosenbrock, la convergence est très lente, par exemple, les fonctions mal conditionnées du type
vallée étroite et allongée. Il existe des techniques d’accélération de la convergence.
Définition 2.3.5 Soit A une matrice carrée d’ordre n symétrique définie positive.
On dit que les vecteurs x et y de Rn sont conjugués par rapport à A ou encore A-conjugués
s’ils vérifient xT Ay = 0.
Théorème 2.3.3 Si {d0 , · · · , dk } sont des directions 2 à 2 conjuguées par rapport à A, soit
⟨di , Adj ⟩ = 0 ∀ i, j ∈ {0, · · · , k}, i ̸= j alors elles sont linéairement indépendantes.
17
2.3.4 Méthode de Newton
La méthode de Newton permet de construire un algorithme permettant de résoudre le système
d’équation non linéaire
g(x) = 0
où g : Rn → Rn est différentiable : on se donne x0 ∈ Rn et on fait les itérations
α = minn f (x) (P )
x∈R
consiste à l’utiliser pour résoudre le système d’optimalité du problème (P ), c’est-à-dire que l’on
pose g(x) = ∇f (x) dans (2.2). Cela suppose donc que f est deux fois différentiable et que l’on
sait calculer ses dérivées secondes. On obtient les itérations
On remarque qu’il est nécessaire qu’en xk , ∇2 f (xk ) soit inversible : ce qui est le cas si ∇2 f (xk )
est défini positif.
La méthode de Newton est intéressante car sa convergence est quadratique au voisinage de la
solution x⋆ si ∇2 f (x⋆ ) est défini positif c’est-à-dire que l’on a
Mais cette convergence n’est assurée que si x0 est suffisamment proche de x∗ , ce qui limite l’intérêt.
On pourra éventuellement appliquer d’abord une autre méthode pour s’approcher de x⋆ , puis
appliquer la méthode de Newton.
Pour améliorer la précision de la méthode de Newton, on peut penser à lui ajouter une phase
de recherche linéaire dans la direction dk = −[∇2 f (xk )]−1 ∇f (xk ).
Cela est possible uniquement si dk est une direction de descente pour f en xk , soit
ce qui sera le cas si ∇2 f (xk ) est une matrice définie positive. L’algorithme s’écrit alors :
0) Choix d’un itéré initial x0 ∈ Rn , initialisation : k := 0 ;
1) Arrêt de l’algorithme si test d’arrêt vérifié ;
2) Prendre dk = −[∇2 f (xk )]−1 ∇f (xk ) ;
3) Déterminer λk > 0 tel que f (xk + λk dk ) = minλ≥0 f (xk + λdk ) ;
4) xk+1 = xk + λk dk , k := k + 1 et aller en 1.
18
Chapitre 3
α = inf f (x) (P )
x∈C
Définition 3.1.1 On appelle suite minimisante de f sur C toute suite {xk } de C telle
Théorème 3.1.1 (Théorème de Weierstrass) Si f est continue et C est compact non vide,
alors le problème (P ) admet au moins une solution optimale.
Pour le cas où C est non borné, on considère d’abord les définitions suivantes.
∥x∥ → +∞ .
x∈C
Théorème 3.1.2 Si f est continue, coercive, C est non vide, fermé alors le problème (P ) admet
au moins une solution optimale.
Preuve :
Soit {xk } une suite minimisante de f sur C.
19
La suite {xk } est bornée. En effet si ça n’était pas le cas, il existerait une sous suite {xkl } de
{x } telle que ∥xkl ∥ −→ +∞. Comme f est coercive, cela impliquerait que α = liml f (xkl ) = +∞.
k
Ce qui est impossible car f est finie en au moins un point de C car non vide.
La suite {xk } étant bornée, il existe une sous suite {xkl } de {xk } qui converge vers un point x̄
de C car C est fermé.
Comme f est continue, alors on a
Donc α = f (x̄) ∈ R.
Dans le cas où la fonction f est convexe, on a les propriétés suivantes.
Proposition 3.1.2 Si C est convexe compact non vide et f continue et concave sur C, alors
l’ensemble des solutions optimales de (P ) est non vide et contient des points extrêmes de C.
Preuve : Comme C est compact non vide, f continue, alors (P ) admet au moins une solution
optimale.
On sait que tout convexe compact est égal à l’enveloppe convexe de ses points extrêmes.
Soit x∗ une solution optimale. Comme x∗ ∈ C alors il existe ai , i = 1, · · · , p des points extrêmes
de C tels que
∑p
∑p
∗
x = λi a avec λi ≥ 0 et
i
λi = 1.
i=1 i=1
Or on a f (ai ) ≥ f (x∗ ). Ce qui implique que pour tout i ∈ {1, · · · , p}, on a f (ai ) = f (x∗ ) et par
suite ai est une solution optimale de (P ).
Proposition 3.1.3 Si C est un polyèdre convexe non vide et f concave et continue sur C et si
α > −∞ alors l’ensemble des solutions optimales de (P ) est non vide et contient au moins un
sommet de C.
20
Preuve : Comme C est un polyèdre convexe, on peut écrire C = P + D où P est un polytope et
∑
q
D = {d = µj dj , dj ∈ Rn , µj ≥ 0}.
j=1
Soit x̃ fixé, x̃ ∈ P . On a
[ ]
α ≤ inf [f (x̃ + d)] = inf inf f (x̃ + td) .
d∈D d∈D t≥0
Par suite
inf f (x) = inf f (x).
x∈C x∈P
Comme P est un polytope donc compact, le minimum est atteint et il l’est en un des points
extremaux du polytope.
Théorème 3.1.3 Si C est convexe et f strictement convexe sur C alors (P ) admet au plus une
solution optimale.
21
Preuve : Supposons qu’il existe V ∈ V(x̄) tel que
f (x) ≥ f (x̄) ∀ x ∈ C ∩ V.
Si
∃d ∈ T (C, x̄) = T (C ∩ V, x̄)
tel que ⟨∇f (x̄), d⟩ < 0, alors d ̸= 0, on peut donc sans perdre de généralités supposer que ∥d∥ = 1.
Par défintion du cône tangent, il existe une suite {dk } de Rn tendant vers d, une suite {λk } de
R∗+ tendant vers 0 telles que
xk = x̄ + λk dk ∈ C ∩ V ∀ k ∈ N.
On a alors xk −→ x̄ et donc
f (xk ) − f (x̄) − ⟨∇f (x̄), xk − x̄⟩
lim = 0. (3.1)
k→+∞ ∥xk − x̄∥
Comme xk ∈ C ∩ V , on a f (xk ) ≥ f (x̄) pour tout k. Donc
f (xk ) − f (x̄)
≥ 0. (3.2)
∥xk − x̄∥
Mais comme
⟨∇f (x̄), xk − x̄⟩
lim = ⟨∇f (x̄), d⟩,
k→+∞ ∥xk − x̄∥
alors d’après la condition (3.1), on a
f (xk ) − f (x̄)
lim = ⟨∇f (x̄), d⟩ < 0.
k→+∞ ∥xk − x̄∥
Ce qui est en contradiction avec (3.2). Donc pour tout d ∈ T (C, x̄), on a ⟨∇f (x̄), d⟩ ≥ 0. D’où le
résulatat.
On en déduit le corollaire suivant.
Corollaire 3.2.1 Si f est différentiable en x̄ ∈ int(C), alors si x̄ est un minimum local de f sur
C, on a ∇f (x̄) = 0.
Preuve : D’après le théorème ci-dessus, on a ⟨∇f (x̄), d⟩ ≥ 0 pour tout d ∈ T (C, x̄). Mais comme
x̄ ∈ int(C), T (C, x̄) = Rn . Il vient alors que ⟨∇f (x̄), d⟩ = 0 pour tout d ∈ Rn . Donc ∇f (x̄) = 0.
Cette condition nécessaire d’optimalité est suffisante dans le cas convexe. Mais avant on
considère le résultat suivant.
22
Proposition 3.2.2 Si C est convexe et f convexe sur C et différentiable en x̄ ∈ C alors x̄ réalise
un minimum global de f sur C si et seulement si ⟨∇f (x̄), x − x̄⟩ ≥ 0 ∀ x ∈ C.
∑
q
∗ ∗
∃!µ ∈ R q
tel que ∇f (x ) + µ∗j ∇hj (x∗ ) = 0.
j=1
Définition 3.2.2 On appelle lagrangien associé au problème (P ) avec containtes d’égalité, c’est-
à-dire
min [f (x) : hj (x) = 0, j = 1, · · · , q]
la fonction
L : Rn × Rq −→ R
∑
(x, µ) 7−→ f (x) + qj=1 µj hj (x).
Les conditions nécessaires du premier ordre s’écrivent alors avec la fonction de Lagrange de la
façon suivante.
23
Proposition 3.2.3 On suppose qu f est différentiable en x∗ ∈ C, que les fonctions hj , j =
1, · · · , q sont de classe C 1 dans un voisinage de x∗ et que le point x∗ est qualifié. Alors une
condition nécessaire pour que x∗ soit une solution optimale locale de (P ) est que :
{
∇x L(x∗ , µ∗ ) = 0
∃! µ∗ ∈ Rq tel que
∇µ L(x∗ , µ∗ ) = 0
Y a-t-il des situations où la condition nécessaire du théorème (3.2.2) ci-dessus est suffisante
pour que x∗ minimise f sur C ? Oui.
Théorème 3.2.3 (CNS d’optimalité du premier ordre) Supposons f convexe sur un ouvert
contenant C et les hj affines (i.e. de la forme x 7−→ hj (x) = ⟨aj , x⟩−bj ) linéairement indépendantes.
Alors, un élément x∗ ∈ C pour lequel
∑
q
∗ ∗
∃µ ∈ R q
tel que ∇f (x ) + µ∗j ∇hj (x∗ ) = 0
j=1
Définition 3.2.3 Soit x̄ ∈ C. On dit que la contrainte d’inégalité gi (x) ≤ 0 est active en x̄, si on
a gi (x̄) = 0.
Pour x ∈ C on note I(x) = {i ∈ {1, · · · , p} : gi (x) = 0} l’ensemble des indices des contraintes
actives en x.
Définition 3.2.4 On dira que les contraintes sont qualifiées en un point x de C, si l’une des
conditions suivantes est vérifiée :
- Condition de qualification globale de Karlin : toutes les fonctions gi sont affines et
C non vide.
- Condition de qualification globale de Slater : toutes les fonctions gi sont convexes et
différentiables sur un ouvert contenant C, et ∃ x̃ ∈ C tel que : gi (x̃) < 0 pour tout i, c’est-à-dire
que C est d’intérieur non vide.
- Condition de qualification locale d’indépendance linéaire : les fonctions gi sont
toutes différentiables dans un voisinage de x et le système formé des gradients des contraintes
actives en x est libre.
24
Théorème 3.2.4 (CN d’optimalité de Kuhn- Tucker)
Soit x∗ ∈ C. On suppose que pour tout i, les gi sont toutes différentiables dans un voisinage de
x∗ et que les contraintes sont qualifiées en x∗ . Alors une condition nécessaire pour x∗ soit une
solution optimale locale de (P ) est :
∃ λ ∈ R+ tel
p
que :
∑p
∇f (x ) + i=1 λi ∇gi (x∗ ) = 0
∗
λ g (x∗ ) = 0, ∀ i ∈ {1, · · · , p}.
i i
Dans le cas où le problème (P ) est convexe, la condition nécessaire d’optimalité de Kuhn-Tucker
est aussi suffisante.
Définition 3.2.5 On dira que les contraintes sont qualifiées en un point x de C, si l’une des
conditions suivantes est vérifiée :
- Condition de qualification globale de Karlin : toutes les fonctions gi et hj sont affines
et C non vide.
- Condition de qualification globale de Slater : toutes les fonctions gi sont convexes et
différentiables sur un ouvert contenant C, les fonctions hj sont affines linéairement indépendantes,
et ∃ x̃ ∈ C tel que : gi (x̃) < 0 pour tout i.
- Condition de qualification locale d’indépendance linéaire : les fonctions gi et hj
sont toutes différentiables dans un voisinage de x et le système formé des gradients de toutes les
contraintes actives en x est libre c’est-àdire : {∇gi (x̄), i ∈ I(x̄), ∇hj (x̄) j = 1, · · · , q} est libre.
Théorème 3.2.5 Soit x∗ ∈ C. On suppose que les fonctions f , gi et les hj sont continûment
différentiables dans un voisinage de x∗ et que les contraintes sont qualifiées en x∗ . Alors une
condition nécessaire pour que x∗ soit une solution optimale locale de (P ) est que :
∃ λ∗i ≥ 0, i = 1, · · · , p, µ∗j ∈ R, j = 1, · · · , q
tels que
∑p ∑q
∇f (x ∗
) + λ ∗
∇g (x ∗
) + ∗ ∗
j=1 µj ∇hj (x ) = 0,
i=1 i i
∗
λi gi (x∗ ) = 0, i = 1, · · · , p.
25
Dans le cas convexe la condition nécessaire devient aussi suffisante.
la fonction
L : Rn × Rp+ × Rq −→ R
∑ ∑
(x, λ, µ) 7−→ f (x) + pi=1 λi gi (x) + qj=1 µj hj (x).
On montre alors
Proposition 3.2.4 Soit x∗ ∈ C, on suppose que les fonctions f , les gi et les hj sont continûment
différentiables dans un voisinage de x∗ et que les contraintes sont qualifiées en x∗ . Alors une
condition nécessaire pour qu’il soit une solution optimale locale de (P ) est :
∗ ∗
∃ λ ∈ R+ , µj ∈ R, j = 1, · · · , q tel que :
p
∇x L(x∗ , λ∗ , µ∗ ) = 0
λ∗ g (x∗ ) = 0, ∀ i ∈ {1, · · · , p}.
i i
26
Chapitre 4
Notion de dualité
4.1 Généralités
4.1.1 Définitions
La notion de dualité introduite dans cette section est très générale.
On suppose donnés deux ensembles X et Y quelconques qui ne doivent donc pas être des
espaces vectoriels.
Soit f : X −→ R une fonction. On considère le problème d’optimisation
(P ) inf f (x)
x∈X
où φ : X × Y −→ R.
Lorsque f s’écrit comme ci-dessus, le problème primal devient
(P ) inf sup φ(x, y)
x∈X y∈Y
On définit
Définition 4.1.1 On appelle problème dual de (P ) relatif à φ le problème noté (P ∗ ) et défini par
27
4.1.2 Liens entre problèmes primal et dual
La proposition suivante donne une relation entre les valeurs optimales de (P ) et (P ∗ ).
Proposition 4.1.1 On a
sup inf φ(x, y) ≤ inf sup φ(x, y). (4.2)
y∈Y x∈X x∈X y∈Y
Preuve : On a
inf φ(x, y ′ ) ≤ φ(x′ , y ′ ) ∀ x′ ∈ X, ∀ y ′ ∈ Y.
x∈X
En général, lorsqu’on n’a pas égalité en (4.2), les solutions éventuelles des problèmes primal
et dual n’ont pas de rapports entre elles. D’autre part, l’existence de solutions primale et duale et
l’égalité en (4.2) sont étroitement liés à l’existence de point-selle de φ.
Proposition 4.1.2 Un couple de points (x̄, ȳ) ∈ X × Y est un point selle de φ sur X × Y si et
seulement si x̄ est solution du problème primal, ȳ est solution du problème dual et on a
28
On a le theorème d’existence de points-selles suivant :
φ : X × Y −→ R
convexe-concave sur X × Y .
On suppose que :
i) X est borné ou bien il existe un y0 ∈ Y tel que
(P ) α = inf f (x)
x∈C
où
g(x) ≤ 0
C = x ∈ Rn : h(x) = 0
x∈X
avec
g : Rn −→ Rp , h : Rn −→ Rq et X ⊂ Rn .
On considère le lagrangien associé à (P ) suivant :
Rn × Rp+ × Rq −→ R
L:
(x, λ, µ) 7−→ L(x, λ, µ) = f (x) + ⟨λ, g(x)⟩ + ⟨µ, h(x)⟩.
Proposition 4.2.1 On a
α = inf sup L(x, λ, µ)
x∈X
λ≥0
µ
29
Proposition 4.2.2 On a
Considérons la fonction
Rp+ × Rq −→ R
θ:
(λ, µ) 7−→ inf x∈X L(x, λ, µ),
c’est-à-dire que
θ(λ, µ) = inf [f (x) + ⟨λ, g(x)⟩ + ⟨µ, h(x)⟩]
x∈X
On définit le dual de (P )
c’est-à-dire
β= sup θ(λ, µ).
λ≥0
µ
La fonction θ est appelée fonction duale.
Par opposition le problème (P ) est appelé problème primal et la fonction f , fonction primale.
Remarque 4.2.1 Etant donné un programme mathématique, plusieurs problèmes duals peuvent
être obtenus en fonction des contraintes retenues dans le lagrangien.
Le choix est lié aux difficultés qu’on peut rencontrer dans l’évaluation de la fonction duale.
On a la propriété suivante :
Théorème 4.2.1 (de dualité faible) Si x et (λ, µ) sont respectivement solutions réalisables de
(P ) et (D), alors on a f (x) ≥ θ(λ, µ).
Corollaire 4.2.1 On a α ≥ β.
Corollaire 4.2.2 Si x̄ et (λ̄, µ̄) sont respectivement solutions réalisables de (P ) et (D) et vérifient
f (x̄) ≤ θ(λ̄, µ̄) alors x̄ est solution optimale de (P ) et (λ̄, µ̄) est solution optimale de (D)
30
Définition 4.2.3 On dit que le problème (P ) respectivement (D) est non borné si α = −∞
respectivement β = +∞.
Corollaire 4.2.3 Si le problème (P ) est non borné alors (D) est impossible c’est-à-dire n’admet
pas de solution réalisable. Si le problème (D) est non borné alors (P ) est impossible.
Théorème 4.2.2 (de dualité forte) On suppose dans le problème (P ) que X est convexe et
non vide, f et g sont convexes c’est-à-dire que les composantes de g sont convexes, h est affine
0 ∈ int(h(X)). Si
∃x̃ ∈ X, tel que g(x̃) < 0, h(x̃) = 0,
alors il n’y a pas de saut de dualité c’est-à-dire que α = β.
En outre, si α est fini et est atteint en un point x̄ alors β est fini et est atteint en (λ̄, µ̄) avec
λ̄ ≥ 0 et ⟨λ̄, g(x̄)⟩ = 0.
On sait que
Proposition 4.2.4 Si (x∗ , (λ∗ , µ∗ )) est un point-selle du lagrangien avec x∗ ∈ X, alors x∗ est
solution optimale de (P ) et (λ∗ , µ∗ ) est solution optimale de (D).
On montre que
Théorème 4.2.3 On suppose dans le problème (P ) que X est convexe et non vide, f et g sont
convexes, h est affine, 0 ∈ int(h(X)) et que
Si x∗ est solution optimale de (P ), alors il existe (λ∗ , µ∗ ) réalisable pour (D) tel que (x∗ , (λ∗ , µ∗ ))
soit un point-selle du lagrangien.
On montre que
Théorème 4.2.4 On suppose que les fonction f , g sont convexes différentiables et que h est
affine.
Si (x∗ , λ∗ , µ∗ ) est un point de Kuhn-Tucker pour le problème (P ) alors il est un point-selle pour
le lagrangien.
Réciproquement, si (x∗ , λ∗ , µ∗ ) est un point-selle pour le lagrangien avec x∗ ∈ C, x∗ ∈ intX et
λ∗ ≥ 0, alors (x∗ , λ∗ , µ∗ ) est un point de Kuhn-Tucker pour le problème (P ).
31
Chapitre 5
on le note symboliquement :
∑
min (max) Z(x) = nj=1 cj xj
∑n
j=1 aij xj ≥ bi , i = 1, · · · , m1
∑n a x ≤ b , i = m + 1, · · · , m
ij j i 1 2
∑j=1
n
a x = b , i = m + 1, · · · , m
j=1 ij j i 2
xj ∈ R, j = 1, · · · , n
La fonction Z est dite fonction-objectif du problème et les éléments qui vérifient le système
d’équations et/ou d’inéquations linéaires sont appelés solutions réalisables ou admissibles ou ac-
ceptables du problème.
On peut supposer que ce programme est sous la forme suivante dite forme générale :
∑
min (max) Z(x) = nj=1 cj xj
∑n
a x ≥ bi , i = 1, · · · , m1
∑nj=1 ij j
aij xj ≤ bi , i = m1 + 1, · · · , m2
∑j=1n
j=1 aij xj = bi , i = m2 + 1, · · · , m
xj ≥ 0, j = 1, · · · , n1
xj ≤ 0, j = n1 + 1, · · · , n2
xj ∈ R, j = n2 + 1, · · · , n.
32
On a les remarques suivantes :
Remarque 5.1.1 - Etant donné un programme linéaire, on peut toujours se ramener à un pro-
gramme linéaire où les variables sont astreintes à être non négatives. En effet si xj est une variable
négative on fait le changement de variable x′j = −xj . Si par contre xj est quelconque dans R on
− −
pose xj = x+ j − xj avec xj , xj ≥ 0 car tout réel peut s’écrire comme la différence de deux réels
+
positifs ou nuls.
- Dans un programme linéaire on peut ramener toutes les contraintes d’inégalité à des inégalités
de même type. il suffit de multiplier la contrainte par −1 le cas échéant.
Par convention les contraintes d’inégalité pour un problème de minimisation sont du type ” ≥ ”
et les contraintes d’inégalité pour un problème de maximisation sont du type ” ≤ ”
On peut dire alors qu’un programme linéaire est un programme mathématique de la forme
∑n
min (max)
∑n Z(x) = j=1 cj xj
∑j=1 ij j
a x ≥ (≤) bi , i = 1, · · · , m1
n
aij xj = bi , i = m1 + 1, · · · , m
j=1
xj ≥ 0, j = 1, · · · , n
Dans un programme linéaire on distingue deux types de contraintes : les contraintes relatives
au signe des variables, dites contraintes de restriction de signe ou de non-négativité et les autres
dites ”vraies contraintes” on dit aussi contraintes structurelles.
Si on note :
∑n
aij xj ≥ (≤) bi , i = 1, · · · , m1
∑nj=1
C = x ∈ Rn : j=1 aij xj = bi , i = m1 + 1, · · · , m ,
xj ≥ 0, j = 1, · · · , n
Comme déjà dit plus haut, les éléments de C sont appelés solutions réalisables, admissibles ou
acceptables et la fonction Z est appelée fonction-objectif du problème.
33
Dans cette partie, on définit la fonction-objectif qui est soit un bénéfice soit un coût de pro-
duction.
Etape 4 : résumé
On termine la modélisation par un résumé qui signale le type de problème à résoudre. Pour
un coût de production il s’agira naturellement d’un programme linéaire de minimisation et pour
un problème de gain d’un programme linéaire de maximisation.
Remarque 5.2.1 (Hypothèse de linéarité) Pour modéliser un problème sous forme d’un pro-
gramme linéaire, on prend en compte les hypothèses de linéarité sur la fonction-objectif et les
contraintes structurelles. Cela signifie par exemple que, pour fabriquer une unité d’un produit
donné, si on utilise une matière première à la hauteur de α, alors pour en fabriquer x unités, on
utilisera la matière première à la hauteur de αx. En outre si la vente d’une unité de ce produit
conduit à un bénéfice de c unités monétaires, alors la vente de x unités de ce produit conduira à
un bénéfice de cx unités monétaires.
Cette hypothèse de linéarité sera prise en compte automatiquement pour tous les cas de
modélisation en programmation linéaire.
34
ailleurs, le temps de fabrication d’un bureau sous le modèle ”luxe” est double de celui d’un bureau
de type ”standard” : la capacité annuelle de fabrication est telle que, si tous les bureaux fabriqués
étaient du type ”standard”, on pourrait en fabriquer 700 au maximum.
La vente d’un bureau sous le modèle ”luxe” conduit à une marge unitaire sur coût variable
égale à 7, celle d’un bureau de type ”standard” : 5.
On se propose de rechercher le programme annuel de fabrication conduisant au profit global
maximal.
Exemple 5
Le propriétaire d’une station d’essence vend du Super, de l’Ordinaire et du Gas-oil aux prix
respectifs de 415, 390 et 295 unités monétaires le litre, mais livrés par la station mère aux prix de
405, 375 et 270 unités monétaires.
Comme le propriétaire de la station est peu scrupuleux et qu’il veut s’enrichir rapidement, il
se livre au trafic suivant : se basant sur son expérience du métier, il sait qu’il peut vendre à la
pompe ”Super” un mélange des trois carburants à condition qu’il y ait au moins 70% de Super et
pas plus de 10% d’Ordinaire.
De même, à la pompe ”Ordinaire”, il peut vendre un mélange comportant au moins 15% de
Super et pas plus de 70% de Gas-oil.
Enfin, le mélange vendu à la pompe ”Gas-oil” doit contenir au moins 80% de Gas-oil.
D’autre part, le marché est tel que le propriétaire de la station ne peut vendre plus de 20 000
litres de Super, 30 000 litres d’Ordinaire et 20 000 litres de Gas-oil.
Donner la formulation mathématique de ce problème.
Exemple 6
On désire déterminer la composition, à coût minimal, d’un aliment pour bétail qui est obtenu
en mélangeant au plus deux produits bruts : orge et arachide.
- la quantité nécessaire par portion est de 400g.
- l’aliment ainsi fabriqué devra comporter au moins 30% de protéı̈nes et au plus 5% de fibres.
On a les données suivantes :
quantité par gramme d’aliment
Aliment Protéı̈ne Fibres Coût (F/kg)
orge 0,09 0,02 450
arachide 0,60 0,06 500
Modéliser le problème sous forme d’un programme linéaire.
Définition 5.3.1 Un programme linéaire est sous forme standard si les vraies contraintes sont
des égalités et les variables sont astreintes à être non négatives. En d’autres termes, le problème
est sous la forme
∑n
min
{ ∑ (max) Z = j=1 cj xj
n
j=1 aij xj = bi , i = 1, · · · , m
xj ≥ 0, j = 1, · · · , n
35
Si on pose A = (aij ) ∈ Mm,n (R), c = (cj ) ∈ M1,n (R), et
b = (bi ) ∈ Mm,1 (R), on a la notation matricielle
min(max)
{ Z = cx
Ax = b
x ∈ Rn , x ≥ 0
On a la proposition suivante.
Proposition 5.3.1 Tout programme linéaire peut se mettre sous forme standard
∑
n ∑
n
aij xj ≤ bi ⇔ aij xj + si = bi , si ≥ 0
j=1 j=1
Définition 5.3.2 La variable si introduite pour passer d’une contrainte d’inégalité à une contrainte
d’égalité est appelée variable d’écart.
Remarque 5.3.1 Le passage à la forme standard augmente le nombre de variables dans le pro-
gramme linéaire.
Définition 5.3.3 Un programme linéaire est sous forme canonique si les vraies contraintes sont
des inégalités et les variables sont astreintes à être non négatives. Pour les problèmes de minimi-
sation on a ∑n
min
{ ∑Z = j=1 cj xj
j=1 aij xj ≥ bi , i = 1, · · · , m
n
xj ≥ 0, j = 1, · · · , n
et pour les problèmes de maximisation on a
∑n
max
{ ∑ Z = j=1 cj xj
j=1 aij xj ≤ bi , i = 1, · · · , m
n
xj ≥ 0, j = 1, · · · , n
En considérant les mêmes notations que ci-dessus, on obtient respectivement pour la minimi-
sation et la maximisation la notation matricielle suivante :
min Z = cx
{ max
{ Z = cx
Ax ≥ b Ax ≤ b
x ∈ Rn , x ≥ 0 x ∈ Rn , x ≥ 0
Proposition 5.3.2 Tout programme linéaire peut se mettre sous forme canonique
36
Preuve : Il suffit de transformer les contraintes d’égalité en contraintes d’inégalité en considérant
l’une des équivalences suivantes :
∑n { ∑n
j=1 aij xj ≥ bi ,
∑
aij xj = bi ⇔
− nj=1 aij xj ≥ −bi
j=1
ou
∑
n { ∑n
j=1 aij xj ≤ bi ,
∑
aij xj = bi ⇔
− nj=1 aij xj ≤ −bi
j=1
37
Chapitre 6
Définition 6.1.1
{ Un hyperplan dans Rn }est un sous-espace affine de dimension n − 1. Il est de
∑
la forme : H = x ∈ Rn : nj=1 aj xj = α où aj ∈ R pour tout j = 1, · · · n et α ∈ R sont donnés.
∑
n ∑
n
{x ∈ Rn : aj xj ≥ α} et {x ∈ Rn : aj xj ≤ α}
j=1 j=1
Remarque 6.1.1 Dans cette définition on peut toujours supposer qu’on a un seul type d’inégalité.
L’ensemble des solutions réalisables d’un programme linéaire est un polyèdre convexe.
38
Définition 6.1.3 Soit C un polyèdre convexe de Rn . Un point x ∈ C est un sommet de C s’il
existe a ∈ M1,n (R) tel que ax < ay pour tout y ∈ P, y ̸= x.
On montre qu’un point x ∈ Rn est un sommet d’un polyèdre C si et seulement s’il appartient
à C et est intersection de n hyperplans frontières de C linéairement indépendants.
Nous allons considérer en théorie dans tout ce qui suit, le programme linéaire :
min Z(x) (P),
x∈C
39
6.2 Méthode graphique
La méthode graphique est l’une des premières méthodes utilisées pour résoudre les programmes
linéaires.
On considère le programme linéaire (P ).
On suppose que (P ) admet une solution optimale. Pour résoudre ce problème par la méthode
graphique, on peut procéder de la façon suivante :
- dessiner le polyèdre des solutions réalisables dans un repère (de préférence orthonormé),
- considérer les lignes de niveau de la fonction-objectif passant par les différents sommets,
- éliminer tous les sommets dont les lignes de niveau rencontrent l’intérieur du polyèdre des
solution réalisables,
- prendre comme solution, le premier sommet (par rapport au sens du vecteur gradient de la
fonction-objectif) dont la ligne de niveau correspondante ne rencontre pas l’intérieur du polyèdre
des solutions réalisables.
On rappelle que les courbes de niveau de la fonction-objectif Z, sont les courbes d’équation :
Z(x) = α avec α ∈ R. Dans le plan, les courbes de niveau sont des droites perpendiculaires au
vecteur gradient de la fonction-objectif.
A titre d’exemples, résoudre graphiquement les programmes linéaires suivants :
1)
min Z = 2x1 + 3x2 2)
min Z = x1 + x2 min Z = 2x1 − 3x2
3)
x1 + x2 ≤ 4
2x1 + x2 ≥ 12 x1 − x2 ≥ 5
6x1 + 2x2 ≥ 8 5x1 + 8x2 ≥ 74 x2 ≥ 5
x1 + 5x2 ≥ 4
x1 + 6x2 ≥ 24 x1 , x2 ≥ 0
x1 ≤ 3 x1 , x2 ≥ 0
x ≤3
2
x1 , x2 ≥ 0
4)
max Z = 3x1 + 2x2 5)
max Z = 6x1 + 5x2 6)
max Z = x1 + x2
−2x1 + x2 ≤ 1
x1 + x2 ≥ 8
−2x1 + x2 ≤ 1
x1 + x2 ≤ 3 −2x1 + 3x2 ≤ 6 x1 + x2 ≤ 3
x1 ≤ 2
x1 − x2 ≥ 2
x1 ≤ 2
x1 , x2 ≥ 0 x1 , x 2 ≥ 0 x1 , x2 ≥ 0
Cette méthode est limitée car elle ne s’applique qu’à des programmes linéaires où le nombre
de variables est faible (au maximum 3 variables). Nous allons nous intéresser dans ce qui suit à
une méthode algébrique, la méthode du simplexe.
40
Définition 6.3.1 On appelle base de (P L), toute sous matrice B, carrée d’ordre m, régulière
extraite de A.
Définition 6.3.2 Soit B une base de (P L), les variables associées aux colonnes de B sont appelées
variables de base associées à B, et les autres, variables hors base ou libres associées à B.
Remarque 6.3.1 La matrice des vraies contraintes du programme linéaire (P L) étant dans Mm,n (R),
il possède au plus Cm
n bases.
Remarque 6.3.2 Dans la pratique, on représente une base par son ensemble de variables de base
ou par son ensemble des indices des variables de base. Cela permet d’éviter certaines indéterminations.
En effet, si on considère un programme dont le système des vraies contraintes est :
{
x1 − x2 + x3 − x4 + x5 = 4
x1 + x2 + x3 + x4 + x5 = 1
on sait que ( )
1 −1
B=
1 1
est une base mais il est difficile de dire quelles sont les variables de base associées.
Soit B une base de (P L). Notons N la sous matrice de A constituée des colonnes des variables
hors base. Moyennant une permutation on peut supposer que les colonnes de B sont les m premières
colonnes de A. Donc on peut supposer que A est sous la forme (matrices
( blocs)
) A = (B, N ). De
xB
même on peut décomposer le vecteur variable x sous la forme x = où xB est constitué
xN
des variables de base et xN des variables hors base. Le système Ax = b s’écrit alors :
BxB + N xN = b ⇐⇒ xB + B −1 N xN = B −1 b. (6.1)
Exemple 6.3.1
Considérons le programme linéaire ci-dessous où c quelconque est une matrice ligne à 5 colonnes.
41
La matrice des vraies contraintes est :
( )
1 −1 1 0
A=
0 1 0 1
Il est immédiat que rangA = 2. Il y a cinq bases possibles (seul I = {1, 3} est exclu)
I1 = {1, 2}, I2 = {1, 4}, I3 = {2, 3}, I4 = {2, 4}, I5 = {3, 4}.
Définition 6.3.4 On dit qu’une base B de (P L) est une base réalisable, si la solution de base
x(B) associée à B, est telle que x(B) ≥ 0 c’est-à-dire B −1 b ≥ 0. On dit alors que x(B) est une
solution de base réalisable de (P L).
Exemple 6.3.3
Exemple 6.3.4
Z = −3x1 − 2x2
min
4x1 + 3x2 + x3 = 18
4x1 + x2 + x4 = 8
4x1 − x2 + x5 = 8
x ∈ R5 , x ≥ 0
42
4 1 0
B= 4 0 0
4 0 1
On a det B = −4 ̸= 0 ; donc I est une base.
0 41 0 2
B −1 = 1 −1 0 et B −1 b = 10 ≥ 0.
0 −1 1 0
La base est alors réalisable ; mais le vecteur B −1 b a une composante nulle. Donc la base I est
dégénérée.
Définition 6.3.6 Le programme linéaire (P L) est dit dégénéré s’il possède une base réalisable
dégénérée.
Définition 6.3.7 On dit que deux bases B et B ′ sont adjacentes, si les colonnes qui les constituent
ne diffèrent que d’un seul élément.
On montre que :
Proposition 6.3.1 Etant donné un programme linéaire sous forme standard, si l’ensemble des
solutions réalisables est non vide, il contient au moins une solution de base réalisable. En outre,
si le programme possède une solution optimale, alors il possède une solution de base réalisable
optimale.
BxB + N xN = b ⇔ xB + B −1 N xN = B −1 b. (6.2)
On peut aussi partitionner c de la façon suivante : c = (cB , cN ) où cB est formé des coefficients
des variables de base et cN des coefficients des variables hors base. On a alors :
Z(x) = cx = cB xB + cN xN .
43
En remplaçant xB par sa valeur (xB = B −1 b − B −1 N xN ), on a :
Posons
 = B −1 A, ĉ = c − cB B −1 A, Ẑ = cB B −1 b (6.4)
Définition 6.3.8 Deux programmes linéaires sont dits équivalents s’ils ont les mêmes solutions
réalisables et les mêmes solutions optimales.
C’est la forme canonique (ou forme équivalente) de (P L) par rapport à la base réalisable B.
Remarque 6.3.3 Ecrire un programme linéaire sous forme canonique par rapport à une base
réalisable, c’est écrire sa fonction-objectif ainsi que ses variables de base en fonction des seules
variables hors base.
En d’autres termes il s’agit d’écrire la fonction-objectif à l’aide des seules variables hors base et
transformer le système des vraies contraintes en un système équivalent dans lequel chaque variable
de base n’intervient que dans une seule équation, et dans cette équation son coefficient est égal à
1. On dira alors que cette dernière est la variable de base associée à cette équation.
Exemple 6.3.6
La forme canonique du programme linéaire de l’exemple (6.3.3) par rapport à la base réalisable
I = {x1 , x3 } est :
Théorème 6.3.1 Une condition suffisante pour que B soit une base réalisable optimale est ĉ ≥ 0.
44
Remarque 6.3.4 Pour un problème de maximisation la condition suffisante d’optimalité est ĉ ≤
0.
Dans le cas de non dégénérescence, la condition suffisante ci-dessus est aussi nécessaire.
Théorème 6.3.2 Si le problème (P L) est non dégénéré i.e. ne possède pas de base réalisable
dégénérée, une condition nécessaire et suffisante pour que B soit optimale est ĉ ≥ 0.
Théorème 6.3.3 Soit k dans J tel que ĉk < 0. Si Âk , la colonne associée à la variable xk dans
la matrice  est telle que Âk ≤ 0, alors on peut diminuer indéfiniment la fonction objectif, ce qui
signifie que (z ∗ = −∞). On dit alors que l’optimum de (P L) est non borné ou que (P L) n’admet
pas de solution optimale à distance finie.
Preuve : Considérons dans le système Ax = b la solution x(α) obtenue en imposant aux variables
hors base les valeurs suivantes :
xj = 0 ∀ j ∈ J − k et xk = α.
On obtient alors
xi = b̂i − αâik ∀i ∈ I.
La solution x(α) est réalisable pour tout α ≥ 0.
On a : ∑
Z(x(α)) = Ẑ + ĉj xj = Ẑ + αĉk
j∈J
Comme ĉk < 0, on a Z(x(α)) qui tend vers −∞ pour λ tendant vers +∞. Donc Z ∗ = −∞.
Exemple 6.3.7
Z = −x1 − 2x2
min
−2x1 + x2 + x3 = 2
−x1 + 2x2 + x4 = 5
x1 − 4x2 + x5 = 4
x ∈ R5 , x ≥ 0
Soit I = {1, 2, 5}. La matrice associée à I est :
−2 1 0
B = −1 2 0
1 −4 1
On a :
− 23 1
3
0 1
3
B −1 = − 13 2
3
0 , B −1 b = 8
3
≥ 0.
− 23 7
3
1 43
3
Donc c’est une base réalisable. La forme canonique par rapport à cette base est :
45
Z =2 − 3 −
17 4
min x + 53 x4
3 3
x1 − 3 x3 + 13 x4 = 13
x2 − 13 x3 + 23 x4 = 83
x5 − 23 x3 + 73 x4 = 43
3
x≥0
La colonne de la variable hors base x3 est négative dans cette forme. On remarque que
1 2
3
+ 3α
8 + 1α
3 3
x(α) = α
0
43 2
3
+ 3α
Remarque 6.3.5 On a les mêmes résultats dans le cas des problèmes de maximisation si on
remplace la condition ĉk < 0 par ĉk > 0 dans le théorème (6.3.3).
Dans le théorème qui suit on montre que si pour tout k ∈ J tel que ĉk < 0, on a Âk 0 alors
il existe une base réalisable qui améliore la fonction-objectif Z.
Théorème 6.3.4 Soit B une base réalisable, on note I et J respectivement les ensembles des
indices des variables de base et hors base, b̂ = B −1 b, Â = B −1 A et ĉ = c − cB B −1 A. Soit k ∈ J
tel que ĉk < 0 et Âk 0. Soit l tel que
[ ]
b̂l b̂i
= min : i ∈ I, âik > 0 .
âlk âik
Alors la matrice B ′ associée aux variables dont les indices sont dans I ′ = I − l + k est une base
réalisable adjacente à B. Et on a
b̂l
Z(x(B ′ )) = Z(x(B)) + ĉk .
âlk
Preuve : La matrice associée à I ′ = I − l + k est B ′ = BM . où
( )
M = e1 e2 · · · el−1 Âk el+1 · · · em
46
La solution de base associée à I ′ = I − l + k est :
xj = 0 ∀ j ∈ J − k + l
xk = âb̂lkl
x = b̂ − â b̂l ∀ i ∈ I − l
i i ik âlk
Pour que cette solution de base soit réalisable il suffit qu’elle vérifie les contraintes de non-
négativité, c’est-à-dire : {
xk = âb̂lkl ≥ 0
xi = b̂i − âik âb̂lkl ≥ 0 ∀ i ∈ I − l
Ce qui est équivalent à : [ ]
b̂l b̂i
0≤ = min : i ∈ I, âik > 0 ,
âlk âik
qui est vrai par le choix de l. Par suite I ′ = I − l + k est une base réalisable. En outre on a :
b̂l b̂l
Z(x(B ′ )) = Ẑ + ĉk xk = Ẑ + ĉk = Z(x(B)) + ĉk .
âlk âlk
Comme
b̂l
ĉk < 0 et ≥ 0,
âlk
on a bien Z(x(B ′ )) ≤ Z(x(B)).
Remarque 6.3.6 Si la base B est non dégénérée, on a : Z(x(B ′ )) < Z(x(B)). c’est-à-dire que
la décroissance est stricte.
47
1) Calculer b̂ = B −1 b, Â = B −1 A et ĉ = c − cB B −1 A.
2) Tester ĉ.
a) Si ĉ ≥ 0, stop : ”La base B est optimale.”
b) S’il existe k ∈ J tel que ĉk < 0 avec Âk ≤ 0, stop : ”Le problème est non bornée i.e. la
valeur optimale est infinie.”
c) Autrement effectuer un changement de base.
3) Changement de base
a) Test d’entrée : Soit k ∈ J tel que
ĉk = min [ĉj : j ∈ J, ĉj < 0] .
La variable correspondante xk rentre dans la base on l’appelle variable rentrante.
b) Test de sortie : Soit l tel que
[ ]
b̂l b̂i
= min : i ∈ I, âik > 0 .
âlk âik
Remarque 6.3.7 Dans le cas d’un problème de maximisation, il n’est pas nécessaire de trans-
former le problème en un problème de minimisation afin d’appliquer l’algorithme du simplexe. Il
suffit de considérer les modifications suivantes :
48
Ce théorème montre la convergence de l’algorithme du simplexe en l’absence de dégénérescence.
On montre que
contient plus d’un élément, alors le problème (P L) est dégénéré i.e. il existe une base dégénérée.
Lorsque le problème est dégénéré, l’algorithme du simplexe peut cycler c’est-à-dire qu’on peut
retrouver une base déjà rencontrée. Pour remédier à cela on peut utiliser l’une des règles suivantes.
- la règle de Bland ou la règle du plus petit indice
- la règle lexicographique
- la règle de perturbation
La règle de Bland
Test d’entrée : La variable qui rentre dans la base est xk avec k le plus petit indice pour
lequel ĉk < 0
Test de sortie : La variable qui sort de la base est xl avec l le plus petit élément de L.
toujours avec A ∈ Mm,n (R), c ∈ M1,n (R), et b ∈ Mm,1 (R) et rangA = m < n.
On suppose qu’on dispose d’une base réalisable de départ B Les ensembles des indices des
variables de base et hors-base sont I et J.
La forme canonique de (P L) par rapport à B est :
Z ∗ b
{ = min Z = ĉx + Z
Âx = b̂
x ∈ Rn , x ≥ 0
Définition 6.3.10 On appelle tableau simplexe complet de (P L) par rapport à la base réalisable
B, le tableau à m + 1 lignes et n + 1 colonnes ci-dessous :
xi i ∈ I xj j ∈ J
xi
 b̂
i∈I
ĉ −Ẑ
49
Définition 6.3.11 On appelle tableau simplexe de (P L) par rapport à la base réalisable B, le
tableau à m + 1 lignes et n − m + 1 colonnes ci-dessous
xj j ∈ J
xi
ÂN = B −1 N b̂
i∈I
ĉN −Ẑ
A partir du tableau simplexe on peut écrire la forme canonique de (P L) par rapport à la base
B et inversement.
On définit :
Définition 6.3.12 Dans le tableau simplexe, on appelle pivot l’élément qui est à l’intersection de
la colonne de la variable rentrante et de la ligne de la variable sortante.
Dans ce cas la ligne correspondante est dite ligne du pivot et la colonne, colonne du pivot.
La méthode des tableaux consiste à écrire les tableaux simplexes relatifs aux différentes bases
rencontrées dans la résolution du programme (P L) à l’aide de l’algorithme du simplexe. Il faut
donc déterminer pour deux bases successives dans l’algorithme du simplexe B et B ′ comment
passer du tableau simplexe relatif à B à celui relatif à B ′ .
Pour obtenir le tableau simplexe de (P L) relatif à B ′ à partir de celui relatif à B on utilise le
cadre du tableau simplexe relatif à B et on considère les règles suivantes.
1) Permuter les variables sortante et rentrante ;
2) Remplacer le pivot par son inverse ;
3) Diviser les autres éléments de la ligne du pivot par le pivot ;
4) Diviser les autres éléments de la colonne du pivot par le pivot ; et changer de signe ;
5) Pour les autres éléments du tableau, appliquer la règle du rectangle suivante :
Règle du rectangle
Soit l ∈ I la ligne du pivot et k ∈ J la colonne du pivot.
âik âlj
Pour i ∈ I − l et j ∈ J − k, l’élément âij est remplacé par âij − âlk
.
On note alors
âik âlj
âij := âij −
âlk
Remarque 6.3.8 Si une ligne intersecte la colonne du pivot par un zéro, la ligne reste inchangée.
Si une colonne intersecte la ligne du pivot par un zéro, la colonne reste inchangée.
Dans la méthode des tableaux une base sera désignée indifféremment par la matrice elle-même
ou par l’ensembles des indices des variables de base associées.
Exemple 6.3.8
50
min Z = −3x1 + 2x2
2x1 + x2 ≤ 5
x1 − x2 ≤ 1
x1 + 2x2 ≤ 3
x1 , x2 ≥ 0
On écrit le programme sous forme standard. On obtient :
Z = −3x1 + 2x2
min
2x1 + x2 + x3 = 5
x1 − x2 + x4 = 1
x1 + 2x2 + x5 = 3
xi ≥ 0, i = 1, · · · , 5
On remarque que I = {x3 , x4 , x5 } est une base réalisable évidente. En outre le programme
est déjà sous forme canonique par rapport à cette base. Les tableaux simplexes sont les suivants. :
x1 x2 x4 x2
x3 2 1 5 x3 -2 3 3
x4 1 -1 1 ← x1 1 -1 1
TS1 TS2
x5 1 2 3 x5 -1 3 2 ←
-3 2 0 3 -1 3
↑ ↑
x4 x5
x3 -1 -1 1
x1 2/3 1/3 5/3
TS3
x2 -1/3 1/3 2/3
8/3 1/3 11/3
Exemple 6.3.9
max
Z = 6x1 + 5x2
x1 + x2 ≤ 8
−2x1 + 3x2 ≤ 6
x1 − x2 ≤ 2
x1 , x2 ≥ 0
On écrit le programme sous forme standard. On obtient :
max
Z = 6x1 + 5x2
x1 + x2 + x3 = 8
−2x1 + 3x2 + x4 = 6
x1 − x2 + x5 = 2
xi ≥ 0, i = 1, · · · , 5
On remarque que I = {x3 , x4 , x5 } est une base réalisable évidente. En outre le programme
est déjà sous forme canonique par rapport à cette base. Les tableaux simplexes sont les suivants.
51
x1 x2 x5 x2
x3 1 1 8 x3 -1 2 6 ←
x4 -2 3 6 x4 2 1 10
TS1 TS2
x5 1 -1 2 ← x1 1 -1 2
6 5 0 -6 11 -12
↑ ↑
x5 x3
x2 -1/2 1/2 3
x4 5/2 -1/2 7
TS3
x1 1/2 1/2 5
-1/2 -11/2 -45
Tous les coefficients de la fonction-objectif sont négatifs ou nuls on est donc à l’optimum. Une
solution optimale du problème initial est x∗ = (5, 3)T et la valeur optimale est Z ∗ = 45.
Exemple 6.3.10
Z = −3x1 + 5x2
min
−2x1 + 3x2 + x3 = 6
x1 − 4x2 + x4 = 4
xi ≥ 0, i = 1, · · · , 4
On remarque que I = {x3 , x4 } est une base réalisable évidente. En outre le programme est
déjà sous forme canonique par rapport à cette base. Les tableaux simplexes sont les suivants.
x1 x2 x4 x2
x3 -2 3 6 x3 2 -5 14
TS1 x4 1 -4 4 ← TS2 x1 1 -4 4
-3 5 0 3 -7 12
↑ ↑
On remarque que la colonne de la variable x2 est toute négative, il n y a donc pas de pivot. Le
programme linéaire est alors non borné ; c’est-à-dire que la valeur optimale est −∞.
max
Z = 3x1 + 2x2
4x1 + 3x2 ≤ 12
4x1 + x2 ≤ 8
4x1 − x2 ≤ 8
x1 , x2 ≥ 0
On remarque que I = {x3 , x4 , x5 } est une base réalisable évidente. En outre le programme
est déjà sous forme canonique par rapport à cette base.
52
x1 x2 x4 x2
x3 4 3 12 x3 -1 2 4 ←
x4 4 1 8 ← x1 1/4 1/4 2
TS1 TS2
x5 4 -1 8 x5 -1 0 0
3 2 0 -3/4 5/4 -6
↑ ↑
x4 x3
x2 -1/2 1/2 2
x1 3/8 -1/8 3/2
TS3
x5 -2 1 4
-1/8 -5/8 -17/2
On est à l’optimum. Une solution optimale du problème initial est x∗ = ( 32 , 2)T et la valeur
optimale est Z ∗ = 172
.
Dans les exemples que nous venons de traiter, on avait toujours une base réalisable évidente.
Mais très souvent il arive qu’on ne dispose pas de base réalisable dès le depart. Alors on utilise la
phase d’initialisation pour déterminer une première base réalisable.
Les variables xai , i ∈ {1, · · · , m} sont appelées variables artificielles. Elles sont introduites juste
pour créer une base réalisable évidente pour (Pa ).
Par définition de (Pa ), on a ξ ∗ ≥ 0. Donc (Pa ) ne peut pas être non borné. En outre il n’est
pas non plus impossible car avec l’hypothèse que b ≥ 0, la solution (0, b)T est réalisable.
La matrice des vraies contraintes de (Pa ) est à = (A, Im ). Donc rangà = m < n + m et la
matrice formée des colonnes des variables artificielles est une base réalisable évidente de (Pa ). on
peut donc résoudre ce dernier à l’aide de la phase 2 du simplexe en partant de cette base.
53
On résout (Pa ) et on tire les conclusions suivantes.
1er cas ξ ∗ > 0 :
Si la valeur optimale de (Pa ) n’est pas nulle alors le problème (P L) est impossible. Car en effet
si (P L) possédait une solution réalisable on montre facilement que ξ ∗ ≤ 0.
2ème cas ξ ∗ = 0 :
Notons (x∗ , xa∗ ) la solution optimale de (Pa ) obtenue où x∗ est relative aux variables structu-
relles ou initiales du problème (P L) et xa∗ les variables artificielles. On a nécessairement xa∗ = 0.
1) Si dans cette solution toutes les variables artificielles sont hors-base c’est-à-dire que la base
optimale de (Pa ) est constituée uniquement de colonnes de la matrice A, alors cette dernière est
une base réalisable de (P L).
2) Si par contre il existe des variables artificielles dans la base, c’est-à-dire que la base optimale
de (Pa ) est constituée de colonnes de A pour les variables structurelles et de colonnes de la matrice
Im pour les variables artificielles. Cette base n’est pas nécessairement une base de (P L).
Supposons que les variables artificielles dans la base optimale de (Pa ) sont xai , i ∈ P . On a
deux cas possibles.
On suppose que le problème (Pa ) est sous forme canonique par rapport à la base optimale.
a) Si ∀ i ∈ P , la ligne correspondant à la variable de base artificielle xai contient un coefficient
non nul relatif à une variable non artificielle xj , alors on peut faire un changement de base. Dans
la nouvelle base la variable artificielle xai est remplacée par la variable xj . On obtient ainsi à la
fin une base réalisable optimale de (Pa ) constituée uniquement de colonnes de A. C’est donc une
base réalisable de (P L). Mais cette base est dégénérée.
b) Dans le cas contraire, si une variable artificielle dans la base optimale ne peut pas être
remplacée par une variable non artificielle, cela signifie que l’équation à laquelle est associée cette
variable artificielle est redondante. C’est-à-dire qu’elle est combinaison linéaire d’autres équations.
Elle peut donc être supprimée.
Donc si on a un nombre q variables de ce genre, on a rangA = m − q. Dans ce cas les q lignes
correspondantes peuvent être éliminées. Les m − q variables restantes dans la base optimale de
(Pa ) forment une base réalisable de (P L).
Remarque 6.3.9 1) Dans la méthode des tableaux lorsqu’on ne dispose pas de base réalisable
évidente et qu’on veuille appliquer soit la méthode des deux phases, on peut tenir compte de la
situation suivante.
Etant donné que dans le programme auxiliaire l’introduction des variables artificielles sert à
créer uniquement une base réalisable évidente, il n’est pas nécessaire d’en ajouter systématiquement
à chaque équation.
Si une variable n’intervient que dans une seule équation et si le signe de son coefficient est égal
à celui du second membre de cette équation il n’est pas nécessaire d’ajouter une variable artificielle
à cette équation. Cette variable peut être considérée comme variable de base associée associée à
cette équation.
2) Dans la méthode des tableaux lorsqu’une variable artificielle sort de la base il est certain
qu’elle ne peut plus y revenir la colonne correspondante devient superflue et peut être supprimée.
Exemple 6.3.12
54
1) min Z = 2x1 + 3x2 + x3
x1 + x2 + x3 = 5
2x1 + x2 + 3x3 ≥ 9
xi ≥ 0, i = 1, · · · , 3
La forme standard de ce problème est
min
Z = 2x1 + 3x2 + x3
x1 + x2 + x3 = 5
2x1 + x2 + 3x3 − x4 = 9
xi ≥ 0, i = 1, · · · , 4
On n’a pas de base réalisable évidente. Utilisons la phase 1.
Considérons le programme auxiliaire :
min
ξ = x5 + x6
x1 + x2 + x3 + x5 = 5
2x1 + x2 + 3x3 − x4 + x6 = 9
xi ≥ 0, i = 1, · · · , 6
I = {x5 , x6 } est une base réalisable évidente de ce problème.
La forme canonique par rapport à cette base est :
ξ = 14 − 3x1 − 2x2 − 4x3 + x4
min
x1 + x2 + x3 + x5 = 5
2x1 + x2 + 3x3 − x4 + x6 = 9
xi ≥ 0, i = 1, · · · , 6
On a les tableaux simplexes suivants :
x1 x2 x3 x4
x5 1 1 1 0 5
TS1 x6 2 1 3∗ -1 9 ←
-3 -2 -4 1 -14
↑
x1 x2 x6 x4
..
x5 1/3 2/3 . 1/3 2 ←
TS2 x3 2/3 1/3 ..
. -1/3 3
.
-1/3 -2/3 .. -1/3 -2
↑
x1 x5 x4
..
x2 1/2 . 1/2 3
TS3 ..
x3 1/2 . -1/2 2
..
0 . 0 0
I = {x2 , x3 } est une base réalisable du problème initial.
La forme canonique par rapport à cette base est :
min Z = −x4 + 11
x2 + 12 x1 + 12 x4 = 3
x3 + 12 x1 − 12 x4 = 2
xi ≥ 0, i = 1, · · · , 4
55
On a les tableaux simplexes suivants :
x1 x4
x1 x2
x2 1/2 1/2 3 ←
x4 1 2 6
TS4 x3 1/2 -1/2 2 TS5
x3 1 1 5
0 -1 -11
1 2 -5
↑
La condition d’optimalité est vérifiée, une solution optimale est :
x∗ = (0, 0, 5)T et la valeur optimale est Z ∗ = 5.
2) max Z = 2x1 − x2 + 3x3
x1 + x2 + x3 = 3
x1 − 2x2 + x3 ≥ 1
2x2 + x3 ≤ 2
xi ≥ 0, i = 1, · · · , 3
La forme standard de ce problème est :
Z = 2x1 − x2 + 3x3
max
x1 + x2 + x3 = 3
x1 − 2x2 + x3 − x4 = 1
2x2 + x3 + x5 = 2
xi ≥ 0, i = 1, · · · , 5
On n’a pas de base réalisable évidente. Utilisons la phase 1.
Considérons le programme auxiliaire :
min
ξ = x6 + x7
x1 + x2 + x3 + x6 = 3
x1 − 2x2 + x3 − x4 + x7 = 1
2x2 + x3 + x5 = 2
xi ≥ 0, i = 1, · · · , 7
I = {x6 , x7 , x5 } est une base réalisable de ce problème.
La forme canonique par rapport à cette base est :
ξ = 4 − 2x1 + x2 − 2x3 + x4
min
x1 + x2 + x3 + x6 = 3
x1 − 2x2 + x3 − x4 + x7 = 1
2x2 + x3 + x5 = 2
xi ≥ 0, i = 1, · · · , 7
On a les tableaux simplexes suivants :
x7 x2 x3 x4
x1 x2 x3 x4 ..
x6 1 1 1 0 3 x6 . 3 0 1 2 ←
..
x7 1 -2 1 -1 1 ← x1 . -2 1 -1 1
TS1 TS2 ..
x5 0 2 1 0 2 x5 . 2 1 0 2
-2 1 -2 1 -4 ..
↑ . -3 0 -1 -2
↑
56
x6 x3 x4
..
x2 . 0 1/3 2/3
..
TS3 x1 . 1 -1/3 7/3
..
x5 . 1 -2/3 2/3
..
. 0 0 0
I = {x2 , x1 , x5 } est une base réalisable du problème initial.
La forme canonique par rapport à cette base est :
max
Z = 41 + x3 + x4
x2 + x
3 4
= 2
3
x1 + x3 − 31 x4 = 73
x5 + x3 − 32 x4 = 23
xi ≥ 0, i = 1, · · · , 5
On a les tableaux simplexes suivants :
x3 x4 x3 x2
x2 0 1/3 2/3 ← x4 0 3 2
x1 1 -1/3 7/3 x1 1 1 3
TS4 TS5
x5 1 -2/3 2/3 x5 1 2 2 ←
1 1 -4 1 -3 -6
↑ ↑
x5 x2
x4 0 3 2
TS6 x1 -1 -1 1
x3 1 2 2
-1 -5 -8
La condition d’optimalité est vérifiée, une solution optimale est :
x∗ = (1, 0, 2)T et la valeur optimale est Z ∗ = 8.
3) min Z = 2x1 + 3x2 + 3x3 + x4 − 2x5
x1 + 3x2 + 4x4 + x5 = 2
x1 + 2x2 − 3x4 + x5 = 2
− 1 x1 − 34 x2 + x3 = 31
3
xi ≥ 0, i = 1, · · · , 5
On n’a pas de base réalisable évidente, utilisons la phase 1.
Considérons le programme auxiliaire suivant :
min
ξ = x6 + x7
x1 + 3x2 + 4x4 + x5 + x6 = 2
x1 + 2x2 − 3x4 + x5 + x7 = 2
− 13 x1 − 34 x2 + x3 = 31
xi ≥ 0, i = 1, · · · , 7
I = {x6 , x7 , x3 } est une base réalisable évidente. La forme canonique par rapport à cette base
est :
ξ = 4 − 2x1 − 5x2 − x4 − 2x5
min
x1 + 3x2 + 4x4 + x5 + x6 = 2
x1 + 2x2 − 3x4 + x5 + x7 = 2
− 1 x1 − 34 x2 + x3 = 31
3
xi ≥ 0, i = 1, · · · , 7
On a les tableaux simplexes suivants :
57
x1 x6 x4 x5
x1 x2 x4 x5 ..
x6 1 3 4 1 2 ← x2 1/3 . 4/3 1/3 2/3 ←
..
x7 1 2 -3 1 2 x7 1/3 . -17/3 1/3 2/3
x3 -1/3 -4/3 0 0 1/3 ..
x3 1/9 . 16/9 4/9 11/9
-2 -5 -1 -2 -4 ..
↑ -1/3 . 17/3 -1/3 -2/3
↑
x2 x6 x4 x5
..
x1 3 . 4 1 2
..
x7 -1 . -7 0 0
.
x3 -1/3 .. 4/3 1/3 1
..
1 . 7 0 0
La condition d’arrêt est vérifiée mais la variable artificielle x7 est dans la base optimale. On
remarque que les coefficients de x2 et x4 sont non nuls dans la ligne de x7 . On peut donc remplacer
dans la base optimale x7 soit par x2 soit par x4 .
Si x2 rentre dans la base, on a les tableaux suivants :
x2 x6 x4 x5
.. x7 x4 x5
x1 3 . 4 1 2 ..
.. x1 . -17 1 2
x7 -1 . -7 0 0 ← ..
. x2 . 7 0 0
x3 -1/3 .. 4/3 1/3 1 ..
.. x3 . 11/3 1/3 1
1 . 7 0 0 ..
. 0 0 0
↑
Dans ce cas I = {x1 , x2 , x3 } est une base réalisable du programme initial.
Si par contre x4 rentre dans la base, on a les tableaux suivants :
x2 x6 x4 x5
.. x7x2 x5
x1 3 . 4 1 2 ..
.. x1 17/7 . 1 2
x7 -1 . -7 0 0 ← ..
. x4 1/7 . 0 0
x3 -1/3 .. 4/3 1/3 1 .
.. x3 -11/21 .. 1/3 1
1 . 7 0 0 ..
0 . 0 0
↑
Dans ce cas I = {x1 , x4 , x3 } est une base réalisable du programme initial.
En partant de la base I = {x1 , x2 , x3 }, on obtient la phase 2 suivante :
x4 x5 x4 x1
x1 -17 1 2 ← x5 -17 1 2
x2 7 0 0 x2 7 0 0 ←
x3 11/3 1/3 1 x3 28/3 -1/3 1/3
3 -5 -7 -82 5 3
↑ ↑
58
x4 x1
x5 17/7 1 2
x4 1/7 0 0
x3 -4/3 -1/3 1/3
82/7 5 3
La condition d’arrêt du simplexe est vérifiée, on est à l’opitimum. Une solution optimale est :
x = (0, 0, 13 , 0, 2)T et la valeur optimale est Z ∗ = −3.
∗
4) min Z = x1 + x2 + x3
x1 + 2x2 + 3x3 = 3
−x1 + 2x2 + 6x3 = 2
4x2 + 9x3 = 5
3x3 + x4 = 1
xi ≥ 0, i = 1, · · · , 4
On n’a pas de base réalisable évidente, on va donc utiliser la phase 1.
Le programme auxiliaire est le suivant :
min ξ = x5 + x6 + x7
x1 + 2x2 + 3x3 + x5 = 3
−x1 + 2x2 + 6x3 + x6 = 2
4x2 + 9x3 + x7 = 5
3x3 + x4 = 1
xi ≥ 0, i = 1, · · · , 7
I = {x5 , x6 , x7 , x4 } est une base réalisable évidente. La forme canonique par rapport à cette
base est :
min ξ = 10 − 8x2 − 18x3
x1 + 2x2 + 3x3 + x5 = 3
−x1 + 2x2 + 6x3 + x6 = 2
4x2 + 9x3 + x7 = 5
3x3 + x4 = 1
xi ≥ 0, i = 1, · · · , 7
On a les tableaux simplexes suivants :
x1 x2 x6
x1 x2 x3 ..
x5 3/2 1 . 2
x5 1 2 3 3 ..
x6 -1 2 6 2 ← x3 -1/6 1/3 . 1/3
x7 0 4 9 5 ..
x7 3/2 1 . 2
x4 0 0 3 1 ..
x4 1/2 -1 . 0 ←
0 -8 -18 -10 ..
↑ -3 -2 . -4
↑
x4 x2 x4 x5
..
x5 -3 4 2 ← x2 -3/4 . 1/2
x3 1/3 0 1/3 ..
x3 1/3 . 1/3
x7 -3 4 2 ..
x1 2 -2 0 x7 0 . 0
..
6 -8 -4 x1 1/2 . 1
↑ 0
..
. 0
59
On est à l’optimum du programme auxiliaire. dans le tableau optimal la ligne de la variable de
base x7 qui est une variable artificielle est toute nulle. La troisième équation du programme initial
à laquelle est associée la variable x7 est donc une équation redondante on peut donc la supprimer.
Ainsi I = {x2 , x3 , x1 } est une base réalisable du programme initial. La forme canonique par rapport
à la base I est
Z = 63 − 12 x1 4
11 1
min
x2 − 4 x4 = 2
x3 + 31 x4 = 31
x1 + 12 x4 = 1
xi ≥ 0, i = 1, · · · , 4
On a les tableaux simplexes suivants :
x4 x3
x2 -3/4 1/2 x2 9/4 5/4
x3 1/3 1/3 ← x4 3 1
x1 1/2 1 x1 -3/2 1/2
-1/12 -11/6 1/4 -7/4
La condition d’arrêt du simplexe est vérifiée. On est à l’optiumum et une solution optimale du
programme est x∗ = ( 21 , 54 , 0, 1)T et la valeur optimale est Z ∗ = 47 .
Comme dans la phase 1, les variables xai , i ∈ {1, · · · , m} sont des variables artificielles.
La constante M est une constante symbolique et elle est aussi grande que l’on veut (c’est-à-dire
supérieure à tout nombre auquel elle pourra être comparée lors de la résolution du problème).
On remarque comme précédemment dans la phase 1 que la matrice des vraies contraintes de
(PM ) est Ā = (A, Im ). Donc, rangĀ = m < n + m. Par suite avec l’hypothèse que b ≥ 0, la matrice
formée des colonnes des variables artificielles est une base réalisable évidente pour (PM ). On peut
donc le résoudre à l’aide de la phase 2 du simplexe en partant de cette base.
On montre que
∗
1) Si ZM = −∞, il en est de même pour Z ∗ .
2) Si (PM ) possède une solution optimale, on a les cas suivants :
a) Si dans cette solution il reste encore des variables artificielles non nulles dans la base (elles
sont donc de base) alors le problème initial (P L) est impossible c’est-à-dire qu’il ne possède pas
de solutions réalisables.
b) Si dans cette solution toutes les variables artificielles sont nulles, la partie formée des va-
riables structurelles est une solution de base réalisable optimale de (P L).
60
Comme dans la phase 1, on a les remarques suivantes :
Remarque 6.3.11 1) Etant donné que dans le programme auxiliaire l’introduction des variables
artificielles sert à créer uniquement une base réalisable évidente, il n’est pas nécessaire d’en ajouter
systématiquement à chaque équation. En effet, si une variable n’intervient que dans une seule
équation et si le signe de son coefficient est égal à celui du second membre de cette équation il
n’est pas nécessaire d’ajouter une variable artificielle à cette équation. Cette variable peut être
considérée comme variable de base associée associée à cette équation.
2) Dans la méthode des tableaux lorsqu’une variable artificielle sort de la base il est certain
qu’elle ne peut plus y revenir la colonne correspondante devient superflue et peut être supprimée.
Exemple 6.3.13
61
x6 x2 x4 x5
..
x1 . 1/2 -1/2 0 1/2
..
TS2 x3 . 3/2 1/2 -1 1/2 ←
..
. -3/2 5/2 3 -11/2
↑
x3 x4 x5
x1 -1/3 -2/3 1/3 1/3
TS3 x2 2/3 1/3 -2/3 1/3
1 3 2 -5
62
x1 x2 x3
x5 1 2 3 3
x6 -1 2 6 2
TS1 x7 0 4 9 5
∗
x4 0 0 3 1 ←
1 1-8M 1-18M -10M
↑
x1 x2 x4
x5 1 2 -1 2
x6 -1 2∗ -2 0 ←
TS2 x7 0 1 -3 2
x3 0 0 1/3 1/3
1 1-8M -1/3+6M -1/3-4M
↑
x6 x1 x4
..
x5 2 . 1 2 ←
..
x2 -1/2 . -1 0
TS3 ..
x7 2 . 1 2
..
x3 0 . 1/3 1/3
.
3/2-4M .. 2/3-2M -1/3-4M
↑
x5 x4
.. x3
x1 . 1/2 1
.. x1 -3/2 1/2
x2 . -3/4 1/2 x2 9/4 5/4
TS4 .. TS5 x7 0 0
x7 . 0 0
.. x4 3 1
x3 . 1/3 1/3 ←
.. 1/4 -7/4
. -1/12 -11/6
↑
On est à l’optimum pour PM et une solution optimale du problème initial est x∗ = ( 12 , 54 , 0, 1)T
et la valeur optimale est Z ∗ = 74 .
3) min Z = x1 − x2
−2x1 + x2 ≤ 2
−x1 + 2x2 ≥ 8
x1 + x2 ≤ 5
xi ≥ 0, i = 1, · · · , 2
La forme standard de ce problème est
Z = x1 − x2
min
−2x1 + x2 + x3 = 2
−x1 + 2x2 + x3 − x4 = 8
x1 + x2 + x5 = 5
xi ≥ 0, i = 1, · · · , 5
63
On n’a pas de base réalisable évidente. Utilisons la méthode du grand M .
Considérons le programme auxiliaire :
ZM = x1 − x2 + M x6
min
−2x1 + x2 + x3 = 2
−x1 + 2x2 + x3 − x4 + x6 = 8
x1 + x2 + x5 = 5
xi ≥ 0, i = 1, · · · , 6
I = {x3 , x6 , x5 } est une base réalisable évidente de ce problème.
La forme canonique par rapport à cette base est :
min ZM = (1 + M )x1 + (−1 − 2M )x2 + M x4 + 8M
−2x1 + x2 + x3 = 2
−x1 + 2x2 + x3 − x4 + x6 = 8
x1 + x2 + x5 = 5
xi ≥ 0, i = 1, · · · , 6
On a les tableaux simplexes suivants :
x1 x2 x4
x3 −2 1 0 2 ←
x6 -1 2 -1 8
TS1
x5 1 1 0 5
1+M -1-2M M -8M
↑
x1 x3 x4
x2 −2 1 0 2
x6 3 -2 -1 4
TS2
x5 3 -1 0 3 ←
-1-3M 1+2M M 2-4M
↑
x5 x3 x4
x2 2/3 5/3 0 4
x6 -1 -3 -1 1
TS3
x1 1/3 -1/3 0 1
1/3+M 2/3+M M 3-M
On est à l’optimum pour PM ; mais il existe une variable artificielle non nulle à l’optimum.
Alors le problème initial est impossible.
64
Chapitre 7
Etant donné un programme linéaire on peut toujours lui associer un autre programme linéaire
appelé programme dual du programme initial : dans ce cas le programme initial est appelé pro-
gramme primal. Ces deux programmes sont dits alors programmes duaux, ou duals, ou en dualité.
7.1 Définitions
On sait que par convention les contraintes d’inégalité pour un problème de minimisation sont
du type ” ≥ ” et les contraintes d’inégalité pour un problème de maximisation sont du type ” ≤ ”.
Nous allons adopter les conventions suivantes :
Dans un programme de minimisation une contrainte d’inégalité du type ” ≥ ” sera dite ”vraie
inégalité” et une contrainte du type ” ≤ ” sera dite ”fausse inégalité”.
Dans un programme de maxmisation une contrainte d’inégalité du type ” ≤ ” sera dite ”vraie
inégalité” et une contrainte du type ” ≥ ” sera dite ”fausse inégalité”.
Définition 7.1.1 Etant donné le programme linéaire sous la forme générale (P ) ci-dessous
∑
min
Z(x) = nj=1 cj xj
∑n
a x ≥ bi , i = 1, · · · , m1
∑nj=1 ij j
aij xj ≤ bi , i = m1 + 1, · · · , m2
∑j=1
n
i = m2 + 1, · · · , m
j=1 aij xj = bi ,
xj ≥ 0, j = 1, · · · , n1
xj ≤ 0, j = n1 + 1, · · · , n2
xj ∈ R, j = n2 + 1, · · · , n.
65
On appelle programme dual de (P ) le programme linéaire (D) ci-dessous
∑m
max W = bi yi
i=1
yi ≥ 0 i = 1, ..., m1
yi ≤ 0 i = m1 + 1, ..., m2
yi libre j = m2 + 1, ..., m
∑ m (D)
aij yi ≤ cj j = 1, ..., n1
i=1
∑m
aij yi ≥ cj j = n1 + 1, ..., n2
∑i=1
m
aij yi = cj i = n2 + 1, ..., n.
i=1
Exemple 7.1.1
1) Soit à déterminer le dual du programme linéaire ci-dessous.
max W = 5y1 + y2 + y3
2y1 + 4y2 + y3 ≤ 3
5y1 − 3y2 + 2y3 ≥ 2
y1 − y2 + 6y3 = 1
y1 ∈ R, y2 ≥ 0, y3 ≤ 0.
66
2) Soit à déterminer le dual du programme linéaire ci-dessous.
Exemple 7.1.2
min
{ Z = cx
Ax ≥ b
x ≥ 0.
max
{ W = yb
yA ≤ c
y ≥ 0.
Afin de conserver les mêmes données dans les deux programmes,nous considérons dans la
notation matricielle du dual la variable duale y sous forme de matrice ligne contrairement à la
variable primale qui elle est une matrice colonne. Signalons qu’un programme linéaire et son dual
sont deux aspects d’un même problème.
Remarque 7.1.1 On remarque une symétrie dans les deux programmes. Ils sont tous sous forme
canonique : (contraintes d’inégalités et variables non-négatives).
On a la propriété suivante :
Proposition 7.1.1 L’opération de la dualité est involutive (i.e le dual du dual est le primal).
Z ∗ ={min Z = cx
Ax ≥ b (P )
x≥0
67
(où A ∈ Mm,n (R), c ∈ M1,n (R), b ∈ Mm,1 (R)) et son dual :
W∗ =
{ max W = yb
yA ≤ c (D)
y≥0
Corollaire 7.2.2 Si Z ∗ = −∞, le problème (D) n’admet pas de solution réalisable (i.e le dual
(D) est impossible si (P ) est non borné).
De même si W ∗ = +∞, le problème primal n’admet pas de solution réalisable, en d’autres termes,
si le dual (D) est non borné, le primal (P ) est impossible.
Preuve : Si x∗ n’est pas solution optimale de (P ) i.e ∃x solution réalisable de (P ) avec cx < cx∗
(car problème de minimisation)
cx < cx∗ = y ∗ b, absurde !
On montre de même pour l’autre cas.
Z ∗ ={min Z = cx
Ax − Im s = b (P ′ )
x, s ≥ 0
Le problème (P ) admet une solution optimale finie si et seulement si (Pe) admet une solution
optimale finie. ( )
e x
Notons e
c = (c, 0), A = (A − Im ) et u = . Le problème (Pe) s’écrit alors
s
Z ∗ ={min Z = e
cu
e
Au = b
u≥0
Supposons alors que (Pe) possède une solution optimale finie, il existe donc une solution
réalisable de base optimale. Soit B une base réalisable optimale et u∗ la solution de base réalisable
optimale associée. On sait par ailleurs que le dual de (Pe) est :
68
W∗ =
{ max W = yb
yA ≤ c
y≥0
e ≥ 0 (car problème de minimisation). Ce qui est
c − c̃B B −1 A
Comme B est optimale, alors e
équivalent à {
c−e cB B −1 A ≥ 0
cB B −1 ≥ 0
e
Posons y ∗ = e cB B −1 . On remarque que y ∗ est solution réalisable du dual. En outre on a :
Z(u∗ ) = e
cB B −1 b = y ∗ b = W (y ∗ ). Ce qui implique d’après le corollaire(7.2.3) que y ∗ est solution
optimale de (D).
Corollaire 7.2.5 Etant donné une paire de problèmes en dualité, il n’existe que 4 situations
possibles parmi les 9 potentielles.
1) Les deux problèmes possèdent des solutions optimales finies
2) a) Le problème primal non borné, et le problème dual est impossible
b) le problème dual est non borné et le problème primal est impossible
3) Les deux problèmes sont impossibles.
Z ∗ ={min Z = cx W∗ =
{ max W = yb
Ax ≥ b (P ) yA ≤ c (D)
x≥0 y≥0
On a le théorème suivant :
69
Théorème 7.3.1 (Théorème faible des écarts complémentaires)
Soit x∗ et y ∗ deux solutions respectivement réalisables de (P ) et (D).
Une condition nécessaire et suffisante pour que x∗ et y ∗ soient solutions optimales est qu’elles
vérifient : {
y ∗ (Ax∗ − b) = 0 (1)
(c − y ∗ A)x∗ = 0 (2)
Preuve : Posons α = y ∗ (Ax∗ −b) et β = (c−y ∗ A)x∗ ; comme x∗ et y ∗ sont des solutions réalisables
de (P ) et (D), on a α ≥ 0, β ≥ 0 et
D’où le théorème.
et
∑
n
(c − yA)x = 0 ⇔ (cj − yAj )xj = 0 ⇔ xj (cj − yAj ) = 0 ∀j = 1, ..., n.
j=1
On peut dire alors qu’une condition nécessaire et suffisante pour que deux solutions réalisables
x et y respectivement de (P ) et (D) soient solutions optimales est qu’elles vérifient :
{
yi (ai x − bi ) = 0 ∀i = 1, ..., m
(cj − yAj )xj = 0 ∀j = 1, ..., n
Il existe une autre version dite version forte du théorème des écarts complémentaires.
Exemple 7.3.1
70
a) Considérons le programme linéaire ci-dessous.
min
Z = x1 + x2
3x1 + x2 ≥ 4
x1 + 4x2 ≥ 5
x1 , x2 ≥ 0
min
Z = 2x1 + 3x2
2x1 + x2 ≥ 3
2x1 − x2 ≥ 5
x1 + 4x2 ≥ 6
x1 , x 2 ≥ 0
71
ii) On vérifie facilement la réalisabilité de x. C’est une solution optimale si et seulement si il
existe une solution réalisable y du dual telle que
(2x1 + x2 − 3)y1 = 0
(2x1 − x2 − 5)y2 = 0
(x1 + 4x2 − 6)y3 = 0
(2y1 + 2y2 + y3 − 2)x1 = 0
(y1 − y2 + 4y3 − 3)x2 = 0
On remplace x par sa valeur dans ce système, on obtient :
y1 = 0
2y2 + y3 = 2
−y2 + 4y3 = 3
Ce qui donne la solution y = (0, 95 , 89 )T qui est bien une solution réalisable du dual. Par suite x est
une solution optimale.
Définition 7.4.1 Soit B une base de (P L). Cette base est dite duale réalisable si b
c = c−
−1
cB B A ≥ 0.
Par opposition, B est primale réalisable si bb = B −1 b ≥ 0.
Remarque 7.4.1 1) Pour un problème de maximisation une base B est dite duale réalisable si
c = c − cB B −1 A ≤ 0. Elle est primale réalisable si bb = B −1 b ≥ 0.
b
2) Une base B qui est à la fois primale et duale réalisable est optimale.
72
2) Tester bb = B −1 b.
a) Si bb ≥ 0, stop : (la solution courante est optimale).
b) Si ∃i ∈ I tel que bbi < 0 et baij ≥ 0 ∀j ∈ J, stop : (le problème (P L) est impossible).
c) Autrement, on effectue un changement de base.
3) Changement de base
a) Test de sortie : Soit l ∈ I telle que
Remarque 7.4.2 Dans le cas d’un problème de maximisation cet algorithme reste valable
Exemple 7.4.1
min
Z = 8x1 + 6x2 + 2x3
x1 − 2x2 + x3 ≥ 6
x1 + 3x2 − x3 ≥ 5
x1 , x2 , x3 ≥ 0.
La forme standard de (P1 ) est :
min
Z = 8x1 + 6x2 + 2x3
x1 − 2x2 + x3 − x4 = 6
x1 + 3x2 − x3 − x5 = 5
xi ≥ 0, i = 1, · · · , 5.
L’ensemble I = {4, 5} est une base évidente. La forme canonique par rapport à I est :
min
Z = 8x1 + 6x2 + 2x3
−x1 + 2x2 − x3 + x4 = −6
−x1 − 3x2 + x3 + x5 = −5
xi ≥ 0, i = 1, · · · , 5.
73
x5 x2 x4
x3 1/2 -5/2 -1/2 1/2
TS3
x1 -1/2 1/2 -1/2 11/2
3 7 5 -45
La condition d’arrêt de l’algorithme est vérifiée une solution optimale du problème est x∗ =
( 11
2
et la valeur optimale est Z ∗ = 45.
, 0, 12 )T
Exemple 7.4.2
Z = −5x1 − 21x3
max
x1 − x2 + 6x3 ≥ 2
x1 + x2 + 2x3 ≥ 1
x1 , x2 , x3 ≥ 0.
La forme standard est :
Z = −5x1 − 21x3
max
x1 − x2 + 6x3 − x4 = 2
x1 + x2 + 2x3 − x5 = 1
xi ≥ 0, i = 1, · · · , 5.
L’ensemble I = {4, 5} est une base évidente. La forme canonique par rapport à I est :
Z = −5x1 − 21x3
max
−x1 + x2 − 6x3 + x4 = −2
−x1 − x2 − 2x3 + x5 = −1
xi ≥ 0, i = 1, · · · , 5.
On a ĉ ≤ 0 donc I est une base duale réalisable.
On a les tableaux simplexes successifs suivants.
x1 x2 x3 x1 x2 x4
x4 -1 1 -6 -2 ← x3 1/6 -1/6 -1/6 1/3
TS1 x5 -1 -1 -2 -1 TS2 x5 -2/3 -4/3 -1/3 -1/3 ←
-5 0 -21 0 -3/2 -21/6 -21/6 7
↑ ↑
x5 x2 x4
x3 1/2 -1/2 -1/4 1/4
TS3
x1 -3/2 2 1/2 1/2
-9/4 -1/2 -11/4 31/4
La condition d’arrêt de l’algorithme est vérifiée une solution optimale du problème est x∗ =
et la valeur optimale est Z ∗ = − 31
( 12 , 0, 14 )T 4
.
74
où
• v est une variable artificielle non négative (v ≥ 0)
• K = {j ∈ J : bcj < 0}
• M est une constante symbolique positive aussi grande que l’on veut (c’est-à-dire supérieur à
tout nombre auquel il pourra être comparé).
En résumé on a :
min Z = Zb + b cx
xB +∑ B N xN = bb
−1
v+ xj = M (Pa )
j∈K
x ≥ 0, v ≥ 0.
Il est immédiat que Ia = I ∪ {v} est une base évidente de (Pa ).
On considère le changement de base imposé suivant :
• v sort de la base Ia
• la variable xk telle que b cj : j ∈ K} rentre dans la base.
ck = min{b
On obtient immédiatement une base duale réalisable pour (Pa ). On résout ce dernier à l’aide
de l’algorithme dual phase 2 en partant de cette base.
1) Si (Pa ) n’admet pas de solution réalisable, le problème initial (P L) n’admet pas de solution
réalisable non plus.
2) Si (Pa ) admet une solution optimale dans laquelle la variable artificielle v est nulle, et si Z
dépend de M , le problème (P L) est non borné. Si par contre Z ne dépend pas de M , on obtient
une solution optimale de base réalisable de (P L) en donnant à M la plus petite valeur vérifiant
xi ≥ 0 pour tout xi variable de base à l’optimum.
3) Si (Pa ) admet une solution optimale dans laquelle v est positive, alors mise à part la variable
v, la solution obtenue constitue une solution optimale de (P L).
Remarque 7.4.3 1) Dans le cas d’un problème de maximisation, l’algorithme reste valable moyen-
nant les modifications suivantes :
• K = {j ∈ J : bcj > 0}
• Dans le changement de base initial imposé, la variable rentrante est xk avec k tel que b ck =
max{b cj : j ∈ K}
2) Dans la méthode des tableaux, après le changement de base initial imposé, si en cours
d’algorithme, la variable artificielle v, revient dans la base, il est certain qu’elle n’en sortira plus.
Ainsi, la ligne correspondante dans le tableau simplexe devient superflue et peut être supprimée.
Exemple 7.4.3
75
L’ensemble I = {4, 5} est une base évidente. La forme canonique par rapport à I est :
Ia = {x4 , x5 , v} est une base évidente du programme auxiliaire ci-dessus et le programme est
sous forme canonique par rapport à Ia .
On a le premier tableau simplexe à partir duquel on fait le changement de base initial imposé.
x1 x2 x3 x1 x2 v
x4 -1 -1 -1 -6 x4 -1 -1 1 -6+M
x5 -2 0 2 -9 x5 -2 0 -2 -9-2M ←
TS1 TS2
v 0 0 1 M ← x3 0 0 1 M
6 3 -2 0 6 3 2 2M
↑ ↑
La variable artificielle v est rentrée dans la base il est certain qu’elle n’en sortira plus donc la
ligne correspondante peut être supprimée.
x1 x2 x5
x4 -2 -1 1/2 -21/2 ← x4 x2 x5
v ... ... ... ... x1 -1/2 1/2 -1/4 21/4
TS3 TS4
x3 -1 0 1/2 -9/2 x3 -1/2 1/2 1/4 3/4
4 3 1 -9 2 1 2 -30
↑
La condition d’arrêt de l’algorithme est vérifiée. Une solution optimale du problème est x∗ =
( 21
4
, 0, 34 )T et la valeur optimale est Z ∗ = 30.
76
Test de rentrée : La variable rentrante est xk qui vérifie :
[ [ ]]
bcs bcj
k = min s ∈ J : = min : b alj < 0
b
cls b
alj
.
77
Bibliographie
[1] Bazaraa, Mokhtar S. and Shetty, C. M., 1979. Nonlinear Programming Theory and Algo-
rithms, John Wiley and Sons.
[2] Bazaraa, Mokhtar S. and Shetty, C. M., 1976. Foundations of Optimization, Lecture Notes
in Economic and Mathematical Systems, No 122, Springer-Verlag New-York.
[3] Bergounioux Maı̈tine, 2001. Optimisation et Conrôle des systèmes linéaires, Donod.
[4] Bertsekas, Dimiri P. 1995. Non Linear Programming, Athena Scientific.
[5] Bonnans, J. Fréderic and Shapiro, Alexander 2000. Perturbations Analysis of Opimization
Problems, Springer.
[6] Culioli, Jean-Christophe, 1994. Introduction à l’optimisation, Ellipses.
[7] Hiriart-Urruty, Jean-Baptiste, 1998. Optimisation et Analyse Convexe, Presse Universitaire
de France.
[8] Hiriart-Urruty, Jean-Baptiste and Lemaréchal, Claude, 1993. Convex Analysis and Minimi-
zation algorithms, Vol I et II Grundlehren der mathematichen Wissenschaften 305 and 306,
Springer-Verlag.
[9] Hiriart-Urruty, Jean-Baptiste, 1996. L’Optimisation, in collection ”Que sais-je ?”, Presse
Universitaire de France.
[10] Minoux, Michel, 1983. Programmation mathématique : Théorie et Algorithmes, Vol I, Dunod.
[11] Rockafellar, R. Tyrrel, 1970. Convex Analysis, Princeton University Press, Princeton N. J..
[12] Roberts, A. Wayne and Varberg, Dale E., 1973. Convex Functions, Academic Press.
78