outils mathématiques d'optimisation logistique



Documents pareils
Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Programmation linéaire

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

Programmation linéaire

Travaux dirigés n 1. Programmation linéaire

Optimisation Discrète

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Programmation linéaire et Optimisation. Didier Smets

Programmation Linéaire - Cours 1

Cours 02 : Problème général de la programmation linéaire

LE PROBLEME DU PLUS COURT CHEMIN

Programmation linéaire

Conception d'un réseau de transport d'électricité

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Fonctions de plusieurs variables

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

CHAPITRE 5. Stratégies Mixtes

Pourquoi l apprentissage?

Première partie. Modélisation des problèmes en programmes linéaires notés PL

chapitre 4 Nombres de Catalan

CNAM UE MVA 210 Ph. Durand Algèbre et analyse tensorielle Cours 4: Calcul dierentiel 2

Cours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. address: Nicolas.Thiery@u-psud.fr URL:

Résolution de systèmes linéaires par des méthodes directes

Les indices à surplus constant

CUEEP Département Mathématiques E 821 : Problèmes du premier degré 1/27

3 Approximation de solutions d équations

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

= 1 si n = m& où n et m sont souvent des indices entiers, par exemple, n, m = 0, 1, 2, 3, 4... En fait,! n m

Nombre de marches Nombre de facons de les monter

Chapitre 1 : Introduction aux bases de données

L'INTÉRÊT COMPOSÉ. 2.1 Généralités. 2.2 Taux

Programmation mathématique Discrète et Modèles Linéaires

LES MÉTHODES DE POINT INTÉRIEUR 1

NOTIONS DE PROBABILITÉS

Problème : Calcul d'échéanciers de prêt bancaire (15 pt)

Carl-Louis-Ferdinand von Lindemann ( )

OPTIMISATION À UNE VARIABLE

D'UN THÉORÈME NOUVEAU

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

OUTILS EN INFORMATIQUE

Recherche dans un tableau

Exercices de dénombrement

Raisonnement par récurrence Suites numériques

FIMA, 7 juillet 2005

I3, Probabilités 2014 Travaux Dirigés F BM F BM F BM F BM F B M F B M F B M F B M

BACCALAUREAT GENERAL MATHÉMATIQUES

Sujet 4: Programmation stochastique propriétés de fonction de recours

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

CHAPITRE VIII : Les circuits avec résistances ohmiques

Algorithmes d'apprentissage

RÉSOLUTION DE SYSTÈMES À DEUX INCONNUES

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

RECHERCHE OPERATIONNELLE

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Calcul différentiel sur R n Première partie

GEA II Introduction aux probabilités Poly. de révision. Lionel Darondeau

NOTATIONS PRÉLIMINAIRES

Date : Tangram en carré page

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

Principe de symétrisation pour la construction d un test adaptatif

Régime de retraite patronal-syndical (Québec) de l'association internationale des machinistes (A.I.M.)

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

INFO-F Algorithmique 3 et Recherche Opérationnelle

Cours de recherche opérationnelle I

Chapitre 5 : Flot maximal dans un graphe

Rapport d'analyse des besoins

Bloc 1 Sens des nombres et des opérations (+- 6 cours)

Table des matières. 1 Programmation linéaire 1

Notion de fonction. Série 1 : Tableaux de données. Série 2 : Graphiques. Série 3 : Formules. Série 4 : Synthèse

Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies

CORRIGES DES CAS TRANSVERSAUX. Corrigés des cas : Emprunts

Structures algébriques

Exercices Corrigés Premières notions sur les espaces vectoriels

PRIME D UNE OPTION D ACHAT OU DE VENTE

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

Théorèmes de Point Fixe et Applications 1

Probabilités Loi binomiale Exercices corrigés

Chaînes de Markov au lycée

Chapitre 4 : les stocks

Géométrie dans l espace Produit scalaire et équations

TD 3 : suites réelles : application économique et nancière

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Economie de l incertain et de l information Partie 1 : Décision en incertain probabilisé Chapitre 1 : Introduction à l incertitude et théorie de

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Moments des variables aléatoires réelles

Programme de calcul et résolution d équation

Items étudiés dans le CHAPITRE N5. 7 et 9 p 129 D14 Déterminer par le calcul l'antécédent d'un nombre par une fonction linéaire

(VM(t i ),Q(t i+j ),VM(t i+j ))

Couples de variables aléatoires discrètes

Compte-rendu de projet de Système de gestion de base de données

ÉQUATIONS. Quel système!!!! PROBLÈMES À DEUX INCONNUES : - MISE EN ÉQUATIONS - RÉSOLUTION. Dossier n 3 Juin 2005

Corps des nombres complexes, J Paul Tsasa

Corrigé à l usage exclusif des experts

Programmation Objet - Cours II

Transcription:

1 outils mathématiques d'optimisation logistique Loïc Cellier loic.cellier@univ-perp.fr Ces notes de cours sont destinées aux étudiants en licence professionnelle (MAGALI) au sein de l'institut Universitaire de Technologie, dont le cursus a pour objectif une spécialisation en Gestion, Logistique et Transport. Cet enseignement développe aussi bien l'aspect modélisation que l'aspect résolution pour les problèmes d'application de ce domaine, appelé recherche opérationnelle. Notamment, à travers une étude mettant en valeur la programmation linéaire et l'usage de solveurs (durant les séances de travaux pratiques). Ce document est distribué sous la licence CreativeCommons Paternité - Pas d'utilisation Commerciale - Partage des Conditions Initiales à l'identique, version 4.0. Davantage d'information : http://creativecommons.org/about/.

Table des matières 1 Introduction à la recherche opérationnelle 5 1.1 Introduction à la programmation linéaire............. 6 1.1.1 Modélisation, forme canonique et forme standard..... 6 1.1. Dualité, écarts complémentaires et interprétation..... 7 1.1.3 Exercices........................... 8 1. Résolution de programmes linéaires................. 13 1..1 Résolution géométrique................... 13 1.. Résolution algébrique et méthode du simplexe....... 19 1..3 Simplexe à deux phases................... 1 1..4 Exercices........................... 30 1.3 Autres ressources (en ligne)..................... 3 Liste des tableaux 33 Bibliographie 35

