Documente Academic
Documente Profesional
Documente Cultură
CAPITOLUL I*)
PROGRAMARE LINIAR
LLLLLL
a m1 x1 + a m2 x 2 + L + a mn x n bm
* )
Suportul de curs al Capitolelor 1 i 2 are la baz lucrarea: Nica, V., Ciobanu, Gh., Musta Floare, Mrcine Virginia, Cercetri
operaionale I - Programare liniar, Probleme de optimizare n reele de transport i distribuie, Teoria jocurilor strategice
Editura MATRIX ROM, Bucureti 1998
I. PROGRAMARE LINIARA
i a condiiilor de nenegativitate:
x1 0 , x 2 0 , L x n 0
tind spre + sau -, dup caz. n aceast situaie vom spune c (P) are optim infinit. Dac (P) are
(cel puin) o soluie optim, zicem c (P) are optim finit.
Deoarece eventualele restricii inegaliti sunt nestricte mulimea A este nchis (n topologia
uzual a spaiului Rn), adic o dat cu un ir convergent de puncte conine i limita acestuia.
Aceast proprietate este esenial pentru existena unei soluii optime a problemei (P)! Conform unui
rezultat clasic al analizei matematice, dac A este mrginit, atunci f i atinge efectiv extremele pe
A, i deci (P) are optim finit. n consecin, dac (P) are optim infinit, cu siguran A este
nemrginit. Reciproca nu este n general adevrat: este posibil ca A s fie nemrginit i totui
(P) s aib optim finit.
n
aij x j bi i = 1,..., m
j =1
x j 0 j = 1,..., n
n
(max) f = c j x j
j =1
a11
a
21
A=
M
a m1
a12
a 22
M
a m2
L a 1n
L a 2n
L M
L a mn
Ax b
sau matricial x 0
(max) f = cx
b1
b
2
b=
M
bm
x1
x
2
x=
M
x n
unde:
c = [ c1
c2 L cn ]
xj 0
n
(min) f = c j x j
j =1
Ax b
x0
(min) f = cx
De exemplu, problema firmei (1.1, exemplul 1)) este o form canonic de maximizare n timp ce
problema dietei (1.1, exemplul 2)) este o form canonic de minimizare.
Orice problem de programare liniar se poate pune sub o form canonic de maximizare sau
minimizare, fr modificarea mulimii soluiilor admisibile, observnd c:
o egalitate se poate nlocui cu dou inegaliti de sens contrar;
o restricie neconcordant devine concordant prin nmulire cu -1;
I. PROGRAMARE LINIARA
min f ( x ) = max [ f ( x )]
xA
xA
(1.3.1)
n consecin, putem face anumite raionamente teoretice pe o form canonic (ca de exemplu n
teoria dualitii liniare), fr ca prin aceasta s restrngem generalitatea.
Exemplul 1.3.1
(max) f = 2 x1 3x 2 + 4 x 3
x 3x + 5x = 3
1
2
3
5
3 x1 + x 2
2x +
x 3 10
1
x1 0, x 2 0, x 3 0
Programul (P)
(min)( f ) = 2 x 1 + 3 x 2 4 x 3
x1 3x 2 + 5x 3 3
x1 + 3x 2 5 x 3 3
3x1 + x 2
5
2 x1
x 3 10
0
,
x
0, x 3 0
1
2
Exemplul 1.4.1
(max) f = 7 x1 + 9 x 2 + 8 x 3
5x + 2 x x 4
1
2
3
( P ) 3 x1 + x 2 + x 3 = 5
x1 + 2 x 2 + 3x 3 9
x1 0, x 2 0, x 3 0
(max) f = 7 x1 + 9 x 2 + 8 x 3
=4
5 x1 + 2 x 2 x 3 x 4
( FSP ) 3x1 + x 2 + x 3
=5
x1 + 2 x 2 + 3x 3
+ x5 = 9
x j 0, j = 1,...,5
Problema care apare n acest context este aceea de a explica modul n care se obine soluia
optim a problemei (P) dac se cunoate soluia optim a formei sale standard (FSP). Se poate arta
uor c ntre mulimile de soluii admisibile AP , ale problemei (P) i AFSP, ale problemei (FSP),
exist o coresponden bijectiv care conserv soluiile optime. Vom arta cum funcioneaz aceast
coresponden pe exemplul precedent.
Notnd-o cu , aceasta coresponden va asocia unei soluii admisibile x = ( x1 , x 2 , x 3 ) a
problemei (P) vectorul:
( x ) = ( x1 , x 2 , x 3 , 5x1 + 2 x 2 x 3 4, 9 x1 2 x 2 3x 3 )
care prin construcie se dovedete a fi o soluie admisibil a problemei (FSP). Reciproc, unei soluii
admisibile ~
x = ( x~1 , x~2 , x~3 , x~4 , x~5 ) a problemei (FSP) corespondena invers -1 i asociaz vectorul
( x~1 , ~
x2 , ~
x 3 ) care satisface n mod clar restriciile problemei originale (P). Dac x este soluia optim
a problemei (P) atunci ( x ) este soluia optim a problemei (FSP) i reciproc, dac cunoatem
soluia optim ~
x a problemei (FSP) , 1 ( x~) reprezint soluia optim a problemei (P).
n problemele concrete, variabilele de abatere au interpretri economice precise aa c n
analiza soluiei optime valorile lor vor fi luate n considerare laolalt cu valorile variabilelor
originale. Astfel, n problema firmei (1.1, exemplul1)) variabilele de abatere xn+1, xn+2, ..., xn+m
definite prin:
n
x n +i = bi aij x j
i = 1,..., m
j =1
reprezint cantiti de resurse neconsumate i prin urmare cunoaterea valorilor lor n soluia optim
ofer indicaii utile n analiza modului n care sunt utilizate resursele firmei: materii prime, capaciti
de producie, for de munc, etc.
n problema dietei (1.1,exemplul 2)) variabilele de abatere:
n
x n +i = aij x j bi
i = 1,..., m
j =1
reprezint cantitile de principii nutritive cu care sunt depite nivelele minimale specificate n
reet.
x1 + x 2 6
2x + x 2
1
2
x1 0 , x 2 0
Identificm x1, x2 cu abscisa, respectiv ordonata unui punct din planul raportat la un sistem ortogonal
de axe. Este cunoscut faptul c mulimea punctelor din plan ale cror coordonate satisfac prima
restricie coincide cu unul din semiplanele determinate de dreapta d1 de ecuaie -3x1+4x2 = 12. Mai
precis, este vorba de semiplanul care conine originea (0,0), deoarece coordonatele acesteia satisfac
evident prima restricie. n mod analog, urmtoarele restricii sunt verificate n semiplanele
determinate de dreapta d2 de ecuaie x1+x2 = 6 i respectiv d3 de ecuaie -2x1+x2 = 2 i care conin
originea. n fine, condiia x1 0 are loc n semiplanul din dreapta axei verticale, n timp ce condiia
x2 0 are loc deasupra axei orizontale.
Soluiile admisibile ale problemei se identific cu punctele comune celor cinci semiplane.
Acestea formeaz interiorul i frontiera poligonului OABCD din figura 1.5.1.
Funcia obiectiv determin - pentru f variabil - o mulime de drepte paralele care
intersecteaz sau nu mulimea A. Astfel punctele situate pe dreapta 3x1+4x2=12 reprezint diferite
combinaii ale mrimilor x1, x2 care dau funciei obiectiv f aceeai valoare 12. ntruct aceast
dreapt taie A, rezult c problema are soluii admisibile - chiar o infinitate - care ofer funciei
obiectiv valoarea 12. Dreapta 3x1+4x2=24 nu mai taie A i deci nici o soluie admisibil a problemei
I. PROGRAMARE LINIARA
nu este capabil s asigure funciei obiectiv valoarea 24. Conchidem c maximul funciei f este
undeva ntre 12 i 24. Se observ uor c acest maxim se atinge n vrful C al frontierei lui
A. Punctul C este intersecia dreptelor d1 i d2 i deci coordonatele sale, care reprezint soluia
optim a problemei, se determin rezolvnd sistemul format din ecuaiile celor dou drepte. Se
gsete x1* = 127 , x 2* = 307 maximul lui f fiind 22 27 . Soluia optim satisface cu egalitate primele
dou restricii i cu inegalitate strict pe ceea de a treia.
x2
f=24
f= 22 27
C
B
f=12
d1
A
d2
O
x1
D
d3
Figura 1.5.1
n mod asemntor se arat c dac funcia de maximizat ar fi fost f = - x1+x2 atunci optimul
ar fi fost atins n vrful B de coordonate x1=4/5, x2=18/5 .
Examinnd acest exemplu putem trage urmtoarele concluzii:
1. Mulimea A este convex, adic o dat cu dou puncte conine i segmentul care le
unete. O consecin intuitiv a acestei proprieti este c soluia optim, dac exist, se gsete
undeva pe frontiera lui A .
2. Frontiera lui A este un contur poligonal cu un numr finit de vrfuri i o soluie optim
se gsete neaprat ntr-unul din ele.
Aceste concluzii, care se confirm pe orice alt problem n dou sau trei variabile (mulimea
soluiilor admisibile putnd fi vizualizat n planul R2 sau spaiul R3) au constituit sursa ntregii
teorii a programrii liniare.
7
CURSUL 3
Exemplul 2.1.1
Problema primal
3x1 2 x 2 + x 3 + 4 x 4 x5 6
2 x
+ 2 x 3 + 5x 4 + x5 = 9
1
x1 + 6 x 2 + x 3 + 2 x 4
3
x1 0
x2 0
x 3 f . r. s.
x 4 f . r . s.
x5 0
max f = 8 x1 + 3x 2 + x 3 + 5x 4 + 7 x5
Problema dual
u1 0
u2 f . r . s.
u3 0
3u1 + 2u2 + u3 8
2u1
+ 6u3 3
u1 + 2u2 + u3 = 1
u1 + u2
7
I. PROGRAMARE LINIARA
Observaii: 1) Problema dual are attea variabile (respectiv restricii) cte restricii
(respectiv variabile) are problema primal.
2) Regulile 1) - 4) pun n eviden urmtoarele corespondene de termeni prin trecere la
dual:
min
max
(restricie) concordant
(variabil) nenegativ
(restricie) neconcordant
(variabil) nepozitiv
(restricie) egalitate
(variabil) fr restricie de
a x + a x +K+ a x b
u2 0
22 2
2n n
2
21 1
..............................................
.
..........
um 0
a m1 x1 + a m2 x 2 +K+a mn x n bm
x1 0
a11u1 + a 21u2 +K + a m1um c1
x2 0
a12 u1 + a 22 u2 +K + a m2 um c2
M
.............................................
xn 0
a1n u1 + a 2 n u2 +K+a mn um cn
( P) x 0
(Q) u 0
max f ( x ) = cx
min g ( u) = ub
a x = bi i = 1,..., m
ui f . r . s. i = 1,..., m
j =1 ij j
xj 0
j = 1,..., n
aij ui c j j = 1,.., n
i =1
n
m
max f = c x
min g = bi ui
j j
j =1
i =1
sau matricial:
uA c
Ax = b
( P) x 0
( Q )u R m ( f . r. s. )
min g( u ) = ub
max f ( x ) = cx
( P)x 0
( Q )u f . r. s.
max g ( u) = ub
min f ( x ) = cx
( P ) Ax b
( Q ) uA c
x0
u0
x = [ x1 , x 2 ,..., x n ]
f ( x ) = cx uAx ub = g (u )
2) Dac f ( x ) = g (u ) i dac x nu ar fi soluie optim a problemei (P) ar exista o
soluie admisibil x' mai bun, adic f ( x ') > f ( x ) .Rezult inegalitatea f ( x ') > g ( u ) contrar
celor demonstrate la punctul precedent.
10
I. PROGRAMARE LINIARA
Simetria teoremei 2.3.2 nu constituie totui un rspuns pentru reciproca teoremei 2.3.1
Specificm acest lucru n mod expres pentru c n programarea neliniar el nu are loc.
Teorema 2.3.3 Dac una din problemele unui cuplu de probleme n dualitate are soluie
optim atunci i cealalt are i valorile optime ale funciilor obiectiv coincid.
Nu dm demonstraia teoremei 2.3.2 deoarece pregtirile necesare depesc cadrul impus acestui
curs. Vom demonstra ns teorema 2.3.3 dup ce vom prezenta metoda general de rezolvare a
problemelor de programare liniar.
( P)x 0
Qu 0
min f ( x ) = cx
min g (u) = ub
Un cuplu de soluii admisibile ( x , u ) este un cuplu de soluii optime dac i numai dac:
( uA c) x = 0
(2.3.1)
u (b Ax ) = 0
Demonstraie: S presupunem relaiile (2.3.1) verificate de cuplul ( x , u ):
uAx cx = 0
cx = ub ( x , u ) este un cuplu de soluii optime n virtutea teoremei
ub uAx = 0
2.3.1.Reciproc, s presupunem c ( x , u ) constituie un cuplu de soluii optime. Atunci cx = u b ,n
virtutea teoremei fundamentale a dualitii i prin urmare:
( uA c) x + u (b Ax ) = 0
Deoarece x , u
sunt soluii admisibile avem: ( uA c) x 0, u (b Ax ) 0 i deci
( uA c) x = 0, u (b Ax ) = 0 relaii care arat c x , u verific (2.3.1).
n notaiile seciunii (2.2) relaiile matriciale (2.3.1) se pot scrie:
n
m
aij ui c j x j = 0
j =1 i =1
m
n
ui bi a ij x j = 0
i =1
j =1
Aceste relaii sunt echivalente cu:
m a u c x = 0
j = 1,..., n
ij i
j
i
j
=1
n
ui bi a ij x j = 0
j =1
i = 1,..., m
11
m
n
x >0
u >0
a
u
=
c
aij x j = bi
j
ij
i
j
i
i =1
j =1
n
m
a ij ui < bi
aij ui > c j
ui = 0
xj = 0
j =1
i =1
Observaie. Dei prezentat pe un cuplu de probleme canonice, teorema 2.3.4. este valabil
pentru orice cuplu de probleme n dualitate. Astfel pentru cuplul:
max f = cx
min g = ub
Ax = b
uA c
x0
u f . r. s.
m
ele se reduc la: (uA c) x = 0 aij ui c j u j = 0 j = 1,..., n.
i =1
Exemplul 2.3.1
min f = 5x1 2 x 2 x 3
max g = 6u1 + 12u2 + 4u3
6 x1 + 2 x 2 3x 3 6
6u1 + u2 + 2u3 5
( P ) x1 + 3x 2 + 2 x 3 = 12
( Q ) 2u1 + 3u2 u3 2
2 x x + 4 x 4
3u + 2u + 4u 1
2
3
1
2
3
1
x1 , x 2 , x 3 0
u1 0, u2 f . r. s., u3 0
Conform TEC, condiia necesar i suficient pentru ca dou soluii admisibile ale celor dou
probleme:
x = ( x1 , x 2 , x 3 ) T i u = (u1 , u2 , u3 )
s fie optime este satisfacerea relaiilor:
( 5 6u1 u2 2u3 ) x1 = 0
(1)
( 2 2u1 3u2 + u3 ) x 2 = 0
( 2)
(3)
( 6 6 x1 2 x 2 + 3x 3 )u1 = 0
( 4)
(2 x1 x 2 + 4 x 3 4)u3 = 0
(5)
O consecin important a TEC este faptul c rezolvarea unei probleme de programare liniar
este echivalent cu rezolvarea dualei sale n sensul c dac se cunoate soluia optim a uneia din ele
putem deduce relativ simplu soluia optim a celeilalte. Pentru ilustrare vom determina soluia
optim a problemei (P) din exemplul precedent tiind c duala (Q) are soluia optim u* de
componente: u1* = 0 , u2* = 149 , u3* = 141 .
nlocuind u* n (1) - (5) se constat c relaiile (2),(3),(4) sunt satisfcute de orice valori
numerice acordate variabilelor x1 , x2 , x3. n schimb din (1) i (5) obinem relaiile: x1=0 i 2x1 - x2 +
4x3 - 4 = 0 care mpreun cu restricia egalitate din (P) constituie un sistem liniar:
= 0
x1
2 x1 x 2 + 4 x 3 = 4
x + 3x + 2 x = 12
2
3
1
Rezolvnd sistemul, obinem soluia optim a problemei (P):
x1* = 0 , x 2* = 207 , x 3* = 127
f max = f ( x * ) = 527 = g (u * ) = g min
Echivalena amintit mai nainte este folositoare n rezolvarea efectiv a problemelor de
programare liniar tiut fiind c efortul de calcul este relativ mai mic dac numrul restriciilor este
12
I. PROGRAMARE LINIARA
mai mic. n consecin, pentru o problem cu multe restricii i un numr restrns de variabile, va fi
mai comod s rezolvm duala sa.
M
K M
M
a m1 a m2 K a mn
Obiectivul firmei este maximizarea veniturilor rezultate din vnzarea bunurilor produse. n
ipotezele de liniaritate uzuale, programul liniar pentru determinarea combinaiei optime de bunuri
este:
(max) f ( x ) = c1 x1 + c2 x 2 +K+ cn x n
a x + a x +K+ a x b
11 1
12 2
1n n
1
a 21 x1 + a 22 x 2 +K+ a 2 n x n b2
(P)
............................................
a m1 x1 + a m2 x 2 +K+ a mn x n bm
x1 0, x 2 0,K , x n 0
S notm cu x* = ( x1* , x 2* ,..., x n* ) combinaia de bunuri care aduce firmei venitul maxim:
13
*
*
*
a12 u1 + a 22 u2 +...+ a m2 um c 2
(2.4.2)
..........................
a u * + a u * +...+ a u * c
2n 2
mn m
n
1n 1
i de asemenea condiiile de nenegativitate:
(2.4.3)
u1* 0, u2* 0,..., um* 0
Sunt suficiente relaiile (2.4.1) - (2.4.3) pentru determinarea efectiv a valorilor u1* , u2* ,..., um* ? Teoria
dualitii d un rspuns afirmativ pe baza urmtoarelor observaii:
1) Relaiile (2.4.2) i (2.4.3) arat c u* = (u1* , u2* ,..., um* ) constituie o soluie admisibil a
dualei (Q) asociat problemei (P):
(min) g( x ) = b1 u1 + b2 u2 +...+ bm um
a u + a u +...+ a u c
21 2
m1 m
1
11 1
a12 u1 + a 22 u2 +...+ a m2 um c 2
( Q )
. ..................................
a1n u1 + a 2 n u n +...+ a mn um c n
u1 0, u2 0,..., u m 0
2) Relaia (2.4.1) rescris n forma f(x*) = g(u*), coroborat cu teorema de dualitate 2.3.1, ne
arat c u* este chiar soluia optim a problemei duale Q.
Astfel, am gsit un coninut economic coerent variabilelor duale u1, u2,..., um din problema dual
(Q). Ele reprezint nite valori bneti asociate la cte o unitate din fiecare resurs disponibil a
firmei i exprim aportul unitar al fiecrei resurse la formarea venitului maxim. Strict dimensional,
variabilele u1, u2,..., um au semnificaia unor preuri ataate resurselor. Totui aceste preuri nu au
nimic comun cu valoarea intrinsec a resurselor ci - aa cum a rezultat din interpretarea dat reflect numai msura participrii lor la formarea venitului maxim. Tocmai pentru a preveni
identificarea lor cu preurile reale ale resurselor, n literatura de specialitate, aceste entiti au fost
denumite preuri umbr (shadow prices). A rezultat de asemenea i o modalitate de calcul a acestor
mrimi: se rezolv problema dual (Q).
Teoria dualitii arat c venitul maxim V* al firmei - privit ca funcie de cantitile
disponibile de resurse - depinde liniar de aceste disponibile prin intermediul preurilor duale optime
- vezi relaia (2.4.1)
n consecin :
V *
(2.4.4)
= ui*
i = 1,..., m
bi
Prin urmare preurile duale optime ne arat cu ct se modific venitul maxim V* al firmei la
o variaie cu o unitate a disponibilului unei resurse.
Este important de reinut faptul c aceste concluzii rmn valabile numai n situaia n care
componentele vectorului b variaz ntre anumite limite! n cazul general, atunci cnd se iau n
considerare toate valorile posibile ale lui b, adic b R+m , funcia V*(b) este subaditiv i pozitiv
omogen. Aceasta nseamn:
V * ( b + b' ) V * ( b) + V * ( b' )
( ) b, b' R+m
V * ( tb ) = tV * ( b )
( ) t 0 , b R+m
14
I. PROGRAMARE LINIARA
Reamintim c n baza TEC soluiile optime x*, u* al problemelor (P) i (Q) satisfac relaiile:
x *j > 0 a1 j u1* + a 2 j u2* +...+ a mj um* = c j
(2.4.5)
*
i1 1
*
2
*
n
u > 0 a x + a i 2 x +...+ a in x = bi
a1 j u1* + a 2 j u2* +...+ a mj um* > c j x *j = 0
(2.4.5')
(2.4.6)
(2.4.6')
(2.4.5) arat c dac bunul Gj intr n combinaia optim atunci preul su este egal cu partea din
venitul maxim al firmei corespunztoare resurselor ncorporate ntr-o unitate din el.
(2.4.5') arat c dac o resurs nu este prevzut a se consuma n ntregime - spunem c este
excedentar - preul su dual este 0. Aceast concluzie reprezint versiunea liniar a
legii cererii i ofertei - preul unei mrfi pentru care oferta este mai mare dect cererea
trebuie s scad.
(2.4.6) arat c o resurs cu pre dual semnificativ trebuie consumat n ntregime; creterea cu o
unitate a disponibilului aducnd o cretere a venitului maxim conform (2.4.4).
(2.4.6') arat c dac pentru un bun valoarea resurselor ncorporate ntr-o unitate - valoare
msurat n preurile duale optime - depete preul su atunci acesta nu intr n
m
care firma o va nregistra dac totui decide realizarea unei uniti din bunul j.
Condiiile (2.4.5), (2.4.5'), (2.4.6), (2.4.6') date de TEC se mai numesc i condiii de
echilibru de unde i numele de preuri de echilibru dat uneori preurilor duale optime.
15
Formal :
X convex ( ) x , y X , ( ) [0,1] , z = (1 ) x + y X
Se verific imediat c intersecia mai multor mulimi convexe este o mulime convex.
Fie a = ( a1 , a 2 ,..., a n ) un vector nenul i b un scalar. Este uor de vzut c mulimea:
S = x = ( x1 , x 2 ,..., x n ) T ax b a1 x1 + a 2 x 2 +...+ a n x n b
este convex. Ea se numete semispaiu, n timp ce mulimea:
H = x = ( x1 , x 2 ,..., x n ) T ax = b a1 x1 + a 2 x 2 +...+ a n x n = b
a) poligon concav
b) coroan circular
d) poligon convex
c) disc
Not: Toate mulimile specificate sunt presupuse, nchise adic i conin frontierele.
Figura 3.1.1
S3
S2
S1
S4
Figura 3.1.2
16
I. PROGRAMARE LINIARA
Din cele de mai sus rezult c orice mulime poliedral n R n se identific cu mulimea
soluiilor unui sistem de ecuaii i/sau inecuaii liniare n n variabile. n particular:
Mulimea AP a soluiilor admisibile ale unui program liniar (P) este o mulime convex,
poliedral i nchis. Frontiera sa se compune din toate punctele ale cror coordonate satisfac cu
egalitate cel puin una din restricii.
Se numete vrf al unei mulimi convexe X R n un punct v X cu proprietatea c nu
exist un segment [x,y] X care s conin pe v ca punct interior. n R 2 sau R 3 regsim conceptul
geometric uzual.
O mulime poliedral are ntotdeauna un numr finit de vrfuri (posibil nici unul); de
exemplu, poligonul d) din fig. 3.1.1 are patru vrfuri n timp ce un semispaiu nu are vrfuri. Discul
c) are o infinitate de vrfuri: orice punct de pe circumferin are aceast calitate.
Mulimile d) i e) din fig.3.1.1 sunt amndou poliedrale dar e) este nemrginit. Pentru a
caracteriza aceast proprietate avem nevoie de un nou concept, cel de raz extrem. Pentru a nu
depi cadrul orar al cursului vom lsa la latitudinea cititorului aprofundarea conceptului utiliznd ca
suport bibliografic www.asecib.ase.ro Cursuri on-line 9. Nica V. i colectiv, Cercetri
Operaionale I. Vom caracteriza ns n detaliu aceast situaie n cadrul metodei Simplex de
rezolvare a programelor liniare (vezi seciunea 4 a Cap. 1).
TEOREMA*). Dac programul (P) are optim finit, atunci o soluie optim se gsete ntrunul din vrfurile mulimii soluiilor admisibile AP .
Importana acestei teoreme este covritoare: ea reduce problema gsirii unei soluii optime
x * din mulimea, n general infinit, AP a tuturor soluiilor admisibile ale programului (P), la
identificarea acestei soluii n mulimea finit a vrfurilor lui AP.
Recapitulnd modul n care diferitele proprieti discutate au fost implicate n obinerea
acestui rezultat fundamental s reinem c:
Convexitatea mulimii soluiilor admisibile AP situeaz soluiile optime, dac acestea
exist, pe frontiera lui AP;
Deoarece AP este poliedral, iar funcia obiectiv este liniar, cel puin una din soluiile
optime este un vrf al lui AP.
Teorema furnizeaz urmtorul procedeu "naiv" de rezolvare a unui program liniar (P):
se "genereaz" lista (finit) a vrfurilor mulimii AP;
*)
NOT: Pentru demonstraiile Teoremelor i Lemelor din acest capitol, vezi www.asecib.ase.ro Cursuri on-line 9.
Nica V. i colectiv, Cercetri Operaionale I.
17
prin nlocuire succesiv n funcia obiectiv se reine vrful care ofer acesteia valoarea
maxim (sau minim, dup caz).
Procedeul ridic la rndul su urmtoarele probleme principiale:
1) Cum recunoatem compatibilitatea programului (P) ?
2) Cum "calculm" un vrf al mulimii AP sau mai corect spus cum se caracterizeaz
"algebric" un vrf ?
3) Pentru obinerea soluiei optime este necesar s generm toate vrfurile mulimii AP?
ntrebarea este serioas deoarece i pentru programe liniare de dimensiuni reduse (adic cu un numr
relativ mic de restricii i variabile) numrul vrfurilor este foarte mare.
4) Chiar dac reuim, prin enumerarea explicit a tuturor vrfurilor, s gsim pe acela care
maximizeaz funcia obiectiv, aceasta nu nseamn obligatoriu c am rezolvat programul dat! Este
posibil ca programul respectiv s aib optim infinit! Cum se recunoate acest fapt?
Vom rspunde progresiv la toate chestiunile menionate n seciunile urmtoare.
( P ) Ax b
x0
unde:
a11 a12 L a1n
b1
x1
a
x
a 22 L a 2 n
b
21
b = 2 x = 2
A=
M
M
M
M
M
(3.3.1)
a
a
L
a
b
x
m2
mn
m1
m
n
c = [ c1
c2 L c n ]
tim din seciunea 1.3 c orice program liniar poate fi scris n aceast form. Forma standard a
programului (P) va fi:
y1
max f = cx
y
2
( FSP ) Ax + y = b n care: y = este vectorul variabilelor de abatere.
M
x 0 , y 0
ym
ntre mulimile de soluii admisibile AP Rn i AFSP Rn+m exist o coresponden bijectiv (x)
= (x , y), unde y = b - Ax, a crei invers este proiecia -1(x,y) = x. Am remarcat deja n seciunea
1.4 c prin corespondena , soluiile optime ale celor dou probleme se corespund. n fapt, are
urmtoarea proprietate mai general.
Teorema 3.3.1 Dac x este un vrf al mulimii AP atunci (x) = (x,y) cu y = b - Ax este un
vrf al mulimii AFSP . Reciproc, dac (x,y) este un vrf al mulimii AFSP atunci -1(x,y) = x este un
vrf al mulimii AP .
18
I. PROGRAMARE LINIARA
n baza acestei teoreme precum i a teoremei centrale a programrii liniare (seciunea 3.2), pentru a
rezolva problema (P) este suficient s cutm soluia optim a formei sale standard (FSP) printre
vrfurile mulimii AFSP .
Vom vedea n seciunea urmtoare cum se caracterizeaz algebric vrfurile mulimii soluiilor
admisibile ale unui program liniar n form standard. Tot acolo vom arta c dac un program (P)
este compatibil atunci AP are cel puin un vrf i n orice caz un numr finit de asemenea elemente.
Pe baza acestor rezultate, vom putea descrie n paragraful 4 o metod efectiv de rezolvare a unei
probleme de programare liniar.
CURSUL 4
( P ) Ax = b
x0
n care masivele A,b,c,x au semnificaiile din (3.3.1). Vom pune n eviden coloanele matricii A:
A = [A1 , A2 , , An ]
x i A i = x i A i = b
i I ( x )
i I ( x )
implic:
( x i x i ) A i = 0
i I ( x )
Lema 2 Fie x = ( x1 , x 2 ,..., x n )T o soluie admisibil a problemei (P) care nu este soluie de
baz. Atunci exist un vector y Rn i un interval [ , ] Rn {- , +} astfel nct:
1) Ay = 0;
2) [ , ] conine pe 0 i nu se reduce la acest punct; i nu sunt simultan infinite;
3) pentru orice [ , ] vectorul x() = x + y este o soluie admisibil a problemei (P);
4) Dac de exemplu, este finit i x = x( ) atunci I( x ) I( x ) dar I( x ) I( x ) - 1
adic x are mai puine componente nenule dect x .
19
yi Ai = 0
iI ( x )
yi Ai = 0
i =1
Ay = 0
] n care:
xi
max y i
= iI ( x ), yi >0
daca toti y 0
i
xi
min y i
= iI ( x ), yi <0
+ daca toti y 0
i
Avem < 0 < i deoarece y 0, cel puin una din extremitile , este finit. Astfel i
afirmaiile 2) , 3) sunt probate.
S presupunem, n final c este finit. Atunci va exista un indice r I( x ) astfel c: yr <
x
0 i = - r y .Dac x = x( ) este clar c I( x ) I( x ) i cum x r = x r + y r = 0 iar
r
I( x ) < I( x ) i ultima afirmaie este dovedit.
x r > 0 urmeaz c
Teorema 3.4.1 O soluie admisibil x = ( x1 , x 2 ,..., x n )T a problemei (P) este un vrf al
mulimii AP dac i numai dac x este o soluie de baz.
Demonstraie: S presupunem c x este vrf dar nu este soluie de baz. Conform lemei 2 exist
y Rn cu Ay = 0 i intervalul [ , ] care conine pe 0 i nu se reduce la acesta, astfel nct x()
= x + y s fie o soluie a programului (P) oricare ar fi [ , ]. Alegem > 0 suficient de
mic astfel nct [- ,+ ] [ , ] i punem: x1 = x -y, x2 = x +y . Atunci x1,x2 AP , x1 x2 i
Teorema 3.4.2 Dac programul n form standard (P) este compatibil atunci mulimea
soluiilor sale admisibile AP are cel puin o soluie de baz, deci un vrf.
Demonstraie Fie x = ( x1 , x 2 ,..., x n ) T o soluie admisibil a problemei (P). Vom proceda prin
inducie dup numrul k al componentelor x i > 0 .Dac k = 0 atunci x = (0,0,...,0) este o soluie
de baz ntruct o mulime vid de vectori este, prin convenie,liniar independent. Dac k > 0
exist dou situaii de examinat:
1) Coloanele Ai, i I( x ) sunt liniar independente. Atunci x este o soluie de baz.
2) Coloanele Ai, i I( x ) sunt liniar dependente. Conform lemei 2 va exista o soluie
20
I. PROGRAMARE LINIARA
Consecin Mulimea AP a soluiilor admisibile ale unui program liniar compatibil are cel
puin un vrf.
Demonstraie: S presupunem c (P) nu este n form standard, altminteri avem teorema 3.4.2.
Fie (FSP) forma standard a programului (P). Deoarece avem corespondena bijectiv : AP AFSP
deducem c AFSP pentru c prin ipotez AP . Prin teorema 3.4.2 mulimea AFSP are cel puin
un vrf; acesta, prin proiecia -1 va fi un vrf al mulimii AP , graie teoremei 3.3.1.
Avnd n vedere caracterizarea algebric a vrfurilor dat n teorema 3.4.1, teorema central
a programrii liniare poate fi formulat i n urmtorii termeni.
Teorema 3.4.3 Dac un program liniar n form standard are optim finit, cel puin una din
soluiile sale optime este o soluie de baz.
Mai rmne de artat c mulimea soluiilor admisibile ale unui program liniar are un numr
finit de vrfuri. n virtutea teoremelor 3.3.1 i 3.4.1, aceasta revine la a arta c un program liniar n
form standard (P) are un numr finit de soluii admisibile de baz. Faptul rezult nemijlocit din
aceea c numrul sistemelor liniar independente ce pot fi extrase dintr-o mulime finit de vectori
este finit. Vom preciza acest lucru sub forma unei teoreme n seciunea urmtoare, n care vom
introduce un concept uor diferit de cel de soluie de baz, acela de soluie asociat unei baze a
programului (P). Noul concept are avantajul de a fi mai uor de manipulat n practic.
3.5 Baze ale unui program liniar n form standard. Soluia asociat unei baze
n notaiile seciunii precedente facem ipoteza:
rangA = m < n
(3.5.1)
Ipoteza ne asigur c ecuaiile ce compun sistemul liniar Ax = b al restriciilor sunt independente i
c acest sistem are o infinitate de soluii. S notm c ipoteza nu implic n mod necesar i existena
soluiilor admisibile (adic cu toate componentele nenegative) pentru sistemul considerat. Dup cum
vom vedea n seciunea 4.6 ipoteza fcut nu este deloc restrictiv.
[ ]
[ ]
j J
21
c = [cB,cS]
cu cB = [ci]i I
cS = [cj]j J
n raport cu baza B aleas, variabilele xi , i I se vor numi variabile bazice, iar toate celelalte
nebazice sau secundare.
Scriem sistemul Ax = b n forma:
x B
[ B , S ] S = b Bx B + Sx S = b
x
m
Deoarece B este o baz a spaiului R , B (ca matrice!) este nesingular deci inversabil. nmulind la
stnga cu B-1 obinem:
x B + Sx S = b
[ ]
cu S = B 1 S = a ij
iI , j J
, b = B 1 b = [ bi ] iI
(3.5.2)
S = B 1 [ A j ] j J == [ B 1 A j ] j J = [ A j ] jJ
cu
[ ]
A j = B 1 A j = a ij
(3.5.3)
i I
Utilizm (3.5.2) pentru a elimina din expresia funciei obiectiv variabilele bazice:
x B
f = [ c B , c S ] S = c B x B + c S x S = c B ( b Sx S ) + c S x S =
x
B
B
= c b ( c S c S )x S = f c S x S
(3.5.4)
unde:
f = c B b ( = c B B 1 b ) = c i bi
(3.5.5)
i I
i:
[ ]
c S = c B S c S ( = c B B 1 S c S ) = c j
j J
n care:
c j = c B A j c j ( = c B B 1 A j c j ) = c i a ij c j
i I
(3.5.6)
Astfel, n raport cu baza B, programul (P) poate fi adus la urmtoarea form echivalent, conform
(3.5.2) i (3.5.4):
max f = f c j x j
max f = f c S x S
j J
B
S
( PB ) x + Sx = b
x i + a ij x j = bi i I
(3.5.7)
j J
B
S
x 0 ,x 0
x i 0 , i I ; x j 0 , j J
(PB) se numete forma explicit a programului (P) n raport cu baza B. Comparnd (PB) cu (P)
constatm c efectul nmulirii cu B -1 a sistemului Ax = b este explicitarea variabilelor bazice xi , i
I n funcie de cele nebazice xj , j J.
Lund n (PB):
xS = 0
xj = 0 , j J
(3.5.8)
obinem:
22
I. PROGRAMARE LINIARA
xB = b
x i = bi i I
(3.5.9)
Vectorul:
b x B
x=
(3.5.10)
S
0 x
este evident o soluie a programului (P), numit soluia asociat bazei B. Vom spune c B este o
baz admisibil dac soluia asociat (3.5.10) este admisibil, ceea ce revine la a spune c
bi 0 , i I .
Prin construcie, soluia asociat unei baze a programului (P) este o soluie de baz n sensul
definiiei din seciunea precedent. Reciproca nu este n general adevrat. Astfel, dac x =
( x1 , x 2 ,..., x n ) T este o soluie de baz a programului (P), numrul componentelor nenule este m.
Dac acest numr este exact m atunci x este soluia asociat bazei formate din coloanele matricii A
corespunztoare celor m componente nenule. Spunem n acest caz c x este o soluie de baz
nedegenerat. Dac numrul componentelor nenule este < m, coloanele corespunztoare acestor
componente pot fi completate pn la o baz n mai multe moduri, astfel c x se asociaz la mai
multe baze! Dac se ntmpl aa spunem c x este o soluie degenerat.
Deoarece (P) are un numr finit de baze, el va avea i un numr finit de soluii asociate
acestor baze i de aici un numr finit de soluii de baz.
n baza relaiilor (3.5.8), (3.5.9) constanta f din (3.5.5) reprezint valoarea funciei obiectiv
a programului (P) n soluia (3.5.10) asociat bazei B. Componentele c j , j J (definite n (3.5.6))
ale vectorului c S din (3.5.4) vor juca un rol esenial n caracterizarea optimalitii unei soluii
admisibile de baz. Ele se numesc costuri reduse (notate j n alte materiale de specialitate) i sunt
ntotdeauna asociate variabilelor nebazice. Coeficienii numerici ai formei explicite (3.5.7) se trec
ntr-un tabel (TB) al crui format este indicat n tabelul 3.5.1. Tabelul (TB) se numete tabelul
simplex asociat bazei B. Coloana B conine vectorii bazei B, coloana CB conine Coeficienii
din funcia obiectiv ai variabilelor Bazice iar n coloana VVB apar Valorile Variabilelor Bazice. n
ultima linie a tabelului, numit i linia test, apar valoarea f a funciei obiectiv n soluia asociat
bazei B precum i costurile reduse c j , j J corespunztoare coloanelor nebazice. Formula (3.5.5)
arat c f este produsul scalar al coloanelor CB i VVB n timp ce relaia (3.5.6) arat c c j se
obine din produsul scalar al coloanelor CB i Aj scznd costul cj scris deasupra coloanei Aj.
Tabelul 3.5.1
CB
VVB
M
ci
M
cr
M
Ai
M
Ar
M
bi
M
br
M
f
ci
Ai
M
1
M
0
M
*
cr
Ar
M
0
M
1
M
*
K
K
K
cj
Aj
M
aij
M
arj
K
K
K
M
K
cj
ck
Ak
M
aik
M
ark
K
K
(TB)
M
K
ck
23
4. Metoda simplex
Deoarece tim c dac programul n form standard (P) are optim finit o soluie optim va fi
cu necesitate o soluie de baz i deci va fi asociat unei baze B*, este natural s ne ntrebm cum
gsim aceast baz optimal B*. Traducnd n termeni algebrici procedeul geometric naiv, descris
n finalul seciunii 3.2, rezult urmtoarea procedur:
Teorema A. Dac toi c j 0 , j J atunci soluia (3.5.10) asociat bazei B este optim.
Dac n plus c j > 0 , j J ,atunci ea este i unica soluie optim a programului (P).
Demonstraie: Fie y = (y1,y2,...,yn)T A o soluie admisibil arbitrar aleas. Deoarece y1 0, y2
0, ...,yn 0 vom avea:
f ( y) = f c j y j f = f ( x )
jJ
Inegalitatea de mai sus arat c, dintre toate soluiile admisibile ale programului(P),soluia x din
(3.5.10) ofer funciei obiectiv f cea mai mare valoare posibil. Dac costurile reduse sunt pozitive
i y x atunci inegalitatea de mai sus este strict, fapt care probeaz unicitatea soluiei optime
x.
24
I. PROGRAMARE LINIARA
Teorema B.
ck < 0
i toi
optim infinit.
a ik
b
br
= min i
a rk iI aik >0 a ik
(4.1.4)
Atunci grupul de coloane B' obinut din B nlocuind coloana Ar cu coloana Ak este o baz admisibil
a programului (P) i soluia x asociat ei este cel puin la fel de bun ca i soluia x asociat
bazei B, adic f( x ) f( x ).
Demonstraie: Din (4.1.4) rezult c a rk > 0 . Din Ak = B-1Ak avem:
A k = BA k = a ik A i + a rk A r
iI ,i r
a ik i
1 k
A +
A
a rk
iI ,i k a rk
Ar =
Din teorema substituiei rezult c sistemul B', format din coloanele Ai , i r i Ak, este o baz a
problemei (P).
S lum n soluia variabil x () construit n demonstraia teoremei B:
br
a rk
(4.1.5)
br
x k = a ; x j = 0 , j J , j k
rk
x = b b r a , i I
i
ik
i
a rk
Pentru i = r avem x r = b r
br
a rk = 0 aa c soluia de mai sus poate fi rescris astfel:
a rk
x j = 0 , j J , j k ; x r = 0
br
br
x i = b i a a ik , i I, i r ; x k = a
rk
rk
(4.1.6)
25
Notm cu x soluia ale crei componente sunt definite n (4.1.6). Vom observa mai nti
c x este soluie admisibil a problemei (P), adic are toate componentele nenegative. ntr-adevr:
- dac a ik 0 atunci xi 0;
- dac a ik > 0 atunci b i
br
b
b
a ik 0 i r care are loc conform alegerii
a rk
a ik a rk
br
c k f = f ( x)
a rk
n concluzie, x este cel puin la fel de bun ca i x .
f ( x ) = f
(4.1.7)
Observaii: 1) Bazele B i B' aprute n enunul teoremei C difer una de alta printr-o
singur coloan a matricii A. Dou baze ale programului (P) cu aceast proprietate se vor numi n
continuare baze vecine i tot vecine se vor numi i soluiile asociate.
2) Teoremele B i C afirm c dac o soluie de baz admisibil x nu satisface criteriul de
optimalitate al teoremei A atunci sau (P) are optim infinit sau, printre soluiile vecine cu x exist cel
puin una la fel de bun ca i x dac nu chiar mai bun.
Recapitulnd materialul expus n aceast seciune constatm c testarea optimalitii soluiei
x asociate bazei B presupune cunoaterea formei explicite (3.5.7) a problemei iniiale n raport cu
baza B. Mai mult, dac x nu verific criteriul de optimalitate al teoremei A, construcia soluiei de
baz mai bune x se face cu ajutorul elementelor aceleiai forme (3.5.7). n consecin, testarea
optimalitii soluiei x asociat bazei vecine B' va necesita cunoaterea formei explicite a
problemei iniiale n raport cu noua baz B':
max f = f c j x j c r x r
jJ , j k
x i + a ij x j + a ir x r = b i i I, i r
jJ , j k
(4.1.8)
( PB' )
x k + a kj
x j + a kr
x r = b k
jJ , j k
x1 , x 2 ,..., x n 0
(Vom remarca faptul c unele elemente din (4.1.8) sunt deja evaluate! Astfel, termenii liberi, adic
valorile noilor variabile bazice, sunt dai de (4.1.6) n timp ce constanta f , care este valoarea
funciei obiectiv n noua soluie de baz x , a fost obinut n (4.1.7).)
Firete, (4.1.8) se poate obine ca i (3.5.7) prin nmulirea la stnga a sistemului original de
restricii Ax = b cu matricea invers (B')-1. Putem deduce (4.1.8) direct din (3.5.7) cu ajutorul
urmtoarelor operaii:
Din ecuaia r a sistemului (3.5.7):
x r + a rj x j + a rk x k = b r
j k
26
I. PROGRAMARE LINIARA
a rj
b
1
xr = r
(4.1.9)
a rk
a rk
j k a rk
Substituim xk dat de (4.1.9) n celelalte ecuaii ale sistemului din (3.5.7). Obinem:
xk +
x i + ( a ij
j k
a rj
a rk
)x j
xj +
a ik
b
x r = b i r a ik , i I, i r
a rk
a rk
(4.1.10)
Ecuaiile (4.1.9) , (4.1.10) reprezint sistemul Ax = b explicitat n noile variabile bazice xi i I,i r
i xk.
Mai departe substituim acelai xk i n expresia funciei obiectiv din (3.5.7). Gsim:
f = (f
a rj
br
c
ck ) ( c j
ck ) x j + k x r
a rk
a rk
a rk
j k
(4.1.11)
Astfel, am exprimat funcia obiectiv cu ajutorul noilor variabile nebazice xj, j J,j k i xr.
Prin urmare (4.1.9) , (4.1.10) , (4.1.11) constituie forma explicit a problemei originale n
raport cu noua baz B'. Identificnd coeficienii din aceste ecuaii cu coeficienii corespunztori din
(4.1.8) rezult formulele:
a ij = a ij
a kj
=
a rj
a rk
f = f
a rj
a rk
a ik
i I, i r
j J, j k
j J , j k ; a kr
=
br
ck
a rk
; c j = c j
a rj
a rk
; a ir =
1
a rk
ck
a ik
a rk
i I, i r
(4.1.12)
j J , j k ; c r =
ck
a rk
Pasul 1. (Test de optimalitate) Dac toi c j 0 , j J soluia de baz curent (adic soluia
(3.5.10), asociat bazei B) este optim: STOP. Altminteri:
27
c k = min c j
(4.2.1)
jJ
Pasul 3. Dac:
a ik 0 , i I ( A k 0)
programul (P) are optim infinit:STOP. Altminteri:
Pasul 4. Se determin indicele bazic r I cu formula:
b
br
= min i
a rk iI aik >0 a ik
(4.2.2)
Pasul 5. Se construiete 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) La pasul 2 avem cu necesitate c k < 0 . Despre coloana nebazic Ak vom
spune c intr n baza curent. n demonstraia teoremei C s-a artat c variaia valorii funciei
obiectiv la schimbarea coloanei bazice Ar cu coloana Ak este dat de formula:
b
f ( x ) f ( x ) = r c k
(4.2.3)
a rk
br
0 (vezi (4.2.2)) urmeaz c introducerea n baz a oricrei coloane nebazice Aj cu
a rk
c j < 0 mbuntete valoarea curent a funciei obiectiv. Alegerea coloanei nebazice care va intra
Cum
n baza curent dup formula (4.2.1) asigur funciei obiectiv cea mai mare vitez de variaie i n
general conduce la terminarea algoritmului n mai puine iteraii.
2) Se poate arta uor c dac situaia descris n pasul 3 are loc atunci vectorul w =
(w1,w2,...,wn)T definit prin:
w i = a ik , i I ; w j = 0 , j J , j k ; w k = 1
(4.2.4)
este o raz extrem a mulimii poliedrale AP.
3) Despre coloana bazic Ar al crei indice se determin cu formula (4.4.2) vom spune c
prsete baza curent. Alegerea ei dup formula amintit asigur admisibilitatea soluiei asociate
noii baze B'.
4) Elementul a rk , unde k este indicele coloanei care intr n baz iar r este indicele coloanei
care iese din baz se numete pivot i operaia de calculare a elementelor formei explicite n raport
cu baza B' din elementele formei explicite n raport cu baza veche B prin aplicarea formulelor de
schimbare a bazei (4.1.12) poart numele de pivotare gaussian.
5) n principiu, problemele de minimizare se reduc la cele de maximizare n baza relaiei
(1.3.1). Algoritmul simplex descris mai sus este aplicabil i problemelor de minimizare cu
urmtoarele mici modificri:
n pasul 1: soluia curent este optim dac c j 0 , j J ;
n pasul 2: pentru determinarea indicelui coloanei nebazice care intr n baza curent se va
utiliza formula
c k = max c j
jJ
28
I. PROGRAMARE LINIARA
6) S presupunem c baza curent B este optimal (adic soluia asociat ei verific testul de
optimalitate) i c exist indici nebazici jJ cu c j = 0 . Formula (4.2.3) arat c introducerea n baza
curent a oricrei coloane Ak pentru care c k = 0 conduce la soluii de baz la fel de bune ca i cea
curent, deci optime. Se poate arta c dac x 1 , x 2 ,..., x p , p 2 sunt toate soluiile de baz optime
ale programului (P) atunci acesta are o infinitate de soluii optime care au forma:
x = 1 x 1 + 2 x 2 +...+ p x p cu 1 , 2 ,..., p 0 si 1 + 2 +...+ p = 1
(altfel spus, orice soluie optim este o combinaie convex a soluiilor optime de baz)
( P ) x1 x 2 4 ; 3x1 x 2 18 ; x1 + 2 x 2 6
x1 0 , x 2 0
AP
x1
Aducem (P) la forma standard adugnd variabilele de abatere x3, x4, x5:
max f = 2 x1 + x 2
= 4
x1 x 2 + x 3
( FSP) 3x1 x 2
+ x4
= 18
x + 2 x
+ x5 = 6
2
1
x j 0 , j = 1,...,5
29
Se observ c matricea A a coeficienilor formei standard (FSP) conine baza unitar E = [ A3,A4,A5]
(deci FSP este chiar forma bun a lui P pentru aplicarea algoritmului Simplex Primal) a crei soluie
asociat:
1 = 0 , x2 = 0 , x3 = 4 , x4 = 18 , x5 = 6
este admisibil. n continuare sunt date tabelele rezultate prin aplicarea algoritmului simplex
(tabelele 4.2.1 - 4.2.4). n partea dreapt am indicat formele explicite ale problemei (FSP) n raport
, x 2 = 36
cu bazele cercetate. n trei iteraii s-a obinut soluia optim x1 = 42
, valoarea maxim a
5
5
funciei obiectiv fiind 24; variabilele de abatere au n soluia optim valorile x 3 = 145 , x 4 = x 5 = 0 .
2 1
0
0
B VVB A1 A2 A3 A4
A3
4
1 -1
1
0
A4 18
3 -1
0
1
A5
6
-1 2
0
0
f
0
-2 -1
*
*
22 A1
4
1 -1
1
0
0 A4
6
0 2
-3
1
0 A5 10
0 1
1
0
f
8
* -3
2
*
2 A1
7
1 0 -1/2 1/2
1 A2
3
0 1 -3/2 1/2
0 A5
7
0 0 5/2 -1/2
f
17
* * -5/2 3/2
cB
0
0
0
2
1
0
A1 42/5
A2 36/5
A3 14/5
f
24
1
0
0
*
0
1
0
*
Soluia
Baza
S0
S1
S2
S3
B0 = [A3 , A4 , A5]
B1 = [A1 , A4 , A5]
B2 = [A1 , A2 , A5]
B3 = [A1 , A2 , A3]
0
0
1
*
2/5
1/5
-1/5
1
0
A5
0
0
1
*
0
0
1
*
0
0
1
*
1/5
3/5
2/5
1
x1 - x2 + x3
3x1 - x2
+x4
-x1+2x2
-2x1 -x2
x1 -x2 + x3
2x2 -3x3 +x4
x2 + x3
-3x2 +2x3
x1
- 1/2x3+1/2x4
x2 -3/2x3+1/2x4
5/2x3 - 1/2x4
= 4
= 18
+x5 = 6
+f = 0
= 4
= 6
+x5 = 10
+f = 8
= 7
= 3
+x5 = 7
-5/2x3+3/2x4
+f = 17
+2/5x4 +1/2x5
= 42/5
x2
+1/5x4 +3/5x5
= 36/5
x3 -1/5x4 +2/5x5
= 14/5
x4 + x5 +f = 24
Tabelele 4.2.1 - 4.2.4
x1
Componentele
Soluia
soluiei de baz
generat de algoritm
programului
x1
x2
x3
x4
x5
(P)
0
0
4
18
6
(0 , 0)
4
0
0
6
10
(4 , 0)
7
3
0
0
7
(7 , 3)
42/5 36/5 14/5 0
0
(42/5 , 36/5)
Tabelul 4.2.5
Valoarea
funciei
obiectiv
0
8
17
24
Este util s recapitulm ntr-un tabel soluiile admisibile de baz ale programului (FSP) , efectiv
generate de algoritm , mpreun cu soluiile programului (P), asociate prin corespondena din
finalul seciunii 3.3 (vezi tabelul 4.2.5).
Urmrind imaginea grafic (fig. 4.2.1), deducem sensul geometric al algoritmului simplex:
procedura pleac dintr-un vrf al mulimii soluiilor admisibile apoi se deplaseaz ctre un vrf
vecin mai bun .a.m.d. pn la gsirea soluiei optime.
30
I. PROGRAMARE LINIARA
CURSUL 5
= 40
2x1 + x 2 x 3
2 x 1 + x 2 40
( P )
x 1 + 3 x 2 30
( FSP ) x1 + 3x 2
x4
= 30
x + x 30
x + x
+ x 5 = 30
1
2
2
1
x 1 0 , x 2 0
x j 0 , j = 1,...,5
Se constat c (FSP) nu este n forma bun neconinnd dect un singur vector al matricii unitare de
ordinul 3. Vom creea o asemenea matrice introducnd n primele dou restricii variabilele artificiale
x6 i x7. Obinem programul:
31
(max) f = 2 x1 + 3x 2 Mx 6 Mx 7
+ x6
= 40
2 x1 + x 2 x 3
( FBP ) x1 + 3x 2
x4
+ x 7 = 30 , M >> 0
x + x
+ x5
= 30
2
1
x j 0 , j = 1,...,7
Putem aplica algoritmul simplex programului (FBP) plecnd de la baza unitar E = [A6, A7, A5] i
de la soluia asociat acesteia:
x1 = x2 = x3 =x4 = 0
x5 = 30 , x6 = 40 , x7 = 30
Dup trei iteraii (vezi tabelele 4.3.1 - 4.3.4) se obine soluia optim a programului (FBP) n care
variabilele artificiale x6 , x7 au valoarea zero. Ignornd aceste valori se obine soluia optim a
formei standard (FSP) i implicit soluia optim a programului original (P):
x1 = 10 , x 2 = 20
f max = 80
B
A6
A7
A5
f
A6
A2
A5
f
A1
A2
A5
f
A1
A2
A4
f
2
VVB
A1
40
2
30
1
30
1
-70M
-3M-2
30
5/3
10
1/3
20
2/3
-30M+30 -5/3M-1
18
1
4
0
8
0
48
*
10
1
20
0
40
0
80
*
3
A2
1
3
1
-4M-3
0
1
0
*
0
1
0
*
0
1
0
*
0
0
0
-M
A3
A4
A5
A6
-1
0
0
1
0
-1
0
0
0
0
1
0
M
M
*
*
-1
1/3
0
1
0
-1/3
0
0
0
1/3
1
0
M
-M/3-1
*
*
-3/5
1///5
0
3/5
1/5
-2/5
0
-1/5
2/5
1/5
1
-2/5
-3/5
-4/5
*
M+3/5
-1
0
-1
1
1
0
2
-1
2
1
5
-2
1
*
4
M-1
Tabelele 4.3.1 - 4.3.4
-M
A7
0
1
0
*
-1/3
1/3
-1/3
4M/3+1
-1/5
2/5
-1/5
M+4/5
0
0
-1
M
Punctele din R2 corespunztoare celor patru soluii generate de algoritm sunt S0 = (0,0) , S1 = (0,10),
S2 = (18,4), S3 = (10,20). Urmrind fig. 4.3.1 se constat c punctele S0 i S1, ce corespund unor
soluii ale programului (FBP) n care cel puin o variabil artificial are valoare nenul, sunt n afara
mulimii AP n timp ce S2 i S3, corespunztoare unor soluii n care x6 = x7 = 0, sunt vrfuri ale
acestei mulimi.
32
I. PROGRAMARE LINIARA
x2
AP
x1
Pentru determinarea unei soluii admisibile de baz de start, n situaia n care programul
iniial (P) nu este n form bun, se poate aplica i aa numita metod a celor dou faze:
se introduc n restricii variabile artificiale, bineneles acolo unde este cazul, n scopul
formrii unei baze unitare de start (termenii liberi ai restriciilor se presupun a fi nenegativi);
n faza I se minimizeaz suma w a variabilelor artificiale introduse. Deoarece i aceste
variabile sunt supuse condiiei de nenegativitate, urmeaz c (min)w 0. n caz c (min)w > 0 este
clar c programul iniial (P) este incompatibil; dac (min)w = 0 se trece la:
faza a II-a, n care se optimizeaz funcia obiectiv a programului iniial (P) plecnd de la
soluia de baz rezultat la finele fazei I. (Atenie, la nceputul acestei faze, vom avea grij s
recalculm costurile reduse c j n raport cu coeficienii funciei obiectiv din (P)!)
Exemplul 4.4.1 Ne referim la programul (P) rezolvat n exemplul 4.3.1. Deoarece baza de
start a fost matricea unitate E = [A6,A7,A5], inversa bazei optime B = [A1,A2,A4] se citete din
ultimul tabel simplex:
33
1
0 1
B = [A , A , A ] = 1
0
2
2 1 5
O calitate remarcabil a algoritmului simplex este aceea c produce nu numai soluia
optim a problemei creia i se aplic ci i soluia optim a problemei duale.
1
S considerm un cuplu de probleme n dualitate n care una este n form standard (vezi seciunea
2.2):
max f ( x ) = cx
( P ) Ax = b
x0
min g( u ) = ub
( Q ) uA c
u oarecare
Teorema 4.4.1 Presupunem c (P) are o soluie optim x* asociat unei baze B. Atunci:
u* = cBB-1
(4.4.1)
este o soluie optim a problemei duale (Q).
Demonstraie: Vom arta c u* satisface restriciile uAj cj , j = 1,,n ale problemei duale (Q).
ntr-adevr u*Aj - cj =cBB-1Aj -cj = c j , conform (3.5.6). Avem c j 0 , j = 1,,n, deoarece x* este
prin ipotez soluia optim a programului (P), astfel c u* este o soluie a dualei (Q). Mai departe
f(x*) = g(u*) = cBB-1b. Concluzia teoremei decurge acum din teorema 2.3.1.
Exemplul 4.4.2 Ilustrm cele de mai sus, determinnd soluia optim a programului liniar:
( Q )2u1 + u2 + u3 2 ; u1 + 3u2 + u3 3
u1 0 , u2 0 , u3 0
34
I. PROGRAMARE LINIARA
care este dualul programului (P) rezolvat n exemplul 4.3.1. Dup adugarea variabilelor de abatere
i a celor artificiale, din (P) s-a obinut programul (P1) = (FBP) al crui dual este:
min g( u ) = 40u1 + 30u2 + 30u3
2u1 + u2 + u3 2
u1 + 3u2 + u3 3
u1
0
u2
0
( Q1 )
u3 0
M
u1
u2
M
u1 , u2 , u3 f.r.s.
Restricia u3 0 este de fapt condiia de nenegativitate impus variabilei u3 n (Q) iar -u1 0 , -u2
0 nseamn u1 0 , u2 0. Ultimele dou restricii din (Q1) sunt superflue pentru c M este prin
definiie >>0. Prin urmare (Q) i (Q1) coincid. Din tabelul simplex 4.3.4 extragem inversa bazei
optimale comune B = [ A1,A2,A4] a programelor (P) i (P1) - vezi exemplul precedent - astfel c
soluia optim a problemei duale (Q) este :
1
0 1
B 1
u = c B = [ 2 3 0] 1 0
2 = [ 1 0 4]
2 1 5
adic: u1 = 1, u2 = 0, u3 = 4.
Observaie: Folosind notaiile din 3.5 punem n eviden componentele vectorului linie cBB-1:
j = c B A j = c i a ij j J
iI
i deci mrimile j sunt efectiv calculate n procesul evalurii coeficienilor c j ! Acesta este i
motivul pentru care de multe ori mrimile j sunt puse n eviden ntr-o linie separat plasat n
tabelul simplex deasupra liniei test. Cu aceste pregtiri, formula (4.4.1) arat c:
Soluia optim a problemei duale este dat de coeficienii j din tabelul simplex al problemei
primale, corespunztori coloanelor unitare care au format baza de start.
35
ciclare, dei teoretic posibil, nu a fost ntlnit n nici o aplicaie practic, existena lui fiind probat
doar prin cteva exemple artificial construite.
+ 12 x 4 12 x 5 12 x 6 + 3x 7 = 0
x2
x3
+ x6
=1
(max)f = 3 x 20 x + 1 x 6 x
4 4
2 6
5
7
O baz admisibil de start este B0 = E = [A1,A2,A3] a crei soluie asociat x0 este degenerat. ntradevr, variabilele bazice au valorile:
x1 = 0 , x2 = 0 , x3 = 1 (toate celelalte variabile fiind nule)
Propunem cititorului s arate c succesiunea de baze admisibile:
B1 = [A4,A2,A3] , B2 = [A4,A5,A3] , B3 = [A6,A5,A3] , B4 = [A6,A7,A3], B5 = [A6,A2,A3] , B6
=[A4,A2,A3]
poate fi dedus din B0 prin aplicarea regulilor algoritmului simplex. Se constat fr dificultate c
valoarea funciei obiectiv n soluiile de baz asociate este zero i c nici una din aceste soluii, toate
degenerate, nu verific criteriul de optimalitate. Pe de alt parte observm c baza B6 este identic cu
baza B1 i deci algoritmul intr ntr-un ciclu infinit fr a putea determina soluia optim (care exist
i este unic dup cum vom vedea).
Pentru problemele ale cror soluii de baz admisibile sunt toate nedegenerate convergena
algoritmului este asigurat de urmtoarea:
Teorema 4.5.1 Dac programul n form standard (P) este compatibil i toate soluiile sale
admisibile de baz sunt nedegenerate atunci aplicarea algoritmului simplex descris n 4.2 se
termin ntr-un numr finit de iteraii, fie cu gsirea soluiei optime, fie cu concluzia c programul
are optim infinit.
Demonstraie: Fie x 0 , x 1 , x 2 ,... soluiile cercetate n cursul aplicrii algoritmului , x 0 fiind soluia
iniial. Avem f ( x 0 ) f ( x 1 ) f ( x 2 ) ....
Ipoteza nedegenerrii precum i formula (4.2.3) arat c de fapt f ( x 0 ) < f ( x 1 ) < f ( x 2 ) ... i deci
nici o soluie admisibil de baz nu va fi cercetat de dou ori. Concluzia teoremei rezult acum
din faptul c numrul soluiilor de baz este finit (vezi seciunea 3.5).
Din fericire, exist proceduri de evitare a ciclrii care constau ntr-o mic modificare a regulii
(4.2.2). Ele sunt ncorporate n orice pachet de programe destinat rezolvrii problemelor de
programare liniar. O asemenea metod este descris n www.asecib.ase.ro Cursuri on-line 9.
Nica V. i colectiv, Cercetri Operaionale I.
36
I. PROGRAMARE LINIARA
max f = cx
Ax = b
x0
reprezint modelul de optimizare a activitii unei firme (seciunea 1.1, exemplul 1). Se cere
determinarea combinaiei de bunuri ce urmeaz a fi realizate precum i a cantitilor n care acestea
vor fi produse astfel nct venitul firmei s fie maxim cu condiia consumrii integrale a resurselor
disponibile. Ultima cerin nu este deloc restrictiv ntruct n lista activitilor productive putem
include la nevoie un numr de activiti fictive ale cror nivele s reprezinte resursele neconsumate
(aceste activiti fictive corespund variabilelor de abatere).
O prim concluzie care se desprinde din teoria metodei simplex este aceea c n orice soluie
optim a modelului numrul bunurilor ce vor fi efectiv realizate este cel mult egal cu numrul
resurselor folosite.
Aceasta rezult din faptul c n orice soluie de baz numrul componentelor nenule nu
depete numrul restriciilor. n consecin, realizarea unor bunuri ce nu sunt incluse n "lista
optim" implic adugarea unor noi restricii n model, fapt care duce la diminuarea optimului
iniial.
S considerm acum un program de producie "de baz", adic o soluie admisibil de baz,
asociat unei baze B. Activitile i corespunztoare coloanelor Ai din B vor fi numite n continuare
activiti de baz, iar celelalte activiti secundare. Conform definiiei, acest program nu prevede
folosirea activitilor secundare iar cantitile de bunuri realizate n activitile de baz trebuie astfel
dimensionate nct s se asigure consumarea ntregului stoc de resurse. n notaiile seciunii 3.5 :
BxB = b , xS = 0
de unde xB = B-1b =b
Dup cum se vede, lista activitilor de baz determin n mod unic cantitile de bunuri ce pot fi
produse i ca atare detectarea unui program mai bun se poate face numai studiind oportunitatea
utilizrii unor activiti secundare care s nlocuiasc o parte din activitile bazice curente. Pentru
aceasta avem nevoie de un criteriu care s permit compararea unei activiti secundare j cu grupul
activitilor de baz. S examinm coloana Aj a tabelului simplex asociat bazei B. Conform (3.5.3)
Aj = B-1Aj de unde Aj = B.Aj sau:
A j = a1 j A1 + a 2 j A 2 +....+ a mj A m
(4.6.1)
n ipoteza c B = A1 , A 2 ,..., A m . Sensul economic al egalitii (4.7.1) este urmtorul: din punctul
de vedere al consumului de resurse producerea unei uniti din bunul j este echivalent cu
producerea cantitilor a1 j , a 2 j ,..., a mj din bunurile activitilor de baz. n consecin, dac se
dorete producerea unei uniti din bunul j, producia activitilor de baz trebuie diminuat cu
cantitile a1 j , a 2 j ,..., a mj . Analiza oportunitii introducerii n fabricaie a bunului j se va face prin
compararea aportului su la creterea venitului firmei cu aportul valoric al cantitilor
a1 j , a 2 j ,..., a mj . Astfel, realizarea unei uniti din bunul j determin creterea valorii curente a
funciei obiectiv cu preul su cj n timp ce renunarea la producerea cantitilor a1 j , a 2 j ,..., a mj
nseamn diminuarea aceleiai valori cu suma c1a1 j + c2 a 2 j +...+cm a mj . Prin urmare dac diferena:
c j = c1a1 j + c2 a 2 j +...+ cm a mj c j este 0 realizarea bunului j nu este rentabil deoarece nu duce la
creterea valorii produciei asigurate prin programul curent. Dac cj 0 pentru toate activitile
secundare, programul de fabricaie curent este optim. Am regsit astfel criteriul de optimalitate din
37
teorema A seciunea 4.1. Dac cj < 0, utilizarea activitii secundare j duce la o sporire a venitului
realizabil prin programul curent, viteza de cretere fiind -cj . Interpretarea criteriului de intrare n
baz (4.2.1) este acum clar: dac mai multe activiti secundare sunt rentabile n raport cu grupul
activitilor de baz este preferat activitatea care asigur cea mai ridicat vitez de cretere a valorii
curente a produciei. Fie k aceast activitate. Ultima problem const n stabilirea cantitii din bunul
k ce poate fi realizat n condiiile date. Conform celor de mai sus producerea unei cantiti din
acest bun implic micorarea produciei din bunurile activitilor de baz cu cantitile
a1k , a 2 k ,..., a mk :
x1 = b1 a1k , x 2 = b2 a 2 k ,..., x m = bm a mk
Deoarece desfurarea unei activiti la un nivel negativ este lipsit de sens va trebui s avem
bi aik 0 i = 1,.., m de unde:
0 = min
i ,a
ik
>0
bi
aik
(excludem cazul optimului infinit, nesemnificativ din punct de vedere economic). Dac 0 =
br
i
a rk
= 0 obinem creterea maxim a valorii curente a produciei prin utilizarea activitii k. n acest
br
a rk = 0 . Am obinut din nou
a rk
38
I. PROGRAMARE LINIARA
CURSUL 6
x 0
( P ) x j 0 j = 1,..., n
(max) f = cx
n
(max) f = c x
j j
j =1
(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
(max) f = f c S x S
j J
x B + Sx S = b
( PB ) xi + aij x j = bi
j J
B
S
x 0 , x 0
xi 0 , i I ; x j 0 , j J
(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
a ij ui c j j = 1,..., n
uA c
i =1
(min) g = ub
m
(min) g = bi ui
i =1
(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 u i v j = c j
uA v = c
i =1
(min) g = ub
m
(min) g = b u
i
i
i =1
Partiionnd:
v = v B , v S cu v B = [vi ]i I , v S = v j
[ ]
j J
39
uB v B = c B
uA v = c u[ B, S ] v B , v S = c B , c S
S
S
uS v = c
Deoarece B este nesingular din (5.1.1) rezult:
] [
(511
..)
(512
.. )
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
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
v j aij vi = c j j J
j J
i I
( PB ) xi 0 , i I ; x j 0 , j J
(QB ) v j 0 , j J ; vi 0 , i I
vi b i
cj xj
(max) f = f j
(min) g = f + i
I
J
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
c
(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 .
40
I. PROGRAMARE LINIARA
(5.1.5)
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
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 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.
41
(b r < 0)
i I
rj
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:
3 x1 + 2 x 2 x 3 + x 4
= 3
4 x1 x 2 x 3
+ x 5 = 4
42
I. PROGRAMARE LINIARA
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
12
2
6
VVB A1
A2
A3
-3
3
2
-1
-4
-4
-1
-1
0
-12
-2
-6
-11
-5
0
-3
4
4
1
1
8
-4
*
-4
11/5
1
0
3//5
-24/5
0
1
-7/5
84/5
*
*
-8/5
1/7
1
3/7
0
24/7
0
-5/7
1
156/7
*
-8/7
*
Tabelele 5.2.1 - 5.2.4
0
A4
1
0
*
1
0
*
-1//5
4/5
-4/5
1/7
-4/7
-12/7
0
A5
0
1
*
2
-1
-2
-2/5
3/5
-18/5
-1/7
-3/7
-30/7
P ( A , b , c) x 0
(max) f = cx
43
Se poate ntmpla ca unele dintre aceste elemente s nu fie cunoscute cu exactitate, ele
oscilnd n jurul unor valori "probabile", ca n urmtoarele exemple:
"experii firmei estimeaz c pentru luna urmtoare preul bunului ... va fi n jur de 18 u.m."
sau:
"directorul executiv apreciaz c pentru luna urmtoare disponibilul resursei ... va fi cam de
130 uniti".
n asemenea situaii suntem interesai s tim dac la variaii "mici" ale unor constante
corespund variaii "mici" ale soluiei modelului, altfel spus, dac soluia modelului depinde
"continuu" de aceste constante. Dac este aa, vom spune c soluia modelului este stabil.
Studiul stabilitii este important din punct de vedere economic deoarece este posibil ca
variaii mici ale unor constante s antreneze modificri majore n soluia optim i n acest caz este
necesar s tim cauzele i proporiile instabilitii pentru a putea lua decizia adecvat.
n acest context, analiza sensitivitii are ca obiect studiul stabilitii soluiei optime a unei
probleme de optimizare. n cazul liniar, pentru fiecare constant se poate determina un interval de
variaie cu proprietatea c baza optimal sau chiar soluia asociat rmn neschimbate. Acest interval
se numete interval de stabilitate al soluiei optime n raport cu coeficientul considerat.
Relund problema firmei sunt situaii n care constantele modelului sunt cunoscute cu
exactitate i fixate doar pe o anumit perioad, o parte din ele suferind modificri de mai mic sau
mai mare amplitudine prin trecerea la o nou perioad. Ce efect au aceste schimbri asupra soluiei
optime este o alt chestiune cu serioase motivaii economice. De exemplu, suntem interesai n a
afla dac optimalitatea unei combinaii de bunuri se mai menine cnd profitul unui bun rentabil
scade. Mai departe, ne putem ntreba ce se ntmpl dac disponibilul de resurse sufer unele
ajustri. De asemenea este interesant de vzut ce efect are introducerea unei noi activiti
productive, considerarea unei noi resurse al crei disponibil limitat face inoperant programul de
producie actual sau modificarea tehnologiei de transformare a resurselor n bunuri.
Evident, la toate aceste ntrebri se poate rspunde rezolvnd de sine stttor problema
modificat. n continuare, vom arta cum se obine soluia problemei modificate plecnd de la
soluia problemei originale. Subiectul n discuie este tentant din start, deoarece este din nou de
ateptat ca, la mici modificri ale datelor iniiale, s rezulte schimbri de mic amploare n soluia
optim original, schimbri ce se pot determina cu un efort de calcul relativ mic, oricum mai mic
dect n cazul n care problema modificat ar fi rezolvat "de la capt".
Problematica relevat este cunoscut sub numele de postoptimizare.
n fine, programarea parametric se ocup de studiul comportrii soluiei unei probleme de
optimizare atunci cnd una sau mai multe constante ale problemei depind de un sistem de
parametri. (Ne vom mrgini aici numai la cazul dependenei liniare de un singur parametru.)
Cele trei teme sunt strns legate ntre ele. n esen, determinarea unui interval de stabilitate a
soluiei optime n raport cu un coeficient este o problem parametric n care nsui coeficientul
respectiv este considerat ca parametru. De asemenea o problem de postoptimizare poate fi privit ca
un caz particular al unei probleme mai generale, parametrice etc.
44
I. PROGRAMARE LINIARA
Produse
Resurse
R1
R2
R3
Consumuri specifice
A1
A2
A3
1
2
1
1
1
2
2
1
3
Disponibil
130
100
140
Desigur, n compararea diferitelor moduri de utilizare a resurselor trebuie avut n vedere un criteriu
de performan cum ar fi maximizarea profitului total sau a venitului total sau a ratei profitului,
minimizarea costului produciei etc. Se poate pune chiar problema elaborrii unui program de
fabricaie acceptabil din punctul de vedere al mai multor criterii ca n cadrul analizei multicriteriale,
dar acest subiect nu va fi tratat n cadrul acestui curs.
max f = 3x1 + 4 x 2 + 2 x 3
Aducem problema (P) la forma standard prin introducerea variabilelor de abatere x4, x5, x6 .
Reamintim coninutul economic al noilor variabile. Deoarece expresia x1 + 2x2 + x3 din membrul
stng al primei restricii reprezint cantitatea din resursa R1 necesar pentru realizarea combinaiei
de bunuri (x1, x2, x3) iar termenul liber 130 este cantitatea disponibil din aceeai resurs, urmeaz c
diferena 130 - (x1 + 2x2 + x3), ce definete valoarea variabilei de abatere x4, va semnifica tocmai
cantitatea din R1 nefolosit. Analog, x5 i x6 vor reprezenta cantitile din R2 i R3 neutilizate.
Aplicm algoritmul simplex plecnd de la baza unitar de start E = [A4,A5,A6]:
CB
0
0
0
A4
A5
A6
f
VV
B
130
100
140
0
3
A1
4
A2
2
A3
0
A4
0
A6
0
A6
1
1
2
-3
2
1
1
-4
1
2
3
-2
1
0
0
*
0
1
0
*
0
0
1
*
45
4
0
0
4
0
3
A2
A5
A6
f
A2
A5
A1
f
65
35
75
260
40
10
50
310
1/2
1/2
3/2
-1
0
0
1
*
1
0
0
*
1
0
0
*
1/2
3/2
5/2
0
-1/3
2/3
5/3
5/3
1/2
-1/2
-1/2
2
2/3
-1/3
-1/3
5/3
0
1
0
*
0
1
0
*
0
0
1
*
-1/3
-1/3
2/3
2/3
Pe baza informaiilor numerice cuprinse n tabelul 6.1.4 al soluiei optime echipa C.O. a formulat
urmtoarele concluzii:
Profitul maxim pe care firma l poate obine lund n calcul numai datele prezentate este
de 310 u.m. Aceast valoare reprezint limita superioar a posibilitilor actuale i s-ar obine dac
nu ar exista nici un fel de probleme n legtur cu procurarea altor resurse, cu situaia vnzrilor i
n general cu tot ce ine de actul complex al aprovizionrii, produciei i desfacerii. Marja de
manevr a conducerii este limitat nu numai de plafoanele resurselor considerate ci i de o mulime
de ali factori (unii controlabili alii nu) astfel c n realitate profitul este mai mic. Totui cifra
obinut trebuie considerat ca o valoare de referin n raport cu care este necesar s fie evaluate
toate celelalte decizii privind producia.
n contextul dat, combinaia optim de bunuri se compune din:
A 3 = BA 3 = 13 A 2 + 23 A 5 + 53 A1
Se conchide c producerea unei uniti din A3 ar implica creterea produciei din A2 cu 1/3 uniti i
diminuarea produciei din A1 cu 5/3 uniti. Variaia profitului are expresia:
2 ( 13 4 + 23 0 + 53 3) = 53 u. m. = c3
Prin urmare profitul total ar scdea cu 5/3 u.m. la fiecare unitate din A3 inclus n programul de
fabricaie. n consecin A3 nu este rentabil a fi realizat dac se are n vedere n exclusivitate criteriul
de performan ales. Dup cum vom vedea n continuare, situaia produsului A3 se va schimba n
raport cu alte criterii de evaluare.
Resursele R1 i R3 sunt prevzute a se consuma n ntregime deoarece n soluia optim
46
I. PROGRAMARE LINIARA
x ' B = x = B 1b' = B 1b + B 1 b = 10 + 13 1 13 0 =
x5
50 1 0 2 b
1
3 3
3
40 + 2 b 1 b
3 1 3 3
1
1
= 10 b b
3 1 3 3
1
2
50 3 b1 + 3 b3
Meninerea structurii sortimentale optime actuale nseamn:
2 b + 1 b 40
3 1 3 3
B
x ' 0 1 b + 1 b 10
3 1 3 3
1
2
3 b1 3 b3 50
Variaia valorii (optime) a funciei obiectiv la modificrile survenite este dat de formula:
f = c B x ' B c B x B = c B ( B 1b + B 1 b ) c B B 1b = c B B 1 b = u b =
= 5 b + 2 b3
3 1 3
Maximiznd f pe domeniul determinat de inegalitile precedente se gsete (fie grafic fie cu
ajutorul algoritmului simplex):
( b1)* = 30
( b3)* = 0 (max)f = 50
Recapitulnd, dac vectorul disponibilului ar fi:
130 + 30 160
b = 100 = 100
140 + 0 140
atunci resursele ar fi n ntregime consumate, combinaia optim de bunuri ar fi:
x1 = 50 13 30 = 40 uniti din A1 , x 2 = 40 + 23 30 = 60 uniti din A2 , x 3 = 0
iar profitul maxim ar avea valoarea 310 + 50 =360 u.m.
S presupunem acum c firma hotrte s pstreze pentru mai multe perioade (luni)
viitoare actuala structur sortimental n cadrul creia produce numai bunurile A1 i A2. Pe parcurs
ns pot interveni modificri ale profiturilor unitare sau schimbri de la o lun la alta n disponibilele
resurselor (urmare a unor modificri n structura costurilor de producie, scderi i/sau creteri de
preuri pe piaa de desfacere, schimbri n structura programelor de aprovizionare cauzate de
modificarea preurilor materiilor prime la furnizori etc.).
47
n aceast situaie conducerea este interesat n a ti ntre ce limite poate varia profitul unui
produs sau disponibilul unei resurse astfel nct actuala structur a produciei s se menin.
S considerm profitul unitar al bunului A1 a crui valoare luat n calculele anterioare este
3u.m. Recalculm costurile reduse c3 ,c4 i c6 nlocuind 3 cu profitul variabil c1 (vezi tabelul
6.1.4) i impunem condiia de optimalitate cj 0. Obinem:
c3 = ( 13 ) 4 + 23 0 + 53 c1 2 = 53 c1 103 0
c4 =
2
3
4 + ( 13 ) 0 + ( 13 ) c1 0 = 83 13 c1 0
c6 = ( 13 ) 4 + ( 13 ) 0 +
2
3
c1 0 = 23 c1
4
3
din care rezult intervalul de stabilitate: 2 c1 8. Deci att timp ct profitul pe unitatea de produs
A1 se menine ntre 2 i 8 u.m. programul de producie optim rmne neschimbat:
x1 = 50 x 2 = 40 x 3 = 0
numai profitul total maxim variaz: max f = 50 c1 +4 40 = 160 + 50 c1.
Pentru profiturile unitare ale bunurilor A2 i A3 intervalele de stabilitate corespunztoare sunt
3
, c3 113 .
2 c2 6
Recalculm valorile variabilelor bazice x2, x5 i x1 reunite n vectorul xB, nlocuind
disponibilul actual al resursei R1 de 130 uniti cu disponibilul variabil b1. Condiia de optimalitate
xB 0 conduce la inegalitile:
2
140
x2
b1 23 0 13 b1
3 b1 3
x = B 1 100 = 1 1 1 100 = 1 b + 100 140 0
3
3
3 1
5
3
x1
140 13 0 23 140 13 b1 + 280
3
c
b1 70 , b1 160 , b1 280
din care rezult intervalul de stabilitate: 70 b1 160. n concluzie, dac firma menine disponibilul
resursei R1 ntre 70 i 160 uniti n combinaia optim vor intra numai bunurile A1 i A2 dar n
cantitile variabile:
x1 =
280
3
13 b1
x 2 = 23 b1 140
3
48
I. PROGRAMARE LINIARA
CURSUL 7
6.2 Postoptimizare: A) cazul n care se modific unii coeficieni din funcia obiectiv (c)
Cazuistica postoptimizrii cuprinde:
A) Cazul n care se modific unii coeficieni din funcia obiectiv (c);
B) Cazul n care modificrile se produc n vectorul termenilor liberi (b);
C) Introducerea unei noi activiti n model;
D) Adugarea unei noi restricii;
E) Modificarea unei coloane din matricea coeficienilor.
Concret, n cadrul cursului vom aborda cazurile A, B i D. Pentru cazurile C i E, a se vedea
www.asecib.ase.ro Cursuri on-line 9. Nica V. i colectiv, Cercetri Operaionale I.
Problema original
Ax = b
( P) x 0
(max) f = cx
Problema modificat
Ax = b
( P ') x 0
(max) f ' = c' x
unde c' = (c1' , c2' ,..., cn' ) este vectorul noilor coeficieni ai funciei obiectiv. S presupunem c (P) a
fost deja rezolvat cu ajutorul algoritmului simplex i c soluia optim x* este asociat unei baze B.
Se remarc faptul c (P) i (P') au aceeai mulime de soluii admisibile. n consecin, x* este o
soluie de baz admisibil pentru programul modificat (P'). Pentru a testa optimalitatea soluiei x* n
raport cu noua funcie obiectiv se recalculeaz costurile reduse:
c j = c' B B 1 A j c j
j J
Dac toi c'j 0 , j J , x* este soluie optim i pentru (P'). n caz contrar, rezolvarea programului
(P') se face cu ajutorul algoritmului simplex primal, lund x* ca soluie de start.
Exemplul 6.2.1 n studiul, de caz din seciunea 6.1 am determinat intervalele de stabilitate
ale soluiei optime x* n raport cu fiecare din coeficienii c1, c2, c3 ai funciei obiectiv. Deoarece
valorile actuale 3, 4, 2 u.m. ale acestor coeficieni sunt situate n interiorul intervalelor de stabilitate
corespunztoare, conchidem c soluia x* este stabil n raport cu fiecare din ei i chiar cu ansamblul
lor: variaii "mici" (de cteva procente, s zicem) ale profiturilor unitare n jurul valorilor actuale nu
modific soluia optim gsit i implic doar o variaie "mic" a profitului total.
Pentru exemplificare, s presupunem c profiturile bunurilor A1 i A3 cresc cu 5% iar profitul
bunului A2 scade cu 10%:
5
10
5
c1 = 3 + 100
3 = 315
,
c 2 = 4 100
4 = 3,6 c 3 = 2 + 100
2 = 2,1
49
Prin urmare efectul combinat al schimbrilor survenite n structura vectorului profiturilor unitare se
materializeaz doar ntr-o reducere a profitului total cu 310 - 301,5 = 8,5 u.m. ceea ce reprezint
2,74% din valoarea iniial!
Altfel stau lucrurile dac, de exemplu, profitul unitar al bunului A1 ar fi de 2 u.m. n loc de 3
u.m. Ne reamintim c 2 este extremitatea stng a intervalului de stabilitate al soluiei x* n raport cu
c1 = 3! Introducem aceste modificri n tabelul 6.1.4 obinnd tabelul 6.2.2.
CB
4
0
2
B
A2
A5
A1
f
VVB
40
10
50
260
2
A1
0
0
1
*
4
A2
1
0
0
*
2
A3
-1/3
2/3
5/3
0
0
A4
2/3
-1/3
-1/3
2
0
A5
0
1
0
*
0
A6
-1/3
-1/3
2/3
0
Tabelul 6.2.2
Se observ c c3 = 0 , c6 = 0 de unde tragem concluzia c problema are mai multe soluii optime
de baz (vezi seciunea 4.2). Acestea se obin introducnd succesiv n baza curent coloanele A3 i
A6 (vezi tabelele 6.2.3 - 6.2.4).
2
4
2
0
0
0
1
2
3
4
5
CB B VVB A
A
A
A
A
A6
2
4 A
45
0
1
0
1/2
1/2
-1/2
2 A3
15
0
0
1
-1/2
3/2
-1/2
2 A1
25
1
0
0
3/2
-5/2
3/2
f
260
*
*
*
2
0
0
Tabelul 6.2.3
CB
4
0
0
B
A2
A5
A6
f
VVB
65
35
75
260
2
A1
1/2
1/2
3/2
0
4
A2
1
0
0
*
2
A3
1/2
3/2
5/2
0
0
A4
1/2
-1/2
-1/2
2
0
A5
0
1
0
*
0
A6
0
0
1
*
Tabelul 6.2.4
x4 =
0
x5 = 10 1 + 35 3
x6 =
75 3
50
I. PROGRAMARE LINIARA
Exemplul 6.2.2 n studiul de caz din seciunea 6.1 a fost avansat o propunere de program de
producie care urmrea maximizarea profitului total. n prezent, firma vinde produsele A1, A2, A3 la
preurile 12,18 respectiv 16 u.m. astfel c profitul maxim de 310 u.m. ar corespunde unui venit total
de:
50 12 + 40 18 = 1320 u.m.
n varianta construit rata profitului ar fi de
310
1320
propunerea de plan elaborat n 6.1 maximizeaz venitul total al firmei, bineneles n ipotezele date
adic mrginindu-ne numai la resursele R1, R2, R3 i la bunurile A1, A2, A3 ! Pentru a rspunde la
ntrebare, n tabelul simplex optim 6.1.4 schimbm coeficienii c1 = 3, c2 = 4, c3 = 2 ai funciei
"profit total" f cu coeficienii c1 = 12 , c2 = 18 , c3 = 16 ai funciei "venit total" f' i recalculm
costurile reduse c3 , c 4 , c 6 . Gsim: c3 = 2 , c4 = 8 , c6 = 2 . Deoarece c3 < 0 , soluia care
maximizeaz profitul total nu conduce i la un venit maxim: introducerea bunului A3 n combinaia
actual ar majora venitul actual de 1320 u.m. cu 2 u.m. pe unitatea de produs A3!
Aplicnd algoritmul simplex primal, ntr-o singur iteraie se obine soluia care
maximizeaz venitul total (vezi tabelele 6.2.5 - 6.2.6):
51
Dei rata profitului a sczut cu 23,5 - 18,1 = 5,4% noua soluie are o serie de caliti: asigur
o producie diversificat ntruct se produc toate bunurile i utilizeaz integral resursele disponibile.
S observm de asemenea c preurile duale optime ale celor trei resurse s-au modificat:
u1 = 7 , u2 = 3 , u3 = 1 fa de u1 = 53 , u2 = 0 , u3 =
2
3
Se justific astfel afirmaia din seciunea 2.4 potrivit creia preurile duale nu reflect
valoarea intrinsec a resurselor ci arat msura implicrii acestora n procesul de optimizare a
obiectivului urmrit.
Exemplul 6.2.3 Am vzut c n soluia care maximiza profitul, resursa R2 nu era folosit n
ntregime. Se poate pune problema determinrii unei soluii care s maximizeze profitul cu condiia
utilizrii integrale a acestei resurse. Pentru a obine un rspuns prin reoptimizare, transformm
variabila de abatere x5 n variabil artificial nlocuind n funcia obiectiv coeficientul su c5 = 0 cu o
constant negativ -M << 0. Introducem acest coeficient n tabelul 6.1.4 i aplicm algoritmul
simplex primal. Invitm cititorul s fac calculele necesare anunndu-l c va trebui s obin soluia
care maximizeaz venitul firmei.
6.3 Postoptimizare: B) cazul n care modificrile se produc n vectorul termenilor liberi
(b)
Problema original
Ax = b
( P ) x 0
(max) f = cx
Problema modificat
Ax = b'
( P ') x 0
(max) f = cx
este noul vector de termeni liberi. Se observ uor c (P) i (P') au aceleai
baze dual admisibile. Fie B o baz optimal a programului (P). Calculm soluia x' a programului
modificat (P'), asociat bazei B:
x'B=B-1b'
x'S=0
Cum am remarcat deja, x' este o soluie dual admisibil pentru (P'). Dac x'B 0 atunci x' este i
admisibil i deci optim. Altminteri, rezolvarea problemei (P') se va face cu ajutorul algoritmului
simplex dual, lund x' ca soluie de start.
a 21 x1 + a 22 x 2 +...+ a 2 n x n = b2
........................................
( P)
a m1 x1 + a m2 x 2 +...+ a mn x n = bm
x1 0, x 2 0,..., x n 0
(max) f = c1 x1 + c2 x 2 +...+ cn x n
Problema modificat
a11 x1 + a12 x 2 +...+ a1n x n = b1
a 21 x1 + a 22 x 2 +...+ a 2 n x n = b2
.........................................
( P ') a m1 x1 + a m2 x 2 +...+ a mn x n = bm
x + x +...+ x
2 2
n n
1 1
x1 0, x 2 0,..., x n 0
(max) f = c1 x1 + c2 x 2 +...+ cn x n
52
I. PROGRAMARE LINIARA
Fie B baza optim a programului (P) gsit prin aplicarea algoritmului simplex. n consecin, forma
explicit a problemei (P) n raport cu baza B:
xi + a ij x j = b i , i I
j J
( PB ) xi 0, i I ; x j 0, j J
(6.5.1)
cjxj = f
f + j
J
este disponibil, constantele alctuitoare formnd tabelul simplex optim. Dac soluia optim x* a
programului (P) verific restricia suplimentar atunci x* este soluia optim i a problemei extinse.
n caz contrar, adic atunci cnd :
(6.5.2)
1x1 + 2 x2 +...+ n xn + xn +1 =
(6.5.3)
Folosind forma explicit (6.5.1.) eliminm din (6.5.3.) variabilele bazice xi , iI (n caz c
apar). Obinem o egalitate de forma:
j x j + x n +1 =
(6.5.4.)
j J
= j x*j < 0
conform (6.5.2.)
j =1
Adugnd (6.5.4.) la (6.5.1) obinem forma explicit a programului extins P' n raport cu baza B'
format din coloanele bazei B (coloane extinse cu coeficienii corespunztori din restricia
suplimentar ! ) plus coloana unitar:
An+1=(0,0,...,o,1)TRn+1
Soluia asociat acestei baze:
xi=bi ,iI ; xn+1=<0 ; xj=0 , jJ
(6.5.5)
nu este admisibil dar verific criteriul de optimalitate, altfel spus este dual admisibil. n
consecin, pentru rezolvarea problemei extinse (P') vom aplica algoritmul simplex dual, pornind de
la soluia (6.5.5).
Exemplul 6.5.1 n studiul de caz din seciunea 6.1, la elaborarea programului de producie
care maximizeaz profitul total, au fost avute n vedere numai resursele R1, R2, R3 . Dac n
procesul de producie sunt folosite i alte resurse, se nate ntrebarea dac nu cumva soluia gsit
implic consumuri ce depesc disponibilul din acestea. Pentru exemplificare, s considerm o a
patra resurs R4 al crei stoc disponibil b4 nu este deocamdat stabilit. Pentru cele trei bunuri A1, A2,
A3 consumurile specifice din R4 sunt de 2, 2 respectiv 1 uniti. Condiia de ncadrare a consumului
din R4 n disponibil conduce la inegalitatea:
(6.5.6)
2 x1 + 2 x 2 + x 3 b4
Pentru ca soluia care maximizeaz profitul total:
x1 = 50 x 2 = 40 x 3 = 0
(6.5.7)
53
b4 180
Prin urmare dac firma reuete s asigure un disponibil de cel puin 180 uniti din R4, programul
(6.5.7) nu sufer modificri. Dac b4 < 180, soluia (6.5.7) nu mai satisface restricia suplimentar
(6.5.6).S vedem ce se ntmpl n acest caz!
Transformm (6.5.6) n egalitate, adugnd variabila de abatere x7:
2 x1 + 2 x 2 + x 3 + x 7 = b4
(6.5.8)
Exprimm variabilele bazice x1 , x2 n funcie de cele nebazice folosind datele din tabelul 6.1.4:
40 = x 2 13 x 3 + 23 x 4 13 x 6
x 2 = 40 + 13 x 3 23 x 4 + 13 x 6
50 = x1 + 53 x 3 13 x 4 + 23 x 6
x1 = 50 53 x 3 + 13 x 4 23 x 6
(6.5.9)
(6.5.10)
B
A2
A5
A1
A7
f
VVB
40
10
50
b4 - 180
310
3
A1
0
0
1
0
*
4
A2
1
0
0
0
*
2
A3
-1/3
2/3
5/3
-5/3
5/3
0
A4
2/3
-1/3
-1/3
-2/3
5/3
0
A5
0
1
0
0
*
0
A6
-1/3
-1/3
2/3
-2/3
2/3
0
A7
0
0
0
1
*
Tabelul 6.5.1
Conform instruciunilor algoritmului simplex dual, A7 prsete baza curent. Raportnd costurile
reduse cj la elementele corespunztoare, dar negative din linia "A7" a tabelului 6.5.1 gsim c A3
sau A6 trebuie s intre n baz pentru a asigura dual admisibilitatea noii soluii (adic satisfacerea
testului de optimalitate). Din punct de vedere economic,se impune introducerea lui A3 pentru c
aceasta ar nsemna includerea bunului A3 n programul de fabricaie, bineneles n ipoteza c noua
soluie ar fi i primal admisibil!
nlocuind A7 cu A3 n baza curent obinem soluia dual admisibil din tabelul 6.5.2 (pivotul
transformrii este deja marcat n tabelul 6.5.1):
CB
4
0
3
2
B
VVB
A1 A2
A2 76 - (1/5)b4 0
1
A5 (2/5)b4 - 62 0
0
A1
b4 - 180
1
0
3
A
108 0
0
(3/5)b4
f
130 + b4
*
*
A3
0
0
0
1
A4
4/5
-3/5
-1
2/5
A5
0
1
0
0
A6
-1/5
-3/5
0
2/5
A7
-1/5
2/5
1
-3/5
Tabelul 6.5.2
54
I. PROGRAMARE LINIARA
76 15 b4 0 b4 380
2
b4 155
5 b4 62 0
(6.5.11)
155 b4 180
b4 130 0 b4 130
108 53 b4 0 b4 180
n concluzie, dac b4 satisface (6.5.11) atunci soluia din tabelul 6.5.2 adic:
x1 = b4 130 x 2 = 76 15 b4
x 3 = 108 35 b4
(6.5.12)
este optim, aducnd firmei, n caz de realizare un profit de 130 + b4 u.m. Toate resursele sunt
prevzute a fi utilizate integral cu excepia lui R2 din care rmn x5 = 25 b4 62 uniti.
Observm c dac b4 = 155 uniti din R4, toate resursele sunt folosite, programul de
fabricaie (6.5.12) va avea componentele:
x1 = 25
x2 = 45
x3 = 15
8
100 (12 x1
+ 18 x 2 + 16 x 3 ) 6 x1 + 9 x 2 92 x 3 0
(6.5.13)
Introducem variabila de abatere x7 i eliminm variabilele bazice x1, x2 folosind relaiile (6.5.9).
Rezult egalitatea:
99 x 3 4 x 4 x 6 + x 7 = 660
ai crei coeficieni se ataeaz tabelului simplex 6.1.4, dup care se aplic algoritmul simplex dual
(vezi tabelele 6.5.3 - 6.5.4)
ntr-o singur iteraie se obine programul optim:
x1** = 38 89
x 2** = 42 29
x 3** = 6 23
(max) f = 298 89
(6.5.14)
B
A2
A5
A1
A7
f
A2
A5
A1
A3
f
VVB
40
10
50
-660
310
380/9
50/9
350/9
20/3
2690/9
3
A1
0
0
1
0
*
4
A2
1
0
0
0
*
2
A3
-1/3
2/3
5/3
-99
5/3
0
A4
2/3
-1/3
-1/3
-4
5/3
0
A5
0
1
0
0
*
0
A6
-1/3
-1/3
2/3
-1
2/3
0
A7
0
0
0
1
*
55
Acest exemplu ne ofer ocazia de a semnala i discuta un aspect nou, care nu a fost avut n
vedere n consideraiile teoretice dezvoltate pn acum. Deoarece firma X produce aparatur
electronic este de presupus c bunurile A1, A2, A3 se msoar n uniti indivizibile ca de exemplu
n buci. Dac bunul A1 este n fapt un calculator, a produce o fracie din el este lipsit de sens; ori
se fabric un ntreg calculator ori nu. Prin urmare n orice soluie admisibil valorile variabilelor x1,
x2, x3 trebuie s fie nu numai nenegative dar i ntregi! Iat de ce soluia (6.5.14) nu poate fi nsuit.
Vom proceda la rotunjirea componentelor fracionare n ideea c soluia optim ntreag se
afl n "apropierea" soluiei optime "fracionare". Operaia de rotunjire trebuie astfel fcut nct
rezultatul s fie o soluie admisibil adic s verifice restriciile problemei. Este firesc s acceptm
soluia obinut n acest mod cel puin ca soluie suboptimal - n unele contexte practice acest lucru
este perfect justificat de faptul c valorile permise variabilelor sunt suficient de mari astfel nct
efectul rotunjirii s fie neglijabil.
Rotunjind superior x1** i inferior x 2** , x 3** se gsete combinaia:
x1 = 39
x 2 = 42
x3 = 6
care se ncadreaz n disponibilele date dar nu verific restricia suplimentar (6.5.13), deoarece
valoarea produciei din A3 reprezint numai 7,3% din valoarea ntregii producii.
Rotunjind inferior x1** , x 2** i superior x 3** se obine o soluie admisibil ntreag:
x1 = 38 x 2 = 42
x3 = 7
f ( x ) = 296 u.m.
x 20 = 43 x 30 = 7
f ( x 0 ) = 297 u.m.
(6.5.15)
n cadrul acestui program, valoarea produciei din bunul A3 reprezint 8,4% din valoarea ntregii
producii. Obinerea acestei soluii se face prin aplicarea metodelor specifice Programrii Liniare n
Numere ntregi (Curs CO anul 2).