Vous êtes sur la page 1sur 79

OPTIMISATION

Prof. Adama COULIBALY


UFR Mathématiques et Informatique,
Université Félix HOUPHOUET-BOIGNY D’ABIDJAN, 22
BP 582 Abidjan 22, Côte d’Ivoire.

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

2 Optimisation à plusieurs variables sans contraintes 11


2.1 Résultats d’existence et unicité . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Conditions d’optimalité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.1 Conditions d’optimalité du premier ordre . . . . . . . . . . . . . . . . . . . 12
2.2.2 Conditions d’optimalité du second ordre . . . . . . . . . . . . . . . . . . . 14
2.3 Méthodes numériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.1 Algorithmes et vitesse de convergence . . . . . . . . . . . . . . . . . . . . . 15
2.3.2 Méthodes de descente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.3 Méthodes de directions conjuguées . . . . . . . . . . . . . . . . . . . . . . 17
2.3.4 Méthode de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3 Optimisation avec contraintes 19


3.1 Résultats d’existence et d’unicité . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2 Conditions d’optimalité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2.1 Généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2.2 Cas des contraintes d’égalité . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.3 Problème avec contraintes d’inégalité . . . . . . . . . . . . . . . . . . . . . 24
3.2.4 Problème avec contraintes d’égalité et d’inégalité . . . . . . . . . . . . . . 25

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

5 Formulation d’un programme linéaire 32


5.1 Programmes linéaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.2 Modélisation sous forme de programmes linéaires . . . . . . . . . . . . . . . . . . 33
5.2.1 Etapes de la modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.2.2 Quelques exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.3 Forme standard, forme canonique . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

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

7 Dualité en programmation linéaire 65


7.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
7.2 Propriétés de la dualité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.3 Théorèmes des écarts complémentaires . . . . . . . . . . . . . . . . . . . . . . . . 69
7.4 Algorithme dual Simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
7.5 Convergence de l’algorithme dual Simplexe . . . . . . . . . . . . . . . . . . . . . . 76

2
Chapitre 1

Introduction à l’optimisation

1.1 Introduction et Notations


L’optimisation, c’est-à-dire les techniques permettant de chercher les minima ou les maxima
de fonctions ou de fonctionnelles intervient dans pratiquement tous les processus de modélisation
actuels. Qu’il s’agisse de problèmes directs (ajustement de données, contrôle optimal, résolution
des systèmes linéaires par moindres carrés, etc) ou inverses (identification de paramètres), il est
rare qu’un problème d’optimisation plus ou moins complexe n’intervienne pas à un stade donné
de la modélisation et/ou de la simulation.
Le cadre général de ce cours est un espace vectoriel réel de dimension n. On peut donc sans
perdre de généralités considérer l’espace vectoriel réel Rn .
Nous considérons les notations suivantes.
⟨. , .⟩, ∥.∥ désigneront respectivement le produit scalaire usuel et la norme euclidienne de Rn .

1.2 Notion d’infimum, supremum, minimum, maximum


On définit ici les notions d’infimum de supremum, minimum et de maximum qui sont des
prérequis pour les démonstrations des résultats d’existence et d’unicité d’extrema d’une fonction
donnée.

Définition 1.2.1 (Minorant/Majorant) Soit X une partie de R.


m ∈ R ∪ {−∞, +∞} est un minorant de X si et seulement si

∀ x ∈ X, m ≤ x.

M ∈ R ∪ {−∞, +∞} est un majorant de X si et seulement si

∀ x ∈ X, x ≤ M.

Définition 1.2.2 (Infimum/Supremum) Soit X une partie de R.


1) Si X est non vide et admet des minorants, par définition l’infimum de X est le plus grand
des minorants de X. On le note inf(X) ou inf x∈X (x).
Si X est non vide et n’admet pas de minorants, par convention, l’infimum de X est égal à
−∞.

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 appelle suite maximisante de X, toute suite {xk } d’éléments de X telle que


lim xk = sup(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. 

Définition 1.2.4 (Minimum/Maximum) Soit X une partie de R.


On dit que X a un minimum si inf(X) ∈ X. Dans ce cas, on note min(X) = inf(X).
On dit que X a un maximum si sup(X) ∈ X. Dans ce cas, on note max(X) = sup(X).

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 .

Définition 1.3.1 On dit que la fonction f atteint un minimum sur C au point x∗ ∈ C si on a :

∀ x ∈ C, f (x∗ ) ≤ f (x).

Dans ce cas, α = f (x∗ ) est dit valeur minimale de f sur C.


De la même manière, on dit que la fonction f atteint un maximum sur C au point x∗ ∈ C si
on a :
∀ x ∈ C, f (x∗ ) ≥ f (x).
Dans ce cas, β = f (x∗ ) est dit valeur maximale de f sur C.

Minimiser la fonction f sur C consiste à déterminer la valeur minimale (le minimum) de f


sur C ainsi que le ou les point(s) de C s’ils existent où f atteint cette valeur minimale. Dans ce
cas on dit qu’on a résolu un programme mathématique de minimisation de f sur C. On le note
symboliquement :
min f (x).
x∈C

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 :

arg min{f (x) : x ∈ C} = {x∗ ∈ C : ∀ x ∈ C, f (x∗ ) ≤ f (x)}.

Maximiser la fonction f sur C consiste à déterminer la valeur maximale (le maximum) de f


sur C ainsi que le ou les point(s) de C s’ils existent où f atteint cette valeur maximale. Dans ce
cas on dit qu’on a résolu un programme mathématique de maximisation de f sur C et on le note
symboliquement :
max f (x).
x∈C

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 :

arg max{f (x) : x ∈ C} = {x∗ ∈ C : ∀ x ∈ C, f (x∗ ) ≥ f (x)}.

Optimiser f sur C consiste à minimiser et à maximiser la fonction f sur C. On le note sym-


boliquement :
extx∈C f (x) ou optx∈C f (x).
Etant donné un programme mathématique de minimisation ou de maximisation, les éléments
de C sont appelés solutions réalisables ou admissibles ou variables de commande ou variables de
contrôle du programme et la fonction f , fonction-objectif ou critère du programme. La valeur
minimale ou maximale selon qu’il s’agisse d’un problème de minimisation ou de maximisation est
dite valeur optimale. Les points de C qui réalisent cet optimum sont dits solutions optimales.

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).

Or la fonction f est strictement croissante. Ce qui entraı̂ne que :

∀ x > x∗ , f (x) > f (x∗ ).

Ce qui est contradictoire.


On a alors
arg max{f (x) = x + 3 : x ∈ R} = ∅.
On montre de même que le programme mathématique de minimisation de f sur R n’a pas de
solution.
A priori, un problème d’optimisation peut n’admettre aucune solution ou en admettre au moins
une. En toute généralité, aucun argument mathématique ne garantit l’existence de solution(s). On
dispose cependant d’une condition suffisante grâce au théorème de Weierstrass qui ne concerne
que les fonctions continues sur un compact de Rn .
La première idée qui vient à l’esprit est de calculer les valeurs que prend la fonction f pour
toutes les valeurs prises par les arguments puis de repérer les plus grandes et les plus petites
valeurs prises par les images. Ce n’est évidemment pas la bonne option si les arguments peuvent
prendre une infinité de valeurs.
Si la fonction à optimiser est une fonction d’une variable réelle, on peut toujours construire le
tableau de variations ou tracer la fonction dans le plan. C’est fastidieux dans la mesure où on ne
s’intéresse qu’aux optima et à eux seuls.
Si la fonction à optimiser est à deux variables réelles, on peut à la rigueur demander à un
logiciel approprié de tracer sa surface repésentative ou des courbes de niveau et conclure au vu
des graphes. Ce peut être parfois utile mais c’est frustrant dans la mesure où on ignore a priori où
se trouvent les optima, ce entraı̂ne qu’on est en peine de donner toutes les indications au traceur
de fonction.
Quoiqu’il en soit, dès que la fonction a plus de trois variables, les méthodes graphiques ne sont
d’aucun secours. Il faut disposer d’une théorie solide pour déterminer les optima. L’optimum peut
être global (ou absolu) ou local (ou relatif). Il peut être aussi large ou strict (ou unique).
Résoudre le programme de minimisation minx∈C f (x) (respectivement de maximisation maxx∈C f (x))
consiste à déterminer les points x∗ ∈ C tels que ∀x ∈ C, f (x∗ ) ≤ f (x) (respectivement f (x∗ ) ≥
f (x)).
Dans ce cas on dit f passe par un minimum global (respectivement un maximum global) en
x∗ sur C. Et x∗ est alors dite solution optimale globale du programme d’optimisation.
Outre les solutions optimales globales, on distingue aussi les solutions optimales locales définies
comme suit :

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 :

