Proglin

607 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
607
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
62
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Proglin

  1. 1. Programmation linéaire D IDIER M AQUIN ´ ´ ´Ecole Nationale Superieure d’Electricite et de Mecanique Institut National Polytechnique de Lorraine ´ ` ` ´ Mathematiques discretes – cours de 2eme annee ´ Programmation lineaire – p.1/49
  2. 2. Programmation linéaireProblèmes d’optimisation sous contraintes (casparticulier)Fonction objectif et contraintes linéaires (par rapportaux variables inconnues).Formulation générale : max M = cT x x sous les contraintes Ax ≤ b x≥0avec x ∈n , A ∈m×n , b ∈m et m < n.On recherchera indifféremment à maximiser ou àminimiser ´ Programmation lineaire – p.2/49
  3. 3. Exemple 1 – Problème de transportOn désire acheminer des marchandises de n dépôts à mpoints de venteOn connaît : cij , i = 1..n et j = 1..m, coût de transport (i, j ), Xi , i = 1..n, stocks des dépôts, Dj , j = 1..m, niveaux de demande aux points de vente.On recherche, pour chaque couple (i, j ), la quantité (posi-tive) xij à transporter du dépôt Xi au point de vente Dj . ´ Programmation lineaire – p.3/49
  4. 4. Exemple 1 – Problème de transportSolution du problème de programmation linéaire: n m min cij xij xij ≥0 i=1 j=1 n sous les contraintes xij = Dj j = 1, . . . , m i=1 m xij = Xi i = 1, . . . , n j=1Le critère représente le coût total de transport. Les con-traintes expriment l’égalité de l’offre et de la demande pourchaque point de vente et chaque dépôt. ´ Programmation lineaire – p.4/49
  5. 5. Exemple 2 – Pb de la ration alimentaire On désire nourrir au moindre coût une collectivité tout en assurant une fourniture minimale de vitamines, sels minéraux, protéïnes, glucides, etc. On connaît : Ai vecteur de composition du produit i, ci coût pour 100 grammes (par exemple) de l’aliment i, b vecteur des quantités minimales requises pour le consommateur. ´ Programmation lineaire – p.5/49
  6. 6. Exemple 2 – Pb de la ration alimentaire Le problème à résoudre, si l’on dispose de n aliments de base est : n min ci x i xi i=1 n sous les contraintes Ai xi ≥ b i=1 xi ≥ 0 Problème de programmation linéaire tout à fait classique. Intervient fréquemment en agriculture (rations pour animaux) ou dans l’industrie (mélanges de produits pétroliers ayant des caractéristiques minimales – volatilité, indices d’octanes, etc –). ´ Programmation lineaire – p.6/49
  7. 7. Simplexe – ExempleConsidérons le problème suivant : max M = 40x1 + 60x2 (1a) x sous les contraintes 2x1 + x2 ≤ 70 x1 + x2 ≤ 40 x1 + 3x2 ≤ 90 (1b) x1 ≥ 0 x2 ≥ 0Première approche : résolution graphique. ´ Programmation lineaire – p.7/49
  8. 8. Résolution graphique x2 2x1 + x2 = 70 x1 + 3x2 = 90x2 = 0 x1 x1 + x2 = 40 x1 = 0 ´ Programmation lineaire – p.8/49
  9. 9. Résolution graphique x2 2x1 + x2 = 70 x1 + 3x2 = 90x2 = 0 x1 x1 + x2 = 40 x1 = 0 M=0 ´ Programmation lineaire – p.9/49
  10. 10. Résolution graphique x2 2x1 + x2 = 70 x1 + 3x2 = 90x2 = 0 x1 x1 + x2 = 40 x1 = 0 M=0 M = 900 ´ Programmation lineaire – p.10/49
  11. 11. Résolution graphique x2 2x1 + x2 = 70 25 x1 + 3x2 = 90 M = 2100x2 = 0 x1 15 x1 + x2 = 40 x1 = 0 M=0 M = 900 ´ Programmation lineaire – p.11/49
  12. 12. Résolution graphique x2 2x1 + x2 = 70 25 x1 + 3x2 = 90 M = 2100x2 = 0 x1 15 x1 + x2 = 40 x1 = 0 M=0 M = 900 ´ Programmation lineaire – p.12/49
  13. 13. Méthode systématique – Simplexe Nécessité d’une méthode systématique – Méthode du simplexe Première idée : transformation des contraintes inégalité en contraintes égalité Introduction de variables d’écartIntroduisons donc les variables x3 , x4 et x5 pour obtenir leségalités : 2x1 + x2 + x3 = 70 x1 + x 2 + x4 = 40 x1 + 3x2 + x5 = 90 xj ≥ 0, ∀j = 1, . . . , 5 ´ Programmation lineaire – p.13/49
  14. 14. Méthode systématique – Simplexe 2x1 + x2 + x3 = 70 x1 + x 2 + x4 = 40 x1 + 3x2 + x5 = 90 Système de trois équations à cinq inconnues, Equations indépendantes ; rang de la matrice du système égal à 3, Si l’on impose arbitrairement la valeur de deux des variables, les trois variables restantes peuvent être déduites. Solution de base : x1 = x2 = 0 x3 = 70, x4 = 40 x5 = 90 ´ Programmation lineaire – p.14/49
  15. 15. Méthode systématique – Simplexe Valeur du critère M = 40x1 + 60x2 nulle, Pour augmenter M , il faut augmenter x1 ou x2 , On choisit x2 (meilleure sensibilité) en conservant x1 = 0. x3 = 70 − x2 ≥ 0 ⇒ x2 ≤ 70 x4 = 40 − x2 ≥ 0 ⇒ x2 ≤ 40 x5 = 90 − 3x2 ≥ 0 ⇒ x2 ≤ 30 Valeur maximale admissible x2 = 30. Nouvelle solution admissible : x1 = 0, x2 = 30, x3 = 40, x4 = 10 x5 = 0 Nouvelles variables de base x2 , x3 et x4 . ´ Programmation lineaire – p.15/49
  16. 16. Méthode systématique – Simplexe Nouvelle valeur du critère M = 40x1 + 60x2 = 1800, Une et une seule variable de base, x3 , x4 ou x5 , intervient dans chaque équation, Chaque nouvelle variable de base x2 , x3 et x4 ne doit intervenir que dans une seule équation. Il suffit d’extraire la valeur de x2 de la troisième équation et de substituer son expression dans les deux premières. 5/3 x1 + x3 − 1/3 x5 = 40 2/3 x1 + x4 − 1/3 x5 = 10 1/3 x1 + x2 + 1/3 x5 = 30 ´ Programmation lineaire – p.16/49
  17. 17. Méthode systématique – Simplexe Nouvelle valeur du critère M = 1800 + 20x1 − 20x5 , On choisit d’augmenter x1 en conservant x5 = 0 x3 = 40 − 5/3 x1 ≥ 0 ⇒ x1 ≤ 24 x4 = 10 − 2/3 x1 ≥ 0 ⇒ x1 ≤ 15 x5 = 30 − 1/3 x1 ≥ 0 ⇒ x1 ≤ 90 Valeur maximale admissible x1 = 15. Nouvelle solution admissible : x1 = 15, x2 = 25, x3 = 15, x4 = 0 x5 = 0 Nouvelles variables de base x1 , x2 et x3 . ´ Programmation lineaire – p.17/49
  18. 18. Méthode systématique – Simplexe Nouvelle valeur du critère M = 2100 − 30x4 − 10x5 , La seule manière de modifier x4 et x5 consiste à les rendre positives ⇒ Diminution de la valeur du critère M , Il n’existe donc plus d’amélioration possible et la dernière solution obtenue est la solution optimale, La valeur du critère est alors égale à 2100, Même résultat que la solution graphique (!) ´ Programmation lineaire – p.18/49
  19. 19. Interprétation géométriqueLa solution optimale (x∗ , x∗ ) ne peut pas être 1 2strictement à l’intérieur du polytope des contraintes,Au moins une des inégalités est saturée (satisfaite entant qu’égalité),Sinon, on pourrait ajouter un petit multiple positif de lapaire de coefficient définissant le critère (40, 60) à lasolution (x∗ , x∗ ), 1 2Nouvelle solution (x∗ + 40ε, x∗ + 60ε) conduisant à une 1 2valeur de critère M = 40(x1∗ + ε) + 60(x∗ + ε) supérieure 2à la valeur M ∗ = 40x∗ + 60x∗ supposée initialement 1 2optimale ce qui conduit à une contradiction. ´ Programmation lineaire – p.19/49
  20. 20. Interprétation géométriqueLa solution optimale (x∗ , x∗ ) doit se trouver sur la 1 2frontière du polytope des contraintes, x2 V2 (0, 30) :1800 V3 (15, 25) :2100 V4 (30, 10) :1800 x1 V1 (0, 0) : 0 V5 (35, 0) :1400 ´ Programmation lineaire – p.20/49
  21. 21. Opérations matriciellesCritère et contraintes M x1 x2 x3 x4 x5 b 0 2 1 1 0 0 70 0 1 1 0 1 0 40 0 1 3 0 0 1 90 1 −40 −60 0 0 0 0 ´ Programmation lineaire – p.21/49
  22. 22. Opérations matriciellesCritère et contraintes M x1 x2 x3 x4 x5 b 0 2 1 1 0 0 70 0 1 1 0 1 0 40 0 1 3 0 0 1 90 1 −40 −60 0 0 0 0 ´ Programmation lineaire – p.22/49
  23. 23. Opérations matriciellesCritère et contraintes M x1 x2 x3 x4 x5 b 0 2 1 1 0 0 70/1 = 70 0 1 1 0 1 0 40/1 = 40 0 1 3 0 0 1 90/3 = 30 1 −40 −60 0 0 0 0 ´ Programmation lineaire – p.23/49
  24. 24. Opérations matriciellesCritère et contraintes M x1 x2 x3 x4 x5 b 0 2 1 1 0 0 70 0 1 1 0 1 0 40 0 1/3 1 0 0 1/3 30 1 −40 −60 0 0 0 0 M x1 x2 x3 x4 x5 b 0 5/3 0 1 0 −1/3 40 0 1 1 0 1 0 40 0 1/3 1 0 0 1/3 30 1 −40 −60 0 0 0 0 ´ Programmation lineaire – p.24/49
  25. 25. Opérations matriciellesCritère et contraintes M x1 x2 x3 x4 x5 b 0 5/3 0 1 0 −1/3 40 0 1 1 0 1 0 40 0 1/3 1 0 0 1/3 30 1 −40 −60 0 0 0 0 M x1 x2 x3 x4 x5 b 0 5/3 0 1 0 −1/3 40 0 2/3 0 0 1 −1/3 10 0 1/3 1 0 0 1/3 30 1 −40 −60 0 0 0 0 ´ Programmation lineaire – p.25/49
  26. 26. Opérations matriciellesCritère et contraintes M x1 x2 x3 x4 x5 b 0 5/3 0 1 0 −1/3 40 0 2/3 0 0 1 −1/3 10 0 1/3 1 0 0 1/3 30 1 −40 −60 0 0 0 0 M x 1 x2 x3 x4 x5 b 0 5/3 0 1 0 −1/3 40 0 2/3 0 0 1 −1/3 10 0 1/3 1 0 0 1/3 30 1 −20 0 0 0 20 1800 ´ Programmation lineaire – p.26/49
  27. 27. Opérations matriciellesCritère et contraintes M x1 x2 x3 x4 x5 b 0 5/3 0 1 0 −1/3 40 0 2/3 0 0 1 −1/3 10 0 1/3 1 0 0 1/3 30 1 −20 0 0 0 20 1800 ´ Programmation lineaire – p.27/49
  28. 28. Opérations matriciellesCritère et contraintes M x1 x2 x3 x4 x5 b 0 5/3 0 1 0 −1/3 40×3/5 = 24 0 2/3 0 0 1 −1/3 10×3/2 = 15 0 1/3 1 0 0 1/3 30×3/1 = 90 1 −20 0 0 0 20 1800 ´ Programmation lineaire – p.28/49
  29. 29. Opérations matriciellesCritère et contraintes M x 1 x2 x3 x4 x5 b 0 5/3 0 1 0 −1/3 40 0 1 0 0 3/2 −1/2 15 0 1/3 1 0 0 1/3 30 1 −20 0 0 0 20 1800 ´ Programmation lineaire – p.29/49
  30. 30. Opérations matriciellesCritère et contraintes M x 1 x2 x3 x4 x5 b 0 5/3 0 1 0 −1/3 40 0 1 0 0 3/2 −1/2 15 0 1/3 1 0 0 1/3 30 1 −20 0 0 0 20 1800 M x 1 x2 x3 x4 x5 b 0 0 0 1 −5/2 1/2 15 0 1 0 0 3/2 −1/2 15 0 0 1 0 −1/2 1/2 25 1 0 0 0 30 10 2100 ´ Programmation lineaire – p.30/49
  31. 31. Position du problème généralProblème général : max M = cT x x sous les contraintes Ax ≤ b x≥0Introduction de variables d’écart, xn+1 , . . . , xn+m max M = cT xe + u e (2a) xe sous les contraintes Ae xe = b (2b) xe ≥ 0 ´ Programmation lineaire – p.31/49
  32. 32. DéfinitionsTout vecteur xe satisfaisant les contraintes égalité estappelé vecteur admissible,Un vecteur admissible qui maximise le critère estappelé vecteur admissible optimal.L’ensemble Xad = {xe |Ae xe = b, xe ≥ 0} est l’ensembledes solutions admissibles du problème. ´ Programmation lineaire – p.32/49
  33. 33. Définitions polytopes convexesUn sous-ensemble S de IRn est dit convexe ssi : ∀x ∈ S, y ∈ S, λ ∈ [0, 1] ⇒ λx + (1 − λ)y ∈ SLe demi-espace fermé des (x1 , x2 , . . . , xn ) vérifiant : α1 x 1 + α 2 x 2 + . . . + α n x n ≤ βest un ensemble convexe.L’intersection d’un nombre fini de sous-ensemblesconvexes de IRn est un ensemble convexe.Un polytope convexe de IRn est l’intersection d’unnombre fini de demi-espaces fermés.Un polyèdre convexe de IRn est un polytope borné. ´ Programmation lineaire – p.33/49
  34. 34. Définitions polytopes convexesL’ensemble S des solutions admissibles d’un problèmede programmation linéaire est soit un polytope convexe (cas des domaines non bornés), soit un polyèdre convexe (cas des domaines bornés),Etant donnés k points x1 , x2 , . . . , xk de IRn , on appellecombinaison linéaire convexe de ces k points, un pointx tel que: λ1 x 1 + λ 2 x 2 + . . . + λ k x k kavec λi ≥ 0, i = 1, . . . , k et i=1 λi = 1, ´ Programmation lineaire – p.34/49
  35. 35. Définitions polytopes convexesOn appelle points extrêmes d’un polytope ou d’unpolyèdre convexe S , un point x ∈ S qui ne peut pas êtreexprimé comme combinaison linéaire convexe d’autrespoints y ∈ S (y = x). Ces points correspondent auxsommets du polytope.Tout point x d’un polyèdre convexe S ⊂ IRn estcombinaison linéaire convexe de points extrêmes de S . ´ Programmation lineaire – p.35/49
  36. 36. DéfinitionsUn problème de programmation linéaire à m contrainteset n variables est dit non-dégénéré si toutesous-matrice de dimension m × m extraite de la matriceaugmentée [Ae , b] de dimension m × (q + 1) estnon-singulière,Si tel n’est pas le cas, le problème est dit dégénéré.Les variables associées aux colonnes de la matrice B ,matrice non-singulière de dimension m × m extraite deAe sont appelées variables de base. Les autresvariables sont dites hors base,Une solution dans laquelle les variables hors base sonttoutes nulles est appelée solution de base. ´ Programmation lineaire – p.36/49
  37. 37. Méthode du simplexeOn écrit Ae sous la forme Ae = [B, N ] où N désigne lescolonnes de Ae qui ne sont pas dans B ,On partitionne les vecteurs xe en [xB , xN ] et cT en e cT , c T , B NToute solution du problème vérifie Ae xe = b, c-à-d : BxB + N xN = bLa solution de base associée à la base B est la solutionparticulière obtenue en posant xN = 0. Le vecteur xBest alors déterminé de façon unique par la résolution dusystème de Cramer : BxB = b, soit xb = B −1 b ´ Programmation lineaire – p.37/49
  38. 38. Méthode du simplexeOn ne modifie le système linéaire des contraintesAe xe = b en le multipliant par une matrice régulière K .La solution précédente a été obtenue en choisissantK = B −1 . On a en effet Ae xe = b ⇔ BxB + N xN = b Ae xe = b ⇔ xB + B −1 N xN = B −1 bCritère initial : M = c T xe = c T xB + c T xN e B N M = cT B −1 b + cT − cT B −1 N xN B N B M = M (x) + cT xN N ´ Programmation lineaire – p.38/49
  39. 39. Méthode du simplexeCritère initial : M = M (x) + cT xN NUne condition nécessaire et suffisante pour que B soitune base admissible optimale (au sens où la solutionde base associée est admissible et optimale) est que levecteur des coûts réduits des variables hors base soitnégatif ou nul ; cN ≤ 0.En effet, dans ce cas, comme xN ≥ 0, le terme cT xN Nest nécessairement négatif ou nul. Comme l’on chercheà maximiser la valeur du critère, cela signifie que l’on aatteint l’optimum et qu’il est égal à M (x). ´ Programmation lineaire – p.39/49
  40. 40. Méthode du simplexeOn considère une base quelconque B i et xi la solutioncorrespondante,S’il existe une variable hors base xs telle que lacomposante de rang s du vecteur de coûts réduits cNque l’on notera cN (s) est positive, alorsa) on peut augmenter indéfiniment la valeur de xs sans sortir de l’ensemble des solutions admissibles et, dans ce cas, l’optimum du critère est non borné,b) il existe une autre base B i+1 et une autre solution de base xi+1 telle que l’on ait M (xi+1 ) > M (xi ) ´ Programmation lineaire – p.40/49
  41. 41. Méthode du simplexeOn part de la solution xi = xi , xi = B −1 b, 0 B NOn envisage un déplacement dans lequel la variable xsest la seule parmi les variables hors base à changer devaleur : nulle dans la solution xi , elle va prendre unevaleur xs = θ > 0.La nouvelle solution x = [xB , xN ] obtenue vérifiera : xN = θesoù es est un vecteur de la dimension de xN avec toutesses composantes nulles sauf la composante de rang ségale à 1. ´ Programmation lineaire – p.41/49
  42. 42. Méthode du simplexeLa valeur de θ doit être choisie de telle sorte quex = [xB , xN ] reste une solution admissible, c’est-à-dire : xB = B −1 b − B −1 N xN ≥ 0avec : xN = θesd’où : xB = b − θN s ≥ 0En regroupant les contraintes, on a : xN = θes xB = b − θN s ´ Programmation lineaire – p.42/49
  43. 43. Méthode du simplexe Contraintes : xN = θes xB = b − θN s Deux cas peuvent alors se présenter :Cas 1 : N s ≤ 0 La valeur de θ peut être aussi grande que l’on veut, on aura toujours xB ≥ 0 et l’optimum du critère est non borné ´ Programmation lineaire – p.43/49
  44. 44. Méthode du simplexe Contraintes : xN = θes xB = b − θN s Deux cas peuvent alors se présenter :Cas 2 : ∃i(1 ≤ i ≤ m) | N s (i) > 0 La valeur de θ ne peut être augmentée indéfiniment ; ˆ la plus grande valeur θ de θ est définie par : ˆ b(i) b(r) θ= min = i,N s (i)>0 N s (i) N s (r) ˆ et l’on a M (xi+1) = M (xi ) + θ cN (s) > M (xi ). ´ Programmation lineaire – p.44/49
  45. 45. Méthode du simplexeSi le problème est non dégénéré, on remarque quecette solution a exactement m composantes non nulles. la variable xs , nulle dans xi , est devenue strictement positive, la variable xr , strictement positive dans xi a maintenant pour valeur : ˆ xr = b(r) − θ N s (r) = 0La solution xi+1 = xi+1 , xi+1 est une solution de base. B NElle correspond à la base B i+1 déduite de B i enremplaçant la colonne r par la colonne s (bases B i etB i+1 adjacentes. ´ Programmation lineaire – p.45/49
  46. 46. Problème de l’artisan chocolatierUn artisan chocolatier décide de confectionner des œufs en chocolat.En réserves, il lui reste 18 kg de cacao, 8 kg de noisettes et 14 l delait.Il a deux spécialités : l’œuf Extra et l’œuf Sublime.Un œuf Extra nécessite 1 kg de cacao, 1 kg de noisettes et 2 l de lait.Un œuf Sublime nécessite 3 kg de cacao, 1 kg de noisettes et 1 l delait.Il fera un profit de 20 Euros en vendant un oeuf Extra, et de 30 Eurosen vendant un œuf Sublime.Combien d’œufs Extra et Sublime doit-il fabriquer pour faire le plusgrand bénéfice possible ? ´ Programmation lineaire – p.46/49
  47. 47. Problème de l’artisan chocolatierNotons x1 le nombre d’œufs Extra et x 2 le nombred’œufs Sublime à produire. Le chocolatier cherche àmaximiser la fonction objectif : max z = 20x1 + 30x2Étant données les réserves du chocolatier, lescontraintes suivantes devront être satisfaites x1 + 3x2 ≤ 18 x1 + x 2 ≤ 8 2x1 + x2 ≤ 14On a, de plus, les deux contraintes x1 ≥ 0, x2 ≥ 0 ´ Programmation lineaire – p.47/49
  48. 48. Problème de l’artisan chocolatier ´ Programmation lineaire – p.48/49
  49. 49. Problème de l’artisan chocolatier ´ Programmation lineaire – p.49/49

×