Vous êtes sur la page 1sur 60

Universit Ibn Zohr

Facult des Sciences Juridiques conomiques et Sociales

Programmation Linaire
Mohamed HACHIMI
FILIRE SCIENCES CONOMIQUES ET GESTION TROISIME ANNEE

EG

Semestre 5

Table des matires

Formulation
1. Introduction 2. Formulation dun problme de maximisation 3. Formulation dun problme de minimisation 4. Formulation dun problme linaire

4
4 4 8 10

Mthode graphique
1. Quelques rappels de gomtrie 2. Problme de maximisation 3. Problme de minimisation

11
11 13 18

Algorithme du simplexe : Mthode algbrique


1. Principe de lalgorithme 2. Caractrisation algbrique des sommets 3. Illustration de lalgorithme 4. Algorithme du simplexe 5. Application

22
22 23 25 31 32

Algorithme du simplexe : Mthode des tableaux


1. Recherche dun sommet de dpart 2. Illustration de lalgorithme 3. Algorithme du simplexe en tableaux 4. Application

35
35 35 42 45

Table des matires

Dualit en programmation linaire


1. La construction du modle dual 2. Proprits de la dualit

48
48 53

1
1.

Formulation

Introduction

La programmation linaire est lune des plus importantes techniques doptimisation utilises en recherche oprationnelle. Ceci est d la facilit de la modlisation, lefcacit des algorithmes dvelopps et lexistence sur le march de nombreux logiciels. La gnralisation de micro-informatique a mis la programmation linaire la porte de tous. Le objectif de programmation linaire est de dterminer laffectation optimale de ressources rares entre des activits ou produits concurrents. Les situations conomiques demandent souvent quon optimise une fonction sous plusieurs contraintes prenant la forme dingalits.

2.
2.1.

Formulation dun problme de maximisation


Enonce du problme

Une entreprise fabrique deux produits A et B, en utilisant une machine m et deux matires premires p et q . On dispose chaque jour de 8 heures de m, de 10 kg de p et de 36 kg de q . On suppose que : la production dune unit de A ncessite 2 kg de p et 9 kg de q , et utilise la machine m durant 1 heure ; la production dune unit de B ncessite 2 kg de p et 4 kg de q , et utilise la machine m durant 2 heure ; les prots raliss sont de 50 dh par unit de A et 60 dh par unit de B. Lobjectif que poursuit lentreprise est de maximiser le prot quelle pourra tirer, par jour, de ces 2 produits en utilisant au mieux ses ressources. Le tableau suivant rsume les donnes affrentes ce problme de production :

Formulation A 1h 2 kg 9 kg 50 dh B 2h 2 kg 4 kg 60 dh Disponible 8h 10 kg 36 kg

m p q Prot unitaire 2.2.

La construction dun modle linaire

Quelles sont les informations dont doit disposer le directeur de lentreprise pour considrer que son problme est rsolu ? Il suft de connatre la quantit du produit A et la quantit du produit B fabriquer quotidiennement, nest-ce pas ? Agissons comme si ces quantits nous taient connues et dnotons-les par : x1 = la quantit du produit A produire x2 = la quantit du produit B produire Les variables x1 et x2 sont dites variables de dcision. Quel prot lentreprise retirera-t-elle de la vente de ces deux produits ? Il sagit dadditionner les bnces tirer de chacun des 2 produits : pour le produit A, elle retire 50 dh par unit et en fabrique x1 units ; cette production lui rapporte donc un prot de (50 x1 ) dh ; de mme, la quantit x2 du produit B lui permet de faire un prot de (60 x2 ) dh. Le prot total tirer des deux produits slve donc : (50 x1 + 60 x2 ) dh Nous dnoterons ce prot total par z et laisserons implicite lunit montaire : z = 50 x1 + 60 x2 Nous cherchons videmment rendre z aussi grand que possible en donnant x1 et x2 des valeurs appropries. La grandeur z est une fonction qui, chaque plan de production (une quantit de A, une quantit de B), associe le nombre de dirhams que lentreprise retirerait comme prot si elle adoptait ce plan. Cette fonction z , qui traduit lobjectif de notre problme, sappelle fonction objectif ou fonction conomique. Et, comme nous cherchons rendre z aussi grand que possible, nous crivons : Maximiser z o z = 50 x1 + 60 x2

Formulation

ce que gnralement lon convient dabrger comme suit : Max z = 50 x1 + 60 x2 Sil ne sagissait pour lentreprise que de maximizer z , il sufrait de laisser augmenter x1 ou x2 pour que z prenne une valeur aussi grande quelle le souhaite. Mais sattendre de tels prots sapparente plus au rve qu la situation de notre entreprise. Il y a bien sr des empchements naturels, appels contraintes, qui freinent le rve dun prot inni. Prenons en considration tour tour chacune des contraintes. Contrainte relative la machine m Le temps dutilisation de la machine m pour fabriquer les produits A et B ne peut excder les 8 heures disponibles : Temps dutilisation de m 8.

Or, ce temps utilis est la somme des heures consacres chacun des types de produits. Pour le produit A, le temps ncessaire la fabrication de la quantit x1 se calcule ainsi : 1 heure/(unit de A) x1 (unit de A) = x1 heures pour le produit B, on procde de faon analogue : 2 heure/(unit de B) x2 (unit de B) = 2x2 heures La contrainte relative la machine m scrit donc : x1 + 2 x2 8 (m)

On emploie le signe , et non = , car il nest pas obligatoire que toutes les heures disponibles soient utilises pour la fabrication des produits A et B, bien quil ne soit pas interdit quil en soit ainsi. Contraintes relatives aux matires premires En sinspirant de la contrainte relative la machine, ces contraintes scrivent tout naturellement : 2x1 + 2x2 9x1 + 4x2 10 36 (p) (q )

Contraintes de positivit Elles assurent que la solution ne comporte pas des valeurs ngatives (inacceptables). x1 , x 2 0,

Formulation

Le modle se rsume ainsi : Max z = 50x1 + 60x2 x1 + 2 x2 8 (P) 2x1 + 2x2 10, 9x1 + 4x2 36 x1 , x 2 0 2.3. Variables dcart

soit : x1 + x2

An de ramener les contraintes des galits (qui sont plus faciles traiter que les ingalits), on introduit des variables dcart. Ces variables seront toujours, comme les variables de dcision x1 et x2 , positives ou nulles. Aprs lajout des variables dcart x3 , x4 et x5 relatives aux contraintes (m), (p) et (q ), nous obtenons la formulation : Max z = 50x1 + 60x2 x1 + 2 x2 + x3 = 8 (P) 2x1 + 2x2 + x4 = 10 9x1 + 4x2 + x5 = 36 x1 , x 2 , x 3 , x 4 , x 5 0 La variable dcart dune contrainte reprsente la quantit disponible non utilise. Cest lcart entre la disponibilit et le besoin. 2.4. Gnralisation : Problme de production

Soient m machines Mi (i = 1, . . . , m) qui fabriquent en srie n types de produits Pj (j = 1, . . . , n). La machine Mi a une capacit maximum de bi units de temps. La fabrication dune units du produit Pj ncessite lutilisation de la machine Mi durant aij units de temps. Si cj reprsente le gain relatif la production dune unit du produit Pj , la rsolution du problme Max z = c1 x1 + c2 x2 + + cn xn a11 x1 + a12 x2 + + a1n xn b1 (M1 ) a21 x1 + a22 x2 + + a2n xn b2 (M2 ) . . . . . . . . . am1 x1 + am2 x2 + + amn xn bm (Mm ) x1 , x2 , . . . , xn 0

Formulation

fournira les valeurs optimales des quantits xj produire de chacun des produits ; la fonction conomiques reprsente le gain total ; le premier membre de chaque contrainte (Mi ) reprsente le temps total dutilisation de la machine Mi . Les valeurs des variables dcart associes chacune de ces contraintes correspondent au temps disponible non utilis de chaque machine.

3.
3.1.

Formulation dun problme de minimisation


Enonc du problme

Un agriculteur souhaite que son troupeau consomme la plus faible ration quotidienne de trois lments nutritifs A, B et C. Les exigences quotidiennes sont de 16 pour A, 12 pour B et 18 pour C. Lagriculteur achte deux types daliments P et Q : une unit de P comprend 2 units de A, 1 unit de B et 1 unit de C ; et elle cote 20 dh ; une unit de Q comprend 1 unit de A, 1 unit de B et 3 units de C ; et elle cote 40 dh. Lagriculteur cherche la combinaison la moins coteuse des quantits de P et Q qui respectera lexigence de consommation minimale dlments nutritifs. Le tableau suivant rsume les donnes affrentes ce problme : P 2 1 1 20 dh Q 1 1 3 40 dh Besoins minimaux 16 12 18

A B C Cot unitaire 3.2.

La construction dun modle linaire

Appelons x1 et x2 les quantits des aliments P et Q quil faut acheter. Lobjectif de lagriculteur est videmment de minimiser le cot total des aliments quil faut acheter. Mathmatiquement cela scrit : Minimiser z = 20x1 + 40x2 ce que gnralement lon convient dabrger comme suit : Min z = 20x1 + 40x2

Formulation

Chacun des 3 lments nutritifs considrer donne lieu une contrainte, qui vise exiger que les aliments, dans leur ensemble, satisfassent les besoins quotidiens du troupeau. On obtient : 2x1 + x2 x1 + x2 x1 + 3 x2 16 12 18 (A) (B) (C)

Les contraintes ci-dessus emploie le signe parce quil faut respecter les exigences de consommation minimales, mais que celles-ci peuvent tre dpasses. Enn, il faut pas oublier quon peut pas acheter des quantits ngatives de P ou Q : x1 , x 2 Le modle se rsume ainsi : Min z = 20x1 + 40x2 2x1 + x2 16 3.3. x1 + x2 x1 + 3 x2 x1 , x 2 12 18 0 0

Gnralisation : Problme de mlange