∀ x ∈ C ∩ V, f (x) ≥ f (x∗ )(respectivementf (x) ≤ f (x∗ ).

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.

Théorème 1.3.1 Si C est convexe et f : Rn → R est convexe (respectivement concave) sur C,


alors :
i) tout minimum(resp. maximum) local de f sur C est un minimum (resp. maximum) global
de f sur C,
ii) l’ensemble des solutions optimales globales arg min{f (x) : x ∈ C} (resp. arg max{f (x) : x ∈
C}) est convexe (il peut être vide).

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 :

∀x ∈ B(x∗ , r) ∩ C, f (x) ≥ f (x∗ ).

Comme x∗ n’est pas minimum global, il existe x∗∗ tel que f (x∗∗ ) < f (x∗ ).
Puisque C est convexe alors,

∀λ ∈]0, 1[, (1 − λ)x∗ + λx∗∗ ∈ C.

Et puisque f est convexe sur C, on aura :

f ((1 − λ)x∗ + λx∗∗ ) ≤ (1 − λ)f (x∗ ) + λf (x∗∗ ),

ce qui entraine que


f ((1 − λ)x∗ + λx∗∗ ) < f (x∗ ).
Choisissons λ proche de 0 de sorte que (1 − λ)x∗ + λx∗∗ soit dans B(x∗ , r). Alors, on a :

f ((1 − λ)x∗ + λx∗∗ ) < f (x∗ ).

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

A = arg min{f (x) : x ∈ C}

Si A est vide, alors c’est terminé, il est convexe.


Si A est réduit à un singleton, là aussi c’est terminé, il est convexe.
Supposons que A a plus d’un élément, alors notons x∗ et x∗∗ deux éléments distcincts quel-
conques. Si α est la valeur optimale, on a alors :

f (x∗ ) = f (x∗∗ ) = α.

7
Comme f est convexe, on a

∀λ ∈]0, 1[, α ≤ f ((1 − λ)x∗ + λx∗∗ ) ≤ (1 − λ)f (x∗ ) + λf (x∗∗ ) = α.

Donc on a
∀λ ∈]0, 1[, f ((1 − λ)x∗ + λx∗∗ ) = α.
Par suite
(1 − λ)x∗ + λx∗∗ ∈ A, ∀λ ∈]0, 1[.
D’où le théorème. 

Définition 1.3.3 (Optimum large) La fonction f atteint un minimum (respectivement : un


maximum) global au sens large en x∗ sur C si et seulement si :

∀ x ∈ C, f (x) ≥ f (x∗ )(respectivementf (x) ≤ f (x∗ ).

La fonction f atteint un minimum (respectivement : un maximum) local au sens large en x∗


sur C si et seulement s’il existe un voisinage V de x∗ tel que :

∀ x ∈ C ∩ V, f (x) ≥ f (x∗ )(respectivementf (x) ≤ f (x∗ ).

Définition 1.3.4 (Optimum strict) La fonction f atteint un minimum (respectivement : un


maximum) global strict en x∗ sur C si et seulement si :

∀ x ∈ C, x ̸= x∗ , f (x) > f (x∗ )(respectivementf (x) < f (x∗ ).

La fonction f atteint un minimum (respectivement : un maximum) local strict en x∗ sur C si


et seulement s’il existe un voisinage V de x∗ tel que :

∀ x ∈ C ∩ V, x ̸= x∗ , f (x) > f (x∗ )(respectivementf (x) < f (x∗ ).

L’hypothèse de convexité ou de concavité stricte de la fonction-objectif sur un domaine convexe


garantit l’unicité de la solution globale s’il y en a une.

Théorème 1.3.2 Si C est convexe et f : Rn → R est strictement convexe (respectivement stric-


tement concave) sur C, alors : l’ensemble des solutions optimales globales arg min{f (x) : x ∈ C}
(resp. arg max{f (x) : x ∈ C}) est soit vide soit réduit à un singleton.

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

1.3.2 Typologie des programmes mathématiques


On distingue plusieurs types de problèmes d’optimisation selon les critères suivants :
- si aucune contrainte ne s’exerce sur les variables de contrôle, alors l’ensemble des commandes
admissibles est directement une partie du domaine de définition de la fonction-objectif et on a
affaire à un problème d’optimisation libre.
Mais quasiment toujours, l’ensemble des commandes admissibles est définit en compréhension
par la donnée d’une liste de contraintes auquel cas il faut résoudre un problème d’optimisation
sous contraintes.

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

Optimisation à plusieurs variables sans


contraintes

Dans cette partie nous nous intéressons aux problèmes du type

α = infn f (x) (P )
x∈R

où f est une fonction définie sur Rn et à valeurs dans R.


Un problème d’optimisation étant donné, deux questions se posent : existe-t-il des solutions ?
Et comment détecter les solutions éventuelles ? La théorie de l’optimisation affronte donc deux
problèmes classiques en mathématiques : celui de l’existence et celui de des méthodes de recherche.

2.1 Résultats d’existence et unicité


On considère d’abord la définition suivante.

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

1) f : Rn → R telle que f (x) = ∥x∥ est coercive.


2) f : R2 → R telle que f (x, y) = x2 − y 2 n’est pas coercive.
3) f : Rn → R définie par f (x) = ⟨a, x⟩ + b avec a ∈ Rn et b ∈ R n’est pas coercive.
4) f (x, y) = x4 + y 4 − (x − y)2 est coercive sur R2 .
5) f : x ∈ Rn 7→ 12 ⟨Ax, x⟩ − ⟨b, x⟩ où A ∈ Sn (R) est définie positive et b ∈ Rn est coercive.
Pour montrer que f est coercive, on utilise souvent la proposition suivante :

Proposition 2.1.1 Si f : Rn → R est une application et g : R → R vérifie

f (x) ≥ g(∥x∥) avec lim g(t) = +∞


t→+∞

alors f est infinie à l’infini.

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 :

lim f (xk ) = α < +∞. (2.1)


k→+∞

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 :

f (x) = lim f (xψ(k) ) = α.


k→+∞

On en déduit alors deux choses : α > −∞ et x solution du problème (P). 

En ce qui concerne l’unicité de la solution optimale on a le théorème ci-dessous.

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.

Théorème 2.1.3 (Condition d’existence et d’unicité) Si f est continue, coercive et stricte-


ment convexe, alors le problème (P ) admet une et une seule solution optimale globale.

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.

2.2 Conditions d’optimalité


2.2.1 Conditions d’optimalité du premier ordre
Les conditions que nous donnons ici concernent le cas où la fonction-objectif f est différentiable.
On définit :

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 :

Théorème 2.2.1 (Condition nécessaire d’optimalité du premier ordre) On suppose que


f : Rn → R est une fonction différentiable. Si x∗ réalise un minimum local (global) de f sur Rn ,
alors on a ∇f (x∗ ) = 0.

Preuve : Soit x∗ réalisant un minimum local de f sur Rn . Le developpement de Taylor au voisinage


de x∗ donne :
f (x) = f (x∗ ) + ⟨∇f (x∗ ), x − x∗ ⟩ + ∥x − x∗ ∥ε(x)
avec limx→x∗ ε(x) = 0.
Si ∇f (x∗ ) ̸= 0, alors en choisissant x = x(λ) = x∗ − λ∇f (x∗ ), on aurait, pour λ > 0 suffi-
samment petit, f (x(λ)) < f (x∗ ). Ce qui contredirait le fait que x∗ réalise un minimum local de f .
Donc la condition est nécessaire. 

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.

Théorème 2.2.2 Si f : Rn → R est une fonction convexe et différentiable, alors un point x∗


réalise un minimum global de f sur Rn si et seulement si

∇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∗ ) + ⟨∇f (x∗ ), x − x∗ ⟩ ∀ x ∈ Rn .

