Vous êtes sur la page 1sur 46

L3 MIASHS Optimisation : programmation linéaire

Roland Becker

18 décembre 2020

Table des matières


1 Espace euclidien et comparaison entre vecteurs 3
1.1 Espace vectoriel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Produit scalaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Applications linéaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Comparaison entre vecteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5 Questions de cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.6 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Problèmes d’optimisation 6
2.1 Programmation linéaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Questions de cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3 Résolution graphique 12
3.1 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Notions géométriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3 Questions de cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4 Problème primal et dual 14


4.1 Problèmes canoniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.2 A quoi sert le problème dual ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.3 Problème standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.4 Tableau primal-dual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.5 Questions de cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.6 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

5 Théorie de dualité 18
5.1 Interprétation du problème dual . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.2 Questions de cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.3 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

6 Élimination de Gauss par tableau 27


6.1 Questions de cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.2 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

1
7 Le tableau de la méthode du Simplexe 30
7.1 Questions de cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
7.2 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

8 L’algorithme du Simplexe 33
8.1 Règle de pivot (maximisation) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
8.2 Questions de cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
8.3 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

9 Les deux phases de la méthode de simplexe 36


9.1 Règle de pivot phase I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
9.2 Cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
9.3 Complexité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
9.4 Questions de cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
9.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

10 Le programme linéaire général 40


10.1 La méthode du simplexe pour le problème général . . . . . . . . . . . . . . . . . . 41
10.2 Questions de cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
10.3 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

11 Jeux matriciels 42
11.1 Questions de cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
11.2 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

12 Valeurs absolues 45
12.1 Questions de cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
12.2 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

2
1 Espace euclidien et comparaison entre vecteurs
1.1 Espace vectoriel
 
x1
 x2  
x ∈ Rn signifie que x =   = x1 x2 . . . xn T avec xi ∈ R pour 1 6 i 6 n, souvent

. . .
xn
appelé vecteur.
Rn est un espace vectoriel (de dimension n)
* On peut additionner deux vecteurs : pour a, b ∈ Rn on a a + b ∈ Rn .
* On peut multiplier un vecteur par un scalaire (un scalaire est un nombre réel) :
pour a ∈ Rn , λ ∈ R, alors λa ∈ Rn .
* Les règles de calcul usuelles sont valides.
* Une base est un ensemble de vecteur (e1 , . . . , en ) libre et générateur, ce qui équi-
vaut à dire que n’importeP quel vecteur x ∈ Rn s’écrit de façon unique comme une
combinaison linéaire x = n i
i=1 xi e avec des coefficients xi ∈ R. Nous allons prin-
cipalement utiliser la base canonique eij = δij , c’ést à dire eij = 0 pour i 6= j et
eii = 1.
* x ∈ Rn , on utiliser parfois des parenthèses pour écrire l’élément numéro i : (a)i =
ai .

1.2 Produit scalaire

Rn est l’espace euclidien avec le produit scalaire euclidien.


* Le produit scalaire est défini par :

X
n
n
a, b ∈ R : a · b = ha, bi := ai b i .
i=1

Il permet de mesurer des angles, par exemple ha, bi = 0, si et seulement si a et b


sont orthogonaux.

* La norme associée est kak := a · a. C’est la distance euclidienne, qui permet de
mesurer des longueurs.
* Nous avons l’identité remarquable

ka + bk2 = kak2 + 2a · b + kbk2

Si les deux vecteurs a, b sont orthogonaux, nous obtenons le théorème de Pytha-


gore : ka + bk2 = kak2 + kbk2 (faire un dessin pour n = 2).

3
1.3 Applications linéaires

Une application f : Rn → Rm est linéaire si et seulement si


* f(x + y) = f(x) + f(y) ∀x, y ∈ Rn
* f(λx) = λf(x) ∀x ∈ Rn , ∀λ ∈ R

Par exemple, si l’on fixe a ∈ R l’application x 7→ x · a est linéaire.

* Une matrice A ∈ Rm×n (= Mm,n (R)) est un tableau de nombres rééls A =


(Aij )16i6m,16j6n .
. Soient A ∈ Rm×n et B ∈ Rp×q . Si et seulement si n = p on peut définir une
multiplication qui donnera une matrice C ∈ Rm×q par

X
n
Cij = Aik Bkj (1.1)
k=1

Cette multiplication vérifie les règles de calcul attendues d’une multiplication.


Mais, elle n’est pas commutative : en général AB 6= BA pour A, B ∈ Rn×n .
. La transposition d’une matrice A ∈ Rm×n est la matrice AT ∈ Rn×m définie
par
ATij = Aji . (1.2)

La transposition vérifie des règles de calcul comme (A + B)T = AT + BT et


(AB)T = BT AT .
. Si A ∈ Rm×n et m = 1 on peut considérer A comme un vecteur. Inversement,
on peut considérer un vecteur x ∈ Rn comme une matrice de Rn×1 . On a alors
avec c ∈ Rn
X
n
cT x = ck xk = c · x. (1.3)
k=1

. Les matrices et les applications linéaire sont fortement liées. Pour une matrice
A ∈ Rm×n donnée, x 7→ Ax est une application linéaire de Rn dans Rm (et
cela marche aussi dans l’autre sens : une application linéaire est forcément
représentée par une matrice).

1.4 Comparaison entre vecteurs


Il est très utile, d’étendre la signification des signes d’inégalités aux vecteurs.

Définition 1.1. Soit x ∈ Rn . On définit la négativité d’un vecteur.

x60 :⇔ xj 6 0 ∀j ∈ J1, nK. (1.4)

De façon similaire, on définit x < 0, x > 0, x > 0 et pour x, y ∈ Rn

x6y :⇔ xi 6 yi ∀i ∈ J1, nK.

Attention, contrairement au cas des nombres réels (scalaires), on ne peut pas toujours comparer deux
vecteurs !

4
Pour une matrice A ∈ Rm×n on définit

A>0 :⇔ Aij > 0 ∀1 6 i 6 m, ∀1 6 j 6 n, (1.5)

et de manière similaire A > 0, A > B etc. Attention : il y a au moins une autre signification du terme
« positif » pour les matrices...

1.5 Questions de cours

Question de cours 1.1 (Espace vectoriel)


1. Quel est la signification du vecteur nul 0 = 0Rn ∈ Rn ?
2. Soit a ∈ Rn . Que signifie le vecteur −a ?
3. Rappeler l’associativité, la commutativité, la distributivité des opérations de calcul (ad-
dition et multiplication par un scalaire).

Question de cours 1.2 (Espace euclidien)


1. Démontrer (de façon détaillée) l’identité remarquable pour a, b ∈ Rn

ka − bk2 = kak2 − 2aT b + kbk2 (1.6)

2. Démontrer (de façon détaillée) l’identité remarquable pour a, b ∈ Rn

kak2 − kbk2 = (a + b) · (a − b). (1.7)

Question de cours 1.3 (Comparaison vecteurs)


1. Démontrer que pour a, b ∈ Rn

a>b ⇔ (a − b) > 0. (1.8)

2. Donner un exemple de a, b ∈ R2 , a 6= b tel ni a 6 b ni a > b.


3. Soit a, b ∈ Rn avec a > 0 et > 0. Alors

a·b=0 ⇒ ai = 0 ou bi = 0 ∀i ∈ J1, nK

1.6 Exercices

Exercise 1.1
1. Démontrer que pour A, B ∈ Rm×n , λ ∈R

λ (A + B) = λA + λB, (A + B)T = BT + AT (1.9)

2. Démontrer que pour A ∈ Rm×n , B ∈ Rn×q , λ, µ ∈ R

(λA) (µB) = λµ (AB) , (AB)T = BT AT (1.10)

5
3. Démontrer que pour A ∈ Rm×n , x ∈ Rn , y ∈ Rm

yT Ax = xT AT y (1.11)

Exercise 1.2
Soit x, y, z ∈ Rn et A ∈ Rm×n , λ ∈ R. Montrer que
1. λ < 0 et x > y impliquent λx 6 λy
2. x 6 y et y 6 z impliquent x 6 z.
3. A > 0 et y > x impliquent Ay > Ax.
4. x > y et z > 0 impliquent x · z > y · z.
5. Soit x > 0, y > 0. Si xT y = 0, on a pour tout i ∈ J1, nK xi = 0 ou yi = 0.

2 Problèmes d’optimisation
Pour commencer on rappelle la définition de la borne inférieure et de la borne supérieure. Il
est pratique de le considérer comme un nombre de la droite réelle achevée R := R ∪ {−∞, +∞}.

Définition 2.1. Soit A ⊂ R.




 +∞ A=∅
inf A := −∞ A non-minoré (2.1)


plus grand minorant sinon

« plus grand minorant » veut dire : pour tout a ∈ A on a inf A 6 a et pour tout ε > 0 il existe
aε ∈ A tel que aε − ε < inf A.
Si inf A ∈ A, on dit que la borne inférieure est atteinte.

Lemme 2.1. Soit A ⊂ R, A 6= ∅. Alors il existe une suite (an )n∈N ⊂ A telle que inf A =
limn→∞ an .

Example 2.1.

A = [0, 1], inf A = 0, (inf A ∈ A),


A =]0, 1], inf A = 0, (inf A 6∈ A),
A =] − ∞, 0], inf A = −∞, (inf A 6∈ A).

Un problème d’optimisation est ou une minimisation ou une maximisation pour la variable


x ∈ Rn , n > 1 :

inf {f(x) : x ∈ K} ou inf f(x), sup {f(x) : x ∈ K} ou sup f(x). (2.2)


x∈K x∈K

Ici, K ⊂ Rn est un ensemble et f : K → R la fonction coût (minimisation) ou la fonction


gain (maximisation). Par une simple manipulation, il est suffisant de considérer uniquement
de problème de minimisation (ou de maximisation). Parfois on écrit « min » à la place de « inf »,
mais cela n’est justifié que si l’on sait que l’inf est atteint.

6
Définition 2.2. Le problème est admissible si K 6= ∅, sinon il est non-admissible. On suppose
le problème admissible. Alors x∗ ∈ K est une solution (globale) pour la minimisation si et
seulement si

f(x∗ ) 6 f(x) pour tout x ∈ K.

Souvent, on se restreint à trouver une solution locale. x∗ ∈ K est une solution locale pour la
minimisation si et seulement si il existe η > 0 tel que

x ∈ K et kx − x∗ k 6 η ⇒ f(x∗ ) 6 f(x).

Une solution globale est certainement une solution locale.


On appelle
V ∗ = inf {f(x) : x ∈ K} (2.3)
la valeur optimale du problème. Si f(x∗ ) = V ∗ , x∗ est une solution globale et l’on écrit aussi

x∗ ∈ argmin {f(x) : x ∈ K} = {x ∈ K : f(x) = V ∗ } . (2.4)

Example 2.2. 1. Soit n = 1 et K = R. Le problème de minimisation de f(x) = 1 sur K a tous les


nombres réels comme solutions globales (ainsi pour la maximisation).
2. Soit n = 1 et K = R. Le problème de minimisation de f(x) = 1 + x sur K n’a pas de solution
globale, ni de solution locale (ainsi pour la maximisation).
3. Soit n = 1 et K = R+ . Le problème de minimisation de f(x) = 1 + x sur K admet une solution
globale unique x∗ = 0 avec valeur optimale V ∗ = 1.
4. Soit n = 1 et K = R. Le problème de minimisation de f(x) = x2 sur K a comme unique solutions
globale x∗ = 0 avec valeur optimale V ∗ = 0 (que se passe-t-il pour la maximisation ?).
5. Soit n = 1 et K = R. Le problème de minimisation de f(x) = (x2 − 1)2 sur K a deux solutions
globale avec valeur optimale V ∗ = 0 (lesquelles ?).

Définition 2.3. Si K = Rn on parle de optimisation sans contraintes. Si

K = {x ∈ Rn : g(x) = 0}

avec une fonction g : Rn → Rm , m > 1, on a des contraintes d’égalités.


Si

K = {x ∈ Rn : h(x) 6 0}

avec une fonction h : Rn → Rk , k > 1, il s’agit de contraintes d’inégalités.


Plus généralement, si

K = {x ∈ Rn : g(x) = 0 et h(x) 6 0}

