Sunteți pe pagina 1din 7

I.

PROGRAMARE LINIARA

76

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

5. Algoritmul simplex dual

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
aij ui v j = c j
i
uA v = c
=1

( FSQ) ui oarecari , i = 1,..., m; v j 0 j = 1,..., n u oarecare , v 0


(min) g = ub

(min) g = bi ui
i
=
1

Partiionnd:

v = v B ,vS

cu v B = [vi ]i I

[ ]

, vS = vj

j J

sistemul liniar din (FSQ) devine succesiv:

uA v = c u[ B, S ] v , v
B

] = [c

,c

uB v B = c B

S
S
uS v = c

(511
..)
(512
.. )

Deoarece B este nesingular din (5.1.1) rezult:


u = c B B 1 + v B B 1

(5.1.3)

Introducem u n (5.1.2):

( 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:

g (u) = (c B B 1 + v B B 1 )b = c B B 1b + v B B 1b = f + v B b
In acest fel, am adus (FSQ) la forma echivalent:
vS vB S = c S

(QB ) v S 0 , v B 0

B
(min) g = f + v b

I. PROGRAMARE LINIARA

78

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

cj x j
(max) f = f j
J

v j aij vi = c j j J

i I

(QB ) v j 0 , j J ; vi 0 , i I

vi b i
(min) g = f + i
I

x B + Sx S = b
B
x 0 , x S 0

S S
(max) f = f c x

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

(5.1.4)

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. Algoritmul simplex dual

79

u = cBB-1

(5.1.5)

Soluia (5.1.4) va fi o soluie admisibil pentru duala (Q) dac:


c S 0 c j 0 , j J
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

(5.1.6)

xi = b i , i I

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

I. PROGRAMARE LINIARA

80

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

Coloana Ar prsete baza curent.

i I

(b r < 0)

5. Algoritmul simplex dual

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

Coloana Ak intr n baza curent.


Pasul 5. Se pivoteaz tabelul simplex curent cu pivotul ark <o. n
acest fel se obine forma explicit a programului (P) n raport cu baza B'
dedus din B prin nlocuirea coloanei Ar cu coloana Ak. Se revine la pasul 1 n
cadrul unei noi iteraii.
Observaii: 1) Consideraiile expuse n aceast seciune sunt valabile
cu mici modificri i n cazul n care funcia obiectiv din programul original
(P) se minimizeaz. Cititorul va verifica imediat c algoritmul prezentat mai
sus rmne valabil i pentru asemenea probleme.

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:

(min) f = 12 x1 + 2 x 2 + 6 x 3
3x 2 x + x 3

1
2
3
( P)
4 x1 + x 2 + x 3 4

x1 , x 2 , x 3 0
Introducem variabilele de abatere x4 i x5 dup care nmulim cu -1 egalitile
rezultate:

82

I. PROGRAMARE LINIARA

3 x1 + 2 x 2 x 3 + x 4
4 x1 x 2 x 3

= 3
+ x 5 = 4

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

, x 2* = 0 , x 3* =

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.

cB
0
0
0
2
12
2
12
6

B
A4
A5
f
A4
A2
f
A1
A2
f
A1
A3
f

VVB
-3
-4
0
-11
4
8
11/5
-24/5
84/5
1/7
24/7
156/7

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

Tabelele 5.2.1 - 5.2.4

0
A5
0
1
*
2
-1
-2
-2/5
3/5
-18/5
-1/7
-3/7
-30/7

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.

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