Notes de cours de recherche opérationnelle

32
Moez Kilani Notes de Cours Programmation Lin ´ eaire 3 ` eme ann´ ee Finance Institut Sup ´ erieur de Gestion de Sousse ISG

Transcript of Notes de cours de recherche opérationnelle

Moez Kilani

Notes de Cours

Programmation Lineaire

3eme annee Finance

Institut Superieur de Gestion de Sousse ISG

Table des matieres

1 Formulation 5

1.1 Un probleme de production . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.2 Un probleme de finance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2 Resolution graphique 8

2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2 Etude d’un exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3 Cas particuliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.4 Analyse de sensibilite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.5 Probleme parametre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3 La methode du simplexe I 15

3.1 Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.2 Tableau de simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.3 Critere d’optimalite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.4 Pivotages et solution optimale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.5 Interpretation graphique du simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4 La methode du simplexe II 21

4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.2 La methode du grand M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.3 La methode en deux phases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

5 Analyse post-optimale 23

5.1 Coefficient dans la fonction objective (parametre cj) . . . . . . . . . . . . . . . . . . 235.2 Disponibilite en matiere premiere (parametre bi) . . . . . . . . . . . . . . . . . . . . 24

6 Probleme du transport 26

6.1 La representation d’un probleme de transport . . . . . . . . . . . . . . . . . . . . . . 266.2 Solution initiale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

6.2.1 La methode du coin Nord-Ouest . . . . . . . . . . . . . . . . . . . . . . . . . 276.2.2 La methode du cout minimum . . . . . . . . . . . . . . . . . . . . . . . . . . 28

6.3 Solution optimale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296.4 Cas particuliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2

Avant-propos

L’objectif de ce document est de fournir un support de reference pour relatif aux elementsde base du cours. Il s’agit de la premier edition, et beaucoups de details manquent encore !Il ne faut pas donc considerer ce document comme un manuel de cours.

Le contenu de ce document sera dispense pendant six semaines. Ensuite trois semainesseront consacrees a des exercices et des applications. La deuxieme partie du cours (la theoriedes graphes) qui n’est pas abordee dans ce document sera dispensee pendant les semainesrestantes du semestre.

Pour les commentaires, corrections et suggestions (fort appreciees) merci d’utiliser l’adresseelectronique : [email protected]

3

Introduction

Un programme mathematique contient deux parties : une fonction objective a maximiserou a minimiser et un ensemble de contraintes a satisfaire. Un programme lineaire est unprogramme mathematique dont la fonction objective ainsi que toutes les contraintes sontecrites sous forme lineaire.

Les programmes linaires sont beaucoup plus simples a resoudre que les pragrammes non-lineaires. En effet, des techniques de resolution assez faciles a mettre en oeuvre sont dispo-nibles. L’algorithme du simplexe est une bonne illustration de ces techniques. Beaucoups deproblemes pratiques peuvent etre formules comme des programmes lineaires. L’abbreviationPL pour “programme lineaire” sera largement dans ce document.

4

Chapitre 1

Formulation

La formulation est l’etape qui consiste a passer de l’ennoce d’un probleme a son ecrituresous forme mathematique en respectant la linearite. La formulation est certainement l’etapela plus importante pour deux raisons au moins. D’abord, c’est l’interface entre les profes-sionnels et les specialistes de la recherche operationnelle ou encore entre la forme reelle estla forme mathematique d’un probleme donne. Ensuite, une fois la formulation achevee, laresolution peut etre de maniere systematique. Cette tache est rendue facile par l’existence denombreux outils informatiques specialises. Neomoins, une connaissance minimale des algo-rithmes de resolution reste utile afin de comprendre et d’interpreter comprendre l’output deslogiciels. Ce chapitre illustre la formulation de PL a travers un certains nombre d’exemples.

1.1 Un probleme de production

Une firme produit deux biens A et B. Une unite de A procure a la la firme ungain de quatre unites monetaires et une unite de B lui procure un gain de cinqunites monetaires. Trois matieres premieres M1, M2 et M3 sont utilisees pour laproduction. Chaque unite de A necessite trois unites de M1 et une unites de M2.Chaque unite de B necessite une unite de M1, deux unites de M2 et une unite deM3. Quelles quantites de A et B faut-il produire afin de maximiser le profit decette firme.

Afin de repondre a la question posee, il est preferable de proceder d’une maniere syste-matique. Je suggere la demarche suivante :

1. Clarifier et resumer le texte dans des tableaux

2. Comprendre l’objectif du probleme et les contraintes pour atteindre cet objectif

3. Fixer les variables du probleme

4. Formuler la fonction objective et toutes les contraintes du probleme en fonction desvariables fixees

Dans ce probleme il est clair que l’objectif consiste a maximiser le profit. Les consomma-tions de matieres premieres peuvent etre resumees dans le tableau suivant :

5

4 5MP1 3 1 15MP2 1 2 10MP3 0 1 4

Le choix des variables est souvent la tache la plus delicates. Si on est sur le bon chemin iln’y a presque aucune raison pour ne pas achever la formulation. Dans ce cas encore il n’y apas de regles magiques a appliquer. Il est utile de s’approcher du probleme en se demandantce que signifie la solution. Supposons, que le reponsable de cette usine vous pose la question ?Qu’est ce que vous allez lui repondre ? Il semble claire que dans ce probleme la reponse afournir au directeur est de type : afin de maximiser le produit il faut produire un certainnombre de A et un certain nombre de B.

Si on est d’accord sur ce point il devient naturel de poser les variables dans ce sens. Soitx1 la quantite a produire de A et soit x2 la quantite a produire de B.1 La fonction objectivecorrespond donc au profit, qu’on notera z, de l’usine. A partir des taux de profit unitaireson a z = 4x1 + 5x2. On cherche a maximiser le profit, et donc la fonction objective s’ecrit :

max z = 4x1 + 5x2.

Ensuite, la quantite disponible de chaque matiere premiere est limitee. Pour la matierepremiere, tout ce qui est utilise pour A (3×x2) et tout ce qui utilise pour B (1× x2) ne doitdepasser 15 unites. Ainsi la contraintes s’ecrits :

3x1 + x2 ≤ 15.

Le meme raisonnement pour les deux autres matieres premieres donne les contraintes

x1 + 2x2 ≤ 10

etx2 ≤ 4,

respectivement. Ensuite, il est clair que les quantites produites sont toujours positives. Cescontraintes sont dites contraintes de non-negativite des variables. Il est utile d’inserer cescontraintes dans le programme. En resume, le programme mathematique (lineaire) relatif ace probleme s’ecrit de la maniere suivante : ce programme peut etre resume de la manieresuivante :

(P )

max z = 4x1 + 5x2

3x1 + x2 ≤ 15x1 + 2x2 ≤ 10

x2 ≤ 4x1 , x2 ≥ 0

(1.1)

Remarquer que toutes les contraintes, ainsi que la fonction objective, sont des fonctionslineaires de x1 et x2.

1Il est peut etre plus claire de poser xA et xB les quantites respectives a produire de A et B.

1.2 Un probleme de finance

Une banque dispose d’un capital C=2 000 000DT qu’elle peut octroyer durant l’anneeen cours comme credit a ses clients. Il y a trois types de credits : (C1) credit personnel ; (2)credit voiture ; et (3) credit maison. La banque peroit des interets sur les credits. Ces dernierssont de 14%, 12% et 8%, respectivement pour les credits de type (C1), (C2) et (C3). Parailleurs la banque doit respecter certaines regles : (R1) les credits personnels ne doivent pasdepasser 30% du montant total des credits ; (R2) le montant total des credits voiture ne doitpas depasser la moitie du montant total des credits maison. (R3) le taux d’interet moyensur tous les credits ne doit pas depasser 11%. Formuler ce proleme comme un programmelineaire.

Chapitre 2

Resolution graphique

2.1 Introduction

Considerons le probleme de production formule dans le chapitre precedent. Ce pro-gramme contient deux variables. Dans ce cas, il est possible de representer graphiquement lescontraintes ainsi que la fonction objective. Les etapes a suivre pour la resolution graphiquesont les suivantes :

1. tracer les axes pour les deux variables ;

2. tracer les contraintes du probleme ;

3. determiner la region realisable ;

4. tracer la fonction objective pour quelques valeurs ;

5. conclure pour la solution optimale.

Nous illustrons cette procedure pour le probleme de production discute dans la section 1.1.

2.2 Etude d’un exemple

Le programme (1.1) s’ecrit :

(P )

max z = 4x1 + 5x2

3x1 + x2 ≤ 15x1 + 2x2 ≤ 10

x2 ≤ 4x1 , x2 ≥ 0

En appliquant la procedure indiquee ci-haut, on aboutit a un graphique similaire a laFigure 2.1. Remarquer qu’on tient compte des contraintes de non-negativite des variables duprobleme. Pour ce probleme la solution optimale se situe au niveau du point C de coordonnees(4, 3). Ainsi, la reponse a fournir est de type : afin de maximiser le profit il faut produirequatre unites de A et trois unites de B.

8

x1

x2

O

AB

C

D

z = 0

z = 31Region realisable

Fig. 2.1 – Solution graphique.

Une remarque s’impose : la region realisable est un ensemble convexe. Ceci etant lecas dans tous les programmes lineaires, car l’intersection de demi-(hyper)plans est toujoursun convexe (sinon l’ensemble vide). C’est principalement a cause de cette propriete que laresolution des programmes lineaires est beaucoup plus simple que celle des programmes non-lineaires. En arrivant au point C, on est sure qu’il n’y aurait pas d’autres points de memenature (pour z plus grand).1

2.3 Cas particuliers

Le probleme discute plus haut a une solution optimale et cette solution est unique. Il estpossible de rencontrer des situations differentes. Les trois cas particuliers les plus importantssont les suivants :

– solutions multiples– solution non-bornee– pas de solutions realisables

Ces configurations peuvent etre identifiees facilement sur un graphique.

1Ce point sera discute avec plus de detail pendant une seance de cours.

x1

x2

O

AB

C

D

Fig. 2.2 – Solution optimale multiple.

Considerons le programme suivant :

(P ′)

max z = 3x1 + 4x2

3x1 + x2 ≤ 15x1 + 2x2 ≤ 10

x2 ≤ 4x1 , x2 ≥ 0

La solution graphique correspondant a ce programme est illustree sur la Figure 2.2. Ainsi,tous les points sur le segment [B, C] correspondent a une solution optimale. Remarquons quela fontion objective a la meme pente que la deuxieme contrainte du probleme.

Deux autres cas particuliers peuvent etre facilement illustres sur le graphique. En ajoutantla contrainte x1+x2 ≥ 10 le programme donne dans (1.1) n’admet plus de solution realisable,et donc plus de solution optimale. En retirant la premiere et la deuxieme contrainte duprogramme (P) on obtient un PL qui n’admet pas de solution bornee (verifier ces deuxpoints graphiquement).

2.4 Analyse de sensibilite

La solution d’un probleme est utile. Le comportement de la solution en fonction desparametres du parametres est meme plus importante. Dans l’exemple de production discuteplus haut, on peut se demander : que serait la solution si la disponilite d’une matiere premiere

varie, ou si la rentabilite d’un des deux produits n’est plus la meme. Ce type de problemefait partie de l’analyse de sensibilite.

Que devient la solution optimale si la rentabilite du produit A passe de 4 a 5 (um) ? Lepoint optimal change-t-il ? la valeur de la foncion optimal reste-t-elle la meme ? Le graphiquepermet de voir rapidement la reponse a ces questions. En effet, il suffit de remarquer quedans ce cas la region realisable reste inchangee et que la pente de la fonction objective passede −4/5 a −1. Ainsi, le changement peut etre illuste sur le graphique comme le montrela Figure 2.3, ou les deux lignes rouges indiques les courbes d’iso-profit correspondant auxnouveaux coeficients de la fonction objective.

x1

x2

O

AB

C

D

z = 0

z = 35

z = 22

Region realisable

Fig. 2.3 – Variation dans un parametre de la fonction objective.

Il est donc claire que dans ce cas la solution optimale reste au meme point C. D’unemaniere generale, une petite variation dans les coefficient de la fonction objective laisse lepoint optimal inchange. Toutefois, la valeur de la fonction objective n’est plus la meme. Dansce cas elle passe de z = 31 a z = 35.

Une variation importante dans les coefficients de la fonction objective entraine un depla-cement de la solution optimale vers un autre point angulaire. Les lignes bleues correspondentaux courbes d’iso-profit lorsque le gain unitaire relatif au produit A devient egal a 1. La penterelative a la fonction objective de vient assez plate, et la solution optimale se situe plutotsur le B.

Le deuxieme type de probleme qui peut etre representer sur le graphique concerne lesdisponibilites en matieres premieres : que devient la solution optimale si la matiere premiereest disponible en 12 unites seulement (et 15 unites) ? Le point optimal reste-t-il inchange ?

La Figure 2.4 reflete l’impact de la variation en disponibilite de la matiere premiere 1.

x1

x2

O

AB

C

DD’

C’

z = 0

Region realisable

Fig. 2.4 – Variation dans la disponibilite de la matiere premiere 1.

Remarquer que dans ce cas la region region realisable n’est plus la meme a cause dudeplacement de la droite (C, D). La solution optimale se trouve au niveau du point C ′. Ona note ce point de sorte a garder la relation avec le point C. En effet, d’une certaine manierele point optimale reste le meme mais se deplace. Les deux points C et C’ sont toujoursl’intersection de la premiere et de la deuxieme contrainte. Il s’agit donc structurellement dumeme point. La solution garde la meme structure mais change de valeur.

2.5 Probleme parametre

Certains problemes sont poses avec un parametre dont la valeur n’est pas connue a priori.On peut par exemple demander la resolution du programme suivant

(Pµ)

max z = µx1 + 5x2

3x1 + x2 ≤ 15x1 + 2x2 ≤ 10

x2 ≤ 4x1 , x2 ≥ 0

pour toutes les valeurs du parametre µ. Toujours, dans le cas d’un programme a deux va-riables, la question peut etre discutee sur la base du graphique. Le graphique sur la figure

2.1, peut etre utilise, car il nous donne deja une partie de la solution : pour µ = 4. Pourrepondre a la question on procede de la maniere suivante :

1. Remarque : les variations de la valeur de µ entrainent sur le graphique des variationsdans la pente de la fonction objective.

2. Pour quelles autres valeurs de µ le point C reste-t-il optimal ? La reponse serait ici unintervalle dans R.

3. Pour une valeur legerement a l’exterieur de cet interval, le point B ou le point D seraitoptimal. Tout dependra du sens de variation de la pente de la fonction objective. Ondetermine donc ce point et l’intervalle pour lequel ce point est optimal.

4. On poursuit cette procedure jusqu’a couvrir tout R.

Essayons d’appliquer cette procedure au probleme donne. La pente de la courbe d’iso-profit est δ = −µ/5. Considerons d’abord le cas ou µ > 0, et donc une pente negative. Lepoint B serait optimal si et seulement si −1/2 < −µ/5 < 0 ou encore 0 < µ < 5/2. Dememe, le point C serait optimal si et seulement si −3 < −µ/5 < −1/2 ce qui implique5/2 < µ < 15. Ensuite pour tout δ < −3 (ou encore µ > 15), il est clair que la solutionoptimale se situe au point D.

Que devient la solution si µ est negatif ? Dans ce cas, une simple remarque nous permetd’identifier la solution optimale : Une quantite positive dans la fonction objective penalisecelle-ci et afin d’atteindre un niveau maximum, il faut chercher a minimiser la productionde A et a maximiser celle de B (qui contribue positivement au profit). Sur le graphique, ilapparaıt que le point optimal est A. Nous pouvons ainsi donner le point optimal pour toutesles valeurs de µ.

µ Point optimal solution optimale(−∞, 0) A x1 = 0 et x2 = 4(0, 5/2) B x1 = 2 et x2 = 4

(5/2, 15) C x1 = 4 et x2 = 3(15,∞) D x1 = 5 et x2 = 0

Considerons ensuite le PL suivant :

(Pη)

max z = 4x1 + 5x2

3x1 + x2 ≤ 15x1 + 2x2 ≤ η

x2 ≤ 4x1 , x2 ≥ 0

avec η un reel donne. Comme pour le programme (Pµ), on peut considerer la solution duprogramme (P ) comme solution de depart. Sur le graphique une variation de la valeur duparametre η induira un deplacement de la droite qui passe par B et C. Une augmentationde η deplace la droite vers le haut et une diminution de η deplace la droite vers le bas. Uneconstruction preliminaire de la solution est illustre sur la figure 2.6.

x1

x2

O

AB

C

D

(0)

(-1/2)

(-3)

Region realisable

Fig. 2.5 – Probleme parametre.

x1

x2

O

AB

C

D

C’

C’’

(0)

(-1/2)

(-3)

Region realisable

Fig. 2.6 – Parametre dans une contrainte.

Chapitre 3

La methode du simplexe I

Dans ce chapitre on introduit l’algorithme du simplexe. Cette technique fut mise au pointpar Dantzig pendant les annees cinquantes du vingtieme siecle. Elle a ete a l’origine de lapopularite de la programmation lineaire.

3.1 Notation

Un PL est dit ecrit sous forme standard si

1. toutes les contraintes sont de type egalite ;

2. toutes les variables sont positives.

En effet tout PL peut etre ecrit sous forme standard, et inversement. Toute contrainte de typeegalite peut etre recrite de maniere equivalent comme une egalite en ajoutant une variabled’ecart. Par exemple,

x1 + 2x2 ≤ 6⇔ x1 + 2x2 + x3 = 6,

ou x3 une variable positive. Inversement toute contrainte egalite peut etre ecrite de maniereequivalente comme un ensemble de deux contraintes de type inegalite. Par exemple,

x1 − x2 = 3⇔

{

x1 − x2 ≤ 3

x1 − x2 ≥ 3.

Une variable negative peut etre remplace par sont oppose et en multipliant les coefficientscorrespondants par −1. Une variable sans signe peut etre remplacee par la difference de devariables positives. En effet, ∀x ∈ R ils existent x1, x2 ≥ 0 tel que x = x1−x2. La conclusionde tous ces details est que tout PL, independament de sa forme initiale, peut etre reecrit demaniere equivalent sous forme standard.

Un programme est dit ecrit sous forme canonique par rapport a une base realisable si lesconditions suivantes sont realisees :

1. toutes les variables du programme sont positives.

2. toutes les contraintes sont de type egalite.

15

3. toutes les elements a droite de chaque contraintes sont positifs.

4. toutes les colonnes de la matrice identite aparaissent (a une permutation pres) dansle systeme lineaire forme par l’ensemble des contraintes (la dimension de la matriceidentite est egale au nombre de contrainte).

5. les coefficients des variables faisant apparaıtre les colonnes de la matrice identite sontnuls dans la fonction objective.

Ces proprietes seront faciles a voir dans l’exemple ci-dessous. A un programme lineaireecrit sous forme canonique par rapport a une base donnee, on associe un tableau de simplexe.Il s’agit d’une representation qui facilite la resolution d’un programme lineaire.

Tout programme qui admet une solution realisable s’ecrit necessairement sous formecanonique par rapport a une base realisable donnee. Parfois, cette ecriture est facile a trouver,mais parfois il faut passer par une etape preliminaire afin de l’obtenir. Ce chapitre s’interesseaux problemes pour lesquels la forme canonique est facile a trouver. Le chapitre suivant traitele deuxieme cas.1

Pour le programme (P ), qu’on utilise depuis les chapitres precedents, peut s’ecrire de lamaniere suivante :

(Pc)

max z = 4x1 + 5x2

3x1 + x2 + x3 = 15x1 + 2x2 + x4 = 10

x2 + x5 = 4x1 , x2 , x3 , x4 , x5 ≥ 0

Remarquons que (P ) et (Pc) sont equivalents : il s’agit du meme programme lineaire.

3.2 Tableau de simplexe

Dans le programme (Pc), on peux distinguer trois blocs. D’abord la fonction objective surla premiere ligne. Ensuite, un systeme d’equations lineaires (de type Ax = b) correspondanta l’ensemble des contraintes du programme. Finalement, les contraintes de non-negativite desvariables. Remarquer ensuite que le variables sont indexees de 1 a 5 et qu’on a mis chacunesur une colonne. Ainsi, on peut garder uniquement le coeficient et la colonne sans mentionnela variable sur chaque ligne. On obtient ainsi le tableau de simplexe correspondant suivant :

4 5 0 0 0

T0 x1 x2 x3 x4 x5

0 x3 3 1 1 0 0 15

0 x4 1 2 0 1 0 10

0 x5 0 1 0 0 1 4

cj 0 0 0 0 0 0

zj − cj 4 5 0 0 0

1Il faut faire attention au fait que cette que cette terminologie n’est pas universelle.

T0 est une appelation qu’on a donne qu tableau (pour indiquer que c’est le tableau initial).En premiere colonne on a ajoute les variables x3, x4 et x5 ainsi que leur coefficients dans lafonction objective. Dans le bloc principal (le systeme Ax = b) apparait la matrice identited’ordre 3 (notons I3). La premiere colonne de I3 est situee sur la colonne de x3, les deuxiemeet troisieme colonnes de I3 se situent sur les colonnes de x4 et x5, respectivement. Commeon a precise ci-haut, les trois colonnes de la matrice I3 doivent apparaıtre dans tout tableaude simplexe, mais pas necessairement dans cet ordre.

On dit que x3, x4 et x5 sont les variables de base, et on note J = {3, 4, 5}. Les variablesx1 et x2 sont des variables hors base, et on note J = {1, 2}. Au tableau T0 correspond lasolution de base x3 = 15, x4 = 10 et x5 = 4. Dans une solution de base les variables horsbase sont nulles. Ici, x1 = x2 = 0.

Afin de poursuivre notre discussion, quelques elements de notation seront utiles. Ax = betant le systeme lineaire forme par les contraintes du programme. A etant une m×n matrice(m lignes et n colonnes). b etant un n−vecteur colonne. x un m−vecteur colonne. Dans leprogramme (P ), m designe le nombre de variables et n designe le nombre de contraintes.Notons Ai la ligne i de la matrice A, et Aj la colonne j de la matrice A. Aj

i fait reference al’element de la matrice A qui se trouve sur la ligne i et la colonne j. Dans la meme logique,zj fait reference au coefficient de la variable j dans la fonction objective.

Le calcul des elements de la ligne cj se font de la maniere suivante. On a cj =∑

zk(j)Aj ,ou k(j) designe le coefficient dans la fonction objective de la j−eme variable de base. Cesvaleurs sont inscrites dans le tableau de simplexe en premiere colonne afin de s’y refererfacilement. Ainsi,.

c1 = 0× 3 + 0× 1 + 0× 0 = 0...

...

c5 = 0× 0 + 0× 0 + 0× 1 = 0.

Dans le premier tableau il est clair que tous les cj sont positifs. L’element qui se trouve dansle coin en bas a droite du tableau est calcule de la meme maniere que les cj mais en utilisantle vecteur b au lieu de la colonne Aj. Cet element reflete la valeur de la fonction objectiverelative a la solution de base donnee par le tableau.

3.3 Critere d’optimalite

Les valeurs sur la ligne zj − cj ont la signification utile. Dans le tableau T0 on a x1 = 0et x2 = 0. La valeur “4” de z1 − c1 indique que si on introduit la variable x1 dans la base enaugmentant sa valeur, alors chaque unite de x1 augmentera la fonction objective par 4 unies.De meme, si on introduit x2 dans la base, alors chaque unite de x2 augmentera la fonctionobjective par 5 unites. Puisqu’il est possible d’augmenter les valeurs de la fonction objective,alors la solution donnee par T0 n’est pas optimale. On appelera tableau optimal, un tableaude simplexe pour lequel la solution correspondante est optimale. De maniere generale, on ale critere d’optimalite suivant.

Pour un probleme de maximisation, un tableau est optimal si tous les elements dela ligne zj−cj sont negatifs ou nuls. Tant qu’un element au moins est strictementpositif, le tableau n’est pas optimal.

Le tableau T0 discute ci-haut n’est pas optimal. En effet, la ligne zj − cj de ce tableaucontient des valeurs strictement positives. De maniere similaire, le critere d’optimalite pourun programme de minimisation est le suivant :

Pour un probleme de minimisation, un tableau est optimal si tous les elements dela ligne zj−cj sont positifs ou nuls. Tant qu’un element au moins est strictementnegatif, le tableau n’est pas optimal.

3.4 Pivotages et solution optimale

Le tableau T0 n’est pas optimal. On peut dire aussi que la base dans ce tableau n’estpas optimale. La recherche d’une solution optimale revient en fait a la recherche d’une baseoptimale. L’idee de l’algorithme du simplexe est de remplacer cette base par une autre quisoit meilleure jusqu’a l’obtention d’une solution (base) qu’on ne peut plus ameliorer. Lesoperations de pivotage permettent le passage d’une base a une autre.

Chaque operation de pivotage consiste a remplacer une variable de la base par une variablehors-base et a recrire le programme sous forme canonique par rapport a la nouvelle base. Enpratique, une operation de pivotage consiste a :

Choisir une variable entrante Celle-ci doit etre initialement hors base et ayant un co-efficient zj − cj strictement positif. Generalement, on choisit celle qui a le coefficientpositif le plus eleve.

Determiner la variable sortante Une fois la variable entrante est choisie on determinela variable sortante de la miniere suivante. Supposons que la variable xq est entrante.On calcul les rapports bi/A

qi pour les lignes i tel que Aq

i est strictement positif. Lavariable sortante serait celle pour laquelle ce rapport est le plus petit. Supposons quecette variable se trouve sur la ligne p. Le pivot est situe sur la ligne p et la colonne qde la matrice A

Pivotage L’operation de pivotage proprement dite, consiste a faire les deux changements :

1. Ap ← Ap/Aqp : diviser la ligne du pivot par la valeur du pivot.

2. pour tout i ∈ {1, . . . , m} et i 6= p, faire Ai ← Ai − (Aqi /A

qp)× Ap : pour toute les

lignes, sauf celle du pivot, effectuer l’operation li ← li − α lpivot, avec α choisit desorte que Ap

i s’annule.

Finir recalculer les lignes cj et zj − cj comme precedement, ainsi que la nouvelle valeur dela fonction objective.

En appliquant cette procedure au tableau T0, on trouve :

1. La variable qui a le cout marginal (positif) le plus eleve est x2. Ainsi, x2 est la variableentrante.

2. La variable sortante est x5.

3. Le pivot est donc l’element qui se trouve sur troisieme ligne et deuxieme colonne (dela matrice A), comme indique par le tableau T0.

4 5 0 0 0

T0 x1 x2 x3 x4 x5

0 x3 3 1 1 0 0 15 15/1

0 x4 1 2 0 1 0 10 10/2

0 x5 0 1∗ 0 0 1 4 4/1

cj 0 0 0 0 0 0

zj − cj 4 5 0 0 0

Le resultat de l’opertion de pivotage est donne dans le tableau T1. Ce dernier ne corres-pond pas encore a la solution optimale, mais donne une meilleure solution. En effet, le profitavec cette nouvelle solution est de 20 (um).

4 5 0 0 0

T1 x1 x2 x3 x4 x5

0 x3 3 0 1 0 -1 11

0 x4 1 0 0 1 -2 2

5 x2 0 1 0 0 1 4

cj 0 5 0 0 5 20

zj − cj 4 0 0 0 -5

Afin de trouver la solution optimale, il suffit de continuer a effectuer des pivotage jusqu’aobtenir un tableau avec des couts marginaux qui soient tous negatifs ou nuls. Dans ce PL onobtient les tableaux T2 et T3 suivants. Selon le critere d’optimalite ennoce ci-haut, le tableauT3 est optimal.

4 5 0 0 0

T2 x1 x2 x3 x4 x5

0 x3 0 0 1 -3 5 5

0 x1 1 0 0 1 -2 2

5 x2 0 1 0 0 1 4

cj 0 0 0 4 -3 28

zj − cj 0 0 0 -4 3

4 5 0 0 0

T3 x1 x2 x3 x4 x5

0 x4 0 0 1/5 -3/5 1 1

4 x1 1 0 2/5 -1/5 0 4

5 x2 0 1 -1/5 3/5 0 3

cj 4 5 3/5 11/5 0 31

zj − cj 0 0 -3/5 -11/5 0

3.5 Interpretation graphique du simplexe

Comme le montre la figure 3.1, chaque operation de pivotage correspond a un deplacementd’un sommet, dans la region realisable, a un sommet adjacent. Les deplacements se fonttoujours en ameliorant la fonction objective.

x1

x2

T0

T1

T2

T3

O

AB

C

D

z = 0

z = 31

Fig. 3.1 – Interpretation graphique du simplexe.

Chapitre 4

La methode du simplexe II

4.1 Introduction

Considerons le PL suivant :

(P )

max z = 4x1 + 5x2

3x1 + x2 ≤ 15x1 + 2x2 ≤ 10

x2 ≤ 4x1 + x2 ≥ 3x1 , x2 ≥ 0

En passant a la forme standard, on obtient :

(PS)

max z = 4x1 + 5x2

3x1 + x2 + x3 = 15x1 + 2x2 + x4 = 10

x2 + x5 = 4x1 + x2 − x6 = 3x1 , x2 , x3 , x4 , x5 , x6 ≥ 0

Deux methodes sont souvent utilisees pour resoudre ce probleme.1

4.2 La methode du grand M

L’diee ici est de remplacer le programme (P ) par un autre qui a la meme solution.Pratiquement il s’agit de faire deux choses :

– creer la base artificiellement en ajoutant les colonnes manquantes de la matrice identite ;cela revient a introduire des variables supplementaires, appelees “variables artificielles”;

1En fait, il de la meme methode mais mise en pratique de deux manieres differentes.

21

– modifier la fonction objective de sorte que les variables artificielles quittent la base aufur et a mesure des iterations.

Pour le methode du grand M on introduits les variables artificielles dans la fonction objectiveavec avec un coefficient negatif tres grand (note M). Ainsi, la maximisation de la fonctionobjective passe necessairement par l’annulation des variables de base. Pour l’exemple donneplus haut, le programme associe, note M , est le suivant.

(PM)

max z = 4x1 + 5x2 − Mx7

3x1 + x2 + x3 = 15x1 + 2x2 + x4 = 10

x2 + x5 = 4x1 + x2 − x6 + x7 = 3x1 , x2 , x3 , x4 , x5 , x6 , x7 ≥ 0

Le programme (PM) est ecrit sous forme canonique par rapport a la base realisableJ = {3, 4, 5, 7}. Remarquons que (PM) est n’est pas equivalent a (P ). Toutefois, la resolutionde (PM) conduit en meme temps a la resolution de (P ).

Le tableau de simplexe initial associe a (PM) est le suivant.

4 5 0 0 0 0 −M

T0 x1 x2 x3 x4 x5 x6 x7

0 x3 3 1 1 0 0 0 0 15

0 x4 1 2 0 1 0 0 0 10

0 x5 0 1 0 0 1 0 0 4

−M x7 1 1 0 0 0 -1 1 3

cj −M −M 0 0 0 0 M −3M

zj − cj 4 + M 5 + M 0 0 0 0 −M

La procedure de calcul classique peut-etre appliquee a ce tableau.

4.3 La methode en deux phases

Ne sera pas etudiee cette annee.

Chapitre 5

Analyse post-optimale

La resolution d’un PL par la methode du simplexe permet d’effectuer une analyse desensibilite assez facilement, lorsqu’il s’agit des coefficients de la fonction objective ou desparametre a droite dans les contraintes.

5.1 Coefficient dans la fonction objective (parametre

cj)

Considerons le probleme (P) de la page . . .et sa solution donnee a la page . . .Un exemplede questions que l’on peut se poser :

– Si le profit relatif a chaque unite de A devient 6 au lieu de 4 (um). La solution optimalereste-t-elle la meme ?

– pour quelles autres valeur du profit relatif au produit A la solution optimale reste-t-elleinchangee ?

Pour repondre a ce type de question, on a besoins du dernier tableau de simplexe seule-ment.

1. Dans ce tableau, on remplace le coefficient 4 par 4 + ∆.

2. On re-calcule les lignes cj et zj − cj .

3. On determine pour quelles valeurs de ∆, le critere d’optimalite reste valable.

On a le tableau suivant :

4 + ∆ 5 0 0 0

T∆3 x1 x2 x3 x4 x5

0 x4 0 0 1/5 -3/5 1 1

4 + ∆ x1 1 0 2/5 -1/5 0 4

5 x2 0 1 -1/5 3/5 0 3

cj 4 + ∆ 5 3/5 + 2/5∆ 11/5− 1/5∆ 0 31 + ∆

zj − cj 0 0 −3/5− 2/5∆ −11/5 + 1/5∆ 0

23

Le tableau T∆3 optimal si et seulement si :

{

−35− 2

5∆ ≤ 0

−115− 1

5∆ ≤ 0

=⇒5

2≤ 4 + ∆ ≤ 15

5.2 Disponibilite en matiere premiere (parametre bi)

Supposons que la matiere premiere I n’est pas disponible en 15 unites exactement, maisplutot en 15 + ∆ unites. Que devient la solutions ? Pour quelles valeurs de ∆ la solutionoptimale reste proche de la solution optimale ?

Pour repondre a ces questions on a besoins du premier est du dernier tableau de simplexe.Remarquons d’abord que le programme initial s’ecrit dans ce cas comme :

(Pc)

max z = 4x1 + 5x2

3x1 + x2 + x3 = 15 + ∆x1 + 2x2 + x4 = 10

x2 + x5 = 4x1 , x2 , x3 , x4 , x5 ≥ 0

On peut construire le tableau de simplexe correspondant a ce programme en associantun colonne pour ∆.

4 5 0 0 0

T0 x1 x2 x3 x4 x5 ∆

0 x3 3 1 1 0 0 15 1

0 x4 1 2 0 1 0 10 0

0 x5 0 1 0 0 1 4 0

cj 0 0 0 0 0 0

zj − cj 4 5 0 0 0

La colonne de ∆ est identique a la colonne relative a la variable x − 3. Comme lesoperations de pivotage seront identiques pour les deux colonnes, les deux dernieres resterontidentiques pour tous les tableaux. En particulier le tableau optimal serait de la forme suivante.

4 5 0 0 0

T3 x1 x2 x3 x4 x5 ∆

0 x4 0 0 1/5 -3/5 1 1 1/5

4 x1 1 0 2/5 -1/5 0 4 2/5

5 x2 0 1 -1/5 3/5 0 3 -1/5

cj 4 5 3/5 11/5 0 31−∆

zj − cj 0 0 -3/5 -11/5 0

Ce tableau serait optimal si et seulement si les variables de bases sont optimales :

x4 = 1 + 15∆ ≥ 0

x1 = 4 + 25∆ ≥ 0

x2 = 3− 15∆ ≥ 0

=⇒ −5 ≤ ∆ ≤ 15 =⇒ 10 ≤ 15 + ∆ ≤ 30

Chapitre 6

Probleme du transport

Le probleme du transport est un programme lineaire qui a une structure particuliere.Cette classe de PLs englobe les problemes qui s’ennoncent dans une forme approximative acelle-ci :Il ya m origines et n destinations. Dans chaque origine on dispose d’une certainequantite (de matiere premiere ou produit donne), et dans chaque destination on demandeune certaine quantite de ce produit. Le cout de transport est different pour chaque coupleorigine-destination. On cherche un plan de transport optimal dans le sens qu’il minimise lecout total de transport.

L’usage des tableaux de simplexe dans le cas des problemes de transport est bien entendupossible. Toutefois, cette alternative ne presente pas un reel interet pratique, car les problemesde transport aboutissent generalement a un grand nombre de variables et de contraintes.1

Heureusement, une representation intuitive et permettant un traıtement facile des problemesde transport existe : il s’agit du tableau de transport.

6.1 La representation d’un probleme de transport

La structure d’un tableau de transport est assez intuitive comme le montre l’exemplede la Figure 6.1. Dans ce probleme, on a trois origines et quatres destinations. Les offresdes origines sont inscrites sur la derniere colonne, et les quantites disponibles dans les dif-ferentes destinations sont inscrites sur la derniere lignes. Les chiffres inscrits en petite tailledans chaque case indiquent les couts de transport unitaires entre chaque origine et chaquedestination. Par exemple, chaque unite transportee de l’origine 2 vers la destination 3 induitun cout de transport de 4(um). Remarquons que dans ce tableau l’offre totale est egale ala demande totale. On dit que ce probleme est equilibre. Si le probleme n’est pas equilibre,on doit effectuer un certains changements avant de pouvoir proceder a la recherche de lasolution.

1Pour m origines et n destinations on a m × n variables (sans les variables d’ecarts qui sont au memenombre que les contraintes) et m + n contraintes.

26

7

10

6

9

8

5

11

4

3

12

2

1

500

300

200

300 300 300 100

Fig. 6.1 – Un tableau de transport.

6.2 Solution initiale

Une solution de base pour un probleme de transport avec m origines et n destinationsdoit contenir exactement m + n − 1 variables de bases. Dans l’exemple discute ci-haut ondoit donc avoir dans tous les tableaux correspondants sept variables de base. Il y a plusieursmanieres pour remplir un tableau de simplexe. Nous presentons les deux methodes les plusfrequement frequemments utilisees.

6.2.1 La methode du coin Nord-Ouest

Il s’agit d’une methode assez simple a mettre en œuvre. Les differentes etapes relatives acette procedure sont les suivantes :

1. commencer a la case (i = 1, j = 1) ;

2. effectuer le testsi Oi < Dj alors

qij = Oi

Dj ← Dj − Oi

j ← j + 1sinon

qij = Dj

Oi ← Oi −Dj

i← i + 1fin

3. reprendre a l’etape 2 tant que i < m ou j < n.

L’application au probleme discute plus haut aboutit au tableau suivant : Le cout total cor-respondant a cette solution est de 6700(um). L’avantage principal de la methode du coin

7

10

6

9

8

5

11

4

3

12

2

1

300 200

100 200

100 100

500

300

200

300 300 300 100

Fig. 6.2 – Solution initiale : methode du coin Nord-Ouest.

nord-ouest est principalment la facilite de mise en œuvre. L’inconvenient majeur de cettemethode est qu’elle ne tient pas compte de la structure de cout. Generalement, elle aboutita un cout total initial assez eleve.

6.2.2 La methode du cout minimum

L’idee consiste a exploiter les cases ayant des couts de transport faibles et leur attribuerles quantites maximales (dans la mesure du possible). On procede de la maniere suivante :

1. reperer la case du tableau ayant le cout le plus faible ;

2. affecter a cette case la quantite maximale possible ;

3. une colonne ou une ligne est saturee :

(a) si une colonne est saturee, l’eliminer du tableau, mettre a jour la quantite dans laligne correspondante et reprendre au point 1 avec le nouveau tableau ;

(b) si une ligne est saturee, l’eliminer du tableau, mettre a jour la quantite dans lacolonne correspondante et reprendre au point 1 avec le nouveau tableau ;

4. lorsque toutes les lignes et toute les colonnes sont saturees, alors le tableau doit contenirexactement m + n− 1 variables de base.2

L’application a l’exemple proposee plus haut nous donne le tableau represente dans la Fi-gure 6.3. Le cout total correspondant a cette solution initial est de 5500(um). En effet, demaniere generale, la methode du cout minimum aboutit a une meilleure solution initiale quela methode du coin nord-ouest.

2Dans certains cas, il se peut que cette condition ne soit pas satisfaite. Cette situation sera discutee dansle cours.

7

10

6

9

8

5

11

4

3

12

2

1

100

200

200

100 300 100 500

300

200

300 300 300 100

Fig. 6.3 – Solution initiale : methode du cout minimum.

6.3 Solution optimale

Afin de trouver le tableau optimal, on procede comme dans le simplexe classique. D’abord,il faut calculer les couts marginaux pour les variables de hors-base. Il s’agit des cij commeindique dans la fig. 6.4.

7

10

6

9

8

5

11

4

3

12

2

1 u1

u2

u3

v1 v2 v3 v4

c11

c23 c24

c32 c33 c34

100

200

200

100 300 100 500

300

200

300 300 300 100

Fig. 6.4 – Les couts marginaux (1).

Ce calcul se fait en trois etapes :

1. pour chaque variable de base ecrire l’equation cij = ui + vj ;

2. resoudre le systeme obtenu en fixant u1 = 0 ;

3. calculer les valeurs des couts marginaux a partir de cij = cij − ui − vj .

Pour notre exemple on obtient le tableau donne par la Figure 6.5. Ce tableau contientdes couts marginaux strictement negatifs, et donc il ne s’agit pas d’une solution optimale.Il faut effectuer un changement de base afin d’ameliorer la solution, et voir si elle devientoptimale ou non, . . .Ici, on peut prendre la variable x23 comme variable entrante.3 La valeurde x23 doit etre augmentee mais tout en respectant les contraintes d’offre et de demande,ainsi que la non-negativite des autres variables. Sur le tableau de la figure 6.5, le cycle indiqueles variations a effectuer pour sauvegarder une solution de base. Un signe “+” indique uneaugmentation de la quantite et un signe “-” indique une diminution de la quantite.4 Envaleur absolue, la variation est la meme pour toutes les cases sur le cycle. Dans notre cas :x23 augmente par 200 unites, x22 diminue par 200 unites, x12 augmente par 200 unites etenfin x13 diminue par 200 unites. On obtient ainsi le tableau donne par la figure 6.6, et pourlequel on refait le meme travail, afin d’obtenir la solution optimale donnee par le tableau 6.7.

7

10

6

9

8

5

11

4

3

12

2

1 0

3

0

7 5 3 1

-1

-2 +1

+4 +8 +11

100

200

200

100 300 100 500

300

200

300 300 300 100

+−

+ −

Fig. 6.5 – Le premier tableau de transport.

6.4 Cas particuliers

Offre superieure a la demande. Afin de retrouver un probleme de transport correcte-ment structure, on ajoute une demande fictive avec des cout unitaires nuls, et dont lademande correspond a l’excedent de l’offre. Apres cette transformation, un tableau detranport peut etre construit et la resolution se fait de maniere classique.

Offre inferieure a la demande. Dans ce cas le probleme n’admet pas de solution reali-sable, et donc pas de solution optimale.

3Notation : la variable xij fait reference a l’origine i et a la destination j.4Remarque : la structure du tableau de transport fait que le cycle est toujours determine de maniere

unique.

7

10

6

9

8

5

11

4

3

12

2

1 0

1

-2

9 5 3 1

-3

+2 0

+6 +10 +12

100

200

200

300 100 100 500

300

200

300 300 300 100

+−

+ −

Fig. 6.6 – Le deuxieme tableau de transport.

Degenerescence. La Degenerescence peut appraıtre, soit au niveau de la recherche de lasolution initiale, soit au cours des iterations pour la recherche de la solution optimale.

Solution initiale : A chaque fois qu’on ajoute une quantite, soit une ligne soit unecolonne est saturee. Il se peut toutefois que, simultanement, une ligne et unecolonne soient saturees. Dans ce cas on obtiendra moins que m + n− 1 variablesde base. Afin de completer la base, on ajoute une variable de base avec une quatitenulle.

Pivotage En faisant entrer une variable dans la base, une seule variable doit quitter labase. Dans certains cas, deux variables ayant la meme valeur se trouvent annulees.Dans ce case on doit garder l’une d’entre elles avec une valeur nulle dans la casecorrespondante.

Des exemples sur ces differents cas particuliers seront discutes dans les seances de cours.

7

10

6

9

8

5

11

4

3

12

2

1 0

1

1

6 5 3 1

+3 +2 0

+3 +7 +10

100

200

300

300 0 100 500

300

200

300 300 300 100

Fig. 6.7 – Le troisieme tableau (optimal).