nous avons des contraintes d’égalités et d’inégalités. Si K ⊂ N on parle d’optimisation en


nombres entiers, et si K = {0, 1} de variables binaires.

7
Remarque 2.1. Si les fonctions sont dérivables, on utilise le calcul différentiel. Par exemple, un problème
sans contrainte en n = 1 peut être résolu par le tableau de variations. Cela revient à trouver un x ∈ R
tel que f 0 (x) = 0 (et f 00 (x) > 0 pour un problème de minimisation).
Pour n > 1, la situation est assez similaire, mais on utilise le gradient ∇f(x) et la matrice hessienne
D2 f(x).

Remarque 2.2. Pour un problème de minimisation sous contrainte (disons d’égalité), un outil de pre-
mière importance est le lagrangien :

L : Rn × Rm → R, L(x, y) := f(x) + yT g(x). (2.5)

Il s’avère que pour une solution x∗ ∈ Rn il existe y∗ ∈ Rm (les fonctions supposées dérivables) tel que
∇L(x∗ , y∗ ) = 0 (dans ce cas (x∗ , y∗ ) est un point stationnaire du lagrangien).

Remarque 2.3. 1. On peut toujours transformer un problème de minimisation en problème de maxi-


misation (ou vice versa) en changeant la fonction :

inf {f(x) : x ∈ K} = − sup {−f(x) : x ∈ K} .

2. Des contraintes d’égalités et d’inégalités peuvent être ramenés à des contraintes d’inégalités grâce à

g(x) = 0 ⇔ g(x) 6 0 et − g(x) 6 0.

Example 2.3. 1. Si K = J1, nK, on écrit plutôt i à la place de x et fi à la place de f(x). Le problème
de minimisation devient alors la recherche du plus petit nombre parmi les n nombres donnés. Que
signifie argmin {f(x) | x ∈ K} dans ce cas ?
2. Le n-simplexe K ⊂ Rn est définit par les inégalités

X
n
xi >0 i ∈ J1, nK, xi 6 1.
i=1

Nous avons donc n + 1 inégalités qui peuvent être exprimé comme K = {x ∈ Rn | h(x) 6 0} avec
!T
X
n
h(x) := −x1 , . . . , −xn , xi − 1 .
i=1

Quelles sont les solutions de inf kxk ?


x∈K

2.1 Programmation linéaire


Définition 2.4. Un programme linéaire est un problème d’optimisation avec contraintes d’inégalités
avec f linéaire et h affine.

Une fonction f : Rn → R est linéaire si et seulement si il existe c ∈ Rn tel que f(x) = cT x =


c · x. Une fonction h : Rn → Rm est affine si et seulement si il existe b ∈ Rm et A ∈ Rm×n tels
que h(x) = Ax − b.

Example 2.4. 1. Supposons que nous produisant de types de légumes : aubergines et courgettes.
Soit x1 la quantité d’aubergine et x2 la quantité de courgette à produire (en kg). Les prix à la vente
sont de 8 et de 3 (en e /kg). Ensuite nous avons des contraintes de temps de travail (les aubergines
nécessitent 2 heures de travail, les courgettes 3 h et nous disposons de 12 heures par jour), de
surface (les aubergines nécessitent 2dm2 , les courgettes 1dm2 et nous disposons de 5dm2 ), et

8
d’arrosage (les aubergines nécessitent 3l , les courgettes 1l et nous disposons de 6l par jour). Cela
donne le programme linéaire suivant.

 
8x1 + 3x2 → sup (C1 ) 2x1 + 3x2 6 12,
s.c. (C2 ) 2x1 + x2 6 5,
x1 > 0, x2 > 0, 

(C3 ) 3x1 + x2 6 6.

2. Supposons que nous voulons acheter trois boissons : jus d’orange (y1 ), lait (y2 ) et jus de tomate
(y3 ). Les prix sont e 12/l, e 5/l et e 7/l. Il nous faut un apport d’au moins 8 g de proteine et 3 g de
vitamine. Les apports de proteines pour les trois boissons sont 2, 2 et 4, et les apports de vitamines
sont de 3, 1 et 1. On trouve alors le problème suivant.
 
12y1 + 5y2 + 6y3 → inf (C1 ) 2y1 + 2y2 + 3y3 > 8,
s.c.
y1 > 0, y2 > 0, y3 > 0 (C2 ) 3y1 + y2 + y3 > 3.

2.2 Questions de cours

Question de cours 2.1 (inf)


1. Soit A ⊂ R non-vide et minoré. On cherche à montrer que inf A est unique. Pour cela
soient a1 < a2 tels que pour i = 1, 2

∀a ∈ A : ai 6 a et ∀ε > 0∃a ∈ A : a − ε < ai .

Trouver une contradiction.


2. Démontrer le lemme 2.1. On peut prendre ε = 1/n...

Question de cours 2.2 (Optimisation)


Trouver une fonction f : R → R telle que inf {f(x) | x ∈ R} admet
i) une infinité de solutions globales.
ii) une infinité de solutions locales, mais pas de solution globale.

Question de cours 2.3 (Optimisation)


Démontrer de façon rigoureuses les examples 2.2.

Question de cours 2.4 (Programmation linéaire)


Écrire les exemples 2.4 de programmation linéaire sous forme matricielle.
 
sup cT x x > 0, Ax 6 b , inf bT y y > 0, AT y > c .

2.3 Exercices

Exercise 2.1
Formaliser le problème de la maximisation de la somme de deux nombres positives sous
la contrainte que la différences des nombres soit supérieur à quatre et le premier nombre soit
inférieur à dix. Tracer l’ensemble admissible. Résoudre ce problème.

9
Exercise 2.2
Résoudre le problème

min x21 + x22 | x1 + x2 = 1 .

Exercise 2.3
Résoudre le problème

max x1 + x2 | x21 + x22 = 1 .

Exercise 2.4 (Plan de régime alimentaire)

F1 , F2 , . . . , Fm : différents types d’aliments


N1 , N2 , . . . , Nn : différents types de substances nutritives
b1 , b2 , . . . , bm : prix des aliments
c1 , c2 , . . . , cn : besoin en nutriment
y1 , y2 , . . . , ym : nombre d’unité d’aliment
aij (1 6 m, 1 6 j 6 n) : apport de l’aliment i en nutriment j

y1 > 0, y2 > 0, . . . ym > 0


a1j y1 + a2j y2 + · · · + amj ym > cj

Minimiser le coût : b1 y1 + b2 y2 + · · · + bm ym

Exprimer ce problème sous forme de programme linéaire inf bT y y ∈ L

Exercise 2.5 (Problème de production)

A1 , A2 , . . . , An : différentes activités d’une entreprise (produits)


R1 , R2 , . . . , Rm : différentes ressources (matière première, travail,. . . )
b1 , b2 , . . . , bm : quantité disponible pour chaque ressource
c1 , c2 , . . . , cn : gain pour chaque activité (prix)
x1 , x2 , . . . , xn : quantité à mettre en oeuvre pour chaque activité
aij (1 6 m, 1 6 j 6 n) : quantité de Ri nécessaire pour l’activité Aj

x1 > 0, x2 > 0, . . . xn > 0


ai1 x1 + ai2 x2 + · · · + ain xn 6 bi (1 6 i 6 m)

Maximisier le gain : c1 x1 + c2 x2 + · · · + cn xn

Exprimer ce problème comme un programme linéaire sup cT x x ∈ K .

10
Exercise 2.6 (Problème de transport)
On considère l’alimentation en électricité de quatre villes par des centrales d’électricité. La
situation est résumée par la figure 2.2, où les coûts sont aussi représentés sous forme d’un
graphe.

F IGURE 2.2: Les coûts de transport correspondent à la production de 1GWh sous forme de
tableau et sous forme de graphe.

On peut formuler le problème comme suit

P1 , P2 , . . . , PI : producteurs (centrale d’électricité)


M1 , M2 , . . . , MJ : consommateurs (cités)
zij : quantité à transporter de Pi à Mj (1 6 i 6 I, 1 6 j 6 J)
pij : coût de transporter de Pi à Mj (1 6 i 6 I, 1 6 j 6 J)
s1 , s2 , . . . , sI : production maximale de Pi
r1 , r2 , . . . , rJ : quantité nécessaire à Mj

zij > 0 (1 6 i 6 I, 1 6 j 6 J)
X
J
zij 6 si , (1 6 i 6 I)
j=1

X
I
zij > rj , (1 6 j 6 J)
i=1
X
I X
J
Minimiser le coût : pij zij
i=1 j=1

Écrire ce problème sous forme canonique min bT y y > 0, AT y > c en prenant y comme les
lignes de la matrice z.

Exercise 2.7 (Distribution de travail)

11
P1 , P2 , . . . , PI : personnes
T1 , T2 , . . . , TJ : tâches de travail
pij : pourcentage de temps de Pi consacré à Tj (1 6 i 6 I, 1 6 j 6 J)
gij : gain obtenu par Pi travaillant sur Tj (1 6 i 6 I, 1 6 j 6 J)

pij > 0 (1 6 i 6 I, 1 6 j 6 J)
X
J
pij 6 1, (1 6 i 6 I)
j=1

X
I
pij 6 1, (1 6 j 6 J)
i=1
X
I X
J
Maximiser le gain : gij pij
i=1 j=1

Écrire ce problème sous forme canonique max cT x x > 0, Ax 6 b .

3 Résolution graphique
3.1 Exemple
On considère l’exemple 2.4. L’ensemble admissible est montré dans la figure 3.3.

F IGURE 3.3: Representation graphique de l’ensemble admissible de l’exemple.

On peut facilement voir que si l’ensemble des solutions est non-vide, il contient des som-
mets et un des sommets est une solution optimale (voir exercice). Pour résoudre notre pro-
blème, on peut alors déterminer tous les sommets et comparer les valeurs de la fonction gain à
maximiser en ces points.

12
Ici, nous avons cinq sommets. A priori, un sommet est défini par l’intersection de deux
droites définissant les inégalités et il y a donc 52 = 2×1
5×4
= 10 possibilités, mais seulement cinq
parmi ces points sont admissible. On a donc

i xi cT xi
1 (0.75, 3.5) 16.5
2 (0, 4) 12
⇒ x∗ = (1, 3), V ∗ = 17.
3 (1, 3) 17
4 (2, 0) 16
5 (0, 0) 0

TABLE 2: Sommets de K, leurs valeurs et conclusion.

3.2 Notions géométriques

Définition 3.1. Soit a, b ∈ Rn . On appelle segment (intervalle généralisé) l’ensemble

[a, b] := {(1 − t)a + tb | 0 6 t 6 1} .

Un ensemble K ⊂ Rn est convexe si et seulement si

a, b ∈ K ⇒ [a, b] ∈ K. (3.1)

Soit K ⊂ Rn un ensemble convexe. Une fonction f : K → R est convexe si et seulement si pour


tout a, b ∈ K et 0 6 t 6 1 on a

f((1 − t)a + tb) 6 (1 − t)f(a) + tf(b). (3.2)

Example 3.1. • Un segment est convexe.


• Soit a ∈ Rn \ 0 et α ∈ R. L’hyperplan (affine) associé à a et α

H = x ∈ Rn aT x = α .

est convexe. En général un hyperplan de Rn avec α = 0 est un sous-espace vectoriel de


dimension n − 1. Pour n = 2, il s’agit d’une droite.
• Les demi-espaces associé à a et α
 
H+ = x ∈ Rn aT x 6 α , H− = x ∈ Rn aT x > α .

et

sont également convexes.


• Soit r > 0 et x0 ∈ Rn . La boule fermé

Br (x0 ) := {x ∈ Rn | kx − x0 k 6 r}

est convexe grâce à l’inégalité triangulaire. Mais la sphère

Sr (x0 ) := {x ∈ Rn | kx − x0 k = r}

ne l’est pas.

13
3.3 Questions de cours

Question de cours 3.1


Démontrer les assertions suivantes.
1. Un hyperplan est convexe.
2. Un demi-espace est convexe.
3. L’intersection de deux convexe est convexe.
4. L’intersection d’un nombre fini de concexes est convexe.
5. L’ensemble admissible d’un programme linéaire est convexe.
6. Une fonction affine est convexe.

3.4 Exercices

