Cours 02 : Problème général de la programmation linéaire Cours 02 : Problème général de la Programmation Linéaire. 5
. Introduction Un programme linéaire s'écrit sous la forme suivante. MinZ(ou maxw) = c x + c 2 x 2 + + c n x n sous les contraintes ou conditions : p équations a x + a 2 x 2 + + a n x n = d a 2 x + a 22 x 2 + + a 2n x n = d 2. a p x + a p2 x 2 + + a pn x n = d p et (m-p) inéquations a p+ x + a p+2 x 2 + + a p+n x n d p+ a m x + a m2 x 2 + + a mn x n d m x j 0 (variables réalisables), j =, 2,, q x j (variables quelconques), j > q. On peut écrire ce système sous une autre forme condensée. (I) n MinZ(ou MaxW) = c i x i i= n aijx j = di (i =,..., p) j= n airx r dr (r = p +,..., m) i= x j 0, j =,...,q x j, j = q +,..., n a ij, d i, c j étant des données numériques réelles. On adoptera les notations suivantes. M = {,, m}ensemble des indices de contraintes et N = {,, n} ensemble des indices de variables. M M un sous ensemble de M, N N un sous ensemble de N, A = (a ij ) mxn une matrice m x n, i M, j N. a j la j ième colonne de A, un vecteur colonne. α i la ième ligne de A, un vecteur ligne. X un vecteur colonne à n composantes, x, x 2,, x n C un vecteur colonne à n composantes, c, c 2,, c n D un vecteur colonne à m composantes, d, d 2,, d m Cours 02 : Problème général de la Programmation Linéaire. 6
A est appelée matrice technologique D vecteur de demande, C vecteur de prix et X vecteur des inconnues. Le problème (I) s'écrit aussi : Min Z (ou Max W) = C X ( le produit scalaire) (I) 2. Formulations des programmes linéaires αi x = di i M αi x di i M M x j 0, j N x j, j N N Nous considérons et il existe trois formulations du programme linéaire avec la condition de non-négativité (ou de positivité ou de réalisabilité) de l'ensemble des variables x 0, x 2 0,, x n 0. La première forme est la " forme standard ": MinZ = C. X A.X = d X 0. La seconde est la " forme canonique " : MinZ = C. X A.X d X 0. La troisième forme est " mixte " : MinZ = C. X α i.x d i i M α i.x = d i i M - M X 0. On peut ramener les formes générales et mixtes à la forme standard ou à la forme canonique et on peut passer de la forme standard à la forme canonique et vice-versa par des opérations élémentaires. ère opération : min f(x) = - max (-f(x)). 2 nd opération: on peut remplacer chaque variable par une différence de variables positives. x j = x j ' - x j " où x j ' 0 et x j " 0. 3 ième opération: chaque équation a i x + a i2 x 2 + + a in x n = d i peut être remplacée par les inéquations : a i x + a i2 x 2 + + a in x n d i a i x + a i2 x 2 + + a in x n d i ou par les inéquations équivalentes: Cours 02 : Problème général de la Programmation Linéaire. 7
a i x + a i2 x 2 + + a in x n d i - a i x - a i2 x 2 - - a in x n - d i 4 ième opération: Toute inéquation a i x + a i2 x 2 + + a in x n d i (ou a i x + a i2 x 2 + + a in x n d i ) peut être remplacée par les équations : a i x + a i2 x 2 + + a in x n + x n+i = d i, avec x n+i 0 (ou a i x + a i2 x 2 + + a in x n - x n+i = d i, avec x n+i 0) x n+i est appelée une variable d'écart qu'on peut introduire dans le problème et qui est affecté d'un coefficient nul dans la fonction à optimiser. Les x i sont appelées des " variables structurelles ". Résumé : De la forme générale, on peut passer à la forme mixte en procédant par les opération et 2. De la forme mixte et standard à la forme canonique, on procède par l'opération 3. De la forme mixte et canonique à la forme standard, on procède par l'opération 4. 3. Quelques notions de la programmation linéaire Définitions :. La fonction à optimiser Z est appelée " fonction objectif " (sous entend fonction dont l'objectif) ou " fonction économique ". 2. On appelle solution réalisable (ou possible), tout vecteur X satisfaisant à toute les contraintes du problème y compris celle de la non-négativité. 3. On appelle solution optimale une solution réalisable finie (toutes les composantes sont finies) rendant optimale la fonction objectif. 4. Deux problèmes linéaires PL et PL2 sont équivalents si pour chaque solution X de PL on trouvera par une certaine règle une solution correspondante Y de PL2 et réciproquement. Théorème fondamental de la programmation linéaire Soit le problème sous forme standard min z = cx ( P) Ax = d où A : m x n avec m < n. x 0 Le rang de la matrice A, r(a) = m < n. Le problème a une infinité de solutions. Il existe au moins un ensemble de " m " vecteurs (a j ) i=,,m linéairement indépendants. Cours 02 : Problème général de la Programmation Linéaire. 8
Définitions 2 :. On appelle base du système ou base du problème (P), tout ensemble de " m " vecteurs (a j ) i=,,m linéairement indépendants. Les vecteurs d'une base constituent une sous matrice de A régulière d'ordre " m " et inversement. 2. Les " m " variables associées aux vecteurs de base sont appelées variables de base. Elles constituent un vecteur X B à m composantes. Les autres variables sont dites hors bases et constituent un vecteur X HB complémentaire de X B dans X. On adoptera les notations suivantes. I ensemble des indices des vecteurs (ou variables) de base. J ensemble des indices des vecteurs (ou variables) hors base. J = N - I. A B = (a i ) i I (matrice formée par " m " vecteurs de base) A HB = (a j ) j J (matrice formée par " n- m " vecteurs hors base) C B = (c i ) i I (coefficients associés aux " m " vecteurs de base) C HB = (c j ) j J (coefficients associés aux " n- m " vecteurs hors base) Le problème linéaire peut s'écrire : (P') min z = cbxb + chbx HB ABxB + AHBx HB = d xb 0, x HB 0 En annulant les variables hors bases dans (P'), on obtient un système " Cramérien " A B X B = d possédant la solution unique xb = AB. d. 3. La solution X = (x B = A B -. d, x HB = 0) est appelée solution de base du problème. 4. Une solution de base est réalisable si x B = A B -. d 0. 5. Une solution de base est dite " dégénérée " si certaines composantes de x B sont nulles. Le vecteur x B ou X a moins de " m " composantes positives. 6. Une solution optimale de base du problème est une solution de base réalisable qui rend minimale la fonction objectif. Exemple : Déterminons des solutions de base du système 2 x + x2 + 2 x3-2 x 4 4 x + 3 x2 + 5 x3-6 x 4 = 4 = 0 Si on prend a = 2, a2 =, le déterminant formé par ces deux vecteurs 4 3 Cours 02 : Problème général de la Programmation Linéaire. 9
a a 2 = 2 qui est différent de 0. a et a 2 forment alors une base. 2 A B = (a, a 2 ) = 4 X B = (x, x 2 ), X HB = (x 3, x 4 ). 2 2, A HB = (a 3, a 4 ) = 3 5 6 Le système peut s'écrire aussi A B X B + A HB X HB = d. 2 Posons X HB = (0, 0), le système deviendra : 4 x 3 x 2 4 x = 0 x 2 x = (, 2, 0, 0) est une solution de base réalisable non dégénérée car le rang de la matrice A est égale à deux. 2 Si on choisit A B = (a, a 3 ) = 4 2, A B X B = d x B = (x, x 3 ) = (0, 2). 5 =. 2 La nouvelle solution x = (0, 0, 2, 0) relative à la nouvelle base est de base réalisable dégénérée. 2 Si on choisit A B = (a, a 4 ) = 4 2, A B X B = d x B = (x, x 4 ) = (, -). 6 La solution x = (, 0, 0, -) est de base non réalisable et non dégénérée. 4. Détermination d'une solution de base par la méthode de pivotage de Gauss. Soit un système d'équations de la forme A. x = d, équivalent au système suivant. ax a2x... a kx... a mx ar xr +... a2r xr +...... x r +...... a mrx r +... an xn a2n x n... a knx n... a mnx n = d = d2 =... = dk. =... = dm Supposons que 0. Divisons la kième équation par qui devient : a k a x... x... kn + + r + + x n d = k Pour éliminer x r de la ième équation, il suffit de multiplier l'équation () par (-a ir ) et ajouter à la ième équation. On obtiendra : a a d ( a k a )x... (a kn a )x d k i ir + + in ir n = i air () Cours 02 : Problème général de la Programmation Linéaire. 20
(S) a' x a2x... a' k x... a' m x ar xr + ar + xr + +......... + x r +.......ar xr + ar + x r + +... a' n xn a2n xn... a' kn x n... a mnx n = d' = d2 =... = d' k. =... = d' m a kj avec a' ij = a ij - a ir, i =,.., m, i k. a' kj = d' i = d i - a kj a ir, j =,.., n. d k air, i =,.., m, i k. d' k = d k air. dkr Ces relations sont les formules d'élimination de Gauss. est appelé " pivot ". La ligne " k " est appelée ligne pivot. Si le rang de la matrice A, r(a) est égale au rang de la matrice augmentée r(a,d), nous pouvons résoudre le système par rapport aux " m " variables ( x,, x m ). Le système devient. x +... + cm + xm + +... + cn xn = b x2 +... + c2m + xm + +... + c2n xn = b2... xm + cmm+ xm+ +... + cmnxn = bm x= (b, b 2,, b m, 0, 0,, 0) est une solution de base. Remarque 2 : soit un PL Supposons que rg(a) = rg(a, d) = r < n. min z = cx ( P) Ax = d où A : m x n avec m < n. x 0. rg(a) = r veut dire qu'il existe une base a α, a α2,, a αr de l'ensemble des vecteurs colonnes de A et chaque vecteur a j (j ) peut être exprimé en leur fonction. Soit, r a j = λi a αi. i= Cours 02 : Problème général de la Programmation Linéaire. 2
Si en substituant " a j " à " a αj " avec λ i 0, nous montrons facilement que (a α, a α2,, a αi-, a j, a αi+,, a αr ) est une nouvelle base( A faire par les étudiants!). 2. si r(a) = r alors " m - r " équations de (2) sont redondantes. En supprimant ces équations, on obtient le système équivalent A. X = d. 3. chaque ensemble de " r " vecteurs linéairement indépendants forment une base. Donc, le nombre maximal de solutions de base est le nombre maximale de sousmatrices carrés d'ordre " r " que l'on peut extraire de A, égal à C r n n! =. r!(n r)! 5. Enoncé du Théorème fondamental de la programmation linéaire. Etant donné un problème de la programmation linéaire sous formestandard. a. s'il possède une solution réalisable finie, il possède une solution de base réalisable. b. s'il admet une solution optimale finie, il admet au moins une solution optimale de base réalisable. Preuve: a. supposons x une solution réalisable avec " k " composantes finies. Sans perte de généralité, on peut supposer que les " k " composantes positives soient les premières (quitte à faire un changement dans la numérotation des composantes et obtenir les k premières composantes positives). x = (x, x 2,, x k, 0,,0) Le problème est min z = cx ( P) Ax = d. x 0 Soit A = (a, a 2,, a k ) la matrice formée par les " k " premières colonnes de A. Par hypothèse : x a + x 2 a 2 + + x k a k = d. Deux cas sont possibles. Cas. Soit rg(a ) = k alors forcément k m. Rg(A) = m se traduit par l'existence d'une base de A formée des vecteurs a α, a α2,, a αm. Chaque a j (j =,,k) s'expriment en fonctions des (a αi ) i =,,m dans laquelle un coefficient au moins est non nul. m D'où a = λi a αi ( λ 0 par exemple). (a, a α2,, a αm ) constituent une nouvelle i= base de m m '. a 2 = µ a + λ ia αi ( avec au moins un λ' i 0 (i = 2,,m). i= 2 Cours 02 : Problème général de la Programmation Linéaire. 22
a et a 2 sont linéairement indépendants si λ' 2 0. (a, a 2, a α3,, a αm ) constituent une seconde nouvelle base de m. Et ainsi de suite le même processus peut être répété jusqu'à ce que les vecteurs a, a 2,, a k sont devenus les vecteurs de base. Dans ce cas, x = (x, x 2,, x k, 0,,0) est une solution de base réalisable par définition. Cette solution est dégénérée si k < m et non dégénérée si k = m. Cas 2. Rg(A ) = k > m. Le vecteurs a, a 2,, a k sont linéairement dépendants. Dans m, plus de " m " vecteurs sont Linéairement Dépendants. k D'où j, j =,, k / λ j 0 et λia j = 0. j= Par hypothèse, x a + x 2 a 2 + + x k a k = d () λ a + λ 2 a 2 + + λ k a k = 0. Multiplions par α > 0 cette équation et retranchant là de l'équation (). On obtient : (x - λ α)a + (x 2 - λ 2 α)a 2 + + (x k - λ k α)a k = d. Le vecteur (x - λ α, x 2 - λ 2 α,, x k - λ k α, 0, 0,, 0) est une solution réalisable si x i - λ i α 0, i =,, k. Choisissons " α " de tel sorte. Evidemment si λ i 0. Le choix sera α, tel que : α Déterminons α = x r λr x i λi x = min i, λi λi si λ i 0 et α > 0. x i λ si λ i 0. i x (x - λ r λ, x x 2 - λ r 2 r λ,, x x k - λ r k, 0, 0,, 0) est une nouvelle solution r λ r réalisable ne comportant au plus que (k-) composantes positives. Si les vecteurs associés à ces valeurs sont linéairement dépendants, on répète l'opération. Après un nombre " p " d'opérations ( ou inférieur à p), on obtient " k - p " vecteurs Linéairement Indépendants, L.I, ce qui ramène au cas. On a une solution dégénérée si k - p < m et non dégénérée si k - p = m. Preuve du b. Faire une même preuve pour une solution optimale sauf qu'il faut trouver des conditions pour que la valeur de la fonction objectif ne diminue pas. Remarque 3 : Le problème de la programmation linéaire est résolu par le théorème fondamental de la PL. En effet, le nombre de base et de solutions de base est fini Cours 02 : Problème général de la Programmation Linéaire. 23
n! ( C m n = ) et on calcule les valeurs de la fonction Z correspondants à ces m!(n m)! solutions de base et choisir la valeur minimale. Corollaire : Une condition nécessaire et suffisante pour qu'une solution réalisable soit une solution de base réalisable est que les vecteurs associés aux variables non nulles soient L.I. Exemple 2: soit le système et soit x = (3, 2, ) une solution réalisable. 2 x + x2 + 4 x3 = 2 x + 2 x2 + 3 x3 = 0 A partir de x, déterminons une solution de base réalisable. 2 4 a =, a2 = et a3 = sont L.D. 2 3 2 Si on prend a =, a2 =, le déterminant formé par ces deux vecteurs 4 3 k j, j =,2,3 / λ j 0 et λi a j = 0, soit : λ a + λ 2 a 2 +λ 3 a 3 = 0. j= 2λ + λ2 + 4λ3 λ a + λ 2 a 2 +λ 3 a 3 = 0 =. λ + 2λ2 + 3λ3 0 Si λ =, le système devient : ce qui donne que λ 2 = 2/5 et λ 3 = - 3/5. Prenons α = x min i, λi λi λ2 + 4 λ3 = 2, 2 λ2 + 3 λ3 = 3 2 > 0 = min, = 3 2. 5 x Y = (x - λ r λ, x x 2 - λ r 2 r λ, x x 3 - λ r 3 ) = ( 0, 4/5, 4/5) est une nouvelle solution de r λ r base réalisable. Cours 02 : Problème général de la Programmation Linéaire. 24
Remarque 4 : si un λ i < 0, on peut choisir α = x max i, λi λi 5 5 2 T = (x - λ, x2 - λ 2, x3 - λ 3 ) = (3 -, 2-3 3 35 35 5 5 < 0 = =. 3 3 5 5, - 3 53 5 ) 3 T = ( 4/3, 8/3, 0) est une seconde solution de base réalisable... Cours 02 : Problème général de la Programmation Linéaire. 25
Cours 02 : Problème général de la Programmation Linéaire. 26