Optimisation numérique - Programmation linéaire

Transcription

Optimisation numérique - Programmation linéaire
Optimisation numérique
Programmation linéaire
Daniele Di Pietro
A.A. 2012-2013
1 / 28
Rappel : Rang d’une matrice I
Définition (Rang d’une matrice)
Soit A ∈ Rm,n , m ≤ n. On dit que A est de rang plein si les lignes de A
sont linéairement indépendantes.
2 / 28
Rappel : Rang d’une matrice II
Exemple (Matrice de rang plein)
La matrice de Hilbert

1
1

A = /2
1/3

1/2
1/3
1/3
1/4 ,
1/4
1/5
est de rang plein.
3 / 28
Rappel : Rang d’une matrice III
Pour vérifier que A est de rang plein, il suffit de montrer que
λ1 A1: + λ2 A2: + λ3 A3: = 0 ⇐⇒ λ1 = λ2 = λ3 = 0
L’équation de gauche équivaut au système linéaire
À
Á
Â
λ1
1
2 λ1
1
3 λ1
+
+
+
1
2 λ2
1
3 λ2
1
4 λ2
+
+
+
1
3 λ3
1
4 λ3
1
5 λ3
=
=
=
0
0
0
On peut résoudre système linéaire Σ par le pivot de Gauss
4 / 28
Rappel : Rang d’une matrice IV
À
Á
Â
E2 ← E2 − 12 E1 ,
E3 ← E3 − 13 E1
E3 ← E3 − E2
λ1
1
2 λ1
1
3 λ1
+
+
+
1
2 λ2
1
3 λ2
1
4 λ2
+
+
+
1
3 λ3
1
4 λ3
1
5 λ3
=
=
=
0
0
0
=
=
=
0
0
0
À λ1
=⇒ Á
Â
+
1
2 λ2
1
12 λ2
1
12 λ2
+
+
+
1
3 λ3
1
12 λ3
4
45 λ3
À λ1
=⇒ Á
Â
+
1
2 λ2
1
12 λ2
+
+
1
3 λ3
1
12 λ3
1
180 λ3
=
=
=
0
0
0
=⇒ λ1 = λ2 = λ3 = 0
5 / 28
Programmation linéaire I
Définition (Programme linéaire)
On définit programme linéaire (PL) un problème de minimisation où la
fonctionnelle objectif et les contraintes sont linéaires.
Exemple (Résolution graphique)
Trouver une solution optimale du PL suivant :

−3x1 + 2x2



−x + 2x
1
2
sup {f (x) := x1 + 2x2 } sous

x1 + x2
x∈Rn