Exercise 3.1
On considère le problème suivant : Minimiser y1 + y2 sous contraintes

y1 + 2y2 > 3, 2y1 + y2 > 5, y2 > 0

1. Tracer l’ensemble admissible.


2. Résoudre le problème.

Exercise 3.2
Soit a un nombre réel. Donner la valeur optimale du problème de maximiser ax1 + x2 sous
contraintes

x1 > 0, x2 > 0, x1 + 2x2 6 4, 4x1 + 2x2 6 12, −x1 + x2 6 1,

en fonction de a.

4 Problème primal et dual


4.1 Problèmes canoniques
Le programme linéaire canonique de maximisation est :

Maximiser c1 x1 + c2 x2 + · · · + cn xn sous contraintes


x1 > 0, x2 > 0, . . . , xn > 0
a11 x1 + a12 x2 + · · · + a1n xn 6 b1
a21 x1 + a22 x2 + · · · + a2n xn 6 b2
..
.
am1 x1 + am2 x2 + · · · + amn xn 6 bm

ou plus court

sup cT x x ∈ Rn ,

x > 0 et Ax 6 b . (4.1)

14
Le programme linéaire canonique de minimisation est :

Minimiser b 1 y1 + b 2 y2 + · · · + b m ym
sous contraintes
y1 > 0, y2 > 0, . . . , ym > 0
a11 y1 + a21 y2 + · · · + am1 ym > c1
a12 y1 + a22 y2 + · · · + am2 ym > c2
..
.
a1n y1 + a2n y2 + · · · + amn ym > cn

ou plus court

inf bT y y ∈ Rm , AT y > c .

y > 0 et (4.2)

Si un problème de maximisation/minimisation est donné, on l’appèle le problème primal


et on lui associe le problème de minimisation/maximisation correspondant, que l’on appelle
problème dual. On a donc autant de variables dans le problème dual que de contraintes dans
le problème primal (et vice versa).

Proposition 4.1. Pour un problème linéaire, exactement une des conditions suivantes est satisfaite :
1. L’ensemble admissible est vide (problème non-admissible).
2. L’ensemble admissible est non-vide (problème admissible) et la fonctionnelle est non-bornée sur
l’ensemble admissible (problème non-borné).
3. L’ensemble admissible est non-vide et la fonctionnelle est bornée sur l’ensemble admissible (pro-
blème régulier).

Clairement, seulement le troisième cas nous intéresse. Les deux autres cas arrivent quand
le problème est mal posé. Mais il est en général impossible de savoir a priori si un programme
linéaire donné est régulier ou pas.
On définit les ensembles admissibles pour la maximisation et pour la minimisation :

K := {x ∈ Rn : x > 0 et Ax 6 b} , L := y ∈ Rm : y > 0 et AT y > c (4.3)

Une première remarque est fondamentale.

Remarque 4.1. Nous avons :


• Pour le problème de maximisation
. x = 0 est admissible si et seulement si b > 0
. si b > 0 et c 6 0, alors x = 0 est optimal
• Pour le problème de minimisation
. y = 0 est admissible si et seulement si c 6 0
. si b > 0 et c 6 0, alors y = 0 est optimal

Voici deux autres particularités de la programmation linéaire.

Proposition 4.2. Si x∗ ∈ K est une solution locale pour la maximisation, x∗ est une solution globale. De
plus, si x(1) et x(2) sont deux solutions, alors tout le segment [x(1) , x(2) ] = (1 − t)x(1) + tx(2) : 0 6 t 6 1
est solution (l’ensemble des solutions est convexe).

15
4.2 A quoi sert le problème dual ?
Nous revenons sur l’exemple de l’introduction.

8x1 + 3x2 → sup


(C1 ) 2x1 + 3x2 6 12
(C2 ) 2x1 + x2 6 5
(C3 ) 3x1 + x2 6 6
x1 > 0, x2 > 0

Clairement, tout vecteur admissible donne une borne inférieure de la valeur optimale. Par
exemple, x1 = 1 et x2 = 3 est admissible et par conséquent on a V ∗ > 8 + 9 = 17.
On va maintenant essayer de trouver des bornes supérieures en manipulant les contraintes
de trois façon différentes pour faire aparaître la fonction à maximiser :

4 × (C1 ) : 8x1 + 3x2 6 4 × (2x1 + 3x2 ) 6 4 × 12 = 48


4 × (C2 ) : 8x1 + 3x2 6 4 × (2x1 + x2 ) 6 4 × 5 = 20
(C2 ) + 2 × (C3 ) : 8x1 + 3x2 6 (2x1 + x2 ) + 2 × (3x1 + x2 ) 6 5 + 2 × 6 = 17

Clairement, la dernière ligne donne la meilleure (plus petite) borne supérieure.


On peut généraliser cette idée de la façon suivante pour le problème standard.

Si x∈K et AT y > c, y>0


on obtient une borne supérieuere :
c · x 6 AT y · x = y · Ax 6 y · b ⇒ V∗ 6 y · b

Et donc pour trouver la meilleure (plus petite) borne supérieure on est amené à considerer le
problème suivant :

b · y → inf
(D)
AT y > c, y > 0

Mais cela est le problème dual !

4.3 Problème standard


Une autre reformulation est parfois utile. On cherche à avoir comme seules inégalités des
conditions de positivité. Cela est possible en introduisant des variables auxiliaires (variables
d’écarts). Pour le problème de max/min on écrit
 

 cT x → sup 
 bT y → inf
Ax + s = b AT y = c + t (4.4)

 

x > 0, s>0 y > 0, t>0

4.4 Tableau primal-dual


Supposons que x = 0 et y = 0. Pour les variables d’écart on aura donc s = b et t = −c.
On rajoute la valeur du problème dans la dernière case de la dernière ligne (ou de la dernière
colonne). Cela donne le tableau 3.

16
t1 t2 ··· tn Pour l’exemple 2.4 :
s1 a11 a12 ··· a1n b1 t1 t2
s2 a21 a22 ··· a2n b2 s1 2 3 12
.. .. .. .. .. s2 2 1 5
. . . . .
sm am1 am2 ··· amn bm s3 3 1 6
−c1 −c2 ··· −cn 0 −8 −3 0

TABLE 3: Tableau primal-dual.

4.5 Questions de cours

Question de cours 4.1 (Démonstration de la proposition 4.2)


1. Rappeler la définition d’une solution locale pour un programme linéaire.
2. Soit x ∈ K \ {x∗ } quelconque. Soit pour 0 6 t 6 1 xt := (1 − t)x∗ + tx. Pour η > 0 donné,
on peut trouver t > 0 tel que kx∗ − xt k 6 η.
3. Montrer que xt ∈ K.
4. Utiliser f(x∗ ) > f(xt ) pour montrer que f(x∗ ) > f(x).
5. Conclure.
6. Soit x(1) , x(2) deux solutions. Montrer que pour xt := (1 − t)x(1) + tx(2) on a f(x(1) ) =
f(xt ) = f(x(2) ).
7. Montrer que xt ∈ K.
8. Conclure.

4.6 Exercices

Exercise 4.1
1. Transformer le problème suivant en forme canonique. Maximiser x1 + 2x2 + 3x3 + 4x4 + 5
sous contraintes
x1 > 0, x3 > 0, x4 > 0
4x1 + 3x2 + 2x3 + x4 6 10
x1 − x3 + x4 = 2
−x1 + x2 + x3 + x4 > 1.
2. Ecrire le problème dans un tableau primal-dual.
3. Formuler le problème dual.

Exercise 4.2
On considère un problème de minimisation et on essaie d’établir la signification du pro-
blème dual suivant la sous-section 4.2.
min y1 + y2 + y3 sous contraintes
y1 > 0, y2 > 0, y3 > 0
y1 + 2y2 + 3y3 > 3
y1 − y2 > 2
y2 − y3 > 1

17
1. Utiliser y = (∗, ∗, 0) pour trouver une borne supérieure de la valeur optimale V ∗ .
2. Utiliser x = ( 13 , 23 , 1) pour trouver une borne inférieure de la valeur optimale V ∗ .
3. Utiliser x = (0, ∗, ∗) pour trouver une borne inférieure de la valeur optimale V ∗ .
4. Conclure.
5. Quelles sont les contraintes actives de la minimisation ? Que peut-on remarquer pour les
valeurs de x ?

5 Théorie de dualité
On rappelle la définition (4.3) de l’ensemble admissible pour la maximisation K et de l’en-
semble admissible pour la minimisation L. On constate que
 
Ax 6 b et y > 0 ⇒ yT Ax 6 yT b
x ∈ K et y ∈ L ⇒ ⇒ cT x 6 yT Ax 6 yT b,
AT y > c et x > 0 ⇒ xT AT y > xT c

et donc nous avons

Proposition 5.1. (Dualité faible)

x∈K et y∈L ⇒ cT x 6 yT b. (5.1)

Corollaire 5.1. Si les deux problèmes sont admissibles, les deux problèmes sont bornés.
e ∈ L vérifient cT e
x ∈ K et y
Corollaire 5.2. Si e e, alors x∗ = e
x = bT y x et y∗ = y
e sont des solutions.

Démonstration. D’après (5.1) nous avons pour x ∈ K

cT x 6 bT y
e = cT e
x,

donc e
x est solution. Pour la minimisation, ça marche pareil.

Pour aller plus loin, nous avons besoin d’un résultat géométrique.
Lemme 5.1. (Farkas) Soit b ∈ Rm et A ∈ Rm×n . Alors, soit il existe x ∈ Rn tel que x > 0 et
Ax 6 b, soit il existe y ∈ Rm tel que y > 0, AT y > 0 et yT b = −1, mais jamais les deux.
Autrement dit : avec

K := {x ∈ Rn | x > 0 et Ax 6 b} , Q := y ∈ Rm y > 0 et AT y > 0 et bT y = −1

nous avons

K=∅ ⇔ Q 6= ∅.

On remarque que si x ∈ K et y ∈ Q on obtient

Ax 6 b et y > 0 ⇒ 0 6 xT AT y = yT Ax 6 yT b = −1 ⇒ contradiction,

par conséquent on a K 6= ∅ ⇒ Q = ∅ et Q 6= ∅ ⇒ K = ∅. Pour la preuve du lemme de Farkas, il


reste alors à démontrer qu’au moins un des ensemble K, Q est non-vide. Nous le ferons en TD.
Proposition 5.2. Si exactement un des deux problèmes est non-admissible, alors l’autre problème est
non-borné.

18
Remarque 5.1. Le corollaire 5.1 et la proposition 5.2 impliquent qu’il n’y a que quatre cas possible :
1. Les deux sont non-admissibles.
2. Les deux sont admissibles et bornés.
3. La maximisation est non-admissible et la minimisation est non-borné.
4. La minimisation est non-admissible et la maximisation est non-borné.

Démonstration. On considère la maximisation comme problème primal. Supposons que la maxi-


misation n’est pas admissible et la minimisation est admissible. On veut alors démontrer que
la minimisation est non-borné.
Avec le lemme de Farkas nous avons (K = ∅ ⇒ Q 6= ∅), donc existence de y∗ ∈ Rm tel que

y∗ > 0 et AT y∗ > 0 et bT y∗ = −1.

Par hypothèse, il existe y ∈ L. Par conséquent, pour tout λ > 0 on a y + λy∗ ∈ L car

y + λy∗ > 0, AT (y + λy∗ ) = AT y + λAT y∗ > c + 0 = c.

De plus

bT (y + λy∗ ) = bT y + λbT y∗ = bT y − λ → −∞ (λ → ∞).

Donc le problème dual n’est pas borné.

Théorème 5.1. (Dualité forte) Soit x ∈ K et y ∈ L. Alors les deux sont solutions si et seule-
ment si
cT x = bT y. (5.2)

Démonstration. D’après le corollaire 5.2, il reste à démontrer que deux solutions x∗ ∈ K et y∗ ∈ L


vérifient nécessairement (5.2). Supposons que c’est faux et il existe deux solutions x∗ et y∗ qui
ne vérifie pas (5.2), c’est à dire cT x∗ < bT y∗ (par dualité faible c’est la seule possibilité). Donc
pour tout x ∈ K et y ∈ L

cT x 6 cT x∗ < bT y∗ 6 bT y.

