Vous êtes sur la page 1sur 9

Chp. 5.

Programmation Lin eaire


Ce chap tre introduit lalgorithme standard de r esolution dun probl` eme de programmation lin eaire (abr eg e en PL) : (PL ) Max r x s.c. Ax = b Cx d o` u:

r est un vecteur de I R m.

A est une p m matrice, C une q m matrice, b et d des vecteurs de I R p et I R q respectivement.

Le probl` eme (PL ) est un probl` eme quadratique d eg en er e dont le hessien du crit` ere est nul. Cest donc un probl` eme convexe qui admet des solutions d` es que sa valeur est nie (chp. 4 thm 4.1 p.33). Il peut alors en avoir une innit e. R` egle pratique Pour v erier quun probl` eme lin eaire admet des solutions, il sut de v erier que lensemble admissible est non vide, et le crit` ere minor e sur lensemble admissible.

5.1
5.1.1

Fondements th eoriques
Sommets dun poly` edre

Th eor` eme 5.1 Un point x du poly` edre : A = { x I R m | A x = b, C x d } est un sommet de A si et seulement si la matrice des contraintes satur ees au point x est de rang m. Preuve : Il sut de v erier l equivalence des assertions suivantes : 1. x1 , x2 A x1 = x2 ]0, 1[ x = x1 + (1 ) x2 . 2. u = 0 x + u A et x u A. 3. u = 0 A u = 0 et |Cl u| dl Cl x, (l=1. . . q).

D enition Un sommet du poly` edre : A = { x I R m | A x = b, C x d } est un point x qui ne peut pas s ecrire comme combinaison convexe de deux points de A distincts de x.

4. u = 0 A u = 0 et (dl Cl x = 0 Cl u = 0).

5. la rang de la matrice des contraintes satur ees au point x est strictement inf erieur ` a m.

2 Tout poly` edre A de I R m d eni par p contraintes d egalit e et q contraintes din egalit e m p lin eaires a donc au plus Cq sommets. Il peut nen avoir aucun. Cest le cas, en particulier, si : p + q < m.

40

CHP. 5. PROGRAMMATION LINEAIRE

D enition Un sommet de A est dit non d eg en er e sil sature exactement m contraintes lin eairement ind ependantes, et d eg en er e sil sature plus de m contraintes.

5.1.2

R esultat fondamental de la PL
A C est

Th eor` eme 5.2 Si le probl` eme lin eaire PL admet des solutions, et si la matrice de rang m, lune des solutions au moins est un sommet de lensemble admissible.

Preuve : Soit x une solution saturant un nombre maximal de contraintes du probl` eme. Il sut de prouver que la matrice des contraintes satur ees au point x est de rang m. Supposons quelle ne le soit pas. Il existe n ecessairement un vecteur u = 0 tel que les points : x + t u, et : x t u restent admissibles pour tout r eel t > 0 susamment petit : il sut de choisir u dans le noyau de la matrice des contraintes satur ees au point x , qui, par hypoth` ese, nest pas r eduit au vecteur nul. Mais alors, l egalit e : rx = (1/2) r ( x + t u) + (1/2) r g ( x t u) = sup(PL ) implique que : x + t u, et : x t u sont aussi solutions. Sinon, lune des deux valeurs : r ( x + t u), ou : r ( x t u) du crit` ere devrait n ecessairement etre strictement sup erieure ` a la valeur du probl` eme (PL ). Par hypoth` ese, il existe alors au moins un indice l correspondant ` a une contrainte din egalit e non satur ee au point x telle que : Cl u = 0 (sinon u serait dans le noyau de : Quitte ` a remplacer u par : u, on peut supposer : Cl u > 0 . Pour t susamment grand, le point : x + t u cessera donc d etre admissible. En xant t egal ` a la valeur maximale pour laquelle le point : x + t u reste admissible, on obtient une solution de (PL ) qui sature au moins une contrainte de plus que x , une contradiction. 2 R` egle pratique Pour r esoudre un probl` eme de PL en (( petite )) dimension, il sut de lister les sommets de lensemble admissible, et de comparer les valeurs du crit` ere en ces points. A est de rang m est n ecessaire : C Contre-exemple 5.1 Le probl` eme trivial : Max (x + y ) admet une innit e de solutions s.c. x + y 2 bien que lensemble admissible nait aucun sommet. Remarque : Lhypoth` ese que la matrice Elle est toujours v eri ee lorsque le probl` eme est sous forme standard (pourquoi ?). Le probl` eme pr ec edent s ecrit par exemple sous forme standard : Max (x1 x2 + y1 y2 ) s.c. x1 x2 + y1 y2 + z = 2 x1 , x2 , y1 , y2 , z 0 et les sommets : (2, 0, 0, 0, 0), et : (0, 0, 2, 0, 0) de lensemble admissible sont solutions. R` egle pratique Lorsque le probl` eme (PL ) est sous forme standard, la condition de rang est toujours v eri ee, et tout sommet de lensemble admissible a au moins m p composantes nulles. Dans le language de la PL, on dit quun tel point est une solution de base r ealisable.
A C