Il sagit de rechercher un rgime alimentaire qui, tout en tant le meilleur march possible, garantisse un apport sufsant en lments nutritifs. Soient n aliments de prix cj (j = 1, . . . , n) par unit ; m lments nutritifs ; aij la quantit du ime lment nutritif contenue dans une unit du j me aliment ; bi (i = 1, . . . , m) les besoins respectifs en les m lments nutritifs. Si les variables xj (j = 1, . . . , n) reprsentent les quantits des divers aliments du rgime, on obtient le problme Min z = c1 x1 + c2 x2 + + cn xn a11 x1 + a12 x2 + + a1n xn b1 a21 x1 + a22 x2 + + a2n xn b2 . . . . . . . . . am1 x1 + am2 x2 + + amn xn bm x1 , x2 , . . . , xn 0

Formulation

10

Ce problme nest rien dautre quun problme de mlange. Il se prsente dans de nombreuses situations, par exemple, le cas de la composition dun rgime alimentaire pour animaux.

4.

Formulation dun problme linaire

Mthode graphique

Dans ce chapitre nous prsentons une technique de rsolution de programme linaire deux variables x1 et x2 . Dans ce cas on peut utiliser une reprsentation graphique du programme linaire. La reprsentation graphique sera utile pour acqurir une comprhension intuitive des principes de base de la programmation linaire. La formulation canonique dun programme linaire deux variables peut scrire sous lune des deux formes suivantes : Min z = a0 x1 + b0 x2 Max z = a0 x1 + b0 x2 a1 x1 + b1 x2 c1 a1 x1 + b1 x2 c1 (D) (P) a2 x1 + b2 x2 c2 a2 x1 + b2 x2 c2 ... ... ... ... ... ... x1 , x 2 0 x1 , x 2 0

1.
1.1.

Quelques rappels de gomtrie


La construction de la rgion ralisable

Chacune des quations ai x1 + bi x2 = ci dnit une droite qui partage le plan en deux demi-plans P1 et P2 dquation : (P1 ) a i x1 + b i x2 ci ,
y
p mi De lan

(P2 ) ai x1 + bi x2

ci

o
p mi e D

lan

Chaque contrainte dtermine lun des deux demi-plans (P1 ) ou (P2 ) que lon trouvera en vriant si un point particulier (lorigine (0, 0) par exemple) est contenu

Mthode graphique

12

dedans ou non. Lintersection de tous les demi-plans correspondant aux contraintes constitue lensemble des points ralisables : ce sont les solutions communes toutes les contraintes. Cet ensemble correspond une rgion D du plan et est souvent appele rgion ralisable. Cette rgion est parfois vide ou non born.
y y

D D

Rgion born

Rgion non born

1.2.

La recherche dune solution optimale

Nous venons de construire la rgion ralisable dun programme linaire deux variable. Cet ensemble contient un nombre inni de solutions ralisables. Il reste reprer, parmi ces solutions ralisables celle(s) qui donne(nt) z la meilleur valeur. En xant z une valeur p choisie arbitrairement, on obtient la droite : (Dp ) a0 x1 + b0 x2 = p Cette droite est appel droite diso-valeur de fonction z . Elle reprsente les points du plan qui donnent z la valeur p. On sintresse la famille des droites (Dp ) (p paramtre). Ce sont toutes des droites a parallles de pente : , que lon peut crire : b x2 = Ici yp = p a0 x1 + b0 b0 (si b0 = 0).

p est lordonne lorigine de la droite (Dp ). Ainsi, on a : b0 Si b0 > 0 alors p1 < p2 yp1 < yp2 Si b0 < 0 alors p1 < p2 yp1 > yp2

Si b0 > 0, maximiser z revient maximizer p et donc yp . Donc le maximum de z est obtenu pour la droite ayant au moins un point commun avec la rgion ralisable et ayant une ordonne lorigine la plus leve possible.

Mthode graphique
y sens des z croissants y sens des z croissants D B D D

13

A C o x o x

Cas b0 > 0 et a0 > 0

Cas b0 > 0 et a0 < 0

Si b0 < 0, maximiser z revient maximizer p et donc minimiser yp . Donc, le maximum de z est obtenu pour la droite ayant au moins un point commun avec la rgion ralisable et ayant une ordonne lorigine la plus basse possible.
y sens des z croissants y sens des z croissants D B D D

A C o x o x

Cas b0 < 0 et a0 > 0

Cas b0 < 0 et a0 < 0

Tous les points sur une mme droite assurent la mme valeur pour z . Quand on passe dune droite une autre, les valeur de z varient : ils augmentent si on se dplace dans le sens du vecteur normal n (a0 , b0 ) au droites iso-valeurs : do la signication de la che indiquant le sens des z croissants .

2.
2.1.

Problme de maximisation
Enonc du problme

Une entreprise de fabrication de chassis envisage la production de deux nouveaux modles au moyen des capacits de ses trois ateliers. Il sagit respectivement dun chassis en aluminium et dun chassis en bois. Le premier produit ncessite le passage dans le premier atelier pour fabriquer le cadre en aluminium et dans le troisime atelier o le verre est mont sur le chassis. Tandis que le second produit

Mthode graphique

14

ncessite le passage dans le deuxime atelier pour fabriquer le cadre en bois et dans le troisime atelier o le verre est mont sur le chassis. Les prots unitaires, les temps de fabrication de chacun des produits dans chacun des ateliers ainsi que les capacits hebdomadaires de ces ateliers sont donns au tableau suivant : Produit 1 (heures/produit) 1 0 3 300 dh Produit 2 (heures/produit) 0 2 2 500 dh Capacit disponible (heures/semaine) 4 12 18

Atelier 1 Atelier 2 Atelier 3 Prot

La question qui se pose est la suivante : "Combien faut-il produire de chassis de chaque type par semaine an dobtenir un prot maximal ?" 2.2. Le modle linaire

Quelles sont les quantits de chassis que lentreprise devrait produire par semaine, si elle veut maximiser son prot ? Les variables de dcision seront : x1 = nombre de chassis de type 1 produire par semaine x2 = nombre de chassis de type 2 produire par semaine Le problme de planication de la production de chassis se traduit par le modle linaire suivant : Max z = 300x1 + 500x2 x1 4 (atelier 1) (A1) 2x2 12 (atelier 2) (A2) (P) 3x1 + 2x2 18 (atelier 3) (A3) x1 0 x2 0 A chaque couple de valeurs des variables de dcision x1 et x2 on associe un point (x1 , x2 ) du plan R2 : le point (x1 , x2 ) sinterprte comme la proposition dun plan de production indiquant le nombre de chassis fabriquer par semaine. Gnralement, on parle indiffremment du point (x1 , x2 ) ou du plan de production (x1 , x2 ) ou encore de la solution (x1 , x2 ). 2.3. Construction de la rgion ralisable

Les contraintes x1 0 et x2 0 signient que tous les points (x1 , x2 ) reprsentant des solutions acceptables doivent tre dans le premier quadrant, soit droite de

Mthode graphique

15

laxe Ox2 et au-dessus de laxe Ox1 . Notons que toutes les contraintes du modle, y inclus les contraintes de nonngativit, peuvent scrire sous la forme suivante : ax1 + bx2 c

Pour prciser la procdure qui mne la reprsentation graphique de la rgion ralisable, considrons tout dabord la contrainte relative latelier 1. La droite associe cette contrainte est la droite dquation : x1 = 4 (1)

La reprsentation graphique de lquation (1) sobtient en traant la droite verticale qui passe par le point (4, 0). La contrainte (A1) est satisfaite pour les points du plan du mme cte de la droite (1) que lorigine du repre.
x2 8 Droite D1 6 4 2 x1 6 4 2 x1 x2 8 Droite D1

droite associe la 1re contrainte

prise en compte de la 1re contrainte

Puisque toutes les contraintes du modle linaire sont de la mme forme, il suft de les prendre en considration tour tour, en procdant, pour chaque contrainte, comme suit : choisir 2 points de la droite associe. An de faciliter les calculs, on peut choisir les deux points ayant chacun une coordonne nulle. Puis tracer cette droite ; dterminer de quel ct de la droite associe la contrainte est satisfaite. Pour reprer rapidement le bon cte, il suft de regarder si le point (0, 0) est du bon cte ; tracer une che pointant vers ce ct. Illustrons nouveau cette procdure laide de la contrainte (A2). La droite associe cette contrainte est la droite dquation : x2 = 6 (2)

Mthode graphique

16