Par hypothèse, on a ∇f (x∗ ) = 0 ; il vient alors que

f (x) ≥ f (x∗ ) ∀ x ∈ Rn .

Ce qui termine la démonstration. 

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.

2.3 Méthodes numériques


Dans cette partie nous nous intéressons aux méthodes numériques pour résoudre le problème :

α = infn f (x) (P )
x∈R

où f est une fonction définie et différentiable sur Rn et à valeurs dans R.


Les principales méthodes de résolution connues ne permettent pas la détermination d’un mi-
nimum global. Il faut alors parfois se contenter d’optimum locaux.
Les algorithmes les plus utilisés sont des procédures itératives où l’on engendre une suite de
points x0 , x1 , · · · , xk , · · · convergeant vers un optimum local.

2.3.1 Algorithmes et vitesse de convergence


Définition 2.3.1 Un algorithme est défini par une application A de Rn dans Rn permettant la
génération d’une suite d’éléments de Rn par la formule :
{
x0 ∈ Rn donné k := 0 Etape d’initialisation
x k+1
= A(x )k
k := k + 1 Itération k

Ecrire un algorithme c’est se donner une suite {xk } de Rn .


Etudier la convergence de cet algorithme c’est étudier la convergence de la suite {xk }.

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

∃ C ∈ [0, 1[, ∃ k0 : ∀ k ≥ k0 , ek+1 ≤ Cek .

- superlinéaire si l’erreur ek = ∥xk − x∗ ∥ décroit de la manière suivante : ek+1 ≤ αk ek où αk est


une suite positive qui converge vers 0.

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.

2.3.2 Méthodes de descente


A chaque étape k, xk+1 est défini par :
xk+1 = xk + λk dk
où dk est une direction de déplacement et λk le pas de déplacement.
La plupart des méthodes numériques usuelles sont des méthodes de descente c’est-à-dire que
la direction de déplacement à chaque étape xk est une direction de descente pour la fonction en
ce point.
Définition 2.3.4 On dit qu’une direction d est une direction de descente pour f en x, si
∃ α > 0 : f (x + αd) < f (x) ∀ α ∈]0, α[.
On montre facilement que :
Proposition 2.3.1 Soit f différentiable en x, si d est telle que ⟨∇f (x), d⟩ < 0 alors d est une
direction de descente pour f en x.
Corollaire 2.3.1 Soit f différentiable en x. Si ∇f (x) ̸= 0, alors d = −∇f (x) est une direction
de descente pour f en x.

Le principe des méthode à directions de descente est le suivant :


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) Choix d’une direction de descente dk ;
3) Détermination d’un pas de déplacement λk > 0 le long de dk de manière à ”faire décroı̂tre f
suffisamment” ;
4) xk+1 = xk + λk dk , k := k + 1 et aller en 1.

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.

On a le résultat de convergence suivant :

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.

2.3.3 Méthodes de directions conjuguées


Principe des méthodes des directions conjuguées
Il s’agit de méthodes itératives qui, appliquées à une fonction quadratique de n variables
conduisent à l’optimum en n étapes au plus.

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.

La matrice A étant symétrique définie positive, la forme bilinéaire a(x, y) = xT Ay définit un


produit scalaire et la relation xT Ay = 0 traduit l’orthogonalité des vecteurs x et y par ce produit
scalaire.

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

xk+1 = xk − [g ′ (xk )]−1 g(xk ) (2.2)

où g ′ (x) est la dérivée (ou jacobienne) de g au point x.


L’application de cette méthode au problème d’optimisation

α = 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

xk+1 = xk − [∇2 f (xk )]−1 ∇f (xk ) (2.3)

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

∥xk+1 − x∗ ∥ ≤ γ∥xk − x∗ ∥2 , γ > 0.

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

⟨∇f (xk ), dk ⟩ = −⟨∇f (xk ), [∇2 f (xk )]−1 ∇f (xk )⟩ < 0

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

Optimisation avec contraintes

Dans ce chapitre on s’intéresse au problème

α = inf f (x) (P )
x∈C

où C est une partie de Rn et f : Rn → R.

3.1 Résultats d’existence et d’unicité


On considère tout d’abord la définition suivante :

Définition 3.1.1 On appelle suite minimisante de f sur C toute suite {xk } de C telle

lim f (xk ) = inf f (x).


k→+∞ x∈C

On montre le résultat d’existence suivant dans le cas où C est borné.

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.

Définition 3.1.2 la fonction f est p-coercive sur C si


f (x)
lim ∥x∥ p = +∞

∥x∥ → +∞ .
x∈C

Si p = 0 on dit que la fonction f est coercive.

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

α = lim f (xkl ) = f (lim xkl ) = f (x̄).


l l

Donc α = f (x̄) ∈ R. 
Dans le cas où la fonction f est convexe, on a les propriétés suivantes.

Proposition 3.1.1 Soit


Sopt = {x ∈ C : f (x) = α}
l’ensemble des solutions optimales de (P ).
Si C est convexe non vide et f concave sur C alors
• ou bien Sopt ⊂ Fr(C)
• ou bien f est constante sur C.

Preuve : Supposons f non constante sur C et Sopt ̸= ∅.


Si Sopt ∩ int(C) ̸= ∅, alors soit x∗ ∈ int(C) ∩ Sopt . On a alors f (x∗ ) ≤ f (x) pour tout x ∈ C.
Comme la fonction f est non constante sur C, il existe x̄ ∈ C tel que f (x̄) > f (x∗ ) = α.
On a x∗ ∈ int(C), alors il existe x̃ ∈ C, et t ∈]0, 1[ tels que x∗ = tx̄ + (1 − t)x̃.
La fonction f étant concave, on a α = f (x∗ ) ≥ tf (x̄) + (1 − t)f (x̃) > tα + (1 − t)α = α Ce qui
est contradictoire. Donc Sopt ∩ int(C) = ∅ par suite Sopt ⊂ Fr(C). 

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

Comme f est concave sur C, on a



p

f (x ) ≥ λi f (ai ).
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

Pour tout d ∈ D ; f étant concave et minorée sur l’ensemble {x = x̃ + td : t ≥ 0}, on a

inf [f (x̃ + td)] = f (x̃).


t≥0

En effet, raisonons par l’absurde, sinon il existerait t̄ > 0 tel que

f (x̃ + t̄d) < f (x̃).

Mais alors pour tout t > t̄ on a

f (x̃ + td) − f (x̃) f (x̃ + t̄d) − f (x̃)



t t̄
et donc f (x̃ + td) −→ −∞ si t → +∞ ce qui est impossible car α > −∞.
Il s’ensuit que
inf [f (x̃ + d)] = f (x̃), ∀x̃ ∈ P.
d∈D

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. 

On a le résultat sur l’unicité de la solution optimale.

Théorème 3.1.3 Si C est convexe et f strictement convexe sur C alors (P ) admet au plus une
solution optimale.

La démonstration est immédiate.

3.2 Conditions d’optimalité


3.2.1 Généralités
Dans cette partie on donne des conditions d’optimalité des fonctions différentiables à partir
des cônes tangents. Tout d’abord on a la condition nécessaire d’optimalité suivante.

Théorème 3.2.1 Supposons f différentiable en x̄ ∈ C. Si x̄ est un minimum local de f sur C


alors on a :
⟨∇f (x̄), d⟩ ≥ 0 ∀ d ∈ T (C, x̄).

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.

Proposition 3.2.1 Si C est convexe et f différentiable en x̄ ∈ C, on a les équivalences suivantes :


i) ⟨∇f (x̄), d⟩ ≥ 0 ∀ d ∈ T (C, x̄)
ii) ⟨∇f (x̄), x − x̄⟩ ≥ 0 ∀ x ∈ C.
Preuve : Comme C est convexe on a T (C, x̄) = R∗+ (C − x̄). Donc pour tout x ∈ C, on a
x − x̄ ∈ T (C, x̄). Par suite ⟨∇f (x̄), x − x̄⟩ ≥ 0 ∀ x ∈ C.
Réciproquement supposons que ⟨∇f (x̄), x − x̄⟩ ≥ 0 ∀ x ∈ C et soit d ∈ T (C, x̄). Alors d =
limk dk avec dk ∈ R∗+ (C − x̄) pour tout k. On peut donc écrire dk = λk (xk − x̄) où λk > 0 et xk ∈ C
pour tout k. Par hypothèse, on a ⟨∇f (x̄), x − x̄⟩ ≥ 0 ∀ x ∈ C. Donc on a ⟨∇f (x̄), xk − x̄⟩ ≥ 0
∀ k. Il s’ensuit alors que ⟨∇f (x̄), λk (xk − x̄)⟩ ≥ 0 ∀ k et donc ⟨∇f (x̄), dk ⟩ ≥ 0 ∀ k. Par passage à
la limite, on obtient ⟨∇f (x̄), d⟩ ≥ 0. 

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.

