Présentation
RÉSUMÉ
Cet article expose les concepts fondamentaux de la programmation linéaire qui consiste à minimiser ou à maximiser une fonction objectif linéaire avec des contraintes d'inégalités et d'égalités linéaires sur les variables du système. Les propriétés fondamentales de la programmation linéaire sont établies et la méthode de résolution du simplexe est présentée. Un exemple de problème de production sert de référence pour illustrer les différentes propriétés, concepts et méthodes développées. Un code MATLAB de la méthode du simplexe est fourni en annexe et une liste de quelques solveurs de programmation linéaire est proposée avec un exemple d'utilisation. La sensibilité aux données de la solution d'un programme linéaire et la notion de dualité en programmation linéaire sont introduites.
Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.
Lire l’articleABSTRACT
This paper presents the basic concepts of linear programming, which consists in minimizing or maximizing a linear objective function with linear inequality or equality constraints on the variables of the system. The properties of solutions of a linear programming problem are established and the simplex method for solving a linear programming problem is presented in detail. Throughout the paper, a simple example of a production problem serves as a reference to illustrate the various concepts and methods developed. A MATLAB code of the simplex method is supplied, and some linear programming solvers are listed with an example of use. The data sensitivity of the solution of a linear program is analyzed, and the concept of linear programming duality is introduced.
Auteur(s)
-
Jean-François SCHEID : Maître de conférences en mathématiques appliquées - Institut Elie Cartan de Lorraine & TELECOM Nancy - Université de Lorraine, Nancy, France
INTRODUCTION
De nombreux phénomènes économiques et industriels peuvent se modéliser par des systèmes mathématiques d’inégalités et d’égalités linéaires conduisant à des problèmes d’optimisation linéaire. Dans ces problèmes d’optimisation linéaire, on cherche à minimiser ou maximiser une fonction linéaire sous des contraintes linéaires portant sur les variables du problème. On parle souvent de programmation linéaire (ou encore de programme linéaire), le terme de programmation faisant référence à l’idée d’organisation et de planification lié à la nature des phénomènes modélisés. Ce terme a été introduit pendant la Seconde Guerre mondiale et systématiquement utilisé à partir de 1947 lorsque G. Dantzig inventa la méthode du simplexe pour résoudre les problèmes de programmation linéaire. Les applications industrielles de la programmation linéaire sont très présentes par exemple dans l’industrie pétrolière (pour l’extraction, le raffinage et la distribution du pétrole), dans l’agroalimentaire (composition optimale des ingrédients de plats cuisinés, etc.), industrie du fer et de l’acier (composition optimale des aciers), l’industrie du papier (problèmes de découpe), les transports (plan de vols d’avions, minimisation des coûts de transport…) et les réseaux (optimisation des réseaux de communication).
Cet article présente les propriétés et les concepts fondamentaux de la programmation linéaire puis expose l’algorithme du simplexe pour résoudre un programme linéaire. L’algorithme du simplexe est mis en œuvre selon deux méthodes, la méthode des dictionnaires et la méthode des tableaux. La première méthode permet de bien comprendre le déroulement du simplexe alors que la méthode des tableaux est plus algébrique et elle conduit à la mise en œuvre effective de l’algorithme du simplexe. Un code MATLAB basé sur la méthode des tableaux est proposé en annexe. Une application de la méthode du simplexe à l’analyse de sensibilité d’un programme linéaire est également présentée ainsi qu’une introduction à la dualité en programmation linéaire.
MOTS-CLÉS
KEYWORDS
linear programming | simplex method | MATLAB
DOI (Digital Object Identifier)
Cet article fait partie de l’offre
Mathématiques
(202 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Présentation
6. Convergence du simplexe
À chaque étape de l’algorithme du simplexe (en phase 2), on peut distinguer des cas remarquables qui conduisent tous à l’arrêt de l’algorithme :
1. Si les coûts réduits sont tous strictement négatifs, i.e.
, alors la solution de base réalisable courante est l’unique optimum (cf. figure 3) ;
2. Si les coûts réduits sont négatifs ou nuls, i.e.
, alors il y a deux cas remarquables :
i) Si le coût réduit de la variable entrante est nul, i.e.
, et si xe > 0, alors l’optimum n’est pas unique (cf. figure 4),
ii) Si
et xe = 0 alors l’optimum est unique (a priori). Dans ce cas, la base est dite dégénérée, c’est-à-dire qu’il existe une variable de base nulle (cf. figure 5) ;
3. Si le coût réduit de la variable entrante est strictement positif, i.e.
, et si xe n’est pas borné alors la fonction objectif F n’est pas majorée :
![](figures/ul-af1254niv10006/1/nv167377688282-web.gif)
Une solution de base réalisable est dite dégénérée si au moins une des variables de base est nulle.
Théorème 2. Si au cours de l’algorithme du simplexe, aucune base rencontrée n’est dégénérée,...
Cet article fait partie de l’offre
Mathématiques
(202 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Convergence du simplexe
BIBLIOGRAPHIE
-
(1) - BILLIONNET (A.) - Optimisation discrète – De la modélisation à la résolution par des logiciels de programmation mathématique. - Dunod (2007).
-
(2) - BREZINSKI (C.) - Initiation à la programmation linéaire et à l'algorithme du simplexe. - Ellipse, Paris (2006).
-
(3) - CHVATAL (V.) - Linear programming. - W. H. Freeman (1983).
-
(4) - DANTZIG (G.), THAPA (M.) - Linear Programming 1 : Introduction. - Springer Series in Operations Research and Financial Engineering (2013).
-
(5) - DANTZIG (G.), THAPA (M.) - Linear Programming 2 : Theory and Extensions. - Springer Series in Operations Research and Financial Engineering (2013).
-
(6) - HECHE (J.-F.), LIEBLING (T.), DE WERRA (D.) - Recherche...
DANS NOS BASES DOCUMENTAIRES
ANNEXES
GLPK – Gnu Linear Programming Kit (version pour Linux) [Logiciel]
LPSOLVE, (version multi-plateforme sous licence LGPL)
IBM ILOG CPLEX Optimization Studio (version multi-plateforme)
MATLAB – Optimization toolbox
CMPL – <Coliop|Coin> Mathematical Programming Language
HAUT DE PAGE
COIN-OR : COmputational INfrastructure for Operations Research
ROADEF : Société française de Recherche Opérationnelle et d'Aide à la Décision
http://www.roadef.org/content/index.htm
Portail ENSTA de la Recherche Opérationnelle
http://perso.ensta-paristech.fr/~diam/ro/
AFPC : Association Française pour la Programmation par Contraintes
HAUT DE PAGECet article fait partie de l’offre
Mathématiques
(202 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive