Optimisation : Programmation Linéaire et non Linéaire Dans ce document nous présentons une méthode de résolution pour les programmes linéaire de facon très détaille et essayons de comprendre son fonctionnement et son apui théorique. La résolution des problèmes non linéaire est beaucoup plus compliquées, nous donnons un apercu assez succint. Le plus important pour nous est beaucoup plus la methodologie et l'approche de résolution que la résolution proprement dite Abdelkader BELAHCENE abdelkader.belahcene@enst.dz 12 mars 2017
Table des matières 1 Programmation Linéaire 3 1.1 Introduction.......................................... 3 1.2 Méthodes de Résolution................................... 6 1.3 La Méthode du Simplex................................... 9 1.4 Recherche d'une Solution de Base Réalisable....................... 13 1.5 Exercices........................................... 15 2 Concepts Avancés de la PL 17 2.1 Modèles Particuliers..................................... 17 2.2 La Dualité........................................... 20 2.3 Analyse Post Optimale et Sensitive............................. 26 2.4 Exercices........................................... 30 3 Programmation non Linéaire sans Contrainte 34 3.1 Introduction.......................................... 34 3.2 Fonction à une seule variable................................ 35 3.3 Optimisation de fonction à plusieurs variables....................... 39 3.4 Série d'exercices........................................ 44
1 Programmation Linéaire 1.1 Introduction L'objectif principal de ce chapitre est d'initier le lecteur à la reconnaissance, la formulation et la résolution d'une classe de problèmes en recherche opérationnelle dit de programmation linéaire. Ce chapitre sera illustré par un exemple pédagogique que l'on désignera par P.L 1 (cf. Exemple 1.1.1). Il est fortement recommandé au lecteur d'utiliser la méthodologie exposée au chapitre 1 pour formuler et modéliser ce problème. Exemple 1.1.1. Une usine fabrique deux produits P 1 et P 2 sur 3 machines M 1, M 2 et M 3. Le produit P 1 est fabriqué par les machines M 1 et M 2 alors que le produit P 2 est fabriqué sur les 3 machines. Le tableau suivant donne le temps de séjour des produits sur les machines. M 1 M 2 M 3 P 1 0.25 0.4 0 P 2 0.5 0.2 0.8 Le temps de séjour est donné en heure/unité de produit. La disponibilité hebdomadaire de chaque machine est de 40 h. Le produit P 1 engendre un prot unitaire de 20 D.A et le produit P 2 un prot unitaire de 30 D.A. Le problème consiste à déterminer le planning de production qui maximise le prot total. Ce problème contient un objectif, à savoir la maximisation du prot total. Les contraintes représentent la disponibilité hebdomadaire de chaque machine. Les variables de décisions (ou facteurs contrôlables) représentent le volume de production de chaque produit que l'on désigne respectivement par x 1 et x 2. Les facteurs non-contrôlables sont les prots unitaires sur chaque produit et la disponibilité hebdomadaire de chaque machine. La formulation de ce problème se trouve à la section 1.1.2. La fonction objective ainsi que les contraintes sont des fonctions linéaires par rapport aux variables de décision, d'où le nom de programmation linéaire. 1.1.1 Dénition : Un programme linéaire est un problème qui consiste à optimiser (maximiser ou minimiser) une fonction linéaire à plusieurs variables soumise à un ensemble de contraintes linéaires. D'une manière générale, un programme linéaire s'écrit sous la forme suivante : max F = c 1 x 1 +...+ c n x n a 11 x 1...+ a 1n x n R 1 b 1 a 21 x 1...+ a 1n x n R 2 b 2... a m1 x 1...+ a mn x n R m b m Les relations R 1, R 2,..., R m sont soient des égalités ou des inégalités. Les coecients c 1 et c n dans la fonction objective sont des nombres réels. De même que tous les coecients dans le système des contraintes sont des réels. Ce programme général peut aussi être exprimé sous la forme matricielle suivante : max F = C x A x R b (1.1)
1.1.1. Introduction A.Belahcene où A est la matrice m n des coecients des variables dans le système des contraintes, i.e., A = a 11... a 1n... a m1... a mn C est le vecteur des coecients dans la fonction objective C = (c,..., c n ), X est le vecteur représentant les variables de décision ( x 1, x 2,..., x n ) et b le vecteur second membre du système des contraintes ( b 1, b 2,..., b m ) = b t. Dans le cas du programme de l'exemple1.1.1, le nombre de variables n est 2 et le nombre de contraintes m est egal a 5. Les éléments de la matrice A sont résumés comme suit : a 11 = 0.25 a 21 = 0.4 a 31 = 0 a 41 = 1 a 51 = 0 a 12 = 0.5 a 22 = 0.2 a 32 = 0.8 a 42 = 0 a 52 = 1 Les vecteurs b et C sont : C = (2, 3) et b t = (40, 40, 40, 0, 0). Les trois premières relations R 1, R 2, et R 3 sont sous forme. Par contre, les relations R 4 et R 5 sont sous la forme. Ces deux dernières contraintes assurent la non-négativité des variables. Remarque 1.1.2. Comme tout programme linéaire peut se ramener à la forme standard d'un système d'équations voir système, nous allons uniquement nous intéressé à la résolution de ce type de programme. 1.1.2 Formulation d'un Programme Linéaire La formulation d'un problème en programme linéaire peut se faire en 4 étapes : Identication des variables elles sont souvent connues comme étant des activités et représentent les facteurs (objets) que nous contrôlons. Par exemple, les activités de l'usine précédente étant la production des produits P 1 et P 2, d'où le choix des variables x 1 et x 2. Il est important de bien dénir les unités de chaque variable. Les variables sont indépendantes, si une variables dépend d'autres elle est éliminée pour la taille du programme. Identication des objets sous contraintes. Dans l'exemple 1.1.1, le temps de séjour de chaque produit dans chacune des trois machines. Traduction Objectif sous forme mathématique de la fonction objective en termes de variables. Dans l'exemple 1.1.1 : max F (x 1, x 2 ) = 2 x 1 + 3 x 2 Traduction Contraintes mise en forme des contraintes du problème qui ne sont rien d'autre que les limites sur les objets. Dans l'exemple 1.1.1 Exemple 1.1.3. Le Probleme se formule comme suit 0.25 x 1 +0.5 x 2 40 0.4 x 1 +0.2 x 2 40 0.8 x 2 40 Il ne faut pas oublier les contraintes de non-négativités des variables : x 1 0 et x 2 0 En résumé le problème de l'exemple 1.1.1 se modélise comme : max F = 2x 1 + 3x 2 0.25x 1 +0.5x 2 40 0.4x 1 +0.2x 2 40 0.8x 2 40 x 1 0 et x 2 0 (1.2)
1.1.1. Introduction A.Belahcene 1.1.3 La Forme Standard Les méthodes de résolution d'un programme linéaire utilise souvent la forme standard. Nous allons donner sa dénition ainsi que les transformations utiles pour ramener un programme linéaire donne sous forme générale à une forme standard. On appelle forme standard d'un programme linéaire, la forme suivante : n max F = c j x j j=1 n a ij x j = b i i = 1, m j=1 x j 0 Cette forme impose aussi que les seconds membres des contraintes soient des nombres réels positifs ou nuls, c'est-à-dire, b 1 0, i = 1, 2,..., m. La traduction matricielle de la forme standard d'un programme linéaire est : max F = CX AX = b X 0 Lorsque le programme n'est pas donné sous la forme standard, il est utile d'utiliser les transformations suivantes : 1. La fonction objective consiste à minimiser une fonction linéaire F. Ceci est équivalent à maximiser G = F et on a la relation suivante : min F = max (G) 2. Lorsque une contrainte (par exemple la i ème ) n'est pas une égalité, deux cas peuvent se produire : a) a i1 x 1 +... + a in x n b i, on introduit une variable d'écart e i 0 pour avoir a i1 x 1 +... + a in x n + e i = b i b) a i1 x 1 +... + a in x n b i, on introduit une variable d'écart e i 0 pour avoir a i1 x 1 +... + a in x n e i = b i 3. Il arrive parfois qu'un ou plusieurs seconds membres des contraintes soit négatif. Pour mieux xer les idées, supposons que la contrainte i possède un b i négatif, en d'autres termes : a i1 x 1 +... + a in x n = b i avec b i < 0, Il sut, dans ce cas, de multiplier les deux termes de cette contrainte par ( 1) et on obtient : a i1 x 1... a in x n = b i avec b i 0, 4. Supposons que la j eme variable soit quelconque. Il faut, dans ce cas, faire des changements de variables et poser x j = x 1 j x2 j avec x1 j 0, x2 j 0. Écrivons la forme standard du programme linéaire associé à l'exemple précèdent. On introduit une variable d'écart pour chacune des trois contraintes on obtient : max F = 2x 1 + 3x 2 0.25x 1 +0.5x 2 +e 1 = 40 0.4x 1 +0.2x 2 +e 2 = 40 0.8x 2 +e 3 = 40 x 1 x 2 e 1 e 2 e 3 0
1.1.2. Méthodes de Résolution A.Belahcene 1.1.4 Espaces des Solutions Une solution d'un programme linéaire est un vecteur (x 1,..., x n ) de R satisfaisant aux contraintes du système. Par exemple, ( 1, 1) est solution du programme de l'exemple 1.1.1. Un vecteur de valeurs (x 1,..., x n ) est dit solution réalisable s'il vérie les contraintes du système. La solution ( 1, 1) n'est pas réalisable car elle ne vérie pas une containte. Par contre (0, 0) est solution réalisable. Une solution est dite de base si elle possède m variables de base et n m variables hors-base. Les variables hors-base doivent être nécessairement nulles. Une solution de base réalisable vérie en plus toutes les contraintes. Par exemple (0, 0, 40, 40, 40) est une solution de base réalisable pour le P.L 1. Cette dernière est obtenue en annulant les variables de décision x 1 et x 2. Elles sont donc des variables hors-base et les variables d'écart sont de base. Évidemment cette solution de base réalisable n'est pas unique et on peut trouver d'autres. On montre que la solution optimale est nécessairement de base. Un ensemble est convexe si, tout segment ayant ses extrémités dans l'ensemble, est dans cet ensemble. L'ensemble de toutes les solutions réalisables forme un polyèdre convexe. Il peut être vide, borné ou non-borné. Si ce polyèdre convexe est vide cela signie que le système des contraintes est incompatible, dans ce cas une analyse détaillée doit être envisagée. Lorsque le polyèdre est borné alors le problème possède au moins une solution optimale. Enn lorsque ce convexe n'est pas borné alors, soit nous avons omis une ou plusieurs contraintes, ou que le problème ne possède pas de solution optimale nie. Nous reviendrons en détail à ces problèmes particuliers dans le prochain chapitre. Il est important de savoir (la théorie l'a montré) que les sommets du convexe correspondent à des solutions de base réalisable et que si la solution optimale existe elle doit être forcément un de ces sommets. En d'autres termes la solution optimale est atteinte en un sommet du convexe. 1.2 Méthodes de Résolution Dans la littérature existante on distingue deux classes de méthodes de résolution d'un programme linéaire à savoir la méthode graphique et la méthode du simplexe avec ses diérentes variantes. Nous allons résoudre ce programme de 2 manières : Méthode graphique nous servira simplement a comprendre la procédure et énumérer les concepts de base importants, qui de toute façon est limitée a 2 variables. Méthode algébrique qui est évidemment celle utilisée dans les algorithmes de résolution. Il faut dire aussi que les méthodes implémentées dièrent quelque peu de celle présentée ici. Elle a été simpliée pour l'ecacité de l'utilisation de l'outil informatique. 1.2.1 La Méthode Graphique Cette méthode est simple mais malheureusement elle ne s'applique qu'aux programmes linéaires possédant au plus deux variables. Le principe de cette méthode est de représenter graphiquement l'espace engendré par l'ensemble des contraintes, de parcourir tous les sommets du polyèdre et de choisir ensuite celui qui optimise la fonction objective. Reprenons la forme initiale de l'exemple, et donnons les droites correspondant aux inégalités voir gure 1.1 page suivante. Chaque droite (prenons le cas par exemple de la droite D1) divise le plan en 3 parties : 1. la droite elle-même : ensemble des couples de points (x 1, x 2 ) vériant l'équation : 0.25x 1 +0.5x 2 = 40. 2. le demi-plan inférieur ensemble des couples de points (x 1, x 2 ) vériant l'inéquation : 0.25x 1 + 0.5x 2 < 40.
1.1.2. Méthodes de Résolution A.Belahcene 3. le demi-plan supérieur ensemble des couples de points (x 1, x 2 ) vériant l'inequation : 0.25x 1 + 0.5x 2 > 40. Les 2 premières parties sont solutions au problème, la troisième ne l'est pas. Par conséquent un point (x 1, x 2 ) est solution au problème si vérie toutes les contraintes, et donc appartient a l'intersection des domaines. De façon pratique prendre un point et voir s'il est ou non dans le domaine. Par exemple le point (0, 0) vérie toutes les contraintes. La droite D0 est au fait un faisceau de droites parallèles. Le déplacement de cette droite fait changer la valeur de la fonction objective, déterminer donc le sens de l'amélioration de la fonction objective. Par exemple pour le point (0, 0) la valeur de la fonction est 0 pour (30, 20) la valeur est 120 donc le déplacement de la droite vers la droite améliore la solution. On voit donc facilement la solution optimale, le dernier point du domaine réalisable en déplaçant D0 vers la droite, ici le point C. Voir le graphe 1.1. D0 2x 1 +3x 2 = z max F = 2x 1 + 3x 2 0.25x 1 +0.5x 2 40 0.4x 1 +0.2x 2 40 0.8x 2 40 x 1 0 et x 2 0 D1 0.25x 1 +0.5x 2 = 40 D2 0.4x 1 +0.2x 2 = 40 D3 +0.8x 2 = 40 D4 x 1 = 0 D5 x 2 = 0 Table 1.1 Résolution Graphique d'un PL Le domaine ainsi représenté est un polyèdre convexe, qui a des propriétés très intéressantes que nous allons voir ci après. Figure 1.1 Résolution graphique du P.L. 1
1.1.2. Méthodes de Résolution A.Belahcene Dans le cas de l'exemple 1.1.1, le polyèdre convexe correspondant est représenté sur la gure 1.1. Ce polyèdre possède 5 sommets O, A, B, C, D de coordonnées respectives (0,0), (0,50), (60,50), (80,40) et (100,0). Les valeurs de la fonction objective en ces points sont respectivement 0, 150, 270, 280 et 270. Il est donc évident que le sommet C est la solution optimale, correspondant aux valeurs : x 1 = 80, x 2 = 40 et F = 280. 1.2.2 Principes Fondamentaux La Solution est un Sommet La solution optimale d'un PL (Programme Linéaire) si elle existe, est un sommet : Dans notre cas un sommet est l'intersection de 2 droites, dans l'espace a 3 dimensions, c'est l'intersection de 3 plans, en général dans l'espace à n dimensions c'est l'intersection de n hyperplans. Considérons le point B(60, 50) sur le graphe, il se trouve sur la droite D1 donc la variable d'écart correspondante e 1 = 0 et sur la droite D3, donc e 3 = 0. Ceci est valable pour tous les sommets. Notons que certains sommets ne sont par réalisables, comme pour le sommet S(75, 50) intersection D2 et D3. Un sommet peut être l'intersection de plus de 2 droites, c'est alors un sommet dégénéré. La Signication Algébrique Algébriquement, un sommet (toujours dans le plan) correspond une solution de base, c'est a dire, 2 variables (au moins) sont nulles. Si on revient a notre exemple, voir le système de la section 1.1.3 page 5. La solution optimale est donc une solution de base, correspondant a 2 variables nulles et les autres sont calculées par résolution du système d'équations 3X3. Par exemple le point O(0, 0) correspond aux valeurs (x 1 = 0, x 2 = 0, e 1 = 40, e 2 = 40 et e 3 = 40). Le point A(0, 50) correspond a la solution ( x 1 = 0, x 2 = 50, e 1 = 15, e 2 = 30 et e 3 = 0). On dira que la variable x 2 est entrée dans la base, devenue non nulle et la variable e 3 est sortie de la base avec la valeur 0; De plus c'est deux sommets sont adjacents. Direction de Déplacement La procédure d'optimisation est donc de se déplacer d'un sommet à un autre sommet adjacent en s'assurant de l'amélioration de la solution. Exercice 1.2.1. Donner pour notre exemple, le nombre de sommets, de sommets réalisables et comment trouver leur coordonnées. Généraliser pour un PL avec N variables principales et M contraintes. A deux sommets adjacents correspond deux solutions de base qui varient uniquement par une variable. Les sommets O et A sont adjacents, leur solutions de base (e 1, e 2, e 3 ) et ( e 1, e 2, x 2 ) varient par les variables e 3 et x 2. C'est a dire e 3 est sortie de la base et x 2 est entrée. Ici nous avons choisi de nous déplacer dans la direction x 2, c'est à dire on a choisi de faire rentrer cette variable dans la base, car on sait qu'elle améliore 1 la solution. Limite des valeurs des variables Pourquoi sommes nous arrêter au point A, au lieu d'aller au point T(0, 80) par exemple qui est aussi un sommet? La réponse est évidente au vue du graphe, sinon on sort du domaine de faisabilité, T est un point non réalisable, il ne vérie par la troisième contrainte. Maintenant comment le traduire algébriquement? Nous verrons la justication détaillée plus tard, pour l'instant nous disons, que la variable e 3 est positive au dessous de la droite D3, elle devient nulle sur D3 et devient négative plus haut. Puisque toutes les variables doivent être non-négative, T est donc refuse. La procédure de passage d'un sommet a un autre doit prendre en charge la positivite des variables. 1. On verra plus tard pour la justication algébrique
1.1.3. La Méthode du Simplex A.Belahcene Critère d'arrêt Lorsqu'il n'y a plus d'amélioration possible, si la solution est réalisable alors elle est optimale sinon elle n'existe pas. 1.3 La Méthode du Simplex 1.3.1 Les Concepts de Base Cette section fait suite, à la section sur les Principes Fondamentaux, dans laquelle nous allons traduire algébriquement les règles déjà obtenues graphiquement. Cette méthode a été mise au point par Dantzig en 1948. Elle permet de résoudre les problèmes de la programmation linéaire. Son principe est de passer d'une solution de base réalisable à une autre solution de base réalisable meilleure (amélioration de la valeur de la fonction objective). Dans le cas où il n'est pas possible d'améliorer cette valeur alors la solution optimale est atteinte (si elle existe). Néanmoins, l'utilisation de cette méthode nécessite une solution de base réalisable de départ. Cette condition n'est pas un handicap puisque l'on verra à la section 1.4 comment obtenir une solution de base réalisable de départ. Les diérentes étapes de la résolution du P.L.1 par la méthode du simplexe sont décrites par la gure 1.2 suivante : Etape 1 A B Etape 2 C Fin Debut O D Figure 1.2 Cheminement de la méthode du simplexe Nous allons illustrer à travers l'exemple 1.1.1 le fonctionnement de la méthode du simplexe et déduire par la suite l'algorithme de résolution d'une manière générale et donner les justication des règles utilisées. Reprenons la forme standard vue a la section 1.1.3 et donnons le tableau du simplex associé : X B C B P 1 P 2 P 3 P 4 P 5 b e 1 0 0.25 0.5 1 0 0 40 e 2 0 0.4 0.2 0 1 0 40 e 3 0 0 0.8 0 0 1 40 C j 2 3 0 0 0 Y j 0 0 0 0 0 j 2 3 0 0 0 Z = 0 Figure 1.3 Tableau Initial de l'exemple Cette solution de base (ce tableau) correspond sur le graphe à l'origine O = (0,0). Nous avons noté par :
1.1.3. La Méthode du Simplex A.Belahcene X B, X N Variables de base et hors base. Rappelons que les variables hors base sont toujours nulles C B, C N Coecients de ces variables dans la fonction objective, respectivement des variables de base et hors base. A B, A N Matrice des coecients des contraintes scindée en colonnes des variables de base et hors base. Y j = C B.P j est le produit scalaire des vecteurs colonnes P j et C B. Il représente l'inuence des variables de base dans la fonction objective. j est le gain réduit causé par la variable hors base j si elle rentrait dans la base. Z Valeur de la fonction objective. 1.3.2 Méthode Pratique par les Tableaux Dans ce tableau ( 1.3 page précédente), La solution actuelle est (40, 40, 40), qui est le vecteur b, correspondant aux variables de base e 1, e 2 et e 3. La valeur de la fonction objective est nulle Z = 0. Les variables hors base sont nulles. Nous résumons les étapes a suivre, nous verrons plus loin les justications. 1. Une hors base peut rentrer si son coût réduit est positif. Dans notre cas x 2 (ou d'ailleurs x 1 ) peut rentrer dans la base, car son delta est positif ( 2 = 3). On choisit donc la colonne pivot. 2. Parmi les variables de base, prendre celle qui correspond au minimum du rapport de b et de la colonne pivot. Dans notre cas, on choisit de sortir de la base la variable e 3 qui correspond au minimum : min ( b ) = min( 40 P 2 0.5, 40 0.2, 40 0.8 ) = 50 3. La case pivot ainsi obtenue, va permettre de transformer le tableau avec la méthode de Gauss, et obtenir la nouvelle solution, de sorte que le vecteur entrant dans la base (ici P 2 ) devient identité, 1 a la position e 3 et 0 ailleurs. Voyons comment la transformation est faite sur l'exemple, la généralisation est immédiate. Soit Lp=(e 3, 0, 0, 0.8, 0, 0, 1, 40), la nouvelle ligne pivot sera NLp=(x 2, 3, 0, 1, 0, 0, 1.25, 50), après division par le pivot 0.8, évidemment les 2 premiers éléments x 2 et 3, ne sont pas concernés par la division. La nouvelle ligne une : NL1 est obtenue à partir de L1 (ancienne ligne une) et de NL1 comme suit : NL1= L1-0.5*NLp, ou 0.5 est la case colonne pivot ligne une. Ainsi NL1= (e 1, 0.25, 0, 1, 0, 0, 0.625, 25). On fait de même pour la ligne 2. Notons l'ordre de la soustraction, ne pas détruire l'identité 4. Compléter le tableau par calcul des autres éléments (Y, et Z). Les deuxième et troisième tableaux obtenus sont comme suit : X b C b P 1 P 2 P 3 P 4 P 5 b 1 e 1 0 0 1 0 5 15 8 4 e 2 0 0 0 1 10 1 30 4 5 x 2 3 0 1 0 0 50 4 C j 2 3 0 0 0 Y j 0 3 0 0 15 4 150 j 2 0 0 0 15 4 X b C b P 1 P 2 P 3 P 4 P 5 b x 1 2 1 0 4 0 5 2 e 2 0 0 0 8 3 1 5 4 5 x 2 3 0 1 0 0 4 C j 2 3 0 0 0 Y j 2 3 8 0 5 4 5 j 0 0-8 0 4 Exercice 1.3.1. Donner le tableau suivant et vérie qu'il est optimal, et correspond au sommet C sur le graphe 1.1 page 7. La variable d'écart e 3 n'est pas nulle à l'optimum. En pratique, cela signie que la troisième contrainte n'est pas serrée. Ceci veut dire que l'utilisation hebdomadaire de la troisième machine n'a pas atteint la limite qui est de 40 heures. 60 6 50 270
1.1.3. La Méthode du Simplex A.Belahcene 1.3.3 Justication de la Méthode Critère d'entrée La variable candidate à entrer dans la base est celle qui possède un coecient réduit j positif, en général on choix le plus élevé dans l'espoir d'arriver plus vite, ce qui n'est pas toujours vrai. En d'autres termes la nouvelle variable de base x r est telle que : r = max{ j, j > 0} où j représente le coecient de la variable x j dans le vecteur F, son expression sera explicitée ultérieurement. Ainsi, la variable x 2 à la première étape de résolution du programme linéaire rentre en base car elle possède le coecient le plus élevé dans j. Nous allons donner la justication de ce choix. A une étape quelconque, disons p, de notre algorithme, nous pouvons éclater notre espace en variables de base X B, B ensemble de variables de base, et hors base X N, N ensemble de variables hors base, ces dernières sont nulles. Regardons la condition sur une variable hors base x k avec k N, notons N = N {k}, les variables hors base qui restent donc nulles. Nous donnons ici le debut de la démonstration, Le reste est laissé en exercice. Z = i B c i x i + i N c i x i + c k x k = i B c i x i (1.3) Z = i B c i x i + i N c i x i + c k x k = i B c i x i + c k x k (1.4) Dans la pemiere equation 1.3 toutes les variables de i N, sont nulles, dans la seconde 1.4 la variable x k prend une valeur, de meme les variables de base changent de valeur. Démonstration. La variable x k améliore la solution si Z Z > 0. Déterminons d'abord les nouvelles valeurs des variables de base x i pour i B. x i = b i a ik x k j N a ij x i = b i a ik x k (1.5) Cette equation correspondant à la ligne x i du tableau du simplex est établie car variables j N restent nulles. En d'autres termes la quantité a ik x k est la modication de la valeur de la variable x i (elle était b i ) lorsque x k devient positive. Pour l'ensemble du problème, faire la somme pour toutes les variables de base. Ainsi l'équation 1.4 devient Z = i B c i (b i a ik x k ) + c k x k = i B c i b i + c k x k i B c i a ik x k (1.6) = Z + (c k i B c i a ik )x k = Z + (c k C B P k )x k = Z + k x k (1.7) L'amélioration est donc possible si k = c k Y k > 0, où P k est la colonne correspondant à la variable x k et Y k = C B P k du tableau du simplexe. Critère de sortie Pour déduire la formule permettant de trouver la variable x s qui sort de la base, il serait utile de reprendre l'illustration de la méthode du simplexe et de voir comment, par exemple, à la première étape la variable e 3 est sortie de la base : e 1 = 40 0.5x 2 0 e 2 = 40 0.2x 2 0 e 3 = 40 0.8x 2 0 (1.8)
1.1.3. La Méthode du Simplex A.Belahcene Ce système est équivalent à : x 2 40 0.5 = 80, x 2 40 0.2 = 200, x 2 40 = 50, (1.9) 0.8 Ceci implique que x 2 = min{80, 200, 50} = 50. Ensuite, on a posé que x 2 = 50. Il ne faut pas perdre de vue que x 2 représente la variable rentrante, c'est-à-dire x r. La variable x s doit donc satisfaire le critère suivant : min{b i /a ir, a ir > 0} = b s /a sr ou a ir est appelé le pivot. La variable x s est la première variable de base qui s'annule quand on augmente la valeur de la variable hors base x r et toutes les autres variables de base restent donc positives. A la première étape on a : b 3 b 1 a 12 = 80, b 2 b 2 b 3 a 32 = 50 = 200, a 22 b 3 }. Formellement a 32 Par suite la variable e3 sort de la base car elle vérie bien : = min { b 1 ; ; a 32 a 12 a 22 on peut écrire les formules de passage d'une étape à une autre comme suit : Soient r et s les indices des variables entrante et sortante, et a k ij l'élément de la ligne i, de la colonne j du kem tableau et a k sj l'élément pivot. Nous aurons alors : a k+1 sj = ak sj a k sr j = 1,..., m + n + 1 a k+1 sj = a k sj ak sr a k ir i s et j = 1,..., m + n + 1 (1.10) Rappelons que le tableau du simplexe a n + m colonnes correspondant aux variables initiales et d'écart et une colonne correspondant au second membre. Critère d'arrêt Nous avons vu que la méthode du simplexe dans le cas d'un problème de maximisation se termine lorsque les coecients des variables hors-base dans le vecteur F sont tous négatifs ou nuls. En d'autres termes, on doit avoir : j 0, j N où N) représente les indices des variables hors-base. Résumé Tous les mécanismes de calcul que nous venons d'eectuer peuvent être résumés dans un tableau, appelé, tableau du simplexe. Reprenons le programme 1.1.3 page 5 max F = 2x 1 +3x 2 0.25x 1 +0.5x 2 +e 1 = 40 0.4x 1 +0.2x 2 +e 2 = 40 0.8x 2 +e 3 = 40 x 1, x 2, e 1, e 2, e 3 0 On remarque que tous les coecients j sont négatifs ou nuls, la solution courante est donc optimale. L'algorithme du simplexe s'énonce comme suit : 1. Mettre le programme linéaire sous sa forme standard. 2. Recherche d'une solution de base réalisable de départ. 3. Construire le premier tableau du simplexe. Tester si : j 0, j {1,..., n} 4. si oui ; terminer la solution est optimale si non ; aller en (5) 5. Soit r = max{ j j > 0} la variable x r entre en base Tester si : a ir 0 i {1,..., m} si oui ; terminer le problème ne possède pas de solution optimale nie. si non ; aller en (6)
1.1.4. Recherche d'une Solution de Base Réalisable A.Belahcene 6. On détermine la variable sortante x s par : b s = min{ b i, a ir > 0} où a sr est le pivot. Aller en (6) a sr a ir 7. Obtenir le nouveau tableau du simplexe en divisant la ligne-pivot par le pivot. Les autres éléments du tableau sont obtenus par la règle précédente ( voir formule 1.10). Aller en (3). 1.4 Recherche d'une Solution de Base Réalisable Il est impératif d'avoir une solution de base réalisable de départ pour pouvoir utiliser la méthode du simplexe. Dans plusieurs situations, celle-ci n'est pas toujours facile à obtenir. La méthode des deux phases que nous allons exposer dans ce paragraphe est une variante de la méthode du simplexe. La première phase consiste à associer un problème auxiliaire au programme-standard pour déterminer une solution de base réalisable. La deuxième phase utilise la méthode du simplexe pour optimiser cette solution obtenue. En général on utilise 2 méthodes : methode du BigM : consiste a ajouter des variables articielles pour obtenir une solution de base, avec un cout tres negatif penalisant donc ces variables de sorte a les faire sortir de la base. On fait sortir les variables articielles grace au cout tres negatif. On obtient une base de depart, bien sur non realisable. On utilise l'algorithme de facon tout a fait ordinaire. Voir exercice 1.4.2 page suivante. methode du programme auxiliaire. Nous la présentons ici en détail. Considérons le problème linéaire sous sa forme standard : max F = cx Ax = b x 0 (1.11) Nous Associons 1.11 le programme auxiliaire suivant : min ϕ = m i=1 Ax +y = b y i x 0, y 0 x désigne le vecteur variable du programme d'origine ainsi que les variables d'écarts et y le vecteur représentant les variables articielles. Le programme auxiliaire 1.4 est obtenu a partir du programme 1.11 après ajout des variables y i appelées variables articielles. On rajoute les variables articielles uniquement aux contraintes du programme 1.4 qui ne contiennent pas de variable de base. La solution de base ne peut être réalisable que si les valeurs des Y sont nulles. Le principe de la méthode des deux phases est : Phase 1 : Résoudre le problème auxiliaire par la méthode du simplexe. Si ce problème possède une solution optimale nie, alors cette solution est de base réalisable pour le problème initial. Phase 2 : Résoudre le problème initial en utilisant comme solution de base réalisable de départ, celle trouvée à la n de la phase 1. Exemple 1.4.1. Donner la forme standard du programme lineaire suivant : min f = x 1 + 2x 2 2x 1 + x 2 6 x 1 + x 2 = 4 x 1 + 3x 2 8 x 1, x 2 0 max f = x 1 2x 2 2x 1 +x 2 +e 1 = 6 x 1 +x 2 = 4 x 1 +3x 2 e 2 = 8 x 1, x 2, e 1, e 2 0 (1.12)
1.1.4. Recherche d'une Solution de Base Réalisable A.Belahcene Exercice 1.4.2. Faire la résolution graphique, puis utiliser la méthode du BigM puis des deux phases pour résoudre ce problème Il n'est pas nécessaire de rajouter une variable articielle à la première contrainte. En eet, en écrivant la forme standard du programme (P.L.2) on obtient : La première contrainte contient la variable e 1 comme variable de base. Par contre, on doit rajouter une variable articielle à la deuxième et à la troisième contrainte. Le problème auxiliaire (P.L.A) du problème (P.L 2) s'écrit comme : min ϕ = y 1 +y 2 2x 1 +x 2 +e 1 = 6 x 1 +x 2 +y 1 = 4 x 1 +3x 2 e 2 + y 2 = 8 x 1, x 2, e 1, e 2, y 1, y 2 0 (1.13) Avant d'utiliser la méthode du simplexe pour résoudre le programme 1.13. on se gardera de ne pas oublier d'exprimer la fonction objective de ce programme en termes de variables hors-base. A la n de la phase 1, s'il existe une solution optimale nie alors elle doit être nécessairement nulle avec y i = 0 i I(A), où I(A) représente l'ensemble des indices des variables articielles. Nous discuterons dans le prochain chapitre le cas où il n'existe pas de solution optimale nie. Pour accroître la rapidité de résolution du problème, il est conseillé d'introduire dans le tableau du simplexe, lors de la résolution de la phase 1 du programme 1.13, la fonction objective du programme 1.12. et lui faire subir les mêmes mécanismes de calcul que ceux eectués pour la fonction objective ϕ. Utilisons la méthode des deux phases pour résoudre le problème 1.13. Pour cela, exprimons la fonction objective du problème en terme de variable hors-base x 1, x 2 et e 2. Ce problème est équivalent au problème suivant 2 : max ( ϕ) = 2x 1 + 4x 2 e 2 2x 1 +x 2 +e 1 = 6 x 1 +x 2 +y 1 = 4 x 1 +3x 2 e 2 + y 2 = 8 x 1, x 2, e 1, e 2, y 1, y 2 0 (1.14) Phase 1 : Le premier et deuxième tableau du simplexe ( pour le probleme modie) : X B C B x 1 x 2 e 1 e 2 y 1 y 2 b e 1 0 2 1 1 0 0 0 6 y 1 0 1 1 0 0 1 0 4 y 2 0 1 3 0-1 0 1 8 C j 2 4 0-1 0 0 Y j 0 0 0 0 0 0 0 j 2 4 0-1 0 0 X B C B x 1 x 2 e 1 e 2 y 1 b 5 1 10 e 1 0 0 1 0 3 3 3 2 1 4 y 1 0 0 0 1 3 3 3 1 x 2 4 1 0 1 8 0 3 3 3 C j 2 4 0-1 0 4 Y j 3 2 j 3 La variable x 2 entre en base et la variable articielle y 2 sort de cette base. 4 0 4 3 0 0 1 3 On remarque que la dernière colonne du tableau initial ne gure plus dans ce tableau cela est dû au fait que lorsqu'une variable articielle quitte la base, elle ne la réintègre plus, il est donc inutile de 2. Nous négligeons la constante 12, 0 0 32 3
1.1.5. Exercices A.Belahcene conserver la colonne correspondante. La variable x 1 entre en base et remplace la variable articielle y 2. Remarquant que nous pouvons faire sortir aussi la variable e 1 au lieu de y 1, mais la nouvelle valeur de y 1 sera nulle et donc nous l'eliminons de toute facon. On obtient donc le tableau de la seconde itération. Le critère d'optimalité pour la fonction ϕ est vérié car j, j = 0. D'où la solution de base réalisable de départ : x 1 = 2, x 2 = 2, e 1 = e 2 = 0. On integre la fonction objective max f = f = x 1 2x 2, initiale dans le tableau realisable et on continue l'algorithme. Phase 2 : Utilisons la méthode du simplexe avec comme solution de départ la solution de base réalisable obtenue à la phase 1. Voir les tableaux suivants. X B C B x 1 x 2 e 1 e 2 b e 1 0 0 0 1 1 2 1 x 1 2 1 0 0 2 x 2 4 0 1 0 1 2 C j 2 4 0-1 Y j 2 4 0-1 12 j 0 0 0 0 0 2 2 X B C B x 1 x 2 e 1 e 2 b e 1 0 0 0 1 1 2 1 x 1-1 1 0 0 2 x 2-2 0 1 0 1 2 C j -1-2 0 0 Y j -1-2 0 1 2 j 0 0 0-1 2 0 2 2-6 Les coecients des variables dans la fonction objective étant tous négatifs ou nuls, la solution courante (x 1 = 2, x 2 = 2, e 1 = e 2 = 0 et F = 6) est donc optimale. 1.5 Exercices 1. Déterminer la forme standard associée aux programmes linéaires suivants : et donner la forme matricielle. 3x 1 3x 2 +7x 3 min 6x 1 3x 2 +2x 3 min x 1 +x 2 +3x 3 40 x 1 +3x 2 +x 3 40 x 1 +9x 2 7x 3 50 2x 1 +3x 2 +3x 3 50 5x 1 +3x 2 = 20 4x 1 +2x 2 +x 3 20 5x 2 +8x 3 100 x 1 0 x 2 0 x 3 R x 1 0 x 2 0 x 3 0 2. Reprendre le texte de a) Résoudre graphiquement ce problème. b) Résoudre ce problème par la méthode du simplexe. 3. Reprendre le Texte de 4.. a) Écrire la forme standard associée. b) Résoudre graphiquement ce problème. Conclure. c) Résoudre ce programme linéaire en utilisant la méthode des deux phases. d) Resoudre ce programme avec la methode du BigM. e) reprendre le meme probleme (meme contraintes), en remplacant l'objectif minimisation des couts par maximisation des prots. Résoudre graphiquement puis avec la methode du BigM, et enn avec la methode des 2 phases le programme min W = 3u 1 + u 2 u 1 u 2 2 u 1 +u 2 1 u 1, u 2 0
1.1.5. Exercices A.Belahcene 5. Résoudre le programme avec la methode du BigM min W = 40u 1 +40u 2 40u 3 0.25u 1 +0.4u 2 2 0.5u 1 +0.2u 2 +0.8u 3 3 u 1 u 2 u 3 0 6. Reprendre le texte du a) Écrire sa forme standard. b) Résoudre graphiquement ce problème. c) Résoudre ce problème par l'algorithme du simplexe. 7. Démontrer que le choix de la variable entrant est correct, voir section 1.3.3 page 11 8. Soient les programmes linéaires suivants : max Z = x 1 +2x 2 3x 3 x 1 +x 2 +x 3 = 6 x 1 +x 2 +2x 3 = 4 +2x 2 +3x 3 = 0 x 3 2 x 1 0 x 2 0 x 3 0 max Z = x 3 2x 4 x 5 +11 x 1 +x 3 x 4 +2x 5 = 2 x 2 x 3 +2x 4 x 5 50 4x 1 +2x 2 +x 3 20 x j 0 j = 1..5 Résoudre ces programmes linéaires en utilisant la méthode la plus appropriée. 9. Une entreprise de conserve de tomates utilise 2 ateliers pour l'emballage et 3 dépôts pour le stockage du produit ni. Dépot D1 D2 D3 Elle organise le transport des ateliers aux dépôts Atelier de sorte a satisfaire la demande aux moindres coûts. A1 25 17 18 Les coûts de transport sont résumés dans le tableau. A2 25 18 14 L'atelier 1 peut produire jusqu'à 850 cartons en une semaine, l'atelier 2 son niveau de production maximal atteint 650 cartons en une semaine. La demande au niveau de chaque dépôt est estimée respectivement à 300, 400 et 500 cartons. a) Structurer, formuler et modéliser ce problème. b) Résoudre ce problème en utilisant une méthode appropriée. 10. Montrer, en utilisant la méthode graphique, que ce programme linéaire possède une innité de solutions. x 2 Le domaine convexe de ce programme linéaire est donné par la gure ci-contre. Les sommets B = (2.6) et C = (4.3) sont solutions optimales. Donc toute combinaison convexe de ces deux solutions optimales est aussi optimale. (0.6) (2.6) (4.3) x 1 droite de F L'ensemble des solutions optimales est O = { (x 1, x 2 ) 3 x 1 + 2 x 2 = 18. Le lecteur est invité à montrer algébriquement ce résultat.
2 Concepts Avancés de la PL Nous allons exposer quelques modèles particuliers de programmation linéaire et nous donnons les méthodes adéquates de résolution. Ensuite nous abordons l'analyse sensitive et post-optimale qui est d'un intérêt capital dans la vie pratique. Une autre partie sera consacrée à la notion de dualité en programmation linéaire. L'accent sera mis sur l'intérêt pratique de la dualité surtout en analyse sensitive et post-optimale. 2.1 Modèles Particuliers 2.1.1 Modèle irréalisable Un programme linéaire est dit irréalisable si certaines de ses contraintes se contredisent. Prenons à titre d'exemple un programme linéaire ayant les contraintes suivantes : x 1 + x 2 7 et x 1 + x 2 2. max Z = 2x 1 + 3x 2 Ce programme est irréalisable, puisque il n'a pas de solution. Lorsqu'un tel cas se présente la formulation du problème doit être revue. On peut reconnaître un tel cas par la présence d'une variable articielle dans la base à la n de la phase 1. 2.1.2 Modèle Dégénéré Un modèle est dégénéré si une variable de base est nulle. Le cas de degenerescence est extremment rare, malgre tout il faut le prendre en consideration. Dans ce cas, il est possible qu'une itération de la méthode du simplexe n'améliore pas la valeur de la fonction objective. Pour illustrer ce cas, considérons un programme linéaire dont l'ensemble des contraintes est délimité par les contraintes A, B et C. On rappelle, qu'en général, la méthode du simplexe passe d'un sommet S 1 où les contraintes A et B se rencontrent au sommet S 2 où les contraintes B et C se rencontrent tout en améliorant la valeur de la fonction objective. La gure 2.1(a) donne un cas de situation normale et la gure 2.1(b) le cas d'un modèle dégénéré. Exemple 2.1.1. Considerons le cas suivant. Si on fait entrer la variable x 2 et donc e 5 sort en entre dans le cycle de degenrescence, par contre si e 1 entre et donc e 2 on evite la degenerescence du moins pour le moment.
2.2.1. Modèles Particuliers A.Belahcene X B C B x 1 x 2 x 3 e 1 e 2 e 3 e 4 e 5 b 4 x 3 0 2 1-3 0 2 0 0 1 3 e 2 0 0-1 0 3 1-1 0 0 4 x 1 11 1 0 0 0 0 2 0 0 3 6 e 4 0 0 0 0 1 0-1 1 0 2 e 5 0 0 1 0-1 0 1 0 1 0 C j 11 23 4 0 0 0 0 0 6 3 3 Y j 11 8 4-4 0 1 0 0 6 3 3 j 0 5 0 4 0 1 0 0 A S1 S2 B C a) Situation normale A B S1= S2 C b) Situation degeneree Figure 2.1 Situation normale et situation dégénérée Considérons la situation où, lors de la résolution d'un problème par la méthode du simplexe, on passe du sommet S 1 au sommet S 2, correspondant à deux solutions de bases diérentes. Dans certains cas, voir l exemple de la gure 2.1 (b), S 1 et S 2 est le même sommet, on peut ainsi rester au même point après plusieurs itérations. Cette situation est aussi appelée cycle. Le cycle peut être inni. La convergence de l'algorithme du simplexe n'est pas assurée dans ce type de problème. Pour éviter le cycle, on peut utiliser, par exemple, la méthode de perturbation. Elle permet de passer d'une première solution de base réalisable à la solution optimale, si elle existe, sans retourner à une solution antérieure. Dans cette méthode le vecteur b est substitué par le vecteur b(ε), déni comme suit ( on l'appelle représentation lexicographique) : b(ε) = b + n ε j P j où ε est un nombre très petit et P j représente le vecteur-colonne de la variable x j dans la matrice du système des contraintes. Cette façon de faire permet de séparer les cas ex-equo, c'est a dire 0 + εest diérent de 0 + ε 2 bien qu a la limite (ε = 0) la valeur sera la même. géometriquement cela signie que l'on sépare légèrement les sommets S 1 et S 2 par exemple de la gure 2.1, et quand on quitte le sommet S 1 pour S 2 on ne revient plus sur S 1, car S 2 correspond à une meilleure solution que S 1. On résout par la méthode du simplexe ce problème perturbé puis on revient, à la n de la résolution, au problème initial en posant ε = 0. j=1 2.1.3 Modèle non Borné Un programme linéaire est dit non borné si son optimum est inni. On reconnaît un tel modèle lorsqu'à une itération donnée, le vecteur-colonne de la variable x r qui entre dans la base est négatif ou nul. Le programme linéaire ne possède pas de solution optimale nale car on peut augmenter indéniment la valeur de la variable x r.
2.2.1. Modèles Particuliers A.Belahcene Soit le programme linéaire 2.1 suivant : x 2 max F = x 1 +x 2 x 1 x 2 1 2 x 1 +x 2 3 x 1, x 2 0 (2.1) (0.3) Domain Résoudre ce programme linéaire en utilisant la méthode du simplexe. Retrouver le resultat en vous inspirant de la gure. les variables d'écart e 1 et e 2, en utilisant la méthode du simplexe et après une itération, on obtient le tableau suivant : (1.0) Base C B x 1 x 2 e 1 e 2 b x 1 1 1-1 1 0 1 e 2 0 0-1 2 1 5 1 0 2-1 0-1 La variable x 2 est candidate à entrer dans la base. Mais, le vecteur P 2 est négatif. On ne peut sortir une variable, car la variable x 2 peut être augmentée indéniment sans que l'une des variables de base devienne négative. En eet, la première ligne s'écrit : x1 x 1 x 2 + e 1 = 1 ou encore, x 1 = 1 + x 2 e 1 En gardant e 1 = 0, on peut augmenter indéniment la variable x 2 la variable x 1 reste positive ou nulle. On peut faire de même pour la seconde ligne de ce tableau. En pratique, cette situation peut signier l'omission d'une contrainte vitale. Dans ce cas, une restructuration du problème s'impose. 2.1.4 Modèles à Innité de Solutions Il existe en pratique des modèles qui possèdent une innité de solutions optimales. Ce type de modèle apparaît lorsqu'à la n de la résolution du programme linéaire par la méthode du simplexe une variable hors-base possède un coecient reduit nul ( = 0). Dans ce cas, une itération supplémentaire donnera une seconde solution optimale. Toute combinaison convexe (i.e combinaison linéaire dont la somme des coecients est égale à 1) de ces deux solutions est une solution optimale. Soit le programme linéaire 2.2 suivant : x 2 max F = 3 x 1 + 2 x 2 3x 1 +2 x 2 18 x 1 4 x 2 6 x 1, x 2 0 (2.2) (0.6) (2.6) (4.3) x 1 droite de F Montrer, en utilisant la méthode graphique, que ce programme linéaire possède une innité de solutions. Le domaine convexe de ce programme linéaire est donné par la gure.
2.2.2. La Dualité A.Belahcene Les sommets B = (2, 6) et C = (4, 3) sont solutions optimales. Donc toute combinaison convexe de ces deux solutions optimales est aussi optimale. L'ensemble des solutions optimales est O = { (x 1, x 2 ) 3 x 1 + 2 x 2 = 18 }. Le lecteur est invité à montrer algébriquement ce résultat. 2.2 La Dualité En pratique, il arrive que la résolution d'un programme linéaire par la méthode du simplexe soit dicile en raison du nombre important de contraintes dans le programme linéaire. Le passage à la forme duale réduit la taille des solutions de base, la résolution traitera des matrices réduites. La dualité joue un rôle important en analyse post-optimale et sensitive, à cause surtout du théorème des écarts complémentaires que nous verrons à la soussection 2.2.2 Considérons les programmes linéaire duaux : primal et dual suivants. A chaque contrainte i du primal on associe une variable duale u i. c 1 x 1 +c 2 x 2 +... +cx nn Min z a 11 x 1 +a 12 x 2 +... +a hn x n b l............... a hl x 1 +a h2 x 2 +... +a hn x n b h a (h+1)1 x 1 +... +a (h+n)n x n = b (h+1)............... a ml x l +a m2 x 2 +... +a mn x n = b m x j 0 x j R j = 1,..., K j = k 1,..., n Associons a chaque contrainte i une variable duale u j. nous obtenons le programme dual : b 1 u 1 +b 2 u 2 +... +b m u n MaxW a 11 u 1 +a 12 u 2 +... +a lm u m c l............... a k1 u 1 +a k2 u 2 +... +a km u m c k a (k 1)1 u 1 +.. +a (k l)m u m = c (k+1)............... a n1 u 1 +a n2 u 2 +... +a mn u n = c n u 1 0 i = 1,..., h u 1 R j = h + 1,..., m La façon la plus simple d'obtenir le programme dual à partir du primal est de le mettre sous l'une des formes standards, on peut passer de l'un à l'autre et inversement. max Z = C x (P ) A x b x 0 Par exemple les 2 programmes suivant sont duaux : (D) min W = ub u A c u 0 max F = 2 x 1 + 3 x 2 0.25 x 1 + 3 x 2 40 0.4 x 1 + 0.2 x 2 40 0.8 x 2 40 x 1 0, x 2 0 (2.3) De cette dénition, on tire les propriétés suivantes : min W =40u 1 +40u 2 +40u 3 0, 25u 1 +0, 4u 2 2 3u 1 +0, 2u 2 +0, 8u 3 3 u 1 0 u 2 0 u 3 0 (2.4)
2.2.2. La Dualité A.Belahcene 1. Cette transformation est involutive (le dual du dual est primal). Vérier cela en Exercice. 2. Une variable primale non-négative correspond à une contrainte-inégalité dans le dual. 3. Une variable primale non astreinte correspond à une contrainte-égalité dans le dual. 4. La matrice des contraintes du dual est la transposée de la matrice du primal. 5. Les coecients de la fonction objective du primal sont le second membre du dual. 6. Un problème de maximisation primal devient un problème de minimisation dual. 2.2.1 Procédure de Transformation Pour obtenir le dual il est utile de tenir compte des règles suivantes : 1. Ramener le programme sous forme 2.3 ou 2.4 2. Eclater une équation en 2 inéquations équivalentes 3. Remplacer une variable non astreinte en variables positives. Exercice 2.2.1. En vous inspirant des regles précédantes, donner les programmes duaux des programmes linéaires suivants. min f = x 1 + 2 x 2 5x 1 +3x 2 12 x 1 x 2 = 2 x 1 0, x 2 R (2.5) max f = 2 x 1 + 3 x 2 x 1 +2 x 2 5 x 1 +x 2 = 4 x 1 0, x 2 0 (2.6) 2.2.2 Théorème des Ecarts Complémentaires Avant d'énoncer ce théorème nous donnons deux lemmes : lemme 1 : Si la solution optimale du primal x existe et est nie alors celle du dual u existe aussi et est nie. A l'optimum les valeurs des fonctions objectives sont égales, c'est-à-dire c x = u b lemme 2 : Si la solution optimale du primal est innie positive, alors le dual n'a pas de solution. La réciproque n'est pas vraie. (La démonstration de ce lemme est laissée en exercice). On ne mettra pas l'exposant t pour la transposition de la matrice ou des vecteurs pour alléger l'écriture. Il est évident que les opérations doivent être possibles, par exemple, c x = u b devrait être écrite. c t x = u t b où c et u sont des vecteurs-colonnes. Si la solution optimale du primal est innie positive, alors le dual n'a pas de solution. La réciproque n'est pas vraie. Démonstration : Considérons les problèmes duaux : (P 1 ) min Z = C x A x = b x 0. (D 1 ) max W u A u = ub c R Si x est solution réalisable du primal et u solution du dual vériant : u b = c x, alors x et u sont des solutions optimales. En eet, posons : P = { x A x = b et x 0 } D = { u u A c } Soit x P alors A x = b. Multiplions cette équation par u on obtient : u A x = u b (1)
2.2.2. La Dualité A.Belahcene Soit u D alors u A c. Multiplions cette inéquation par x on trouve u A x c x (2) En utilisant (1) et (2) on tire :u b c x, x P, u D (3) Soit u D alors c x u b, x P. comme, c x = u b (par hypothèse), Il s'ensuit que : c x c x, x P. Donc x est solution optimale de (P 1 ). De la même façon on montre que u est solution optimale de (D 1 ). Théorème 2.2.2. (Ecarts Complementaires) Une condition nécessaire et susante pour que les solutions réalisables x et u soient optimales est qu'elles vérient les conditions suivantes : u (A x b ) = 0 ( c u A ) x = 0 (2.7) La traduction de la première condition est : Si la contrainte primale n'est pas serrée alors la variable duale correspondante est nulle. Si une variable duale est positive alors la contrainte primale est serrée. La deuxième condition peut se traduire de la même façon. Montrons maintenant ce théorème. Soient x et u solutions optimales. Par hypothèse on a : Ax b = 0, x 0 (2.8) et c u A 0 (2.9) En multipliant l'equation 2.8 par u et l'equation 2.9 par x on obtient : ξ 1 = u (A x b) = 0 et ξ 2 = (c u A) x 0 Or, ξ 1 + ξ 2 = cx u b = 0 car x et u sont optimales et le Lemme 1 donne u b = c x. Il s'ensuit que : ξ 1 = ξ 2 = 0. D'où la condition nécessaire. Supposons maintenant que x et u vérient le système 2.7 du théorème. Alors, c x = u b. D'après le Lemme, 2 x et u sont optimales respectivement pour (P 1 ) et (D 1 ). D'où la condition susante. La démonstration reste valable pour le cas d'un programme primal mis sous forme général car une contrainte inégalité peut être transformée en une contrainte égalité. Exercice 2.2.3. Soient le programme linéaire et son dual : max F = x 1 + 3 x 2 +2 x 3 x 1 5 x 2 +7 x 3 8 2 x 1 + 4 x 2 2 x 3 2 x 1 3 x 2 +2 x 3 2 x 1, x 2, x 3 0 1. Vérier que chacun des programmes est dual de l'autre. max W = 8u 1 +2u 2 2u 3 u 1 +2u 2 u 3 1 5u 1 4u 2 +3u 3 3 7u 1 +2u 2 2u 3 2 u 1, u 1, u 3 0 2. Vérier que les solutions suivantes respectivement du primal et dual sont optimales. x t = (1, 0, 0) et u = (0, 0.5, 0) 3. Vérier le théorème des écarts complémentaires c est a dire les conditions 2.7, a) u(ax b) = (0, 1/2, 0) ( 7, 0, 1) = 0 b) (c ua)x = (0, 1, 3) (1, 0, 0) = 0 Ces solutions sont donc optimales.
2.2.2. La Dualité A.Belahcene 2.2.3 Déduction du Dernier Tableau du Simplexe du Dual (D) Dans ce paragraphe nous allons donner une démarche qui permet de reconstituer le dernier tableau du simplexe du programme dual à partir du dernier tableau du simplexe du programme primal. On établit d'abord la correspondance entre les variables primales avec celles du duales comme suit : Variables Programme Primal principales d'écarts x 1 x s e 1 e p Programme Dual v 1 v s u 1 u p d'écarts principales La solution du dual représente les coecients marginaux du primal à un signe près. On identie les variables de base et hors-base du programme dual puis on exprime, en utilisant le tableau du simplexe, les variables de base en fonction des variables hors-base en inversant le signe des coecients. Soit le programme linéaire de l'exemple 2.3 page 20 et son programme dual voir les programmes 2.5 et 2.6. Écrire le programme dual qui lui est associé, déduire le dernier tableau du simplexe de ce programme dual puis donner sa solution optimale. Les variables de base duale sont donc u 1 et u 2. Par contre les variables u 3, v 1, v 2 sont hors-base. Exprimons les variables de base en fonction des variables hors base : De façon pratique on procède comme suit : Placer la matrice identité après avoir déterminé les variables de bases, correspondant respectivement ( variable d'ecart primale donne variable principale duale et inversement) donne aux variables hors base du primal. Mettre les coecients en changeant le signe des lignes y compris le Delta et Second membre. Compléter la ligne des coecients de la fonction objective. Ne pas oublier que nous résolvons toujours un problème de maximisation ; Vérier le calcul des delta en les recalculant à partir du tableau obtenu D'où les derniers tableaux du simplexe du programme (D) et primal (P) sont : (on note P les vecteurs colonnes) Le programme dual de l'exemple 1.1.3 page 4est : min W = 40u 1 +40u 2 40u 3 0.25u 1 +0.4u 2 2 0.5u 1 +0.2u 2 +0.8u 3 3 u 1 u 2 u 3 0 X b C b x 1 x 2 e 1 e 2 e 3 b x 1 2+a 1 0 4 /3 10/3 0 80 e 3 0 0 0 32 /15 4/3 1 8 x 2 3 0 1 8/3 5 /3 0 40 C 2 3 0 0 0 Y 2 3 16/3 5/3 0 i 0 0 16 /3-5/3 0 X b C b u 1 u 2 u 3 v 1 v 2 b u 1-40 1 0 32/15 4/3-8 /3 16/3 u 2-40 0 1-4 /3-10 /3 5/3 5/3. C -40-40 -40 0 0 Y -40-40 -32 80 40 j 0 0-8 -80-40 Exercice 2.2.4. En tirant les u 1 et u 2 du tableau Dual, et en les remplacant dans le programme initial, vérier que le tableau correspond réellement au programme D, et qu'il est optimal. Les variables v 1, v 2 et v 3 sont des variables d'écarts du programme dual.
2.2.2. La Dualité A.Belahcene 2.2.4 Interprétation Économique de la Dualité La dualité joue un rôle particulièrement important en pratique. L'interprétation économique de la dualité dépend évidement de la nature du programme primal. Considérons le problème d'une entreprise qui met en oeuvre n diérentes activités en faisant intervenir m ressources disponibles en quantités b i, i = 1,..., m. A chaque activité on associe un coût dépendant de son intensité. Ce problème se modélise comme suivant max z = n j=1 c j x j n j=1 a ij x j b i x j 0 i = 1,..., m j = 1,..., n c j est le prot unitaire de l'activité j, x j est l'intensité de l'activité j, b i représente la quantité de la ressource i consommée par les activités du problème a ij la quantité de la ressource i consommée par une unité de l'activité j. Le programme dual correspondant est : min w = m i=1 b i u i m i=1 a ij u i c j u i 0 j = 1,..., n j = 1,..., m Les variables duales représentent les contributions unitaires des ressources au prot (voir Exercice ). Autrement dit, la variable duale u i représente la variation de la fonction objective en fonction de la disponibilité de la ressource i (b i ). Elle est souvent appelée coût marginal et représente la somme que nous sommes prêts à payer pour augmenter la disponibilité de la ressource i. En d'autres termes, si une personne tierce nous propose le service d'augmenter notre disponible b i, dans quelle mesure ( à quel cout? ) sommes nous pret a accepter son ore? quel est le cout unitaire du service est acceptable?. Ce qui explique la minimisation de la fonction objective du dual qui représente le plus faible prix à payer pour augmenter la disponibilité des ressources et par conséquent augmenter le prot. La contrainte j du dual signie que la contribution au prot des ressources consommées par une unité de l'activité j doit être au moins égale au prot unitaire de cette activité. En particulier si une variable duale u i est nulle, le coût à payer pour l'augmentation du disponible b i est nul ; ce qui est évident puisque le disponible n'est pas entièrement consommé car la contrainte primale correspondante est inactive max W = V = 3y 1 5y 2 y 1 2y 2 3 y 1 1.25y 2 2.5 y 1 0 et y 2 0 (2.10) Y b C b b y 1 y 2 e 1 e 2 e 1 0-3 -1-2 1 0 e 2 0-2.5-1 -1.25 0 1 j 0-3 -5 0 0 Tableaux Optimums non réalisables correspondent successivement aux points ( O' sur GD et A' sur GD ) Y b C b b y 1 y 2 e 1 e 2 y 2-5 1.5 0.5 1-0.5 0 e 2 0-5/8-3/8 0-5/8 1 ' j -7.5-0.5 0-2.5 0 Y b C b b y 1 y 2 e 1 e 2 y 1-5 2/3 0 1-4/3 4/3 y 2-3 5/3 1 0 5/3-8/3 j -25/3 0 0-5/3-4/3
2.2.2. La Dualité A.Belahcene Le dernier Tableau Optimal non réalisable correspond a B' sur GD. Les graphes représentant les solutions du primal (P) et du dual (D) Le domaine réalisable est noté par DR pour les deux graphes.2.2 x 2 y 2 C B A B DR DR O A x 1 O y 1 GP : Graphe du Primal GD : Graphe du Dual Figure 2.2 Tableau du Primal et Dual A Chaque tableau du Primal (P) correspond un tableau du dual (D) Par changement de ligne en colonne, de colonne en ligne et par changement de signe, la variable principale devient d'écart et la variable d'écart devient principale. Notons que le changement de signe vient du fait que nous avons résolu le programme Dual avec la maximisation. Par exemple Le tableau optimale réalisable de (D) correspondant à B' s'obtient du tableau optimal de (P) correspondant à B. y 2 = 2 3 correspond 2 = 2 3 et y 1 = 5 3 correspond 1 = 5 3 x 2 = 4 3 correspond 2 = 4 3 et x 1 = 5 3 correspond 1 = 5 3 Interprétation des variables duales : La valeur de la variable duale correspond à l'importance accordée à la contrainte associée du primale. Si cette valeur est nulle par exemple, cela signie que cette contrainte n'est pas bloquante, non saturée, en d'autres termes l'augmentation du second membre de cette contrainte n'est intéressante. Considérons la solution optimale, et la variabley 1 = 5 3. La valeur 5000/3 DA (rappelons que l'unité est le Millier de DA) correspond au coût (l'importance) que l'on peut payer l'augmentation dune unité ( 1m 3 ) la capacité du camion. C'est à dire si le coût d'amortissement de la transformation de notre camion ( par exemple atteler une remorque) est inférieur à 5000/3 DA par m 3 il est alors intéressant de faire cette transformation. Importante : ce coût marginal est une variation unitaire, c'est a dire pas forcément valable pour une augmentation de plusieurs m 3 par exemple. La solution optimale peut alors changer (Voir la partie : programme linéaire paramétré). Une autre façon de voir un entrepreneur de construction de bâtiment pour un projet important doit-il acheter un camion pour faire son propre transport? ou louer un camion à chaque fois qu'il en a besoin? Dans quelles limites de prix, il serait plus intéressant d'acheter un camion, par forcement de même tonnage et capacité volume?
2.2.3. Analyse Post Optimale et Sensitive A.Belahcene 2.3 Analyse Post Optimale et Sensitive Les variables duales permettent donc d'établir un ordre de paramétrisation du second membre des contraintes du primal. Autrement dit, en analyse post-optimale et sensitive la priorité est donnée aux contraintes du primal dont les variables duales correspondantes ont une valeur importante. Dans les précédents paragraphes notre souci majeur était la recherche de solution optimale lorsqu'elle existe. En réalité, certaines valeurs utilisées lors de la formulation du problème ne sont pas exactes. Il est d'un grand intérêt de savoir si la solution trouvée reste optimale pour une variation de certaines valeurs du programme et de déterminer un intervalle pour lequel cette solution reste optimale. Ces problèmes sont appelés "Analyse sensitive" ou programmation paramètre. Un cas de problème intéressant en pratique est l'étude de l'eet du changement des coecients de la fonction objective sur la solution. Ce problème est aussi appelé "Analyse post-optimale". Dans ce paragraphe, nous nous limitons aux changements dans le second membre des contraintes et des coecients de la fonction objective. L'exemple 2.3 suivant illustrera ce paragraphe : Reprendre le programme linéaire (P.L. 1) : max F = (2 + a)x 1 + 3x 2 0.25x 1 + 0.5x 2 40 0.4x 1 + 0.2x 2 40 0.8x 2 40 x 1 0 et x 2 0 Discuter l'eet sur la solution optimale et sur l'optimum, dun changement du problème sur : prot unitaire du produit P 1 de 2 à (2 + a). second membre de la deuxième contrainte : 0.4x 1 + 0.2x 2 40 + b 2.3.1 Changement dans la fonction objective Supposons que l'on change le coecient de la variable principale de base x de 2 à (2 + a). La fonction objective s'écrit : F = (2 + a) x 1 + 3 x 2 A partir du système (3.5) les variables de base x 1 et x 2 s'écrivent en fonction des variables hors base :x 1 = 80 + 1.33e 1 3.33e 2 x 2 = 40 2.67e 1 1.67e 2 Le remplacement de ces variables dans la fonction objective f donne : F = (280 + 80a) + ( 5.33 + 1.33a)e 1 +( 1.67 3.33)e 2 Le tableau du simplexe correspondant est : Base C B x 1 x 2 e 1 e 2 e 3 b x 1 2+a 1 0-4/3 10/3 0 80 e 3 0 0 0-7/3 4/3 1 8 x 2 3 0 1 2.67-5/3 0 40 j 0 0-16/3+4/3a -5/3-10/3a 0-280-80a Base C B x 1 x 2 e 1 e 2 e 3 b x 1 2 1 0-4/3 10/3 0 80 e 3 0 0 0-7/3 4/3 1 8 x 2 3 0 1 8/3-5/3 0 40 j 0 0-16/3-5/3 0 280
2.2.3. Analyse Post Optimale et Sensitive A.Belahcene Cette solution reste optimale si et seulement si : -5.33 + 1.33a 0-1.67-3.33a 0 C'est la condition d'optima lité du tableau du simplexe, autrement dit, l'augmentation de e 1 ou de e 2 fera diminuer la valeur de la fonction objective. La résolution de ce système d'inéquations donne a [ 0.5, 4]. Pour a dans cet intervalle la solution optimale reste la même (x 1 = 80, x 2 = 40) mais la valeur de la fonction objective (l'optimum) change et devient égale à 280 + 80 a. Notons d'abord que pour a = 0, le tableau est optimal. Suivant les valeurs de a, la variable e 1 ou e 2 rentre dans la base et la solution présente ne sera plus optimale. Nous avons les résultats suivants : 0.5 a 4 la solution actuelle est optimale et correspond au point C (cf. g 2.2). a > 4 la variable e 1 rentre dans la base et correspond au point D. a 0.5 la variable e 2 rentre dans la base mais la solution est optimale uniquement pour a 2 ; il faut faire une autre itération pour le cas a < 2. Nous donnons uniquement pour ce dernier cas le tableau obtenu, pour les autres le lecteur est invité à faire les calculs et vérier nos résultats. Pour a < 0.5 Base b x 1 x 2 e 1 e 2 e 3 x 1 60 1 0 4 0-2.5 e 2 6 0 0-1.6 1 0.75 x 2 50 0 1 0 0 1.25 j -270-60a 0 0-8-4a 0 1.25+2.5a Le tableau n'est pas optimal si a < 2, puisque le coecient de e 1 est positif. La variablee 1 rentre dans la base et x 1 en sort, on obtient le tableau suivant : pour a < 2 Base b x 1 x 2 e 1 e 2 e 3 x 1 150 0.25 0 1 0-5/8 e 2 6 0.2 0 0 1-0.25 x 2 50 0 1 0 0 1.25 j -150 2+a 0 0 0-15 Ce tableau est optimal pour a < 2. Récapitulatif : Valeur de a -2-0.5 4 + Variable entrant e 2 e 2 aucune e 1 Variables de base e 1, e 2,x 2 x 1,x 2, e 2 x 1, x 2, e 3 x 1, e 1, e 3 Solution ( 0,50 ) ( 60,50 ) (80,40 ) ( 100,0 ) Valeur de Z 150 270 + 60 a 280+80a 200 + 100 a 2.3.2 Changement dans le second membre Dans certains cas, on désire savoir comment change la solution optimale (valeur des variables et de la fonction objective) quand le second membre du programme change. Ce problème se ramène au cas précédent, lorsqu'on utilise le programme dual. On sait, de la section précédente, que le second membre du primal devient la fonction objective du dual. Au fait, ce n'est pas un deuxième cas que l'on étudie mais simplement un autre problème pour le même cas. Le dernier tableau du simplexe du programme dual est :
2.2.3. Analyse Post Optimale et Sensitive A.Belahcene C B Base b u 1 u 2 u 3 v 1 v 2-40 u 1 5.33 1 0 2.13 1.33-2.67-40 u 2 1.67 0 1-1.13-3.33 1.67 j -280 0 0-8 -80-40 Faisons la paramétrisation de la 2 eme contrainte du problème initial primal : 0.4x 1 + 0.2x 2 40 + b Le coecient de u 2 (variable associée a cette contrainte dans le dual) est donc 40 b (le signe est négatif à cause du problème de minimisation ramené à la maximisation). Rappelons que les coûts réduits j sont obtenus à partir des coecients de la fonction objective par la transformation suivante j = c j C B P j dans laquelle C B représente les coecients des variables de base et P j le vecteur colonne du tableau. La dernière ligne du tableau peut être alors obtenue directement du tableau précédent : C B Base b u 1 u 2 u 3 v 1 v 2-40 u 1 5.33 1 0 2.13 1.33-2.67-40-b u 2 1.67 0 1-1.13-3.33 1.67 j -280-5/3b 0 0-8-1.33b -80-3.33b -40+1.67b La solution initiale reste optimale pour j négatif, c'est-à-dire, 8 1.33b 0 ; 80 3.33b 0 et 40 + 1.67b 0, Ce qui donne : 6 b 24. b [ 6, 24] la solution précédente reste optimale, en d'autres termes pour la contrainte 2 variant de : 0.4x 1 + 0.2x 2 34 à 0.4x 1 + 0.2x 2 64.En dehors de ces valeurs le tableau doit être changé. b < 6 : La variable u 3 rentre dans la base et la variable u 1 en sort. b > 24 : La variable v 2 rentre et u 2 sort. De la même façon que pour le cas du primal, nous faisons les changements de tableau. Regardons ce que devient le tableau précédant pour le cas b > 24, les autres cas sont laissés au soin du lecteur, nous donnons cependant le tableau récapitulatif. b > 24, ce cas correspond au second membre supérieur à 64, de la deuxième contrainte. Après avoir fait entrer la variable v 2 et sortir u 2 on obtient le tableau optimal suivant : C B Base b u 1 u 2 u 3 v 1 v 2-40 u 1 8 1 8/5 0 1.33 0 0 u 2 1 0 3/5-4/5-2 1 j -320 0 24-b -40-160 0
2.2.3. Analyse Post Optimale et Sensitive A.Belahcene La solution primale correspondante est : x 1 = 160 et x 2 = 0 puisque v1 = x 1 = 160 v2 = 2 x 2 = 0 Récapitulatif : Valeur de b 40 30 6 24 Base du dual v 1, u 2 u 3, u 2 u 1, u 2 u 1, v 2 Sol. Primal x 1 = 0 x 1 = 2.5(30 + b) x 1 = 80 + 10 3 b x 1 = 160 x 2 = 5(40 + b) x 2 = 50 x 2 = 40 5 3 b x 2 = 0 Valeur de Z 600 + 15b 300 + 5b 280 + 5 3 b 320 2.3.3 Interprétation graphique Dans le cas de l'exemple 2.3, nous pouvons donner une interprétation géométrique à la signication des variations du paramètre. La variation du coecient dans la fonction objective revient à faire changer la pente de cette droite. La pente dans notre problème est l'opposé du rapport des coecients de x 1 et de x 2. Autrement dit P = 2 + a 3 Quand cette pente est positive, l'optimum est le point A, ( donc pour a 2 ). Dans le cas où elle est comprise entre les pentes de AB et BC, l'optimum est le point B, etc... Notons que, lorsqu'elle est parallèle à une droite- contrainte, tous les points du segment réalisable sont optimums. La variation dans le second membre revient à déplacer parallèlement la droite contrainte. Dans le cas de l'exemple, on déplacera parallèlement la droite contenant le segment CD. Si on éloigne cette droite de l'origine, la contrainte devient inutile et redondante, les points C et D sont alors confondus et loin de la contrainte. En d'autres termes, le point optimum C glisse vers D. Ceci revient à augmenter la valeur du paramètre b, à partir b = 24. Inversement si b < 0 le point optimal C glisse vers B, puisque la droite contenant le segment DC se déplace parallèlement vers l'origine, jusqu'à atteindre le point B avec la valeur b = - 6. Si b < -6 les point B et C (confondus) glissent vers A. Ce point est atteint pour b= -30, si la valeur de b continue à diminuer, le point optimal se rapprochera de O. Notons cependant que pour un problème économique, un coût négatif na pas de sens, donc doit être supérieur ou égal à -2. De même, b doit être supérieur ou égal à - 40 car la contrainte, qui dans la pratique, représente une capacité, ne peut être négative. x 2 A B Fonct. Objective C 2 ieme D x 1 contrainte Figure 2.3 Variation de la seconde contrainte de l'exemple2.3
2.2.4. Exercices A.Belahcene 2.4 Exercices 1. Donner les programmes duaux des programmes linéaires suivants : 3x 1 3x 2 +7x 3 Max 6x 1 3x 2 +2x 3 min x 1 +x 2 +3x 3 40 x 1 +3x 2 +x 3 40 x 1 +9x 2 7x 3 50 2x 1 +3x 2 +3x 3 = 50 5x 1 +3x 2 = 20 4x 1 +2x 2 +x 3 20 5x 2 +8x 3 100 x 1 0 x 2 0 x 3 R x 1 R x 2 0 x 3 0 3y 1 3x 2 +7(y 2 y 3 ) Max y 1 +x 2 +3(y 2 y 3 ) 40 y 1 9x 2 +7(y 2 y 3 ) 50 5y 1 3x 2 20 5y 1 +3x 2 20 5x 2 +8(y 2 y 3 ) 100 y 1 0 x 2 0 (y 2, y 3 0 1. Résoudre ces programmes linéaires suivants : x 1 +2x 2 3x 3 max x 1 +x 2 +x 3 = 6 x 1 +x 2 +2x 3 = 4 +2x 2 +3x 3 = 10 x 1 0 x 2 0 x 3 0 2. Montrer, avec l'algorithme du simplexe, max x 3 2x 4 x 5 +11 x 1 +x 3 x 4 +2x 5 = 2 x 2 x 3 +2x 4 x 5 50 4x 1 +2x 2 +x 3 20 x j 0 j = 1..5 que le programme suivant n'a pas de solution nie. Interpréter le coecient négatif dans la colonne de la variable entrant dans la base. max F = x 1 +x 2 x 1 x 2 1 2 x 1 +x 2 3 x 1, x 2 0 3. Montrer, en utilisant la méthode graphique, que ce programme linéaire possède une innité de solutions. x 2 Le domaine convexe de ce programme linéaire est donné par la gure. Les sommets B = (2.6) et C = (4.3) sont solutions optimales. Donc toute combinaison convexe de ces deux solutions optimales est aussi optimale. (0.6) (2.6) (4.3) x 1 droite de F L'ensemble des solutions optimales est O = { (x 1, x 2 ) 3 x 1 + 2 x 2 = 18. Le lecteur est invité à montrer algébriquement ce résultat. 4. Soit le programme linéaire suivant : a) Faire une analyse graphique b) Utiliser le Simplex. Que Conclure? max F = x 1 + x 2 + x 3 + x 4 x 1 + x 2 2 x 3 + x 4 5 x 1, x 2, x 3,x 4 0
2.2.4. Exercices A.Belahcene a) Résoudre graphiquement ce programme linéaire. Que peut-on conclure? b) Résoudre par l'algorithme du simplexe ce programme. On donnera toutes les solutions optimales de ce problème. 5. Soit le graphique suivant, donner le programme lineaire correspondant, son dual, le tableau nal du primal et determiner le tableau optimal dual a partir du primal 6. Montrer par le simplex que le problème suivant est non-borné : 6x 1 +2x 2 +10x 3 + 8x 4 max 3x 1 3x 2 2x 3 + 8x 4 25 5x 1 +6x 2 4x 3 4x 4 20 4x 1 2x 2 +x 3 + 3x 4 10 x 1 0 x 2 0 x 3 0 x 4 0 7. Etudier la nature des tableaux (optimalité, degenerescence, faisabilité, possibilité d'amélioration etc..., a 1 variable articielle et M 0). Base x 1 x 2 x 3 e 1 e 2 e 3 b x 1 1 0 1.5 4 1 0 10 x 2 0 1 2 1-3 0 5 e 3 0 0 3 0 2 1 7 0 0-4.5-13 0 0 Base x 1 x 2 x 3 e 1 e 2 a 1 b x 1 1 0 3 2-1 0 1 x 2 0 1 2 1-3 0 5 a 1 0 0-1 0 0 1 4 0 0 M-9 0 6 0 8. Etudier graphiquement le changement du coecient dans la fonction objective de la variable X 1 puis de la contrainte Une dans le programme suivant : max X 1 + X 2 0 X 1 1 0 X 2 1 9. Soit le programme linéaire (P) avec son dernier tableau du simplexe : max F = 3x 1 + x 2 x 3 x 1 + x 2 +2 x 3 10 2x 1 +x 2 4x 3 6 x 1 +x 2 + x 3 12 x 1, x 2, x 3 0 X B C B x 1 x 2 x 3 e 1 e 2 e 3 b x 1 3 1 0.75 0 0.5 0.25 0 6.5 x 3-1 0 1/8 1 0.25-1/8 0 1.75 e 3 0 0 0.12 0-0.75-1/8 1 3.75 C 3 1+α -1 0 0 0 Y 3 17/8-1 1.25 7/8 0 0 α 9/8 0-1.25-7/8 0 F = 71 4 a) Donner le dual (D) de (P). b) Donner le tableau optimal de (D) c) Discuter l'eet d'un changement du coecient de la variable x 2 dans la fonction objective de 1 à 1 + α. d) Nous remplacons la capacité de la contrainte 3 par 12 + β, dans quelle limite la solution actuelle reste optimale, et quelle est la valeur de la fonction objective optimale. 10. Une entreprise fabrique 4 types de bureau. Chaque bureau est fabriqué dans l'atelier 1 de menuiserie puis envoyé à l'atelier 2 pour les travaux de nition (peinture, vernissage...). Le nombre d'heures de main-d'oeuvre dans chaque atelier et les prots unitaires sont donnés dans le tableau : La disponibilité en heures de main-d'oeuvre pour l'atelier 1 est de 6000 h. Elle est de 4000 h pour l'atelier 2. Bureau 1 2 3 4 Atelier 1 4 9 7 10 Atelier 2 1 1 3 40 Prot 12 20 18 40
2.2.4. Exercices A.Belahcene a) Formuler ce problème comme un programme linéaire P. b) Soit x i le nombre de bureaux du type i que l'on doit fabriquer. Soit le tableau du simplexe : Base x 1 x 2 x 3 x 4 e 1 e 2 b 4 1 4000 x 1 1 2.3 1.6 0 15 15 3 x 4 0 1 1 30 30 1 1 2 200 150 75 3 0 20 10 0 44 4 f = 56000 3 3 15 15 3 où e 1 et e 2 sont des variables d'écarts. Donner le plan de production optimale pour cette entreprise. c) Écrire le programme dual associé au programme primal P. En déduire son dernier tableau du simplexe ainsi que la solution optimale du dual. Donner une interprétation économique du dual. d) Le directeur de cette entreprise décide d'augmenter la capacité maximale de l'atelier 1 d'une quantité α. Pour quelles valeurs de α la solution optimale trouvée reste-t-elle optimale? e) Le directeur envisage la possibilité d'augmenter son prot de 400 unités. Quelles sont les changements à opérer sur les capacités des deux ateliers pour atteindre cet objectif? Le plan de production optimal trouvé Bureau 1 2 3 4 f) serait-il aecté pour les prots unitaires prot 10 22 20 38 suivants : Problème 2.4.1. Soit le domaine denie par le triangle (OAB) sur la gure. 1. Donner le programme linéaire correspondant. 2. Donner la solution optimale par le simplexe et préciser le point sur le graphe. 3. Donner le programme dual et son graphe. 4. Donner la solution optimale duale a partir de l'optimal dual. 5. On fait deplacer la contrainte droite OB, Donner les solutions correspondantes.
2.2.4. Exercices A.Belahcene
3 Programmation non Linéaire sans Contrainte 3.1 Introduction La programmation linéaire même si elle couvre un vaste domaine d'applications, est loin de répondre aux exigences de beaucoup de situations dont la formulation donne les programmes non linéaires ou encore des programmes en nombres entiers. Nous donnons ci-après un exemple de problème se formulant en programme non-linéaire Exemple 3.1.1. Une entreprise de commercialisation possède m magasins de vente, d'un certain produit, répartis à travers le pays. Ses magasins doivent être réapprovisionnés à partir des dépôts de stockage. Elle veut déterminer l'emplacement de ses dépôts de sorte à minimiser les coûts de transport du produit des dépôts vers les magasins. Un magasin peut être alimenté par n'importe quel dépôt. Ce probleme se formule comme un programme Non lineaire à plusieurs Variables avec Contraintes. Nous ne verrons pas de résolution pour ce genre de problemes, nous nous limitons ici aux programmes non lineaires sans contraintes. Notons d'abord que l'optimisation doit porter sur le coût global de transport, lequel dépend des quantités transportées de chaque dépôt à chaque magasin et de la distance séparant les dépôts des magasins. Soient n : le nombre de dépôts m : le nombre de magasins. x i, y i les coordonnées du dépôt i a j, b j les coordonnées du magasin j. c i la capacité du dépôt i r j la demande du magasin j. d ij la distance du dépôt i au magasin j. q ij la quantité transporté du dépôt i au magasin j Le problème se formule alors comme suit : n i=1 j=1 m q ij d ij m q ij <= c i j=1 n q ij r j i=1 En utilisant la norme Euclidienne alors on a : i = 1,.., m j = 1,..., n q ij 0et d ij 0 i (1, n) j (1, m) d ij = (x i a i ) 2 +(y j b j ) 2
3.3.2. Fonction à une seule variable A.Belahcene Après remplacement de d ij par son expression, la fonction objective devient non linéaire par rapport aux variables indépendantes x i, y j. C'est donc un programme non-linéaire avec contraintes. De plus, si la quantité à transporter est le nombre d'unités, le problème devient encore plus dicile à résoudre, puisqu'il devient un programme en nombres entiers. La résolution d'un tel problème ne peut se faire avec le simplexe (voir chapitre 2). Il faut développer d'autres techniques de programmation non linéaire en nombres entiers. Un programme non linéaire se présente sous la forme : Optimiser f(x) tel que h(x) = 0 g(x) 0 avec x F Où n est le nombre de variables, m et p sont les nombres de contraintes égalités et inégalités. F est un sous ensemble de R n. Les fonctions vectorielles h et g sont dénies par les fonctions f, g i et h i de R n dans R. h(x) = (h 1 (x),...h n (x)) et g(x) = (g 1 (x)...g p (x)) Si les fonctions f, g i et h i sont linéaires, le programme est alors linéaire. Les résultats de la programmation non linéaire sont aussi valables pour un programme linéaire. Si E Z n le programme est alors en nombres entiers. Nous étudions uniquement les problèmes de minimisation ; un problème de maximisation se ramène à un problème de minimisation en changeant le signe de la fonction objective. 3.2 Fonction à une seule variable 3.2.1 Dénitions Dénition 3.2.1. Un programme non linéaire à une variable réelle se présente sous la forme : Optimiser f(x)tel que x [a, b]. Ce problème est dit avec contrainte, il sera sans contrainte pour x R. Dénition 3.2.2. Une fonction f admet un minimum local en x 0, s'il existe un voisinage de x 0 (noté V( x 0 ) ) tel que : f(x 0 ) f(x) x V (x 0 ). Un minimum global sur un intervalle correspond au plus petit des minimums locaux. Dénition 3.2.3. Une fonction f est convexe sur l'intervalle I si x, y I et α ]0, 1[ alors f(αx + (1 α)y) αf(x)+(1 α)f(y). Si l'inégalité est stricte, f est strictement convexe. Si f(x) est convexe alors f(x) est concave. 3.2.2 Théorèmes Théorème 3.2.4. Si f est continue sur un intervalle fermé et borné, alors elle admet sur cet intervalle un minimum et un maximum. Théorème 3.2.5. Soit f C 1 (I), c'est à dire que sa dérivée première f est continue sur I ouvert. Si f(y) est un optimum local alors f (y) = 0. C'est une condition nécessaire d'optimalité (non susante). Théorème 3.2.6. Soient f C n (I) et y I vériant : f (y) = f (y) =... = f k 1 (y) = 0 et f k (y) 0 si k est impaire f(y) n'est pas un extremum ( ni maximum, ni minimum) ; si k est pair et f k (y) > 0, f(y) est un minimum local si k est pair et f k (y) < 0, f(y) est un maximum local.
3.3.2. Fonction à une seule variable A.Belahcene Théorème 3.2.7. Soit f C 2 (I) alors f est convexe sur I si et seulement si f (x) 0 x I. Si f (x) > 0 x I alors f est strictement convexe, la réciproque n'est pas vraie, (par exemple f(x) = x 4 est strictement convexe dans R mais f (0) = 0. Théorème 3.2.8. Si f est convexe sur I alors la condition nécessaire est susante, c'est à dire que le minimum local est global sur I. Si en plus I est fermé et borné, le maximum de f est à l'une des bornes de I. Théorème 3.2.9. Sur un intervalle fermé et borné une fonction peut atteindre son optimum : soit au point où la fonction n'est pas dérivable. soit au point où la dérivée est nulle, soit aux bornes de l'intervalle. Pour la démonstration de ces théorèmes voir la section des exercices. 3.2.3 Résolution analytique Soit à résoudre le problème : Optimiser f(x) tel que x [a, b] La méthode consiste à prendre en compte le lemme de la section précédente, c'est à dire, comparer les valeurs f(a), f(b) et f(x) telles que : f (x) = 0 sur l'intervalle où f est dérivable. ou bien f (x) n 'existe pas. Attention, La meilleure valeur cherchée est l'optimum global. La méthode analytique est inecace lorsque la recherche des racines de f (x) = 0 est dicile, ce qui est le plus souvent le cas. Il faut alors chercher numériquement les racines de f (x) = 0. Soient les fonctions suivantes : f(x) = x 4, g(x) = x 2 et h(x) = x sin(4x). Déterminer le minimum de f sur R, les optimums de g sur [ 1, 3]. Que dire des optima de h sur [2, 10]? f est une fonction dérivable sur R. Les seuls points à considérer sont les racines de f (x) = 0 (condition nécessaire ). On a f (0) = f (0) = f (0) = 0 et f iv (0) = 24 donc f(0) est un minimum local. De plus f est convexe sur R puisque f (x) > 0 x R (théorème (3.2.6) ), le minimum est donc global (théorème (3.2.8)). Ainsi la fonction f atteint sa plus petite valeur sur R au point x = 0 avec f(0) = 0. La fonction g est dérivable sur ]-1,3[, sa fonction dérivée est g (x) = 2x. Comme à l'exemple précédent on montre que g(0)= 0 est un minimum global. Comme g est convexe, g(3) = 9 et g( 1) = 1 sont des maximum locaux et g(3)= 9 est un maximum global. La recherche des optimums pour h(x) = x sin 4x sur [2, 10] est dicile à cause de la complexité de résolution de l'équation sin 4x + 4x cos 4x = 0. Il faut recourir aux méthodes itératives. 3.2.4 Résolution itérative Soit à chercher le minimum d'une fonction f(x) donnée sur l'intervalle [a, b] de longueur L et ɛ l'erreur d'approximation. Le principe de la méthode consiste à trouver une suite d'intervalles imbriqués qui contiennent la solution recherchée. L'intervalle [a, b] de départ peut être R lui-même. Pour éviter que les méthodes de recherche ne convergent vers des optimums locaux, on suppose que la fonction est unimodale c'est à dire qu'elle possède un seul minimum (respectivement maximum ) pour la recherche de minimum (respectivement maximum) sur l'intervalle. Les fonctions convexes (respectivement concaves) sont unimodales pour la recherche de minimum (respectivement maximum).
3.3.2. Fonction à une seule variable A.Belahcene Les résolutions itératives permettent simplement la resolution de l'équation f ' (x) = 0, c'est a dire la recherche d'un point condidat (vériant la condition nécessaire). C'est la raison pour laquelle nous supposons l'unimodularité de la fonction. Nous présentons dans ce qui suit deux des méthodes les plus utilisées : La méthode des 3 points et la méthode de Fibonacci. Ces méthodes seront illustrées par l'exemple 3.2.10. Exemple 3.2.10. Résoudre le problème suivant : g(x) = x 2 tel que x [ 1, 3] en utilisant : La méthode des trois points avec une erreur inférieure à ε = 0.01. La méthode de Fibonacci avec ε = 0.1 La méthode des trois points Initialisation : Plaçons trois points x, y, t à l'intérieur de [a,b] de sorte que les intervalles [a,x], [x,y], [y,t], [t,b] soient de même longueur L/4. Procédure courante : Le nouvel intervalle de recherche est de longueur L/2 et centré sur z tel que : Pour se xer les idées on suppose que le minimum de f soit en x,f(x) = min f(x) = min(f(x), f(y), f(t)). Le nouvel intervalle de recherche sera [x, t], on reprend la procédure avec cet intevalle. Voir le schema a x y t b x y t Critère d'arrêt : Soit z N la valeur approchée, à l'étape n, de la vraie valeur z* pour laquelle f(z*) est minimum. L'algorithme s'arrête si l'erreur z n z ε. L'erreur commise est alors z n z L 2n + 1. Le nombre d'itérations est la partie entière de y = log(l) log(e). log 2 Utilisons la méthode des trois points pour résoudre le problème de l'exemple 3.2.10. Soit l'intervalle I = [-1, 3] de longueur L= 4. On place les points x=0, y=1 et t=2. Ce qui donne f(x)=0, f(y)=1 et f(t)=4. Le nouvel intervalle centre en 0 est I1 = [-1, 1] de longueur 2. On reprend la procédure avec les nouveaux points x = 0.5, y = 0, t = 0.5. Le minimum est obtenu pour y =0 donc nouvel intervalle est I 2 = [0.5, 0.5]. A la 8ieme itération nous obtenons une erreur inférieure à L/2 9 = 0.008. La fonction atteint son minimum au milieu de l'intervalle I, c'est à dire, au point 0. Méthode de Fibonacci La suite de Fibonacci est dénie par : F n = F n 1 + F n 2 Les premiers éléments de la suite sont {1, 1, 2, 3, 5, 8,...}. Notons par I N l'intervalle [a N, b N ] de l'itération N et par L N sa longueur. Initialisation : On détermine le plus petit N vériant F N.ε b a. Soit β = (b a)/f N. On place x 1 et x 2 à égale distance de a et b, soit : x 1 = a + F N 1 β et x 2 = b F N 1 β Procédure courante : Placer x j à une distance F N j+1 β du dernier point extrémité placé de l'intervalle obtenu. Garder de l' intercalle I j = [a j, b j ], l'intervalle contenant les meilleurs points. Le nouvel intervalle est renommé I j = [a j, b j ] pour la prochaine itération.
3.3.2. Fonction à une seule variable A.Belahcene Critère d'arrêt : La procédure est arrêtée quand L N 2ε Ln 2 e, ce qui est le cas quand j = N 1. Le nombre d'itérations est donc N 1. Utilisons la méthode de Fibonnaci avec ε = 0.1 pour résoudre le problème de l'exemple précédant. On a : a = 1, b = 3 et L 1 = 4 F 9 = 55 4/0.1. Il s'ensuit que N = 9 et β = 0.073. On place : x 1 = a + F 8 β, c'est à dire, : x 1 = 1.47 et x 2 = b F 8 β, donc x 2 = 0.28. Or f(-1)=1, f(0.53) =0.28, f(1.47)= 2.16 et f(3) = 9. On garde donc l'intervalle contenant x = 0.53. Le nouvel intervalle est [-1, 1.47]. On place x 3 à F 7 β = 1.53 de 1.47, (dernière extrémité de l'intervalle) c'est à dire x 3 = 0.06. Nous avons f(-1)=1, f(-0.06)=0.0036, f(0.53)=0.28 et f(1.47)=2.16. On retient l'intervalle contenant -0.006. Le nouvel intervalle est [-1, 0.53]. A l'itération 8 on retient I 8 = [ 0.127, 0.019] de longueur L 8 = 2ɛ, la valeur approchée de x* est x9 =-0.054 milieu de I8 (placé à ɛ de chacune des bornes ). L' erreur est inférieure à 0.073, on arrête la procédure.. La méthode de Fibonacci nécessite plus d'itérations que la méthode des 3 points, puisque L N = 0.6L N 1 au lieu de L N = 0.5 L N 1 pour l'autre méthode. Cependant, dans une itération de la méthode de Fibonacci on calcule un seul nouveau point alors que pour l'autre méthode on calcule 2 nouveaux points. La longueur de l'intervalle est divisée par 2 à chaque itération dans le cas de la méthode des trois points. Par contre dans la méthode de Fibonacci L N et L N -1 sont telles que : F N n L n = L n 1 F avec lim F n N n+1 F = 0, 618, n n+1 la relationl N = L 1 F N n+1 F N permet de donner l'erreur à l'étape N connaissant l'intervalle initial L 1. Ordre de convergence Soit une suite {r n } convergente vers r*. L'ordre de convergence de {r n } est déni par p 0 tel que : 0 lim R K+1 R R K R P < La séquence r K = a K pour 0 < a < 1 est convergente vers 0 avec l'ordre 1. En eet : lim (αk 1 0 α K 0 1 = α Dans ce cas p = 1. Cette limite est le taux de réduction de l'erreur d'une itération à une autre. Notons qu 'en général la limite n'est pas connue aussi on utilise alors les majorant de cette erreur. Soit par exemple a = 0.02 alors r 3 = 8 10 6, r 4 = 1.6 10 7 et r 5 = 3.2 10 9 La séquence R K = a 2K 0 < a < 1 est convergente vers 0 avec l'ordre 2. En eet : lim R K+1 0 = 1 Dans ce cas p = 2. R K 0 2 Soit par exemple a = 0.5 alors r 3 = 3.9 10 3, r 4 = 1.5 10 5 et r 5 = 2.3 10 10 Il est clair que l'erreur dans ce cas tend plus vite vers 0 que dans le premier exemple bien que la valeur de a est beaucoup plus grande que dans l'exemple 1. La convergence linéaire est dite de taux t si la limite du rapport est égal à t. Dans l'exemple 1 le taux est t = 0.02.
3.3.3. Optimisation de fonction à plusieurs variables A.Belahcene 3.3 Optimisation de fonction à plusieurs variables Nous nous intéressons dans ce chapitre à la résolution des problèmes suivants : min f(x) où x est un vecteur de R n et f une fonction de R n R. Rappelons que maximiser f revient à minimiser f. Commençons par donner un exemple de problème se formulant en programme non-linéaire. Exemple 3.3.1. Une entreprise achète trois produits qu'elle utilise dans un processus de fabrication. Ses besoins annuels sont connus et constants D = {d 1, d 2, d 3 }. Les prix d'achat unitaires des produits sont U = {u 1, u 2, u 3 }. Le coût d'un approvisionnement est supposé indépendant de la quantité commandée et vaut A = {a 1, a 2, a 3 }. L'entretien des produits engendre un coût de stockage estimé à 20% de la valeur des produits en stock. L'entreprise veut connaître les volumes à commander pour chaque produit à chaque réapprovisionnement. Formuler ce problème comme un programme sans contraintes. Application numérique : D = {480, 500, 300}; U = {24, 10, 10}; A = {50, 40, 27} Le réapprovisionnement est fait périodiquement. La période est supposée constante, mais reste à déterminer. La quantité à commander est aussi à déterminer à chaque période. Notons : q i : la quantité du produit i à commander. d i q i : le nombre de réapprovisionnement par an. C i : le coût d'entretien du stock par unité de temps et par unité de produit. K(q) : Le coût global formé des coûts de réapprovisionnement et des coûts de stockage. La consommation étant supposée constante, la quantité moyenne en stock pour le produit i est 0.5 q i. Pour une année et pour un produit i nous obtenons : coût de stockage égal à 0.5 q i C i avec C i = 20%U i, le coût d'approvisionnement égal à a d i i q i. En résumé, le problème revient à minimiser la fonction non linéaire K donnée par : K(q 1, q 2, q 3 ) = 3 i=1 (a i, d i q i + 0.5 q, c i ) Notons que le coût d'achat n'a pas été inclu dans la fonction objective K puisque le coût total d'achat est une constante et n'inue donc pas sur la solution. Nous donnons ci-après un ensemble de dénitions et de théorèmes qui nous permettent de mieux comprendre les développements des méthodes de recherche d'optimums. Les démonstrations des théorèmes ne sont pas présentées pour éviter d'alourdir le texte, certains sont donnés en exercice pour d'autres, le lecteur intéressé peut consulter les livres de mathématiques avancées comme [WYL75], [HUR80], [BAZ79] ou [LUE89]. 3.3.1 Dénitions Dénition 3.3.2. On appelle un ε-voisinage de x 0, V (x 0 ), les vecteurs x vériant : (x x 0 ) t (x x 0 ) ε. La fonction f admet un minimum au point x 0 s'il existe un V (x 0 ) tel que f(x 0 ) f(x) pour tout x dans V (x). Dans le cas où ε est inni alors le minimum est global. Dénition 3.3.3. On appelle gradient de f le vecteur f = ( f x 1, f,... f x 2 x n ). La matrice Hessienne de f est la matrice H f dénie comme suit : H f = (h ij ) où h ij = x i x j Dénition 3.3.4. Une matrice A est dénie positive (respectivement semi-dénie) dans un sous ensemble E de R n si la forme quadratique X t AX est positive (respectivement positive ou nulle ) pour tout X 0 et X E. Dénition 3.3.5. La fonction f est dite convexe sur un domaine convexe D, si elle vérie la condition suivante : X, Y D et λ [0, 1] f(λx + (1 λ)y λf(x) + (1 λ)f(y ) 2 f
3.3.3. Optimisation de fonction à plusieurs variables A.Belahcene 3.3.2 Théorèmes Théorème 3.3.6. Une matrice est dénie positive (respectivement semi-positive) si ses valeurs propres sont positives (respectivement positives ou nulles) Théorème 3.3.7. Une matrice symétrique A est dénie positive si et seulement si, les déterminants A i sont positifs, elle est dénie négative si 1 i A i sont positifs. A i est une sous matrice de A formée de ses i premières lignes et i premières colonnes. Les théorèmes qui suivent sont la généralisation des théorèmes de la section 3.2.2, des fonctions à une seule variable. Théorème 3.3.8. Si f est continue dans une région fermée et bornée, alors elle admet un maximum et un minimum dans cette région. Théorème 3.3.9. Si f(x 0 ) est un minimum et si f existe sur un (x 0 ) alors f(x 0 ) = 0. ( condition nécessaire d'ordre 1 ). Théorème 3.3.10. Soient f C 2 (I) et x, f(x) = 0. Si f(x) est un minimum alors H f (x) est semi-dénie positive (condition nécessaire d'ordre 2). Cette condition est susante si H f (x) est dénie positive. Théorème 3.3.11. Soit f C 2 (D), f est convexe sur un domaine convexe D si et seulement si sa matrice H f est semi dénie positive en tout point de D. Si H f est dénie positive, f est strictement convexe, la réciproque n'est pas vraie. Théorème 3.3.12. Si f est convexe sur un domaine convexe D, alors les conditions nécessaires d'optimalité sont aussi susantes, de plus l'optimum est global sur D. 3.3.3 Résolution directe La méthode consiste à chercher tous les points critiques (verier les conditions nécessaires voire théorème (3.3.9)) puis à vérier pour chacun d'eux si les conditions d'optimalité locale (théorème (3.3.10) ) ou globale (théorèmes 3.3.11 et (3.3.12)) sont vériées. Or la recherche des points critiques est dif- cile puisqu'il faut résoudre des systèmes d'équations non linéaires qui font le plus souvent appel à des méthodes numériques d'approximation. De plus cette méthode suppose l'existence des dérivées partielles. Soit les problèmes suivants : 1. Minimiser f(x, y) = x 2 + y 2 xy + y x 2. Minimiser g(x, y, z) = x(y 1) + z 3 3z 3. Reprendre l'énoncé de l'exemple 3.3.1 Résolution par la méthode exacte. 1. Le gradient de f est f(x, y) = (2x y 1, 2y x + 1) Comme f( 1 3, 1 3 ) = (0, 0). Ce point ( ) 2 1 est donc stationnaire. De plus la matrice hessienne H f =, est dénie positive car 1 2 les déteminants des mineurs principaux ( A 1 = 2 et A 2 = 3), sont positifs dans R 2 voir 3.3.6, donc en particulier au point ( 1 3, 1 3 ) voir théoreme (3.3.10). La fonction f étant convexe il s'ensuit que f( 1 3, 1 3 ) = 1 3 est un minimum global voir théorème (3.3.11). 2. Les points X = (0, 1, 1) et Y = (0, 1, 1) sont des points critiques. On vérie que g(x) = g(y) = 0 1 0 0, mais la matrice H f = 1 0 0 n'est semi-dénie positive en aucun point de R 3, le déterminant du mineur d'ordre 2 ( A 2 = 3) est négatif, en particulier aux points X = (0, 1, 1) 0 0 6z et Y = (0, 1, 1). Par conséquent f(x) et f(y ) ne sont pas des minimums (voir théorème (3.3.10)). En eet la valeur de f peut être innie négative pour des valeurs xées de x et y, et pour z inni négatif.
3.3.3. Optimisation de fonction à plusieurs variables A.Belahcene 3. La fonction objective du problème de l'exemple 3.3.1 est : mink = 24000 q 1 1 + 20000 q 1 2 + 8100q 1 3 + 2.4 q 1 + q 2 + q 3 avec q 1, q 2, q 3 0 Cherchons les points stationnaires (points vériant) : K = (2.4 24000 q 2 1 Le gradient K s'annule pour les valeurs q 1 = 100, négatives de q i )., 1 20000 q 2 2, 1 8100 q3 2 ). q 2 = 141.4 et q 3 = 90 (on rejette les valeurs La matrice Hessienne H K est diagonale et admet des valeurs propres positives suivantes : λ 1 = 48000 q1 3, λ 2 = 40000 q2 3 et λ 3 = 16200 q3 3 donc H K (X) est dénie positive. De plus K est convexe dans R+, 3 par suite K(q 1, q 2, q 3 ) est un minimum global. Notons que nous pouvons résoudre ce problème, en le considérant comme un programme avec contraintes (non négativité des variables) et en utilisant les méthodes développées dans le chapitre suivant. 3.3.4 Résolution itérative L'algorithme général de recherche de minimum d'une fonction f par les méthodes itératives est la recherche de suite de points intermediares avant de de chisoire nal : ( voir gure suivante (3.1), il ) 1. Choisir un point initial (X k, k = 0); 2. Déterminer la direction de déplacement d k qui assure l'amélioration de la solution présente (si elle n'est pas optimale) ; 3. Déterminer le point X k+1, qui est le meilleur sur la direction choisie d k ; 4. L'algorithme s'arrête lorsque f(x k ) f(x k+1 ) ɛ, ou encore X k X k+1 ɛ et ɛ 0. X d X k k k+1 d k+1 Figure 3.1 Déplacement retenu Le choix du point minimum initial reste un problème en lui-même. En outre si la fonction n'est pas convexe et que le point initial est loin de l'optimum, la convergence peut se faire vers un point qui est un optimum local ou un point uniquement stationnaire. En général, si on n'a pas de connaissance susante sur la fonction, on prend un ensemble de points au hasard et on choisit le meilleur comme point initial. Le critère le plus utilisé est f(x k ) f(x k+1 ) ɛ pour sa simplicité. D'autres critères d'arrêt peuvent être choisis, par exemple la norme du vecteur d'amélioration, X X k+1 ɛ, ou encore f(x k ) ɛ Notons que f(x ) f(x k ) ne peut être utilisé comme critère d'arrêt puisque f(x ) n'est pas connu ( f(x ) désigne la valeur optimale de f ). Il en est de même pour la distance entre X et X. Ces méthodes remplacent uniquement la résolution du système d'équations non linéaires f(x k ) = 0 de la résolution algébrique et par conséquent l'optimalité locale (à fortiori globale) n'est pas assurée. X k+2 d
3.3.3. Optimisation de fonction à plusieurs variables A.Belahcene Méthode de la plus forte descente C'est la méthode la plus ancienne et la plus largement utilisée. Soit X 0 une solution réalisable initiale. On choisit la direction d'amélioration dk telle que d k = f(x k ). La plus grande pente est donnée par la direction du gradient. Le point X k+1, solution à l'étape k + 1, est obtenu par l'algorithme suivant : X k+1 = X k α f(x k ). Le paramétre α, est un réel positif, il est déterminé de sorte que f(x k+1 ) soit minimum. La marge d'erreur ɛ étant choisie, l'algorithme s'arrête lorsque f(x k ) f(x k+1 ) ɛ. Soit le problème min f(x, y) = x 2 + y 2 xy + y x Utiliser la méthode de la plus forte descente pour résoudre ce problème. Prendre X 0 = (1, 2) comme solution réalisable initiale et ɛ = 0.001. On note X k la solution à l'étape k, f(x k ) la valeur de la fonction objective à l'étape k, E k = f(x k ) f(x k+1 ) l'erreur pour critère d'arrêt et d k direction de déplacement à partir du point X k. g(α) = f(x k + αd k ) avec g(α k ) = min g(α) telque α 0 Nous avons f(x 0 ) = 4 et f(1, 2) = ( 1, 4). Donc la meilleure direction de recherche à partir de X 0 est d 1 = f(1, 2) = (1, 4). Soit X 1 le meilleur point sur cette direction. On a X 1 = X 0 + α 1 d 1, où α 1 minimise f(x 1 ) = f(α + 1, 2 α) = g(α) donc g(α) = 21α 2 17α + 4. Notons que g est convexe sur R puisque g (α) = 42α 17 et g (α) = 42. Par conséquent g(0.4) est un minimum global puisque g (α) = 0 et g (α) > 0. On retient α 1 = 0.4 Ce qui donne X 1 = (1.4, 0.38), f(x 1 ) = 0.56 et E 0 = f(x 0 ) f(x 1 ) = 3.44 > ɛ. On cherche alors X 2. La direction de recherche est d 2 = f(x 1 ) = ( 1.1, 0.36) et X 2 = X 1 + α 2 d 2 où α 2 minimise g(α 2 ) = f(x 2 ). La Table 3.1 résume les résultats obtenus. Voir Si la fonction g(α) possède plusieurs minima sur la direction d k, on choisit le plus petit d'entre eux. K X K f(x K ) E K d K α k 0 (1, 2) 4 - ( 1, -4 ) 0.4 1 (1.4, 0.38) 0.56 3.44 ( -1.1, -0.36 ) 0.8 2 (0.5, 0.1) -0.19 0.75 ( 0.1, -0.7 ) 0.5 3 (0.55, -0.25) -0.3 0.1 ( -0.35, -0.05 ) 0.44 4 (0.39, -0.23) -0.325 0.025 ( -0.01, -0.15 ) 0.51 5 (0.38, -0.31) -0.332 0.007 ( -0.11, 0 ) 0.34 6 (0.34, -0.31) -0.333 0.001 Table 3.1 Méthode du Gradient pour l'exemple Méthode de la direction cyclique Cette méthode dière de la précédente quant au choix de la direction de déplacement. Au lieu de prendre la direction opposée au gradient, on choisit la direction du premier axe de coordonnées, puis la direction du deuxième axe et ainsi de suite. Cette méthode est plus facile à mettre en oeuvre et à programmer puisque il n 'y a pas de recherche de gradient, qui peut être dicilement déterminé de façon automatique. De plus il y a moins de calcul à faire à chaque itération, cependant le nombre d'itérations est plus important. Soient X 0 le point initial et X k le point courant à l'étape k. On détermine une suite de n points y 1, y 2... y n de la façon suivante : Y 0 = X k ; Y i+1 = Y i + α i d i et Y n = X k+1 où d i est la direction selon
3.3.3. Optimisation de fonction à plusieurs variables A.Belahcene X0(1, 2) X1(1.4, 0.38) X2(0.5, 0.1) X3(0.55, 0.25) X*(0.33, 0.33) X0 X2 X1 01 00 11 00 11 X* X3 Figure 3.2 Chemin suivi par la Résolution (Gradient) le i eme axe à partir du point Y i. Autrement dit, d i = (0, 0, 0, 1, 0). Le nombre 1 est à la ieme position. α i est la valeur de α minimisant l'expression f(y i + αd i ). On n'a pas besoin d'ajouter un indice k (correspondant au point X k ) au vecteur d i car celui ci est toujours le même pour toutes les itérations de X k. On garde le même critère d'arrêt que la méthode précédente. Ainsi, dans le cas d'une fonction f à 2 variables on obtient : X 0 = Y 0 Y 1 Y 2 = X 1 X 1 = Y 0 Y 1 Y 2 = X 2... X k = Y 0 Y 1 Y 2 = X k+1 Cette procédure se répète jusqu'à ce que l'amélioration d'une étape à une autre soit jugée susamment petite. Utiliser la méthode des directions cycliques pour résoudre le problème min f(x, y) = x 2 +y 2 xy+y x. Prendra pour solution réalisable initiale X 0 = (1, 2) et une erreur ɛ = 0.001 Nous partons du même point que pour la méthode précédente, et on utilise le même critère d'arrêt de manière à faire une comparaison entre les 2 méthodes. Voir la gure Soit X 0 = (1, 2), les directions de déplacement sont d 1 = (1, 0) puis d 2 = (0, 1) à partir de n'importe quel point X k. On initialise Y 0 par X k. On détermine Y 1 et Y 2 en utilisant les directions d 1 et d 2,Y 2 prendra la valeur de X k+1. On a Y 0 = X 0 = (1, 2) et Y 1 = Y 0 + α 1 d 1. Le minimum global de g(α) = f(1 + α, 2) = α 2 α + 4 est donné par α = 0.5 d' où Y 1 = (1.5, 2).
3.3.4. Série d'exercices A.Belahcene k X k f(x k ) E k d k Y 0 ( 1, 2 ) 4-1, 0 1.5, 2 0, 1 1.5, 0.25 1 ( 1.5, 0.25 ) 0.69 3.31 1, 0 0.62, 0.25 0, 1 0.62, -0.19 2 ( 0.62, -0.19 ) -0.27 0.96 1, 0 0.4, -0.19 0, 1 0.4, -0.3 3 ( 0.4, -0.3 ) -0.31 0.04 1, 0 0.35, -0.3 0, 1 0.35, -0.32 4 ( 0.35, -0.32 ) -0.33 0.02 1, 0 0.33, -0.33 0, 1 0.33, -0.33 5 ( 0.33, -0.33) -0.333 0.00 Table 3.2 Méthode cyclique de l'exemple X0(1, 2) Y(1.5, 2) X1(1.5,0.25) Y(0.62, 0.25) X2(0.62, 0.19) X0 Y Y X1 X2 X* Figure 3.3 Chemin suivi par la Résolution (Cyclique) De même, de Y 1 on se déplace selon la direction d 2 = (0, 1). On obtient Y 2 = (1.5, 0.25) = X 1, f(x 1 ) = 0.69 et E 0 = f(x 0 ) f(x 1 ) = 3.31. Les résultats des diérentes étapes sont regroupés dans le Table 3.2 La deuxième méthode nécessite, certes, plus d'étapes que la précédente, pour une précision donnée. Mais les calculs faits à chaque étape restent plus simples puisqu'il n' y a pas de calcul de gradient. Par conséquent, la deuxième méthode est, en général, plus rapide et aussi plus facile à mettre en oeuvre. 3.4 Série d'exercices 1. Résoudre analytiquement les problèmes suivants : 2. max Z = x(5 πx) sur l'intervalle [0, 20] puis sur l'intervalle [0,5] a) max Z = x 2 8 sur [-4, 4] min Z = x exp(x 2 ) 3. Donner la nature des optimas def(x) = x 3 6x 2 + 9x + 6 sur les intervalles suivants : [0, 3], [1, 4] et [-1, 5].
3.3.4. Série d'exercices A.Belahcene 4. Démontrer les théorèmes du cours concernant l'optimalié locale et globale des fonctions à une variable n fois dérivables. 5. Utiliser la méthode des trois points pour résoudre les problèmes : max Z = x(5π x) sur[0, 20] avec une erreur sur la variable inférieure à 1. min Z = x 5 5x sur [1, 2] puis sur [ 1, 2] avece = 0.5. Que peut on conclure? Donner le nombre d'itérations susantes dans chaque cas. 6. Reprendre les exercices 1 et 2 en utilisant la méthode de Fibonacci, e = 0.5. 7. Chercher le minimum de f(x) = x 3 6x 2 + 9x + 6 sur [ 3, 7]et [ 1.5, 6.5] avec les méthodes des 3 points et de Fibonacci. Expliquer les résultats. 8. Montrer que le terme général de la suite de Fibonacci peut s'ecrire : F n = 1 5 ([ 1+ 5] N+1 -[ 1 5]) 2 2 En déduire que lim F n 1 F n = [ 1+ 5]= 0.618 2 9. Donner l'ordre et le taux de convergence de la méthode des trois points et de Fibonacci. En supposant la convergence de la suite {x n } avec a > 0, quelle est son ordre de convergence de la suite X n 1 = 1 2 (X n + a X n ) 10. Etudier la convexité et la concavité des fonctions données dans les exercices 1 et 2. Les optimums sont-ils globaux? 11. Montrer que l'intersection de 2 ensembles convexes est convexe. Montrer que tout demi-espace AX b est convexe. (A est une matrice n n, x et b des n-vecteurs). Montrer que le polyèdre, domaine de réalisation d'un programme linéaire, est convexe. 12. Utiliser la dénition pour montrer la convexité de f(x) = x 2, x R. Montrer que f(x) = x 4 est strictement convexe dans R bien que f(0)= 0. 13. Soit f i pour i I, un ensemble de fonctions convexes sur un domaine convexe D. Montrer que la fonction g dénie par g(x) = sup f i (x) est convexe sur D. 14. Soient g une fonction à une variable, monotone non décroissante, convexe et f une fonction convexe, dénie sur une région D. Montrer que g(f) dénie par g(f(x)) pour X D est convexe. 15. Donner, si possible le domaine de convexité ou de concavité des fonctions suivantes, et utiliser la méthode algébrique pour trouver les minimums, s'ils existent, des fonctions de l'exercice précédent. x + y 2 x 2 sin(xy) cos(x y) + y 10 2(y x 2 ) 2 (2x 5) 2 (y 3) 2 (5z 2) 2 x 2 (y 1) + z 3 3z (x 2) 2 + (y π) + 10 16. Résoudre graphiquement le problème : Sachant que la solution sature la contrainte (1), rendre le problème sans contrainte, puis le résoudre. Reprendre le problème avec la fonction max Z = (300 x)x + (100 y)y. max Z = (250 x)x + (250 y)y x + y 100 8x + 3y 600 (x, y) R 2 17. Soit le problème max Z = 6x + y 2 tel que x 2 + y 2 = 4. Trouver le problème à une variable équivalent, puis le résoudre. 18. Utiliser la méthode de la plus forte descente pour trouver les minima s'ils existent, des fonctions suivantes. Les valeurs initiales sont données par x 0. On prend ε = 0.05. Faire d'abord une résolution algebrique si possible. Donner d'autres directions améliorantes. (x 2) 4 (x 2y) 2 pour x 0 = (0, 3), (x 2) 2 (y π) 2 + 10 pour x 0 = (1, 1) et sin(xy) + cos(x y) pour x 0 = (0.5, 0.4) 19. Reprendre l'exercice précédent en utilisant la méthode des directions cycliques.
3.3.4. Série d'exercices A.Belahcene 20. Résoudre algebriquement le problème : min Z = xy + t 2. Résoudre avec la méthode de la plus forte descente avec les points initiaux : (1, 1, 0), ( 1, 1, 0) et ( 1, 1, 1). Justier les diérences entre les solutions trouvées. 21. Soit le problème min x 2 xy + 2y 2 2x + e x+y. Donner les points vériant les conditions nécessaires d'optimalité. Ces points sont ils des solutions locales ou globales? x = (0, 0) est il une solution optimale? Dans le cas contraire trouver une direction d qui améliore la solution. Trouver itérativement la solution, prendre pour critère d'arrêt f(x) 0.5. Utiliser la méthode du gradient et la méthode des coordonnées cycliques. 22. Pour approximer une fonction g sur l'intervalle [0, 1] par un polynome P n (degré n) on minimise l'erreur (méthodes des moindres carrés) f(a) = 1 0 [g(x) p(x)]2 dx. Donner les équations à résoudre pour trouver le vecteur optimal a. Vérier que la solution est optimale globale a = n (a 0, a 1...a n ) et p(x) = a j x j. Faire une application avec n = 2 et g(x) = sin(πx). 0 23. Soit la fonction f(x, y) = 5x 2 +5y 2 xy 11x+11y +11. Mettre f(x) sous forme matricielle, Q est symétrique, f(x) = 1 2 XQX + AX + C. Soit t = E(X k+1)/e(x k ) la vitesse de convergence de la méthode du gradient. Pour un problème quadratique on montre que t (A a) 2 /(A+a) 2. Trouver t pour ce problème où A et a sont la plus grande et la plus petite valeur propre de Q. si X est la solution optimale et E(X k ) est l'erreur f(x ) f(x k ). Soit X 0 = (0, 1) le point initial. Combien d'étapes sont elles susantes pour amener la valeur de f à 10 10? Que se passe-t-il dans le cas où Q admet les mêmes valeurs propres? Trouver X k telle que f(x k ) 10 5 avec la méthode du gradient puis avec la méthode des coordonnées cycliques. Comparer vos résultats. Donner la solution algébriquement.