Algorithme du simplex dual Analyse de sensibilit´ e Quelques Rappels Simplex r´ evis´ e Programmation Lin´ eaire - Cours 5 P. Pesneau [email protected]Universit´ e Bordeaux 1 Bˆ at A33 - Bur 265 P. Pesneau [email protected]Programmation Lin´ eaire - Cours 5
37
Embed
Programmation Lin aire - Cours 5ppesneau/cours/proglin/cours5.pdf · R´eoptimisation post-optimale : Si on perturbe un probl`eme ... L’analyse de sensibilit´e consiste `a analyser
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
La condition d’optimalite du primal est verifiee ⇔ la solution dualeassociee est realisableLa solution du primal n’est pas realisable ⇔ la solution dualeassociee n’est pas optimale.On va donc appliquer le simplex dual.Variable sortante (entrante pour le dual) : x4 (y4)Variable entrante (sortante pour le dual) : x3 (y3)P. Pesneau [email protected] Programmation Lineaire - Cours 5
Eviter la phase I : Si un dictionnaire est primal realisable, onapplique le simplex primal.Si un dictionnaire n’est pas realisable mais satisfait auxconditions d’optimalite, on utilise le simplex dual.Si un dictionnaire n’est ni realisable, ni optimal, alors onapplique la phase I.
Simplex primal plus efficace ? : La complexite empirique dusimplex primal est en Θ(m + log n). Il est ainsi preferabled’avoir la plus grande valeur entre m et n dans le log. Si unprobleme a plus de contraintes que de variables, il estpreferable d’utiliser le simplex dual.
Reoptimisation post-optimale : Si on perturbe un problemeet qu’on perd la realisabilite, tout en gardant l’optimalite, ilest indique d’appliquer le simplex dual.
Est-ce que la base reste realisable ?Oui : b = B−1b ≥ 0 est independant de c .
Est-ce que la base reste optimale ?Verifier c ′ = c ′N − c ′BB
−1N ≤ 0.
Note : si c ′B = cB, alors
c ′N = c ′N − c ′BB−1N
c ′N − cN + cN − c ′BB−1N
∆N + cN
Reoptimisation : Si les conditions d’optimalite ne sont passatisfaites, comme on garde une base realisable, on appliquel’algorithme du simplex primal a partir de la base courante.P. Pesneau [email protected] Programmation Lineaire - Cours 5
Algorithme du simplex dualAnalyse de sensibilite
Quelques RappelsSimplex revise
Modification de capacite
b → b′ = b +∆
Est-ce que la base reste optimale ?Oui : c = cN − cBB
−1N ≤ 0 est independant de b.
Est-ce que la base reste realisable ?Verifier b′ = B−1b′ ≥ 0.
Noter que :
b′ = B−1b′
B−1b + B−1∆b + B−1∆
Reoptimisation : Les conditions d’optimalite restant verifiees, sion perd la realisabilite, on applique l’algorithme du simplex dual apartir de la base courante.P. Pesneau [email protected] Programmation Lineaire - Cours 5
Algorithme du simplex dualAnalyse de sensibilite
Quelques RappelsSimplex revise
Ajout d’une variable (colonne)
Ajout de x0 → (c0, a0)
La nouvelle variable est ajoutee hors-base. La solution (x , x0 = 0)reste realisable.La base reste-t-elle optimale ?
Verifier que le cout reduit de la nouvelle variable
c0 − cBB−1a0 ≤ 0.
Noter que y∗ = cBB−1 = −cE est disponible dans le dictionnaire
optimal.Reoptimisation : Comme la base est realisable, si le cout reduitde la nouvelle variable est > 0, on n’a pas l’optimalite. On appliquel’algorithme du simplex primal a partir de la base courante.Attention a bien recalculer a0 = B−1a0.P. Pesneau [email protected] Programmation Lineaire - Cours 5
Algorithme du simplex dualAnalyse de sensibilite
Quelques RappelsSimplex revise
Ajout d’une contrainte (ligne)
Ajout de dx ≤ d0
Ajouter une contrainte revient a ajouter une variable y0 dans ledual. Quand on ajoute une contrainte, on ajoute aussi une nouvellevariable d’ecart qui sera en base (cout reduit nul). La nouvelle basereste optimale.
La base reste-t-elle realisable ?Verifier que dx∗ ≤ d0.
Reoptimisation : Comme la base reste optimale (dual-realisable),si la contrainte n’est pas satisfaite, on aura une solution irrealisable(non optimale dans le dual) → simplex dual.
Note : lors de l’ajout de la nouvelle contrainte, il faudra penser aidentifier chaque variable de base presente dans la contrainte avecleur valeur en fonction des variables hors-base.P. Pesneau [email protected] Programmation Lineaire - Cours 5
Question : Dans quelle mesure puis-je modifier ma quantite de laiten stock sans que cela change la realisabilite ou l’optimalite de labase ?Changer b n’a d’influence que sur la realisabilite de la base (et surla valeur de l’objectif) mais pas sur l’optimalite.
Question : On veut produire un nouveau yaourt nature et sucre.Chaque kilo de ce yaourt necessitera l’utilisation de 2 kilos de laitet 1 kilo de sucre. A partir de quel prix ce yaourt sera-t-il rentable ?Ici, on va ajouter une variable x6 hors-base. Pour que sa productionsoit rentable, il faut que son cout reduit dans la base precedementoptimale soit > 0.Soit c6 le profit realise sur ce nouveau yaourt. Calculons
Question : On veut maintenant prendre en compte la capacite dela chambre froide ou sont stockes les yaourts. Cette chambre froidepeut contenir au plus 400 kilos de yaourt. Quelle est l’influence surla solution optimale.Il s’agit ici d’ajouter une contrainte :
x1 + x2 ≤ 400
On peut tout d’abord remarquer que la contrainte est violee par lasolution optimale.Si x7 est la variable d’ecart associee a cette on ctrainte, on ajoute :
Trouver une variable sortante s en augmentant la variable entrantejusqu’a la valeur t pour laquelle une variable de B s’annule :max {t ≥ 0 : B−1b − B−1N
.,kt ≥ 0}.
Calculer d = B−1N.,k en resolvant le systeme Bd = N
.,k
3 1 01 1 04 3 1
d1d2d3
=
214
Ce qui donne dT = (0.5 0.5 0.5).b = B−1b, la valeur courante de xB est disponible. Calculermax{t ≥ 0 : tdi ≤ bi , i = 1, . . . ,m}
= min{ bidi, i = 1, . . . ,m : di > 0}
= min{ 540.5
, 630.5
, 150.5
}On obtient tmax = 30 pour s = 7.x7 sort de la base.
Soit B, xB et B une base initiale et la solution associee.
1 Resoudre yEB = cB.2 Choisir une variable k ∈ N telle que
ck = ck − yEA.,k > 0.S’il n’en existe pas, la solution est optimale, STOP.
3 Resoudre Bd = A.,k .
4 Trouver tmax = max{t ≥ 0 : xB − td ≥ 0}.S’il n’en existe pas, le probleme est non-borne, STOP.Sinon, on choisi une variable s qui tombe a zero dansxB − tmaxd .
5 Poser xB = xB − tmaxd et remplacer xs par xk = tmax dans xBPoser B = (B \ {s}) ∪ {k} et remplacer la colonne s de B parA.,k .