Vous êtes sur la page 1sur 7

Chapitre 4 Complments sur le simplexe e

4.1
4.1.1

Calcul dune Solution de base admissible


Principe

Si le probl`me ne donne pas une base admissible naturellement que faire ? On en fabrique e une avec des variables articielles qui ne correspondent ` rien mais permet de dmarrer le a e simplexe mais sur un probl`me auxiliaire qui a une solution annulant les variables artie cielles si et seulement si le probl`me initial a une solution. e On part dun probl`me en forme standard avec les coecients bi 0 (si ncessaire e e multiplier lquation par -1). Pour chaque quation on rajoute une variable ai et on va mie e nimiser la somme des ai (ou de mani`re quivalente maximiser sa ngation). Si le probl`me e e e e initial a une solution admissible alors le probl`me auxiliaire a une solution qui donne 0 e pour chaque ai . Max z = c.x A.x = b x0 demande ` rsoudre P a e Max = a1 a2 . . . am z = c.x I.a + A.x = b x, a 0

Cas 1 : le probl`me P a une solution optimale avec < 0. Alors P na pas de solution. e Cas 2 : le probl`me P a une solution optimale avec = 0. Alors P a une base admissible. e On eectue le simplexe pour liminer les ai . Deux sous-cas : e 1. on obtient une base admissible ne contenant pas de variable ai : on limine ceux-ci e et on a un tableau pour dmarrer le simplexe avec les variables initiales. e 1

CHAPITRE 4. COMPLEMENTS SUR LE SIMPLEXE 2. la base admissible contient encore des ai : ils valent 0 et alors la ligne correspondante est redondante. On llimine et on a une tableau pour dmarrer le simplexe avec les e e variables initiales (apr`s suppression des variables articielles). e

Remarque : dans le pivotage on ne fait jamais rentrer de ai . De plus il est inutile de calculer les coecients dun ai quon fait sortir.

4.2
4.2.1

Algorithme dual
Principe
primal Max z = cx Ax = b x0 dual Min = yb yA c y quelconques

On consid`re les deux probl`mes : e e

Si on a une base B alors y(B + N) (cB , cN ) c.a.d yB cB et yN cN On peut choisir y tel que yB = cB en prenant y = cB B 1 . De plus on a : cB B 1 N cN cest ` dire zj cj 0 pour tout j indice de variable hors-base. Ca signie donc que B a ralise loptimum SI B est admissible. e Cette remarque donne lieu ` lalgorithme dual du simplexe qui part dune situation o` a u zj cj 0 mais o` la base nest pas admissible (des bi sont < 0). Lalgorithme consiste ` u a chosir un pivot qui rendent les bi 0 tout en maintenant les zj cj 0 (situation duale de lalgorithme du simplexe).

4.2.2

Algorithme

Choix du pivot : choisir une ligne i tel que br < 0 et une colonne k telle que (i) ar,k < 0, (ii) (zk ck )/ar,k = Max{(zj cj )/ar,j | ar,j < 0} 1. Partir dun tableau avec zj cj 0 pour tout j hors base. 2. Chercher ` eectuer un pivotage a (a) r0 tel que br0 < 0 mais ar,j 0 pour tout j indice de variable hors-base, alors pas doptimum ni pour le dual donc pas de solution pour le primal, STOP.

4.3. ANALYSE DE LALGORITHME DUAL (b) r, br 0, alors la base actuelle donne loptimum qui est ni, STOP.

(c) un pivot existe avec les crit`res de choix donns prcdemment, eectuer le e e e e pivotage et aller en 2. Preuve de correction : Cas de pivotage. Comme ar,k < 0 la nouvelle valeur de br devient 0 (mais dautres peuvent changer de signe). Il faut montrer que zj cj reste 0 pour tout j. Le coecient apr`s pivotage est e (zj cj ) (aj,k /ar,k )(zk ck ) qui doit tre 0. e 1. si ai,k 0 on a bien une valeur 0. 2. si ai,k > 0 on obtient (zj cj )/aj,k (zk ck )/ar,k ce qui donne le rsultat. e Cas doptimum inni. A faire. Terminaison. on peut montrer que lalgorithme termine si on utilise une r`gle comme e la r`gle de Bland. e