les points (0, 6) et (8, 6) appartiennent la droite (2) associe (A2) ; le point (0, 0) vrie cette dernire et les points ralisables selon la seule contrainte (A2) se trouvent sous la droite (2) ; la che pointant vers le bon ct est place. Le rsultat graphique de la prise en considration des contraintes (A1) et (A2) est illustr sur la gure suivante :
x2 8 6 4 2 0 2 4 6 8 x1
(1)
Points ou ` (A1) est respect ee mais (A2) ne lest pas

x2 8 6 4 2 0 2

(1)

(2)

(2)

x1

effet de la 2me contrainte

prise en compte des contraintes (A1) et (A2)

La prise en considration graphique de la contrainte (A3) se traduit par le trac de la droite dquation : 3x1 + 2x2 = 18 (3) et par lexclusion des points situs au-dessus de cette droite.
x2 8 6 4 2 0 2 4
(3) (2) (1)

x2 8 6 4 2 8 x1 0 2

(1)

(2)

(3)

x1

effet de la 3me contrainte

prise en compte de toutes les contraintes

Lensemble des points qui nont pas t limins aprs la prise en considration de toutes les contraintes constitue la rgion ralisable. En conomie, cet ensemble est aussi appel lensemble de production.

2 2.4.

Mthode graphique Recherche dune solution optimale

17

La rgion ralisable que nous venons de construire ne dtermine pas une solution, mais tout un domaine contenant un nombre inni de points. Il va falloir reprer un plan de production optimal, cest--dire un point (x 1 , x2 ) vriant toutes les contraintes et permettant z de prendre sa plus grande valeur sur la rgion ralisable. Pour cela, on va considrer des valeurs successives de la fonction conomique : z = p. Ce qui correspond graphiquement des droites parallles 300x1 + 500x2 = p. (4)

Les points dune de ces droites sont donc le lieu de tous les points donnant la mme valeur du prot (do le nom de droites disoprots). Tracer une premire droite disoprot permet dobtenir une illustration de la pente de z . En tracer une deuxime permet de dterminer la direction selon laquelle la valeur de z augmente. Ainsi, en augmentant petit petit la valeur de p dans lquation (4), on obtient des droites parallles, chacune plus loin de lorigine que les prcdentes.
x2 8 6 4 2 0
z= z= 200 0 100 0
(3) (2) (1)

x1

droites disoprots z = 0, z = 1000 et z = 2000

Comme on cherche ici maximiser la fonction conomique z , on dtermine une solution optimale en cherchant la droite disoprot la plus leve qui comporte au moins un point de la rgion ralisable.

Mthode graphique
x2 8 6 4 2 0
z= z= 200 0 100 0
(3) (2) (1)

18
x2 8 6 4 2 8 x1 0
z= z=
(x 1 , x2 ) = (2, 6)

200 0 100 0

x1

droite disoprot la plus leve

reprage de la solution graphique

Ici, il ny a quune seule solution optimale quest le point


(x 1 , x2 ) = (2, 6)

Ce point se trouve lintersection des droites (2) et (3). On utilise donc plein les capacits disponibles des ateliers 1 et 2. Par contre, pour cette solution optimale, les capacits disponibles de latelier 1 seront plus que sufsantes. Au point optimal, la fonction conomique prend la valeur 3600 : z = (300 2) + (500 6) = 3600

3.
3.1.

Problme de minimisation
Enonc du problme

Une entreprise a besoin de trois matires premires A, B et C pour fabriquer un produit. Il lui faut au moins 14 kg de A, 12 kg de B et 18 kg de C . Il ne peut acheter que les mlanges X et Y . Le produit X contient 2 kg de A, 1 kg de B et 1 kg de C . Le produit Y contient 1 kg de A, 1 kg de B et 3 kg de C . Le produit X cote 20 dh et Y cote 40 dh. Par ailleurs il ne peut pas acheter plus de 22 kg de X et ?? kg de Y La question qui se pose est la suivante : "Quelle quantit de X et Y doit-on acheter pour rpondre aux besoins de lentreprise au moindre cot ?"

2 3.2.

Mthode graphique Formulation et rsolution graphique acheter.

19

Appelons x1 et x2 les quantits de X et Y programme linaire suivant : Min z = 20x1 + 40x2 2x1 + x2 x1 + x2 (P) x1 + 3 x2 x1 x2 x1 , x 2

On obtient aisment le

(O) 14 12 18 14 16 0 (A) (B) (C) (L) (K)

Les contraintes (A), (B) et (C) scrivent parce quil faut respecter les besoins minimaux en matires premires, mais ceux-ci peuvent tre dpasses. Ce programme diffre du programme prcdent sous 2 aspects : la fonction conomique sest minimiser ; certaines contraintes sont de signe et lorigine O = (0, 0) du plan nest pas une solution ralisable. La technique de rsolution graphique reste la mme, mais, puisquil sagit de la recherche dun minimum, la droite iso-valeur le plus proche de lorigine et qui reste en contact avec la rgion ralisable, fournit le minimum. En premier temps, nous construisons la rgion ralisable. La zone hachure dans le graphe ci-dessous est lensemble des points satisfaisant toutes les contraintes.
x2 16 14 12 10 8 6 4 2 0 2 4 6 8 10 12 14 16 x1
(B) (C) (A) (K) (L)

x2 16 14 12 10 8 6 4 2 0 2 4 6 8 10 12 14 16 x1 D

reprage des bons cts

rgion ralisable

Le polydre ABCDEF, qui constitue la rgion ralisable, est reproduit a la gure suivante, accompagn des droites isocots z = 0, z = 100 et z = 440. Comme lobjectif est de minimiser z , loptimum satteint en cherchant la droite disocot la plus basse possible qui touche la rgion ralisable D .

2
x2
E D

Mthode graphique
x2
F E D F

20

12 10
C

12 D 10
C

8 6 4 2 0 2 4 6
B A

8 6 4 2 x1 0 2 4 6
B A

8 10 12 14 16

8 10 12 14 16

x1

isocots z = 0, z = 200 et z = 440.

le sommet B correspond la solution optimale

Le graphique indique le sommet B=(9,3) comme le point o sobtient la solution optimale recherche. Le cot au point B est infrieur celui qui correspond tous les autres sommets de la rgion ralisable. On conrme ce rsultat en valuant la fonction conomique en chacun des sommets voisins B : en A = (14, 1) en B = (9, 3) en C = (2, 10) z = (20 14) + (40 1) = 320 z = (20 9) + (40 3) = 300 z = (20 2) + (40 10) = 440

Supposons que le cot du produit X augmente de 20 dh. La fonction conomique devient : Min z = 40x1 + 40x2 Cherchons la valeur minimale de z graphiquement. On obtient
x2
E D F

x2
E D F

12 10
C

12 D 10
C

8 6 4 2 0 2 4 6
B A

8 6 4 2 x1 0 2 4 6
B A

8 10 12 14 16

8 10 12 14 16

x1

isocots parallles une contrainte

solutions optimales multiples

Mthode graphique

21

Comme la droite disocot la plus basse possible est tangente la contrainte (B), la valeur minimale serait attente aux sommets B(9, 3) et C(2, 10). De plus, tout point du segment [B, C] minimisera la fonction conomique sous les contraintes poses. Cette multiplicit des solutions optimales provient du fait que les droites disocots sont parallles la droite associe la contrainte (B).

Algorithme du simplexe
Mthode algbrique

Nous avons rsolu des cas de programmes linaires simples : deux variables et trois ou cinq contraintes. Au fur et mesure que le nombre des contraintes saccrot, la mthode graphique savre de plus en plus difcile mettre en uvre. En prsence de trois variables, nous devons faire appel une reprsentation graphique dans lespace, exercice trs dlicat . . . Or, dans la pratique, les programmes linaires comportent plusieurs dizaines de variables et de contraintes. Ainsi, le recours une mthode gnrale devient indispensable. Lalgorithme du simplexe est la plus utilise des mthodes de rsolution des programmes linaires. Il a t mis au point en 1948 par B. Dantzig. Depuis, cet algorithme a fait lobjet de certaines darticles scientiques et a servi la rsolution de nombreux modles linaires

1.

Principe de lalgorithme

Lorsquon considre un programme linaire ayant plus de 2 variables, la rsolution graphique devient difcile, mais les proprits restent les mmes. Si la fonction objectif peut avoir une valeur optimale dans la rgion ralisable, celle-ci se trouve en un des sommets de la rgion ralisable. Pour atteindre la valeur optimale, seuls les sommets doivent donc tre examins. On pourrait donc en dduire quil suft de calculer la valeur de la fonction objectif chaque sommet et de choisir nalement la plus grande de ces valeurs ; mais cette approche est impraticable pour les grands programmes : un programme de 100 variables et 10 contraintes, qui est un programme de taille moyenne, sinon faible, aurait dj plus de 1 730 milliards de sommets! Une procdure "intelligente" est donc ncessaire : lalgorithme du simplexe utilise une procdure itrative qui permet de trouver la valeur optimale ou, dfaut, met en vidence que la rgion ralisable est vide. Le principe de lalgorithme du simplexe est le suivant :

Algorithme du simplexe : Mthode algbrique

23

Phase I : procdure dinitialisation Dterminer un premier sommet de la rgion ralisable D . Si cette procdure choue, cela signie que la rgion ralisable D est vide ; Phase II : procdure itrative Passer dun sommet de D un autre sommet voisin de D , de faon amliorer chaque fois la valeur de la fonction objectif. Ce nouveau sommet sera voisin au prcdent en ce sens quils seront les deux extrmits dune arte de D ; Test darrt : procdure darrt Deux tests darrt permettent de savoir si lon doit arrter le calcul, parce quon a atteint une solution optimale ou parce quil nexiste pas de de solution optimale nie, ou si lon doit passer vers un nouveau sommet. Soit le programme linaire de maximisation sous la forme standard Max z = cx Ax = b x 0 avec A de type (m, n) et de rang m, x de type (1, n) et b de type (m, 1). Nous dcrirons le droulement de la mthode du simplexe en lappliquant au modle de fabrication des chassis (FC) introduit au chapitre 2. Rappelons quaprs lajout dune variable dcart dans chaque contrainte relles, le programme (FC) se rcrit sous la forme Max z = 300x1 + 500x2 x1 + x3 = 4 (FC) 2x2 + x4 = 12 3 x1 + 2 x2 + x5 = 18 x1 , x2 , x 2 , x 4 , x 5 0

2.

Caractrisation algbrique des sommets

Les sommets ont t dnis gomtriquement. Il faut transcrire cette dnition en termes algbriques pour dcrire notre procdure. Pour effectuer cette description, il faut que le programme linaire soit sous la forme standard. Soit B une sous matrice de A qui est carre inversible dordre m. Nous dirons que B est une base. Soit B une base. Alors en permutant les colonnes de A, on peut toujours mettre A sous la forme : A= B H

Algorithme du simplexe : Mthode algbrique

24

o H est la sous-matrice forme par les colonnes de A qui ne sont pas dans la base. De mme on peut partitionner x en (xB xH )t et c en (cB cH )t , on peut crire Max z = cB xB + cH xH BxB + HxH = b x 0 ()

Les m composantes de xB sont appeles variables de base. Les n m composantes de xH sont appeles variables hors base. La solution du systme Ax = b obtenue en posant xH est appele la solution de base associe la base B. Cette solution de base est donc xB = B1 b xH = 0 Lorsque les variables de base sont positifs (xB 0), la solution de base est ralisable et appartient D . Par extension, la base B sera dite base ralisable. Une solution de base est dite dgnre si au moins une variable de base est nulle. Proprit fondamentale Le programme linaire tant mis sous forme standard, chaque sommet de la rgion ralisable correspond une et une seule solution de base ralisable et inversement. On peut vrier cette proprit sur lexemple de fabrication des chassis (FC) dont la reprsentation graphique est donne la gure suivante. A la gure, les sommets (0, 0), (0, 6), (2, 6), (4, 3), (4, 0) correspondent des solutions de base ralisables tandis que les points (0, 9), (4, 6) et (6, 0) correspondent des solutions de base non ralisables ; comme le montre le tableau suivant
x2 8
(0, 6) (2, 6) (4, 6) (2) (4, 3) (1) (0, 9)

4 2
(0, 0) (3)

(4, 0) (6, 0)

x1

var. de base x3 , x 4 , x 5 x2 , x 3 , x 5 x2 , x 3 , x 4 x1 , x 2 , x 3 x1 , x 2 , x 5 x1 , x 2 , x 4 x1 , x 4 , x 5 x1 , x 3 , x 4

(x1 , x2 ) (0, 0) (0, 6) (0, 9) (2, 6) (4, 6) (4, 3) (4, 0) (6, 0)

sol. de base (4, 12, 18) (6, 4, 6) (9, 4, 6) (2, 6, 2) (4, 6, 6) (4, 3, 6) (4, 6, 6) (6, 2, 12)

Correspondance entre solution de base ralisable et sommet

Algorithme du simplexe : Mthode algbrique

25

On appelle solutions de base adjacentes deux solutions de base dont les variables de base sont les mmes sauf une qui est de base dans la premire base et hors base dans la seconde. Dans lexemple (FC), les deux solutions de base suivantes sont adjacentes : (x1 , x2 , x3 , x4 , x5 ) = (0, 0, 4, 12, 18), (x1 , x2 , x3 , x4 , x5 ) = (0, 6, 4, 0, 6)

car elles ne diffrent que par une seule variable hors base. Par contre les solutions suivantes : (x1 , x2 , x3 , x4 , x5 ) = (0, 0, 4, 12, 18), (x1 , x2 , x3 , x4 , x5 ) = (2, 6, 2, 0, 0)

ne sont pas adjacentes puisquelles diffrent pas plus dune variable hors base.

3.

Illustration de lalgorithme

Nous allons maintenant voir commet effectuer les procdures de lalgorithme du simplexe en utilisant uniquement lalgbre. 3.1. Initialisation de lalgorithme

La question qui se pose est : "Commet choisir le point de dpart ?" Si les contraintes sont mis sous forme dingalits Ax b avec b 0, il suft de prendre lorigine comme point de dpart. Dans lexemple (FC), cela donne : (x1 , x2 ) = (0, 0) En termes algbriques, toutes les variables de dcision (originales) sont mises hors base. Automatiquement, dans le systmes dgalits : x1 + x3 = 4 2x2 + x4 = 12 3x1 + 2x2 + x5 = 18 on lit la valeur des variables de base : x3 = 4, x4 = 12, x5 = 18. Do la solution de base ralisable de dpart : (0, 0, 4, 12, 18) Notons que si une composante du second membre b avait t ngatif ou si une contrainte avait t sous forme dgalit, on aurait pas pu dmarrer ainsi. Ces

Algorithme du simplexe : Mthode algbrique

26

embches peuvent tre leves en passant par une phase prliminaire appele phase I de lalgorithme du simplexe. Que vaut la fonction objectif pour cette premire solution de base ? z = 300x1 + 500x2 = 300 0 + 500 0 cest--dire un bnce nulle, ce qui nest pas tonnant. Cette solution correspond au plan de production : on ne produit rien, on nutilise aucune ressource et on ne gagne rien. La formulation de lexemple (FC), sous la forme standard, permet dexprimer facilement chaque variable dcart (ici variable de base) ainsi que la fonction objectif z comme fonctions afnes des variables de dcision seulement (ici variables hors base) : x3 = 4 x1 x4 = 12 2x2 (Dic 1) x5 = 18 3x1 2x2 z = 300x1 + 500x2 Le tableau ci-dessus est appel un dictionnaire. La solution de base de dpart peut tre rsume ainsi : variables hors-base : x1 = 0, x2 = 0 ; variables de base : x3 = 4, x4 = 12, x5 = 18 ; la valeur de la fonction objectif : z = 0. 3.2. Passage dun sommet un autre

La phase II de lalgorithme du simplexe consiste passer dun sommet un sommet adjacent de faon amliorer chaque fois la fonction objectif z . Algbriquement, cette opration correspond un changement de base : la nouvelle base ne diffre de lancienne base que par une seule variable. On va donc se dplacer partir de notre solution de base de dpart vers une autre solution de base ralisable en suivant une arte le long de laquelle la valeur de z augmente. Choix de la variable entrante La question qui se pose est alors : commet choisir une arte le long de laquelle la valeur de z va augmenter ? Algbriquement, cette question se formule de manire quivalente par : quelle variable hors base va entrer en base ? On a : z = 300x1 + 500x2

Algorithme du simplexe : Mthode algbrique

27

Pour obtenir une meilleure solution, il suft de faire passer lune des deux variables x1 ou x2 de la valeur zro une valeur positive. Il est donc prfrable de choisir x2 qui vaut 500 par unit alors que x1 ne vaut que 300. On peut ainsi esprer aller "plus vite" vers la solution optimale. Par contre la valeur de x1 restera nulle. conomiquement, on va donc produire des chassis de type 2 et toujours pas des chassis de type 1. Le critre de slection de la variable entrante est donc le suivant : on choisit la variable avec le coefcient positif (de la fonction objectif) le plus lev. Notons que pour pouvoir appliquer ce critre simple (le choix de la variable entrante), la fonction objectif z doit tre exprime en fonction des seules variables hors base. Choix de la variable sortante On peut prsent se poser les deux questions suivantes : a) jusquo peut-on augmenter la valeur de x2 ? b) quelle variable de base doit-elle sortir, cest--dire doit-elle devenir hors base ? (Noter que le nombre des variables de base doit toujours tre exactement gal m, cest--dire 3 dans notre exemple) En supposant que x1 reste hors base (et donc gal 0) dans (Dic 1), on obtient les variations des variables de base en fonction de x2 : x3 = 4 x4 = 12 2x2 x5 = 18 2x2 (C1) (C2) (C3)

Mais pour conserver une solution ralisable et ne pas quitter la rgion ralisable, il faut aussi que les composantes restent positifs. Nous devons avoir x3 0, x4 0 et x5 0. En fait : x3 = 4 x4 = 12 2x2 x5 = 18 2x2 0 0 0 x2 ou encore x2 12 =6 2 18 =9 2

La contrainte (C1) ne place aucune restriction sur laugmentation de x2 car elle ne contient pas x2 . Au total, la contrainte la plus restrictive pour x2 est (C2). Il faut donc sarrter la valeur x2 = 6 (cest une rponse la question a) pour la quelle la variable x4 dvient nulle et aller au del conduirait la rendre ngative. Donc,

Algorithme du simplexe : Mthode algbrique

28

on peut supposer que x4 est prsent hors base (cest une rponse la question b). On en conclut que la variable sortante est x4 , cest--dire la premire qui sannule lorsque x2 saccrot partir de 0. On effectue les rapports des seconds membres des contraintes aux coefcients correspondants de la variable entrente. La variable sortante correspond au plus petit rapport positif. Gometriquement, en partant du sommet (0, 0) de la rgion ralisable D , on se dplace sur une arte de D (laxe des x2 ). Lorsque la variable dcart x4 devient nulle, cela veut dire quon a rencontr la droite associe la deuxime contrainte. On arrive alors dans un nouveau sommet, lintersection des hyperplans x1 = 0 et x4 = 0 (dans R5 ) cest--dire lintersection des droite x1 = 0 et x2 = 6 (dans R2 )
x2
(2, 6) (0, 6)

(4, 3)

(0, 0)

(4, 0)

x1

le cheminement du sommet initial vers le nouveau sommet

Calcul du nouveau sommet La question qui se pose est : commet calculer la nouvelle solution de base ? On va y rpondre en utilisant la rsolution des systmes. Plus prcisment, on va faire un changement de dictionnaire en changeant les rles des x2 et x4 . On utilise la deuxime quation du (Dic 1) pour exprimer x2 en fonction des nouvelles variables hors base, x1 et x4 : 1 x2 = 6 x4 2 On remplace ensuite x2 par cette expression dans les autres quations du dictionnaire : x3 = 4 x1 1 x2 = 6 x4 (Dic 2) 2 x5 = 6 3x1 + x4 z = 3000 + 300x1 250x4

Algorithme du simplexe : Mthode algbrique

29

La premire itration est termine. La deuxime solution de base peut tre rsume ainsi : variables hors-base : x1 = 0, x4 = 0 ; variables de base : x2 = 6, x3 = 4, x5 = 6 ; la valeur de la fonction objectif : z = 3000. Elle correspond au sommet (0, 6) de la rgion ralisable. conomiquement, cette solution dnit un plan de production beaucoup plus intressant : on fabrique 6 chassis du type 2 (x2 = 2) en consommant entirement la capacit de production de latelier 2 et x5 = 6 units de la capacit de production de latelier 3. La capacit de fabrication de latelier 1 nest pas encore utilis (x3 = 4). Le prot est z = 3000. Test darrt La question qui se pose maintenant est : commet savoir le fait que la solution optimale est trouve ? Un sommet est optimal si tous les sommets adjacents donnent des valeurs infrieures ou gales la fonction objectif. Comment peut-on savoir sil existe encore un sommet adjacent protable ? Pour rpondre cette question, nous allons examiner la nouvelle expression de la fonction z . La dernire quation du dictionnaire (Dic 2) : z = 3000 + 300x1 250x2 Comme x1 a un coefcient positif, il est intressant de faire entrer x1 en base, ce qui entrane une deuxime itration. Le critre darrt sera donc le suivant : la solution de base courante est optimale si tous les coefcients de la fonction objectif z sont ngatifs ou nuls lorsque z est exprime en fonction des seuls variables hors base. Deuxime itration Au vu de z = 3000 + 300x1 250x2 on slectionne donc pour la variable entrante x1 . En effet, cest la variable ayant le plus grand coefcient positif, et dailleurs la seule possible. Pour dterminer la variable sortante, tudions la variation des variables de base en

Algorithme du simplexe : Mthode algbrique

30

fonction dune augmentation de x1 . On a les limites suivantes : x3 = 4 x1 x2 = 6 x5 = 6 3x1 0 0 0 x1 x1 6 2

ou encore

La variable sortante est x5 , cest elle qui est la premire sannuler (pour x1 = 2). Pour calculer le nouveau sommet, on utilise la troisime quation du (Dic 2) pour exprimer x2 en fonction des nouvelles variables hors base, x5 et x4 : 1 1 x1 = 2 x5 + x4 3 3 On remplace ensuite x1 par cette expression dans les autres quations du dictionnaire : 1 1 x3 = 2 x5 + x4 3 3 1 x2 = 6 x4 (Dic 3) 2 1 1 x1 = 2 x5 + x4 3 3 z = 3600 100x5 150x4 La deuxime itration est termine. La troisime solution de base peut tre rsume ainsi : variables hors-base : x4 = 0, x5 = 0 ; variables de base : x1 = 2, x2 = 6, x3 = 2 ; la valeur de la fonction objectif : z = 3600. Elle correspond au sommet (2, 6) de la rgion ralisable. conomiquement, cette solution dnit le plan de production suivant : on fabrique 2 chassis du type 1 et 6 chassis du type 2 en consommant entirement les capacits de production des ateliers 2 et 3. Le prot est z = 3600.
x2
(2, 6) (0, 6)

(4, 3)

(0, 0)

(4, 0)

x1

le cheminement du sommet (0, 6) vers le sommet (2, 6)

Algorithme du simplexe : Mthode algbrique

31

Tous les coefcients de la dernire ligne, dans (Dic 3), sont ngatifs : z = 3600 100x5 150x4 Faire entrer x5 ou x4 diminuera la valeur de z . Il nest plus possible damliorer z . La solution courant x x 1 = 2, 2 = 6 est optimale et donne la valeur maximal la fonction objectif : z = 3600.

4.

Algorithme du simplexe

tape 0. Initialisation crire le programme linaire sous standard : Ajouter les variables dcart. Dnir une solution de base de dpart ; prciser les variables de base et les variables hors base de cette solution. Gnralement, les variables dcart sont pris comme variables de base et les variables de dcision comme variables hors base. tape 1. Choix de la variable entrante Exprimer la fonction objectif z en fonction des seules variables hors base. Puis choisir comme variable entrante la variable hors base affecte du coefcient positif le plus lev. Si tous les coefcients de z sont ngatifs ou nuls, lalgorithme sarrte. La solution courante est optimale. Sinon, soit r lindice de cette variable entrante. tape 2. Choix de la variable sortante La variable sortante est la premire sannuler lorsque xr augmente : cest celle pour laquelle le minimum est atteint dans : bs = min asr bi : asr > 0, i = 1, . . . , m air

s est lindice de la ligne correspondante. Si tous les asr sont infrieurs 0, alors la solution est non born.

Algorithme du simplexe : Mthode algbrique

32

tape 3. Calcul de la nouvelle solution de base Utiliser lquation relative la variable xs pour exprimer xr en fonction de xs et les autres variables qui vont rester dans la base. liminer xr des autres quations en la remplaant par son expression. Retour ltape 1.

5.
5.1.

Application
nonce du problme

Une entreprise fabrique quatre produits. La fabrication de chaque produit ncessite une certaine quantit de ressources. Les ressources consommes, les stocks des ressources et les bnces des produits sont rcapituls dans le tableau suivant : Produit 1 2 1 1 7 Produit 2 4 1 2 9 Produit 3 5 2 3 18 Produit 4 7 2 3 17 Stock 42 17 24

Ressource A Ressource B Ressource C Bnce

On souhaite tablir un plan de production de faon maximiser le chiffre daffaires. 5.2. Formulation mathmatique

La forme standard, exige par lalgorithme du simplexe, ne correspond pas en gnral lcriture spontane des modles conomiques o les contraintes ont le plus souvent la forme dingalits. Cest pourquoi la forme la plus naturelle est plutt la forme standard. Appelant x1 ; x2 ; x3 ; x4 les quantits respectives de produits 1, 2, 3, 4, le problme admet la modlisation suivante : Max z = 7x1 + 9x2 + 18x3 + 17x4 2 x1 + 4 x2 + 5 x3 + 7 x4 x1 + x2 + 2 x3 + 2 x4 x1 + 2 x2 + 3 x3 + 3 x4 x1 , x 2 , x3 , x4 42 17 24 0

An de ramener le programme sous forme standard, on introduit trois variables dcart x5 , x6 et x7 , qui mesurent pour chaque ressource lcart entre la quantit

Algorithme du simplexe : Mthode algbrique

33

initialement disponible et la quantit consomme par le plan de fabrication donn par les variables de dcision x1 , x2 , x3 et x4 . On obtient : Max z = 7x1 + 9x2 + 18x3 + 17x4 2x1 + 4x2 + 5x3 + 7x4 + x5 x1 + x2 + 2 x3 + 2 x4 x1 + 2 x2 + 3 x3 + 3 x4 x1 , x 2 , 5.3. Dictionnaire initial x3 , + x6 = 42 = 17 + x7 = 24 0

x4 , x 5 , x 6 , x7

La formulation standard prcdente nous permet dexprimer facilement les variables dcart comme fonctions afnes des variables de dcision : x5 x6 x7 z = 42 2x1 = 17 x1 = 24 x1 = 7 x1 4x2 x2 2x2 + 9 x2 5x3 2x3 3x3 18x3 7x4 2x4 3x4 + 17x4

(Dic 1)

Les variables x5 , x6 , x7 sont des variables de base et x1 , x2 , x3 , x4 sont des variables hors-base. 5.4. Premire itration

Daprs les critres dentre et de sortie en base, La variable x3 entre en base car elle a le plus grand coefcient positif dans la dernire ligne du dictionnaire (Dic 1), qui est 18. La variable x7 sort de la base car elle correspond au plus petit rapport parmi les rapports suivants : 42 17 24 = 8.4, = 8.5, = 8. 5 3 3 Nous allons faire un changement de dictionnaire en changeant les rles de x3 et x7 . On utilise la troisime quation du (Dic 1) pour exprimer x3 en fonction de x1 , x2 , x4 et x7 : 1 2 1 x3 = 8 x1 + x2 x7 x4 3 3 3

Algorithme du simplexe : Mthode algbrique

34

Reportons ensuite la valeur de x3 dans les autres quations du dictionnaire : x5 = x6 x3 z 1 x1 3 1 = 1 x1 3 1 = 8 x1 3 = 144 + x1 2 2 x2 3 1 + x2 3 2 x2 3 3x2 5 x7 2x4 3 2 + x7 3 1 x7 x4 3 6 x7 x4 +

(Dic 2)

Puisquil y a encore un coefcient positif dans la nouvelle expression de z (celui de x1 ), nous ne sommes pas la solution optimale. 5.5. Deuxime itration

Par un raisonnement analogue celui de la premire itration, nous dduisons que : La variable x1 entre en base La variable x6 sort de la base. Construisons le nouveau dictionnaire : x5 x1 x3 z = 1 = 3 = 7 = 147 + x6 3x6 + x6 3x6 x2 + x2 x2 2x2 + x7 2x4 + 2 x7 x7 x4 4 x7 x4

(Dic 3)

Puisque tous les coefcients de la fonction objectif z sont ngatifs, il nest plus possible damliorer z . La solution obtenue x1 = 3 , x 2 = 0, x 3 = 7, x 4 = 0, x5 = 1, x 6 = x7 = 0

est optimale, et la valeur maximum de z est 147.

Algorithme du simplexe
Mthode des tableaux

La mthode algbrique, de rsolution des programmes linaires, devient complique et ncessite une trs grande attention ds que le nombre des variables et de contraintes est important. Il est possible dadopter une reprsentation sous forme de tableaux qui facilite considrablement les calculs. On effectue gnralement les calculs sur le tableau des coefcients qui porte le nom de tableau Simplexe. Mais il faut bien garder lesprit que ce tableau et les oprations que lon va y effectuer ne sont quune traduction des oprations sur le systme dquations algbriques correspondantes.

1.
1.1. 1.2.

Recherche dun sommet de dpart


Forme simpliciale Phase I du simplexe

2.

Illustration de lalgorithme

Nous dcrirons le droulement de la mthode du simplexe en lappliquant au modle de fabrication des chassis (FC) introduit au chapitre 2. Reprenons la formulation du programme (FC) dans laquelle les variables dcart taient incluses Max z = 300x1 + 500x2 x1 + x3 = 4 2x2 + x4 = 12 3 x1 + 2 x2 + x5 = 18 x1 , x2 , x 2 , x 4 , x 5 0

(FC)

Algorithme du simplexe : Mthode des tableaux

36

On exprime le problme sous forme matricielle, o : 1 0 1 0 0 4 A= b = 12 c= 0 2 0 1 0 18 3 2 0 0 1

300 500 0 0 0

Nous allons maintenant voir commet effectuer les procdures de lalgorithme du simplexe en utilisant les tableaux. 2.1. Tableau initial

On construit un tableau initial du simplexe, qui se compose du vecteur b, de la matrice A, et dune ligne [0, c] situs sous les prcdents o 0 correspond la valeur de z lorigine (lorsque x1 = x2 = 0) :
B vecteur b x3 variables de base B 4 12 18 0 1 0 3 300 0 2 2 500 1 0 0 0 0 1 0 0 0 0 1 0 matrice A b x1 x2 x3 x4 x5

x4

x5

valeur de z

vecteur c

On a ajout au-dessus du tableau le nom des variables pour voir quelle variable correspond chaque colonne du tableau. Plusieurs caractristiques dun tableau simplex sont remarquer Tout dabord, on peut lire directement sur le tableau les valeurs des variables de base. Si x1 = x2 = 0, on obtient x3 = 4, x4 = 12 et x5 = 18. Soit xB = b. Dans la dernire ligne, on trouve un coefcient gal 0 pour chaque variable de base (la fonction z est exprime en fonction des seuls variables hors base). La matrice carre correspondant aux variables de base est la matrice identit. Enn, le premier coefcient de la dernire ligne donne loppos de la valeur de z

4 2.2.

Algorithme du simplexe : Mthode des tableaux Pivot et changement de base

37

Pour augmenter la valeur de z , on examine une nouvelle solution de base. Pour lobtenir, on doit introduire une nouvelle variable dans la base et exclure une des variables qui y gurait prcdemment. On appelle changent de base le processus qui consiste choisir la variable entrante et la variable sortante. Choix de la variable entrante Dans la dernire ligne, le coefcient dont la valeur est la plus leve dtermine la variable entrer dans la base. Donc la variable entrante est x2 . On indique ceci dans le tableau en colorant la colonne de la variable entrante que lon appelle la colonne pivot.

variable entrante B x3 x4 x5 z b 4 12 18 0 x1 1 0 3 x2 0 2 2 x3 1 0 0 0 x4 0 1 0 0 x5 0 0 1 0

300 500

colonne pivot
Choix de la variable sortante On choisit la variable sortante comme tant la variable de base qui sannule la premire. Comme nous lavons vu au chapitre prcdent, cela revient calculer le minimum du rapport du coefcient du membre de droite de chaque contrainte sur le coefcient correspondant de la colonne pivot lorsque ce dernier est strictement positif : 12 18 min , =6 2 2 Dans le cas o le coefcient dans la colonne entrante est ngatif ou nul, la ligne nentre pas en compte dans le calcul du minimum. Illustrons ceci sur un exemple. Supposons que le coefcient de x2 dans la premire contrainte soit 1 la place de 0. Lquation correspondante se rcrit de manire quivalente comme suit : x1 = 4 + x2 Quelle que soit la valeur de x2 0, la variable de base x1 reste positive.

Algorithme du simplexe : Mthode des tableaux

38

La variable sortante est alors la variable de base dont la valeur se lit dans la ligne o le minimum se produit : ici, il sagit de la deuxime ligne et donc de la variable x4 . On encadre alors la ligne o le minimum se produit. Cette ligne reoit le nom de ligne pivot :

variable entrante B x3 variable sortante x4 x5 z b 4 12 18 0 x1 1 0 3 x2 0 2 2 x3 1 0 0 0 x4 0 1 0 0 x5 0 0 1 0 6 9 b x2 Le seul int er et de cette colonne est daider au choix de la variable sortante ; elle ne fait pas partie du tableau du simplexe.

300 500

nombre pivot colonne pivot

ligne pivot

On appelle nombre pivot ou pivot le coefcient situ lintersection de la colonne pivot et de la ligne pivot. Cest donc le centre de la croix ainsi forme par la ligne et la colonne pivot. 2.3. Pivotage et tableaux simplexe

Le pivotage est le processus qui consiste amener la colonne de la variable sortante en lieu et place de la variable entrante. Le pivot nous permettra de transformer le tableau actuel en un deuxime tableau correspondant la nouvelle base. Ceci peut tre fait par trois types doprations : 1. Transformation de la ligne pivot : pour obtenir la ligne du pivot transforme, il suft de diviser tous ses lments par le pivot. 2. Transformation de la colonne pivot : aprs avoir ramen par division le pivot 1, toutes les lments situ au-dessus et au-dessous du pivot deviennent zro.

Algorithme du simplexe : Mthode des tableaux

39

B x3 x4 x5 z

b 4 6 18 0

x1 1 0 3

x2 0 1 2

x3 1 0 0 0

x4 0 1 2 0 0

x5 0 0 1 0

B x3 x2 x5 z

b 4 6 18 0

x1 1 0 3 300

x2 0 1 0 0

x3 1 0 0 0

x4 0 1 2 0 0

x5 0 0 1 0

300 500

3. Transformation des autres cases du tableau : pour obtenir la transforme des autres nombres, il suft dappliquer la rgle dite du rectangle : a =a bc 2

a est la valeur modie du coefcient a qui est considr b est llment situ sur la mme ligne que a, mais dans la colonne du pivot c est llment situ dans la mme colonne que a, mais sur la ligne du pivot Dans le tableau modier, le pivot et les coefcient a, b et c forment les coins dun rectangle. Do le nom de la mthode.

x2 b

xj a c

x4 z

Remarquons que la rgle du rectangle implique : si une ligne contient un 0 lintersection avec la colonne du pivot, cette ligne ne sera pas modie. si une colonne contient un 0 lintersection avec la ligne du pivot, cette colonne ne sera pas modie. En appliquant ces oprations au tableau initial, on obtient le deuxime tableau :

Algorithme du simplexe : Mthode des tableaux

40

B x3 x2 x5 z

b 4 6 6

x1 1 0 3

x2 0 1 0 0

x3 1 0 0

x4 0 1 2 1

x5 0 0 1 0

3000 300

0 250

On peut lire directement sur ce tableau la deuxime solution de base ralisable. En posant x1 = x4 = 0, nous conservons une matrice identit qui donne x2 = 6, x3 = 4 et x5 = 6. Le premier coefcient de la dernire ligne (ici, 3000) donne loppos de la valeur z dans la deuxime solution de base ralisable : deuxime solution de base : xB2 = (0, 6, 4, 0, 6) z2 = 3000 valeur de la fonction z en xB2 : 2.4. Deuxime itration

Le maximum de la fonction z est atteint lorsquil ny a plus de coefcients positifs dans la dernire ligne. On poursuit les changements de base et les pivotages, conformment aux rgles exposes ci-dessus, jusqu ce quon y parvienne. Comme il ne reste plus comme coefcient positif (dans la dernire ligne) que 300, on introduit x1 dans la base. La colonne de x1 devient la colonne pivot. La division de la colonne des seconds membres par la colonne pivot rvle que le plus faible rapport correspond la ligne x5 . Cest x5 qui quitte la base. Alors le nombre 3 devient le nouveau pivot

nouvelle variable entrante B x3 x2 nouvelle variable sortante x5 z b 4 6 6 x1 1 0 3 x2 0 1 0 0 x3 1 0 0 x4 0 1 2 1 x5 0 0 1 0 2 b x1 4

3000 300

0 250

Le dernier pas de la deuxime itration consiste dterminer la nouvelle solution de base au moyen du pivotage :

Algorithme du simplexe : Mthode des tableaux

41

1. Transformation de la ligne et la colonne pivot : Divisons la ligne pivot par 3, puis annuler tous les lments de la colonne pivot sauf le pivot qui est remplac par 1.

B x3 x2 x1 z

b 4 6 2 3000

x1 0 0 1 0

x2 0 1 0 0

x3 1 0 0

x4 0 1 2 1 3

x5 0 0 1 3 0

0 250

2. Transformation des autres cases du tableau : Nous utilisons la rgle du rectangle pour transformer le reste des coefcients. Le rsultats est le suivant :

B x3 x2 x1 z

b 2 6 2 3600

x1 0 0 1 0

x2 0 1 0 0

x3 1 0 0

x4 1 3 1 2 1 3

x5 1 3

0 1 3

0 150 100

On peut lire directement sur ce tableau la troisime solution de base ralisable et la valeur de la fonction objectif z dans cette solution : troisime solution de base : xB3 = (2, 6, 2, 0, 0) z3 = 3600

valeur de la fonction z en xB3 :

Comme il ny a plus de coefcients positifs sur la dernire ligne, la solution courante est optimale. Ainsi : z = 3600 (x 1 , x2 ) = (2, 6) et Le chemin suivi par la mthode des tableaux est illustr par la gure suivante.

Algorithme du simplexe : Mthode des tableaux


x2
(0, 6) premi` ere it eration