Cela veut dire qu’il n’y a pas de solution au système d’inégalités

x > 0, y > 0, Ax 6 b, AT y > c, bT y 6 cT x, (5.3)

que l’on peut écrire comme


   
  A 0   b
x x
> 0,  0 −AT  6 −c
y y
−cT bT 0

Par le lemme de Farkas 5.2 il existe alors (p, q, z) ∈ Rm × Rn × R avec p > 0, q > 0, z > 0 et
     
 T  p p b
A 0 −c  
q > 0,  q · −c = −1.
  (5.4)
0 −A b
z z 0

19
Supposons z = 0. Alors x∗ + q > 0, y∗ + p > 0 et
A(x∗ + q) 6 b + 0 = b, AT (y∗ + p) > c + 0 = c,
ainsi que
bT y∗ − cT x∗ 6bT (y∗ + p) − cT (x∗ + q) (optimalité)
=bT y∗ − cT x∗ + bT p − cT q (linéarité)
T ∗ T ∗
=b y − c x − 1 (l’égalité dans(5.4))
Cela n’est pas possible.
q q
Si z > 0, nous avons pour x := z et y := z que x > 0, y > 0 et
1
Ax 6 b, AT > c,
bT y − cT x = − < 0,
z
ce qui contredit la dualité faible. Par conséquent, l’hypothèse est fausse et nous avons bien
cT x∗ = bT y∗ .

Remarque 5.2. Soit x ∈ K et y ∈ L. Par la dualité faible, le saut de dualité (’duality gap’) vérifie
G(x, y) := bT y − cT x > 0. (5.5)
On remarque que x∗ et y∗ sont solutions de sup cT x et de inf bT y si et seulement si (x∗ , y∗ ) est
x∈K y∈L
solution de inf G(x, y). Et par dualité forte G(x, y) = 0 si et seulement si x = x∗ et y = y∗ .
(x,y)∈K×L
Nous avons simultanément un renseignement sur les deux problèmes, et il est donc intéressant de les
considérer ensemble.
Remarque 5.3. Supposons K 6= ∅ et L 6= ∅. Alors les deux problèmes sont bornés. L’existence d’une
solution provient alors du fait que les ensemble admissible sont fermés. Une autre preuve constructive
s’obtient par l’algorithme du simplexe que nous allons développer plus tard.
Remarque 5.4. Avec la dualité forte, résoudre les deux problèmes d’optimisation revient à résoudre les
système d’inégalités et d’égalité
x > 0, y > 0, Ax 6 B, AT y > c, cT x = bT y.
Nous avons donc transformer les problèmes d’optimisation en un système d’inégalités/égalité.
Pour aller plus loi, on introduit maintenant une distinction entre les contraintes.
X
n
(x ∈ K) i tel que aij xj = bi est une contrainte active pour la maximisation,
j=1
Xm
(y ∈ L) j tel que yi aij = cj est une contrainte active pour la minimisation.
i=1

Suivant cette définition, on partage l’ensemble des indices comme


J1, mK = Iact (x) ∪ Iina (x), J1, nK = Jact (y) ∪ Jina (y)
   
   

X X
n n

Iact (x) := 1 6 i 6 m aij xj = bi , Iina (x) := 1 6 i 6 m aij xj < bi ,
 j=1   j=1 
   
 

X X

m n

Jact (y) := 1 6 j 6 n yi aij = cj , Jina (y) := 1 6 i 6 m yi aij < cj .

 
i=1 j=1

20
Théorème 5.2. (Equilibre – Complémentarité) Soit x ∈ K et y ∈ L. Alors

yi = 0 pour tout i ∈ Iina (x)
x ∈ K et y ∈ L optimaux ⇔ (5.6)
xj = 0 pour tout j ∈ Jina (y)

Remarque 5.5. Attention à l’énoncé. On peut très bien avoir deux solution optimales x∗ ∈ K, y∗ ∈ L
avec (par exemple) y∗i = 0 pour i 6∈ Iact (x∗ )...
Démonstration. Si les deux conditions à droite dans (5.6) sont satisfaites, on a
X
n X
cj xj = cj xj définition de Jact (y)
j=1 j∈Jact (y)
X X
m
!
= yi aij xj hypothèse (5.6)
j∈Jact (y) i=1

X
n X
m
!
= yi aij xj définition de Jact (y)
j=1 i=1
 
X
m X
n
= yi  aij  xj échange i − j (comme yT Ax = xT AT y)
i=1 j=1
 
X X
n
= yi  aij  xj définition de Iact (x)
i∈Iact (x) j=1
X
= yi b i hypothèse (5.6)
i∈Iact (x)
Xm
= yi b i définition de Iact (x)
i=1

Donc bT y = cT x et les deux sont solutions optimales d’après le corollaire 5.2.


Dans l’autre sens, soient x∗ et y∗ des solutions optimales. Comme x∗ et y∗ sont admissibles,
nous avons par dualité faible

cT x∗ 6 y∗ T Ax∗ 6 bT y∗ .
Par le théorème de dualité forte, nous avons dans la dernière chaine d’inégalités des égalités :

cT x∗ = y∗ T Ax∗ et y∗ T Ax∗ = y∗ T b,
ou
(AT y∗ − c) · |{z}
x∗ = 0 et y∗ · (b − Ax∗ ) = 0.
| {z } |{z} | {z }
>0 >0 >0 >0

Donc
X
m
!
T ∗ ∗
(A y − c) · x = 0 ⇒ y∗i aij − cj x∗j = 0 ∀j ∈ i ∈ J1, nK,
i=1

et si j ∈ Jina (y∗ )nous avons x∗j = 0 et le même raisonnement s’applique pour trouver que
i ∈ Iact (x ) implique y∗i = 0.

21
On peut facilement traduire le théorème d’équilibre en termes de variables d’écart. Cela
donne

Corollaire 5.3. Soit x∗ ∈ K et y∗ ∈ L.



y∗i = 0 pour tout i tel que si > 0 et
x∗ ∈ K et y∗ ∈ L optimaux ⇔ (5.7)
x∗j = 0 pour tout j tel que tj > 0

Si l’on utilise notre partage d’indice on a

AT AT
             
AIact ,Jact AIact ,Jina xJact 0 bIact Iact ,Jact Iina ,Jact yIact 0 cJact
+ = , − = .
AIina ,Jact AIina ,Jina xJina sIina bIina AT
Iact ,Jina AT
Iina ,Jina yIina tJina cJina

Avec la complémentarité nous avons pour un couple de solutions optimales x∗Jina = 0 et y∗Iina et
par conséquent

AIact ,Jact x∗Jact = bIact AT
Iact ,Jact yIact = cJact
(5.8)
AIina ,Jact x∗Jact + sIina = bIina AT ∗
Iact ,Jina yIact − tJina = cJina

Alors si on connaissait les ensemble actifs, on pourrait immédiatement trouver les solutions
optimales par résolution des premières équations de (5.8) (et on supposant que les matrices
sont inversibles). Mais Iact et Jact dépendent de x et y et on ne les connait donc pas a priori. Les
trouver est l’idée de la méthode du simplexe.

5.1 Interprétation du problème dual


Etape intermédiaire : Soit x∗ la solution du problème de maximisation. Si l’on change les
contraintes
Ax∗ 6 b en b̃ := b + ∆b,
alors comment change la solution optimale

x∗ −→ x∗ + ∆x ?

D’abord on peut partager la matrice A comme dans (5.8) tel que

AIact ,Jact x∗Jact = bIact AT ∗


Iact ,Jact yIact = cJact .

On suppose que les contraintes actives restent actives. Alors on a ∆xJina = 0 et

AIact ,Jact x∗Jact + ∆xJact = bIact + ∆bIact



=⇒ AIact ,Jact ∆xJact = ∆bIact

Le changement en valeur du problème est

cT ∆x = (cJact )T ∆xJact = (y∗Iact )T AIact ,Jact ∆x∗Jact = (y∗Iact )T ∆bIact = y∗ T ∆b.

et
cT ∆x = y∗ T ∆b et de la même façon aussi (∆y)T b = (∆c)T x∗ .
Donc :

22
1. Pour le problème de production : Une augmentation de la ressource i de ∆bi donnera lieu
a une augmentation du gain de ∆bi × y∗i , donc y∗i est le prix fictif (’shadow price’) de la
ressource i. Concrètement, si quelqu’un veut nous vendre un unité de la ressource i a un
prix inférieur à y∗i , il est intéressant d’accepter car le gain supplémentaire sera supérieur
à la dépense supplémentaire. (D’ailleurs, par complémentarité, si la contrainte n’est pas
active nous avons y∗i = 0 et cela ne sert à rien d’acheter de la ressource i en plus).
2. Pour le problème de consommation : Si on peut réduire la contrainte j de ∆cj , on aura
une réduction du coût de ∆cj × x∗j , donc x∗j est le prix de la réduction de la contrainte j.
On peut faire le même raisonnement comme dans le cas de la maximisation.

5.2 Questions de cours

Question de cours 5.1


Démontrer que x∗ et y∗ sont solutions de
 
sup cT x x ∈ K , inf bT y y ∈ L

(5.9)

si et seulement si (x∗ , y∗ ) est solution de

inf {G(x, y) | (x, y) ∈ K × L} , G(x, y) = bT y − cT x. (5.10)

5.3 Exercices

Exercise 5.1 (Théorème d’equilibre)


On déduit le théorème d’équilibre du théorème de dualité forte en notation matricielle. Soit
x∗ et y∗ des solutions des problèmes de maximisation et de minimisation canonique.
1. Rappeler le théorème de dualité forte.
2. Écrire toutes les contraintes en l’optimum à l’aide des variables d’écart s∗ et t∗ .
3. En déduire que y∗ T s∗ + x∗ T t∗ = 0.
4. En déduire le théorème d’equilibre.

Exercise 5.2
On considère
 
1 1 3
A=
1 0 1

1. Tracer l’ensemble C := Ax : x ∈ R3 et x > 0
 
1
2. Est-ce que le vecteur b = appartient-il à C ?
4
 
5 1
3. Montrer que le vecteur w = 2 minimise la distance de b à C.
1
4. Soit z := w − b. Montrer que zT A 6 0 et bT z < 0.

23
Exercise 5.3
On considère le problème de minimiser y1 + 2y2 + y3 sous les contraintes

y1 − 2y2 + y3 > 2,
−y1 + y2 + y3 > 4,
2y1 + y3 > 6,
y1 + y2 + y3 > 2,
y1 > 0, y2 > 0, y3 > 0.

1. Donner le problème dual exprimé en variables x1 , x2 , x3 , x4 .


2. Démontrer que (y1 , y2 , y3 ) = ( 32 , 0, 14 3 ) est optimal pour le problème de minimisation et
que (x1 , x2 , x3 , x4 ) = (0, 13 , 23 , 0) est optimal pour le problème (de maximisation) dual.

Exercise 5.4
On définit le Lagrangien

L(x, y) := cT x + yT b − yT Ax

1. Montrer que
x ∈ K, y ∈ L ⇒ cT x 6 L(x, y) 6 bT y. (5.11)
2. On considère maintenant
 
(P) max cT x | Ax 6 b ,
(5.12)
(P 0 ) max {f(x) | x ∈ Rn } , f(x) := min {L(x, y) | y ∈ Rm , y > 0} .

On cherche à établir l’équivalence entre (P) et (P’).


(a) On a f(x) ∈ R ∪ {−∞} pour tout x ∈ Rn .
(b) On a 
cT x si Ax 6 b,
f(x) = (5.13)
−∞ sinon.

(c) (P) n’est pas admissible si et seulement si f(x) = −∞.


(d) On suppose {x ∈ Rn | Ax 6 b} 6= ∅. Montrer que x∗ est solution de (P) si et seulement
si x∗ est solution de (P’).
3. On s’intéresse maintenant à

(Q) max cT x | Ax 6 b, x > 0 (5.14)


(a) Écrire (Q) sous la forme de (P), c’est-à-dire max cT x | Ax e ∈
e x > 0 avec A
e 6 b,
R(m+n)×n et be ∈ Rm+n .
(b) Appliquer l’équivalence entre (P) et (P’) pour démontrer que (Q) est équivalent à


