Você está na página 1de 28

Ann ee 2007

D epartement des Sciences et Techniques

Licence de Math ematiques L3


Henri Bonnel

Cours de Programmation Lin eaire

1
1.1

Introduction
Un exemple tr` es simple

On se propose de trouver le mod` ele math ematique du probl` eme de production propos e dans lexercice no 1 :

Consid erons une usine o` u, gr ace ` a la pr esence de deux cha nes, il est possible dassembler simultan ement deux mod` eles de voiture. On peut produire 100 voitures du premier type en 6 heures. On peut aussi produire 100 voitures du second type en 5 heures seulement. Le nombre dheures de travail est au maximum de 60 heures par semaine. Les voitures produites sont enlev ees une fois par semaine et doivent etre stock ees dans un d ep ot de 15 000 m2 . Une voiture du type 1 occupe 10 m2 et une voiture du type 2 occupe 20 m2 . La marge (di erence entre le prix de vente et le co ut de la production) sur le premier type de voiture est de 50 000 F par v ehicule tandis que, sur le second, elle est de 45 000 F par v ehicule. La demande pour le premier type de voiture est limit ee ` a 800 unit es par semaine ; la demande pour le deuxi` eme type est tellement forte quon peut la consid erer comme illimit ee. Combien de voitures de chaque type le constructeur doit-il produire par semaine pour maximiser son prot net ?
Choix des variables de d ecision. Posons x1 = nombre de milliers de voitures de type 1 produites par semaine x2 = nombre de milliers de voitures de type 2 produites par semaine. Formulation des contraintes. On constate (apr` es simplications) que

6x1 + 5x2 10x1 + 20x2 x1 x1 , x2

6 15 0, 8 0

D etermination de lobjectif. Posons z = le prot net (marge) exprim e en MF. On a z = 50x1 + 45x2 1

Donc on est amen es ` a r esoudre le probl` eme (programme) suivant(i) : 6x1 + 5x2 10x1 + 20x2 max z = 50x1 + 45x2 s.c. x1 x 1 , x2

6 15 0, 8 0

1.2

Solution graphique dun programme lin eaire en deux variables

On constate que lensemble des points du plan P rapport e` a on rep` ere (orthonorm e pour la beaut e de la forme mais pas n ecessaire !) {O, i, j } v eriant les contraintes est un polygone (pentagone) quon appellera polygone (ou r egion) admissible (ou r ealisable ). La famille de droites disovaleur (dz )z R donn ees par

x2

1,2

P(9/14;3/7)

1,5

0,8

x1

=360/7 z*=zmax z=0 z=40

Fig. 1 Polygone admissible et droites disovaleur

dz : 50x1 + 45x2 = z repr esente une famille de droites parall` eles (car elles ont toutes le m eme coecient directeur = -50/45) et les points qui se trouvent sur une droite x ee dz0 repr esentent les points qui correspondent ` a la m eme valeurs du b en ece z = z0 . Dans la gure 1 on a repr esent e les droites correspondant ` a z = 0, z = 40 et ` a la plus grande valeur de z pour laquelle la droite dz ` a une intersection non vide avec lensemble r ealisable autrement dit, la plus grande valeur de z pour laquelle il existe une d ecision admissible (r ealisable) qui 360 assure cette performance. Donc la valeur optimale zmax = ce qui correspond ` a la solution optimale 7 9 3 , ). A noter que, en d epla cant la droite dz vers la gauche la valeur de z diminue, tandis (x 1 , x2 ) = ( 14 7 que, en d epla cant dz vers la droite, la valeur de z augmente. On remarquera que : (a) La solution optimale est un sommet du polygone r ealisable, et dans cet exemple elle est unique. (b) Si la droite dz etait parall` ele au cot e o` u loptimum est atteint, alors il y aura deux sommets (les extr emit es du cot e optimal) correspondants ` a des solutions optimales. Donc dans tous les cas o` u il
(i)

s.c. signie sous les contraintes

existe une valeur optimale de z , il existe toujours au moins un sommet correspondant ` a une solution optimale. (c) Le long dun c ot e du polygone, la valeur de lobjectif peut etre soit constante ; soit strictement croissante, soit strictement d ecroissante. On peut donc sugg erer lalgorithme suivant : (i) Choisir comme point de d epart un sommet x du polygone admissible. (ii) D eterminer les c ot es passant par ce sommet x . Trouver un c ot e le long duquel z cro t. Sil ny a pas, STOP : le x courant est optimal. (iii) D eterminer le sommet y ` a lautre bout du cot e et poser x = y . Retour en (ii). Evidemment il y a des exemples o` u lensemble r ealisable est vide (voir lexo 3. E.) ou dautres o` u il ny a pas un valeur optimale nie, i.e. zmax = + quand on peut augmenter autant que lon veut la valeur de z (la r egion r ealisable nest pas born ee, voir exo 3.C.) ou zmin = (exo 3.D.).

1.3

La forme g en erale dun probl` eme de programmation lin eaire

Un probl` eme de programmation lin eaire est d eni par les el ements suivants : Les variables de d ecisions x1 , x2 , . . . , xn R. Certaines variables sont toujours positives xi 0, i I+ , dautres sont toujours n egatives xi 0, i I et les autres peuvent avoir nimporte quel signe xi R, i I \ (I+ I ) (avec I = {1, . . . , n}, I+ , I I, I+ I = ). Les contraintes qui peuvent etre de type : (i) in egalit es   :
n

aij xj
j =1

bi ,

i = 1, . . . , m

(ii) egalit es :

aij xj = bi ,
j =1

i = m + 1, . . . , m + p

(iii) in egalit es   :

aij xj
j =1

bi ,

i = m + p + 1, . . . , m + p + q.

Les nombres aij et bi sont suppos es connus. On appelle solution admissible tout el ement (x1 , . . . , xn ) Rn v eriant toutes les contraintes. Lensemble de solutions admissibles sera dit ensemble (ou poly` edre si born e) admissible. lobjectif (crit` ere ou indice de performance, ou fonction economique etc.) donn e par :
n

z=
j =1

cj xj

o` u cj sont des nombres connus. Le but dun probl` eme doptimisation est doptimiser lobjectif sur lensemble admissible.

optimiser {maximiser , minimiser }.


On peut donc chercher soit ` a minimiser lobjectif sur lensemble admissible, donc on a un probl` eme de minimisation, soit ` a le maximiser , et dans ce cas on a un probl` eme de maximisation. Lorsquon utilise un logiciel capable ` a r esoudre des programmes lin eaires il faut pr eciser soigneusement tous ces el ements. 3

1.4

La forme standard dun programme lin eaire

Si dans le probl` eme de programmation lin eaire sous forme g en erale expos e dans la section pr ec edente on a: (a) I+ = I i.e. toutes les variables sont positives ; (b) m = q = 0, i.e. il ny a pas de contraintes de type in egalit e; (c) le probl` eme est de maximisation alors on dit que le programme est donn e sous la forme standard. En ecriture matricielle (voir le chapitre suivant pour les rappels) on a (PS) o` u A = (aij ) Mp,n (R), b = max z = cx Ax = b s.c. x 0 b1 b2 . . . bp x1 x2 . . . xn .

, c = [c1 c2 cn ] et x =

Evidemment xi 0 i I . Sil y a des variables sans contraintes de signe (i.e. I \ (I+ I ) = ) alors, pour tout + i I \ (I+ I ) on pose xi = x+ u x+ i xi o` i = max(xi , 0) et xi = max(xi , 0). Les nouvelles variables xi , xi sont evidemment positives. Donc par ces changements toutes les nouvelles variables seront positives. Les contraintes de type   on les transforme dabord en in egalit es de type   en les multipliant par -1. Une in egalit es de la forme (1)
n X j =1

Proposition 1. Tout programme lin eaire peut etre mis sous la forme standard. monstration. En eet, sil y a des variables n De egatives (i.e.I = ) alors on remplace xi par xi = xi , i I .

aij xj

bi

sera transform e en une egalit e en introduisant une nouvelle variable positive ei dite variable d ecart par les relations (2) ei +
n X j =1

aij xj = bi , ei

0.

Il est ais e de voir que les relations (1) et (2) sont equivalentes, donc en rempla cant (1) par (2) (et on va proc eder de cette mani` ere avec toutes les contraintes de type in egalit e) on obtient un probl` eme equivalent mais sous la forme standard.

1.5

La forme canonique dun programme lin eaire

Si dans le probl` eme de programmation lin eaire sous forme g en erale expos e dans la section 1.3 on a : (a) I+ = I i.e. toutes les variables sont positives ; (b) p = q = 0, i.e. il ny a pas de contraintes de type egalit e, ni de type in egalit e ; (c) le probl` eme est de maximisation alors on dit que le programme est donn e sous la forme canonique. En ecriture matricielle on a (PC) o` u A = (aij ) Mm,n (R), b = max z = cx Ax s.c. x b1 b2 . . . bm 4 b 0 x1 x2 . . . xn .

, c = [c1 c2 cn ] et x =

Proposition 2. Tout probl` eme de programmation lin eaire peut etre mis sous la forme canonique. monstration. On transforme les variables qui ne sont pas positives en variables positives comme dans la d De emonstration de la proposition 1. Les contraintes de type egalit es on les ecrit comme deux in egalit es :
u = v [u v et u v ]. Ensuite, les contraintes de type   on les transforme en in egalit es de type   en les multipliant par -1.

2
2.1

Un peu dalg` ebre lin eaire


G en eralit es
a11 a21 . . . a12 a22 . . . . . . a1n . . . a2n . . . a coecients dans , `

On note Mm,n (K) lensemble de matrices de la forme A =

am1 am2 . . . amn K = Z, Q, R. On ecrira pour simplier A = (aij ) o` u aij est l el ement de A situ e` a lintersection de la ligne i et de la colonne j . La somme de deux matrices (aij ) + (bij ) = (aij + bij ) et le produit dune matrice A par un nombre R d eni par (aij ) = (aij ) v erient toutes les bonnes propri et es ce qui nous permet de dire Mm,n (R) a une structure de R espace vectoriel. Le produit de la matrice A Mm,n (R) par la matrice B Mn,p est une matrice C = AB Mm,p (R) d enie par cij = n k=1 aik bkj . La multiplication des matrices nest pas commutative. Elle a par contre toutes les autres bonnes propri et es(associativit e, lexistence de l el ement neutre : la matrice carr ee 1 0 ... 0 0 1 ... 0 not ee I ou In = . . e par rapport ` a la somme ....) Mn,n (R), distributivit . . . . . . . 0 0 ... 1 Une matrice carr ee A est dite inversible sil existe un matrice B telle que AB = BA = I. Dans ce cas la matrice B est unique (prouvez le !) et sera not ee B = A1 . Proposition 3. Soit A Mn,n (R). Les armations suivantes sont equivalentes : (i) A est inversible. (ii) det(A) = 0(ii) (iii) Il existe B Mn,n (R) tel que AB = In (iv) Il existe C Mn,n (R) tel que CA = In Les matrices ligne de M1,n (R) on les appelle vecteurs ligne et les matrices colonne de Mn,1 (R) sont appel ees vecteurs colonne. Dans la suite, quand on fait des op erations avec des vecteurs on sous-entends vecteurs de m eme type. finition 1. Une famille de vecteurs (vi )iI (avec I un ensemble ni) sera dite De li ee sil existe i I et j R, j = i tels que vi =
j I \{i}
(ii)

j v j .

On suppose que le lecteur est familiaris e avec la notion de d eterminant.

libre si elle nest pas li ee, cest-` a-dire i R,


iI

i vi = 0 = i = 0 i I.

g en eratrice si tout vecteur v s ecrit comme une combinaison lin eaire des vecteurs de la famille, i.e. pour tout v il existe des nombres i tels que v= i v i .
iI

finition 2. Lespace vectoriel V engendr De e par une famille de vecteurs (vi )iI avec I = {1, . . . , p} est lensemble de toutes les combinaisons lin eaires de cette famille et sera not ee Vect (v1 , . . . , vp ). Donc V = Vect (v1 , . . . , vp ) = {1 v1 + + p vp | 1 , . . . , p R}. Exemple 1. Lespace V = Mn,1 (R) est engendr e par les colonnes de la matrice unit e In , et lespace W = M1,n (R) est engendr e par les lignes de la matrice In . (Prouvez le !) finition 3. La famille de vecteurs (e1 , . . . ek ) est une base de lespace vectoriel V si elle est libre et De g en eratrice. Th eor` eme 1. Soit V un espace vectoriel (V Mn,1 (R) ou V M1,n (R)) qui poss` ede une base ayant p el ements. Alors : (a) Toute autre base de V a le m eme nombre p d el ements. Ce nombre sera dit la dimension de V et sera not e p = dim V. (b) Toute famille libre de V a au plus p el ements. (c) Toute famille g en eratrice de V a au moins p el ements. (d) Toute famille libre de V ayant exactement p el ements est une base de V . (d) Toute famille g en eratrice de V ayant exactement p el ements est une base de V . (e) Toute famille libre est contenue dans une base (i.e. on peut compl eter une famille libre pour obtenir une base). (f ) De toute famille g en eratrice on peut extraire une base. finition 4. Le rang dune matrice A est la dimension de lespace vectoriel engendr De e par les colonnes de A. Donc, si A = [A1 A2 An ] Mp,n (R), avec Aj Mp,1 (R), alors rang (A) = dim Vect (A1 , . . . , An ) Remarque 1. Evidemment on a rang (A) min(p, n). Th eor` eme 2. Soit A Mm,n (R). Les armations suivantes sont equivalentes : (i) rang (A) = r. (ii) Il existe un mineur dordre r de A non nul et tous les mineurs dordre r + 1 (sil y en a !) sont nuls. (iii) Lespace engendr e par les lignes de A est de dimension r. (iv) Il existe une sous-matrice carr ee de A dordre r inversible et toutes les sous- matrices carr ees dordre r + 1 (sil y en a) sont non inversibles. Remarque 2. Si A Mn,n (R) est une matrice carr ee, alors rang (A) = n det(A) = 0 A est inversible. 6

2.2

Transformations el ementaires et les matrices watsoniennes(ii)

Il existe trois types de transformations el ementaires sur les lignes dune matrice A Mp,n (R), ` a savoir (a) permutation des lignes i et j et on ecrira Li Lj (b) multiplication de la ligne i par un nombre non nul R : Li Li (c) laddition ` a la ligne i de la ligne j multipli ee par R : Li Li + Lj . finition 5. Soient : De Hij la matrice obtenue en appliquant la transformation Li Lj ` a la matrice unit e Ip Hi () la matrice obtenue en appliquant la transformation Li Li ` a la matrice unit e Ip (avec = 0) Hij () la matrice obtenue en appliquant la transformation Li Li + Lj ` a la matrice unit e Ip . Th eor` eme 3. Les matrices Hij , Hi () et Hij () sont inversibles et chaque transformation el ementaire (a), (b), (c) appliqu ee ` a la matrice A peut etre r ealis ee en multipliant ` a gauche la matrice A par la matrice watsonienne correspondante. Par exemple la matrice A = Hij ()A est la matrice obtenue de A en faisant Li Li + Lj . monstration. Un bon exercice (facile !) pour ceux qui appr De ecient les matrices !

2.3
2.3.1

Les syst` emes lin eaires et les op erations de pivotage


Les syst` emes lin eaires sous-d etermin es et les variables de base

On va consid erer un syst` eme d egalit es lin eaires sous-d etermin e i.e. le nombre m d equations est inf erieur au nombre n dinconnues qui seront not ees x1 , . . . , xn : a11 x1 + a12 x2 + . . . + a1n xn = b1 a21 x1 + a22 x2 + . . . + a2n xn = b2 (S) . . . . . . am1 x1 + am2 x2 + . . . + amn xn = bm . Si on consid` ere x1 . x= . . xn b1 . et b = . . bm

A = (aij )

alors le syst` eme (S) s ecrit (3)

Ax = b.

On va supposer que le rang de la matrice A = [A1 An ] (avec Ai Mm,1 (R) la colonne i de A) est maximum, i.e. rang (A) = m. finition 6. On appelle ensemble de base (de la matrice A) tout ensemble ordonn De e ayant m el ements B = {i1 , . . . , im } {1, . . . , n}, tel que les colonnes (Ai )iB forment une base de Vect (A1 , . . . , An ).
(iii)

Lappellation watsonien vient de Dr. Watson li ee ` a la notion el ementaire et a et e introduite par Pierre Brondeau

On va noter AB = [Ai1 Aim ] la matrice carr ee ayant les colonnes Ai , i B (donc AB est inversible !) xi1 . et on va dire que les variables (xi )iB sont les variables de base, et on va noter xB = . . la matrice xim colonne form ee par les variables de base. Notons N = {1, . . . , n} \ B lensemble des indices hors base (toujours ordonn e) et dune mani` ere analogue AN la matrice form ee par les colonnes de A en dehors de la base AB et xN la matrice colonne des variables hors base. Donc, comme x1 n . Ax = [A1 . . . An ] . Ai xi = Ai xi + Ai xi = AB xB + AN xN . = xn
i=1 iB iN

on peut ecrire le syst` eme (S) sous la forme (4) AB xB + AN xN = b.

Proposition 4. Soit T Mm,m (R) inversible et B {1, . . . , n}, |B | = m(iv) . Alors : 1. Les syst` emes Ax = b et T Ax = T b sont equivalents (i.e. ils ont les m emes solutions.) 2. B est un ensemble de base de A B est un ensemble de base de T A. monstration. 1. Soit x v De eriant Ax = b. En multipliant cette egalit e par T ` a gauche on obtient que x v erie le
syst` eme T Ax = T b. R eciproquement, si x v erie T Ax = T b, en multipliant cette egalit e` a gauche par T 1 on obtient que x v erie le syst` eme Ax = b. ne que AB est inversible (T A)B est inversible. 2. Il sut de remarquer que T AB = (T A)B ce qui entra

1 En multipliant l egalit e (4) ` a gauche par A ace ` a la proposition 4 que le syst` eme (3) est B , on obtient gr equivalent au syst` eme 1 1 xB = A B b AB AN xN .

Donc

on peut toujours exprimer les variables de base en fonction de variables hors base.
1 En consid erant xN = 0 on obtient xB = A ethode B b et cette solution joue un role fondamental dans la m du simplexe.

finition 7. La solution (x1 , . . . , xn ) v De eriant


1 xN = 0; xB = A B b

sera dite solution de base associ ee ` a lensemble de base B . G eom etriquement une solution de base correspond ` a un sommet du poly` edre (g en eralisation du polygone en dimension 2) d eni par Ax = b (plus correctement on doit dire surface poly edrale lorsque cet ensemble nest pas born e).
(iv)

|B | d esigne le nombre d el ements (le cardinal) de lensemble B .

2.3.2

Pivotage

finition 8. Deux ensembles de base B et B sont dits adjacents sil di` De erent par un seul el ement, i.e. (v) il existe i B, j B , i = j tels que B = B {j } \ {i}. Autrement dit on peut passer de B ` a B en echangeant dans B lindice de base i = ip par lindice hors base j (avec 1 p m).
1 1 1 Lop eration de passage du syst` eme xB = A eme xB = A B b AB AN xN au nouveau syst` B b 1 (resp. A ) la matrice de coecients du syst` AB AN xN sappelle pivotage. Notons par A eme correspondant B = Im , A N = A1 AN et ` a lensemble de base B (resp. B ) et par b (resp. b ) le second membre (donc A B 1 B = Im , A N = A AN ). A noter que A B

= Ax b,

x= A b

sont des syst` emes equivalents au syst` eme (S) ayant la propri et e que les variables de base (xk )kB (resp. (xk )kB ) apparaissent chacune dans une seule equation et elles ont comme coecient 1. = Lid ee est de changer la variable de base xi par la variable hors base xj dans le syst` eme Ax b de sorte que xj devienne une variable de base (et evidemment xi quittera la base). On dit que xj est la variable entrante tandis que xi est la variable sortante. Les autres variables de base restent dans la base. Pour que cet echange soit possible il faut que l equation p contenant la variable xi (avec le coe. a pi = 1) contienne aussi la variable xj avec un coecient a pj = 0 (autrement B = B {j } \ {i} nest pas un ensemble de base !(vi) ). Donc on a a pi = 1, a pj = 0. L el ement a pj = 0 sappelle pivot. Pour pivoter on doit eectuer les op erations suivantes : ) par le pivot, i.e. on multiplie A et (i) On divise la ligne du pivot (i.e. la ligne p de A b` a gauche par la matrice inversible Hp (1/apj ). (ii) On elimine la variable xj de toutes les autres equations (sauf l equation p) en faisant Lk Lk akj Lp pour tout k {1, . . . , m} \ {p}. Cela revient donc ` a multiplier successivement ` a gauche par les matrices inversibles Hkp (akj ). = TA et Donc apr` es toutes ces transformations on obtient les matrices A b = T b avec T =
k =p

Hkp (akj ) Hp (1/apj ).

B = A = Im car la seule op a On a bien A eration concernant la ligne k (avec k = p) de A et e B Lk Lk akj Lp ce qui na aucun eet sur les el ements a kl , l B \ {i}, et dautre part la colonne du =A . pivot devient la colonne correspondante de Im . Ceci montre que A
Comme les ensembles B, B sont suppos es ordonn es, alors l el ement j de B prend la place occup ee par i dans B et tous les autres el ements ne changent pas de position. (vi) admet les m En eet, gr ace ` a la proposition 4 on a que la matrice A emes ensembles de base que la matrice A. Alors les colonnes (Ak )kB doivent former une famille libre, i.e. AB est inversible. Si le coecient a pj de xj dans l equation i est B serait nulle, donc la matrice ne serait pas inversible. nul, alors la ligne p de la matrice A
(v)

, En fait le passage des matrices A, b aux matrices A b seectue gr ace aux formules suivantes : a pl a kj a pj

a kl = a kl a pl = (5) a pl apj

k = p

bp a kj bk = bk a pj bp bp = apj

k = p

Ces formules sont faciles ` a retenir avec la r` egle du rectangle :


~ a kl ~ a kj

~ a pl

~ apj

Fig. 2 Pivotage : la r` egle du rectangle. On doit former un rectangle ayant le pivot a pj comme sommet et l el ement ` a modier comme sommet oppos e. Ensuite on doit soustraire de l el ement ` a modier a kl (ou bk ) le produit des el ements sur la diagonale qui ne contient pas le pivot (le pivot est entour e dun carr e) divis e par le pivot. La colonne du pivot doit etre compl et ee par des z eros (` a part le pivot qui devient 1).

Lalgorithme du simplexe

Lalgorithme (tr` es important vu ses multiples applications !) consid er e dans ce chapitre, d ecouvert en 1947 par lam ericain G.B. Dantzig, a f et e ces 50 ans ` a EPFL de Lausanne en 1997 ` a loccasion du 16th International Symposium on Mathematical Programming en la pr esence de son auteur !

3.1

Un exemple simple
max z = 3x1 + 4x2 21 x1 + 2x2 x1 + x2 12 s.c. x1 , x2 0 10

Consid erons le programme lin eaire

Transformons ce programme en un programme equivalent mis sous la forme standard max z = cx s.c. Ax = b x 0

(voir le chapitre pr ec edent). Donc en introduisant les variables d ecart x3 , x4 on obtient le programme equivalent : max z = 3x1 + 4x2 x1 + 2x2 + x3 = 21 x1 + x2 + x4 = 12 s.c. x1 , x2 , x3 , x4 0 On a donc A= 1 2 1 0 1 1 0 1 , b= 21 12 , c = [3 4 0 0].

On constate que B = {3, 4} est un ensemble de base. La solution de base correspondante est x1 = 0, x2 = 0, x3 = 21, x4 = 12. Cette solution est egalement admissible, donc sera dite solution de base admissible. La valeur de lobjectif associ ee est z = 0. On va augmenter la valeur de z en introduisant dans la base la variable x2 (car x2 a le plus grand coecient dans z , mais evidemment on aurait pu introduire x1 egalement).

Le choix de la variable entrante. Donc la variable entrante (dans notre cas x2 ) est choisie en utilisant la r` egle : le coecient dans la fonction z de la variable entrante est le plus grand des coecients (positifs)(vii) de z. Ainsi on esp` ere une augmentation plus forte de z par rapport ` a dautres choix de variables entrantes. Le choix de la variable sortante. On va augmenter la valeur de x2 le plus possible tout en restant dans lensemble admissible. Les autres variables hors base (dans notre cas x1 ) sont maintenues nulles. Comme x3 et x4 sont positifs on doit avoir 21 2x2 donc x2 min(21/2, 12) = 21/2. On constate que la plus grande valeur de x2 satisfaisant ces in egalit es est x2 = 21/2. Cela entra ne x3 = 0, x4 = 3/2. La solution x1 = 0, x2 = 21/2, x3 = 0, x4 = 3/2 pourrait correspondre ` a une solution de base associ ee ` a B = {2, 4} (car les variables hors base sont nulles dans une solution de base). Autrement dit la variable sortante devrait etre x3 . Remarquons que (si tout est ok !) la variable sortante correspond au plus petit des rapports (positifs) entre les el ements du second membre du syst` eme et les coecients associ es ` a la variable entrante.
(vii)

et 12 x2

0,

Si tous les coe. de z sont n egatifs ou nuls alors la solution de base est optimale, voir plus loin.

11

Montrons que dans cet exemple on peut eectuer ce choix. On choisit donc comme pivot le coecient de la variable entrante x2 correspondant ` a la variable sortante x3 (donc de la premi` ere equation, la variable sortante ne peux pas appara tre dans plusieurs equations, car elle est ( etait) une variable de base). Alors, apr` es pivotage (utiliser la r` egle du rectangle) ce qui consiste en fait ` a 1 faire L1 2 L1 et apr` es L2 L2 L1 , on obtient le syst` eme
1 2 x1 1 2 x1

+ x2 + 1 2 x3 = 1 2 x3 + x4 =

21 2 3 2.

On constate donc que B = {2, 4} est bien un ensemble de base et la solution de base associ ee x1 = 0, x2 = 21/2, x3 = 0, x4 = 3/2 est admissible. Lobjectif r eduit. On va toujours exprimer lobjectif en fonction de variables hors base. Cela est possible car les variables de base sont donn ees en fonction de variables hors base. On pourrait calculer z en posant x2 = 21/2 1/2x1 1/2x3 (x4 ce nest pas n ecessaire). Mais en fait en ecrivant l egalit e d enissant lobjectif comme une equation 3x1 + 4x2 = z (avec z comme second membre !) on peut obtenir les coecients par pivotage. On va noter cette equation Lz et on va remarquer que on peut l ecrire comme 3x1 + 4x2 = z z0 avec z0 = la valeur de lobjectif pour la solution de base associ ee au syst` eme respectif (dans ce cas (x1 = 0, x2 = 0, x3 = 21, x4 = 12), donc z0 = 0.) Et cela est possible toujours car en exprimant z en fonction de variables hors base seulement, celles-ci sont toutes nulles dans la solution de base donc on obtient que 0 = z z0 , ce qui correspond bien ` a la valeur de z associ ee ` a la solution de base. Donc dans notre cas, apr` es pivotage (ce qui revient ` a Lz Lz 4L1 ) on obtient x1 2x3 = z 42. Donc la valeur de z pour la nouvelle solution de base est z = 42 sup erieure ` a la valeur pr ec edente (z = 0). Ecrivons le nouveau programme : 1 1 21 2 x1 + x2 + 2 x3 = 2 1 3 1 2 x1 2 x3 + x4 = 2 x1 2x2 = z 42 On constate quil est encore possible daugmenter z en augmentant x1 . Donc on va choisir comme variable entrante x1 , et pour d eterminer la variable sortante on calcule min(21/2 : 1/2; 3/2 : 1/2) = 3 donc il sagit de la deuxi` eme equation ce qui correspond ` a la variable de base x4 . Donc le pivot est 1/2 le coecient 1 de x1 dans la deuxi` eme equation. On doit eectuer les transformations L2 2L2 , L1 L1 2 L2 , Lz Lz 3L2 . On obtient x2 + x3 x4 = 9 x1 x3 + 2x4 = 3 x3 2x4 = z 45 On constate que le nouvel ensemble de base est {1, 2} la solution de base est (x1 = 3, x2 = 9, x3 = 0, x4 = 0) et que tous les coecients de z sont n egatifs donc la solution de base est optimale.

12

En eet, notre nouveau syst` eme est equivalent au syst` eme x1 + 2x2 + x3 = x1 + x2 + x4 = 3x1 + 4x2 = Alors pour toute solution admissible on doit avoir x3 z (x1 = 3, x2 = 9, x3 = 0, x4 = 0) = 45 0, x4

initial 21 12 z 0 donc (x1 , x2 , x3 , x4 ) admissible.

45x3 2x4 = z (x1 , x2 , x3 , x4 )

Donc on a bien zmax = 45 et x 1 = 3, x2 = 9 est la solution optimale du programme initial (ou il faut ajouter x3 = 0, x4 = 0) pour le programme transform e sous la forme standard.

Exercice 1. R esoudre le m eme probl` eme par la m ethode g eom etrique et comparer avec les etapes parcourues dans la m ethode du simplexe. Les calculs pr ec edents sorganisent sous la forme des tableaux : x1 1 1 3
1 2 1 2

x2 2 1 4 1 0 0 1 0 0

x3 1 0 0
1 2 1 2

x4 s.m. 0 1 0 0 1 21 12 0
21 2 3 2

v.d.b. x3 x4 z x2 x4 z x2 x1 z

1 0 1 0

2 0 42 1 1 9 1 2 3 1 2 45

3.2

Le cas g en eral

Consid erons un programme standard et supposons connu un ensemble de base B = {i1 , . . . , im } admissible. Notons N = {j1 , . . . jnm } = {1, . . . , n} \ B lensemble hors base. On peut donc admettre que le programme est donn e sous la forme r eduite associ ee ` a lensemble de base B : max z = cx s.c. On a z = cx =
i=1 n 1 xB + A B AN xN xB 0, xN 1 = A B b 0

ci xi =
iB

ci xi +
iN

ci xi = cB xB + cN xN

1 N = A1 AN et b = A avec cB = [ci1 cim ] et cN = [cj1 cjnm ]. Posons aussi A B b. On a xB = B N xN + A b donc N )xN + cB b = dN xN + zB z = (cN cB A

13

N et zB = cB avec dN = cN cB A b. Donc le probl` eme consiste ` a maximiser z sachant N xN xB + A dN x N = b = z zB

et que xN 0, xB 0. Lhypoth` ese B ensemble de base admissible signie que b 0. A noter que la solution de base est donn ee par xN = 0, xB = b et la valeur de lobjectif z associ ee ` a cette solution est zB . Le tableau du simplexe associ e` a la base B est (` a une permutation de colonnes pr` es) de la forme : xB Im 0 xN N A dN s.m. b v.d.b. xB

zB z

On constate que la premi` ere colonne du tableau est inutile ! Donc en pratique il sut de garder que le tableau xN s.m. v.d.b. N A dN b xB

zB z

mais, pour la commodit e du calcul manuel, on va utiliser le tableau complet. Rappelons nous que, une fois etablit le pivot, le passage dun tableau simplexe au tableau suivant seectue en utilisant les r` egles : (i) On divise la ligne du pivot par le pivot (ii) Tous les autres el ements du nouveau tableau (y compris le second membre ou la ligne de z ) sobtiennent en utilisant la r` egle du rectangle (on peut all eger les calculs en sachant que les colonnes des variables de base corresponds aux colonnes de la matrice unit e). finition 9. 1. Un ensemble (solution) de base est dit non d De eg en er e si
1 A a-dire le second membre du syst` eme r eduit b>0 B b > 0 cest-`

autrement dit si toutes les variables de base ont des valeurs strictement positives dans la solution de base xB > 0. 2. Un programme lin eaire est non d eg en er e si toute solution de base admissible est non d eg en er ee. Th eor` eme 4. (Crit` ere doptimalit e) Si dN 0

alors la solution de base admissible xN = 0, xB = b est optimale.


monstration. Soit (x1 , . . . , xn ) une solution admissible quelconque et soit (x De ee 1 , . . . , xn ) la solution de base associ

` a B . Comme xi

0 i, on a

z (x 1 , . . . , xn ) = zB

zB + dN xN = z (x1 , . . . , xn ).

14

Si le crit` ere doptimalit e nest pas v eri e on va proc eder soit ` a une it eration, soit on va d ecouvrir que sup z = +. Supposons maintenant que dn j N ) strictement positive. 0. Cela signie quil existe au moins une composante dj de dN (avec

Le choix de la variable entrante Consid erons alors lindice j N tel que dj = max{dk | k N }. On a les possiblit es suivantes : (a) a kj 0 k = 1, . . . , m.

Dans ce cas

Lensemble admissible est non born e et sup z = + j est une En eet, on constate que (x1 , . . . , xn ) avec xk = 0 k N \ {j }, xj = t et xB = b tA solution admissible pour tout t > 0. On a z (x1 , . . . , xn ) = zB + tdj + quand t +. (b) Il existe k {1, . . . , m} tel que a kj > 0. Dans ce cas on va proc eder ` a une it eration, la variable entrante etant xj . On va supposer maintenant que : lensemble de base B est non d eg en er e

Le choix de la variable sortante xi (avec i = ip ) est d etermin e dapr` es la r` egle suivante : bp bk = min{ |a kj > 0} a pj a kj

p v erie

En eet, en utilisant cette r` egle on constate que, en eectuant le pivotage avec le pivot apj , la nouvelle solution de base donn ee par xN = 0 et xB = b est admissible car, dapr` es les formules (5) on aura ace ` a la r` egle utilis ee (v erication tr` es simple : exercice !) Montrons que par cette bk 0 pour tous les k gr es lit eration. On it eration la valeur de z augmente. En eet notons (x1 , . . . , xn ) la solution de base apr` b j 0 avec in egalit e stricte si le choix de la ligne du pivot (i.e. de a donc xk = 0 k N \ {j } et xj = la variable sortante) est unique. En eet, dans ce cas pour tout l = p tel que a lj > 0 on a bp bl > a lj a pj ce qui entra ne gr ace ` a (5) que bl = a lj bp bl a lj a pj 15 >0

et

bp bp = > 0. a pj 0 on a bl bl > 0.

Pour les autres indices l pour lesquels a lj

Donc, si le choix de la variable sortante est unique on a xj = bp > 0, ce qui donne : z (x1 , . . . , xn ) = zB + dj x j > zB . On a donc montr e aussi que, si le choix de la variable sortante est unique alors le nouvel ensemble de base B est non d eg en er e (avec lhypoth` ese qui a et e faite que B est non d eg en er e). Montrons aussi que si le choix de la variable sortante nest pas unique alors B est d eg en er e. En eet, dans ce cas il existe au moins deux indices di erents p et q tels que bp bq bk = = min{ |a kj > 0} a pj a qj a kj Si on choisit par exemple a pj comme pivot on obtient que bq = a qj donc B est d eg en er e. On a montr e entre autre le suivant. Th eor` eme 5. Supposons que le programme lin eaire est non d eg en er e et quil admette au moins une solution optimale (avec zmax ni). Alors ` a chaque it eration du simplexe le choix de la ligne du pivot (i.e. de la variable sortante) est unique et lobjectif cro t strictement. Comme le nombre densembles de m base est ni (il est inf erieur ou egal ` a Cn ), il r esulte quapr` es un nombre ni dit erations lalgorithme va trouver une solution de base optimale. Cela montre aussi que, si le programme admet une solution optimale, alors il existe toujours une solution de base optimale. bp bq a qj a pj = 0,

3.3

Un regard plus attentif sur le simplexe

Dans la section pr ec edente on a fait plusieurs suppositions pour simplier lexpos e: (a) La connaissance dun tableau initial, i.e. la connaissance a priori dune solution de base admissible donc du syst` eme r eduit associ e. (b) Le probl` eme non d eg en er e. On a vu que sous ces conditions lalgorithme du simplexe, apr` es un nombre ni dit erations, va trouver une solution optimale, ou bien il va indiquer que la valeur optimale est innie. Maintenant on va essayer de voir quelles sont les issues quand ces hypoth` eses ne sont pas v eri ees. On peut supposer, sans restreindre la g en eralit e gr ace aux r esultats pr esent es au chapitre 1, section 1.5, que le probl` eme initial soit donn e sous la forme canonique. 16

(PC) o` u A = (aij ) Mm,p (R), b =

max z = cx Ax s.c. x b1 b2 . . . bm

b 0 x1 x2 . . . xp .

, c = [c1 c2 cp ] et x =

En introduisant les variables d ecart (xp+1 , . . . , xn ) on obtient le programme standard max z = cxN AxN + Im xB = b, xN avec xN x1 . =x= . . xp 0, xB 0

xp+1 . et xB = . . . xn

Il est evident que B = {p + 1, . . . , n} est un ensemble de base pour ce syst` eme et xB sont les variables de base. Si b 0 alors la solution de base xB = b, xN = 0 est admissible et on peut d emarrer le simplexe. Le cas int eressant pour nous est celui o` u b 0, i.e. il existe au moins un indice j tel que bj < 0. Dans ce cas xB = b, xN = 0 est une solution de base mais non admissible. Pour trouver donc une solution de base admissible et le syst` eme associ e, ou le cas ech eant pour d eterminer si lensemble admissible est vide, il existe plusieurs m ethodes dont une des plus importante fera lobjet de la section suivante.

3.4

La m ethode du Simplexe en deux phases

Cette m ethode consiste ` a introduire une variable articielle x0 et ` a r esoudre dans un premier temps un probl` eme auxiliaire dit la phase I. max w = x0 AxN + Im xB ex0 = b s.c. xN 0, xB 0, x0 0

(PA) o` ue= 1 1 . . .

a voir que ce programme admet la valeur optimale wmax = 0 si et seulement . Il est facile `

1 si le programme initial est r ealisable (i.e. lensemble admissible est non vide). Dautre part, en prenant xB = b, xN = 0, x0 = 0 on obtient une solution de base non admissible du programme auxiliaire (PA). On va eectuer un pivotage non standard en consid erant x0 comme variable entrante et en l echangeant avec la variable de base la plus n egative. Donc la colonne du pivot va etre la colonne de x0 et la ligne p du pivot est donn ee par bp = min bj .
j =1 m

17

On constate facilement que le tableau ( ou lensemble de base B ) obtenu apr` es cet echange sera admissible (i.e. avec le second membre 0) car bj = bj bp 0 j. De cette mani` ere on peut d emarrer le simplexe pour le probl` eme auxiliaire. Le probl` eme auxiliaire (PA) admet toujours une solution optimale car : 1. Son ensemble admissible est non vide (on vient de trouver une solution de base admissible) 2. lobjectif w est born e sur lensemble admissible car w(x1 , . . . , xn , x0 ) = x0 admissible (x1 , . . . , xn , x0 ). 0 pour toute solution

Donc, si la valeur optimale du probl` eme auxiliaire (PA) wmax < 0 alors cela signie que le probl` eme initial (PC) nadmet pas de solution admissible. Si la valeur optimale wmax = 0 alors le probl` eme initial admet des solutions admissibles. On a donc x0 = 0. 1. Si x0 est dans la base, cela signie que le tableau optimal du probl` eme auxiliaire (PA) est d eg en er e. Dans ce cas, en eectuant un pivotage non standard, en prenant comme variable sortante x0 (avec nimporte quelle variable entrante) on constate que le second membre ne change pas, donc on va trouver une autre solution de base admissible qui ne contient pas x0 en base, donc on est dans le cas suivant : 2. Si x0 est hors base alors le tableau optimal de (P A) nous fournit directement un tableau associ e` a une solution de base admissible du probl` eme initial (PC). Il reste seulement ` a exprimer z en fonction des variables hors base, et on peut d emarrer le simplexe pour le probl` eme initial (PC).

3.5

D eg en erescence

Quand lalgorithme du simplexe trouve un tableau (base) d eg en er e il peut y avoir le ph enom` ene de cyclage, cest-` a-dire, ` a partir dune base d eg en er ee, apr` es quelques it erations (pendant ce temps lobjectif est stationnaire, car on passe dune base d eg en er ee ` a une autre base d eg en er ee) on retrouve le tableau de d epart. Pour mieux comprendre, consid erons lexemple suivant, dans lequel on adopte les r` egles suivantes en pr esence de candidats multiples pour les variable entrantes et sortantes : (i) La variable entrante est toujours la variable hors base qui a le plus grand coecient dans la fonction objectif. En cas dex aequo, on prend la variable de plus petit indice. (ii) En cas de plusieurs variables de base candidates ` a la sortie de la base, on prend la variable de plus petit indice. x1 x2 x3 x4 x5 x6 x7 s.m. 0.5 5.5 2.5 9 1 0 0 0 0.5 1.5 0.5 1 0 1 0 0 1 0 0 0 0 0 1 1 10 57 9 24 0 0 0 0 premi` ere it eration x1 x2 x3 x4 x5 x6 x7 s.m. 1 11 5 18 2 0 0 0 0 4 2 8 1 1 0 0 0 11 5 18 2 0 1 1 0 53 41 204 20 0 0 0 deuxi` eme it eration v.d.b. x1 x6 x7 z v.d.b. x5 x6 x7 z

18

x1 x2 x3 x4 x5 x6 x7 s.m. 1 0 0.5 4 0.75 2.75 0 0 0 1 0.5 2 0.25 0.25 0 0 0 0 0.5 4 0.75 2.75 1 1 0 0 14.5 98 6.75 13.25 0 0 troisi` eme it eration x1 x2 x3 x4 x5 x6 x7 s.m. 2 0 1 8 1.5 5.5 0 0 1 1 0 2 0.5 2.5 0 0 1 0 0 0 0 0 1 1 29 0 0 18 15 93 0 0 quatri` eme it eration x1 x2 x3 x4 x5 x6 x7 s.m. 2 4 1 0 0.5 4.5 0 0 0.5 0.5 0 1 0.25 1.25 0 0 1 0 0 0 0 0 1 1 29 9 0 0 10.5 70.5 0 0 cinqui` eme it eration x1 x2 x3 x4 x5 x6 x7 s.m. 4 8 2 0 1 9 0 0 0.5 1.5 0.5 1 0 1 0 0 1 0 0 0 0 0 1 1 22 93 21 0 0 24 0 0 sixi` eme it eration x1 x2 x3 x4 x5 x6 x7 s.m. 0.5 5.5 2.5 9 1 0 0 0 0.5 1.5 0.5 1 0 1 0 0 1 0 0 0 0 0 1 1 10 57 9 24 0 0 0 0

v.d.b. x1 x2 x7 z

v.d.b. x3 x2 x7 z

v.d.b. x3 x4 x7 z

v.d.b. x5 x4 x7 z

v.d.b. x5 x6 x7 z

On retrouve le tableau initial. Lalgorithme du Simplexe va donc r ep eter inlassablement la m eme suite de six it erations sans jamais atteindre la solution optimale, laquelle existe cependant avec zmax = 1 comme on verra dans la suite. Evidemment ce ph enom` ene de cyclage est n ecessairement li e ` a la pr esence de bases d eg en er ees, car autrement, comme on la vu (th eor` eme 5) si le probl` eme est non d eg en er e alors ` a chaque it eration lobjectif augmente strictement ce qui emp eche le cyclage (pourquoi ?). On ne va pas etudier ici les m ethodes qui pr eviennent le cyclage. Signalons cependant la r` egle extr emement simple du plus petit indice qui a et e d ecouverte par R. Bland. Cette r` egle consiste ` a choisir syst ematiquement comme variable entrante et comme variable sortante la variable xk qui correspond au plus petit indice k parmi les multiples candidats. Donc, pour la variable entrante on doit choisir parmi toutes les variables 19

dont le coecient dans la ligne objectif est positif, celle qui a le plus petit indice. Pour la variable sortante, il sagit, en cas dex-aequo, de choisir la variable de base qui a le plus petit indice. Appliquons cette m ethode ` a lexemple pr ec edent. On constate que jusqu` a la cinqui` eme it eration on a utilis e cette r` egle, car pour la variable entrante on a eu un seul choix. Par contre ` a la cinqui` eme it eration, dapr` es la r` egle de Bland, on doit choisir x1 comme variable entrante, et donc la variable sortante va etre x4 . On propose comme exercice de continuer les calculs avec cette r` egle. Il semble que le cyclage est un ph enom` ene assez rare dans la pratique de sorte que beaucoup de logiciels mettant en oeuvre la m ethode du simplexe ignorent totalement ce probl` eme.

3.6

Exercices

Exercice 2. On consid` ere une entreprise produisant deux biens en quantit es x1 et x2 respectivement sous contraintes de capacit es de production relatives ` a deux ateliers de production. Le programme lin eaire correspondant ` a la maximisation de la marge est le suivant : max z = 3x1 + 5x2 2x2 12 3x1 + 2x2 18 s.c. x1 , x2 0 (a) D eterminer graphiquement le sommet optimal et donner ses coordonn ees. (b) Mettre le probl` eme sous la forme d egalit e par lajout de variables d ecart. (c) A loptimum, quelles sont les variables en base et les variables hors base ? (d) Des progr` es importants dans lorganisation du travail permettraient de r eduire le temps dusinage du second bien dans le premier atelier. La premi` ere contrainte devient donc x2 12, o` u , le nouveau temps dusinage, est un param` etre inf erieur ` a 2. Jusqu` a quelle valeur peut-on faire descendre pour que la m eme base (cest-` a-dire les m emes variables de base) reste optimale ? (e) En dessous de cette valeur quel est le sommet optimal (donner ses coordonn ees) et quelle est la nouvelle base (cest-` a-dire quelles sont les nouvelles variables de base) ? Exercice 3. R esoudre avec la m ethode du simplexe : max z = 3x1 + 2x2 + 4x3 x1 + x2 + 2x3 2x1 + 3x3 s.c. 2 x + x2 + 3x3 1 x1 , x2 , x3 Exercice 4. R esoudre avec la m ethode du simplexe : max z = 5x1 + 6x2 + 9x3 + 8x4 5 x1 + 2x2 + 3x3 + x4 x1 + x2 + 2x3 + 3x4 3 s.c. x1 , x2 , x3 , x4 0 Exercice 5. R esoudre avec la m ethode du simplexe : max z = 2x1 + x2 20

4 5 7 0

s.c.

x1 2x2 + x3 = 2 2x1 + x2 + x4 = 2 x1 , x2 , x3 , x4 0

Exercice 6. R esoudre avec la m ethode du simplexe en deux phases : max z = x1 x2 + x3 2x1 x2 + 2x3 4 2x1 3x2 + x3 5 s.c. x1 + x2 2x3 1 x 1 , x2 , x 3 0 Exercice 7. R esoudre avec la m ethode du simplexe en deux phases : max z = 3x1 + x2 x1 x2 x1 x2 s.c. 2x1 + x2 x1 , x2 ,

1 3 2 0

Dualit e en programmation lin eaire

Dans ce chapitre on va voir comment on peut, ` a partir dun programme lin eaire donn e (qui sera appel e programme primal), construire un autre programme lin eaire appel e programme dual. Entre ces deux programmes il y a des liens tr` es etroits : si un des deux a une solution optimale lautre en poss` ede egalement une et les valeurs optimales des deux programmes co ncident. Des fois la r esolution du probl` eme dual peut etre plus simple que celle du probl` eme primal (par exemple on conna t une solution de base admissible pour le dual et on peut d emarrer directement le simplexe, tandis que pour le primal on est oblig es dutiliser les deux phases). Mais, ` a part lint er et math ematique ou num erique pour l etude du probl` eme dual, un aspect tr` es important est linterpr etation economique des variables duales. Ces variables repr esentent des co uts marginaux et peuvent etre consid er ees comme laugmentation maximale du revenu, par rapport ` a la solution optimale, qui r esulterait de lutilisation dune unit e suppl ementaire de lun des biens.

4.1

La construction du programme dual

Consid erons un programme lin eaire sous la forme canonique appel e programme primal : (P) o` u A = (aij ) Mm,p (R), b = Mp,1 (R). max z = cx Ax s.c. x b1 b2 . . . bm b 0 x1 x2 . . . xp

Mm,1 (R), c = [c1 c2 cp ] M1,p (R) et x =

21

Le programme dual a m variables not ees 1 , . . . , m et on va ranger ces variables sous la forme dun (viii) vecteur ligne : = [1 m ] M1,m (R). A noter la di erence par rapport aux variables primales qui sont donn ees sous la forme dun vecteur colonne x. Alors le programme dual est d eni par (D) min w = b A s.c. c 0

On constate la correspondance suivante entre les deux probl` emes :

`me primal Proble maximisation p variables (vecteur colonne) m contraintes variable n j 0 contrainte n i (ligne de) coecients fonction objectif second membre

`me dual Proble minimisation p contraintes m variables (vecteur ligne) contrainte n j variable n i 0 second membre (colonne de) coe. fonction objectif

Tab. 1 Les correspondences entre le probl` eme primal et le probl` eme dual On peut constater facilement (exercice !) que le dual du probl` eme dual cest le probl` eme primal(ix) .

4.2

Le th eor` eme de dualit e

Consid erons les probl` emes en dualit e (P) et (D) d enis dans la section pr ec edente. Une propri et e essentielle du probl` eme dual est que toute solution admissible du dual fournit une borne sup erieure sur la valeur optimale du primal. faible) Soit une solution admissible du dual et x une solution admissible Th eor` eme 6. (Dualite du primal. Alors on a (6) z = cx b = w, autrement dit chaque valeur admissible du crit` ere dual est un majorant pour chaque valeur admissible du crit` ere primal. monstration. Soit donc x tel que Ax De
b, x 0 et soit v eriant A Ax b = w. b, 0. On a

z = cx

(viii) Math ematiquement parlant on peut interpr eter le vecteur colonne des inconnues du probl` eme primal comme un el ement de lespace vectoriel Mp,1 (R) tandis que le vecteur ligne des inconnues du probl` eme dual repr esente un el ement dun espace dual Mm,1 (R) = M1,m (R), i.e. lensemble de formes lin eaires sur Mm,1 (R) identi ees ` a des matrices ligne ; le produit scalaire de dualit e etant donn e par le produit dune matrice ligne (la forme lin eaire) et une matrice colonne (la variable) (ix) Indication : Ecrire le dual comme un probl` eme de maximisation dans lespace primal Mp,1 (R), i.e. max(bT )T s.c. AT T cT ; T 0 etc.

22

Corollaire 1. Soit x une solution admissible du primal et une solution admissible du dual. Si cx = b alors x est une solution optimale de (P) et une solution optimale de (D). monstration. Soit x une solution admissible de (P) et une solution admissible de (D). On a gr De ace ` a (6), pour le
couple (x, ) : z = cx et pour le couple (x , ) : w = b b = cx cx = b.

A noter que la r eciproque nest pas evidente, ` a savoir que si x est une solution optimale du primal et une solution optimale du dual alors les valeurs optimales co ncident. Cest lobjet du th eor` eme central de la programmation lin eaire. forte) Si le probl` Th eor` eme 7. (La dualite eme primal (P) a une solution optimale x alors le probl` eme dual (D) a une solution optimale et les valeurs optimales co ncident : (7) autrement dit z = w . monstration. Gr De ace au corollaire pr ec edent il sut de trouver une solution admissible telle que
cx = b. 0 B B Introduisons des variables d ecart xE = B @ forme standard max z = cx s.c. Ax + xE x 0, xE = b 0 xp+1 xp+2 . . . xn 1 C C ecrivons donc (P) sous la C Mnp,1 (R) (donc E = {p + 1, . . . , n}) et A

cx = b

Consid erons le tableau optimal du simplexe(x) correspondant ` a une solution de base (ensemble de base B ) optimale. Le tableau est associ e au syst` eme 1 1 xB + A B AN xN = AB b 1 1 z = cB AB b + (cN cB A B AN )xN On a Consid erons
1 z = cB A B b. 1 = cB A B .

Comme b = z , gr ace au corollaire 1, il sut de d emontrer que est admissible. On a z = b + (cN AN )xN . Comme le tableau est optimal on a que le co ut r eduit des variables de base est nul et le co ut r eduit des variables hors base est n egatif ou nul. Donc

pour j B \ E pour j N \ E

on a on a

dj = cj Aj = 0(xi) dj = cj Aj 0,

On accepte le fait que si un probl` eme lin eaire a une solution optimale alors il a une solution de base optimale (on a d emontr e ce r esultat seulement si le probl` eme est non d eg en er e). 1 (xi) car 0 = dB = cB cB A B AB = cB AB

(x)

23

donc c Dautre part, pour les variables d ecart on a que

A.

j BE j N E ce qui signie 0.

= =

dj = 0 (Im )j = 0 dj = 0 (Im )j 0,

Comme le dual du probl` eme dual est le probl` eme primal (propos e comme exercice avec indication), si le probl` eme dual a une solution optimale, alors le probl` eme primal en a une egalement. Donc on peut armer le suivant. Corollaire 2. Le probl` eme primal (P) a une solution optimale si et seulement si le probl` eme dual a une solution optimale. Le th eor` eme suivant, en d ecomposant la relation de dualit e forte (7) on obtient les conditions n ecessaires et susantes doptimalit e appel ees conditions de compl ementarit e. mentarite ) Soit x une solution admissible du probl` Th eor` eme 8. (Conditions de comple eme primal (P) et une solution admissible du probl` eme dual (D). Les conditions suivantes sont n ecessaires et susantes pour que x et soient optimales :
m

(8)

cj
i=1 p j =1

i aij

xj = 0,

j = 1, . . . , p

(9) monstration. De

aij xj bi = 0,

i = 1, . . . , m.

Condition susante. Supposons les conditions de compl ementarit e satisfaites. On peut les r ecrire comme : m X (10) cj xj = i aij xj j = 1, . . . , p
i=1

(11)

i bi =

p X j =1

i aij xj

i = 1, . . . , m.

En additionnant les egalit es (10) par rapport ` a j et les egalit es (11) par rapport ` a i, on obtient
p X j =1

cj xj =

p m X X j =1 i=1

i aij xj =

m X i=1

i bi

cest-` a-dire les relations de dualit e forte (7). Condition n ecessaire. Supposons x et optimales. Posons s i = bi
p X j =1

aij x j;

tj = ! tj

m X i=1

i aij cj .

On peut r ecrire les relations de dualit e forte (7) comme :


p X j =1

cj x j

= = = =

p m X X j =1 m X i=1 m X i=1 m X i=1 i=1

i aij

x j tj x j

p X j =1

aij x j

p X j =1

i (bi si ) i bi
m X i=1

p X j =1

tj x j
p X j =1

i si

tj x j =

m X i=1

i bi ,

24

la derni` ere egalit e provenant des relations de dualit e forte (7). Il r esulte que
m X i=1

i si +

p X j =1

tj x j = 0.

Or, comme

i , si , t j , xj

0, i, j, on obtient imm ediatement la conclusion.

. On obtient comme cons equence le r esultat suivant (qui est un cas particulier dun th eor` eme plus g en eral de programmation convexe) Th eor` eme 9. (Karush-Kuhn-Tucker) Une solution x admissible pour le probl` eme primal (P) est tels que : optimale si et seulement si il existe les nombres , . . . , m 1
m

(12)

cj
i=1

i aij

x j = 0,

j = 1, . . . , p

(13) et tels que : (14) i

p j =1

= 0, aij x j bi

i = 1, . . . , m.

c,

0.

monstration. Si x est optimale, par le th. de dualit De e forte, il existe solution optimale du dual (D). Cette solution
est donc admissible pour (D) est satisfait les conditions de compl ementarit e par le th. 8. R eciproquement, si v erie (14) alors est une solution admissible de (D). Si elle satisfait (12) et (13) elle satisfait les conditions de compl ementarit e. Donc x et sont toutes les deux optimales.

4.3

Interpr etation economique des variables duales

Consid erons un exemple de probl` eme o` u x1 , x2 repr esentent les quantit es de deux produits P1 et P2. Leurs marges respectives sont de 4 et 3. Les contraintes repr esentent des contraintes de production. Supposons la premi` ere contrainte soit une contrainte sur le stock de mati` ere premi` ere et la seconde une contraintes sur le nombres dheures de travail par jour. Plus pr ecis ement, pour produire une unit e du produit P1 on utilise 2 unit es de mati` ere premi` ere et 5 heures de travail, tandis que pour une unit e de P2 on a besoin de 1 unit e de mati` ere premi` ere et de 6 heures de travail. Le stock est de 3 unit es et le nombres dheures de travail par jour est de 11h. Donc on a le programme lin eaire suivant max z = 4x1 + 3x2 2x1 + x2 3 5x1 + 6x2 11 s.c. x1 0, x2 0.

(15)

Le chef dentreprise voudrait savoir ce que lui rapporterait le fait que son atelier soit ouvert une heure de plus par jour. Autrement dit, il voudrait conna tre laugmentation de sa marge b en eciaire si le deuxi` eme coecient du membre de droite passait de 11 ` a 12. Graphiquement, laugmentation de capacit e (ici horaire) se traduit par un d eplacement de la seconde contrainte vers la droite (voir gure 3) La solution optimale se d eplace du point A(1, 1) vers le nouveau point A correspondant ` a lintersection des droites 2x1 + x2 = 3 5x1 + 6x2 = 12

25

x2

A' A

O z'=51/7

x1

z=7

Fig. 3 Interpr etation des variables duales

La nouvelle solution optimale correspond ` a 6 9 A ( , ). 7 7 A cette nouvelle solution correspond une valeur de lobjectif de z =4 Laugmentation de lobjectif est de z = z z = Le probl` eme dual correspondant ` a (15) est min w = 31 + 112 21 + 52 4 1 + 62 3 s.c. 1 0, 2 0. 51 2 7= . 7 7 9 51 6 +3 = . 7 7 7

(16)

26

9 2 ( 1 , 2 ) = ( , ). 7 7 On voit que repr e sente laugmentation de lobjectif. Si on avait augment e la capacit e de stockage dune 2 unit e (i.e. de 3 ` a 4) sans augmenter le nombre dheures, on aurait pu constater une augmentation de 9 lobjectif egale ` a en eral on a le r esultat suivant : 1 = 7 . En g
`me composante du membre le taux daugmentation de la fonction objectif par rapport ` a la ie `me variable duale.(xii) A noter que de droite du probl` eme primal est egal ` a la valeur de la ie cette interpr etation ` a une limite de validit e : elle est valable tant que le m eme ensemble de base reste optimal. Par exemple si on continue ` a augmenter le nombre dheures de travail, au del` a de 18 heures de travail journalier, la solution optimale devient le point A (0, 3). Il ny a plus daugmentation de la fonction objectif au del` a. Au del` a de ce point la base optimale change et la solution optimale du dual change egalement. Elle devient ( ete egalement par le fait 1 , 2 ) = (3, 0). Cette nouvelle solution sinterpr` que une valeur nulle de la seconde variable duale signie que laugmentation de la capacit e de la seconde contrainte du primal ne permet plus daccro tre lobjectif. Les valeurs des variables duales sont appel ees co uts marginaux (en anglais shadow prices). A noter que si une contrainte et non satur ee, alors gr ace ` a la compl ementarit e on a que la variable duale correspondante est nulle ce qui montre que la valeur marginale est nulle, i.e. on na pas int er et ` a augmenter la capacit e si on na pas utilis e toutes les ressources ! Par contre si la co ut (valeur) marginal(e) est non nulle cela montre, gr ace ` a la compl ementarit e, que toutes les ressources ont et e utilis ees, donc une augmentation de la capacit e permettra daugmenter le b en ece.

La solution optimale du dual (16) est

4.4

Exercices
max z = 4x1 + 6x2 + 20x3 + 17x4 x1 + x3 + 2x4 10 x2 + 2x3 + x4 4 s.c. x1 , x2 , x3 , x4 0.

Exercice 8. Consid erons le probl` eme

Ecrire le probl` eme dual et le r esoudre graphiquement . En d eduire la solution optimale du probl` eme primal. Exercice 9. Consid erer le tableau Simplexe nal de lexercice 3. Remarquez que si lon prend loppos e des coecients des variables d ecart dans la ligne objectif, on obtient exactement la solution optimale du dual. V eriez et expliquez. Exercice 10. Montrer que si le probl` eme primal est sous la forme standard, alors les variables duales sont non contraintes en signe. Exercice 11. Pour le probl` eme ci-dessous, v eriez loptimalit e de la solution propos ee : max z = 7x1 + 6x2 + 5x3 2x4 + 3x5 x1 + 3x2 + 5x3 2x4 + 2x5 4 4x1 + 2x2 2x3 + x4 + x5 3 2x1 + 4x2 + 4x3 2x4 + 5x5 5 s.c. 3x1 + x2 + 2x3 x4 2x5 1 x1 , x2 , x3 , x4 , x5 0
(xii) Math ematiquement parlant cela traduit le fait que, ` a loptimum, en consid erant z comme fonction de (A, b, c) on a gr ace ` a la dualit e forte :

w z = = i. bi bi

27

4 2 5 Solution propos ee : x 1 = 0, x2 = , x3 = , x4 = , x5 = 0. 3 3 3

28