Sunteți pe pagina 1din 5

Reoptimizarea şi parametrizarea în programarea liniară

Reoptimizări în programarea liniară

Se modelează activitatea unui agent economic cu modelul (PPL):


max(min) f = cx
Ax = b - adusă deja la forma standard
x≥0
Prin rezolvarea cu una din metodele specificate anterior se obţine tabloul simplex de
~B
optimizare, ultimul tablou conţinând soluţia de bază x optimă (în coloana V.V.B.),
~ B ~ −1
soluţia duală w - pe linia ( z Bj − c j ) , inversa bazei B în dreptul coloanelor care au

format iniţial baza.


a) Modificarea “costurilor” c → c' = c + δc
~B ~ −1
Pornim de la observaţia că soluţia de bază x = B b găsită în ultimul tabel simplex
optim (UTSO) nu se modifică, dar indicatorii de optim, z Bj − c j se modifică, deoarece
~ −1
conform relaţiei cunoscute avem: z Bj − c j = c B ⋅ B ⋅ a j − c j

B ~ −1
Aceşti indicatori devin: z 'j − c 'j = c B' ⋅ B a j − c 'j

Concluzie.
'
-dacă noile valori ( z Bj − c 'j ) sunt toate pozitive – pentru (PPL) de maxim sau negative,
~B
pentru (PPL) de minim ⇒ programul optim iniţial x nu se modifică
B
-dacă există ( z 'j − c 'j ) negativi pentru (PPL) de maxim sau pozitivi pentru (PPL) de
~B
minim ⇒ programul x nu mai este optim.
Se reia (UTSO) al (PPL) iniţiale în care vechile costuri (c) se înlocuiesc cu cele noi (c’) şi, pe
acest nou tabel simplex, se aplică algoritmul simplex primal (ASP) până la obţinerea noii soluţii
'
~B
optime x .
b) Modificarea “resurselor”: b → b ' = b + δb
Dacă vectorul b se modifică devenind b ' = b + δb , atunci soluţia optimă se modifică:
B
~' ~ −1 ~ −1 ~B ~ −1
x = B b ' = B (b + δ b ) = x + B δ b
~ −1
Optimalitatea ei, însă nu se modifică, deoarece z − c j = cB ⋅ B a j − c j nu conţine
B
j

modificările (δ b ) .
Rezultă deci:
~ 'B
-noua soluţie poate rămâne admisibilă (x ≥ 0) şi cum este optimă aceasta va fi noua
~ 'B
soluţie optimă x ;
~ 'B
-noua soluţie x poate fi neadmisibilă (are componente negative).
~ 'B
Atunci trebuie îmbunătăţită cu (ASD), deoarece x este o soluţie de bază dual
realizabilă.
Procedăm astfel:
~ B ~ −1 ~ −1
-calculăm modificarea soluţiei optime iniţiale: δ x =B δ b cu B citită în (UTSO)
al (PPL) iniţială
~ 'B ~B ~B
-dacă noua soluţie x = x + δ x este nerealizabilă ⇒ construim noul tablou simplex
~B ~ 'B
din (UTSO) al problemei iniţiale, înlocuind în coloana “V.V.B.” pe x cu x , apoi
aplicăm (ASD).
~ *B
Se continuă aplicarea (ASD) până la obţinerea soluţiei optime x .

c) Introducerea unor noi activităţi în programul agentului economic

Parametrizarea în programarea liniară

a) Parametrizarea vectorului “costurilor”, c (λ )


max(min) f = c(λ ) ⋅ x

 Ax = b
 (1)
x ≥ 0
Pentru o valoare λ = λ 0 (de obicei λ0 = 0 ) se obţine (PPL) iniţială, pentru care
~ B0
determinăm o soluţie optimă x din (UTSO) al acesteia.
Modificarea costurilor pentru parametrizare are efecte similare cu cele de la reoptimizare:
~ B0 ~ B0
soluţia x nu se modifică (deoarece x = B0−1b nu conţine c (λ ) ), dar optimalitatea – da;

avem z Bj (λ ) − c j (λ ) = c B (λ ) ⋅ B0−1 ⋅ a j − c j (λ ) (2)


0 0