4.3
4.3.1

Analyse de lalgorithme dual


Lecture des variables duales

On peut dterminer les variables dune solution optimale du dual en eectuant le sime plexe. On part dun probl`me en forme canonique : e Max z = cx Ax b x0 La matrice A est une suite de vecteurs colonne a1 , . . . , an . On obtient un probl`me en forme standard par ajout de variable dcart ei et chaque e e ei est associe ` la variable yi du dual. e a Max z = cx + 0.e Ax + Ie = b x, e 0

CHAPITRE 4. COMPLEMENTS SUR LE SIMPLEXE

ce qui donne une nouvelle matrice A = A, I de vecteurs colonne a1 , . . . , an , e1 , . . . , em quon peut crire a 1 , . . . , a n+m , et la base admissible de dpart est e1 , . . . , em . e e Pour la base B on a une forme tableau qui correspond pour z ` : a z = zO + (cB B 1 N cN )(xN ) Les coecients de xj dans z sont de la forme zj cj (et valent 0 pour les variables de base). Pour ej une variable dcart cj = 0 et le coecient vaut zj . De plus on a zj = cB B 1 ej e dans ce cas. cB B 1 est un vecteur y = (y1 , . . . , ym ) avec de plus yj = yej (car ej vaut 0 partout sauf sur sa j eme coordonne qui est 1). e A loptimum y = cB B 1 . En crivant y = (y1 , . . . , ym ) on a que la valeur de la j eme e composante est yj = cB B 1 ej . Do` les deux cas : u 1. Si ej est dans la base alors yj = 0 2. Si ej est hors base yj = zj cj Exemple. Le probl`me e Max z = 400x1 + 1200x2 10x1 + 20x2 1100 x1 + 4x2 160 x1 + x2 100 xi , ei 0 introduit trois variables decart e1 , e2 , e3 et aprs calculs, le tableau e z x1 x2 e3 e1 54000 20 = 60 1/5 25 1/20 15 3/20 e2 200 1 1/2 1/2

donne loptimum. Si (y1 , y2, y3) est la base duale associe on a y3 = 0 car e3 est dans e la base et y1 = 20, y2 = 200.

4.3.2

Interprtation conomique de lalgorithme dual e e

Dans un tableau xi = bi + . . . + (zk ck )(xk ) si on eectue lactivit de xk ` hauteur de 1 unit : e a e z z (zk ck ) = z + (ck zk ) ck ce que rapporte k, zk ce que coute k. z = ck zk est le co t marginal de lactivit k u e Pour k correspondant une variable d cart, alors lactivit est ctive et ck = 0 et e e z = zk

4.4. ANALYSE DE SENSIBILITE ET POST-OPTIMISATION

4.4

Analyse de sensibilit et Post-optimisation e

Souvent on est amen ` recalculer une solution car on modie les ressources ou les e a couts. Plutot que tout refaire on part de la solution dj` obtenue. ea

4.4.1

Modication des ressources


z = cB B 1 b + (cB B 1 N cN )(xN ) xb = B 1 b

On a calcul une base B qui donne loptimum : e

Si on modie b en b + b, lexpression de xb est modie en e xb = B 1 (b + b) et la fonction objectif devient z = cB B 1 (b + b) + (cB B 1 N cN )(xN ) Deux cas : 1. soit la base reste admissible et on a loptimum, 2. soit la base nest plus admissible, alors on peut utiliser lalgorithme dual (car les zj cj nont pas chang donc ils sont 0. e Seule petite dicult : calculer B 1 . e La base admissible de dpart du simplexe correspond ` des vecteurs a1 , . . . , am . La e a a base B donnant loptimum correspond ` dautres vecteurs ai1 , . . . , aim . B 1 correspond ` a lexpression des vecteurs de la nouvelle base dans lancienne : si un vecteur est dans les deux bases alors on a la colonne correspondante de la matrice identit. sinon on prend la e colonne qui correspond `u vecteur. a Exemple. Max z = 400x1 + 1200x2 10x1 + 20x2 + e1 = 1100 x1 + 4x2 + e2 = 160 x1 + x2 + e3 = 100 xi , ei 0 On trouve une base B = {x1 , x2 , e3 } et le tableau z 54000 x1 = 60 x2 25 e3 15 e1 20 1/5 1/20 3/20 e2 200 1 1/2 1/2

CHAPITRE 4. COMPLEMENTS SUR LE SIMPLEXE

Remarque on a les valeurs de la base duale associe : y1 = 20, y2 = 200, y3 = 0 e 1 On va devoir calculer B : la colonne e1 donne lexpression de la premi`re colonne e de B 1 , la colonne e2 donne la deuxi`me colonne de B 1 et comme e3 est dans les deux e bases on a la colonne correspondante de lidentit. Do` e u B
1