Chapitre 1 Introduction à la recherche opérationnelle Nous abordons ce domaine appelé recherche opérationnelle, par quelques dénitions que nous pouvons rencontrer concernant ce riche domaine. Cambridge Dictionary : Operational research UK (US operations research) The systematic study of how to solve problems in business and industry. Wikipedia : Operations research, operational research, or simply OR, is the use of mathematical models, statistic and algorithms to aid in decision-making. Roadef : Recherche opéationnelle : approche scientique pour la gestion de systèmes complexes. Ces premiers sons nous guident sur les intérêts et les objectifs propres de ce carrefour entre mathématiques et informatique, dont le milieu industriel est de plus en plus friand (pour illustrer ce propos, nous proposons de consulter la vidéo-conférence : http://www.roadef.org/content/roadef/soireero.htm). Une particularité de cette discipline mathématique est que les ensembles et structures sur lesquels nous travaillons sont nis. Ces problèmes (en dimension nie) sont appelés problèmes combinatoires ou discrets. Ces études sur la combinatoire sont souvent nommées mathématiques discrètes ou mathématiques hongroises (en l'honneur de l'école éponyme). Nous invitons à la lecture de l'article de vulgarisation de Seb [Seb06]. L'aide à la décision à travers les outils façonnés par la recherche opérationnelle a pour volonté, selon Brauner [Bra14], de permettre une aide : pour trouver : une solution où l'homme n'en avait pas ; une solution sur des problèmes nouveaux (en lesquels l'homme n'a aucune experience) ; plusieurs solutions là où l'homme n'en envisageait qu'une. pour juger la qualité d'une solution ; pour justier et conrmer des décisions.

6 Chapitre 1. Introduction à la recherche opérationnelle Ces notes de cours mettent l'accent sur la modélisation mathématique. Nous nous initions à la programmation linéaire ; modélisation linéaire de problèmes d'applications (présents en gestion, logistique et transport), ainsi encore, nous décrivons en détails des méthodes de résolution pour ces programmes linéaires : résolution géométrique et résolution algébrique (avec le simplexe). 1.1 Introduction à la programmation linéaire Nous pouvons citer quelques ouvrages de référence comme Chvátal [Chv83], Sakarovitch [Sak84], ou encore, plus récemment, Nemhauser et Wolsey [NW99], Guéret, Prins et Sevaux [GPS00], et Teghem [Teg0]. De plus, nous pouvons également indiquer des notes de cours comme Sorin [Sor09], Liberti [Lib11], Billionnet [Bil11], Fouilhoux [Fou11], et Mancel [Man1]. Il existe actuellement de nombreux outils informatiques appropriés pour l'usage de la programmation linéaire, par exemples, glpk (GNU Linear Programming Kit) présenté sur la page : http://www.gnu.org/software/glpk/, ou ampl (A Mathematical Programming Language) (cf. http://ampl.com/) expliqué dans le livre de Fourer, Gay et Kernighan [FGK03]. 1.1.1 Modélisation, forme canonique et forme standard La modélisation d'un problème d'optimisation est essentielle pour aborder les problèmes issus du milieu industriel. Pour cette étape de prise en compte des informations pertinentes et de formalisation (mathématique), nous devons nous rappeler qu'un tel modèle d'optimisation repose sur les trois types d'ingrédients suivants : 1. Les variables ;. Les contraintes ; 3. Le critère. Dénition 1.1. En toute généralité, un programme linéaire (P.L.) peut être vu avec l'écriture matricielle comme suit : min /ou/ max < c, x > ; A 1 x b 1 ; A x b ; Lx = d. où A i R mi n, b i R mi avec i {1, } L R m3 n et d R m3 ; pour lequel nous souhaitons minimiser ou maximiser un critère (objectif) tout en respectant des conditions d'inégalité large et/ou d'égalité (appelées contraintes) et fournir des solutions (réelles) pour les inconnues (appelées variables). Proposition 1.. Nous pouvons toujours écrire un programme linéaire sous les formes suivantes : forme canonique ou forme standard.

1.1. Introduction à la programmation linéaire 7 Forme canonique Nous pouvons écrire un programme linéaire sous forme canonique (avec des contraintes d'inégalités larges). Forme standard min < c, x > ; Ax b ; x 0. Nous pouvons écrire un programme linéaire sous forme standard (avec des contraintes d'égalités). min < c, x > ; Ax = b ; x 0. Dénition 1.3. Le problème P est dit réalisable si R := {Ax b ; x 0}. Le problème P est borné s'il existe une constante réelle k R vériant l'inégalité suivante : < c, x > k pour toute solution réalisable x R. Dénition 1.4. Pour P un problème de minimisation, nous disons que la solution x est solution optimale si, d'une part, x R (la solution x est admissible) et, d'autre part, l'implication suivante est satisfaite : x R = < c, x > < c, x > (la solution x donne la plus petite valeur). Théorème 1.5. Un programme linéaire est réalisable et borné, si, et seulement si, il possède une solution optimale. De plus, concernant l'aspect modélisation, nous nous appuyons sur les trois exercices classiques suivants : 1. exercice des pâtes du boulanger : exercice 1.38 ;. exercice du chargement d'avion : exercice 1.50 ; 3. exercice de la production de papier : exercice 1.55. 1.1. Dualité, écarts complémentaires et interprétation Dénition 1.6. Deux problèmes d'optimisation sont dits en dualité si l'un est un problème de minimisation, l'autre un problème de maximisation et si résoudre l'un équivaut à résoudre l'autre, dans le sens où la valeur de la solution optimale de l'un est la valeur de la solution optimale de l'autre. Lemme 1.7. Critère pratique d'optimalité. Pour tout couple (x, u) avec x réalisable dans P et u réalisable dans P on a < c, x > < u, b >. Donc pour tout couple (x, u), avec x réalisable dans P et u réalisable dans P, vériant < c, x > < u, b >, est un couple de solutions optimales. Proposition 1.8. Le dual d'un dual est un programme linéaire équivalent au primal. (En d'autres termes, l'opération est une involution.)

8 Chapitre 1. Introduction à la recherche opérationnelle Problème primal (sous forme canonique) min < c, x > ; Ax b ; x 0. Problème dual (sous forme canonique) max < u, b > ; ua c ; u 0. Théorème 1.9. Théorème de dualité. Le programme P a une solution optimale x si, et seulement si, le programme P en a une u. De plus, les deux programmes ont la même valeur, i.e., v(p ) = < c, x > = < u, b > = v(p ). Proposition 1.10. Soit P réalisable. Il est borné si, et seulement si, son dual est réalisable. (Être réalisable dans le dual implique être borné dans le dual.) Théorème 1.11. Lemme de Farkas. Soit A une matrice de dimension m n, et c un vecteur de R n. Alors un et seul de ces deux systèmes admet une solution : Soit, Ax 0 et < c, x > > 0 pour x R n ; Soit, ua = 0 et u 0 pour u R m. Théorème 1.1. Théorème des écarts complémentaires (faibles). Soit x et u réalisables pour P et P. Les trois propriétés suivantes sont équivalentes : 1. les solutions x et u sont des solutions optimales ;. l'égalité suivante : < c, x > = < u, b > ; 3. les deux égalités : < u, Ax b > = 0 et < c u A, x > = 0. Proposition 1.13. Proposition des écarts complémentaires (forts). Si deux programmes P et P sont réalisables, il existe (x, u ) solutions optimales avec : (A i x b i > 0 equivalent à u i = 0) et (c j u A j > 0 équivalent à x j = 0). 1.1.3 Exercices Exercice 1.14. Montrer, en utilisant les écarts complémentaires, que le programme linéaire ci-dessous admet (0, 0, 3, 0, 4) pour solution optimale. max 3x 1 + x + 9x 3 + x 4 + 5x 5 ; 6x 1 + 5x + 3x 3 + x 4 + x 5 = 17 ; 0 x i i pour tout i {1,..., 5}.

1.1. Introduction à la programmation linéaire 9 Exercice 1.15. Production de fromage. Une laiterie s'est spécialisée dans deux fromages. Le premier est un AOC qui exige davantage d'heures de travail et un lait en provenance d'une région bien précise. Le second demande moins de travail, et peut être fabriqué à partir de n'importe quel lait ; par contre, sa vente dégage une marge moindre. La laiterie dispose de 1000 heures de travail annuel, elle reçoit 4 millions de litres de lait de la zone AOC, et 6 millions de litres d'autres zones. Le tableau suivant indique les ressources nécessaires pour produire 1 tonne de fromage. heures de travail litres de lait par tonne de fromage par tonne de fromage Fromage 1 (de qualité AOC) 30 10000 Fromage (moins exigeant) 15 7500 Table 1.1 Production de fromage : exercice 1.15 Sachant qu'un kilo du fromage AOC dégage une marge de 3 euros et qu'un kilo de l'autre fromage seulement 1 euro, quelle production doit fabriquer cette laiterie pour optimiser ses bénéces? (Notes de solution : Lallet et Ray [LR11].) Exercice 1.16. Revente d'électricité. Un revendeur d'électricité a promis à sa clientèle qu'au moins 5% de son électricité serait d'origine renouvelable. Il a calculé que pour l'année qui arrive il aura un marché de 18TWh (térawattheure). Il a aussi pré-sélectionné trois fournisseurs à qui il va acheter son électricité en gros. Voici les quantités (en TWh), le taux d'électricité renouvelable et la marge dégagée (en keuro/twh) que peuvent lui fournir ces trois producteurs. % d'électricité quantité d'électricité Marge renouvelable achetable (en TWh) (en k euro/twh) Producteur 1 10 5 900 Producteur 46 6 700 Producteur 3 100 4 500 Table 1. Revente d'électricité : exercice 1.16 Trouver chez quels producteurs et en quelles quantités ce revendeur doit-il acheter son électricité pour avoir le meilleur bénéce possible? (Notes de solution : Lallet et Ray [LR11].) Exercice 1.17. La route du sel. Au quatorzième siècle, un Touareg compte gagner un peu d'or en investissant dans des dromadaires qu'il sait pouvoir revendre à Tombouctou. Comme sa route passe par Taoudeni, il pense aussi y acheter du sel pour tirer davantage de bénéce de son voyage. Il sait qu'il pourra obtenir au terme de son voyage 10 po (pièce d'or) de bénéce par dromadaire, et 1 pa (pièce d'argent, 1 po = 10 pa) de bénéce par kg de sel. Avant toute chose il faut déjà qu'il achète ces dromadaires et ce sel. Chaque dromadaire lui coûte 10 po, et chaque kg de sel 0, pa. Il peut investir 65 po. Sachant qu'un dromadaire peut transporter jusqu'à 150 kg de sel, comment ce Touareg doit investir son pécule pour tirer le bénéce maximal de son investissement? (Notes de solution : Lallet et Ray [LR11].)

10 Chapitre 1. Introduction à la recherche opérationnelle Exercice 1.18. Eau de montagne (problème). Une société exploite une source d'eau de montagne. Pour cela elle possède deux usines. La première est construite directement à la source et a une capacité d'embouteillage de 6 millions de litres par mois. La seconde est construite dans la vallée. Elle est alimentée par une conduite d'eau depuis la source et a une capacité d'embouteillage de 4 millions de litres par mois. Un gros client lui achète toute sa production qui doit être livrée jour après jour dans ses entrepôts. Pour cela la société qui exploite les eaux utilisent plusieurs moyens : soit la route de bout en bout, soit la route puis le train. La même gare est utilisée par les usines. Sa capacité de transport par route de la première usine jusqu'aux entrepôts est de 6 millions de litres par mois. Sa capacité de transport par la route de la seconde usine jusqu'aux entrepôts est de millions de litre par mois. Sa capacité de transport par la route de la première usine jusqu'à la gare est de 4 millions de litre par mois. Sa capacité de transport par la route de la seconde usine jusqu'à la gare est de 4 millions de litre par mois. Sa capacité de transport par train depuis la gare jusqu'aux entrepôts est de 4 millions de litre par mois. Combien de litres par mois cette société est-elle en mesure de fournir à son client? Le coût d'embouteillage dans chaque usine est de centimes par litre. Le coût de transport par la route de la première usine aux entrepôts est de 10 centimes par litre. Le coût de transport par la route de la seconde usine aux entrepôts est de 6 centimes par litre. Le coût de transport par la route de la première usine à la gare est de 4 centimes par litre. Le coût de transport par la route de la seconde usine à la gare est de centimes par litre. Le coût de transport par train de la gare aux entrepôts est de centimes par litre. Quel est le coût minimal pour produire et acheminer la livraison calculée dans la question précédente? (Notes de solution : Lallet et Ray [LR11].) Exercice 1.19. Un zeste de citron (problème). Une société exploite une source d'eau de montagne. Pour cela elle possède deux usines. La première est construite directement à la source et a une capacité d'embouteillage de 6 millions de litres par mois. La seconde est construite dans la vallée. Elle est alimentée par une conduite d'eau depuis la source et a une capacité d'embouteillage de 4 millions de litres par mois. Pour améliorer ses marges elle a transformé la production de sa seconde usine en lui ajoutant un petit goût d'agrume. Ainsi elle dégage une marge (transports inclus) de 10 centimes par litre pour la première usine, et de 15 centimes par litre pour la seconde usine. Un gros client lui achète toute sa production qui doit être livrée jour après jour dans ses entrepôts. Pour cela la société qui exploite les eaux utilisent plusieurs moyens : soit la route de bout en bout, soit la route puis le train. La même gare est utilisée par les usines. Sa capacité de transport par route de la première usine jusqu'aux entrepôts est de 4 millions de litres par mois.

1.1. Introduction à la programmation linéaire 11 Sa capacité de transport par route de la seconde usine jusqu'aux entrepôts est de millions de litres par mois. Sa capacité de transport par train depuis la gare jusqu'aux entrepôts est de 3 millions de litre par mois. Elle dispose de toute la capacité nécessaire pour acheminer les bouteilles des usines jusqu'à la gare. Cette société aimerait dégager une marge maximale. Reconnaître le type de problème? Modéliser le. Quelle marge maximale cette société des eaux peut-elle dégager chaque mois? Comment doit-elle gérer et acheminer sa production pour y arriver? (Notes de solution : Lallet et Ray [LR11].) Exercice 1.0. Les vignes de l'abbaye (problème). Une abbaye de Bourgogne possède hectares de vignes pour sa propre consommation. Mais comme elle produit plus de vin qu'elle n'en a besoin, elle commercialise le surplus. Son vignoble contient deux cépages diérents : 1 hectare de pinot noir, et 1 hectare de gamay. Cette année les vendanges ont permis la récolte de 400 litres de pinot noir et de 6000 litres de gamay. Pour son usage propre, l'abbaye met d'entrée de coté 400 bouteilles (1 bouteille = 0, 75 litre) de pinot noir et 4000 bouteilles de gamay. Elle compte commercialiser le vin restant sous la forme de deux vins : Des bouteilles de pinot noir : ce vin est composé uniquement de pinot noir. Chaque bouteille (0, 75 litre) se vendra à 30 euros. Des bouteilles de passe-tout-grain : ce vin est composé d'un tiers de pinot noir et deux tiers de gamay. Chaque bouteille (0, 75 litre) se vendra à 1 euros. Comment cette abbaye doit repartir le vin restant pour gagner le plus d'argent possible? Cette répartition laisse-t-elle encore du vin sans usage? Si oui, lequel? (Notes de solution : Lallet et Ray [LR11].) Exercice 1.1. Les céréales à semer (problème). Un agriculteur doit choisir la culture de 00 hectares de ses champs pour l'année qui arrive. Il peut y faire pousser du maïs et du colza. La maïs rapporte plus que le colza (il prévoit un gain de 600 euros à l'hectare pour le maïs contre 500 euros à l'hectare pour le colza). Mais il s'est engagé à respecter diverses contraintes environnementales : Il doit limiter ses apports de phosphates. Concrètement cela signie qu'il ne pourra pas utiliser plus de 30 tonnes d'engrais en tout et pour tout. Il doit limiter sa consommation d'eau. Il ne devra pas puiser plus de 00000 m 3 d'eau pour l'arrosage de ses cultures. Pour une année normale : il doit puiser 000 m 3 d'eau et utiliser 100 kg d'engrais par hectare de maïs. il doit puiser 1000 m 3 d'eau et utiliser 50 kg d'engrais par hectare de colza. Comment doit-il répartir ses cultures pour espérer un gain maximal? Quel est ce gain? Est-ce que cette solution lui demande d'utiliser les 00 hectares de terre à sa disposition (Nous vous demandons d'interpréter les résultats donnés par la technique utilisée, et non pas de refaire des calculs pour obtenir ce résultat)? (Notes de solution : Lallet et Ray [LR11].) Exercice 1.. Soit le programme linéaire suivant.

1 Chapitre 1. Introduction à la recherche opérationnelle min x 1 x ; x 1 + 3x 3 = 1 ; 3x 1 + x x 3 = 5 ; x 1, x, x 3 0. 1. Donner son dual.. Résoudre le programme linéaire en utilisant le simplexe. (Notes de solution : Liberti [Lib10].) Exercice 1.3. Donner le dual du programme linéaire suivant : min 3x 1 + 5x x 3 ; x 1 x + x 3 3 ; x 1 3x 4 ; x 1, x, x 3 0. (Notes de solution : Liberti [Lib10].) Exercice 1.4. Donner le dual du programme linéaire suivant : min x 1 x x 3 ; 3x 1 x + x 3 3 ; x 1 3x x 3 4 ; x 1 x 3 = 0 ; x 1, x 0. (Notes de solution : Liberti [Lib10].) Exercice 1.5. Donner le dual du programme linéaire suivant : max x 1 x x 3 + 3 ; 3x 1 x + x 3 3 ; x 1 3x 4x 3 ; x 1 x 3 = x ; x 1 0 ; x 0. (Notes de solution : Liberti [Lib10].) Exercice 1.6. Soit le programme linéaire suivant :

1.. Résolution de programmes linéaires 13 min 3x 1 + 4x + 5x 3 ; x 1 + x + x 3 6 ; x 1 + x + 3x 3 5 ; x 1, x, x 3 0. 1. Écrire le problème dual.. Résoudre le programme linéaire en appliquant le simplexe. (Notes de solution : Liberti [Lib10].) Exercice 1.7. Soit le programme linéaire suivant : max x 1 + x ; x 1 + x 14 ; x 1 x 10 ; x 1 x 3 ; x 1, x 0. 1. Écrire le problème dual.. Vérier que x = ( 0 3, 11 3 ) est une solution réalisable. 3. Montrer que x est solution optimale en utilisant le théorème des écarts complémentaires, et déterminer la solution du problème dual. (Notes de solution : Liberti [Lib10].) 1. Résolution de programmes linéaires 1..1 Résolution géométrique Exercice 1.8. Interprétation géométrique. Pour tout programme linéaire à deux variables. Représenter géométriquement et décrire : 1. Les contraintes (saturées et non-saturées)........................................................................................................ Le critère...................................................................................................................................... 3. La solution..................................................................................................................................... Proposition 1.9. Si une solution existe, la solution optimale recherchée est atteinte en (au moins) un sommet (du polyèdre). Proposition 1.30. Le sommet associé à la nouvelle base est adjacent au sommet associé à l'ancienne. Dénition 1.31. Un point extrême est un sommet, un point x du polyèdre (de l'ensemble réalisable) qui ne peut pas être exprimé comme combinaison convexe d'autres points du polyèdre y (pour y x).

14 Chapitre 1. Introduction à la recherche opérationnelle Théorème 1.3. L'ensemble des points extrêmes du polyèdre (ensemble réalisable) correspond à l'ensemble des solutions de base réalisables. Corollaire 1.33. Le polyèdre (ensemble réalisable) admet un nombre ni de points extrêmes. Le nombre de solutions de base est inférieur ou égal à C m n (nombre de combinaisons possibles de prendre n objets parmi m). Dénition 1.34. Nous dénissons z 0 comme l'objectif évalué (la fonction criète) sur la solution de base. Proposition 1.35. La valeur objectif réalisé z 0 augmente dans le cadre d'une maximisation du critère/ respectivement, diminue dans le cadre d'une minimisation du critère. Théorème 1.36. Théorème central de la programmation linéaire. L'optimum de la fonction critère z 0 (linéaire) sur le polyèdre (ensemble réalisable) est atteint en au moins un point extrême. S'il est atteint en plusieurs points extrêmes, alors il est atteint en tout point combinaison convexe de ces points extrêmes. Exercice 1.37. Proposer une résolution géométrique du programme linéaire à deux variables suivant (notes de solution : en Figure 1..1 ; Maquin [Maq03].) max 40x 1 + 60x ; x 1 + x 70 ; x 1 + x 40 ; x 1 + 3x 90 ; x 1, x 0. Exercice 1.38. Production de pâtes chez le boulanger. Un boulanger veut produire des rouleaux de pâte brisée (prix de vente : 4 euros le rouleau) et des rouleaux de pâte feuilletée (prix de vente 5 euros le rouleau). La production d'un rouleau de pâte brisée nécessite kg de farine et 1 kg de beurre. Celle d'un rouleau de pâte feuilletée 1 kg de farine et kg de beurre et 1 kg de sel (salée, la pâte). Comment maximiser les bénéces sachant qu'il dispose d'un stock de 8000 kg de farine, 7000 kg de beurre et 3000 kg de sel? Soit x 1 le nombre de milliers de rouleaux de pâte brisée à produire. Soit x le nombre de milliers de rouleaux de pâtes feuilletées à produire. 1. Modéliser l'énoncé ci-dessous sous forme d'un programme linéaire.. Résoudre le problème ainsi poser à l'aide de la méthode géométrique. 3. Résoudre le problème ainsi poser à l'aide de la méthode du Simplexe. Pour reprendre l'exercice précédent (du boulanger). Nous pouvons écrire le programme linéaire correspondant comme suit.

1.. Résolution de programmes linéaires 15 Figure 1.1 Résolution géométrique du programme linéaire à deux variables (notes de solution pour l'exercice 1.37 ; Maquin [Maq03]). Les deux axes représentent les deux variables de décision (x 1 et x ). Les droites en trait plein symbolisent les contraintes. Les droites en pointillés sont les lignes d'isocritère (i.e., ensemble des points fournissant le même critère). Le domaine réalisable est formé en vert, aussi appelé polyèdre, contient les solutions admissibles (i.e., satisfaisant toutes les contraintes). La solution optimale est un sommet du polyèdre avec les coordonnées (15,5). En eet, cette solution (15,5) maximise le critère (de valeur M), et donne la valeur du critère suivante : M = 40 15 + 60 5 = 100.

16 Chapitre 1. Introduction à la recherche opérationnelle max 4000x 1 + 5000x ; x 1 + x 8 ; x 1 + x 7 ; x 3 ; x 1, x 0. Remarque 1.39. La forme du programme linéaire ci-dessus est dite canonique (les contraintes d'inégalités). Pour appliquer l'algorithme du simplexe, nous avons besoin de travailler avec une forme standard (les contraintes d'égalité). Nous introduisons alors une variable d'écart (articielle) pour chaque contrainte (autre que la contrainte de positivité des variables). Nous reportons le programme sous forme standard ci-dessous avec les variables d'écart (x 3, x 4, x 5 ). max 4000x 1 + 5000x ; x 1 + x +x 3 = 8 ; x 1 + x +x 4 = 7 ; x +x 5 = 3 ; x 1, x, x 3, x 4, x 5 0. Remarque 1.40. L'opération minimiser x revient à maximiser x, et la valeur du programme est : min(x) = max( x). Notre premier tableau simplicial s'obtient directement depuis la forme standard du programme linéaire. Nous retrouvons les variables correspondent aux colonnes, les contraintes correspondent aux les lignes, les pondérations respectives aux variables correspondent aux coecients matriciels, le membre de droite est aussi indiqué à droite, et le critère est reporté en bas du tableau. Nous considérons comme base de départ (triviale), la base composée des variables d'écart. Remarque 1.41. Pour se repérer davantage dans la procédure du simplexe, nous utilisons un petit code couleurs au sein du tableau : en rouge, les variables dans la base courante, en vert, un des plus grands coecients dans la ligne-critère, et la variable associée entrante en base (pour la prochaine base), en bleu, une des contraintes les plus sévères (la ligne-pivot) et la variable associée sortante de base (pour la prochaine base). Enn, nous pouvons aussi retrouver (au signe près!) la valeur courante du critère dans le coin en bas à droite (ligne du critère). Observations après le tableau simplicial 1 : La base courante est : (x 3, x 4, x 5 ). La solution courante est : (x 1, x, x 3, x 4, x 5 ) = (0, 0, 8, 7, 3). La valeur du critère est : 4000 0 + 5000 0 = 0. Par commodités, nous nommons les contraintes de haut en bas, comme les lignes respectivement l 1, l, l 3, et l 4. Ces notations vont intervenir dans les

1.. Résolution de programmes linéaires 17 base courante x 1 x x 3 x 4 x 5 x 3 1 1 0 0 8 x 4 1 0 1 0 7 x 5 0 1 0 0 1 3 4000 5000 0 0 0 0 Table 1.3 Tableau simplicial 1 (initialisation) : exercice 1.38 règles de calcul pour les lignes. Deux informations pour déterminer où eectuer le pivot et fournir la nouvelle base : 1. variable entrante. Prendre un des plus grands coecients de la ligne-critère associés aux variables hors-base. Ici, nous avons max(4000, 5000) = 5000. x entrante en base (dans la prochaine base).. variable sortante. Une des contraintes les plus sévères à donner. Le minimum des bornes inférieures, de manière à toutes les satisfaire. Ici, nous avons min( 8 1, 7, 3 1 ) = 3 1 x 5 sortante de base (pour la prochaine base). Pour (nir de) compléter le tableau, nous déterminons les règles d'aection suivantes sur les lignes (de sorte à retrouver les coecients de la nouvelle base en rouge, en particulier, ceux associés à la variable entrée nouvellement). l 1 := l 1 + ( 1) l 3 ; l := l + ( ) l 3 ; l 3 := l 3 ; l 4 := l 4 + ( 5000) l 3. base courante x 1 x x 3 x 4 x 5 x 3 0 1 0-1 5 x 4 1 0 0 1-1 x 0 1 0 0 1 3 4000 0 0 0-5000 -15000 Table 1.4 Tableau simplicial (après le 1 ier pivot) : exercice 1.38 Observations après le tableau simplicial : La base courante est : (x 3, x 4, x ). La solution courante est : (x 1, x, x 3, x 4, x 5 ) = (0, 3, 8, 7, 0). La valeur du critère est : 4000 0 + 5000 3 = 15000. Deux informations pour déterminer où eectuer le pivot et fournir la nouvelle base : 1. variable entrante. Prendre un des plus grands coecients de la ligne-critère associés aux variables hors-base. Ici, nous avons max(4000, 5000) = 4000. x 1 entrante en base (dans la prochaine base).

18 Chapitre 1. Introduction à la recherche opérationnelle. variable sortante. Une des contraintes les plus sévères à donner. Le minimum des bornes inférieures, de manière à toutes les satisfaire. Ici, nous avons min( 5, 1 1 ) = 1 1 x 4 sortante de base (pour la prochaine base). Les règles d'aection (pour compléter le tableau simplicial 3) suivent. l 1 := l 1 + ( ) l ; l := l ; l 3 := l 3 ; l 4 := l 4 + ( 4000) l. base courante x 1 x x 3 x 4 x 5 x 3 0 0 1-3 3 x 1 1 0 0 1-1 x 0 1 0 0 1 3 0 0 0-4000 3000-19000 Table 1.5 Tableau simplicial 3 (après le ième pivot) : exercice 1.38 Observations après le tableau simplicial 3 : La base courante est : (x 3, x 1, x ). La solution courante est : (x 1, x, x 3, x 4, x 5 ) = (1, 3, 3, 0, 0). La valeur du critère est : 4000 1 + 5000 3 = 19000. Deux informations pour déterminer où eectuer le pivot et fournir la nouvelle base : 1. variable entrante. Prendre un des plus grands coecients de la ligne-critère associés aux variables hors-base. Ici, nous avons max( 4000, 3000) = 3000. x 5 entrante en base (dans la prochaine base).. variable sortante. Une des contraintes les plus sévères à donner. Le minimum des bornes inférieures, de manière à toutes les satisfaire. Ici, nous avons min( 3 3, 3 1 ) = 3 3 x 3 sortante de base (pour la prochaine base). Les règles d'aection (pour compléter le tableau simplicial 4) suivent. l 1 := 1 3 l 1 ; l := l + ( 3 ) l 1 ; l 3 := l 3 + ( 1 3 ) l 1 ; l 4 := l 4 + ( 1000) l 1.

1.. Résolution de programmes linéaires 19 base courante x 1 x x 3 x 4 x 5 1 x 5 0 0 3 3 1 1 x 1 1 0 3 1 3 0 3 x 0 1 0 3 0 0 0-1000 -000 0-000 Table 1.6 Tableau simplicial 4 (après le 3 ième pivot) : exercice 1.38 Observations après le tableau simplicial 4 : La base courante est : (x 5, x 1, x ). La solution courante est : (x 1, x, x 3, x 4, x 5 ) = (3,, 0, 0, 1). La valeur du critère est : 4000 3 + 5000 = 000. Tous les coecients de la ligne-critère associés aux variables hors-base sont négatifs (ou nuls), ainsi nous ne pouvons plus améliorer le critère (ici, augmenter le gain), l'algorithme s'arrête. Conclusion : La solution optimale est : (x 1, x, x 3, x 4, x 5) = (3,, 0, 0, 1). Elle donne comme valeur du critère : 4000 3 + 5000 = 000. Ainsi, an de maximiser ses bénéces, le boulanger doit fabriquer 3000 rouleaux de pâte brisée et 000 rouleaux de pâte feuilletée. Remarque 1.4. Au delà de deux variables pour un problème de programmation linéaire, la méthode géométrique ne permet plus vraiment de visualiser et de trouver une solution optimale. Ainsi l'algorithme (la méthode) du Simplexe de G. Dantzig permet de résoudre de manière algébrique des problèmes de programmation linéaire de plus grandes dimensions. 1.. Résolution algébrique et méthode du simplexe La méthode du simplexe, de 1947, a été mise au point par George Bernard Dantzig (1914 005). En guise de références, nous indiquons, bien entendu, Dantzig [Dan63], et Gale [Gal07] qui donne un panorama de l'algorithme. Dans la suite, nous étudions les opérations de l'algorithme du simplexe et nous discutons ainsi de l'opération de pivot de Gauss-Jordan et de l'opération de changement de base réalisable. Remarque 1.43. Le choix de la colonne sur laquelle le coût est non nulle fait que la variable qui entre en base est bien une variable hors base (premier invariant). Le choix de la colonne du pivot est heuristique. On peut en fait choisir n'importe quelle colonne sur laquelle le coût est positif. On s'interdit de choisir une colonne sur laquelle le coût est négatif pour ne pas faire diminuer l'objectif réalisé. Remarque 1.44. Le choix de la ligne n'est pas heuristique. On voit sur l'exemple que si on choisit une autre ligne que celle donnée par l'algorithme on obtient des nombres négatifs sur la colonne des seconds membres, c'est à dire une base non réalisable. Cas pathologiques et problème de l'arrêt de l'algorithme.

0 Chapitre 1. Introduction à la recherche opérationnelle Remarque 1.45. Dans le cas où l'objectif réalisé augmente strictement à chaque itération l'algorithme s'arrête nécessairement (des valeurs diérentes de l'objectif réalisé correspondent à des sommets diérents du polyèdre, or ce polyèdre possède un nombre de sommets ni. L'algorithme n'est donc susceptible de boucler que dans le cas où l'objectif réalisé garde la même valeur, autrement dit dans le cas de sommets multiples. La stratégie adoptée ne garantit pas l'arrêt. Il se peut que l'algorithme énumère cycliquement une série de bases réalisables sans que l'objectif réalisé change (comme dans le programme linéaire ci-dessous). max 3 4 x 1 0x + 1 x 3 6x 4 ; 1 4 x 1 8x x 3 + 9x 4 0 ; 1 x 1 1x 1 x 3 + 3x 4 0 ; x 3 1. Théorème 1.46. Stratégie garantie. La stratégie suivante de sélection du pivot garantit l'arrêt de l'algorithme. 1. choisir la colonne possible de plus petit indice (s est le plus petit indice i tel que f i > 0).. choisir la ligne possible de plus petit indice (prendre pour r le plus petit indice i tel que A s r > 0 tel que la base obtenue après pivot soit réalisable). Remarque 1.47. Toutefois l'exemple ci-dessous montre que l'algorithme du tableau simplicial (même, muni d'une stratégie qui garantit l'arrêt) possède une compléxité en temps exponentielle en le nombre de variables (ou de contraintes) dans le pire des cas. max n 1 x 1 + n x +... + x n 1 + x n ; x 1 5; 4x 1 + x 5; 8x 1 + 4x + x 3 15; n x 1 + n 1 x +... + 4x n 1 + x n 5 n ;... x 1, x,..., x n 0. Remarque 1.48. Dans ce cas pathologique, la méthode du simplexe va parcourir l'ensemble des sommets du polyèdre. Dénition 1.49. Problème de démarrage. Nous disons qu'un problème P peut se réduire en un problème Q si toute instance de P peut se reformuler en une instance de Q.

1.. Résolution de programmes linéaires 1 1..3 Simplexe à deux phases Exercice 1.50. Modélisation d'un chargement d'avion. Au cours d'une opération aéroportée, nous souhaitons remplir un avion en composant son chargement à partir de n types de biens. Chaque type de bien i peut être subdivisé à volonté et est caractérisé par sa valeur u i, son poids p i et son volume v i. L'avion a une capacité de P unités de poids, et V unités de volume. Nous supposons que le problème de centrage (position inuente du centre de gravité du chargement total) est résolu indépendamment par ailleurs. 1. Formuler le problème d'optimisation de la valeur du chargement dans le cas où la charge totale à emporter est trop lourde ou trop volumineuse pour être transportée entièrement par l'avion.. Résoudre le problème avec l'algorithme du simplexe, dans le cas suivant : n =, u 1 =, u = 3, v 1 = 1, v = 1, p 1 = 1, p =, V = 9, P = 13. 3. Formuler et interpréter le dual de ce problème. 4. Résoudre le dual par l'algorithme du simplexe. 5. Vérier les résultats en utilisant le théorème des écarts complémentaires. Pour reprendre l'exercice précédent (de l'avion). Formulation du problème (démarche de modélisation) Nous dénissons les variables de décision. Nous posons x i la quantité de bien de type i embarquée pour tout i {1,..., n}. Il y a deux contraintes de ressource à vérier : la somme des x i pondérées des poids unitaires p i ne doit pas dépasser le poids total autorisé P ; la somme des x i pondérées des volumes unitaires v i ne doit pas dépasser le volume total autorisé V. Enn, comme critère, nous devons alors maximiser la valeur totale du chargement, autrement dit, la somme des x i pondérées des valeurs unitaires u i. Nous obtenons ainsi le programme linéaire suivant : max i {1,...,n} i {1,...,n} i {1,...,n} u i x i ; p i x i P ; v i x i V ; i {1,..., n} x i 0. Nous pouvons ensuite écrire le programme linéaire avec les valeurs numériques données pour un exemple deux types de biens (n = ). max x 1 + 3x ; x 1 + x 13 ; x 1 + x 9 ; x 1, x 0.

Chapitre 1. Introduction à la recherche opérationnelle Remarque 1.51. La forme du programme linéaire ci-dessus est dite canonique (les contraintes d'inégalités). Pour appliquer l'algorithme du simplexe, nous avons besoin de travailler avec une forme standard (les contraintes d'égalité). Nous introduisons alors une variable d'écart (articielle) pour chaque contrainte (autre que la contrainte de positivité des variables). On reporte le programme sous forme standard ci-dessous avec les variables d'écart (x 3, x 4 ). max x 1 + 3x ; x 1 + x +x 3 = 13 ; x 1 + x +x 4 = 9 ; x 1, x, x 3, x 4 0. Notre premier tableau simplicial s'obtient directement depuis la forme standard du programme linéaire. Nous retrouvons les variables correspondent aux colonnes, les contraintes correspondent aux les lignes, les pondérations respectives aux variables correspondent aux coecients matriciels, le membre de droite est aussi indiqué à droite, et le critère est reporté en bas du tableau. Nous considérons comme base de départ (triviale), la base composée des variables d'écart. Remarque 1.5. Pour se repérer davantage dans la procédure du simplexe, nous utilisons un petit code couleurs au sein du tableau : en rouge, les variables dans la base courante, en vert, un des plus grands coecients dans la ligne-critère, et la variable associée entrante en base (pour la prochaine base), en bleu, une des contraintes les plus sévères (la ligne-pivot) et la variable associée sortante de base (pour la prochaine base). Enn, nous pouvons aussi retrouver (au signe près!) la valeur courante du critère dans l'angle en bas à droite (ligne du critère). base courante x 1 x x 3 x 4 x 3 1 1 0 13 x 4 1 1 0 1 9 3 0 0 0 Table 1.7 Tableau simplicial 1 (initialisation) : exercice 1.50 Observations après le tableau simplicial 1 : La base courante est : (x 3, x 4 ). La solution courante est : (x 1, x, x 3, x 4 ) = (0, 0, 13, 9). La valeur du critère est : 0 + 3 0 = 0. Par commodités, nous nommons les contraintes de haut en bas, comme les lignes respectivement l 1, l, l 3, et l 4. Ces notations vont intervenir dans les règles de calcul pour les lignes. Deux informations pour déterminer où eectuer le pivot et fournir la nouvelle base :

1.. Résolution de programmes linéaires 3 1. variable entrante. Prendre un des plus grands coecients de la ligne-critère associés aux vriables hors-base. Ici, nous avons max(, 3) = 3. x entrante en base (dans la prochaine base).. variable sortante. Une des contraintes les plus sévères à donner. Le minimum des bornes inférieures, de manière à toutes les satisfaire. Ici, nous avons min( 13, 9 1 ) = 13 x 3 sortante de base (pour la prochaine base). Pour (nir de) compléter le tableau, nous déterminons les règles d'aection suivantes sur les lignes (de sorte à retrouver les coecients de la nouvelle base en rouge, en particulier, ceux associés à la variable entrée nouvellement). l 1 := 1 l 1 ; l := l + ( 1 ) l 1 ; l 3 := l 3 + ( 3 ) l 1. base courante x 1 x x 3 x 4 1 1 13 x 1 0 1 x 4 0 1 5 1 1 0 3 39 0 Table 1.8 Tableau simplicial (après le 1 ier pivot) : exercice 1.50 Observations après le tableau simplicial : La base courante est : (x, x 4 ). La solution courante est : (x 1, x, x 3, x 4 ) = (0, 13, 0, 9). La valeur du critère est : 0 + 3 13 = 39. Deux informations pour déterminer où eectuer le pivot et fournir la nouvelle base : 1. variable entrante. Prendre un des plus grands coecients de la ligne-critère associés aux variables hors-base. Ici, nous avons max( 1, 3 ) = 1. x 1 entrante en base (dans la prochaine base).. variable sortante. Une des contraintes les plus sévères à donner. Le minimum des bornes inférieures, de manière à toutes les satisfaire. Ici, nous avons min(13, 5) = 5 x 4 sortante de base (pour la prochaine base). Les règles d'aection (pour compléter le tableau simplicial 3) suivent. l 1 := l 1 + ( 1) l ; l := l ; l 3 := l 3 + ( 1) l.

4 Chapitre 1. Introduction à la recherche opérationnelle base courante x 1 x x 3 x 4 x 0 1 1-1 4 x 1 1 0-1 5 0 0-1 -1 Table 1.9 Tableau simplicial 3 (après le ième pivot) : exercice 1.50 Observations après le tableau simplicial 3 : La base courante est : (x, x 1 ). La solution courante est : (x 1, x, x 3, x 4 ) = (5, 4, 0, 0). La valeur du critère est : 5 + 3 4 =. Tous les coecients de la ligne-critère associés aux variables hors-base sont négatifs (ou nuls), ainsi nous ne pouvons plus améliorer le critère (ici, augmenter le gain), l'algorithme s'arrête. Conclusion : La solution optimale est : (x 1, x, x 3, x 4) = (5, 4, 0, 0). Elle donne comme valeur du critère : 5 + 3 4 =. Ainsi, an de maximiser l'utilité (la valeur) totale du chargement, nous devrions remplir l'avion avec 5 biens de type 1 et 4 biens de type. Formulation du dual min P λ 1 + V λ ; i {1,..., n} p i λ 1 + v i λ u i ; λ 1, λ 0. Le passage au dual consiste à associer une variable à chaque contrainte du primal et une contrainte à chaque variable du primal. Dans le primal, les contraintes sont des limitations de ressources. Les variables du dual correspondent donc à des coûts unitaires que nous associons à ces ressources. Ainsi la variable λ 1 est le coût unitaire associé à la ressource poids et la variable λ est le coût unitaire associé à la ressource volume. De même, les variables du primal sont des quantités de biens dont nous souhaitons maximiser le revenu, les contraintes du dual concerneront donc le revenu unitaire associé à ces diérents types de biens. Nous pouvons donner une interprétation (économique) pour le dual : Une entreprise veut louer l'espace disponible dans l'avion à la compagnie (pour transporter ses propres produits). Elle désire minimiser le coût global de location mais doit faireune ore intéressante à la compagnie aérienne. En eet, l'espace de chargement de l'avion s'exprime comme un volume maximal autorisé V et un poids maximal autorisé P. Nous pouvons ainsi le voir comme deux ressources (poids et volume) pour lesquelles il faut proposer un prix. Nous aectons alors un prix λ 1 à chaque unité de poids disponible et un prix λ à chaque unité de volume disponible. Minimiser le prix global de location de l'avion s'exprime bien au moyen de : min P λ 1 +V λ. Par ailleurs faire une proposition intéressante pour la compagnie aérienne signie qu'elle doit avoir autant intérêt à louer son espace de chargement (poids et/ou volume) à l'entreprise qu'à transporter les diérents biens possibles. Pour un bien de type i, une unité transportée par la compagnie utilise v i unités de volume,

1.. Résolution de programmes linéaires 5 p i unités de poids et lui rapporte u i. Pour faire une proposition intéressante pour la compagnie, nous devons alors proposer des prix unitaires λ 1 et λ tels que, pour tout type de bien i, le prix correspondant à la quantité de ressources utilisées par une unité de bien de type i, p i λ 1 + v i λ, doit être au moins égal (ou supérieur) au revenu, u i, correspondant au transport d'une unité de bien de type i. Nous avons donc les contraintes (bornes inférieures) suivantes : p i λ 1 + v i λ geq u i pour tout type de bien i. Procédons à la résolution grâce au simplexe de ce programme linéaire dual (pour n = ). min 13 λ 1 + 9 λ ; λ 1 + λ ; λ 1 + λ 3 ; λ 1, λ 0. min 13 λ 1 + 9 λ ; λ 1 + λ +λ 3 = ; λ 1 + λ +λ 4 = 3 ; λ 1, λ, λ 3, λ 4 0. Ici, à partir de la forme standard du dual, en multipliant le système de contraintes par ( 1), nous exprimons dans la base (λ 3, λ 4 ), mais cette base n'est pas admissible. Nous devons donc utiliser le simplexe à deux phases. Phase 1, il s'agit de trouver une base initiale (admissible). Nous faisons l'ajout de (nouvelles) variables articielles au système de contraintes et nous résolvons le programme linéaire suivant : min λ 5 + λ 6 ; λ 1 + λ + ( 1) λ 3 +λ 5 = ; λ 1 + λ + ( 1) λ 4 +λ 6 = 3 ; λ 1, λ, λ 3, λ 4, λ 5, λ 6 0. La base initiale est (λ 5, λ 6 ), et il faut exprimer le critère dans cette base. Nous obtenons alors le tableau simplicial suivant : Observations après le tableau simplicial 1 : La base courante est : (λ 5, λ 6 ). La solution courante est : (λ 1, λ, λ 3, λ 4, λ 5, λ 6 ) = (0, 0, 0, 0,, 3). La valeur du critère est : + 3 = 5. Deux informations pour déterminer où eectuer le pivot et fournir la nouvelle base :

6 Chapitre 1. Introduction à la recherche opérationnelle base courante λ 1 λ λ 3 λ 4 λ 5 λ 6 λ 5 1 1-1 0 1 0 λ 6 1 0-1 0 1 3 3-1 -1 0 0 5 Table 1.10 Tableau simplicial 1 (dual, initialisation) : exercice 1.50 1. variable entrante. Un des plus grands coecients de la ligne-critère à donner. Ici, nous avons max(3,, 1) = 3. λ 1 entrante en base (dans la prochaine base).. variable sortante. Une des contraintes les plus sévères à donner. Le minimum des bornes inférieures, de manière à toutes les satisfaire. Ici, nous avons min( 1, 3 ) = 3 λ 6 sortante de base (pour la prochaine base). Les règles d'aection (pour compléter le tableau simplicial ) suivent. l 1 := l 1 + ( 1 ) l ; l := 1 l ; l 3 := l 3 + ( 3 ) l. base courante λ 1 λ λ 3 λ 4 λ 5 λ 6 1 1 λ 5 0 1 1 1 1 λ 1 1 0 1 1 0 1 1 0-1 0 3 Table 1.11 Tableau simplicial (dual, après le 1 ier pivot) : exercice 1.50 1 3 1 Observations après le tableau simplicial : La base courante est : (λ 5, λ 1 ). La solution courante est : (λ 1, λ, λ 3, λ 4, λ 5, λ 6 ) = ( 3, 0, 0, 0, 1, 0). La valeur du critère est : 0 + 1 = 1. Deux informations pour déterminer où eectuer le pivot et fournir la nouvelle base : 1. variable entrante. Un des plus grands coecients de la ligne-critère à donner. Ici, nous avons max( 1, 0) = 1. λ entrante en base (dans la prochaine base).. variable sortante. Une des contraintes les plus sévères à donner. Le minimum des bornes inférieures, de manière à toutes les satisfaire. Ici, nous avons min(1, 3) = 1 λ 5 sortante de base (pour la prochaine base). Les règles d'aection (pour compléter le tableau simplicial ) suivent.

1.. Résolution de programmes linéaires 7 l 1 := l 1 ; l := l + ( 1) l 1 ; l 3 := l 3 + l 1. base courante λ 1 λ λ 3 λ 4 λ 5 λ 6 λ 0 1-1 -1 1 λ 1 1 0 1-1 -1 1 1 0 0 0 0 1 1 0 Table 1.1 Tableau simplicial 3 (dual, après le ième pivot) : exercice 1.50 Observations après le tableau simplicial 3 : La base courante est : (λ, λ 1 ). La solution courante est : (λ 1, λ, λ 3, λ 4, λ 5, λ 6 ) = (1, 1, 0, 0, 0, 0). La valeur du critère est : 0 + 0 = 0. Tous les coecients de la ligne-critère associés aux variables hors-base sont négatifs (ou nuls). Nous ne pouvons plus améliorer le critère (ici, augmenter le gain), la phase 1 de l'algorithme est terminée. La solution optimale pour le problème de la phase 1 est la solution courante. La base optimale est (λ, λ 1 ), cette base est également admissible du problème de départ et les 4 premières colonnes du dernier tableau simplicial nous donnent l'expression du système de contraintes dans cette base ; Phase, il s'agit de l'algorithme du simplexe à partir de la base (λ, λ 1 ). Pour avoir le problème dual exprimé dans la base indiquée, il nous reste à exprimer le critère précédent (λ 5 + λ 6 ) en fonction des variables λ 3 et λ 4. Nous obtenons enn le tableau simplicial (initial pour cette phase ). base courante λ 1 λ λ 3 λ 4 λ 0 1-1 1 λ 1 1 0 1-1 1 0 0-5 -4 Table 1.13 Tableau simplicial 1 (dual, initialisation, phase ) : exercice 1.50 Observations après le tableau simplicial : La base courante est : (λ, λ 1 ). La solution courante est : (λ 1, λ, λ 3, λ 4 ) = (1, 1, 0, 0). La valeur du critère est :. Tous les coecients de la ligne-critère associés aux variables hors-base sont négatifs (ou nuls). Nous ne pouvons plus améliorer le critère (ici, augmenter le gain), l'algorithme s'arrête. La solution optimale est la solution courante. (λ 1, λ, λ 3, λ 4) = (1, 1, 0, 0). Vérication des résultats via le théorème des écarts complémentaires. Comme les variables-solutions du primal sont strictement positives, x 1 > 0 et x > 0, nous avons bien (l'implication est donc satisfaite), à l'optimum, les contraintes saturées (égalités) suivantes : λ 1 + λ = et λ 1 + λ = 3.

8 Chapitre 1. Introduction à la recherche opérationnelle Théorème 1.53. Quand deux programmes linéaires sont en dualité seuls trois cas peuvent se produire. 1. Le primal et le dual ont chacun au moins une solution réalisable. Alors les deux programmes sont bornés et réalisent le même valeur du critère à l'optimum (principe de dualité de von Neumann).. L'un des deux programmes linéaires a au moins une solution réalisable mais l'autre pas. Alors celui des deux qui a au moins une solution est non borné. 3. Aucun des deux programmes linéaires n'a de solution réalisable. La proposition suivante montre que non seulement nous pouvons lire l'objectif réalisé à l'optimum mais aussi la solution optimal d'un programme linéaire dans le tableau simplicial nal de son dual. Nous avons formulé la proposition à partir de l'algorithme du tableau-simplicial pour des raisons de lisibilité mais il en existe des formulations plus générales, indépendantes de tout algorithme. Proposition 1.54. À chaque variable du primal x i correspond une variable d'écart du dual y j. La valeur de x i dans la solution optimale du primal est égale à l'opposé f j du coût correspondant à y j dans le tableau simplicial nal du dual. Exercice 1.55. Production de papier. Deux usines produisent du papier de trois qualités diérentes. Elles ont des commandes pour chaque type de papier : la compagnie qui gère les usines a des contrats pour fournir 16 tonnes de papier de qualité inférieure, 5 tonnes de papier de qualité moyenne, et 0 tonnes de papier de qualité supérieure. Il coûte 1000 euros par jour pour faire fonctionner l'usine A et 000 euros par jour pour l'usine B. L'usine A produit 8 tonnes de papier de qualité inférieure, 1 tonne de papier de qualité moyenne et tonnes de papier de qualité supérieure par jour. L'usine B produit tonnes de papier de qualité inférieure, 1 tonne de papier de qualité moyenne et 7 tonnes de papier de qualité supérieure par jour. On cherche combien de jours chaque usine doit fonctionner an de satisfaire la demande de la façon la plus économique. Soit x 1 le nombre de jours de fonctionnement de l'usine A. Soit x le nombre de jours de fonctionnement de l'usine B. 1. Modéliser l'énoncé ci-dessous sous forme d'un programme linéaire.. Résoudre le problème ainsi poser à l'aide de la méthode géométrique. 3. Résoudre le problème ainsi poser à l'aide de la méthode du simplexe. Pour reprendre l'exercice précédent (du papier). Nous pouvons écrire le programme linéaire correspondant comme suit. min 1000x 1 + 000x ; 8x 1 + x 16 ; x 1 + x 5 ; x 1 + 7x 0 ; x 1, x 0.

1.. Résolution de programmes linéaires 9 Dans ce programme linéaire, nous retrouvons les contraintes (de haut en bas) sur les qualités de papier (inférieure, moyenne et supérieure respectivement) qui représentent les engagements (contrats) à respecter. Le dual du programme linéaire (en termes de minimisation) correspond au programme linéaire (en termes de maximisation) suivant. max 16y 1 + 5y + 0y 3 ; 8y 1 + y + y 3 1000 ; y 1 + y + 7y 3 000 ; y 1, y, y 3 0. Ce dual relève du cas favorable (forme canonique et second membres positifs). Nous introduisons ensuite deux variables d'écart, y 4 et y 5. Nous avons ainsi le programme linéaire (forme standard) et le tableau simplicial correspondant. max 16y 1 + 5y + 0y 3 ; 8y 1 + y + y 3 + y 4 = 1000 ; y 1 + y + 7y 3 + y 5 = 000 ; y 1, y, y 3, y 4, y 5 0. base courante y 1 y y 3 y 4 y 5 y 4 8 1 1 0 1000 y 5 1 7 0 1 000 16 5 0 0 0 0 Table 1.14 Tableau simplicial 1 (dual, initialisation) : exercice 1.55 Au bout de plusieurs étapes (parfois laborieuses à la main), nous obtenons le tableau simplicial (nal) suivant. base courante y 1 y y 3 y 4 y 5 5 7 y 5 1 0 5 5 600 y 3 6 5 0 1 1 1 5 5 00-1 0 0-3 - -7000 Table 1.15 Tableau simplicial (dual, nal) : exercice 1.55 Observations après le tableau simplicial (dual, nal) : La base courante est donc : (y, y 3 ). La solution courante est : (y 1, y, y 3, y 4, y 5 ) = (0, 600, 00, 0, 0). La valeur du critère est : 7000. Tous les coecients de la ligne-critère associés aux variables hors-base sont négatifs (ou nuls). Nous ne pouvons plus améliorer le critère (ici, augmenter