Concluzie.
~ B0
Dacă problema este de maxim, programul x rămâne program optim, pentru
 _
  _
 este soluţia sistemului:
(∀)λ ∈ λ0 , λ0  , unde intervalul λ 0 , λ 0 
_  _ 

z Bj0 (λ ) − c j (λ ) ≥ 0
____
c B0 (λ ) ⋅ B0−1 ⋅ a j ≥ c j (λ ), j = 1, n (2’)

În cazul problemei de minim, λ 0 , λ 0  este soluţia sistemului


_

 _ 
____
−1
z Bj0 (λ ) − c j (λ ) ≤ 0 [i.e. c 0 (λ ) ⋅ B0 ⋅ a j ≤ c j (λ ), j = 1, n ].
B

_
Cercetăm soluţiile problemei pentru λ 〉 λ 0 sau λ 〈 λ 0 .
_

_
Pentru λ 〉 λ 0 observăm că măcar o inecuaţie

z kB0 (λ ) − c k (λ ) nu mai verifică cerinţele (2’).


~
B0
Soluţia x 0 nu mai este optimă şi o îmbunătăţim folosind ASP până când găsim noua
~ B1
soluţie de bază optimă x .
_
Aceasta rămâne valabilă (spunem că este stabilă) pentru valorile λ ∈ [λ1 , λ 1 ] unde
~

_ _
λ 0 = λ1 , de la care am pornit, iar λ 1 se găseşte din sistemul:
~
z Bj1 (λ ) − c j (λ ) ≥ 0 ⇒ c B1 (λ ) B1−1 a j ≥ c j (λ ) , pentru max
____
j = 1, n

şi z Bj (λ ) − c j (λ ) ≤ 0 ⇒ c B (λ ) B1−1 a j ≤ c j (λ ) , pentru min


1 1

____
j = 1, n

Se determină astfel o partiţionare a intervalului admisibil al valorilor parametrului λ , de


_ _ _ _
forma [λ −1 , λ −1 ], [λ 0 , λ 0 ], [λ1 , λ1 ],... unde λ j = λ J +1
_ _ _ _

(adică extremitatea superioară a unui interval, coincide cu cea inferioară a intervalului


următor).
_
Punctele λ j (sau λ j ) se numesc puncte critice, iar intervalele [λ , λ j ]
_
se numesc
_ j

_ Bj
intervale de stabilitate a programului optim x , găsit pe fiecare asemenea interval.

b) Parametrizarea vectorului resurselor


max(min)f = cx
 Ax = b(λ )

 x ≥ 0, λ ∈ D

Pentru valoarea particulară λ = λ 0 a parametrului se obţine problema iniţială, care a fost


_ B0
rezolvată (sau se rezolvă). Fie x , soluţia ei optimă.
_ B0
Cum optimalitatea lui x nu se modifică prin
parametrizarea vectorului resurselor, b(λ ) , deoarece
_ B0
z Bj0 − c j = c B0 ⋅ B0−1 a j − c j nu depind de λ ⇒ soluţia x , rămâne mereu optimă, dar nu

_ B0
întotdeauna realizabilă, deoarece x (λ ) = B0−1 ⋅ b(λ ) poate avea şi componente negative.

Concluzie
_ B0
. x este soluţie optimă (şi admisibilă) ⇔
_ _
λ ∈ [λ 0 , λ 0 ] , unde λ 0 , λ 0 se determină din sistemul B0 ⋅ b(λ ) ≥ 0 .
−1

_ _
_ _ B0
Pentru λ 〉 λ 0 ⇒ există o componentă xr (λ ) a soluţiei x (λ ) = B0−1 ⋅ b(λ ) negativă. Se

aplică ASD şi această componentă iese din bază, intrând altă componentă, determinată cu
criteriul de intrare ASD.
_ B1
Fie x (λ ) noua soluţie; aceasta este optimă, dar pentru a fi admisibilă trebuie să
~ B1
îndeplinească condiţia x (λ ) ≥ 0 .
_
Se rezolvă acest sistem şi se determină noul interval de stabilitate λ ∈[λ1, λ1 ] unde
_

_
λ1 = λ 0 etc.
_

Analog pentru λ 〈λ0 .


_

S-ar putea să vă placă și