Documente Academic
Documente Profesional
Documente Cultură
I. PROGRAMARE LINIARA
5.Algoritmul simplex dual Exist situaii n care pentru rezolvarea unui program liniar, dispunem de o soluie de baz care nu este admisibil. Urmtoarele consideraii au drept scop s pun n eviden o alt clas de soluii de baz cu care se poate opera ntr-o manier asemntoare celei n care lucreaz algoritmul simplex descris n paragraful 4. 5.1 Admisibilitate primal i dual Fie (P) un program liniar n form standard: n aij x j = bi i = 1,..., m j =1 ( P) x j 0 j = 1,..., n n (max) f = c j x j j =1
Ax = b x 0 (max) f = cx
(vezi notaiile matriciale(3.3.1)) Fie B o baz a programului (P), I mulimea indicilor coloanelor din B, J mulimea indicilor coloanelor din A care nu sunt n B. n seciunea 3.5 am scris (P) n forma:
(max) f = f c j x j j J ( PB ) xi + aij x j = bi j J xi 0 , i I ; x j 0 , j J
(max) f = f c S x S B S x + Sx = b B S x 0 , x 0
(vezi notaiile (3.5.2-3.5.7)), numit forma explicit a programului (P) n raport cu baza B. S considerm acum dualul programului (P): m aij ui c j j = 1,..., n i =1 (Q) ui oarecari , i = 1,..., m m (min) g = bi ui i =1
uA c u oarecare (min) g = ub
77
(vezi notaiile din 2.2) Aducem sistemul de inegaliti uA c la forma standard introducnd variabilele de abatere v1, v2, ..., vn reunite n vectorul linie v.
m i aij ui v j = c j uA v = c =1 ( FSQ) ui oarecari , i = 1,..., m; v j 0 j = 1,..., n u oarecare , v 0 (min) g = ub m (min) g = bi ui i =1 Partiionnd: v = v B ,vS
cu v B = [vi ]i I
, vS = vj
[ ]
j J
] = [c
,c
uB v B = c B S S uS v = c
(511) .. (512) ..
( c B B 1 + v B B 1 ) S v S = c S v S v B B 1 S = c B B 1 S c S v S v B S = c S (cu notaiile 3.5.2-3.5.7) Folosind din nou (5.1.3) eliminm u din funcia obiectiv dual:
78
I. PROGRAMARE LINIARA
variabilele originale ui , i=1,...,m fiind legate de variabilele vj , j=1,...,n prin relaia (5.1.3). Programul (QB) se va numi forma explicit a dualului (Q) n raport cu baza B. Pentru a sublinia simetria existent ntre problemele (PB) i (QB) le vom scrie alturat att scalar ct i matricial: xi + aij x j = b i i I j J ( PB ) xi 0 , i I ; x j 0 , j J (max) f = f jJ c j x j v j aij vi = c j j J i I (QB ) v j 0 , j J ; vi 0 , i I (min) g = f + i vi b i I
c
x B + Sx S = b B x 0 , x S 0 S S (max) f = f c x
c
vS vB S = c S S B v 0 , v 0 B (min) g = f v b
Observaie: Cu ajutorul relaiei (5.1.3) am rescris dualul (Q) n alte variabile care sunt supuse condiiei de nenegativitate ca i variabilele programului primal (P). Putem vorbi acum de soluii i soluii admisibile pentru programul (Q) i cnd facem acest lucru ne referim la forma echivalent (QB).
Prin analogie cu conceptul de soluie a primalei (P) asociat bazei B introducem termenul de soluie a dualei (Q) asociat bazei B anulnd n sistemul restriciilor lui (QB) variabilele "secundare" vi , i I : vB 0 vS = c S vi=0 , i I vj=c j , j J Rezult imediat c valoarea funciei obiectiv duale n soluia construit este constanta f . Folosind (5.1.3), soluia dualei (Q), corespunztoare soluiei (5.1.4) este:
(5.1.4)
79
(5.1.5)
Mai departe, exact ca n demonstraia teoremei A a metodei simplex ( vezi seciunea 4.1 ) soluia (5.1.4), presupus admisibil, va fi optim dac: b 0 bi 0 , i I Reamintim c soluia primalei (P) asociat bazei B este: xS=0 xB=b c xj = 0 , j J xi = b i , i I (5.1.6)
Aceast soluie este admisibil dac b 0 b i 0 , i I i n plus optim dac c S 0 c j 0 , j J. Obinem urmtoarele concluzii remarcabile: Soluia (5.1.6) a primalei (P) asociat bazei B este admisibil (respectiv satisface criteriul de optimalitate al algoritmului simplex) dac i numai dac soluia (5.1.4) a dualei (Q) asociat aceleiai baze satisface criteriul de optimalitate (respectiv este admisibil). Valorile funciilor obiectiv primal i dual n cele dou soluii evideniate coincid (cu constanta f ) Soluia (5.1.6) este o soluie optim a programului (PB) (P) dac i numai dac soluia (5.1.4) este optim pentru programul (QB), ceeace echivaleaz cu a spune c soluia (5.1.5) este optim pentru programul dual (Q). n rezumat, pornind de la problema original (P) i de la o baz B a sa am construit dou probleme n dualitate (PB) i (QB) i am pus n eviden dou soluii ale acestora, pe care le-am numit soluii asociate bazei B. Cuplul de soluii evideniat are proprietile: i)Una din soluii este admisibil (verific criteriul de optimalitate al algoritmului simplex) dac i numai dac cealalt verific criteriul de
80
I. PROGRAMARE LINIARA
optimalitate (respectiv este admisibil) n particular una este optim dac i numai dac cealalt este optim. ii)Valorile funciilor obiectiv n cele dou soluii coincid. Contextul astfel creat sugereaz urmtoarea schimbare de terminologie: O soluie de baz a programului (P) se va numi primal admisibil dac este admisibil n sensul de pn acum adic are toate componentele nenegative. O soluie de baz a programului (P) se va zice dual admisibil dac verific criteriul de optimalitate al algoritmului simplex. O baz a programului (P) se va numi dual admisibil dac soluia asociat este dual admisibil. n terminologia introdus, proprietatea i) de mai sus se reformuleaz astfel: Una din soluii este primal admisibil dac i numai dac cealalt este dual admisibil. Oricare din ele este optim dac i numai dac este simultan primal i dual admisibil.
5.2 Algoritmul simplex dual
Consideraiile precedente sugereaz posibilitatea rezolvrii programului original (P) utiliznd clasa soluiilor dual admisibile. Urmtorul algoritm, numit algoritmul simplex dual, rezult nemijlocit din aplicarea teoremelor A, B, C ale metodei simplex la problema (QB). Presupunem cunoscut o soluie de baz dual admisibil a programului (P) i tabelul simplex (uzual) asociat. n notaiile deja utilizate, o iteraie a algoritmului simplex dual se compune din urmtorii pai:
Pasul 1. (Test de optimalitate) Dac toi b i 0 , i I STOP : soluia de baz dual admisibil curent este optim. n caz contrar: Pasul 2. Se determin indicele bazic rI cu proprietatea:
b r = min b i
i I
(b r < 0)
81
Pasul 3. Dac pentru toi jJ avem a rj 0 STOP: problema primal nu are soluii admisibile. Altminteri: Pasul 4. Se determin indicele nebazic k J cu proprietatea:
ck
a rk
= min c j
arj <0
a rj
2) Concluzia din pasul 3 este consecina teoremei fundamentale a dualitii. ntr-adevr, dac arj 0 , jJ atunci programul dual (Q) are optim infinit i n consecin programul (P) este incompatibil. 3) Nu insistm asupra modalitii de determinare a unei soluii de baz dual admisibile de start deoarece algoritmul va fi aplicat numai n situaii n care o asemenea soluie este disponibil.
Exemplu 5.2.1 Considerm programul:
82
3 x1 + 2 x 2 x 3 + x 4 4 x1 x 2 x 3
= 3 + x 5 = 4
I. PROGRAMARE LINIARA
Soluia asociat bazei unitare E=[ A4 , A5 ] nu este admisibil: x1=x2=x3=0 x4= -3 , x5= -4
dar dac evalum costurile reduse c1 , c2 , c3 constatm c ele verific criteriul de optimalitate al algoritmului simplex (bineneles pentru probleme de minimizare!).Vezi tabelele 5.2.1-5.2.4. Se constat c soluia optim a programului dat are componentele :
* x1 = 1 7 * * , x2 = 0 , x3 = 24 7
f min =
156 7
Observaie final. Pentru simetrie, algoritmul descris n seciunea 4.2 se va numi algoritmul simplex primal. Recapitulnd teoria se constat fr dificultate c maximul (minimul) unei funcii obiectiv se atinge prin valori cresctoare (descresctoare) n simplexul primal i prin valori descresctoare (cresctoare) n simplexul dual.
12 A1 3 -4 -12 -5 4 -4 1 0 * 1 0 * 2 A2 2 -1 -2 0 1 * 0 1 * 3/7 -5/7 -8/7 6 0 A3 A4 -1 1 -1 0 -6 * -3 1 1 0 -4 * 3//5 -1//5 -7/5 4/5 -8/5 -4/5 0 1/7 1 -4/7 * -12/7 0 A5 0 1 * 2 -1 -2 -2/5 3/5 -18/5 -1/7 -3/7 -30/7
cB 0 0 0 2 12 2 12 6
B A4 A5 f A4 A2 f A1 A2 f A1 A3 f
A5 iese din baza curent. min{-12/-4 , -2/-1 , -6/-1} = = 2 A2 intr n baza curent. *** A4 iese din baza curent. min{-4/-5 , -4/-3} = 4/5 A1 intr n baza curent. *** 2 A iese din baza curent. A3 intr n baza curent. *** Soluia curent este dual i primal admisibil.