Preuve : La condition est nécessaire d’après le théorème (3.2.1) et la proposition (3.2.1).


Réciproquement, comme f est convexe et différentiable en x̄, on a

f (x) ≥ f (x̄) + ⟨∇f (x̄), x − x̄⟩ ≥ f (x̄) ∀ x ∈ C.

C’est-à-dire que x̄ réalise un minimum global de f sur C. 

3.2.2 Cas des contraintes d’égalité


On suppose ici que :
C = {x ∈ Rn : hj (x) = 0, j = 1, · · · , q}
où les fonctions hj , j = 1, · · · , q sont définies sur Rn et à valeurs dans R.
On considère la définition suivante :

Définition 3.2.1 Soit x ∈ C. On suppose que les fonction hj (j = 1, · · · , q) sont différentiables


dans un voisinage de x. On dira que point x est qualifié si le système {∇hj (x), j = 1, · · · , q} est
libre.

On a les conditions nécessaires d’optimalité.

Théorème 3.2.2 (Conditions Nécessaires d’optimalité du premier ordre) Soit x∗ ∈ C.


On suppose que f est différentiable en x∗ , que les fonctions hj , j = 1, · · · , q sont de classe C 1 dans
un voisinage de x∗ ∈ C et que x∗ est qualifié. Alors une condition nécessaire pour que x∗ soit une
solution optimale locale de (P ) est que :


q
∗ ∗
∃!µ ∈ R q
tel que ∇f (x ) + µ∗j ∇hj (x∗ ) = 0.
j=1

(le vecteur µ∗ est appelé vecteur multiplicateur de Lagrange)

On peut reformuler ces résultats en considérant la fonction de Lagrange.

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

est un minimum global de f sur C.

3.2.3 Problème avec contraintes d’inégalité


On suppose ici que
C = {x ∈ Rn : gi (x) ≤ 0, i = 1, · · · , p}
où les fonctions gi , i = 1, · · · , m sont définies sur Rn et à valeurs dans R.

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.

On a les conditions d’optimalité :

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.

3.2.4 Problème avec contraintes d’égalité et d’inégalité


On s’intéresse ici au
{ }
g (x) ≤ 0, i = 1, · · · , p,
C= x∈R : i
n
hj (x) = 0, j = 1, · · · , q

où les fonctions gi , i = 1, · · · , p et hj , j = 1, · · · , q sont définies sur Rn et à valeurs dans R.


Comme dans le cas précédent, pour x ∈ C on note I(x) = {i ∈ {1, · · · , p} : gi (x) = 0}
l’ensemble des indices des contraintes actives en x.
On définit ici aussi les conditions de qualification.

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.

Théorème 3.2.6 (CNS d’optimalité de Kuhn-Tucker)


Soit x∗ ∈ C. On suppose que les fonctions f , gi sont convexes et continûment différentiables dans
un voisinage de x∗ , les hj sont affines et que les contraintes sont qualifiées en x∗ . Alors x∗ est une
solution optimale globale de (P ) si et seulement si :


 ∃ λ∗i ≥ 0, i = 1, · · · , p, µ∗j ∈ R, j = 1, · · · , q








 tels que

 ∑ ∑

 ∇f (x∗ ) + pi=1 λ∗i ∇gi (x∗ ) + qj=1 µ∗j ∇hj (x∗ ) = 0,






 ∗
λi gi (x∗ ) = 0, i = 1, · · · , p.

Comme dans les cas précédents, on définit la fonction de Lagrange.

Définition 3.2.6 On appelle lagrangien associé au problème (P ) avec containtes d’égalité et


d’inégalité, c’est-à-dire

min [f (x) : gi (x) ≤ 0, i = 1, · · · , p, hj (x) = 0, j = 1, · · · , q]

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

que l’on appelle problème primal.


Supposons que l’on puisse représenter f (x) par un supremum
f (x) = sup φ(x, y) (4.1)
y∈Y

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

(P ∗ ). sup inf φ(x, y)


y∈Y x∈X

Le problème dual consiste à minimiser la fonction


y 7−→ inf φ(x, y).
x∈X

Pour chaque y ∈ Y , il faut résoudre un problème de minimisation pour connaı̂tre la valeur de la


fonction à maximiser ! Le problème
inf φ(x, y)
x∈X
est appelé problème interne associé à y ∈ Y .
On peut souvent représenter f comme en (4.1) au moyen de différentes fonctions φ. A chacune
d’elles correspond un problème dual différent. Il n’y a pas unicité du problème dual.

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 prenant le supremum en y ′ ∈ Y , on obtient

sup inf φ(x, y) ≤ sup φ(x′ , y) ∀ x′ ∈ X.


y∈Y x∈X y∈Y

Le membre de gauche est independant de x′ , on peut donc prendre l’infimum en x′ ∈ X à droite


et garder l’inégalité. Ceci conduit au résultat. 

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 φ.

Définition 4.1.2 On dit que (x̄, ȳ) ∈ X × Y est un point-selle de φ sur X × Y si on a

φ(x̄, y) ≤ φ(x̄, ȳ) ≤ φ(x, ȳ) ∀ x ∈ X, ∀ y ∈ Y.

Donc x 7−→ φ(x, ȳ) atteint un minimum en x̄


et y 7−→ φ(x̄, y) atteint un maximum en ȳ.
La proposition suivante précise le lien entre la notion de point-selle et l’existence de solutions
pour les problèmes primal et dual.

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

sup inf φ(x, y) = inf sup φ(x, y). (4.3)


y∈Y x∈X x∈X y∈Y

Dans ces conditions la valeur en (4.3) est φ(x̄, ȳ).

Définition 4.1.3 Soit X ⊂ Rn et Y ⊂ Rm deux convexes non vides et φ : X × Y −→ R. On dit


que φ est convexe-concave sur X × Y si :
i) pour tout y ∈ Y la fonction
φ(., y) : X −→ R
est convexe
ii) pour tout x ∈ X la fonction
φ(x, .) : Y −→ R
est concave.

28
On a le theorème d’existence de points-selles suivant :

Théorème 4.1.1 Soit X ⊂ Rn et Y ⊂ Rm deux convexes fermés non vides et

φ : X × Y −→ R

convexe-concave sur X × Y .
On suppose que :
i) X est borné ou bien il existe un y0 ∈ Y tel que

lim φ(x, y0 ) = +∞,


∥x∥ → +∞
x∈X

ii) Y est borné ou bien il existe un x0 ∈ X tel que

lim φ(x0 , y) = +∞.


∥y∥ → +∞
y∈Y

Alors l’ensemble des points-selles de φ sur X × Y est un compact non vide de X × Y .

4.2 Dualité lagrangienne


On considère le programme mathématique sous la forme générale

(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)⟩.

On montre facilement que

Proposition 4.2.1 On a
α = inf sup L(x, λ, µ)
x∈X
λ≥0
µ

29
Proposition 4.2.2 On a

sup inf L(x, λ, µ) ≤ inf sup L(x, λ, µ)


x∈X x∈X
λ≥0 λ≥0
µ µ

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 )

Définition 4.2.1 On appelle dual de (P ) relativement au lagrangien L, le programme

(D) β= sup inf L(x, λ, µ).


x∈X
λ≥0
µ

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 :

Proposition 4.2.3 La fonction duale θ est concave en (λ, µ).

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) ≥ θ(λ, µ).

On en déduit les résultats suivants :

Corollaire 4.2.1 On a α ≥ β.

Définition 4.2.2 la différence α − β est appelée saut de dualité.

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

∃x̃ ∈ X, tel que g(x̃) < 0, h(x̃) = 0.

Si x∗ est solution optimale de (P ), alors il existe (λ∗ , µ∗ ) réalisable pour (D) tel que (x∗ , (λ∗ , µ∗ ))
soit un point-selle du lagrangien.

On a la relation suivante entre point-selle du lagrangien et point de Kuhn-Tucker.

Définition 4.2.4 On considère le problème (P ) avec les fonctions f , g différentiables et h est


affine. Si pour x∗ ∈ C il existe λ∗ ∈ Rp+ , µ∗ ∈ Rq tel que
 ∑p ∑q
 ∗ ∗ ∗ ∗ ∗
 ∇f (x ) + i=1 λi ∇gi (x ) + j=1 µj ∇hj (x ) = 0,

 λ∗ g (x∗ ) = 0, i = 1, · · · , p,
i i

on dit que le point (x∗ , λ∗ , µ∗ ) est un point de Kuhn-Tucker pour le problème (P ).

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

Formulation d’un programme linéaire

5.1 Programmes linéaires


Définition 5.1.1 Un programme linéaire dans Rn est un problème qui consiste à déterminer :
1) le minimum ou maximum d’une application linéaire Z : Rn → R restreinte à un ensemble
de solutions d’un système d’équations et/ou d’inéquations linéaires dans Rn ;
2) les éléments s’ils existent qui réalisent ce minimum ou ce maximum.

Si l’application linéaire est Z(x) = nj=1 cj xj et le système mixte d’équations et/ou d’inéquations
linéaires est :
 ∑n

 ∑j=1 aij xj ≥ bi , i = 1, · · · , m1
j=1 aij xj ≤ bi , i = m1 + 1, · · · , m2
n
 ∑
 n a x = b , i = m + 1, · · · , m
j=1 ij j i 2

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.

5.2 Modélisation sous forme de programmes linéaires


5.2.1 Etapes de la modélisation
Pour modéliser un problème sous forme d’un programme linéaire, on peut procèder en quatre
étapes : le choix des variables, la détermination des contraintes, la détermination de la fonction-
objectif et enfin le résumé.
Etape 1 : choix des variables
Dans cette étape on choisit les variables de décision : en général elles permettent de définir la
fonction-objectif.
Etape 2 : détermination des contraintes
A ce niveau il faut d’abord signaler les contraintes de signe des variables qui ne sont indiquées
dans le texte. Les variables sont en génaral non négatives en tant que quantités de matière. Ensuite
on détermine les contraintes structurelles qui sont liées au texte. Il ne faut pas oublier d’indiquer
les éléments du texte qui engendrent les contraintes structurelles.
Etape 3 : détermination de la fonction-objectif

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.

5.2.2 Quelques exemples


Exemple 1 : Problème de production
Soient Mi (i = 1, · · · , m), m machines qui fabriquent en série n types de produits Pj (j =
1, · · · , n). La machine Mi a une capacité maximum de bi unités de temps. La fabrication d’une
unité du produit Pj nécessite l’utilisation de la machine Mi durant aij unités de temps. Si cj
représente le gain relatif à la production d’une unité du produit Pj , quelle doit être la politique
de production pour maximiser le gain total ?
Exemple 2 : Problème de transport
Soient r centres de production d’un bien donné possédant des stocks disponibles en quantités
respectives q1 , · · · , qr . Dans s centres de consommation, la demande de ce bien est respectivement
de d1 , · · · , ds . Les frais de transport d’une unité de bien du centre de production i au centre de
consommation j est cij unités monétaires. Il s’agit de déterminer comment approvisionner les
centres de consommation à partir des centres de production de manière à minimiser le coût total
de transport. Formuler ce problème sous forme d’un programme linéaire.
Exemple 3 : Problème de la ration alimentaire
On dispose de n aliments Aj (j = 1, · · · , n) aux prix respectifs par unité de cj unités monétaires
(j = 1, · · · , n).
On considère m éléments nutritifs ei (i = 1, · · · , m). La quantité du ième élément nutritif
contenue dans une unité de l’aliment Aj est aij . Les besoins respectifs en les m éléments nutritifs
sont bi (i = 1, · · · , m).
On se propose de déterminer la ration alimentaire qui tout en étant de meilleur marché possible
garantisse un apport suffisant en éléments nutritifs.
Exemple 4
Un ébéniste fabrique des bureaux sous deux modèles : le modèle ”luxe” et le modèle ”standard”.
Des études de marché ont montré que, pour l’année à venir, les possibilités de vente s’élèvent à
300 unités pour le modèle ”luxe” et à 400 unités pour le modèle ”standard”. L’approvisionnement
en bois est suffisant pour pouvoir fabriquer annuellement 500 bureaux quel que soit le type. Par

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.

5.3 Forme standard, forme canonique


Dans cette partie on considère la relation suivante.
Pour u et v dans Rn on note
u ≤ v ⇔ ui ≤ vi ∀ i = 1, · · · , n.

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

Preuve : Il suffit de transformer les contraintes d’inégalité en contraintes d’égalité en considérant


les équivalences suivantes :

n ∑
n
aij xj ≥ bi ⇔ aij xj − si = bi , si ≥ 0
j=1 j=1


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

Remarque 5.3.2 Le passage à la forme canonique augmente le nombre de contraintes dans le


programme linéaire.

37
Chapitre 6

Résolution des programmes linéaires

6.1 Résultats théoriques fondamentaux


6.1.1 Notions sur les polyèdres convexes et sommets
On commence cette sous-section par des rappels de quelques résultats classiques.

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.

Dans Rn tout hyperplan divise l’espace en deux demi-espaces fermés


∑ de frontière cet hyperplan.
Par exemple si H est un hyperplan défini par H = {x ∈ Rn : nj=1 aj xj = α}, les ensembles


n ∑
n
{x ∈ Rn : aj xj ≥ α} et {x ∈ Rn : aj xj ≤ α}
j=1 j=1

sont les demi-espaces fermés de frontière H et les ensembles



n ∑
n
{x ∈ R :
n
aj xj > α} et {x ∈ R :
n
aj xj < α}
j=1 j=1

sont les demi-espaces ouverts de frontière H.

Définition 6.1.2 Un polyèdre convexe C de Rn est l’intersection


(éventuellement vide) d’un nombre fini de demi-espaces fermés et/ou d’hyperplans.
C’est-à-dire :  

 ai x ≤ bi , i = 1, · · · , p1 , 

C = x ∈ R : ai x ≥ bi , i = p1 + 1, · · · , p2 ,
n

 
ai x = bi , i = p2 + 1, · · · , m 
où les ai sont dans M1,n (R) et les bi , dans R, i = 1, · · · , m.
Dans ce cas les hyperplans Hi = {x ∈ Rn : ai x = bi , i = 1, · · · , m} sont dits hyperplans
frontières du polyèdre C.

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.

6.1.2 Existence de solution optimale


Nous avons considéré depuis le début, à la fois les problèmes de maximisation de les problèmes
de minimisation. Il faut noter que tout problème de maximisation peut se ramener à un problème
de minimisation. En effet, on a :
Proposition 6.1.1
max Z(x) = − min −Z(x).
x∈C x∈C

Nous allons considérer en théorie dans tout ce qui suit, le programme linéaire :
min Z(x) (P),
x∈C

On sait que l’ensemble des solutions réalisables de P peut être soit :


- vide ;
- non vide et borné ;
- non vide et non borné.
On définit :
Définition 6.1.4 Etant donné le programme linéaire P, une solution optimale est une solution
réalisable c’est-à-dire un élément x∗ de C qui vérifie :
Z(x∗ ) ≤ Z(x), ∀ x ∈ C.
Dans ce cas la valeur Z ∗ = Z(x∗ ) est dite valeur optimale du programme linéaire.

Etant donné le programme linéaire P, on a les trois situations suivantes :


- l’ensemble des solutions réalisables est vide : C = ∅, dans ce cas on dit que le programme
est impossible ;
- l’ensemble des solutions réalisables n’est pas vide (C ̸= ∅) et non borné, mais la fonction-
objectif Z n’est pas minorée sur C. Le minimum vaut alors Z ∗ = −∞ : on dit que le programme
est non borné ;
- l’ensemble des solutions réalisables n’est pas vide et la fonction-objectif Z est minorée sur C.
Alors P a une solution optimale (pas forcément unique) : on dit que le programme linéaire a un
optimum fini.
On montre que :
Théorème 6.1.1 Etant donné le programme linéaire P, si son ensemble des solutions réalisables
est non vide, fermé et borné, alors il possède au moins une solution optimale.
Nous avons dans ce qui suit la propriété dite propriété fondamentale de la programmation
linéaire.
Théorème 6.1.2 Si un programme linéaire possède une solution optimale, alors son ensemble
des solutions réalisables contient au moins un sommet et l’un d’entre eux est solution optimale du
programme linéaire.
Pour déterminer cette solution optimale, nous avons plusieurs méthodes.

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.

6.3 Méthode du simplexe


On considère le programme linéaire sous la forme standard suivant.

Z
{ = min Z = cx
Ax = b (P L)
x ∈ Rn , x ≥ 0
où A ∈ Mm,n (R), c ∈ M1,n (R), et b ∈ Mm,1 (R) avec rangA = m < n.
Notons C le polyèdre convexe fermé des solutions réalisables de (P L).

6.3.1 Base, solutions de base


Etant donné le programme linéaire (P L), on a les définitions suivantes :

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)

On obtient donc : xB = B −1 b − B −1 N xN ). Par suite l’ensemble des solutions réalisables du


programme linéaire est :
{ ( −1 ) }
B b − B −1 N xN )
C = x ∈ R+ : x =
n
, xN ∈ R n−m
.
xN

Définition 6.3.3 On appelle solution de base de (P L) associée (ou relative) à la base B, la


solution particulière x(B) du système
( Ax
) = b obtenue en fixant les variables hors base à zéro (en
−1
B b
prenant xN = 0) i. e. x(B) =
0

Exemple 6.3.1

Considérons le programme linéaire ci-dessous où c quelconque est une matrice ligne à 5 colonnes.

Z ∗ = min Z = 2x1 − 3x2



 x1 − x2 + x3 = 5
(P L)
x2 + x4 = 5

xi ≥ 0, i = 1, · · · , 4

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}.

avec les solutions de base :


         
10 5 0 0 0
 5   0   5   −5   0 
x(I1 ) = 
 0 
 , x(I2 ) = 

 , x(I3 ) =   , x(I4 ) =   , x(I5 ) =  .
0   10   0   5 
0 5 0 10 5

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.2 Dans l’exemple (6.3.1), les bases I1 , I2 , I3 et I5 sont réalisables.

Exemple 6.3.3

Considérons le programme linéaire suivant :

min Z = 2x1 − 9x2 + 4x3 + 10x4 − 3x5



 7x1 + 3x2 + 10x3 + 5x4 + 8x5 = 37
5x1 + 4x2 + 7x3 + 10x4 + 3x5 = 26

x ∈ R5 , x ≥ 0

I = {x1 , x3 } est une base réalisable. En effet, si on note B la matrice associée à I, on a :


( ) ( ) ( )
7 10 −1 −7 10 −1 1
B= , B = et B b = ≥ 0.
5 7 5 −7 3

La solution de base réalisable associée est x(B) = (1, 0, 3, 0, 0)T .

Définition 6.3.5 Une base réalisable B de (P L) est dite dégénérée si le vecteur xB = B −1 b


contient au moins une composante nulle.

Exemple 6.3.4

Considérons le programme linéaire suivant :

 Z = −3x1 − 2x2
min

 4x1 + 3x2 + x3 = 18

4x1 + x2 + x4 = 8

 4x1 − x2 + x5 = 8

x ∈ R5 , x ≥ 0

Soit I = {1, 3, 5}. La matrice associée à I est

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.

Exemple 6.3.5 Dans l’exemple (6.3.1), les bases I1 et I2 sont adjacentes.

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.

6.3.2 Forme canonique par rapport à une base réalisable


On vient de voir que si (P L) possède un optimum fini, il existe au moins une base réalisable
optimale. C’est pour cela qu’on s’intéresse dans ce qui suit aux conditions d’optimalité des solutions
de base réalisables.
Soit B une base réalisable de (P L). On note I l’ensemble des indices des variables de base et
J l’ensemble des indices des variables hors base.
On sait qu’on peut supposer sans perdre de généralités que B est formée des m premières
colonnes de A et donc A est de la forme (matrices blocs) A = (B, N ) où N est la sous-matrice
( )
xB
formée par les colonnes de A qui ne sont pas dans B. De même on peut partitionner x =
xN
où xB est constitué des variables de base et xN des variables hors base.
Le système Ax = b est alors équivalent à

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 :

Z(x) = cB B −1 b + (cN − cB B −1 N )xN . (6.3)

Posons
 = B −1 A, ĉ = c − cB B −1 A, Ẑ = cB B −1 b (6.4)

Donc ĉB = 0 et ĉN = cN − cB B −1 N .


On remarque qu’on a Z(x(B)) = cB B −1 b = Ẑ.

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.

Définition 6.3.9 Le programme linéaire (P L) est équivalent au programme linéaire :



Z
{ = min Z = ĉx + Ẑ
Âx = b̂
x ∈ Rn , x ≥ 0

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 :

min Z = 14 + 5x2 + 60x4 − 27x5



 x1 + 19x2 + 65x4 − 26x5 = 1
x3 − 13x2 − 45x4 + 19x5 = 3

x≥0

6.3.3 Caractérisation des solutions de base réalisables optimales


On peut à présent donner les conditions d’optimalité pour une solution de base réalisable.

Théorème 6.3.1 Une condition suffisante pour que B soit une base réalisable optimale est ĉ ≥ 0.

Preuve : Dans (P L) on a la contrainte xN ≥ 0. Donc pour toute solution réalisable x de (P L),


on aura :
Z(x) = cB B −1 b + (cN − cB B −1 N )xN ≥ cB B −1 b = Z(x(B)).
Par suite x(B) est une solution optimale de (P L). 

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

Considérons le programme linéaire suivant :

 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α

est réalisable quel que soit α ≥ 0 et Z(x(α)) = − 17


3
− 43 α qui tend vers −∞ quand α tend vers
+∞. Le problème est alors non borné.

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

les ei étant les vecteurs de la base canonique de Rm .


On a
det(B ′ ) = det B det M = âlk det B ̸= 0.
Donc I ′ est une base.
En considérant la forme canonique du programme (P L) par rapport à la base B, on constate
que le système Ax = b est équivalent à :
{ ∑
xi + j∈J−k âij xj + âik xk = b̂i ∀ i ∈ I − l

xl + j∈J−k âlj xj + âlk xk = b̂l

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.

6.3.4 Algorithme primal du simplexe


L’algorithme du simplexe contient deux phases : la phase 1 et la phase 2.
Phase 1
Dans cette phase on détermine une première solution de base réalisable du problème. Si cette
procédure échoue, cela signifie que le polyèdre des solutions réalisables D du problème est vide.
Phase 2
Dans cette partie, on calcule à partir de la solution réalisable obtenue dans la phase 1 une autre
solution de base réalisable donnant une meilleure valeur de la fonction-objectif. Géométriquement,
une itération consiste à passer d’un sommet de D à un sommet de D ; ce nouveau sommet est
adjacent au premier en ce sens qu’ils sont les extrémités d’une arête de D.
Nous donnons ici une itération de la phase 2 de l’algorithme du simplexe.
Phase 2 de l’algorithme du simplexe
Dans une itération de la phase 2 de l’algorithme du simplexe appliqué au problème (P L) on
procède comme suit.
Début
On suppose qu’on dispose d’une base réalisable de depart B. Soit I et J respectivement les
ensembles des indices des variables de base et hors base.

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

La variable xl sort de la base on l’appelle variable sortante.


c) On considère la nouvelle base réalisable encore notée B dont les ensembles des indices de
variables de base et hors base sont respectivement
I := I − l + k et J := J − k + l
Aller à 1).
Fin

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 :

2 − a) Si ĉ ≤ 0 stop : ”la base B est optimale.”


2 − 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.”

3 − a) Test d’entrée : Soit k ∈ J tel que

ĉk = max [ĉj : j ∈ J, ĉj > 0] .

La variable correspondante xk rentre dans la base.


Les autres instructions restent valables.