(Q)
e e | x ∈ Rn , f(x)
max f(x) e := min L(x, y) + zT x | y > 0, z > 0 . (5.15)

(c) Démontrer que (Q)


e est équivalent à

(Q 0 ) max {f(x) | x ∈ Rn } , f(x) := min L(x, y) | y > 0, AT y > c . (5.16)

24
Exercise 5.5 (Lemme de Farkas (I))
On considère (avec A ∈ Rm×n et b ∈ Rm )

K = {x ∈ Rn | Ax 6 b} (5.17)

1. Écrire K sous la forme équivalente (comme dans le Lemme de Farkas 5.2)




2n
K= x∈R e
e e x > 0, Ae
ex 6 b
e (5.18)

2. Appliquer le lemme de Farkas pour obtenir un ensemble Q tel que

K=∅ ⇔ Q 6= ∅. (5.19)

Exercise 5.6 (Lemme de Farkas (II))


On considère (avec A ∈ Rm×n et b ∈ Rm )

K = {x ∈ Rn | x > 0, Ax = b} (5.21)

1. Écrire K sous la forme équivalente (comme dans le Lemme de Farkas 5.2)




e = x ∈ Rn x > 0, Ax
K e 6be (5.22)

2. Appliquer le lemme de Farkas pour obtenir un ensemble Q tel que

K=∅ ⇔ Q 6= ∅. (5.23)

Exercise 5.7 (Projection sur un cône convexe fermé)


Un cône est un ensemble C ⊂ Rn tel que

x∈C ⇒ λx ∈ C ∀λ > 0. (5.25)

C = {0} est
1.  un cône convexe
 fermé, ainsi que
tout hyperplan ou demi-espace de la forme
x ∈ Rn aT x = 0 ou x ∈ Rn aT x > 0 . Un cône non-vide fermé contient 0.
2. Dans toute la suite soit C un cône convexe fermé non-vide et x ∈ Rn donné. On s’inté-
resse au problème de minimisation

inf {kx − pk | p ∈ C} . (5.26)

Il existe au moins une solution au problème (5.26).


3. Si p est une solution de (5.26) et q ∈ C, alors qt := (1 − t)p + tq est un élément de C.
4. Si p est une solution de (5.26), alors

hp − x, q − pi > 0 ∀q ∈ C. (5.27)

(Comparer les carrés des distances entre p et x avec la distance entre qt et x.)

25
5. Soit p1 , p2 ∈ C tel que (5.27) est vérifié pour p = p1 et p = p2 . Démontrer que p2 = p1 .
Nous avons donc unicité de la solution. On peut alors définir une application PC : Rn → C
PC (x) = p, le projecteur.
6. Jusqu’ici, nous avons uniquement utilisé la convexité de C. Comme C est aussi un cône
nous avons
hp − x, qi > 0 ∀q ∈ C. (5.28)
Si C est un sous-espace nous avons même hp − x, qi = 0 ∀q ∈ C.
7. Déduire de (5.27) et de (5.28) que

hp − x, pi = 0. (5.29)

8. (Théorème de séparation) Si x 6∈ C, nous avons kp − xk =


6 0 et le plan défini par le
p−x
vecteur w := kp−xk2 sépare {x} de C dans le sens

hw, qi > 0 ∀q ∈ C, hw, xi = −1. (5.30)

Exercise 5.8 (Lemme de Farkas (démonstration))


On va démontrer le lemme de Farkas sous la forme (équivalente, voir exercice) suivante.

Lemme 5.2. (Farkas) Soit b ∈ Rm et A ∈ Rm×n . Alors soit il existe x ∈ Rn tel que x > 0 et Ax = b
ou il existe y ∈ Rm tel que AT y > 0 et yT b = −1, mais jamais les deux.
Autrement dit : avec

K := {x ∈ Rn | x > 0 et Ax = b} , Q := y ∈ Rm AT y > 0 et bT y = −1

nous avons

K=∅ ⇔ Q 6= ∅.

1. Si b = 0, nous avons K 6= ∅ et Q = ∅. Si A = 0, nous avons K 6= ∅ et Q = ∅ ou K = ∅ et


Q 6= ∅. On suppose A 6= 0 dans la suite.
2. On ne peut avoir K 6= ∅ et Q 6= ∅.
3. Démontrer le lemme pour n = m = 1.
4. (Interprétation géométrique) P
Soit ei la base canonique et ai = Aei . Donc K 6= ∅ revient à dire que b = n y=1 ai xi

P
n
avec des coefficients positifs xi > 0. Soit C := j=1 ai xi x > 0 . Démontrer que C est

un cône convexe fermé (c’est le cône engendré par les ai ). Montrer aussi que K 6= ∅ est
équivalent à b ∈ C.
5. (Interprétation géométrique, suite) 
Démontrer que y ∈ Q équivaut à dire que l’hyperplan H := v ∈ Rm yT v = 0 sépare
C de b, c’est à dire

yT z > 0 ∀z ∈ C ⇒ le cône C est d’un coté de H,


yT b < 0 ⇒ le point b est de l’autre coté de H.

6. La seule chose à démontrer est que K = Q = ∅ est impossible. Utiliser l’exercice précé-
dent pour démontrer que K = ∅ implique Q 6= ∅.

26
6 Élimination de Gauss par tableau
On considère le système linéaire


3x1 +2x2 = s1  
3 2 0
x1 −3x2 + 3x3 = s2 ⇔ Ax = s, A = 1 −3 3


5x1 +x2 + x3 = s3 5 1 1
où x sont les variables indépendantes et s les variables dépendantes. Résoudre Ax = s pour s
arbitraire (et ne pas uniquement pour des valeurs concrètes de s) revient à trouver l’inverse de
la matrice A.
L’élimination gaussienne consiste à manipuler simultanément, étape par étape, les lignes
de la matrice donnée et d’une matrice auxiliaire, initialisée par l’identité. Par exemple :
   3  1  3  1 
3 2 0 1 0 0 2 1 0 2 0 0 2 1 0 2 0 0
1 −3 3 0 1 0 →  1 −3 3  0 1 0 →  11 0 3  3 1 0 →
2 2
7 1
5 1 1 0 0 1 5 1 1 0 0 1 2 0 1 − 0 1
 3  1  3  1     214 3 9

2 1 0 2 0 0 2 1 0 2 0 0 0 1 0 10 10 − 10
−5 0 0  3 1 −3 →  1 0 0 − 3 − 1 3  → 1 0 0 − 3 − 1 3 
,
5 5 5 5 5 5
7 1 7 1 16 7 11
2 0 1 −2 0 1 2 0 1 −2 0 1 0 0 1 10 10 − 10
de sorte que (attention à la permutation)
 
−6 −2 6
1 
A−1 = 14 3 −9  .
10
16 7 −11
Nous présentons maintenant une autre façon de faire ce calcul. Les deux premières étapes de
l’élimination gaussienne consistent à échanger les deux variables x2 et s1 . En effet, en utilisant
la première équation on a
1 3
x2 = s1 − x1
2 2
Les autres équations deviennent (il faut éliminer x2 ) :
1 3
x1 −3( s1 − x1 ) + 3x3 = s2 ,
2 2
1 3
5x1 +( s1 − x1 )+ x3 = s3 .
2 2

27
Donc le système s’est transformé, en notant par s(p) et x(p) les variables indépendantes et
dépendantes à l’itération p = 0, 1, . . ., en

 3 1

 − x1 + s1 = x2


 2 2  3 1

−2 2 0 x(1) = (x1 , s1 , x3 )
11 3 (1) (1) (1) (1) 11 3
x1 − s1 + 3x3 = s2 ⇔ A x = s , A = 2 −2 3 ,

 

 2 2 7 1
1 s(1) = (x2 , s2 , s3 )

 7 1 2 2
 x1 + s1 + x3 = s3
2 2
Il sera plus aisé d’écrire cette transformation sous forme d’un tableau :
(0) (0) (0) (1) (1) (1)
x1 x2 x3 x1 x2 x3
x1 x2 x3 x1 s1 x3
(0) (1)
s1 s1 3 2 0 ⇒ s1 x2 −3/2 1/2 0 ⇒ ···
(0) (1)
s2 s2 1 −3 3 s2 s2 11/2 −3/2 3
(0) (1)
s3 s3 5 1 1 s3 s3 7/2 1/2 1

A l’étape (itération) p nous remplaçant donc une variable dépendante par une variable indé-
pendante et nous ajustons la matrice A(p) en fonction :

A(p) x(p) = s(p) ⇒ A(p+1) x(p+1) = s(p+1) .

Considérons maintenant le cas général :

X
n
aij xj = si .
j=1

On cherche à échanger xl par sk . Au lieu d’écrire le numéro d’itération, on va transformer Ax =


s en Ab
bx = b x = (x1 , . . . , xl−1 , sk , xl+1 , · · · , xn ) et b
s. On a donc b s = (s1 , . . . , sk−1 , xl , sk+1 , · · · , sn ).
La k-ième ligne s’écrit, sous l’hypothèse akl 6= 0,
X 1 X akj
akj xj + akl xl =sk ⇒ xl = sk − xj
akl akl
j6=l j6=l

Sous la condition akl 6= 0, on trouve la nouvelle ligne k par :

1 X akj
sk − xj = xl
akl akl
j6=l

Une autre ligne i 6= l s’écrit comme


 
X X 1 X akj ail X ail akj

si = aij xj + ail xl = aij xj + ail  sk − xj  = sk + aij − xj
akl akl akl akl
j6=l j6=l j6=l j6=l

Alors on trouve
1 akj ail ail akj
a
bkl = , a
bkj = − , a
bil = , a
bij = aij − (6.1)
akl akl akl akl

Écriture sous forme de tableau :

28
x1 ··· xl ··· xn x1 ··· sk ··· xn
s1 a11 ··· a1l ··· a1n s1 a11
b ··· a1l
b ··· a1n
b
.. .. .. .. .. .. .. ..
. . . . . . . .

sk ak1 ··· akl ··· akn xl a
bk1 ··· a
bkl ··· a
bkn
.. .. .. .. .. .. .. ..
. . . . . . . .
sm am1 ··· aml ··· amn sm a
bm1 ··· a
bml ··· a
bmn

Règle du rectangle pour Gauss :


• Le coefficient du pivot devient l’inverse
• On divise la ligne du pivot (hors diagonale) par −p
• On divise la colonne du pivot (hors diagonale) par p
• Pour les autres on soustrait suivant :
p ··· a 1/p · · · −a/p
.. .. −→ .. ..
. . . .
c ··· d c/p · · · d − ac/p

Pour l’exemple ci-dessus cela donne :

x1 x2 x3 x1 s1 x3 x1 s1 s3
s1 3 2 0 x2 −3/2 1/2 0 x2 −3/2 1/2 0
⇒ ⇒ ⇒
s2 1 −3 3 s2 11/2 −3/2 3 s2 -5 −3 3
s3 5 1 1 s3 7/2 1/2 1 x3 −7/2 −1/2 1
s2 s1 s3  
−6 −2 6
x2 3/10 14/10 −9/10 1 
⇒ A−1 = 10 14 3 −9 .
x1 −1/5 −3/5 3/5
16 7 −11
x3 7/10 16/10 −11/10

Remarque 6.1. Nous n’avons pas besoin de supposer que la matrice est carré. Voir Exercice 6.1.

6.1 Questions de cours

Question de cours 6.1


1. Quand peut-on échanger xi avec sj ?
2. Que se passe-t-il si la matrice carrée A n’est pas régulière ?
 
1 1
3. Effectuer l’élimination de Gauss par tableau pour A = .
1 1

6.2 Exercices

Exercise 6.1 (Règles du rectangle)


1. On considère les équations

x1 + 2x2 + 3x3 =s1


4x1 + 5x2 + 6x3 =s2

29
Exprimer x1 en fonction de s1 , x2 , x3 et réécrire le système (échange de x1 par s1 ). Ensuite
échanger x2 par s2 . Donner toutes les solutions du système (x1 , x2 , x3 ) en fonction de
(s1 , s2 ).
2. Écrire les mêmes opérations sous forme d’un tableau.

7 Le tableau de la méthode du Simplexe


Pour le problème de maximisation standard, en introduisant les variables d’écart s, on a
 T
 T

 sup c x s. c. 
 sup c x s. c.
