I Programmation linéaire
V Algorithme du simplexe standard |
Ce cours d'optimisation linéaire est destiné à des étudiants en Mathématiques apliquées ou Informatique, niveau troisième année universitaire. Il est basé essentiellement sur la référence ci-après : {quote} Hédi Nabli, ''Recherche Opérationnelle : Algorithme du Simplexe et ses Applications'', Centre de Publication Universitaire , Tunisie (2006) {quote} Ce livre propose entre autres
Dans ce document, les résultats mathématiques sont donnés sans démonstration. Pour plus de détails, on peut consulter la référence ci-dessus. V Algorithme du simplexe standard VI Dualité en programmation linéaire
Vous trouverez ici une version pdf : docquadratic.pdf Je remercie vivement Sophie Lemaire et Bernadette Perrin-Riou, enseignants-chercheurs à l'université de Paris-Sud, pour leur aide précieuse à réaliser ce document interactif. |
V Algorithme du simplexe standard | Un programme linéaire est un problème dans lequel on est amené à maximiser (ou minimiser) une application linéaire, appelée fonction d'objectif ou fonction économique , sur un ensemble d'équations et/ou d'inéquations linéaires, dites contraintes . Autrement dit, la programmation linéaire est une branche des mathématiques qui a pour but de résoudre des problèmes d'optimisation linéaire de type Les coefficients et bi sont des réels fixés et les xj sont des variables réelles. Les contraintes d'inégalités éventuelles sont toutes larges et non strictes. Il se peut qu'une contrainte d'inégalité soit de type '' ''. En multipliant chaque inégalité de type '' '' par (-1), on peut supposer que toutes les contraintes d'inégalité sont de type '' ''. |
V Algorithme du simplexe standard | Dans le contexte de la programmation linéaire, le terme programmation désigne l'organisation des calculs et non la réalisation d'un programme informatique. Du point de vue des applications, l'optimisation linéaire est d'une grande portée. Elle s'applique à des problèmes très variés qui sont issus de l'économie, de l'ingénierie, de la physique ou encore des modèles probabilistes. Dans ce cadre, on peut citer par exemple, les problèmes de type gestion de stock, gestion de production, transport de marchandise, affectation du personnel, systèmes industriels, réseaux de communication , etc. Pour les modèles de programmation linéaire, on est souvent amené à maximiser un gain ou minimiser un coût. Ceci explique d'ailleurs pourquoi la fonction à maximiser s'appelle fonction d'objectif ou économique. |
|
V Algorithme du simplexe standard |
Exemple
Une usine fabrique deux produits (A) et (B) à
l'aide des matières premières I, II et III. Le fonctionnement
de l'usine est comme suit :
Formulation mathématique
Si on désigne respectivement par
x1 et
x2 les
quantités vendues du produit (A) et (B), le gain total vaut
Z(x1,x2) = 4x1 +5x2 D'autre part, la disponibilité en matières premières revient à exiger des quantités, utilisées pour la fabrication de x1 et x2, qui soient inférieures aux quantités disponibles. Ces contraintes s'expriment par les inégalités suivantes :Bien entendu, les variables x1 et x2 doivent être positives. En conclusion, le problème de maximisation du profit se traduit mathématiquement par un programme linéaire qui s'écrit sous la forme :
|
I-1 Généralités
|
V Algorithme du simplexe standard | Pour un problème d'optimisation linéaire, tout point qui vérifie l'ensemble des contraintes s'appelle point réalisable ou admissible . L'ensemble de tous les points réalisables s'appelle domaine réalisable . Il est facile de vérifier que le domaine réalisable d'un programme linéaire est convexe. On rappelle qu'un ensemble est dit convexe si à chaque fois qu'il contient deux points x et y, il contient le segment joignant x et y. Ce segment est souvent noté par et il est défini par Un point est dit optimal s'il est admissible et s'il réalise l'optimum de la fonction d'objectif sur le domaine réalisable. Par exemple, pour le problème tout point réalisable (x1,x2) vérifie D'autre part, le point (1,0) est réalisable et on a Z(1,0) = 1. Donc, la solution réalisable (1,0) est optimale et la valeur maximale de Z sur le domaine réalisable est Z(1,0) = 1. |
I-1 Généralités
|
V Algorithme du simplexe standard | Nous allons présenter des techniques qui permettent de résoudre les programmes linéaires que l'on convient désormais de noter (PL). Diverses méthodes ont été proposées dans la littérature :
|
I-1 Généralités
|
I Programmation linéaire
V Algorithme du simplexe standard | Nous allons décrire la méthode graphique à travers trois exemples représentatifs, ayant chacun deux variables structurelles. Le premier admet une et une seule solution optimale. Le deuxième admet une infinité de solutions optimales. Par contre, le troisième exemple n'admet aucune solution optimale. La résolution d'un (PL) par la méthode graphique se fait selon une démarche commune, celle-ci peut être résumée en quatre directives :
|
I Programmation linéaire
V Algorithme du simplexe standard | Reprenons l'exemple
Le domaine réalisable est schématisé en gris sur la Figure. Toute droite d'équation Z(x1, x2) = r, où r est un réel fixé, est parallèle à la droite : Z(x1, x2) = 0. On constate aussi que tout déplacement parallèle de dans le sens de la flèche (voir dessin ci-après) fait augmenter r. Donc maximiser la fonction Z, tout en satisfaisant aux contraintes du problème, revient à chercher la droite la plus éloignée (dans le sens de la flèche) de et qui coupe le domaine réalisable. Du point de vue graphique, il s'agit de la droite passant par le point (3, 2) et parallèle à . Ainsi, on peut conclure que le point (3, 2) est la seule solution optimale qui donne une valeur maximale de la fonction d'objectif égale à Z(3, 2) = 22. Autrement dit, le meilleur profit vaut 22DT obtenu en fabriquant 3 unités du produit (A) et 2 unités du produit (B).
|
|
I Programmation linéaire
V Algorithme du simplexe standard | On considère le (PL) suivant :
Le domaine réalisable est la partie non bornée représentée partiellement en gris sur la Figure. Tout déplacement parallèle de dans le sens de la flèche (voir dessin ci-après) fait augmenter r. Donc tout point de la demi-droite est optimal et la valeur maximale de Z vaut Z(A) = Z(3,2) = 12 (voir dessin ci-après).
|
II-1 Exemple 1
|
I Programmation linéaire
V Algorithme du simplexe standard | On considère maintenant le (PL) suivant :
Le domaine réalisable associé à ce (PL) est la partie non bornée représentée partiellement en gris dans la Figure. Dans le graphique, on observe que toute droite d'équation Z(x1, x2) = r, avec , coupe le domaine réalisable. Donc, et par conséquent, le problème n'admet aucune solution optimale (voir dessin ci-dessous).
|
II-1 Exemple 1
|
I Programmation linéaire
V Algorithme du simplexe standard |
Tous les exemples traités ci-dessus possèdent deux
variables structurelles
x1 et
x2. Pour des (PL) en dimension
3, le raisonnement pour la méthode graphique reste le même.
La seule différence est que l'ensemble des points
(x1, x2, x3) vérifiant une contrainte
|
II-1 Exemple 1
|
I Programmation linéaire
V Algorithme du simplexe standard | ExerciceA venir
|
II-1 Exemple 1
|
I Programmation linéaire
V Algorithme du simplexe standard | La méthode des sommets est simple, elle se base sur la résolution des systèmes linéaires de Cramer . Cependant, elle est dans la pratique inexploitable car le nombre de systèmes à résoudre est en général trop important. Néanmoins, la méthode des sommets est d'une utilité incontestable : la recherche de l'optimum éventuel sur tout le domaine réalisable se ramène au calcul de l'optimum de la fonction d'objectif restreinte à un sous ensemble fini. Ce résultat sera l'un des outils clé de la méthode du simplexe . {df} Pour toute contrainte d'inégalité ( resp. contrainte de positivité ) d'un (PL) donné, l'hyperplan associé ( resp. xi = 0) s'appelle hyperplan frontière . {df} |
I Programmation linéaire
V Algorithme du simplexe standard | Considérons un (PL) à p variables réelles. Un point A du domaine réalisable est appelé sommet , s'il existe p hyperplans frontières dont l'intersection est réduite à A.
Théorème
Soit
une application linéaire et
un polyèdre de
. Si
Z admet son optimum
global en un point de
, il est
aussi atteint en un sommet de
.
Sans nul doute, l'intérêt de ce théorème est immédiat :
L'optimum (que ce soit maximum ou minimum) d'un
(PL), lorsqu'il existe, peut toujours être réalisé sur un
sommet.
La méthode des sommets pour la résolution d'un (PL), consiste donc à :
Exercice
Application 1 : Problème de trains
Exercice
Application 2 : Production optimale
|
|
I Programmation linéaire
V Algorithme du simplexe standard | Appliquons la méthode des sommets aux trois exemples précédents. Pour l'exemple , les sommets du domaine réalisable sont les points (voir Figure ) La valeur de la fonction d'objectif Z en chacun de ces sommets est
Il est clair que la plus grande valeur de Z en ces sommets est atteinte au point (3, 2) et vaut Z(3, 2) = 22. Pour l'exemple , d'après le graphique, les seuls sommets sont (2, 0) et (3, 2). De plus, on a Z(2, 0) = -12 < Z(3, 2) = 12 , ce qui entraîne que (3, 2) est une solution optimale. Concernant l'exemple , les sommets du domaine réalisable sont les points (0, 0), (0, 1) et (2, 3). La valeur de Z en chacun de ces points vautZ(0, 0) = 0 , Z(0, 1) = 1 , Z(2, 3) = 5.0 Cependant, on ne peut affirmer que (2, 3) est une solution optimale, puisqu'on a déjà vu que la fonction d'objectif n'est pas bornée sur son domaine réalisable.
Exercice
Méthode graphique générale
|
III-1 Résultat préliminaire
|
I Programmation linéaire
V Algorithme du simplexe standard | La méthode des sommets peut s'appliquer même pour des (PL) ayant un nombre de variables structurelles strictement supérieur à 3. Afin de déterminer un sommet, on choisit p hyperplans ( p étant le nombre de variables) parmi les n contraintes du domaine réalisable (y compris les contraintes de positivité : ). On obtient ainsi un système linéaire d'ordre p que l'on résoud. Si ce système admet une et une seule solution A, on vérifie si A satisfait les (n-p) contraintes restantes. Dans ce cas, A est un sommet, sinon le choix considéré de ces p équations linéaires ne permet pas d'avoir un sommet et pour ce faire, on effectue un autre choix de p hyperplans frontières parmi les n contraintes. Dans le but d'obtenir tous les sommets, il va falloir balayer tous les choix possibles dont le nombre est égal à . Chaque choix qui aboutit à un système de Cramer dont la solution est réalisable permet d'obtenir un sommet. Enfin, la solution du problème considéré est obtenue en prenant l'optimum de la fonction d'objectif sur tous les sommets.
Remarque
Dans la pratique, la méthode des sommets est en fait très
coûteuse en temps de calcul. D'une part, la détermination
d'un sommet exige la résolution d'un système linéaire de
Cramer d'ordre
p dont la solution doit satisfaire les
contraintes restantes. D'autre part, le nombre
(pn) est en
général très important. A titre indicatif, on a
! Par ailleurs, cette méthode n'est
applicable que lorsqu'on
est certain que le (PL) admet une solution optimale, ce
qui est a priori difficile à vérifier.
ExerciceRésolution par la méthode des sommets : A venir
|
III-1 Résultat préliminaire
|
I Programmation linéaire
V Algorithme du simplexe standard | Dans ce chapitre, nous allons étudier une méthode qui évite de parcourir tous les sommets. Plus précisément, le passage d'un sommet à un autre se fait en améliorant la valeur de la fonction à optimiser. De plus, elle fournit un test qui permet d'affirmer le cas échéant que le problème n'admette pas de solution. Nous verrons que les résultats concernant les problèmes de type maximisation, comparés à ceux relatifs aux problèmes de minimisation, sont très similaires. IV-3 Relation entre la frome canonique et standard |
I Programmation linéaire
V Algorithme du simplexe standard | On convient de dire qu'un vecteur u est inférieur à un vecteur v , et on écrit , si pour tout i, on a . Ici, le terme ui désigne la i-ième composante du vecteur u. Nous mettons en garde sur le fait que la négation de n'est pas u > v. En effet, l'inégalité u > v traduit la propriété ui > vi pour toute composante i. Par contre, la négation de , que l'on convient de noter , exprime que l'inégalité ui > vi ait lieu pour au moins une composante i. {df} Une forme canonique ( resp. forme standard ) est un (PL) où toutes les contraintes sont des inégalités ( resp. égalités) et les variables sont astreintes à être positives. {df} On a déjà expliqué qu'on peut supposer et sans perte de généralité, que les contraintes d'inégalité sont toutes de type '' ''. Par conséquent, on peut affirmer que tout (PL) sous forme canonique s'écrit sous la forme suivante : où , A, matrice (m, p) et sont fixés. Le vecteur x a p composantes réelles xi et désigne l'opérateur transposé. Les inégalités |
IV-3 Relation entre la frome canonique et standard IV-4 Notion de base réalisable |
I Programmation linéaire
V Algorithme du simplexe standard | La mise sous forme standard d'un (PL) quelconque consiste à transformer les contraintes d'inégalités (mise à part les contraintes de positivité) en égalité tout en imposant aux variables d'être positives. Pour ce faire, on procède comme suit :
Soit la forme canonique (FC) suivante : sous les contraintes x1 0, x2 0 Les données de la forme standard de cette (FC) sont :
ExempleOn peut dire à juste titre que ce (PL) n'est pas une forme canonique car la première contrainte est une égalité et la troisième variable x3 n'est pas astreinte à être positive. Pour la mise sous forme standard, la première contrainte, qui est déjà une égalité, reste inchangée. Pour la deuxième, on lui retranche une variable positive x4, elle devient
x1 - x3 - x4 = -1 Quant à la
troisième contrainte, on lui ajoute une variable positive
x5 pour devenir
x2 + x3 + x5 = 4
Concernant la variable
x3 qui est sans restriction de signe, elle est remplacée
par
x3-x3-, avec
et
. En
conclusion, la forme standard associée à ce (PL) s'écrit
Les variables du (PL) initial s'appellent variables de décision , celles de la forme standard associée s'appellent variables structurelles . |
IV-1 Forme canonique
IV-3 Relation entre la frome canonique et standard IV-4 Notion de base réalisable |
I Programmation linéaire
V Algorithme du simplexe standard | L'écriture d'un (PL) sous forme standard est introduite tout simplement parce que l'algorithme du simplexe ne s'applique qu'aux formes standards. En d'autres termes, pour résoudre un (PL) par le simplexe, il faut tout d'abord l'écrire sous forme standard. Etant donné qu'on résoud le (PL) proprement dit et non la forme standard associée, la question naturelle qu'on se pose est de savoir comment retrouver une solution optimale du (PL) de départ à partir d'une solution optimale de sa forme standard . Le théorème suivant établit le lien entre une solution optimale d'un (PL) et celle de sa forme standard, et on se limite au cas où le (PL) considéré est une (FC).
Théorème
v est une solution optimale de (FC) si et seulement si
est une solution optimale de la forme
standard associée. De plus, on a
Ce théorème se généralise bien évidemment pour tout (PL) quelque soit son type d'écriture. A titre d'illustration, pour l'Exemple qui n'est pas sous forme canonique, si (v1, v2, v3, v4, v5, v6) est une solution optimale de la forme standard associée, compte tenu des variables d'écarts et du changement de variable considérés, on peut dire que (v1, v2, v3 - v4) est une solution optimale du (PL) initial.
ExerciceForme standard : à venir
|
IV-1 Forme canonique
IV-4 Notion de base réalisable |
I Programmation linéaire
V Algorithme du simplexe standard | Désormais, on note tout (PL) écrit sous forme standard par (FS). Par définition, l'écriture matricielle d'un problème (FS) possède la forme suivante : où
sont fixés.
La matrice
M contient toujours plus de colonnes que de lignes
(i.e.
n > m) vu que le nombre de variables
structurelles
n (variables de décision + variables d'écarts
+ variables dûes aux variables sans restriction
de signe) dépasse le nombre de contraintes
m. Sans perte de
généralité, on suppose que la matrice
M
est de rang
m. Sinon,
|
IV-1 Forme canonique
IV-3 Relation entre la frome canonique et standard
|
I Programmation linéaire
V Algorithme du simplexe standard | Notons par Mi la colonne de M. Le vecteur colonne My s'écrit alors où yi est composante de y. On appelle système de variables de base tout ensemble de m variables distinctes yi, , prises parmi , telles que le déterminant des vecteurs Mi, est différent de zéro. On rappelle que l'entier m désigne le nombre de contraintes d'égalités qui apparaissent dans (FS). La matrice carrée formée par les m colonnes Mi, , s'appelle base et les variables yi, , s'appellent variables hors base . Autrement dit, une base B du problème (FS) n'est autre qu'une sous matrice carrée de M d'ordre m et inversible. Pour mieux visualiser une telle base B, on effectue des permutations de colonnes de sorte que la base B apparaisse sur les m premières colonnes de M. Ainsi, on met M sous la forme suivante : où et . Les variables yi, , peuvent aussi être classées selon B et N : Désormais, l'ensemble J des indices de base sera noté par JB et son complémentaire par JN. En respectant cette partition, le système My=b vérifie :
Par suite, l'ensemble des solutions dans du système linéaire My = b est égal à Parmi les solutions de ce système, nous distinguons les solutions dites de base pour lesquelles yN = 0N (on écrit 0N à la place de pour dire que les variables hors base sont nulles). Une telle solution existe et elle vaut Noter que toute solution de base réalisable admet (n - m) composantes nulles relatives aux variables hors base et que les autres composantes vérifient un système de Cramer d'ordre m. |
IV-4-2 Optimalité et base réalisable |
I Programmation linéaire
V Algorithme du simplexe standard | Par analogie au Théorème , nous allons établir que lorsque (FS) admet une solution, on peut toujours chercher une solution optimale parmi les solutions de base réalisable.
Théorème
Si un problème (FS) admet un optimum global, il existe toujours une
solution optimale qui est une solution de base réalisable.
Remarque
Tout sommet du
domaine réalisable
|
IV-4-1 Système de base
|
I Programmation linéaire
V Algorithme du simplexe standard | Une solution de base réalisable est dite dégénérée , si en plus des (n - m) composantes nulles relatives à 0N, il existe une composante du vecteur qui est nulle. Elle est non dégénérée dans le cas où toutes les composantes de sont non nulles et par suite strictement positives. De même, on dit qu'une base réalisable est dégénérée si la solution de base associée est dégénérée. Il est intéressant de noter qu'un point dégénéré est solution de plusieurs bases réalisables. En effet, tout vecteur colonne relatif à une base dégénérée B admet au moins une coordonnée , , qui est nulle. En considérant que , on obtient
car Dans la matrice B, nous allons remplacer le vecteur colonne par un autre vecteur pour de sorte que la matrice B' ainsi obtenue soit inversible. Il est clair que u est solution du système linéaire B'x = b, étant donné que |
IV-4-1 Système de base
IV-4-2 Optimalité et base réalisable
|
I Programmation linéaire
V Algorithme du simplexe standard | L'algorithme du simplexe est un procédé itératif qui progresse dans un sens évolutif : il passe d'une solution de base réalisable non optimale à une autre solution ayant une meilleure valeur d'objectif. De cette façon, on évite de parcourir toutes les solutions de base réalisable dont le nombre est en général prohibitif. Pour vérifier la non optimalité d'une solution, un simple test sera effectué. De plus, grâce à l'algorithme du simplexe, on sera capable de détecter, le cas échéant, que l'optimum est infini. |
IV-1 Forme canonique
IV-3 Relation entre la frome canonique et standard IV-4 Notion de base réalisable
|
I Programmation linéaire
V Algorithme du simplexe standard | La fonction d'objectif Z(y) = c y est entièrement définie par la donnée du vecteur . A chaque base , on note et . D'une façon équivalente, le vecteur cB (resp. cN) s'obtient à partir de c en prenant les coordonnée ci relatives aux variables de base (resp. hors base) associée à la matrice B (resp. N). Le classement du vecteur c selon JB et JN donne . Naturellement, on dit qu'une base B est optimale si la solution associée est optimale.
Théorème
On se donne une base réalisable
B du problème (FS). Si la
forme standard (FS) est de type maximisation (resp.
minimisation), on considère le vecteur ligne
La condition d'optimalité peut être interprétée comme un test d'arrêt des itérations pour l'algorithme du simplexe. Il reste à décrire la technique qui permet de passer d'une solution de base réalisable non optimale à une autre solution de base réalisable ayant une meilleure valeur économique. Cette partie fera l'objet du paragraphe suivant.
Interprétation
Donner une interprétation économique du
vecteur
wN. A partir de la solution réalisable
, on construit le point
y'
obtenu en augmentant d'une unité la
s-ième variable
hors base. D'après l'égalité
BNyN
, ce point vaut
, où
es désigne le
s-ième vecteur de la base canonique de
. Si
le point ainsi obtenu est réalisable, on obtient :
Pour un problème de type maximisation, cette dernière égalité s'écrit . Donc, l'élément ws représente la quantité s'ajoutant à la valeur économique Z lorsqu'on incrémente d'une unité la coordonnée hors base de , pour autant que le nouveau point obtenu soit réalisable. Semblablement, lorsqu'il s'agit d'un problème de minimisation, ws correspond à la valeur retranchée de la valeur économique. C'est la raison pour laquelle wN s'appelle vecteur des coûts réduits (ou coûts fictifs ou encore coûts marginaux ).
ExerciceSommet-Base-Optimalité : A venir
|
IV-5-2 Amélioration de la fonction d'objectif |
I Programmation linéaire
V Algorithme du simplexe standard | On se donne une base réalisable . Le vecteur Bi désigne la colonne de B qui est à fortiori une colonne de M. On note aussi Nj la colonne d'indice j de la matrice N. D'ailleurs, Nj n'est autre Nej où ej est le j-ième vecteur de la base canonique de .
Théorème
On suppose que la base réalisable
B vérifie
. Il existe donc une composante
ws du
vecteur
wN qui est strictement positive. Considérons le
vecteur colonne
de la matrice
. Alors de deux choses l'une
De plus, on a , selon que (FS) soit de tupe maximisation ou minilisation. Ici, le point représente la solution de base réalisable associée à B : . Il est intéressant de remarquer que dans le cas où la base réalisable B est non dégénérée, le paramètre est strictement positif. Sans aucun doute, le point construit possède, en cas de non dégénérescence, une valeur économique strictement meilleure que celle de . |
IV-5-1 Condition d'optimalité
|
I Programmation linéaire
V Algorithme du simplexe standard |
/* On suppose que l'on dispose d'une base réalisable B */ while do choisir s telle que ws = wN es>0 if then optimum infini /* */ exit else calculer déterminer r pour lequel est atteint end if /* Br est remplacée par Ns */ /* Ns est remplacée par Br */ Calculer wN end while Optimum atteint en et il vaut Z /* Fin de l'algorithme */ |
IV-5-1 Condition d'optimalité
IV-5-2 Amélioration de la fonction d'objectif
|
I Programmation linéaire
V Algorithme du simplexe standard | Dans la pratique, le choix de ws est souvent multiple, il se peut que plusieurs composantes wN soient strictement positives. Etant donnée que la nouvelle solution vérifie : il serait commode de choisir la plus grande composante ws de wN strictement positive. Il arrive aussi que le minimum soit atteint pour deux ou plusieurs coordonnées différentes. Dans ce cas de figure, on fixe comme critère de choix pour l'indice r, la première coordonnée trouvée j qui réalise le minimum . Pour des raisons de stabilité numérique et par analogie avec la méthode de Gauss avec pivot partiel, un autre critère de choix est souvent considéré. Il consiste à choisir r de façon à ce que soit le plus élevé parmi les éléments strictement positifs. Le critère qui fixe le choix de ws et de l'indice r s'appelle règle de pivotage . La règle qui prend systématique la plus grande valeur positive de wN s'appelle règle du meilleur coût marginal , c'est cette règle que l'on adopte dans ce cours. |
IV-5-1 Condition d'optimalité
IV-5-2 Amélioration de la fonction d'objectif
|
I Programmation linéaire
| Dans ce chapitre, les données mise en oeuvre dans l'algorithme du simplexe seront représentées dans un tableau. A chaque itération correspond un tableau appelé tableau simplexe . Des formules itératives liant les éléments d'un tableau au tableau subséquent seront également établies. |
I Programmation linéaire
| Les éléments qui interviennent dans l'algorithme du simplexe peuvent être récapitulés dans ce qui suit.
Les coordonnées correspondent aux variables de base, et les coordonnées correspondent aux variables hors base. Le terme Z désigne la valeur de la fonction d'objectif Z au point réalisable . D'après l'indexation des variables de base, on a :
|
V-3 Sommets et solutions de base V-5 Algorithme du simplexe standard |
I Programmation linéaire
| Comme application de l'algorithme du simplexe, nous allons résoudre les trois exemples du premier chapitre en utilisant les tableaux simplexe. |
V-1 Tableau simplexe
V-3 Sommets et solutions de base V-5 Algorithme du simplexe standard |
I Programmation linéaire
| Reprenons l'Exemple 1 :
|
|
I Programmation linéaire
| Pour l'Exemple 2, le (PL) considéré est
|
V-2-1 Exemple 1
|
I Programmation linéaire
| Pour l'Exemple 3 :
|
V-2-1 Exemple 1
|
I Programmation linéaire
| Tous les (PL) résolus jusqu'ici sont des formes canoniques puisque le domaine réalisable de chacun peut s'écrire sous la forme Comme conséquence immédiate du Théorème , on peut affirmer que si est une solution d'une base réalisable de , alors v est un sommet de . Essayons donc de voir le lien entre les différentes solutions de base réalisable parcourues par l'algorithme du simplexe et les sommets correspondants. Pour l'Exemple , à partir des quatre itérations effectuées, on voit que les sommets de mis en jeu ont été parcourus dans l'ordre suivant : En se référant à la Figure , on remarque que deux sommets relatifs à deux itérations consécutives sont toujours adjacents : ils appartiennent à un même segment de droite frontière de . Cela s'explique algébriquement par le fait que les bases B et B' ne différent que d'une seule colonne. |
V-1 Tableau simplexe
V-5 Algorithme du simplexe standard |
I Programmation linéaire
| A chaque itération de l'algorithme du simplexe, on est contraint à calculer la matrice et le vecteur ligne . Ces calculs exigent préalablement la détermination de la matrice inverse . Dans cette section, nous allons voir comment surmonter cette difficulté. Tout simplement, on évitera le calcul de . Les éléments d'un tableau vont être déterminés itérativement à partir des éléments du tableau précédent. |
V-1 Tableau simplexe
V-3 Sommets et solutions de base
V-5 Algorithme du simplexe standard |
I Programmation linéaire
| Posons la matrice réelle rectangulaire (m,p) avec p = n-m. Aussi, on pose et où Bi (resp. Ni) désigne la colonne de B (resp. N). Supposons qu'à l'itération relative à la base B, on ait permuté le vecteur colonne Br avec Ns. Au niveau du tableau, cela revient à écrire en gras l'élément (r,s) de la matrice , que l'on note communément . Par conséquent, au cours de la prochaine itération, on aura
ThéorèmeAfin de mieux visualiser les formules établies dans le Théorème , nous allons illustrer tout d'abord les éléments du tableau simplexe dans le schéma suivant. Le réel { } correspond à l'élément écrit en gras au niveau de la matrice .
Ensuite, le tableau simplexe qui suit sera rempli moyennant des transformations qui peuvent être résumées en ces termes :
|
V-4-2 Vecteur des coûts réduits |
I Programmation linéaire
| On garde ici le même pivot . Cela veut dire que le vecteur colonne Br a été échangé par Ns et vice versa. Les formules établies précédemment pour vont conduire aux relations liant les composantes de avec celles de wN. Pour cela, on pose :
ThéorèmeD'ores et déjà, on peut observer que les relation liant à wN sont les mêmes que les relations entre une ligne et une ligne en dehors de la ligne du pivot . Le terme ws, qu'on a convenu d'écrire en gras, se situe sur la même colonne du pivot. Il est remplacé par . Les opérations qu'il faut appliquer sur wj, , en vue d'obtenir w'j sont identiques à celles effectuées sur les termes de symbole dans le schéma du paragraphe précédent. |
V-4-1 Matrice du pivot
|
I Programmation linéaire
| En ce qui concerne le vecteur , il a été indiqué d'avance qu'il peut être déterminé par les relations Si on remplace par sa valeur , on obtient les mêmes formules qui régissent une colonne de en dehors de la colonne du pivot. Maintenant, l'élément en bas à droite du tableau simplexe, à savoir Z, se calcule itérativement via la relation ou selon que le probème étudié soit de type maximisation ou minimisation. En tenant compte de l'expression de , il est facile de constater que la formule s'identifie à la formule relative à un élément de symbole '' ''. Afin de garder les mêmes formules, il est souhaitable de remplacer Z par -Z lorsqu'il s'agit d'un probème de type maximisation. Au niveau de l'implémentation sur machine, il est commode de définir une matrice, que l'on note H, qui contient les éléments , , wN et Z : La matrice H est de taille (m+1,p+1). D'une itération à une autre, elle est calculée itérativement de la même façon que l'on détermine les éléments symbolisés par '' '', '' '' et '' ''. Afin de balayer tous les paramètres du tableau simplexe, on ajoute à H deux vecteurs entiers, notés base et hbase et de taille respective m et p. Pour chaque coordonnée i, base(i) fournit l'indice de la variable de base du tableau simplexe en cours. De même, hbase(j) correspond à l'indice de la variable hors base. La mise en oeuvre des résultats de ce paragraphe dans l'algorithme du simplexe aboutit à une formulation plus simplifiée au niveau de l'implémentation sur machine. Ici, on suppose que l'on prend systématiquement l'élément ws>0 le plus élevé. Naturellement, le plus grand parmi les composantes strictement positives est le maximum sur toutes les composantes de wN.
Algorithme du simplexe standardRequire base réalisable Initialiser H, base et hbase Calculer while ws>0 do déterminer l'indice s pour lequel le maximum ws est atteint if then optimum infini /* ou */ exit else calculer déterminer l'indice r pour lequel est atteint end if piv = H(r,s) Calculer end while Optimum vaut Une solution optimale, que l'on note opty, est donnée par :
Exercice
Résolution par les tableaux simplexe
Méthode du simplexe
|
V-1 Tableau simplexe
V-3 Sommets et solutions de base
|
I Programmation linéaire
V Algorithme du simplexe standard
| Dans le cadre de la programmation linéaire, on peut associer à chaque (PL) un autre (PL), de type opposé, nommé programme dual . Leurs propriétés sont étroitement liées : Par souci d'optimiser les calculs lors de la résolution d'un (PL), il est plus avantageux, dans certaines circonstances, de résoudre le probème dual. Ensuite, la solution du (PL) initial sera déduite facilement par l'intermédiaire de la solution du dual. Une des conséquences les plus fructueuses de la notion de dualité est l'algorithme dual-simplexe qui a été conçu, dans les années 50, par Lemke. Cet algorithme a un intérêt inéluctable en programmation linéaire. |
I Programmation linéaire
V Algorithme du simplexe standard
|
VI-2 Optimalité pour le primal-dual |
I Programmation linéaire
V Algorithme du simplexe standard
| On considère un programme linéaire écrit sous forme canonique que l'on suppose de type maximisation : |
|
I Programmation linéaire
V Algorithme du simplexe standard
| Tout programme linéaire ne s'écrit pas forcément sous forme canonique. Il peut admettre en effet des contraintes d'égalités et/ou des variables sans restriction de signe (s.r.s. en abrégé). De ce fait, la forme générale d'un primal de type maximisation s'écrit de la façon suivante : |
VI-1-1 Cas d'une forme canonique
|
I Programmation linéaire
V Algorithme du simplexe standard
| On note que lorsque le primal est écrit sous une forme générale, son dual l'est aussi. Le tableau ci-dessous récapitule les règles de correspondance entre un primal de type maximisation et son dual.
Remarque
On aurait pu choisir comme primal un
probème de minimisation, le dual aurait été alors un
programme linéaire de type maximisation. Tout simplement parce que le dual du dual
est le primal (facile à prouver).
Autrement dit, si on permutait dans le tableau
précédent les deux mots Primal et Dual , on obtiendrait les règles
de correspondance entre un primal de minimisation et son dual.
|
VI-1-1 Cas d'une forme canonique
|
I Programmation linéaire
V Algorithme du simplexe standard
|
Théorème
Si
et
sont deux solutions réalisables de
et
respectivement, alors
.
Si de plus on a
, alors
et
sont
deux solutions optimales de
et
respectivement.
Dans la pratique, il est souvent difficile de trouver deux points réalisables et de et tels que . La situation la plus envisageable consiste à déterminer une solution optimale du primal via par exemple le simplexe, puis essayer d'en dégager une solution optimale du dual.
Théorème
Soit
B une base réalisable de la forme standard
relative au primal
. Si la base
B vérifie
, alors
est une solution optimale du dual
.
Remarque
Afin de déterminer la solution optimale
,
il est inutile de calculer la matrice inverse
. Il suffit, en effet, de résoudre le système de
Cramer
v B = cB. Par ailleurs, le Théorème
précédent n'exige aucune condition sur la nature du primal (
ou
).
|
VI-1 Primal - Dual
|