6.3.5 Convergence de l’algorithme du simplexe


On a le résultat suivant

Théorème 6.3.5 Si à chaque base réalisable rencontrée dans résolution du problème (P L) la


solution de base associée est non dégénérée, l’algorithme se termine en un nombre fini d’itérations
par l’une des deux situations suivantes :
i) obtention d’une solution de base réalisable optimale de (P L)
ii) absence de solution optimale à distance finie.

48
Ce théorème montre la convergence de l’algorithme du simplexe en l’absence de dégénérescence.
On montre que

Proposition 6.3.2 Si à une itération de l’algorithme du simplexe l’ensemble


{ [ ]}
b̂l b̂i
L= l: = min : i ∈ I, âik > 0
âlk âik

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.

6.3.6 Méthode des tableaux


C’est une mise en œuvre manuelle de l’algorithme du simplexe.
Soit à résoudre le programme linéaire (P L)

Z
{ = min Z = cx
Ax = b
x ∈ Rn , x ≥ 0

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

On sait que  = (Im , B −1 N ), ĉ = (0, cN − cB B −1 N ), b̂ = B −1 b.


On définit :

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

Cette règle s’applique à tous les éléments du tableau.

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

On est à l’optimum car la condition d’arrêt de l’algorithme est vérifiée.


Une solution optimale du problème initial est x∗ = ( 53 , 23 )T et la valeur optimale est Z ∗ = − 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

min Z = −3x1 + 5x2



 −2x1 + 3x2 ≤ 6
x1 − 4x2 ≤ 4

x1 , x2 ≥ 0
On écrit le programme sous forme standard. On obtient :

 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 −∞.

Exemple 6.3.11 (Problème dégénéré)

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.

6.3.7 Initialisation de l’algorithme du simplexe


Dans cette phase d’initialisation, qu’on appelle aussi la phase 1 du simplexe, on y détermine
une première base réalisable du programme (P L).

Z
{ = min Z = cx
Ax = b (P L)
x ∈ Rn , x ≥ 0
où A ∈ Mm,n (R), c ∈ M1,n (R), et b ∈ Mm,1 (R).
On suppose ici que b ≥ 0. Mais on ne fait pas l’hypothèse que rangA = m < n.
On considère le problème auxiliaire défini de la façon suivante :
- Les vraies contraintes :
On considère chaque vraie contrainte de (P L) et on ajoute au premier membre une variable
artificielle non-négative.
- La fonction-objectif :
La fonction-objectif ξ est la somme de toutes les variables artificielles introduites.
Dans ce programme toutes les variables sont non-négatives.
On a alors le programme suivant :

ξ{∗ = min ξ = m a
i=1 xi
a
Ax + Im x = b (Pa )
x ≥ 0, xa ≥ 0

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 .

6.3.8 Méthode du grand M


Pour résoudre le programme linéaire (P L) par la méthode du grand M , on considère l’hypothèse
que b ≥ 0 et on procède comme suit.
On considère le problème auxiliaire suivant.

∑m a
Z
{M = min Z M = cx + M i=1 xi
a
Ax + Im x = b (PM )
x ≥ 0, x ≥ 0
a

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).

Remarque 6.3.10 Pour un problème de maximisation, la fonction-objectif de (PM ) est ZM =



cx − M m a
i=1 xi .

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

1) min Z = 8x1 + 7x2 + 3x3


 2x1 + x2 ≥ 1
x1 + 2x2 + x3 ≥ 1

xi ≥ 0, i = 1, · · · , 3
La forme standard de ce problème est
min
 Z = 8x1 + 7x2 + 3x3
 2x1 + x2 − x4 = 1
x1 + 2x2 + x3 − x5 = 1

xi ≥ 0, i = 1, · · · , 5
On n’a pas de base réalisable évidente. Utilisons la méthode du grand M .
Considérons le programme auxiliaire :
min
 ZM = 8x1 + 7x2 + 3x3 + M x6
 2x1 + x2 − x4 + x6 = 1
x1 + 2x2 + x3 − x5 = 1

xi ≥ 0, i = 1, · · · , 5
I = {x6 , x3 } est une base réalisable évidente de ce problème.
La forme canonique par rapport à cette base est :
min ZM = (5 − 2M )x1 + (1 − M )x2 + M x4 + 3x5 + M + 3

 2x1 + x2 − x4 + x6 = 1
x1 + 2x2 + x3 − x5 = 1

xi ≥ 0, i = 1, · · · , 5
On a les tableaux simplexes suivants :
x1 x2 x4 x5
x6 2∗ 1 -1 0 1 ←
TS1 x3 1 2 0 -1 1
5-2M 1-M M 3 -3-M

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

On est à l’optimum pour PM et une solution optimale du problème initial est x∗ = ( 13 , 1


3
, 0)T
et la valeur optimale est Z ∗ = 5.
2) 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 utiliser la méthode du grand M .
Considérons le programme auxiliaire
min
 ZM = x1 + x2 + x3 + M (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 pour ce problème. Déterminons la forme
canonique par rapport à cette base. Les variables de base sont déjà exprimées en fonction des
variables hors base. Il reste à exprimer la fonction-objectif en fonction des variables hors base.
On a : ZM = −10M + x1 + (1 − 8M )x2 + (1 − 18M )x3
Donc la forme canonique du programme par rapport à la base I est :

 ZM = −10M + x1 + (1 − 8M )x2 + (1 − 18M )x3


min

 x1 + 2x2 + 3x3 + x5 = 3


 −x1 + 2x2 + 6x3 + x6 = 2
4x2 + 9x3 + x7 = 5



 3x + x4 = 1
 3
xi ≥ 0, i = 1, · · · , 7
On a les tableaux simplexes suivants.

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

Dualité en programmation linéaire

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

Cette définition est caractérisée par les règles suivantes :


1) A un problème primal de minimisation (de maximisation) correspond un problème dual de
maximisation (minimisation).
2) A toute vraie contrainte primale correspond une variable duale : si la vraie contrainte est
une ”vraie inégalité”, la variable duale est soumise à une condition de non-négativité (” ≥ 0”) ;
si la vraie contrainte est une ”fausse inégalité”, la variable duale est soumise à une condition de
non-positivité (” ≤ 0”) ;
si la contrainte est une égalité, la variable duale est libre.
3) A toute variable primale correspond une contrainte duale :
- si la variable primale est soumise à une condition de non-négativité, la contrainte duale est une
”vraie inégalité”.
- si la variable primale est soumise à une condition de non-positivité, la contrainte duale est une
”fausse inégalité”.
- si la variable primale est libre, la contrainte duale est une égalité.
4) Les coefficients de la fonction-objectif du primal deviennent les seconds membres des contraintes
duales. Les seconds membres des vraies contraintes primales deviennent les coefficients de la
fonction-objectif du dual.
5) La matrice des vraies contraintes du dual est la transposée de la matrice des vraies contraintes
du primal.

Exemple 7.1.1
1) Soit à déterminer le dual du programme linéaire ci-dessous.

min Z = 3x1 + 2x2 + x3




 2x1 + 5x2 + x3 = 5

x1 − 3x2 − x3 ≥ 1

 4x1 + 2x2 + 6x3 ≤ 3

x1 ≥ 0, x2 ≤ 0, x3 ∈ R.
On considère les variables duales : y1 associée à la première contrainte, y2 à la deuxième et y3
à la troisième. Le dual est alors :

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.

max Z = 8x1 − 4x2 + 2x3




 3x1 + 5x2 + 2x3 ≤ 4

x1 − 2x2 + 6x3 ≥ −7

 4x1 + 3x2 + x3 = 3

x1 ≤ 0, x2 ≥ 0, x3 ∈ R.
On considère les variables duales : y1 associée à la première contrainte, y2 à la deuxième et y3
à la troisième. Le dual est alors :

 W = 4y1 − 7y2 + 3y3


min

 5y1 + y2 + 4y3 ≤ 8

5y1 − 2y2 + 3y3 ≥ −4

 2y1 + 6y2 + y3 = 2

y1 ≥ 0, y2 ≤ 0, y3 ∈ R

Exemple 7.1.2

Considérons le programme linéaire

min
{ Z = cx
Ax ≥ b
x ≥ 0.

Son dual est :

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).

7.2 Propriétés de la dualité


Considérons le programme linéaire :

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

Proposition 7.2.1 (Propriété de la dualité faible)


Si x et y sont respectivement des solutions réalisables de (P ) et (D) alors on a : cx ≥ yb

Corollaire 7.2.1 On a : Z ∗ ≥ yb pour tout y : solution réalisable de (D).


W ∗ ≤ cx pour tout ∀x solution réalisable de (P ).

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.

Corollaire 7.2.3 Si x∗ et y ∗ sont respectivement solution réalisable (P ) et (D) vérifiant cx∗ =


y ∗ b, alors, x∗ et y ∗ sont des solutions optimales de (P ) et (D) respectivement.

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. 

Proposition 7.2.2 (Propriété de la dualité forte)


Si (P ) (respectivement (D)) possède une solution optimale finie alors il en de même pour (D)
(respectivement (P )) et de plus Z ∗ = W ∗
En d’autres termes étant donné deux problèmes en dualité si l’un possède une solution optimale
finie, alors il en est de même pour l’autre et de plus les valeurs optimales sont égales.

Preuve : Considérons le programme (P ) sous forme standard

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). 

On a les corollaires suivants.

Corollaire 7.2.4 Soit x∗ et y ∗ respectivement des solutions réalisables de (P ) et (D).


{
x∗ est solution optimale de(P )
cx∗ = y ∗ b ⇐⇒
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.

On peut schématiser cela dans le tableau suivant


Solution optimale Problème Problème
Primal/ dual
finie non borné impossible
Solution optimale
1) non non
finie
Problème
non non 2) a)
non borné
Problème
non 2) b) 3)
impossible

7.3 Théorèmes des écarts complémentaires


On considère toujours les programmes linéaires en dualité :

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

α + β = y ∗ Ax∗ − y ∗ b + cx∗ − y ∗ Ax∗ = cx∗ − y ∗ b.

Or une condition nécessaire et suffisante d’optimalité de deux solutions réalisables x∗ et y ∗ res-


pectivement de (P ) et (D) est cx∗ − y ∗ b = 0. Ce qui est équivalent à α + β = 0. Comme α et β
sont non négatifs, cette condition est encore équivalente à
{ { ∗
α=0 y (Ax∗ − b) = 0
⇐⇒
β=0 (c − y ∗ A)x∗ = 0

D’où le théorème. 

Si ai et Aj désignent respectivement les matrices lignes et colonnes correspondant à la ligne i


et la colonne j de A, on a

m
y(Ax − b) = 0 ⇔ yi (ai x − bi ) = 0 ⇔ yi (ai x − bi ) = 0 ∀i = 1, ..., m,
i=1

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.

Théorème 7.3.2 (théorème fort des écarts complémentaires)


Une solution réalisable x de (P ) est une solution optimale de (P ) si et seulement si il existe y une
solution réalisable du dual telle que
{
yAj = cj si xj > 0 ∀ j
yi = 0 si ai x > bi ∀ i

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

Montrons que le point x = (1, 1)T est une solution optimale.


On vérifie facilement que ce point est une solution réalisable.
donc d’après le théorème des écarts complémentaires x est solution optimale si et seulement si
il existe une solution réalisable y du dual telle que


 (3x1 + x2 − 4)y1 = 0

(x1 + 4x2 − 5)y2 = 0

 (3y1 + y2 − 1)x1 = 0

(y1 + 4y2 − 1)x2 = 0

En remplaçant x par sa valeur dans ce système, on obtient :


{
3y1 + y2 = 1
y1 + 4y2 = 1
3 2 T
Soit alors le point y = ( 11 , 11 ) . Cette solution est bien réalisable du dual par suite x est solution
optimale.
b) Considérons le programme linéaire ci-dessous.

min
 Z = 2x1 + 3x2

 2x1 + x2 ≥ 3

2x1 − x2 ≥ 5

 x1 + 4x2 ≥ 6

x1 , x 2 ≥ 0

i) Le point x = (3, 1)T est-il une solution optimale ?


ii) Le point x = ( 26 , 7 )T est-il une solution optimale ?
9 9
i) 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

y3 = 0

 y2 = 1

y2 = −3
Ce qui n’est pas. En conclusion le point x n’est pas solution optimale.

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.

7.4 Algorithme dual Simplexe


On considère le programme linéaire :
Z ∗ ={min Z = cx
Ax = b (P L)
x≥0

A ∈ Mm,n (R) ; c ∈ M1,n (R) et b ∈ Mm,1 (R)


On suppose que rg(A) = m < n.
On a la définition suivante :

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.

L’algorithme dual simplexe contient deux phases :


Phase 1 : Procédure d’initialisation
On détermine une première base duale réalisable. Si cette procédure échoue, cela signifie qu’une
telle base n’existe pas. C’est-à-dire que le polyèdre de la solution réalisable du dual est, vide, et
donc (P.L) est impossible soit non borné Z ∗ = −∞.
Phase 2 : Procédure itérative
1) On considère B une base, on note I (resp. J) l’ensemble des indices des variables de base
(resp. hors-base). On écrit le programme linéaire sous forme canonique par rapport à B. On dispose
donc A c = c − cB B −1 A et bb = B −1 b.
b = B −1 A, b
On suppose que B est dual réalisable.

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

bbl = min[bbi : i ∈ I, bbi < 0].


i

La variable correspondante xl sort de la base.


b) Test d’entrée : Soit k ∈ J telle que
[ ]
ĉk
= min ĉj : j ∈ J, âlj < 0 .
âlk âlj

La variable xk rentre dans la base.


c) On pose I := I − l + k et J := J − k + l ; aller à 1).

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.

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 2 -1 -6 ← x3 1 -2 -1 6
TS1 x5 -1 -3 1 -5 TS2 x5 -2 -1 1 -11 ←
8 6 2 0 6 10 2 -12
↑ ↑

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
.

Phase 1 : Initialisation de l’algorithme dual simplexe : Méthode de la contrainte


artificielle
Cette méthode est nécessaire dans le cas où il existe B une base initiale mais qui n’est pas
duale réalisable. On considère pour cela un problème artificiel (Pa ), créé de la façon suivante.
Soit le problème (P L) mis sous forme canonique par rapport à la base B. A ce problème on
ajoute une contrainte supplémentaire appelée contrainte artificielle :

v+ xj = M
j∈K

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

 Z = 6x1 + 3x2 − 2x3


min
 x1 + x2 + x3 ≥ 6
2x1 − 2x3 ≥ 9

x1 , x2 , x3 ≥ 0.
La forme standard est :
 Z = 6x1 + 3x2 − 2x3
min
 x1 + x2 + x3 − x4 = 6
2x1 − 2x3 − x5 = 9

xi ≥ 0, i = 1, · · · , 5.

75
L’ensemble I = {4, 5} est une base évidente. La forme canonique par rapport à I est :

 Z = 6x1 + 3x2 − 2x3


min
 −x1 − x2 − x3 + x4 = −6
−2x1 + 2x3 + x5 = −9

xi ≥ 0, i = 1, · · · , 5
On n’ a pas ĉ ≥ 0 donc I n’est pas une base duale réalisable.
On va utiliser la méthode de la contrainte artificielle.
Ici on a K = {x3 }. Donc le programme auxiliaire est :

 Z = 6x1 + 3x2 − 2x3


min

 −x1 − x2 − x3 + x4 = −6

−2x1 + 2x3 + x5 = −9

 x3 + v = M

v, xi ≥ 0, i = 1, · · · , 5.

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.

7.5 Convergence de l’algorithme dual Simplexe


L’algorithme dual Simplexe converge si à chaque itération les coefficients b cj , sont strictement
positifs pour tout j ∈ J.
Par contre s’il existe j ∈ J tel que b
cj = 0, il y a dégénérescence du problème dual. La fonction-
objectif peut ne pas varier lors d’une itération, et un cyclage peut se produire. Pour éliminer un
éventuel cyclage, et assurer la convergence finie de l’algorithme dual simplexe, on peut utiliser les
règles de Bland ci-dessous.
Règles de Bland
Test de sortie : La variable sortante est xl qui vérifie :
[ ]
l = min i ∈ I : bbi < 0 .

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

Vous aimerez peut-être aussi