1/5 1 0 = 1/20 1/2 0 3/20 1/2 1

1. Modication 1 : on modie b en 1050, 160, 100. Le nouveau calcul des valeurs de la base donne x1 50 x2 = 27, 5 e3 22, 5 donc la base reste admissible avec un nouvel optimum quon calcule z0 = 53000 et la base duale associe ne change pas. On a z = y b e 2. Modication 2 : on modie b en 1400, 160, 100. Le nouveau calcul des valeurs de la base donne x1 120 x2 = 10 e3 30 qui nest plus admissible. Le tableau est : z 60000 x1 = 120 x2 10 e3 30 On demarre lalgorithme dual : z x1 x2 e1 e3 e2 56000 400/3 800/3 = 80 20 200 e1 20 1/5 1/20 3/20 e2 200 1 1/2 1/2

La base a chang et loptimum a t modi de z = 2000 y b = 6000 e ee e 3. Modication 3 : on modie b en 1400, 160, 100. On peut rsoudre sans calcul : e3 = e 15 > 0 donc x1 + x2 < 100 et augmenter la ressource 3 ne peut amliorer z = e 1 100x1 + 1200x2 . En eet z = y b = y3 b = 0.b et B b reste 0.

` 4.5. COMPLEXITE DU PROBLEME

4.4.2

Modication de la fonction de Co t u

Dans ce cas les coecients de la fonction conomique sont changs en c + c. Seule la e e premi`re ligne z change : e zj cj reste 0 pour tout j : alors la base B donne encore loptimum, et on donne la nouvelle valeur z0 . un des zj cj est ngatif : on demarre alors lalgorithme primal. e

4.5

Complexit du probl`me e e

Deux questions se posent : 1. Quelle est la complexit de lalgorithme du simplexe ? e 2. Quelle est la complexit du probl`me de programmation linaire. e e e

4.5.1

Complexit du Simplexe e

Il existe un probl`me de programmation linaire ` 3d variables, 2d quations tel que e e a e d lalgorithme du simplexe peut prendre O(2 ) tapes. e

4.5.2

Complexit du Probl`me de PL e e

Ce probl`me est rest ouvert longtemps et na t rsolu que rcemment par Kachian en e e ee e e 1979. Le probl`me est polynomial. Lalgorithme propos par Khachian bas sur la mthode e e e e des ellipsoides sest rvl inecace en pratique mais un nouvel algorithme a t propos e ee ee e par Karmarkar en 1984 : contrairement au simplexe qui se dplace dans le polytope de e sommet en sommet, lalgorithme se dplace en des points intrieurs du polytope ce qui e e permet daller plus vite vers loptimum. En pratique lalgorithme de Karmarkar est ecace, mais pour le moment le travail de programmation et la meilleure connaissance du simplexe font que celui-ci est lalgorithme implement. En particulier le simplexe se comporte bien e vis ` vis de lajout de contraintes. a