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