x > 0, ⇔ x > 0, s > 0

 

Ax 6 b Ax + s = b

et on a le tableau suivant :

Jact
x1 (= 0) ··· xj (= 0) ··· xn (= 0)
s1 a11 ··· a1j ··· a1n b1
.. .. .. .. .. ..
. . . . . . x=0 adm. ssi b > 0
Iact si ai1 ··· aij ··· ain bi x=0 optimal ssi c 6 0
.. .. .. .. .. ..
. . . . . .
sm am1 ··· amj ··· amn bm
−c1 ··· −cj ··· −cn 0

Donc, si la dernière ligne et la dernière colonne du tableau (sauf la valeur) sont positives,
on a trouvé une solution optimale x = 0.
Pour le problème de minimisation standard, en introduisant les variables d’écart t, on a
 T
 T

 inf b y s. c. 
 inf b y s. c.
y > 0, ⇔ y > 0, t > 0

 T 
 T
A y>c A y−t=c

et on a le tableau suivant :

Jact
t1 ··· tj ··· tn
y1 (= 0) a11 ··· a1j ··· a1n b1
.. .. .. .. .. ..
. . . . . . y = 0 adm. ssi −c > 0
Iact yi (= 0) ai1 ··· aij ··· ain bi y = 0 optimal ssi b > 0
.. .. .. .. .. ..
. . . . . .
ym (= 0) am1 ··· amj ··· amn bm
−c1 ··· −cj ··· −cn 0

Alors, si la dernière ligne et la dernière colonne sont positive, on a une solution optimale
y = 0 (et t = −c).

30
On considère la maximisation standard. L’idée de la méthode du simplexe est de faire des
itérations très semblables à l’élimination de Gauss. A l’itération p, nous avons donc des va-
riables indépendante s(p) et des variables x(p) , ainsi que la matrice A(p) , mais aussi b(p) et
c(p) et la valeur V (p) . L’interprétation des variables est la suivante : x(p) = 0 et s(p) = b(p) peut
être directement lu dans le tableau.
On suppose que b > 0, de sorte que x = 0 est admissible. Cela nous permet de définir
l’initialisation
x(0) = (x1 , . . . , xm ) et s(0) = (s1 , . . . , sm ).

Supposons que x(0) n’est pas la solution optimale. Il existe donc un indice 1 6 j∗ 6 n tel que
cj∗ > 0. Comment se transforme le tableau si l’on échange xj∗ par si∗ avec un 1 6 i∗ 6 m ?
Tout d’abord nous avons
x(1) = (x1 , . . . , xj∗ −1 , si∗ , xj∗ +1 , . . . , xn ) et s(1) = (s1 , . . . , si∗ −1 , xj∗ , si∗ +1 , . . . , sm ).

x = x(1) et b
Comme avant, pour alléger la notation, on va écrire b s = s(1) .
Aussi, nous savons déjà que cet échange est possible si et seulement ai∗ j∗ 6= 0, ce que l’on
suppose dorénavant.
L’équation i∗ donne
X
n
b i ∗ − s i ∗ X ai ∗ j
n
ai∗ j xj = bi∗ − si∗ ⇒ xj∗ = − xj .
ai∗ j∗ ai∗ j∗
j=1 j=1
j6=j∗

D’abord la ligne i∗ se transforme en


Xn
ai∗ j 1 b i∗
xj + si ∗ = − xj∗
j=1
ai∗ j∗ ai∗ j∗ ai∗ j∗
j6=j∗

Ensuite une ligne i 6= i∗ donne


 
X
n X
n
 b i∗ − si∗ X
n
ai ∗ j 
b i − si = aij xj + aij∗ xj∗ = aij xj + aij∗  − xj 
j=1 j=1
ai∗ j∗ j=1
ai∗ j∗
j6=j∗ j6=j∗ j6=j∗

b i ∗ − si ∗ X
n  
aij∗ ai∗ j
=aij∗ + aij − xj ,
ai∗ j∗ j=1
ai∗ j∗
j6=j∗

autrement dit
Xn 
aij∗ ai∗ j

aij∗ aij∗
aij − xj − si ∗ = b i − b i∗ − si
j=1
ai∗ j∗ ai∗ j∗ ai∗ j∗
j6=j∗

Cela donne A
b ainsi que b.
b Pour trouver b c, on analyse le changement de la fonction gain.
 
Xn
 bi∗ − si∗ X ai∗ j 
n
V
b= cj xj + cj∗  − xj 
j=1
ai∗ j∗ j=1
ai∗ j∗
j6=j∗ j6=j∗

X
n 
cj∗ ai∗ j

cj∗ cj∗ bi∗ cj∗ bi∗
= cj − xj − si ∗ + =V+ .
j=1
ai∗ j∗ ai∗ j∗ ai∗ j∗ ai∗ j∗
j6=j∗

31
On trouve alors

 1 ai ∗ j aij∗ aij∗ ai∗ j

 bi∗ j∗ =
a , a bi∗ j = , a bij∗ = − , a
bij = aij −

 ai j ai j ai∗ j∗ ai∗ j∗


∗ ∗ ∗ ∗




bb i∗ = b i∗ , b bi = bi − aij∗ bi∗
ai∗ j∗ ai∗ j∗
(7.1)
b ∗
 c j∗ cj∗ ai∗ j

 cj = − , b cj = cj −

 ai∗ j∗ ai∗ j∗



 −c b

Vb=V− ∗
j i ∗

ai∗ j∗
Attention au changement de signe par rapport à Gauss (On a Ax + s = b au lieu de Ax = s) !
La même règle s’applique à tout le tableau !

Règle du rectangle pour le Simplexe :


• Le coefficient du pivot devient l’inverse
• On divise la ligne du pivot (hors diagonale) par le pivot
• On divise la colonne du pivot (hors diagonale) par l’opposé du pivot
• Pour les autres coefficients, on soustrait le produit des extrémités du rectangle di-
visé par le pivot.
• Résumé :
α ··· β 1/α ··· β/α
.. .. −→ .. ..
. . . .
γ ··· δ −γ/α · · · δ − βγ/α

Il nous reste à trouver une règle pour définir le pivot pour choisir i∗ .
Remarque 7.1. Pour le problème de minimisation standard, on suppose que c 6 0, de sorte que y = 0
est admissible en peut prendre y(0) = 0 et t(0) = −c comme initialisation de l’algorithme. L’échange
des variable yi∗ et tj∗ suit exactement les mêmes règles que pour la maximisation standard (Exercice).
Remarque 7.2. Au bout de p itérations on arrive à un table de la forme suivante. L’itération s’arrête, si

x(p) t(p)
s(p) A(p) b(p) y(p) A(p) b(p)
−c (p) T V (p) −c (p) T V (p)

TABLE 4: Tableaux pour la maximisation et la minimisation après p itérations.

T
b(p) > 0 et −c(p) > 0. On peut alors lire la solution optimale x∗ dans le tableau : si xj est un élément
(p)
de x(p) , nous savons que x∗j = 0, et si xj est un élément de s(p) , par example xj = sl , nous avons
(p)
x∗j = bk . Si le tableau 4 est optimal pour la maximisation, d’après le théorème de dualité forte, il est
aussi optimal pour la minimisation avec la même valeur V (p) . Par conséquence, on trouve les valeurs de
T
y∗ dans −c(p) , si elles ne sont pas nulles.
Pour cette raison on utilise dans la pratique que les noms de variables y et x (au lieu de s et y pour
la minimisation et au lieu de t et x pour la maximisation), ce qui donne un seul tableau pour les deux
problèmes :

32
x(p)
y(p) A(p) b(p)
−c(p) T V (p)

TABLE 5: Tableau après p itérations.

7.1 Questions de cours

Question de cours 7.1


7.2 Exercices

Exercise 7.1
Voici des tableaux après quelques itération de la méthode du simplexe (maximisation).
Dans chaque cas, que peut-on dire ?
I x1 y2 II x1 y2 III x1 y2 IV x1 y2
y1 1 4 7 y1 1 4 7 y1 1 -4 7 y1 1 4 -7
x2 2 5 8 x2 2 5 8 x2 2 0 8 x2 2 8 8
y3 3 6 9 y3 3 6 9 y3 3 -6 9 y3 3 12 9
1.2 3.5 100 1.2 -3.5 100 1.2 -3.5 100 1.2 -3.5 100

Exercise 7.2
Dans le tableau suivant échanger x1 avec soit y1 , soit y2 , soit y3 . Que constatez-vous en
chaque cas ?

x1 x2
y1 1 2 8
y2 1 3 9
y3 3 6 12
-12 -36 0

8 L’algorithme du Simplexe
8.1 Règle de pivot (maximisation)
On considère la maximisation standard. On suppose que b > 0, de sorte que x = 0 est
admissible.
Si −c > 0, nous avons fini. Sinon il existe un indice j∗ tel que cj∗ > 0. Pour trouver un indice
i∗ tel que, après échange de variables, on souhaite que
1. bb>0
2. V
b>V

33
D’apres (7.1) nous avons

 b i∗ aij∗

b i∗ = a ∗ ∗ , b i = b i − a ∗ ∗ b i∗
b b
i j i j
b
 −cj bi
∗ ∗
V = V −
ai∗ j∗

Pour vérifier la première condition il faut donc que

ai∗ j∗ > 0

et
si aij∗ > 0
aij∗ z }| { bi b i∗
06b
bi ⇔ 0 6 bi − b i∗ =⇒ >
ai∗ j∗ aij∗ ai∗ j∗

Si aij∗ 6 0 on a immédiatement b
bi > bi > 0.
Pour la deuxième condition nous avons

b = V + cj∗ bi∗ > V.


V
ai∗ j∗

On remarque que la valeur reste constante si et seulement si bi∗ = 0.

Règle de pivot (maximisation) (hypothèse b > 0) :



1. On pose J∗ := j ∈ J1, nK cj > 0 et on choisit j∗ ∈ J∗ .


2. On pose I∗ := i ∈ J1, mK ai,j∗ > 0 . Trouver

b i∗ bi
i∗ ∈ I∗ : 6 ∀i ∈ I∗ . (8.1)
ai∗ ,j∗ ai,j∗

Lemme 8.1. Avec la règle de pivot (maximisation), le vecteur b b est positif et la nouvelle valeur vérifie
b > V. Si l’on ne peut pas appliquer cette règle, le problème est non-borné.
V

Démonstration. On a déjà montré la première partie. Il rest à voir le cas où l’on ne peut choisir
i∗ . Nous avons J∗ 6= ∅ (sinon on a la solution optimale). Soit k ∈ J∗ . Supposons I∗ = ∅, donc

aik 6 0 pour tout i.

Soit x définit par xj = 0 pour j 6= k et xk = ρ ∈ R+ . Alors pour tout ρ

Ax = ρaik 6 0 6 bi ⇒ x ∈ K.

De plus comme ck > 0

X
n
cj xj = ck ρ → +∞ (ρ → +∞).
j=1

Donc le problème est non-borné.

34
Example 8.1. On considère le tableau suivant avec trois choix possibles de j∗ . Les choix possible de
(i∗ , j∗ ) sont entournés.

x1 x2 x3 x4 bi /ai,1 bi /ai,2 bi /ai,3


s1 1 −1 3 1 6 6 - 2
s2 0 1 2 4 4 - 4 2
s3 3 0 3 1 7 7/3 - -
-5 -1 -4 2 0

Example 8.2.

Maximiser x1 + x2 + 2x3 sous contraintes




 x1 > 0, x2 > 0, x3 > 0,

x2 + 2x3 6 3

 −x + 3x3 6 2
 1
2x1 + x2 + x3 6 1

x1 x2 x3 x1 x2 x3
s1 0 1 2 3 s1 0 1 2 3
s2 −1 0 3 2 ⇒ s2 −1 0 3 2 ⇒
s3 2 1 1 1 s3 2 1 1 1
−1 −1 −2 0 −1 −1 −2 0
x1 s3 x3 x1 s3 x3 x1 s3 s2
s1 −2 −1 1 2 s1 −2 −1 1 2 s1 4/3
s2 −1 0 3 2 ⇒ s2 −1 0 3 2 ⇒ x3 2/3
x2 2 1 1 1 x2 2 1 1 1 x2 1/3
1 1 −1 1 1 1 −1 1 2/3 1 1/3 5/3

Donc on a les solutions ( !)

V ∗ = 5/3
x∗1 = 0, x∗2 = 1/3, x∗3 = 2/3
y∗1 = 0, y∗2 = 1/3, y∗3 = 1

8.2 Questions de cours

Question de cours 8.1 (Règles de pivot pour la minimisation)


On cherche la règle de pivot (phase II) pour le problème de minimisation. Pour cela, on écrit
le problème comme une maximisation standard (pas le problème dual !), de sorte que le tableau
−AT −c
devient T .
b

8.3 Exercices

Exercise 8.1
Voici des tableaux après quelques itération de la méthode du simplexe (maximisation ou
minimisation). Dans chaque cas, que peut-on dire ?

35
I x1 y2 II x1 y2 III x1 y2 IV x1 y2
y1 1 4 7 y1 1 4 7 y1 1 -4 7 y1 1 4 -7
x2 2 5 8 x2 2 5 8 x2 2 0 8 x2 2 8 8
y3 3 6 9 y3 3 6 9 y3 3 -6 9 y3 3 12 9
1.2 3.5 100 1.2 -3.5 100 1.2 -3.5 100 1.2 -3.5 100

Exercise 8.2
Résoudre avec le problème

min 3y1 − 2y2 + y3





y1 > 0, y2 > 0, y3 > 0,

 −y2 + 2y3 > −1

 y1 + y3 > −1


2y1 + 3y2 + y3 > −2

9 Les deux phases de la méthode de simplexe


9.1 Règle de pivot phase I
Les deux algorithmes nécessitent des hypothèse : le pivot pour la maximisation a besoin de
b > 0 pour que x(0) = 0 soit admissible et le pivot pour minimisation a besoin de c > 0 pour
que y(0) = 0 soit admissible. Si ces condition ne sont pas satisfaite, on utilise un échange de
variable préliminaire (phase I de la méthode du simplexe) pour trouver une situation que l’on
peut traiter exactement comme avant (phase II de la méthode du simplexe).
L’idée est que par un échange de variable, on peut se ramener, au bout d’un certain nombre
q d’itération à b(q) > 0 pour la maximisation (ou )c(q) > 0 pour la minimisation). Pour cela il
faut des règles de pivotage adaptées.
Considérons le cas de la maximisation. Supposons qu’il existe bi∗ < 0. On souhaite alors
pivoter tel que bi > 0 implique bbi > 0 et que b
bi∗ > 0.