(x1 , x2 )
≤2
≤4
≤5
≥0
6 / 28
Programmation linéaire II
−3x1 + 2x2 = 2
x2
−x1 + 2x2 = 4
S4
S3
i
1
2
3
4
5
Si,1
0
5
2
1
0
Si,2
0
0
3
2.5
1
f (Si )
0
5
8
6
2
∇f
S5
S1
x1 + x2 = 5
x1
S2
7 / 28
Programmation linéaire III
Définition (Programme linéaire sous forme standard)
Le problème suivant est dit programme linéaire sous forme standard
(PLS) :
inf
c·x,
(PLS)
n
x∈R , Ax=b, x≥0
avec m ≤ n et
A ∈ Rm,n ,
b ∈ Rm ,
c ∈ Rn .
La matrice A est de rang plein.
8 / 28
Programmation linéaire IV
Lemme (Réduction d’un programme linéaire à la forme standard)
Tout PL peut se ramener à un PLS.
9 / 28
Programmation linéaire V
On peut prouver le lemme précédent en montrant comment traiter
les différents cas
Si A n’est pas de rang plein, deux cas peuvent se produire
soit les contraintes sont incompatibles et le problème n’a pas de
solution
soit il y a des contraintes rédondantes que l’on peut supprimer
10 / 28
Programmation linéaire VI
Si on a un mélange de contraintes égalité et inégalité on peut
procéder comme suit
On considère le PL
inf
x∈Rn , A1 x≥b1 , A2 x=b2
(PL)
c·x
Tout d’abord on remarque que A2 x = b2 équivaut à
(
A2 x ≥ b2
A2 x ≤ b2
(PL) équivaut donc à

inf
x∈Rn , Ax≥b
c·X,

A1
A :=  A2  ∈ Rm,n ,
−A2


b1
b :=  b2  ∈ Rm
−b2
11 / 28
Programmation linéaire VII
On introduit ensuite les variables d’écart λ ∈ Rm t.q.
Ax = b + λ,
λ≥0
En décomposant x en partie positive et négative,
x = x⊕ − x ,
x⊕ := max(0, x),
x := − min(0, x)
ceci équivaut à
Ax⊕ − Ax = b + λ,
x⊕ ≥ 0,
x ≥ 0,
λ≥0
12 / 28
Programmation linéaire VIII
(PL) est donc équivalent au PLS suivant :
inf
(x⊕ ,x ,λ)∈R2n+m , Ax⊕ −Ax =b+λ
c·(x⊕ − x )
Un point à noter est que dans la réductions sous forme standard le
nombre de variables s’est accru
13 / 28
Programmation linéaire IX
Exemple (Contraintes inégalité)
Mettre le PL suivant sous forme standard :

x1 − x2



x
1
inf2 {5x2 − 6x1 } sous

x∈R
2x1 − x2



(x1 , x2 )
≥4
≥3
≤5
≥0
14 / 28
Solutions optimales et solutions basiques I
Définition (Ensemble des solutions admissibles)
On définit l’ensemble des solutions admissibles par
Xad := {x ∈ Rn | Ax = b, x ≥ 0}.
On définit sommet ou point extrémal de Xad tout x ∈ Xad t.q.
(∃x, y ∈ Xad , ∃ϑ ∈ (0, 1),
x = ϑy + (1 − ϑ)z) =⇒ y = z = x.
Définition (Solution optimale)
On définit solution optimale un vecteur qui atteint le minimum.
15 / 28
Solutions optimales et solutions basiques II
Exemple (Ensemble des solutions admissibles et solution optimale)
Déterminer l’ensemble des solutions admissibles du PLS suivant et
calculer sa solution optimale :
(
2x1 + x2 + 3x3 = 6
inf {x1 + 4x2 + 2x3 } sous
(x1 , x2 , x3 ) ≥ 0
16 / 28
Solutions optimales et solutions basiques III
Lemme (Existence d’une solution optimale)
Il existe (au moins) une solution optimale de (PLS) ssi
−∞ <
inf
x∈Rn , Ax=b, x≥0
c·x < +∞.
Démonstration.
La preuve, non détaillée, utilise le Lemme de Farkas.
17 / 28
Solutions optimales et solutions basiques IV
Définition (Base associée à (PLS))
On appelle base associée à (PLS) une base de Rm formée de m colonnes
de A.
Soit B la sous-matrice de A formée par les colonnes de la base
Après permutation des ses colonnes, on peut écrire A sous la forme
(B, N ),
B ∈ Rm,m ,
N ∈ Rm,n−m
De même, on peut décomposer tout x ∈ Rn en (xB , xN ) obtenant
ainsi
Ax = BxB + N xN
Les composantes de xB sont dites variables de base, celles de xN
variables hors base
18 / 28
Solutions optimales et solutions basiques V
Définition (Solution basique)
On appelle solution basique tout vecteurs x ∈ Xad t.q. xN = 0. Si au
moins l’une des composantes de xB est nulle on parle de solution basique
dégénérée.
Lemme (Sommets de Xad et solutions basiques)
Les sommets du polyèdre Xad sont exactement les solutions basiques.
19 / 28
Solutions optimales et solutions basiques VI
x solution basique =⇒ x sommet de Xad
Il existe une base B := (bi )1≤i≤m formée de colonnes de A qui
permet de décomposer x en (xB , xN ) avec
xB ≥ 0 (x ∈ Xad ),
xN = 0 (x solution basique)
Supposons qu’il existe ϑ ∈ (0, 1) et y, z ∈ Xad t.q.
(
0 ≤ xB = ϑyB + (1 − ϑ)zB
x = ϑy + (1 − ϑ)z ⇐⇒
0 = xN = ϑyN + (1 − ϑ)zN
Comme y, z ∈ Xad on a y ≥ 0 et z ≥ 0 et, par conséquent,
0 = xN = ϑyN + (1 − ϑ)zN ⇐⇒ yN = zN = 0 ∈ Rn−m
20 / 28
Solutions optimales et solutions basiques VII
D’autre part, comme x, y, z ∈ Xad ,
Ax = Ay = Az = b
En utilisant xN = yN = zN = 0 ∈ Rn−m cela implique
m
m
m
X
X
X
BxB =ByB =BzB = b ⇐⇒
(xB )i bi =
(yB )i bi =
(zB )i bi =b,
i=1
i=1
i=1
où on a noté B la sous-matrice de A formée par les colonnes de B
Puisque la décomposition de b dans la base B est unique on conclut
xB = yB = zB ,
ce qui montre que x est un sommet de Xad
21 / 28
Solutions optimales et solutions basiques VIII
x sommet de Xad =⇒ x solution basique
Soit k le nombre de composantes non nulles de x
Après un éventuel réarrangement on a
b = Ax =
k
X
xi ai
(ai = colonnes de A)
i=1
Pour montrer que x est solution basique il suffit de montrer que
A := (ai )1≤i≤k est une famille libre
22 / 28
Solutions optimales et solutions basiques IX
Si A est liée, il existe y ∈ Rn non nul t.q.
k
X
yi ai = 0,
(yk+1 , . . . , yn ) = 0 ∈ Rn−k
i=1
Comme (x1 , . . . , xk ) > 0 par hypothèse, il existe > 0 t.q.
x ± y ≥ 0
De plus, Ay = 0, Ax = b =⇒ A(x ± y) = b
Par conséquent, x ± y ∈ Xad et
x=
1
1
(x + y) + (x − y),
2
2
ce qui contredit le fait que x est sommet, donc A est libre
23 / 28
Solutions optimales et solutions basiques X
Lemme (Existence d’une solution optimale basique)
S’il existe un solution optimale de (PLS), alors il existe une solution
optimale basique.
24 / 28
Solutions optimales et solutions basiques XI
Soit x ∈ Xad une solution optimale avec k composantes non nulles
Après un éventuel réarrangement on a
b = Ax =
k
X
xi ai
(ai = colonnes de A)
i=1
Si la famille A := (ai )1≤i≤k est libre dans Rm , alors x est une
solution basique
Si A est liée on peut annuler une composante de x en procédant
comme suit
25 / 28
Solutions optimales et solutions basiques XII
Si A est liée, il existe y ∈ Rn non nul t.q.
k
X
yi ai = 0,
(yk+1 , . . . , yn ) = 0 ∈ Rn−k
i=1
Comme (x1 , . . . , xk ) > 0 par hypothèse, il existe > 0 t.q.
A(x ± y) =
k
X
!
(xi ± yi )ai = b et x ± y ≥ 0
=⇒ x±y ∈ Xad .
i=1
Attention ! En général y 6∈ Xad
De plus
c·x ≤ c·(x ± y) ⇐⇒ c·y = 0,
à savoir, x ± y sont aussi solutions optimales pour tout > 0
suffisamment petit
26 / 28
Solutions optimales et solutions basiques XIII
Posons z := x + y. On peut augmenter ou diminuer jusqu’à une
valeur 0 au delà de laquelle la contrainte z ≥ 0 est violée,
z0 a au plus (k − 1) composantes non nulles et c·z0 = c·x
Nous avons donc trouvée une solution optimale avec 1 composante
nulle en plus par rapport à x
Pour conclure, il suffit de repeter le raisonnement ci-dessus pour
x = z0
Après un nombre fini d’itérations on obtiendra une famille A libre et,
par conséquent, une solution optimale basique
27 / 28
Solutions optimales et solutions basiques XIV
Une remarque cruciale
Le lemme précédent a une conséquence importante : pour trouver une
solution optimale il suffit de parcourir les sommets de Xad !
28 / 28