qui, par hypoth` ese, est r eduit ` a {0}).

5.1. FONDEMENTS THEORIQUES

41

5.1.3

Algorithme du (( simplexe ))

Le th eor` eme 5.2 montre que pour trouver une solution du probl` eme (PL ), il sut, quitte ` le r a ecrire sous forme standard, de maximiser le crit` ere de ce probl` eme sur lensemble ni des sommets de lensemble admissible. Cest un probl` eme doptimisation discr` ete ou combinatoire, du domaine de la Recherche Op erationnelle (RO). La necessit e de disposer dun algorithme de r esolution est claire : lensemble admissible dun (( petit )) probl` eme peut etre (( tr` es grand )). Un probl` eme de dimension dix par exemple, comportant dix contraintes din egalit e, pourra avoir, apr` es introduction des variables d ecarts 10 et mise sous forme standard, jusqu` a : C20 = 184.756 sommets. Lalgorithme du simplexe, introduit en 1947 par G. Dantzig, d ecrit un moyen (( intelligent )) de se d eplacer de sommet en sommet, jusqu` a trouver une solution en un nombre ni d etapes.

5.1.4

G eom etrie du simplexe

Th eor` eme 5.3 Tout poly` edre born e A non vide de I R m est lenveloppe convexe de ses sommets (i.e. le plus petit convexe contenant les sommets de A). Preuve : On montre que pour tout entier : n m, lenveloppe convexe des sommets de A contient tous les points x de A en lesquels le rang de la matrice des contraintes satur ees est n (0 si aucune contrainte nest satur ee en x). La d emonstration proc` ede par r ecurrence d ecroissante sur n. Cest vrai pour : n = m puisque, par d enition, ces points sont des sommets. Supposons que ce soit vrai pour un entier : 0 < n m, et soit : x un point de A en lequel le rang de la matrice des contraintes satur ees est : n 1 (ne saturant aucune contrainte si : n = 1). Choisissons alors un vecteur u non nul dans le noyau de la matrice des contraintes satur ees au point x, qui est de dimension au moins egale ` a` a : m n + 1 1. Par construction, le point : x + t u reste admissible pour tout r eel t positif ou n egatif susamment petit, et sature les m emes contraintes que x. Puisque, par d enition, A est un poly` edre born e, le plus grand intervalle ferm e : I = [t1 , t2 ] tel que : x + t u reste admissible pour tout t dans I est born e. Les points : x1 = x t1 u, et : x2 = x + t2 u sont admissibles, saturent les m emes contraintes que x et, n ecessairement, au moins une contrainte suppl ementaire qui nest donc pas combinaison lin eaire des contraintes satur ees par x. t1 t2 x1 + x2 pour faire appara tre x comme combiIl sut alors d ecrire : x =
t1 + t2 t1 + t2

naison de deux points x1 et x2 de A en lesquels le rang de la matrice des contraintes satur ees est au moins n. Par hypoth` ese de r ecurrence, ces deux points sont dans lenveloppe convexe des sommets de A, donc le point x egalement. 2 Corollaire 5.4 Lorsque lensemble admissible A dun probl` eme lin eaire est un simplexe, lensemble des solutions est lenveloppe convexe des sommets de A quil contient. Preuve : Lensemble des solutions est le simplexe : o` u v est la valeur du probl` eme, et les sommets de S sont n ecessairement des sommets de A . En eet, si un sommet x de S s ecrivait : x = t x1 + (1 t) x2 , o` u x1 et x2 sont deux points S = {x I R m | A x = b, C x d, r x = v }

42 de A distincts de x, on aurait : v = r x = t r x1 + (1 t) r x2

CHP. 5. PROGRAMMATION LINEAIRE

do` u, n ecessairement : r x1 = r x2 = v (sinon lun des deux r eels r x1 ou r x2 doit etre strictement plus grand que la valeur du probl` eme), et donc : xi S , i = 1, 2, une contradiction. 2

5.2
5.2.1

Principe de lalgorithme
Solution de base r ealisable

On suppose que : le probl` eme est mis sous forme standard : (PL ) Min r x s.c. A x = b x0 de sorte que la condition de rang ( 5.1.2 thm.5.2) est satisfaite

A est une p m matrice de rang p 1

Pour trouver un sommet du poly` edre admissible, il faut alors (5.1.1 thm.5.1) annuler m p composantes de x, et reporter dans le syst` eme : A x = b pour obtenir un syst` eme r esiduel de p equations ` a p inconnues, de rang p. La matrice B de ce syst` eme est la base. Cest une p p matrice inversible fabriqu ee en extrayant p colonnes lin eairement ind ependantes de la matrice A. Les variables correspondantes sont les variables de base. Les variables r esiduelles sont les variables hors base. Lorsque toutes les composantes de la solution xB du syst` eme : B x = b sont positives ou nulles, le point dont les coordonn ees de base sont les coordonn ees de xB et les coordonn ees hors base sont nulles, est un sommet du poly` edre admissible, dans le langage de la PL : une solution de base r ealisable.

5.2.2

Dictionnaires

On reprend lexemple : Min (x1 + x2 + x3 + x4 + x5 + x6 ) s.c. 2 x1 + x2 + x3 126 x2 + 2 x4 + x5 60 x2 + 3 x3 + x4 + 3 x5 + 5 x6 72 x1 , x2 , x3 , x4 , x5 , x6 0


Si cette condition, nest pas satisfaite, certaines lignes de la matrice A sont combinaisons lin eaires des autres et peuvent etre simplement supprim ees.
1

5.2. PRINCIPE DE LALGORITHME

43

du probl` eme de d ecoupe du chp. 1 (ex.1.3 p.11). En introduisant des variables d ecarts, ce probl` eme se r ecrit sous forme standard : (PL ) Min (x1 + x2 + x3 + x4 + x5 + x6 ) s.c. 2 x1 + x2 + x3 y1 = 126 x2 + 2 x4 + x5 y2 = 60 x2 + 3 x3 + x4 + 3 x5 + 5 x6 y3 = 72 x1 , x2 , x3 , x4 , x5 , x6 , y1 , y2 , y3 0 Une solution de base r ealisable : (x1 , x2 , x3 , x4 , x5 , x6 , y1 , y2 , y3 ) = (63, 0, 0, 30, 0, 8.4, 0, 0, 0) est obtenue ` a partir de la strat egie na ve : x1 = 63, x4 = 30, et : x6 = 9 (Voir : ex. 1.3 p.11) en (( oubliant )) quil sagit dun probl` eme en nombres entiers. Le choix des variables de base peut etre repr esent e sous la forme dun tableau. Dans le langage de la PL, on appelle ce tableau un (( dictionnaire )) : dico 1 x1 x4 x6 101.4 63 30 8.4 0 . 1 x2 0 . 5 x2 0 . 5 x2 0 . 1 x2 0 . 1 x3 0 . 5 x3 0 . 6 x3 0 . 5 y1 +0.5 y1 0 . 5 x5 0 . 5 x5 0 . 4 y2 +0.5 y2 0 . 1 y2 0 . 2 y3

+0.2 y3

les trois derni` eres lignes calculent les variables basiques en fonction des variables hors base. La premi` ere ligne donne lexpression du co ut r eduit, obtenu en exprimant, dans le crit` ere, les variables basiques en fonction des variables hors base. La solution de base r ealisable est obtenue lorsque toutes les variables hors base sont mises ` a z ero. Elle est donc lue dans la seconde colonne du tableau. La valeur correspondante du crit` ere est : 101.4.

5.2.3

Variable entrante, variable sortante

Lid ee de la m ethode du simplexe est, partant dune solution de base r ealisable, daugmenter la valeur dune des variables hors base, la variable entrante, de fa con ` a diminuer (si on minimise) ou ` a augmenter (si on maximise) la valeur du crit` ere. Lexpression du co ut r eduit en fonction des variables hors base qui apparait dans la premi` ere ligne du dictionnaire, permet de choisir la variable entrante : ici, la variable x2 , qui permet de faire d ecro tre le 2 plus rapidement possible le crit` ere . La lecture des deux premi` eres colonnes du dictionnaire montre que la valeur de x2 peut etre augment ee jusqu` a la valeur maximale : 30/0.5 = 60 sans violer les contraintes de positivit e du probl` eme. La variable x4 devient alors nulle : cest la variable sortante. La nouvelle base sera form ee des colonnes : 1, 2, et : 6 de la matrice A, et le dictionnaire mis ` a jour.

5.2.4

Mises ` a jour du dictionnaire

La seconde ligne du premier dictionnaire, qui donnait la variable sortante x4 en fonction des anciennes variables hors base est mise ` a jour en alternant les r oles des variables entrantes et sortantes : x2 et x4 , qui passent de part et dautre du trait vertical s eparant les deux premi` eres colonnes du tableau. La nouvelle ligne ainsi obtenue est alors utilis ee pour mettre ` a jour les lignes restantes. On obtient :
2

La variable x3 est une alternative possible.

44 dico 2 x1 x2 x6 95.4 33 60 2.4 0 . 1 x3 0 . 5 x3 0 . 6 x3 +0.2 x4 x4 2 x4 +0.2 x4

CHP. 5. PROGRAMMATION LINEAIRE +0.1 x5 +0.5 x5 x5 0. 4 x5 +0.5 y1 +0.5 y1 +0.3 y2 0 . 5 y2 + y2 0 . 2 y2 0 . 2 y3

+0.2 y3

La nouvelle variable entrante est : x3 , et la nouvelle variable sortante : x6 . Une nouvelle mise a jour du dictionnaire conduit au tableau : ` dico 3 x1 x2 x3 95 31 60 4 +1/6 x4 +5/6 x4 2 x4 +1/3 x4 +1/6 x5 +5/6 x5 x5 2/3 x5 +1/6 x6 +5/6 x6 5/3 x6 + 1/2 y 1 + 1/2 y 1 +1/3 y2 1/3 y 2 + y2 1/3 y 2 +1/6 y3 1/6 y 3 +1/3 y3

Le co ut r eduit apparait alors comme une fonction croissante des variables hors base, et ne peut donc pas etre diminu e. Une solution : ( x1 , x 2 , x 3 , x 4 , x 5 , x 6 , y 1 , y 2 , y 3 ) = (31, 60, 4, 0, 0, 0, 0, 0, 0) est trouv ee, et la valeur du probl` eme est : v (PL ) = 95.

5.3
5.3.1

Mise en oeuvre pratique


Description matricielle des dictionnaires

Le choix dune base B induit une d ecomposition de la matrice A de la forme : (B | N ), o` u N est la p (m p) matrice form ee des colonnes de A nentrant pas dans la composition de la base. Cette d ecomposition induit une d ecomposition de tout vecteur v de I R m de la forme : v = (vB | vN ), o` u: vB est le vecteur de I R p dont les coordonn ees sont les coordonn ees de v correspondant aux variables de base. vN est le vecteur de I R mp dont les coordonn ees sont les coordonn ees de v correspondant aux variables hors base. Avec ces notations, chaque dictionnaire s ecrit : dico xb rB B 1 b B 1 b + rN x N rB B 1 N x N B 1 N x N

Il calcule le vecteur xB des variables de base en fonction du vecteur xN des variables hors base. Au point courant : xN = 0, xB = B 1 b, et la valeur : rB B 1 b du crit` ere est lue ` a lintersection de la premi` ere ligne et de la premi` ere colonne du tableau.

5.3.2

Choix des variables entrante et sortante

Pour d eterminer la variable entrante, il faut : 1. r esoudre le syst` eme d equation : B y = rB . 2. chercher la coordonn ee maximale (si on maximise) ou minimale (si on minimise) du vecteur : rN N y = rN N (B )1 rB , qui multiplie le vecteur xN des variables hors base dans lexpression du c out r eduit, ` a la premi` ere ligne du dictionnaire.

5.3. MISE EN OEUVRE PRATIQUE Pour d eterminer la variable sortante, il faut : 2. r esoudre le syst` eme : B z = c

45

1. extraire des A la colonne c correspondant ` a la variable entrante

= Arg Max t 3. calculer le pas maximal autoris e:t s.c. t 0 xB t z 0 et en diminuant les variables de base de En augmentant la variable entrante de 0 ` at xB ` a xB t z , on obtient un point x tel que : toutes ses coordonn ees sont positives ou nulles z ) + N xN = B ( xB t z ) + t c = b A x = B ( xB t

lune au moins de ses coordonn ees de base sannule : cest la variable sortante3

5.3.3

Convergence de lalgorithme

Pour actualiser la base, il sut de remplacer, dans la matrice B , la colonne correspondant ` la variable sortante par la colonne entrante c de la matrice A. Le point fondamental, a garantissant que le nouveau point obtenu est bien un sommet du poly` edre admissible, est que lactualisation conserve linversibilit e de la matrice B : Lemme 5.1 La matrice obtenue en rempla cant, dans B , la colonne correspondant ` a la variable sortante par la colonne entrante de A reste inversible. Preuve : Dans le dictionnaire courant, la variable entrante apparait toujours avec un coecient strictement n egatif dans la ligne correspondant ` a la variable sortante, et il est donc toujours possible dactualiser cette ligne en calculant la variable entrante en fonction de la variable sortante et des variables hors base r esiduelles. Le r esultat permet dactualiser les autres lignes du tableau en calculant les variables rest ees dans la base en fonction des nouvelles variables hors base. Toutes ces op erations etant inversibles, les p derni` eres lignes du dictionnaire actualis e forment un nouveau syst` eme de p equations equivalent au syst` eme : A x = b, calculant le vecteur xB des nouvelles variables de base en fonction du vecteur xN des nouvelles variables hors base. Apr` es actualisation, on a toujours, en outre, au point courant : B xB = b, et : xN = 0. Pour toute solution z du syst` eme : B z = b, le point y obtenu en posant : yB = z , et : yN = 0 v erie : A y = B yB + N yN = B z = b, donc, aussi, le syst` eme equivalent form e par les p derni` eres lignes du dictionnaire actualis e. Puisque ce dernier calcule les coordonn ees de base en fonction des coordonn ees hors base, et que : yN = xN , on doit n ecessairement avoir : z = yB = xB . Cela signie que xB est lunique solution du syst` eme : B z = b, et implique que le noyau de B est r eduit ` a {0}, donc que B est inversible. 2 Les syst` emes : B y = rB , et : B z = c admettent donc toujours une unique solution. Tant que le point courant reste un sommet non d eg en er e, toutes ses coordonn ees de base restent strictement positives, et le pas maximal calcul e reste, ` a chaque etape, strictement positif. Tant que la solution nest pas atteinte, la valeur du crit` ere d ecro t alors strictement, et il est
Lorsque plusieurs variables de base deviennent simultan ement nulles, la variable sortante peut etre choisie arbitrairement parmi celles devenant nulles.
3

46

CHP. 5. PROGRAMMATION LINEAIRE

donc impossible davoir deux fois la m eme base, ce qui garantit la convergence de lalgorithme en un nombre ni d etapes : il nexiste en eet quun nombre ni de bases possibles. Ce sera toujours le cas, en particulier, lorsque le poly` edre des points admissibles nad4 mettra aucun sommet d eg en er e.

5.3.4

D eg en erescence

Lexistence de sommets d eg en er es peut cependant conduire ` a changer de base sans diminuer la valeur du crit` ere. Au pire, lalgorithme peut boucler, cest-` a-dire revenir, apr` es un certain nombre de changements de base, ` a une base d eja utilis ee, sans avoir jamais diminu e la valeur du crit` ere, et r ep eter ind eniment la m eme suite de changements de base. Exemple 5.2 Min (x1 + x2 + x3 + x4 ) s.c. x1 + x2 x3 = 0 x2 + x4 = 1 x3 + x5 = 1 xi 0, (i = 1..5) Cest un probl` eme sous forme standard, pour lequel la matrice : 1 1 1 0 0 A= 0 1 0 1 0 0 0 1 0 1 1 1 1 B= 0 1 0 0 0 1

d enissant les contraintes d egalit e est de rang : p = 3, et dont lunique solution est le sommet (0, 0, 0, 1, 1) du poly` edre admissible. Si on initialise lalgorithme du simplexe avec la base :

correspondant au choix des variables de base : x1 , x2 , et x3 , et des variables hors base : x4 , et x5 , le premier dictionnaire s ecrit : dico 1 x1 x2 x3 2 1 1 + x4 x4 x4 2 x5 x5 x5

Lorsquon tente dactualiser ce dictionnaire, on se rend compte que lalgorithme reste bloqu e au point courant : (0, 1, 1, 0, 0), qui est un sommet d eg en er e du poly` edre admissible, et se contente d echanger ind eniment variable de base et variable hors base parmi les trois variables : x1 , x4 , et : x5 , sans que le crit` ere diminue.

5.3.5

Initialisation

Lorsquil est dicile de trouver une solution de base r ealisable pour initialiser lalgorithme, on peut en trouver une de la mani` ere suivante :
4

Cela revient ` a supposer que toute sous-matrice carr ee dordre p extraite de A est inversible.

5.3. MISE EN OEUVRE PRATIQUE 1. quitte ` a multiplier certaines lignes de la matrice A par : 1, on se ram` ene au cas : b 0 . 2. on r esout alors, avec lalgorithme du simplexe, le probl` eme lin eaire :
p

47

Min
k=1

yk

s.c. A x + y = b x, y 0 Lalgorithme peut etre initialis e avec la solution de base r ealisable : (x, y ) = (0, b), et admet toujours des solutions d` es que lensemble admissible du probl` eme initial est non vide. Plus g en eralement, cette proc edure, connue sous le nom de : (( phase 1 de lalgorithme du simplexe )), peut etre utilis ee pour trouver, lorsquil en existe, une solution positive dun syst` eme d equations : A x = b donn e.

Vous aimerez peut-être aussi