Règle de pivot pour la phase I (maximisation) :


1. On pose eI := {i ∈ J1, mK | bi < 0} et on choisit k ∈ eI.

2. On pose J∗ := j ∈ J1, nK ak,j < 0 et on choisit j∗ ∈ J∗ .


3. On pose I∗ := i ∈ J1, mK ai,j∗ > 0 et bi > 0 ∪ {k}. Trouver

b i∗ bi
i∗ ∈ I∗ : 6 ∀i ∈ I∗ . (9.1)
ai∗ ,j∗ ai,j∗

Lemme 9.1. Après une itération avec la règle de pivot pour la phase I (maximisation), on a bi > 0 ⇒
bi > 0 et b
b bk > bk . Si la règle de pivot n’a pas de solution, le problème n’est pas admissible.

Démonstration. Si J∗ = ∅ nous avons


X
n
akj xj > 0 > bk ⇒ K = ∅.
j=1

36
Sinon, I∗ 6= ∅ et on peut trouver i∗ .
D’après (7.1) nous avons

b i ∗ = b i∗ ,
b bi = bi − aij∗ bi∗ = bi − aij∗ bi∗ .
b
ai∗ j∗ ai∗ j∗ ai∗ j∗
| {z }
>0

bi∗
où > 0 (pour i∗ = k cela vient des deux premières étapes, sinon de la définition de I∗ ).
ai∗ j∗
Alors pour i = i∗ nous avons b
bi∗ > 0. Pour i 6= i∗ nous avons pour i tel que bi > 0


 i 6∈ I∗ aij∗ 6 0 ⇒ b
b i > bi > 0
b i∗ bi (9.2)
 ∗
i ∈ I \ {k} aij∗ > 0 et bi > 0 : ⇒ 6 ⇒ bi > 0
b
ai∗ j∗ aij∗

Finalement, si i∗ 6= k

bk = bk − akj∗ bi∗ > bk .


b
ai∗ j∗

x1 x2 x3 x4
y1 2 3 1 0 2
Example 9.1. Considérons le tableau suivant. y2 −1 −1 −2 2 −3 En gras, la dernière
y3 1 −1 0 −1 −2
1 −1 0 2 0
colonne indique les choix possible de k. Ensuite, le choix possible de j∗ sont en gras.

x1 x2 x3 x4 b b/A
y1 2.00 3.00 1.00 0.00 2.00 1.00
y2 −1.00 −1.00 −2.00 2.00 −3.00 3.00
y3 1.00 −1.00 0.00 −1.00 −2.00 –
c 1.00 −1.00 −0.00 2.00 0.00
y1 x2 x3 x4 b b/A
x1 0.50 1.50 0.50 0.00 1.00 2.00
y2 0.50 0.50 −1.50 2.00 −2.00 1.33
y3 −0.50 −2.50 −0.50 −1.00 −3.00 –
c −0.50 −2.50 −0.50 2.00 −1.00
y1 x2 y2 x4 b b/A
x1 0.67 1.67 0.33 0.67 0.33 0.50
x3 −0.33 −0.33 −0.67 −1.33 1.33 –
y3 −0.67 −2.67 −0.33 −1.67 −2.33 3.50
c −0.67 −2.67 −0.33 1.33 −0.33

37
x1 x2 y2 x4 b b/A
y1 1.50 2.50 0.50 1.00 0.50 0.20
x3 0.50 0.50 −0.50 −1.00 1.50 3.00
y3 1.00 −1.00 0.00 −1.00 −2.00 2.00
c 1.00 −1.00 −0.00 2.00 0.00
x1 y1 y2 x4 b b/A
x2 0.60 0.40 0.20 0.40 0.20 0.50
x3 0.20 −0.20 −0.60 −1.20 1.40 –
y3 1.60 0.40 0.20 −0.60 −1.80 3.00
c 1.60 0.40 0.20 2.40 0.20
x1 y1 y2 x2 b
x4 1.50 1.00 0.50 2.50 0.50
x3 2.00 1.00 0.00 3.00 2.00
y3 2.50 1.00 0.50 1.50 −1.50
c −2.00 −2.00 −1.00 −6.00 −1.00

Par le dernier tableau, on voit que le problème est non admissible, car J∗ = ∅.

9.2 Cycles
Si, pour la phase II, à chaque étape de la méthode de simplexe on observe une stricte crois-
sance de la valeur (maximisation) ou une stricte décroissance de la valeur (minimisation), l’ité-
ration s’arrête au bout d’un  nombre fini
 d’itérations,
 car il existe un nombre fini de choix de
(n+m)! (n+m)!
variables (en effet il y en a n! = m! choix possibles). Pour la phase I, on a résultat
similaire.
La seule chose qui peut donc empêcher la convergence de la méthode du simplexe est un
cycle : après quelques itération en revient sur un tableau précédent. Dans ce cas, la valeur reste
inchangée et l’algorithme ne converge pas.
Pour éviter ce problème, on doit modifié la règle du pivot. Il y a différentes modification
possible. Les plus connues sont la règle de Danzig et la règle de Bland, qui permettent d’éviter
des cycle (on ne retourne jamais à un choix de variables déjà utilisé dans le passé). Avec une
telle modification, on peut alors démontrer la convergence de la méthode du simplexe.
Par conséquence, nous avons une démonstration constructive du théorème de dualité.

Règle de pivot (maximisation) de Bland :



1. Soit J∗ = j | cj > 0 . Choisir j∗ ∈ J∗ avec index minimal.


2. Soit I∗ := i| ai,j∗ > 0 at I∗∗ := argmin abi ∗ | i ∈ I∗
i,j

3. Choisir la ligne i∗ ∈ I∗∗ avec index minimal.

9.3 Complexité
La complexité est le nombre d’opérations arithmétiques nécessaires pour calculer la solu-
tion. Une itération nécessite n × m + n + m + 1 = O(nm) opérations. On peut construire un

38
exemple pour lequel il faut parcourir toutes les combinaisons possibles de variables (ou tous
les sommets de l’ensemble admissible). √ n
Pour n et m grand, on se sert de la formule de Stirling : n! ≈ 2πn n
e et par conséquent
(n+m) n  m
2π(n + m) n+m
  p r 
(n + m) 1 1 1 n+m n+m
≈ √ n √ e m m
=√ +
2πn n

m e 2πm e 2π n m n m

Par example pour m ≡ n on obtient de façon approximative


r
1 2 2n
√ 2 ∼ 2n ,
2π n

un nombre exponentiel d’opération !

9.4 Questions de cours

Question de cours 9.1


On cherche la règle de pivot (phase I) pour le problème de minimisation. Pour cela, on écrit
(encore) le problème comme une maximisation standard (pas le problème dual !), de sorte que
−AT −c
le tableau devient T .
b

9.5 Exercices

Exercise 9.1
Voici des tableaux après quelques itération de la méthode du simplexe. Dans chaque cas,
que peut-on dire ?
I x1 y2 II x1 y2 III x1 y2 IV x1 y2
y1 1 4 7 y1 1 4 7 y1 1 -4 7 y1 1 4 -7
x2 2 5 8 x2 2 5 8 x2 2 0 8 x2 2 8 8
y3 3 6 9 y3 3 6 9 y3 3 -6 9 y3 3 12 9
1.2 3.5 100 1.2 -3.5 100 1.2 -3.5 100 1.2 -3.5 100

Exercise 9.2
On considère :

max 3x1 − x2 + 5x3





x1 > 0, x2 > 0, x3 > 0,

 −x + 4x − 2x 6 0,
1 2 3

 −2x + x − 3x 6 −2,


1 2 3
7x2 + x3 6 1.

Résoudre par la méthode du simplexe et donner la valeur optimale et les solutions primale et
duale.

39
10 Le programme linéaire général
Le programme linéaire général n’a des contraintes de positivité que sur une partie des in-
connues et permet un nombre de contrainte d’égalité.
sup c1 x1 + c2 x2 + · · · + cn xn sous contraintes


 xj > 0 pour j = 1, . . . , l,




xj ∈ R pour j = l + 1, . . . , n



X n
(10.1)
aij xj 6 bi pour i= 1, . . . , k,




j=1

 Xn



 aij xj = bi pour i = k + 1, . . . , m.

j=1

Même si l’on peut ramener ce problème à une formulation standard, il est souvent intéressant
de le garder sous cette forme. En particuliers, la méthode du simplexe peut être modifié pour
traiter (10.1) sans rajouter des variables auxiliaires. Cela repose sur le fait que la théorie de la
dualité fonctionne comme avant, si l’on définit le problème de minimisation comme
inf b1 y1 + b2 y2 + · · · + bm ym sous contraintes


 yi > 0 pour i = 1, . . . , k,




yi ∈ R pour i = k + 1, . . . , m,



X m
(10.2)
yi aij > cj pour j= 1, . . . , l,




i=1

 Xm



 yi aij = cj pour j = l + 1, . . . , n.

i=1

On note que les contraintes d’inégalités correspondante à des variables duales sans contraintes
(et vice versa).
Les ensemble admissible sont désormais

 Xn
K := x ∈ Rn | xj > 0 (j = 1, . . . , l), aij xj 6 bi (i = 1, . . . , k),

j=1

Xn 
xj ∈ R (j = l + 1, . . . , n), aij xj = bi (i = k + 1, . . . , m) ,

j=1 (10.3)

Xm
L := y ∈ Rm | yi > 0 (i = 1, . . . , k), yi aij > cj (j = 1, . . . , l),
i=1

X
m
yi ∈ R (i = k + 1, . . . , m), yi aij = cj (j = l + 1, . . . , n) .
i=1
Example 10.1. Le problème dual de
sup 5x2 + x3 + 4x4


x1 > 0, x2 > 0, x4 > 0,