42

deuxi` eme it eration (2, 6)

(4, 3)

(0, 0) (4, 0)

x1

le chemin suivi par lalgorithme du simplexe

Cest le mme chemin suivi par la mthode algbrique. Ce qui nest pas tonnant.

3.

Algorithme du simplexe en tableaux

Lalgorithme du simplexe comporte 4 tapes dont les 3 dernires sont rptes chaque itration. La mthode des tableaux du simplexe permet dappliquer toutes les tapes de lalgorithme du simplexe sous forme dune sequence de tableaux reprsents par la gure suivant :

B xn+1 xn+2 . . . xn+m z

b b1 b2 . . . bm z B

x1 a11 a21 . . .

x2 a12 a22 . . .

... ... ... . . .

xn xn+1 xn+2 . . . xn+m a1n a2n . . . 1 0 . . . 0 0 0 1 . . . 0 0 ... ... .. . ... ... 1 0 0 0 0

am1 am2 c1 c2

. . . amn ... cn

tape 1 : Dans le cas o toutes les contraintes initiales dun programme linaire se prsentent sous forme de contraintes dingalits du type "infrieur ou gal" avec un membre de droite positif, on rcrit dabord le programme sous forme standard en ajoutant des variables dcart. Puis on met les variables de dcisions (variables originales) hors base et les variables dcart en base. On indique en section 5 comment construire le tableau initial dans le cas dun programme linaire quelconque.

Algorithme du simplexe : Mthode des tableaux

43

tape 2 : Si les coefcients cj sont tous 0, alors STOP : la solution de la base actuelle est optimale. Sinon, choisir la variable hors base dont le coefcient dans la dernire ligne est positif et le plus grand possible. Soit xr la variable entrante. Soit xr telle que cr cj , pour tout cj 0

On colore la colonne correspondante qui est appele colonne pivot. Il en rsulte le tableau suivant :

B xn+1 xn+2 . . . xn+m z

b b1 b2 . . . bm z B

x1 . . . xr . . . xn xn+1 xn+2 . . . xn+m a11 . . . a1r . . . a1n a21 . . . a2r . . . a2n . . . . . . . . . . . . . . . 1 0 . . . 0 0 0 1 . . . 0 0 ... ... .. . ... ... 1 0 0 0 0

am1 . . . amr . . . amn c1 . . . cr . . . cn

tape 3 : Choisir comme variable sortante la premire variable de base sannuler. Pour cela, on calcule le minimum du rapport du second membre bi sur le coefcient air de la variable entrante dans la mme ligne lorsque air > 0. Soit la ligne o le minimum se produit : b bi = min : air > 0 a r air La variable sortante est celle qui correspond la ligne o le minimum se produit. Soit xs la variable sortante. On colore la ligne correspondante qui est appele ligne pivot. Il en rsulte le tableau suivant :

Algorithme du simplexe : Mthode des tableaux

44

B xn+1 . . . xs . . . xn+m z

b b1 . . . bs . . . bm z B

x1 . . . xr . . . xn xn+1 xn+2 . . . xn+m a11 . . . a1r . . . a1n . . . . . . . . . . . . . . . as1 . . . asr . . . asn . . . am1 . . . . . . . . . amr . . . . . . . . . amn 1 . . . 0 . . . 0 0 0 . . . 1 . . . 0 0 ... .. . ... .. . ... ... 0 0 0 0 1 0

c1 . . . cr . . . cn

Le pivot est le nombre qui se trouve lintersection de la colonne pivot et la ligne pivot. Dans la section gauche du nouveau tableau, on remplace la variable sortante xs par la variable entrante xr . tape 4 : Cette tape permet de construire un nouveau tableau de simplexe partir du tableau prcdent. Elle comprend trois oprations : Ligne de pivot : pour obtenir la ligne du pivot transforme, il suft de diviser tous ses lments par le pivot. Colonne de pivot : pour obtenir la colonne du pivot transforme, il suft de remplacer tous ses lments par 0 sauf la place du pivot. Ailleurs : pour obtenir la transforme des autres nombres, il suft dappliquer la rgle du rectangle :

asr

si a est llment de lancien tableau (bi , aij (i = s, j = r), z B , cj ) dont on cherche la transforme a , asr est le pivot et b, d les lments permettant de construire un rectangle partir de a et asr ,

Algorithme du simplexe : Mthode des tableaux

45

alors a , la transforme de a, sobtient en retranchant a le produit b c divis par le pivot asr : bc a =a asr Remarquons que toute ligne possdant un zro dans la colonne du pivot reste inchange ; de mme, toute colonne possdant un zro dans la ligne du pivot reste inchange.

4.

Application

Reprenons la forme standard du problme qui a servi dapplication au chapitre prcdent : Max z = 7x1 + 9x2 + 18x3 + 17x4 2x1 + 4x2 + 5x3 + 7x4 + x5 x1 + x2 + 2 x3 + 2 x4 x 1 + 2x 2 + 3 x 3 + 3 x 4 xi Tableau initial : Il est vident que x1 = x2 = x3 = x4 = 0 , x5 = 42, x6 = 17, x7 = 24 0 i = 1, . . . , 7 + x6 = 42 = 17 + x7 = 24

est une solution de base ralisable. Construisons le premier tableau simplexe :

B x5 x6 x7 z

b 42 17 24 0

x1 2 1 1 7

x2 4 1 2 9

x3 5 2 3 18

x4 7 2 3 17

x5 1 0 0 0

x6 0 1 0 0

x7 0 0 1 0

Comme, dans la dernire ligne, il y a des coefcients des variables hors base qui sont positifs (valeurs 7, 9, 17 et 18), cette solution de base ralisable nest pas optimale.

Algorithme du simplexe : Mthode des tableaux

46

Deuxime tableau : Daprs les critres dentre et de sortie prsents la section 4 : x3 hors base entre en base. Car elle possde le plus grand coefcient positif, dans la dernire ligne, qui est 18. x7 en base sort de base, puisque cest elle qui correspond la ligne pour laquelle le rapport de bi sur air est le plus petit avec air > 0, i = 1, 2, 3; r = 3. En effet, a13 , a23 , a23 sont positifs et 42 b1 = = 8.4, a13 5 le plus faible ration est b2 17 = = 8.5, a23 2 b3 24 = = 8, a33 3

24 correspond la ligne dindice 3. 3

ce que nous indiquons dans le tableau initial en colorant la colonne pivot et la ligne pivot ; nous y entourons aussi le pivot, qui est gal 3. Construisons le nouveau tableau simplexe en appliquant les rgles du pivotage :

B x5 x6 x3 z

b 2 1 8 144

x1 1 3 1 3 1 3 1

x2 2 3 1 3 2 3 3

x3 0 0 1 0

x4 2 0 1 1

x5 1 0 0 0

x6 0 1 0 0

x7 5 3 2 3 1 3 6

Puisquil y a encore, dans la dernire ligne, un coefcient positif (valant 1), nous ne sommes pas la solution optimale et nous devons donc rechercher une nouvelle meilleure solution de base ralisable. Troisime tableau : Par un raisonnement analogue celui de ltape (2), nous dduisons que : x1 hors base entre en base. x6 en base sort de base ce que nous indiquons dans le tableau prcdent. Construisons le nouveau tableau simplexe :

Algorithme du simplexe : Mthode des tableaux

47

B x5 x1 x3 z

b 1 3 7 147

x1 0 1 0 0

x2 1 1 1 2

x3 0 0 1 0

x4 2 0 1 1

x5 1 0 0 0

x6 1 3 1 3

x7 1 2 1 4

Puisque tous les coefcients de la dernire ligne sont ngatifs, le tableau trouv correspond une solution optimale. Celle-ci est dnie par : x1 = 3 , x 3 = 7 , x 5 = 1 , x 2 = x4 = x6 = x7 = 0 . Le prot maximal est z = 147.

Dualit en programmation linaire

La dualit est une notion essentielle en programmation linaire. A un programme linaire donn que nous appelons primal, lopration de dualit associe un autre programme linaire dit son dual, qui ne sera dni qu laide des seules donnes du primal. La dualit prsente un double intrt : dune part, le programme dual une interprtation conomique importante : il constitue une autre vision du programme initial, le primal. En particulier, la dualit permet de montrer quun problme dallocation optimale des ressources rares est aussi un problme de tarication optimale de ces ressources ; dautre part, les proprits liant le programme primal et son dual permettront de rsoudre des problmes de minimisation en termes de maximisation, ce qui est souvent plus facile, et de dvelopper de nouveaux algorithmes qui se rvleront plus performants dans un grand nombre de situations.

1.

La construction du modle dual

Avant de donner la denition formelle dun problme dual, nous allons expliquer comment il sexplique en terme de problme de production. 1.1. Exemple 1

Reprenons le modle de lentreprise Remox dcrit au chapitre 3, que nous dnoterons (P) : Max z = 7x1 + 9x2 + 18x3 + 17x4 2x1 + 4x2 + 5x3 + 7x4 42 (P) x1 + x2 + 2x3 + 2x4 17 x1 + 2x2 + 3x3 + 3x4 24 x1 , x 2 , x 3 , x 4 0

Dualit en programmation linaire

49

Brahim, propritaire dune entreprise concurrente de la mme ville, se propose de racheter les ressources de lentreprise Remox. Brahim connat bien les paramtres du modle (P), quil sait formuler mais sans savoir le rsoudre. Il offre Ahmed de lui racheter les ressources de lentreprise Remox des prix unitaires quil reste xer. Ahmed se montre intress, condition dy trouver son compte. Les prix u1 dh, u2 dh et u3 dh sont les mondants unitaires que Brahim proposera Ahmed pour sapproprier chaque unite des ressources A, B et C respectivement. Brahim ne jette pas son argent par les fentres. Comme il veut dbourser le moins possible pour lachat de la totalit des trois ressources de lentreprise Remox, il cherche minimiser : w = 42u1 + 17u2 + 24u3 tout en proposant Ahmed une offre quitable. Quand Ahmed vend une unit du Produit 1, il empoche 7 dh. Mais pour vendre une unit du Produit 1, il lui faut consacrer sa production 2 units de la ressource A, 1 unit de la ressource B et 1 unit de la ressource C. Brahim estime quAhmed nacceptera pas de cder ce paquet de ressources pour moins de 7 dh. Brahim devra donc xer les prix offerts pour les ressources dAhmed de faon ce que 2 u1 + 1 u2 + 1 u3 7 (Produit 1)

Une dmarche simillaire propos des autres produits lamne crire que 4 u1 + 1 u2 + 2 u3 5 u1 + 2 u2 + 3 u3 7 u1 + 1 u2 + 3 u3 Et il est raisonnable de penser que u1 , u 2 , u 3 0 9 18 17 (Produit 2) (Produit 3) (Produit 4)

Finalement, pour dterminer les prix unitaires minimaux quil proposera Ahmed, Brahim devrait rsoudre le programme linaire suivant : Min w = 42u1 + 17u2 + 24u3 2u1 + u2 + u3 4u1 + u2 + 2u3 5u1 + 2u2 + 3u3 7u1 + 2u2 + 3u3 u1 , u 2 , u 3

(D)

7 9 18 17 0

Dualit en programmation linaire

50

Les problmes (P) et (D) utilisent en fait exactement les mmes donnes numriques. On peut les lire directement partir du tableau ci-dessous ; (P) correspond une lecture ligne par ligne, (D) une lecture colonne par colonne. Primal (Max) Coeff. des xi x1 x2 x3 x4 Coeff. des uj u1 u2 u3 2 1 1 4 1 2 5 2 3 7 2 3 S.M b Coeff. dans w 42 17 24

Dual (Min)

S.M.

18

Coeff. dans z 1.2. Exemple 2

Un pharmacien doit prparer une poudre vitamine contenant au moins 25 units de vitamine A, 60 units de vitamine B et 15 units de vitamine C. Il sapprovisionne auprs un laboratoire qui vend deux types de poudre vitamine en sachet : au prix de 60 dh une poudre X contenant 20 units de vitamine A, 30 units de vitamine B et 5 units de vitamine C ; au prix de 90 dh une poudre Y contenant 5 units de vitamine A, 20 units de vitamine B et 10 units de vitamine C ; Combien doit-il se procurer de poudre X et de poudre Y pour assurer, au cot minimum, son nouveau poudre ? Le problme du pharmacien se formule : Min z = 60x1 + 90x2 20x1 + 5x2 25 (D) 30x1 + 20x2 60 5x1 + 10x2 15 x1 , x 2 0 o x1 et x2 les nombres de poudres de types X et Y quiil doit mlanger. Le laboratoire dcide de vendre sparment les vitamines A, B et C en sachet de 25, 60 et 15 units. Combien doit-il vendre lunit de chaque vitamine pour tre comptitif avec le pharmacien ?

17

Dualit en programmation linaire

51

Soient u1 , u2 et u3 les prix unitaires respectifs des vitamines A, B et C. Le laboratoire cherche donc maximiser son chiffres daffaires : w = 25u1 + 60u2 + 15u3 Le laboratoire doit xer les prix offerts pour les vitamines de faon ce que : un mlange quivalent la poudre X ne cote pas plus cher que la poudre X ; un mlange quivalent la poudre Y ne cote pas plus cher que la poudre Y. Ce quon peut crire : 20u1 + 30u2 + 5u3 5u1 + 20u2 + 10u3 Et il est raisonnable de penser que u1 , u 2 0 60 90

Finalement, pour dterminer les prix unitaires maximaux quil ne doit pas dpasser pour rester comptitif, le laboratoire devrait rsoudre le programme linaire suivant : Max w = 20u1 + 60u2 + 15u3 20u1 + 30u2 + 5u3 60 (D) 5u1 + 20u2 + 10u3 90 u1 , u 2 , u 3 0 1.3. Dnition du problme dual

La dualit associe tout problme linaire un autre problme linaire qui est appel problme dual du problme initial ; par opposition le problme initial est appel problme primal. Considrons un problme de maximisation sous canonique : Max z = (D)
n

cj xj
j =1 n

aij xj
j =1

bi 0

i = 1, . . . , m j = 1, . . . , n

xj

Dualit en programmation linaire

52

Le problme dual est le suivant : Min w = (D)

b i ui
i=1 m

aij ui
i=1

cj 0

j = 1, . . . , n i = 1, . . . , m

ui

Les variables xj sont appeles variables primales et les variables ui sont appeles variables duales. Cette dnition est caractrise par les rgles suivantes : le sens de loptimisation est invers. La maximisation (resp. minimisation) dans le primal devient une minimisation (resp. maximisation) dans le dual ; les signes sont inverss dans les ingalits correspondant aux contraintes, mais la contrainte de non-ngativit sur les variables de dcision subsiste ; les coefcients de la fonction conomique du primal deviennent les seconds membres des contraintes duales ; les seconds membres des contraintes primales deviennent les coefcients de la fonction conomique du dual ; Comme le problme dual du dual est le problme primal initial, il convient donc de parler dune paire de problmes de programmation linaire lis par la dualit. Souvent le problme primal est considre soit sous sa forme canonique ou sous sa forme standard. Dans ces deux, le problme dual devient, en notation vectorielle, la forme canonique : Max z = cx Ax x Min w = ub uA u

le primal :

b 0

le dual :

c 0

la forme standard : Max z = cx le primal : Ax = b x 0

le dual :

Min w = ub uA c

Nous pouvons vrier cette dernire relation, en mettant la forme standard sous une forme canonique quivalente.

Dualit en programmation linaire

53

Exemple Considrons le problme suivant : Max z = x1 + 3 x2 x1 + x2 (P) 2x1 + 3x2 2x1 x2 x1 , x 2 son dual scrit (P)

14 12 12 0

Min w = 14u1 + 12u2 + 12u3 u1 2u2 + 2u3 u1 + 3 u2 u3 u1 , u 2 , u 3

1 3 0

1.4.

Rgles de dualisation

Le tableau suivant donne un ensemble de rgles formelles permettant de passer dun problme de programmation linaire gnral son problme dual. Nous laissons le soin au lecteur, titre dexercice de vrier la cohrence de ces rgles avec les dnitions de la section prcdente. Max z variable xj variable xj Min w contrainte j est une ingalit " " contrainte j est une ingalit " " contrainte j est une galit "=" variable ui variable ui 0 0

0 0

variable xj sans signe

contrainte i est une ingalit " " contrainte i est une ingalit " " contrainte i est une galit "="

variable ui sans signe

2.

Proprits de la dualit

Nous allons montrer que la relation entre deux problmes va beaucoup plus loin que lesthtique mathmatique de cette symtrie. En fait nous allons tudier certaines rsultats concernant les relations entre le problme primal et son dual. Considrons un problme linaire de maximisation (le primal) sous sa forme

Dualit en programmation linaire

54

canonique et son dual = Max z = cx z Ax x 2.1. Dualit faible

b 0

= Min w = ub w uA u

c 0

Proprit 1 Si x et u sont des solutions ralisables respectivement du primal (maximum) et du dual (minimum), elles vrient : cx En effet, Ax uA Corollaire 1 Une solution ralisable du dual (resp. primal) fournit une borne suprieur (resp. infrieur) de z (resp. w ) : z w Corollaire 2 Soient x et u des solutions ralisables respectivement du primal et du dual. Si cx = ub, alors x et u sont solutions optimales. En effet, supposons, par exemple, que x nest pas une solution optimale. Alors, il existe une solution ralisable x tel que c x > c x Do c x > ub, ce qui est en contradiction avec la proprit 1. Le corollaire 2 indique que lgalit des fonctions conomiques du primal et du dual est une condition sufsante doptimalit pour des solutions ralisables des deux problmes. ub cx u ralisable du dual u ralisable du primal b et c et u x 0 0 = uAx uAx ub cx = cx uAx ub ub

Dualit en programmation linaire

55

Corollaire 3 Si un problme possde une valeur optimale innie, son dual est impossible. En effet, si z = +., Daprs le corollaire 1, toute solution ralisable u du dual devrait vrier + u b. Ce qui est impossible. Mme dmarche si w = . 2.2. Dualit forte

Proprit 2 Si le problme primal (resp. dual) possde une solution optimale nie, alors il en est de mme pour le problme dual (resp. primal) et de plus z =w . En effet, sil existe une solution de base optimale nie x du problme primal mis sous forme standard, cette solution est de la forme x B = B1 b avec Posons uB = cB B1 Cette solution duale est ralisable puisque uB A et de plus vrie uB b = z Cette solution est donc une solution optimale nie du problme dual. Corollaire 4 Lgalit des fonctions objectifs du primal et du dual est donc une condition ncessaire et sufsante doptimalit pour des solutions ralisables des deux problmes. Thorme fondamentale de la dualit Parmi les neuf situations potentielles pour une paire de problmes lis par la dualit, il nexiste que quatre situations possibles 1. Les deux problmes ont des solutions optimales nies ; c z = cB x B et cB B1 A c 0 0, x H = 0

(critre doptimalit).

Dualit en programmation linaire

56

2. a) Le problme primal a une valeur optimale innie, et son dual est impossible ; b) Le problme primal est impossible, et son dual a une valeur optimale innie ; 3. Les deux problmes sont impossibles. Le tableau suivant rcapitule la situation Primal/ Dual Solution optimale nie Valeur optimale innie Problme impossible Solution optimale nie 1. Non Non Valeur optimale innie Non Non .2 b) Problme impossible Non 2. a) 3.

Daprs ce qui prcde, on obtient le rsultat suivant. Dans un couple de problmes lis par la dualit : soit les deux problmes ont des solutions optimales nies ; soit un problme est impossible et lautre a une valeur optimale innie ; soit les deux problmes sont impossibles. Toutes les autres situations sont irralisables. Illustrations 1. Les deux problmes ont des solutions optimales nies min 2x1 + 2x2 x1 x 2 x1 + x 2 x1 , x 2 max u1 u2 u1 u2 u1 + u2 u1 , u 2

(P)

1 1 0

(D)

2 2 0

0 0 4

0 0 4

le premier cas du thorme fondamentale de la dualit

Dualit en programmation linaire

57

2. Un problme est impossible et lautre a une valeur optimale innie max 2x1 + 2x2 x1 + x2 x1 x2 x1 , x 2 min u1 + u2 u1 + u2 u1 u2 u1 , u 2

(P)

1 1 0

(D)

2 2 0

0 0 4

0 0 4

le deuxime cas du thorme fondamentale de la dualit

3. Les deux problmes sont impossibles max 2x1 + 2x2 x1 x2 x1 + x2 x1 , x 2 min u1 u2 u1 u2 u1 + u2 u1 , u 2

(P)

1 1 0

(D)

2 2 0

0 0 4

0 0 4

le troisime cas du thorme fondamentale de la dualit

2.3.

Thorme des carts complmentaires

Ce thorme est une autre prsentation de la condition ncessaire et sufsante doptimalit du corollaire 4, et sendduit facilement :

Dualit en programmation linaire

58

Soient x et u deux solutions ralisables respectivement du primal et du dual. Une CNS pour que x et u soient solutions optimales, est quelles vrient les relations : u (Ax b) = 0 (c uA) x = 0 Etant donn que par hypothse, u (b Ax) = (uA c) x = 0 0 = cx ub = + 0

Une CNS doptimalit quivalente cx = ub est donc ==0 Appelons (Li x ou (xj 0, uCj cj , ) j = 1, . . . , n des couples de contraintes duales. Convenons quune contrainte dingalit ( ou ) est dite serre pour une solution, si elle est vrie avec le signe dgalit (=) et non serre dans le cas o elle est vrie avec le signe dingalit stricte (< ou >). Le thorme des carts complmentaires peut alors snoncer : A loptimum, dans tout couple de contraintes duales, il y a au moins une contrainte serre. Ainsi, si x et u sont des solutions optimales, respectivement du primal et du dual, on en dduit : xj > 0 uCj = cj Li x < bi ui ui > 0 uCj > cj xj = 0 = 0 Li x = bi bi , u i 0) i = 1, . . . , m

En introduisant les variables dcart y et v des contraintes relles du primal et du dual : Ax + y = b uA v = c

Dualit en programmation linaire

59

Le thorme des carts complmentaires scrit simplement : xi v i = 0 yj uj = 0 i = 1, . . . , n j = 1, . . . , m

ce qui justie lappellation carts complmentaires . Exemple :


Appliquons le TEC au problme linaire suivant : max 15x1 x1 x1 7x1 x1 + 25x2 + 3x2 + , x2 x2 + 4x2

96 40 238 0

(P)

Son dual est le problme linaire suivant : min 96u1 u1 (D) 3u1 u1 Soit la solution primale x1 = 0,

+ 40u2 + 238u3 + u2 + 7u3 + , u2 + u2 , 4u3 u3

15 25 0

x2 = 32

Les deux dernires contraintes ne sont pas satures = les deux variables duales associes sont nulles ; x2 > 0 = 2ieme contrainte duale sature ; Donc 3u1 = 25 = u1 = 25/3 (et u2 = u3 = 0) ; Cette solution ne satisfait pas la 1ere contrainte duale = non ralisable ! ; La solution primale prcdente nest donc pas optimale ! Considrons maintenant la solution primale : x1 = 12, x2 = 28

La dernire contrainte nest pas sature = la variables duale associe est nulle ;

Dualit en programmation linaire


x1 , x2 > 0 = 2 contraintes duales satures ; On obtient donc le systme suivant : u1 + u2 = 15 3u1 + u2 = 25 On fait la diffrence des 2 galits 2u1 = 10 = u1 = 5 = u2 = 10 Cette solution est admissible pour (D) = x1 = 12, x2 = 28 est optimale

60