−x1 + 5x2 + 2x3 + 5x4 6 5,

 3x2 + x4 = 2,

−x
1 + x3 + 2x4 = 1,

40
est
inf 5y1 + 2y2 + y3


 y1 > 0



−y − y3 > 0,
1

 5y1 + 3y2 > 5,





 2y1 + y3 = 1,

5y1 + y2 + 2y3 > 4.

10.1 La méthode du simplexe pour le problème général


On ne considère que la maximisation et on va commencer à écrire le problème général sous
forme matricielle, en découpant les variables de la forme suivante.
x = (x1 , . . . , xl , xl+1 , . . . , xn ) = x 0 , x 00
 
| {z } | {z }
>0 ∈R

b(1)
 
T
b = (b1 , . . . , bk , bk+1 , . . . , bm ) = (2)
b
 0 00
  0   (1)   (1) 
A1 A1 x s b
0 00 00 + (2) = (2)
A2 A2 x s b
s(1) > 0 s(2) = 0
Si l’on écrit le tableau du simplexe comme avant, il faut d’abord sortir les variables s(2) , qui
doivent être zéro. Ensuite il faut faire entrer x 00 , qui n’a pas de contrainte de positivité, en
supposant que A200 le permette (sinon il l’ensemble admissible est vide). On se retrouve alors
dans une situation ou l’on peut démarrer la phase I du simplexe. Il y a alors deux possibilités :
soit un éliminer toutes les lignes et colonnes correspondant à ces variables (si on n’a pas besoin
de leurs valeurs), soit on le garde. Dans ce cas, on les marque d’un symbole pour ne pas les
confondre avec les autres variables. Ensuite il faut simplement écarter ces variables des règles
de pivot.
Example 10.2. On reprend l’exemple (10.1).
x1 x2 x]3 x4 x1 x2 y]3 x4
y1 −1 5 2 5 5 y1 1 5 −2 1 3
y]2 0 3 0 1 2 ⇒ y]2 0 3 0 1 2 ⇒
y]3 −1 0 1 2 1 x]3 −1 0 1 2 1
0 -5 -1 -4 0 -1 -5 1 -2 1
x1 x2 y]3 y]2
y1 1 2 −2 -1 1
x4 0 3 0 1 2 ⇒ x = (0, 0, −3, 2) admissible.
x]3 −1 −6 1 -2 -3
-1 1 1 2 5
On peut alors démarrer la phase II, ce qui donne
x1 x2 y]3 y]2 y1 x2 y]3 y]2
y1 1 2 −2 -1 1 x1 1 2 −2 -1 1
x4 0 3 0 1 2 ⇒ x4 0 3 0 1 2
x]3 −1 −6 1 -2 -3 x]3 1 −4 −1 -3 -2
-1 1 1 2 5 1 3 -1 1 6
On trouve alors x∗ = (1, 0, −2, 2), y∗ = (1, 1, −1) et V ∗ = 6.

41
10.2 Questions de cours

Question de cours 10.1 (Dualité géneralisée)


On considère les problèmes linéaires généraux (10.1), (10.2) avec leurs ensembles admissible
(10.3).
1. Dualité faible : si x ∈ K et y ∈ L, on a

cT x 6 b T y (10.4)

2. Dualité forte : si x ∈ K et y ∈ L vérifient (10.4) avec égalité, les deux sont des solutions.
3. Complémentarité.

10.3 Exercices

Exercise 10.1
On considère le problème

sup −3x3 − x4


 x >0
x1 − 3x3 + 3x4 =6


x2 − 8x3 + 4x4 =4

1. Quelle est la solution du problème ?


2. Quel est le problème dual ? Et sa solution
3. Résoudre avec la méthode du simplexe généralisée.

11 Jeux matriciels
On considère un jeu avec deux joueurs. Le joueur I a m choix Si , et le joueur II a n choix Tj .
Le paiement (gain de I, perte de II) si I choisit Si et II choisit Tj est aij . Étant donnée la matrice
A = (aij ) ∈ Rm×n , quelle stratégie vont choisir les joueurs ?
D’abord si l’on ne joue qu’une fois, le joueur I cherche à maximiser son gain, alors que le
joueur II minimise sa perte :

V − := sup inf aij 6 inf sup aij = V + .


16i6m 16j6n 16j6n 16i6m

On n’a pas toujours égalité, comme montrent les exemples


 
2 3
⇒ V − = sup {2, 1} = 2 = inf {2, 6} = V +
1 6
 
1 0
⇒ V − = sup {0, 0} = 0 < 1 = inf {1, 2} = V +
0 2

Si l’on joue un grand nombre de fois, on appelle stratégie mixte la probabilité avec laquelle
une stratégie va être choisie :

42
pi : Joueur I choisit Si i ∈ J1, mK,
qj : Joueur II choisit Tj j ∈ J1, nK.
P
m P
n
Nous avons alors les contraintes pi > 0 et pi = 1, qj > 0, qj = 1.
i=1 j=1
Alors, le joueur I va choisir sa stratégie p pour maximiser son gain λ, si l’adversaire II choisit
sa meilleure stratégie (la pire pour le joueur I). Pour une stratégie p donnée, si II choisit j, le
gain λj est le gain minimal sont

X
m
λj (p) = pi aij ⇒ λ(p) = inf λj (p). (11.1)
16j6n
i=1

Le problème du joueur I s’écrit alors


 
X
m

sup λ(p) p > 0 et pi = 1 .


i=1

On peut alors transformer cette maximisation en problème linéaire. Pour cela, on introduit λ
comme variable auxiliaire et on observe que

X
m
λ = inf λj ⇒ λ 6 λj = pi aij ∀j ∈ J1, nK.
16j6n
i=1

On trouve alors le problème de maximisation linéaire

X
m X
m
sup λ s.c. p > 0, pi = 1, λ− pi aij 6 0. (11.2)
i=1 i=1

De façon analogue, le joueurs II va chercher sa stratégie q pour minimiser sa perte maxi-


Pn
male, c’est-à-dire µ := sup aij qj , et il se trouve avec
16i6m j=1
X
n X
n
inf µ s.c. q > 0, qj = 1, µ − aij qj > 0. (11.3)
j=1 j=1

On voit facilement avec l’écriture sous tableau ci-dessus que (11.2) et (11.3) sont en dualité.
Par le théorème de dualité forte, si les stratégies optimales existent, on a forcément λ∗ = µ∗ !

p1 ··· pi ··· pm λ]
q1 −a11 ··· −a1i ··· −a1m 1 0
.. .. .. .. .. .. ..
. . . . . . .
qj −aj1 ··· −aji ··· −ajm 1 0
.. .. .. .. .. .. ..
. . . . . . .
qn −an1 ··· −anj ··· −anm 1 0
µ] 1 ··· 1 ··· 1 0 1
0 ··· 0 ··· 0 -1 0

Pour résoudre ce problème avec la méthode du simplexe, il faut d’abord éliminer µ] et λ] .


Comme l’élément en question est nul, il faut le faire en deux étapes.

Example 11.1. On reprend l’example

43
p1 p2 λ] p 1 µ ] λ] p1 µ] q2
q1 −1 0 1 0 q1 −1 0 1 0 q1 -3 −2 −1 −2
q2 0 −2 1 0 q2 2 2 1 2 λ] 2 2 1 2
µ] 1 1 0 1 p2 1 1 0 1 p2 1 1 0 1
0 0 −1 0 0 0 −1 0 2 2 1 2
q 1 µ] q 2
p1 − 13 2
3
2
λ] 3
1
p2 3
2 2 1 2
3 3 3 3

Donc
2 1 2 1 2
p∗1 = , p∗2 = , q∗1 = , q∗2 = , λ∗ = µ∗ = V ∗ = .
3 3 3 3 3
Tout le monde est gagnant avec la stratégie mixte.

11.1 Questions de cours

Question de cours 11.1


11.2 Exercices

Exercise 11.1 (Jeux à deux choix)


On considère des jeux à deux choix pour chacun des joueurs. La stratégie consiste alors à
choisir les probabilités x = (x1 , x2 ) (pour le joueur I) et y = (y1 , y2 ) (pour le joueur II).
1. Les problèmes d’optimisation des deux joueurs sont

max min {a11 x1 + a12 x2 , a21 x1 + a22 x2 } , min max {y1 a11 + y2 a21 , y1 a12 x1 + y2 a22 } .
x>0 y>0
x1 +x2 =1 y1 +y2 =1

2. Montrer que le problème du joueur I est équivalent à

max min {a11 + (a12 − a11 )t, a21 + (a22 − a21 )t} . (11.4)
06t61

3. Tracer les graphes des fonctions à maximiser de (11.4) pour différentes valeurs des aij .
4. En observant que dans (11.4) il n’y a que trois valeurs de t possibles, trouver une expres-
sion de V ∗ en fonction des aij .

44
12 Valeurs absolues
On considère le problème de minimisation, où les contraintes sont les mêmes que dans
(10.2).
Xp X

m
inf ej − yi dij sous contraintes


j=1 i=1


 yi > 0 pour i = 1, . . . , k,



 yi ∈ R pour i = k + 1, . . . , m, (12.1)

m
P
 yi aij > cj pour j = 1, . . . , l,




i=1
P


m
 yi aij = cj pour j = l + 1, . . . , n,
i=1

avec e ∈ Rp et D = (dij ) ∈ Rm×p . La fonctionnelle coût n’est pas linéaire, il s’agit de la norme
l1 de e − DT y.
Comme pour le jeux matriciel, on peut transformer (12.1) en un problème de minimisation
linéaire. On rappelle que pour deux nombres réels α, β ∈ R

|α| 6 β ⇔ −β 6 α 6 β ⇔ α6β et − α 6 β.

Lemme 12.1. Soit q ∈ N, A ⊂ Rq non-vide et B := (z, r) ∈ R2q r ∈ A, r 6 z, −r 6 z . Alors
les problèmes (G) et (D) sont équivalents
 q   q 
X X
(G) inf |ri | | r ∈ A , (D) inf zi | r ∈ A, r 6 z, −r 6 z .
i=1 i=1

Démonstration. Soit r∗ une solution de (G). Alors

X
q X
q

r ∈A et |r∗i | 6 |ri | ∀r ∈ A.
i=1 i=1

Soit z∗ = |r∗ |. Alors (z∗ , r∗ ) ∈ B. Soit (z, r) ∈ B. Alors r ∈ A et pour tout 1 6 i 6 q |ri | 6 zi .
Donc
X
q X
q X
q X
q
z∗i = |r∗i | 6 |ri | 6 zi ⇒ (z∗ , r∗ ) solution de (D).
i=1 i=1 i=1 i=1

Soit (z∗ , r∗ ) solution de (D). Alors r∗ ∈ A et pour tout 1 6 i 6 q |r∗i | 6 z∗i . Soit r ∈ A et zi := |ri |,
de sorte que (z, r) ∈ B. Alors

X
q X
q X
q X
q
|r∗i | 6 z∗i 6 zi = ri ⇒ r∗ solution de (G).
i=1 i=1 i=1 i=1

On obtient alors une formulation linéaire de (12.1) en introduisant de nouvelles variables

45
z ∈ Rp :
X
p
inf zj sous contraintes
j=1


 yi > 0 pour i = 1, . . . , k,



 yi ∈ R pour i = k + 1, . . . , m,





 Xm

 yi aij > cj pour j= 1, . . . , l,






i=1
(12.2)

 Xm
yi aij = cj pour j = l + 1, . . . , n,




i=1

 Xm



 z + yi dij > ej pour j= 1, . . . , p,


j

 i=1



 Xm


 z
 j − yi dij > −ej pour j= 1, . . . , p.
i=1

Il n’est pas nécessaire d’imposer des contraintes de positivité sur z.

12.1 Questions de cours

Question de cours 12.1


12.2 Exercices

Exercise 12.1

1. On considère min bT y | AT y > c . Trouver le problème dual.
Pp
2. La norme l1 pour r ∈ Rp est définie par krk1 := |ri |. Soit e ∈ Rp et D ∈ Rp×m . On
i=1
considère 
min ke − DT yk1 | AT y > c .
Transformer en problème linéaire en introduisant de nouvelles variables z ∈ Rp .
3. Trouver le problème dual de ce dernier.

46

Vous aimerez peut-être aussi