Captură de Ecran Din 2022-07-20 La 10.44.09

Descărcați ca pdf sau txt
Descărcați ca pdf sau txt
Sunteți pe pagina 1din 87

CAPITOLUL I

PROGRAMARE LINIARA

1. Forma general a unei probleme de programare liniar

Problemele de maxim i de minim apar frecvent în cele mai diferite


domenii ale matematicilor pure sau aplicate.În domeniul economic, asemenea
probleme sunt foarte naturale. Astfel, firmele încearc s maximizeze
profiturile sau s minimizeze costurile. Exper ii în planificare macroeconomic
se preocup de maximizarea bun st rii unei comunit i economico-sociale.
Consumatorii doresc s cheltuiasc venitul lor într-un mod care s le
maximizeze satisfac ia (de natur material dar i spiritual etc.)

Programarea liniar se ocup de o clas special de probleme de


optimizare care apar deseori în aplica iile economice. Aceste probleme constau
în maximizarea sau minimizarea unei func ii liniare, numit func ie obiectiv,
ale c rei variabile trebuie s satisfac :

un sistem de rela ii date sub forma unor ecua ii i / sau inecua ii


liniare nestricte, denumite generic restric ii;
cerin a de a lua numai valori numerice nenegative ( 0).

1.1 Exemple

1) Problema firmei. Consider m un sistem de produc ie, de exemplu o


firm , care produce n bunuri G1,G2,...,Gn utilizând pentru aceasta m categorii
de resurse R1,R2,...,Rm (materii prime, for de munc , capacit i de produc ie,
combustibili i energie etc.). Adopt m ipoteza c tehnologia de transformare a
resurselor în bunuri este liniar în sensul c :

Pentru fiecare bun, consumul dintr-o anumit resurs este direct


propor ional cu cantitatea produs .
Consumurile dintr-o resurs sau alta nu se condi ioneaz reciproc.
Fie atunci aij cantitatea din resursa i utilizat pentru producerea unei unit i din
bunul Gj. Fie deasemeni bi cantitatea disponibil din resursa Ri i cj pre ul (sau
profitul) unitar al bunului Gj.
2 I. PROGRAMARE LINIARA

Pre ul unui bun nu depinde de cantitatea produs i nici de situa ia


vânz rilor celorlalte bunuri.

Problema const în determinarea unui program de fabrica ie care s


maximizeze venitul (sau profitul) firmei.

S not m cu xj cantitatea din bunul Gj care urmeaz a fi produs .


Problema enun at mai înainte devine:

S se g seasc valorile numerice x1,x2,...,xn care maximizeaz func ia:

f c1 x1 c2 x 2 ... cn x n

cu satisfacerea restric iilor:

a11 x1 a12 x 2 a1n x n b1


a 21 x1 a 22 x 2 a2n xn b2

a m1 x1 a m2 x 2 a mn x n bm

i a condi iilor de nenegativitate:

x1 0 , x2 0, xn 0

Observa ie: Ipotezele de liniaritate f cute nu sunt verificate


întotdeauna în practic . Ra iunea lor este dubl :

conduc la modele matematice în general simple;


pe baza modelelor liniare se pot formula concluzii calitative i
legit i economice care î i men in valabilitatea - în anumite limite - i într-un
context neliniar.

2) Problema dietei a devenit o ilustrare clasic a program rii liniare,


fiind întâlnit în mai toate textele de specialitate. Ea se ocup cu hr nirea unei
colectivit i, s zicem un grup de militari, în cel mai economic mod cu condi ia
satisfacerii anumitor cerin e de nutri ie. Mai concret, este vorba de a prepara un
aliment complex pornind de la n sortimente de hran F1,F2,...,Fn. Un num r de
elemente sau principii nutritive N1,N2,...,Nm - proteine, glucide, gr simi
1. Forma general a unei probleme de programare liniar 3
calciu,etc. sunt avute în vedere în sensul c alimentul combinat trebuie
s

con in cel pu in b1,b2,...,bm unit i specifice din fiecare. S presupunem


cunoscute urm toarele:

cantitatea aij din principiul nutritiv Ni con inut într-o unitate din
tipul de hran Fj;
pre ul unitar cj al tipului de hran Fj.

Not m cu x1,x2,...,xn cantit ile din felurile de hran F1,F2,...,Fn care


trebuie cump rate în vederea elabor rii dietei. Formal, x1,x2,...,xn vor trebui
determinate astfel încât:

costul f c1 x1 c2 x 2 ... cn x n al alimentelor cump rate s fie


minim.
amestecul s con in principiile nutritive N1,N2,...,Nm în cantit i cel
pu in egale cu b1,b2,...,bm, adic :

a11 x1 a12 x 2 ... a1n x n b1


a 21 x1 a 22 x 2 ... a 2 n x n b2
................................
a m1 x1 a m2 x 2 ... a mn x n bm
x1 0, x 2 0,..., x n 0

Din nou au fost tacit utilizate ipotezele de liniaritate întâlnite i în modelul


precedent.

1.2 Solu ii admisibile ale unei probleme de programare liniar

Consider m o problem de programare liniar (P) cu m restric ii


egalit i i/sau inegalit i nestricte , n variabile i cu func ia obiectiv f. Un
ansamblu de n valori numerice care satisfac restric iile se va numi solu ie a
programului (P). Dac în plus sunt verificate i condi iile de nenegativitate,
ansamblul se nume te solu ie admisibil . O solu ie admisibil care
maximizeaz sau minimizeaz - dup caz - func ia obiectiv se va numi solu ie
optim . Notând cu A mul imea solu iilor admisibile , problema (P) se scrie:
4 I. PROGRAMARE LINIARA
S se determine x* A cu proprietatea: f(x*) = max sau min f ( x )
x A

Este posibil ca (P) s aibe solu ii dar nici una din ele s fie admisibil :
A = . Spunem în acest caz c problema (P) este incompatibil .Chiar dac
A , este posibil ca func ia obiectiv s fie nem rginit pe A , adic s
existe
un ir de solu ii admisibile dealungul c ruia func ia obiectiv s tind spre +
sau - , dup caz. În aceast situa ie vom spune c (P) are optim infinit.Dac
(P) are (cel pu in) o solu ie optim , zicem c (P) are optim finit.
Deoarece eventualele restric ii inegalit i sunt nestricte mul imea A
este inchis (în topologia uzual a spa iului Rn), adic o dat cu un ir
convergent de puncte con ine i limita acestuia. Aceast proprietate este
esen ial pentru existen a unei solu ii optime a problemei (P)! Conform unui
rezultat clasic al analizei matematice, dac A este m rginit , 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 nem rginit . Reciproca nu este în
general adev rat : este posibil ca A s fie nem rginit i totu i (P) s aibe
optim finit.

1.3 Forma canonic a unei probleme de programare liniar

O restric ie a unei probleme (P) de programare liniar se zice


concordant dac este o inegalitate de tipul " " când func ia obiectiv se
maximizeaz i de tipul " " când func ia obiectiv se minimizeaz .O restric ie
inegalitate care nu este concordant se va numi neconcordant . Restric iile
egalit i nu fac obiectul acestei clasific ri.
Spunem c o problem de programare liniar este în form canonic
dac toate restric iile ei sunt inegalit i concordante.
În consecin , o problem în form canonic de maximizare arat astfel:

n
aij x j bi i 1,..., m
j 1 Ax b
xj 0 j 1,..., n sau matricial x 0 unde:
n (max) f cx
(max) f cj xj
j 1
1. Forma general a unei probleme de programare liniar 5
a11 a12 a1 n b1 x1
a 21 a 22 a 2n b2 x2
A b x

a m1 a m2 a mn bm xn
c c1 c2 cn

O problem în form canonic de minimizare se va scrie:

n
a ij x j bi
j 1 Ax b
xj 0 x 0
n (min) f cx
(min) f cj xj
j 1

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, f r modificarea mul imii solu iilor
admisibile, observând c :
o egalitate se poate înlocui cu dou inegalit i de sens contrar;
o restric ie neconcordant devine concordant prin înmul ire cu -1;
putem schimba sensul optimiz rii func iei obiectiv, gra ie formulei
generale:

min f ( x ) max f ( x) (1.3.1)


x A x A

În consecin , putem face anumite ra ionamente teoretice pe o form canonic ,


ca de exemplu în teoria dualit ii liniare, f r ca prin aceasta s restrângem
generalitatea.

Exemplul 1.3.1
6 I. PROGRAMARE LINIARA
(max) f 2 x1 3x 2 4 x 3 (min)( f ) 2 x1 3x 2 4x3
x1 3 x 2 5 x 3 3 x1 3x 2 5x 3 3
3 x1 x 2 5 x1 3x 2 5x 3 3
3x1 x2 5
2 x1 x 3 10
2 x1 x3 10
x1 0, x 2 0, x 3 0
x1 0, x 2 0, x 3 0

Programul (P) Forma canonic de minimizare


a programului (P)

1.4 Forma standard a unei probleme de programare liniar

Spunem c o problem de programare liniar este în form standard


dac toate restric iile ei sunt egalit i. Importan a acestei forme particulare
rezult din faptul c metoda de rezolvare a problemelor de programare liniar
care va fi expus mai departe cere ca problema s fie în aceast prezentare.
În consecin , o problem (P) care are i restric ii inegalit i va fi
înlocuit - în vederea rezolv rii ei - cu o alta în care toate restric iile sunt
egalit i. Noua problem , numit forma standard a problemei (P) i notat
(FSP), se construie te astfel:

O restric ie inegalitate din problema original (P) de tipul " "


(respectiv de tipul " ") se transform în egalitate prin ad ugarea (respectiv
prin sc derea) unei variabile nenegative din membrul s u stâng.
Restric iile inegalit i nu se modific .
Noile variabile introduse nu apar în func ia obiectiv a problemei
originale (alternativ, spunem c ele apar cu coeficien i nuli)

Exemplul 1.4.1

(max) f 7 x1 9 x 2 8 x 3 (max) f 7 x1 9 x 2 8 x 3
5 x1 2 x 2 x3 4 5 x1 2 x 2 x3 x4 4
( P) 3 x1 x2 x3 5 ( FSP ) 3x1 x 2 x3 5
x1 2 x 2 3 x 3 9 x 1 2 x 2 3x 3 x5 9
x1 0, x 2 0, x 3 0 x j 0, j 1,...,5
1. Forma general a unei probleme de programare liniar 7
Problema care apare în acest context este aceea de a explica modul în care se
ob ine solu ia optim a problemei (P) dac se cunoa te solu ia optim a formei
sale standard (FSP).
Se poate ar ta u or c între mul imile de solu ii admisibile AP ,ale problemei
(P) i AFSP, ale problemei (FSP), exist o coresponden bijectiv care
conserv solu iile optime. Vom ar ta cum func ioneaz aceast coresponden
pe exemplul precedent.
Notând-o cu , aceasta va asocia unei solu ii admisibile x = ( x1 , x 2 , x 3 )
a problemei (P) vectorul:

(x) ( x1 , x 2 , x 3 , 5x1 2 x2 x3 4, 9 x1 2 x2 3x 3 )

care prin construc ie se dovede te a fi o solu ie admisibil a problemei (FSP).


Reciproc, unei solu ii admisibile x~ ( x~1 , x~2 , x~3 , x~4 , x~5 ) a problemei (FSP)
coresponden a invers -1
îi asociaz vectorul ( x~1 , x~2 , x~3 ) care satisface în mod
clar restric iile problemei originale (P). Dac x este solu ia optim a
problemei (P) atunci ( x ) este solu ia optim a problemei (FSP) i reciproc,
dac cunoa tem solu ia optim x~ a problemei (FSP) , 1 ~
( x ) reprezint
solu ia optim a problemei (P).

În problemele concrete, variabilele de abatere au interpret ri


economice precise a a c în analiza solu iei 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
xn i bi aij x j i 1,...,m
j 1

reprezint cantit i de resurse neconsumate i prin urmare cunoa terea


valorilor lor în solu ia optim ofer indica ii utile în analiza modului în care
sunt utilizate resursele firmei: materii prime, capacit i de produc ie, for de
munc , etc.
În problema dietei (1.1,exemplul 2)) variabilele de abatere:

n
xn i aij x j bi i 1,..., m
j 1

reprezint cantit ile de principii nutritive cu care sunt dep ite nivelele
minimale specificate în re et .
8 I. PROGRAMARE LINIARA

1.5 Rezolvarea grafic a problemelor de programare liniar

S consider m problema:

(max) f 3x1 4 x2
3 x1 4 x 2 12
x1 x2 6
2 x1 x2 2
x1 0 , x 2 0

Identific m x1 , x2 cu abscisa, respectiv ordonata unui punct din planul raportat


la un sistem ortogonal de axe. Este cunoscut faptul c mul imea punctelor din
plan ale c ror coordonate satisfac prima restric ie coincide cu unul din
semiplanele determinate de dreapta d1 de ecua ie -3x1+4x2=12. Mai precis,este
vorba de semiplanul care con ine originea (0,0) , deoarece coordonatele
acesteia satisfac evident prima restric ie. În mod analog, urm toarele restric ii
sunt verificate în semiplanele determinate de dreapta d2 de ecua ie x1+x2=6 i
respectiv d3 de ecua ie -2x1+x2=2 i care con in originea. În fine, condi ia x1 0
are loc în semiplanul “din dreapta” axei verticale, în timp ce condi ia x2 0 are
loc “deasupra” axei orizontale.
Solu iile admisibile ale problemei se identific cu punctele comune
celor cinci semiplane. Acestea formeaz interiorul i frontiera poligonului
OABCD din figura 1.5.1.
x2 f=24

f= 22 27

f=12 B

d1

A
A
d2
x1
O D
d3
1. Forma general a unei probleme de programare liniar 9
Figura 1.5.1

Func ia obiectiv determin - pentru f variabil - o mul ime de drepte


paralele care intersecteaz sau nu mul imea A. Astfel punctele situate pe
dreapta 3x1+4x2=12 reprezint diferite combina ii ale m rimilor x1, x2 care dau
func iei obiectiv f aceea i valoare 12. Întrucât aceast dreapt taie A, rezult
c problema are solu ii admisibile - chiar o infinitate - care ofer func iei
obiectiv valoarea 12. Dreapta 3x1+4x2=24 nu mai taie A i deci nici o solu ie
admisibil a problemei nu este capabil s asigure func iei obiectiv valoarea
24. Conchidem c maximul func iei f este “undeva” între 12 i 24. Se observ
u or c acest maxim se atinge în vârful C al frontierei lui A. Punctul C
este

intersec ia dreptelor d1 i d2 i deci coordonatele sale, care reprezint solu ia


optim a problemei, se determin rezolvând sistemul format din ecua iile celor
dou drepte. Se g se te x1* 127 , x 2* 307 maximul lui f fiind 22 27 . Solu ia
optim satisface cu egalitate primele dou restric ii i cu inegalitate strict pe
ceea de a treia.
În mod asem n tor se arat c dac func ia de maximizat ar fi fost
f = - x1+x2 atunci optimul ar fi fost atins în vârful B de coordonate x1=4/5,
x2=18/5 .

Examinând acest exemplu putem trage urm toarele concluzii:

1. Mul imea A este convex , adic o dat cu dou puncte con ine i
segmentul care le une te. O consecin intuitiv a acestei propriet i este c
solu ia optim , dac exist , se g se te “undeva” pe frontiera lui A .
2. Frontiera lui A este un contur poligonal cu un num r finit de
vârfuri i o solu ie optim se g se te neap rat într-unul din ele.

Aceste concluzii, care se confirm pe orice alt problem în dou sau


trei variabile (mul imea solu iilor admisibile putând fi “vizualizat “ în planul
R2 sau spa iul R3) au constituit sursa întregii teorii a program rii liniare.
2. Dualitatea în programarea liniar 9

2. Dualitatea în programarea liniar

În principiu, oric rei probleme de programare liniar i se asociaz o


alta, numit duala sa i în esen teoria dualit ii const în studiul rela iilor
dintre cele dou probleme. Fire te, construc ia problemei duale depinde
nemijlocit de structura problemei ini iale denumit i problema primal .
Întotdeauna sensul optimiz rii în cele dou probleme este diferit: dac în
primal func ia obiectiv se maximizeaz (se minimizeaz ) în dual func ia
obiectiv se minimizeaz (se maximizeaz ). Studiul i interpretarea economic a
problemei duale aduc informa ii suplimentare în analiza proceselor economice
i în fundamentarea deciziilor.

2.1 Reguli de construire a problemei duale

Pentru a conferi construc iei problemei duale maxima generalitate vom


sl bi condi ia de nenegativitate impus tuturor variabilelor , admi ând c

unele din ele nu pot lua decât valori nepozitive ( 0) în timp ce altele pot lua
orice valoare real .
Cu aceast observa ie duala unei probleme de programare liniar cu m
restric ii i n variabile se construie te dup urm toarele reguli:

1) Dac în primal func ia obiectiv se maximizeaz (respectiv se


minimizeaz ) în problema dual func ia obiectiv se minimizeaz (respectiv se
maximizeaz ).
2) Restric iei de rang i , i=1,...,m din primal îi corespunde în dual o
variabil ui; dac restric ia primal este o inegalitate concordant (respectiv
neconcordant , respectiv o egalitate) variabila dual asociat este nenegativ
( 0), ( respectiv nepozitiv ( 0), respectiv f r restric ie de semn).
3) Variabilei xj , j=1,...,n din problema primal îi corespunde în dual
restric ia de rang j. Membrul stâng al acestei restric ii este o combina ie
liniar a variabilelor duale ui realizat cu coeficien ii variabilei xj din toate
restric iile primalei (ace tia sunt aij, i=1,...,m). Termenul s u liber este
coeficientul cj al lui xj din func ia obiectiv primal . În fine, dac variabila
primal xj este nenegativ (respectiv nepozitiv , respectiv f r restric ie de
semn) restric ia dual asociat va fi o inegalitate concordant (respectiv
neconcordant , respectiv o egalitate).
4) Coeficien ii func iei obiectiv ai problemei duale sunt termenii liberi
bi ai restric iilor problemei primale.
10 I. PROGRAMARE LINIARA

Exemplul 2.1.1
Problema primal Problema dual

3 x1 2 x 2 x 3 4 x 4 x5 6 u1 0
2 x1 2 x 3 5x 4 x 5 9 u2 f . r . s.
x1 6 x 2 x3 2 x4 3 u3 0
x1 0 3u1 2u2 u3 8
x2 0 2u1 6u3 3
x 3 f . r . s. u1 2u2 u3 1
x 4 f . r . s. 4u1 5u2 2u3 5
x5 0 u1 u2 7
max f 8 x1 3x 2 x 3 5x 4 7 x5 min g (u) 6u1 9u2 3u3

Observa ii: 1) Problema dual are atâtea variabile (respectiv restric ii)
câte restric ii (respectiv variabile) are problema primal .

2) Regulile 1) - 4) pun în eviden urm toarele coresponden e de


termeni prin trecere la dual :

min max
(restric ie) concordant (variabil ) nenegativ
(restric ie) neconcordant (variabil ) nepozitiv
(restric ie) egalitate (variabil ) f r restric ie de semn
termen liber al unei restric ii coeficient al func iei obiectiv

3) Din construc ia de mai sus rezult urm toarea concluzie:

Duala dualei este problema primal .

Spunem c dualitatea în programarea liniar are un caracter involutiv.

În consecin , fiind dat o problem de programare liniar (P) i duala


sa (Q), vom vorbi despre cuplul de probleme în dualitate (P,Q), f r a mai
specifica în mod expres care din probleme este primala i care duala.
2. Dualitatea în programarea liniar 11
2.2 Dualele unor forme particulare de probleme de programare
liniar

1) Duala unei forme canonice de maximizare este o form canonic de


minimizare i reciproc.

a11 x1 a12 x 2 a1n x n b1 u1 0


a 21 x1 a 22 x 2 a 2 n x n b2 u2 0
.............................................. . ..........
a m1 x1 a m2 x 2 a mn x n bm um 0
x1 0 a11u1 a 21u2 a m1um c1
x2 0 a12 u1 a 22 u2 a m 2 u m c2
.............................................
xn 0 a1n u1 a 2 n u2 a mn um cn
max f c1 x1 c2 x 2 cn x n min g b1u1 b2 u2 bm um

Cu nota iile matriciale introduse în (1.3) la care se adaug : u u1 , u2 ,..., um

cuplul format din cele dou probleme de mai sus devine:

Ax b uA c
( P) x 0 (Q) u 0
max f ( x ) cx min g (u) ub

2) Conservarea formei de prezentare se pierde atunci când se


consider duala unei probleme în form standard.

n
aij x j bi i 1,..., m ui f . r . s. i 1,..., m
j 1
m
xj 0 j 1,..., n a ij ui cj j 1,.., n
i 1
n m
max f cj x j min g bi ui
j 1 i 1

sau matricial:
12 I. PROGRAMARE LINIARA
Ax b uA c
( P) x 0 (Q) u R m ( f . r. s. )
max f ( x ) cx min g ( u ) ub

(f.r.s. f r restric ie de semn!)

În mod analog se construie te duala formei standard în care func ia


obiectiv se minimizeaz :

Ax b uA c
( P) x 0 ( Q ) u f . r. s.
min f ( x ) cx max g( u ) ub

Observa ie: De re inut este faptul c dualele a dou probleme de


programare liniar echivalente sunt ele însele echivalente adic au aceea i
mul ime de solu ii admisibile i acelea i solu ii optime.

2.3 Teoreme de dualitate

Cu nota iile matriciale din (2.2) s consider m cuplul de probleme în


dualitate în form canonic :

(max) f ( x ) cx (min) g ( u ) ub
( P) Ax b (Q) uA c
x 0 u 0

T
Teorema 2.3.1 Fie x x1 , x 2 ,..., x n o solu ie admisibil a
problemei (P) i u u1 , u2 ,..., um o solu ie admisibil a problemei (Q).
Atunci:
1) f ( x ) g (u )
2) Dac f ( x ) g (u ) atunci x este o solu ie optim a problemei (P)
iar u este o solu ie optim a problemei (Q).
2. Dualitatea în programarea liniar 13
Demonstra ie:1)Prin ipotez Ax b , x 0 i uA c ,
u 0 .Deducem c uAx ub i uAx cx (nenegativitatea vectorilor x i
u este esen ial !) de unde:
f ( x ) cx uAx ub g (u )

2) Dac f ( x ) g (u ) i dac x nu ar fi solu ie optim a problemei (P)


ar exista o solu ie admisibil x' mai bun , adic f ( x ') f ( x ) .Rezult
inegalitatea f ( x ') g (u ) contrar celor demonstrate la punctul precedent.

Clasificarea cuplurilor de probleme de programare liniar în dualitate


este f cut de urm toarea teorem :

Teorema 2.3.2 (Teorema fundamental a dualit ii) Pentru un cuplu


de probleme în dualitate una i numai una din urm toarele situa ii este
posibil :
1) Ambele probleme au solu ii admisibile; atunci ambele au solu ii
optime i valorile optime ale func iilor obiectiv coincid.
2) Numai una din probleme are solu ii admisibile, iar cealalt nu are;
atunci problema compatibil are optim infinit.
3) Nici una din probleme nu are solu ii admisibile.

Simetria teoremei 2.3.2 nu constituie totu i un r spuns pentru reciproca


teoremei 2.3.1 Specific m 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 au solu ie optim atunci i cealalt are i valorile optime ale
func iilor obiectiv coincid.

Nu d m demonstra ia teoremei 2.3.2 deoarece preg tirile necesare dep esc


cadrul impus acestei lucr ri. Vom demonstra îns teorema 2.3.3 dup ce vom
prezenta metoda general de rezolvare a problemelor de programare liniar .

Teorema 2.3.4 (Teorema ecarturilor complementare) Fie (P,Q) un


cuplu de probleme canonice în dualitate:
14 I. PROGRAMARE LINIARA
Ax b uA c
( P) x 0 Q u 0
min f ( x ) cx min g (u) ub

Un cuplu de solu ii admisibile ( x , u ) este un cuplu de solu ii optime


dac i numai dac :

(uA c) x 0
(2.3.1)
u (b Ax ) 0

Demonstra ie: S presupunem rela iile (2.3.1) verificate de


cuplul ( x , u ):

uAx cx 0
cx ub ( x , u ) este un cuplu de solu ii optime în virtutea
ub uAx 0

teoremei 2.3.1.Reciproc, s presupunem c ( x , u ) constituie un cuplu de


solu ii optime. Atunci cx ub ,în virtutea teoremei fundamentale a dualit ii i
prin urmare:

(uA c) x u (b Ax ) 0

Deoarece x , u sunt solu ii admisibile avem: (uA c) x 0, u (b Ax ) 0 i


deci (uA c) x 0, u (b Ax ) 0 rela ii care arat c x , u verific (2.3.1).

În nota iile sec iunii (2.2) rela iile matriciale (2.3.1) se pot scrie:

n m
aij ui cj xj 0
j 1 i 1

m n
ui bi aij x j 0
i 1 j 1

Aceste rela ii - modulo admisibilitatea solu iilor celor dou probleme - sunt
echivalente cu:
2. Dualitatea în programarea liniar 15
m
aij ui cj xj 0 j 1,..., n
i 1

n
ui bi aij x j 0 i 1,..., m
j 1

Verificarea acestor egalit i de c tre un cuplu de solu ii admisibile


T
x x1 , x 2 ,..., x n i u u1 , u2 , , um reprezint deci o condi ie necesar i
suficient de optimalitate.

Pe lîng formularea precedent , teorema 2.3.4. mai are urm toarea


interpretare:

Cuplul ( x , u ) de solu ii admisibile este un cuplu de solu ii optime dac i


numai dac verific seturile de implica ii:

m n
xj 0 a ij u i cj ui 0 aij x j bi
i 1 j 1
n m
a ij ui bi ui 0 aij ui cj xj 0
j 1 i 1

Observa ie. De i 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
x 0 u f . r . s.

m
ele se reduc la: (uA c) x 0 aij ui cj uj 0 j 1,... , n.
i 1

i mai concret, consider m cuplul din:

Exemplul 2.3.1
16 I. PROGRAMARE LINIARA
min f 5 x1 2x2 x3 max g 6u1 12u2 4 u3
6 x1 2x2 3x 3 6 6u1 u2 2 u3 5
( P) x1 3x 2 2x3 12 (Q) 2u1 3u2 u3 2
2 x1 x2 4x3 4 3u1 2u 2 4 u3 1
x1 , x 2 , x 3 0 u1 0, u2 f . r. s., u3 0

Conform teoremei ecarturilor complementare, condi ia necesar i suficient


pentru ca dou solu ii admisibile ale celor dou probleme:

x ( x1 , x 2 , x 3 ) T i u (u1 , u2 , u3 )

s fie optime este satisfacerea rela iilor:

( 5 6u1 u2 2 u 3 ) x1 0 (1)
( 2 2u1 3u2 u3 ) x 2 0 ( 2)
( 1 3u1 2u2 4u3 ) x 3 0 (3)
( 6 6 x1 2 x2 3x 3 )u1 0 ( 4)
( 2 x1 x2 4 x3 4 ) u3 0 (5)

O consecin important a teoremei ecarturilor complementare este


faptul c rezolvarea unei probleme de programare liniar este echivalent cu
rezolvarea dualei sale în sensul c dac se cunoa te solu ia optim a uneia din
ele putem deduce relativ simplu solu ia optim a celeilalte.Pentru ilustrare vom

determina solu ia optim a problemei (P) din exemplul precedent tiind c


duala (Q) are solu ia optim u* de componente: u1* 0 , u2* 9 *
14 , u3 14 .
1

Înlocuind u* în (1) - (5) se constat c rela iile (2),(3),(4) sunt satisf cute de
orice valori numerice acordate variabilelor x1 , x2 , x3. În schimb din (1) i (5)
ob inem rela iile: x1=0 i 2x1 - x2 + 4x3 - 4 = 0 care împreun cu restric ia
egalitate din (P) constituie un sistem liniar:

x1 0
2 x1 x2 4 x3 4
x1 3x 2 2 x3 12
2. Dualitatea în programarea liniar 17
Rezolvând sistemul, ob inem solu ia optim a problemei (P):

x1* 0 , x 2* 20
7 , x 3* 12
7 f max f (x* ) 52
7 g (u * ) g min

Echivalen a amintit mai înainte este folositoare în rezolvarea efectiv


a problemelor de programare liniar tiut fiind c efortul de calcul este relativ
mai mic dac num rul restric iilor este mai mic. În consecin , pentru o
problem cu multe restric ii i un num r restrâns de variabile, va fi mai comod
s rezolv m duala sa.

2.4 Interpretarea economic a dualit ii

Relu m problema firmei din sec iunea 1.1 exemplul 1).Consider m o


întreprindere care produce bunurile G1,G2,...,Gm la pre urile c1,c2,...,cn folosind
pentru aceasta mai multe resurse R1,R2,...,Rm disponibile în cantit ile limitate
b1,b2,...,bm. Consumurile specifice de resurse pentru unul sau altul din bunurile
realizabile de c tre firm sunt specificate în matricea:

a11 a12 a1n


a 21 a 22 a2n
A
a m1 a m2 a mn

Obiectivul firmei este maximizarea veniturilor rezultate din vânzarea


bunurilor produse. În ipotezele de liniaritate uzuale, programul liniar pentru
determinarea combina iei optime de bunuri este:

(max) f ( x ) c1 x1 c2 x 2 cn x n
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
x1 0, x 2 0, , x n 0

S not m cu x* ( x1* , x 2* ,..., x n* ) combina ia de bunuri care aduce firmei


venitul maxim:
18 I. PROGRAMARE LINIARA
V* max f f ( x*) c1 x1* c2 x 2* ... cn x n*

Dac admitem c singura posibilitate a firmei de a ob ine venitul V* const în


transformarea resurselor disponibile în bunuri conform programului x* i
vânzarea acestora este natural s ne întreb m care este contribu ia fiec rei
resurse în parte la formarea acestui venit.
La baza discu iei vom pune acelea i ipoteze de liniaritate care ne-au
condus la modelul matematic (P) i anume:

contribu ia unei resurse la venitul maxim al firmei este - pîn la o


anumit limit - direct propor ional cu cantitatea disponibil ;
nivelul contribu iei unei resurse nu este condi ionat de celelalte
resurse , ci numai de cantitatea în care ea se afl disponibil .

S not m atunci cu u1* , u2* ,..., um* aportul unei unit i din resursa R1, din resursa
R2, .a.m.d. la formarea venitului maxim V*.În virtutea ipotezelor de liniaritate
amintite putem scrie:

V * b1u1* b2 u2* ... bm um* (2.4.1)

Producerea unei unit i din bunul Gj necesit a1j unit i din resursa R1, a2j
unit i din resursa R2 ,....., amj unit i din resursa Rm.
Partea din venitul maxim V* corespunz toare acestor cantit i este:

a1 j u1* a 2 j u2* ... a mj um*

Aceast m rime trebuie s acopere pre ul pe care firma îl încaseaz prin


vânzare de vreme ce ea nu are alte resurse de formare a venitului în afara

transform rii resurselor în bunuri. Se conchide c sistemul


u* (u1* , u2* ,..., um* ) trebuie s satisfac rela iile:

a11 u1* a 21u2* ... a m1 um* c1


a12 u1* a 22 u2* ... a m2 um* c2
(2.4.2)
..........................
a1n u1* a 2 n u2* ... a mn um* cn

i deasemeni condi iile de nenegativitate:


2. Dualitatea în programarea liniar 19
u1* 0, u2* 0,..., um* 0 (2.4.3)

Sunt suficiente rela iile (2.4.1) - (2.4.3) pentru determinarea efectiv a valorilor
u1* , u2* ,..., um* ? Teoria dualit ii d un r spuns afirmativ pe baza urm toarelor
observa ii:

1) Rela iile (2.4.2) i (2.4.3) arat c u* (u1* , u2* ,..., um* ) constituie o
solu ie admisibil a dualei (Q) asociat problemei (P):

(min) g( x ) b1 u1 b2 u2 ... bm um
a11 u1 a 21 u2 ... a m1 um c1
a12 u1 a 22 u2 ... a m2 um c 2
(Q)
. ..................................
a1n u1 a 2 n un ... a mn um c n
u1 0, u2 0,..., um 0

2) Rela ia (2.4.1) rescris în forma f(x*) = g(u*), coroborat cu teorema


de dualitate 2.3.1, ne arat c u* este chiar solu ia optim a problemei duale Q.

Astfel, am g sit un con inut economic coerent variabilelor duale u1, u2,..., um
din problema dual (Q). Ele reprezint ni te valori b ne ti asociate la câte o
unitate din fiecare resurs disponibil a firmei i exprim aportul unitar al
fiec rei resurse la formarea venitului maxim. Strict dimensional, variabilele u1,
u2,..., um au semnifica ia unor pre uri ata ate resurselor. Totu i aceste pre uri nu
au nimic comun cu valoarea intrinsec a resurselor ci - a a cum a rezultat din
interpretarea dat - reflect numai m sura particip rii lor la formarea venitului

maxim. Tocmai pentru a preveni identificarea lor cu pre urile reale ale
resurselor, în literatura de specialitate, aceste entit i au fost denumite pre uri
umbr (shadow prices). A rezultat deasemeni i o modalitate de calcul a
acestor m rimi : se rezolv problema dual (Q).

Teoria dualit ii arat c venitul maxim V* al firmei - privit ca func ie


de cantit ile disponibile de resurse - depinde liniar de aceste disponibile prin
intermediul pre urilor duale optime - vezi rela ia (2.4.1)

În consecin :
20 I. PROGRAMARE LINIARA
V*
ui* i 1,..., m
bi
(2.4.4)

Prin urmare pre urile duale optime ne arat cu cât se modific venitul
maxim V* al firmei la o varia ie cu o unitate a disponibilului unei resurse.

Este important de re inut faptul c aceste concluzii r mîn valabile numai în


situa ia în care componentele vectorului b variaz între anumite limite! În cazul
general, atunci când se iau în considerare toate valorile posibile ale lui b, adic
b R m , func ia 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 Rm

Reamintim c în baza teoremei ecarturilor complementare solu iile optime x*,


u* al problemelor (P) i (Q) satisfac rela iile:

x *j 0 a1 j u1* a 2 j u2* ... a mj um* cj (2.4.5)


* * * *
a x
i1 1 ai 2 x 2 ... ain x n bi u
i 0 (2.4.5' )
u *
i 0 a x *
i1 1 ai 2 x *
2 ... ain x *
n bi (2.4.6)
a1 j u1* a 2 j u2* ... a mj um* cj x *j 0 (2.4.6')

(2.4.5) arat c dac bunul Gj intr în combina ia optim atunci pre ul s u este
egal cu partea din venitul maxim al firmei corespunz toare resurselor
încorporate într-o unitate din el.

(2.4.5') arat c dac o resurs nu este prev zut a se consuma în întregime -


spunem c este excedentar - pre ul s u dual este 0. Aceast concluzie
reprezint versiunea liniar a legii cererii i ofertei - pre ul unei m rfi pentru
care oferta este mai mare decât cererea trebuie s scad .
(2.4.6) arat c o resurs cu pre dual semnificativ trebuie consumat în
întregime; cre terea cu o unitate a disponibilului aducând o cre tere a venitului
maxim conform (2.4.4).
(2.4.6') arat c dac pentru un bun valoarea resurselor încorporate într-o
unitate - valoare m surat în pre urile duale optime - dep e te pre ul s u
m
atunci acesta nu intr în combina ia optimal . Diferen a aij u *j c j reprezint
i 1
2. Dualitatea în programarea liniar 21

pierderea poten ial de venit pe care firma o va înregistra dac totu i decide
realizarea unei unit i din bunul j.

Condi iile (2.4.5),(2.4.5'),(2.4.6),(2.4.6') date de teorema ecarturilor


complementare se mai numesc i condi ii de echilibru de unde i numele de
pre uri de echilibru dat uneori pre urilor duale optime.
3. Structura mul imii solu iilor admisibile ale unei probleme de programare liniar 21

3. Structura mul imii solu iilor admisibile ale unei probleme de


programare liniar

În aceast sec iune ne vom opri asupra principalelor propriet i


geometrice pe care le posed mul imea solu iilor unui sistem de ecua ii i
inecua ii liniare. Aceste propriet i sunt determinante în în elegerea
mecanismului metodei simplex de rezolvare a programelor liniare.
Parcurgerea acestei sec iuni necesit câteva rudimente de calcul
matricial i algebr liniar . Vectorii cu care se va opera vor fi subîn ele i, dup
caz, fie linii fie coloane. De regul ,scrierea în text a unui vector se va face în
linie ca de exemplu v ( a1 , a 2 ,..., a m ) ; dac este necesar ca v s fie considerat
vector coloan se va folosi operatorul de transpunere: v ( a1 , a 2 ,..., a m ) T.

3.1 Câteva elemente de analiz convex liniar

Fiind date dou puncte x , y R n mul imea:


x,y z (1 )x y, 0 1
se nume te segment (închis) cu extremit ile x i y. Se tie c în R2 sau în R3
acest concept se suprapune peste conceptul geometric uzual. Pentru 0,
respectiv 1 ,avem z x , respectiv z y . Punctele z (1 )x y
corespunz toare valorilor ( 0 ,1 ) se numesc puncte interioare ale

1 1
segmentului x, y . Pentru g sim z (x y) mijlocul
2 2
segmentului x , y .

O mul ime X R n se zice convex dac o dat cu dou puncte


con ine i segmentul care le une te.

Formal :

X convex ( ) x, y X ,( ) 0,1 , z (1 )x y X

Se verific imediat c intersec ia mai multor mul imi convexe este o mul ime
convex .
22 I. PROGRAMARE LINIARA

Fie a ( a1 , a 2 ,..., a n ) un vector nenul i b un scalar.Este u or de v zut


c mul imea:

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 nume te semispa iu, în timp ce mul imea:

H x ( x1 , x 2 ,..., x n ) T ax b a1 x1 a 2 x 2 ... a n x n b

se nume te hiperplan. Este clar c i H este o mul ime convex ca intersec ie a


semispa iului S de mai sus, cu semispa iul:

S' x R n ax b ( a) x b a1 x1 a 2 x 2 ... a n x n b

O intersec ie finit de semispa ii se nume te mul ime poliedral .


Evident, o mul ime poliedral este convex , reciproca nefiind în general
adev rat .
În figura 3.1.1 sunt prezentate câteva mul imi convexe i neconvexe în
plan. Este clar c mul imile a) i b) nu sunt convexe. Discul c) este o mul ime
convex dar nu este poliedral , fiind în fapt intersec ia infinit a tuturor
semispa iilor care con in discul i sunt m rginite de tangentele la circumferin .
Poligonul convex d) este intersec ia a 4 semispa ii a a cum se arat în fig.3.1.2

a)poligon concav b)coroan circular c)disc

d)poligon convex e)mul ime poliedral nem rginit

Not : Toate mul imile specificate sunt presupuse, închise adic î i con in
frontierele.

Figura 3.1.1
3. Structura mul imii solu iilor admisibile ale unei probleme de programare liniar 23

S3
S2
S1

S4

Figura 3.1.2

Din cele de mai sus rezult c orice mul ime poliedral în R n se


identific cu mul imea solu iilor unui sistem de ecua ii i/sau inecua ii liniare
în n variabile. În particular:

Mul imea A P a solu iilor admisibile ale unui program liniar (P) este o
mul ime convex , poliedral i închis . Frontiera sa se compune din toate
punctele ale c ror coordonate satisfac cu egalitate cel pu in una din restric ii.

Se nume te vârf al unei mul imi convexe X R n un punct v X cu


proprietatea c nu exist un segment [x,y] X care s con in pe v ca punct
interior. În R 2 sau R 3 reg sim conceptul geometric uzual.

O mul ime poliedral are întotdeauna un num r finit de vârfuri (posibil


nici unul); de exemplu, poligonul d) din fig. 3.1.1 are patru vârfuri în timp ce
un semispa iu nu are vârfuri. Discul c) are o infinitate de vârfuri: orice punct de
pe circumferin are aceast calitate.

Mul imile d) i e) din fig.3.1.1 sunt amândou poliedrale dar e) este


nem rginit . Pentru a caracteriza aceast proprietate avem nevoie de un nou
concept.
24 I. PROGRAMARE LINIARA
Un vector w R n se nume te raz extrem pentru mul imea convex
X R n dac pentru orice x X i 0 rezult x w X ,iar w nu poate
1 2 1 2
fi scris sub forma w=w +w ,w i w având aceea i proprietate ca i w.

De exemplu mul imea poliedral din fig. 3.1.3 are dou raze extreme w1
2
i w . Suporturile acestor vectori sunt paralele cu cele dou muchii dealungul
c rora "se poate merge c tre infinit".

De re inut c o mul ine convex este nem rginit dac i numai dac
are cel pu in o raz extrem iar o mul ime poliedral are un num r finit de
raze extreme.

S consider m acum o mul ime oarecare L de puncte din R n , finit sau


infinit . O combina ie convex de puncte din L este un punct (vector) de
forma:

x 1 v1 2 v 2 .... p v p cu 1 , 2 ,...., p 0 i 1 2 .... p 1

unde v 1 , v 2 ,...., v p sunt puncte din L arbitrar alese, num rul punctelor fiind
deasemeni variabil.

x+ 2w2
x+ 1w1
2 0
1 0

x
v1

w1
v2
w2

Figura 3.1.3
3. Structura mul imii solu iilor admisibile ale unei probleme de programare liniar 25

Se poate ar ta f r dificultate c mul imea tuturor combina iilor convexe de


puncte din L este o mul ime convex i mai precis este cea mai mic mul ime
convex (în sensul incluziunii) care con ine mul imea L.Ea se noteaz conv L
i se nume te anvelopa (sau acoperirea) convex a mul imii L.

Dac L este o mul ime finit atunci conv L este o mul ime poliedral
m rginit . Acest fapt este ilustrat în figura 3.1.4.

S consider m o mul ime poliedral X R n .Fie:

X v1 , v 2 , ,vp

mul imea vârfurilor sale. Deoarece X X iar X este convex avem


conv X X . Se poate demonstra urm torul rezultat clasic al analizei convexe:

conv L
Mul imea finit L

Figura 3.1.4

Dac X este o mul ime poliedral m rginit atunci conv X X , adic


orice punct din X este o combina ie convex a vârfurilor mul imii X.

Formal:
26 I. PROGRAMARE LINIARA
( )x X ,( ) 1, 2, , p 0 cu 1 2 p 1 astfel încât :
1 2 p
x 1 v 2 v p v

De re inut faptul c scalarii ,


1 2 , , p nu sunt unici.

Dac mul imea poliedral X nu este m rginit atunci conv X X .


Acest fapt este ilustrat în figura 3.1.5 unde mul imea dublu ha urat este
acoperirea convex a vârfurilor mul imii poliedrale nem rginite X. Se poate
ar ta c dac v1 , v 2 , , v p sunt vârfurile mul imii poliedrale nem rginite X
iar w1 , w 2 , , wq sunt razele sale extreme atunci pentru orice x X exist
scalarii 1, 2, , p 0 cu 1 2 p 1 i 1, 2, , q 0 astfel
încât:

x 1 v1 2 v2 p vp 1 w1 2 w2 q wq

w1

1
X w2
v

v3
2
v conv v1,v2,v3

Figura 3.1.5

3.2 Teorema central a program rii liniare

S consider m acum un program liniar (P) în care func ia obiectiv se


maximizeaz i s ne situ m în cazul în care programul (P) este compatibil
adic mul imea solu iilor sale admisibile AP este nevid . Am v zut c AP este
o mul ime poliedral i convex având un num r finit de vârfuri
p
v , v ,....., v i (posibil) un num r finit de raze extreme w1 , w 2 , , w q . A a
1 2

cum va rezulta din


3. Structura mul imii solu iilor admisibile ale unei probleme de programare liniar 27

sec iunea 4.1, AP are cel pu in un vârf, adic p 1. Vom enun a i demonstra
acum teorema central a program rii liniare.

TEOREMA . Dac programul (P) are optim finit, atunci o solu ie


optim se g se te într-unul din vârfurile mul imii solu iilor admisibile AP .

Demonstra ie: Fie:

f (x ) cx c1x1 c2 x2 cn xn

func ia obiectiv a programului (P). Pentru început s ar t m c :

cw k 0 ( )k 1, ,q

S presupunem prin absurd c exist o raz extrem w w1 , w 2 , , wq astfel


c cw 0 . Lu m o solu ie admisibil oarecare x 0 ( AP !) . tim c :

x( ) x0 w AP , ( ) 0

Atunci:

f ( x ( )) cx 0 cw cînd .

Ar rezulta c (P) are optim infinit contrar ipotezei.


Fie acum v* v1 , v 2 , , v p cu proprietatea c :

f (v* ) cv * max f ( v1 ) cv1 , f (v 2 ) cv 2 , , f (v p ) cv p

S consider m o solu ie admisibil oarecare x AP . Am v zut c exist


scalarii:

1, 2 , , p 0 cu 1 2 p 1 i 1 , 2 ,..., q 0 astfel încât:

x 1 v1 2 v2 p vp 1 w1 2 w2 q wq

Atunci:
28 I. PROGRAMARE LINIARA

f ( x) cx 1 cv 1 2 cv 2 p cv p 1 cw1 2 cw 2 q cw q

1 cv 1 2 cv 2 p cv p ( 1 2 p ) cv* f (v*)

În consecin v * este o solu ie optim a programului (P).

Importan a acestei teoreme este covâr itoare: ea reduce problema


g sirii unei solu ii optime x * din mul imea, în general infinit , AP a tuturor
solu iilor admisibile ale programului (P), la identificarea acestei solu ii în
mul imea finit a vârfurilor lui AP.

Recapitulând modul în care diferitele propriet i discutate au fost


implicate în ob inerea acestui rezultat fundamental s re inem c :

Convexitatea mul imii solu iilor admisibile AP situeaz solu iile


optime, dac acestea exist , pe frontiera lui AP;
Deoarece AP este poliedral , iar func ia obiectiv este liniar , cel
pu in una din solu iile optime este un vârf al lui AP.

Teorema furnizeaz urm torul procedeu "naiv" de rezolvare a unui


program liniar (P):

se "genereaz " lista (finit ) a vârfurilor mul imii AP;


prin înlocuire succesiv în func ia obiectiv se re ine vârful care ofer
acesteia valoarea maxim .

Procedeul ridic la rândul s u urm toarele probleme principiale:

1) Cum recunoa tem compatibilitatea programului (P) ?


2) Cum "calcul m" un vârf al mul imii AP sau mai corect spus cum se
caracterizeaz "algebric" un vârf ?
3) Pentru ob inerea solu iei optime este necesar s gener m toate
vârfurile mul imii AP? Întrebarea este serioas deoarece i pentru programe
liniare de dimensiuni reduse (adic cu un num r relativ mic de restric ii i
variabile) num rul vârfurilor este foarte mare.
4) Chiar dac reu im, prin enumerarea explicit a tuturor vârfurilor, s
g sim pe acela care maximizeaz func ia obiectiv, aceasta nu înseamn
obligatoriu c am rezolvat programul dat ! Este posibil ca programul respectiv
s aibe optim infinit! Cum se recunoa te acest fapt?
3. Structura mul imii solu iilor admisibile ale unei probleme de programare liniar 29

Vom r spunde progresiv la toate chestiunile men ionate în sec iunile


urm toare.

3.3 Coresponden a AP ~AFSP

Consider m o problem de programare liniar (P) care con ine cel pu in


o restric ie inegalitate i fie (FSP) forma sa standard.(vezi sec iunea 1.4) Pentru
simplificarea nota iilor, vom presupune c (P) este în form canonic de
maximizare:

max f cx
( P) Ax b
x 0

unde:

a11 a12 a1n b1 x1


a 21 a 22 a2 n b2 x2
A b x
(3.3.1)
a m1 a m2 a mn bm xn
c c1 c2 cn

tim din sec iunea 1.3 c orice program liniar poate fi scris în aceast form .
Forma standard a programului (P) va fi:

y1
max f cx
y2
( FSP ) Ax y b în care: y este vectorul variabilelor de abatere.
x 0,y 0
ym

Între mul imile de solu ii admisibile AP Rn i AFSP Rn+m exist o


coresponden bijectiv (x) = (x , y), unde y = b - Ax, a c rei invers este
-1
proiec ia (x,y) = x. Am remarcat deja în sec iunea 1.4 c prin
coresponden a
30 I. PROGRAMARE LINIARA

, solu iile optime ale celor dou probleme se corespund. În fapt, are
urm toarea proprietate mai general .

Teorema 3.3.1 Dac x este un vârf al mul imii AP atunci (x) = (x,y)
cu y = b - Ax este un vârf al mul imii AFSP . Reciproc, dac (x,y) este un vârf
al mul imii AFSP atunci -1(x,y) = x este un vârf al mul imii AP .

Demonstra ie: Concluzia decurge nemijlocit din defini ia vârfului


(sec iunea 3.1) observând c i -1 conserv combina iile convexe ale
punctelor din AP i AFSP .
Într-adev r, fie x1 , x2 AP , [0 , 1] i x = (1- )x1 + x2. Fie mai departe:
(x) = (x,y) , (x1) = (x1,y1) , (x2) = (x2,y2) unde: y = b - Ax , y1=b – Ax1 ,
y2 = b - Ax2 .Deoarece:
y = b - A((1 - )x1 + x2 )= (1 - )(b - A x1 ) + (b - A x2 ) = (1 - )y1 + y2
avem:
(x,y) = (1 - )(x1 ,y1 ) + (x2 ,y2 ), adic (x) = (1 - ) (x1) + (x2) .

În baza acestei teoreme precum i a teoremei centrale a program rii liniare


(sec iunea 3.2), pentru a rezolva problema (P) este suficient s c ut m solu ia
optim a formei sale standard (FSP) printre vârfurile mul imii AFSP .

Vom vedea în sec iunea urm toare cum se caracterizeaz “algebric” vârfurile
mul imii solu iilor admisibile ale unui program liniar în form standard. Tot
acolo vom ar ta c dac un program (P) este compatibil atunci AP are cel pu in
un vârf i în orice caz un num r 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 .

3.4 Solu ii de baz ale unui program liniar

S consider m acum un program liniar (P) în form standard:

max f cx
( P) Ax b
x 0

în care masivele A,b,c,x au semnifica iile din (3.3.1). Vom pune în eviden
coloanele matricii A:
3. Structura mul imii solu iilor admisibile ale unei probleme de programare liniar 31
A = [A1 , A2 , … , An ]

Defini ie Solu ia x ( x1 , x 2 ,..., x n )T a problemei în form standard


(P), nu neap rat admisibil , se nume te solu ie de baz dac mul imea
coloanelor Ai corespunz toare componentelor x i 0 este liniar independent .

Fie I( x ) mul imea indicilor i {1,2,…,m} cu proprietatea c x i 0.

Lema 1 Dac x i x sunt solu ii de baz ale programului (P) i


I( x ) I( x ) atunci x = x ( i deci I( x ) = I( x )).

Demonstra ie: Este clar c x i = x i = 0 pentru indicii i I( x ). Atunci


egalit ile:
xi Ai xi Ai b
i I( x ) i I( x )

implic :
( xi xi )Ai 0
i I( x )

de unde rezult x i = x i pentru to i i I( x ), deoarece prin ipotez coloanele


Ai , i I( x ) sunt liniar independente.

Lema 2 Fie x ( x1 , x 2 ,..., x n )T o solu ie admisibil a problemei (P)


care nu este solu ie de baz . Atunci exist un vector y Rn i un interval
[ , ] Rn {- , + } astfel încât:
1) Ay = 0;
2) [ , ] con ine pe 0 i nu se reduce la acest punct; i nu sunt
simultan infinite;
3) pentru orice [ , ] vectorul x( ) = x + y este o solu ie
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 pu ine componente nenule decât x .

Demonstra ie: Din ipotez rezult c mul imea coloanelor Ai , i I( x )


este liniar independent . Exist prin urmare scalarii yi , i I( x ) nu to i nuli
astfel încât:
32 I. PROGRAMARE LINIARA

yi Ai 0
i I( x )

Punând yi = 0 pentru i I( x ) ob inem un vector y = (y1 ,y2 ,…,yn) Rn cu


proprietatea c :

n
yi Ai 0 Ay 0
i 1

Afirma ia 1) este demonstrat .

Pentru orice R vectorul x( ) = x + y este o solu ie a problemei (P)


deoarece Ax( ) = A x + Ay =b.
Impunând condi ia de admisibilitate x( ) 0 ob inem pentru intervalul de
valori permise [ , ] în care:

xi xi
max yi min yi
= i I ( x ), yi 0 = i I ( x ), yi 0
daca toti y i 0 daca toti y i 0

Avem < 0 < i deoarece y 0, cel pu in una din extremit ile , este
finit . Astfel i afirma iile 2) , 3) sunt probate.

S presupunem, în final c este finit. Atunci va exista un indice


x
r I( x ) astfel c :yr < 0 i = - r y .Dac x = x( ) este clar c I( x )
r
I( x ) i cum x r x r y r 0 iar x r 0 urmeaz c I( x ) < I( x ) i
ultima afirma ie este dovedit .

Teorema 3.4.1 O solu ie admisibil x ( x1 , x 2 ,..., x n )T a problemei (P)


este un vârf al mul imii AP dac i numai dac x este o solu ie de baz .

Demonstra ie: S presupunem c x este vârf dar nu este solu ie de


baz . Conform lemei 2 exist y Rn cu Ay = 0 i intervalul [ , ] care
con ine pe 0 i nu se reduce la acesta, astfel încât x( ) = x + y s fie o solu ie
3. Structura mul imii solu iilor admisibile ale unei probleme de programare liniar 33
a programului (P) oricare ar fi [ , ]. Alegem > 0 suficient de mic
astfel încât [- ,+ ] [ , ] i punem: x1 = x - y, x2 = x + y . Atunci x1,x2
AP , x1 x2 i x 12 ( x 1 x 2 ) în contradic ie cu ipoteza c x este vârf al
mul imii AP .

Pentru reciproc s presupunem c x este o solu ie de baz f r a fi


vârf. Atunci exist x1,x2 AP, x1 x2 i (0,1) astfel încât x = (1- )x1 + x2.
1
Pentru i I( x ) avem (1 )xi x i 0 i cum x 1i 0 , x 2i 0 rezult
2

x 1i x 2i 0 . În consecin , I(x1) I( x ), I(x2) I( x ) i în virtutea lemei 1


rezult x1 = x2 = x , în contradic ie cu ipoteza f cut .

Teorema 3.4.2 Dac programul în form standard (P) este compatibil


atunci mul imea solu iilor sale admisibile AP are cel pu in o solu ie de baz ,
deci un vârf.

Demonstra ie Fie x = ( x1 , x 2 ,..., x n ) T o solu ie admisibil a


problemei (P). Vom proceda prin induc ie dup num rul k al componentelor
x i 0 .Dac k = 0 atunci x = (0,0,...,0) este o solu ie de baz întrucât o
mul ime vid de vectori este, prin conven ie,liniar independent . Dac k > 0
exist dou situa ii de examinat:
1) Coloanele Ai, i I( x ) sunt liniar independente. Atunci x este o
solu ie de baz .

2) Coloanele Ai, i I( x ) sunt liniar dependente. Conform lemei 2 va


exista o solu ie admisibil x cu I( x ) I( x ) dar cu mai pu ine componente
nenule decât x . Repetând ra ionamentul, este clar c într-un num r finit de
pa i se ajunge la situa ia 1) adic la o solu ie de baz .

Consecin Mul imea AP a solu iilor admisibile ale unui program


liniar compatibil are cel pu in un vârf.

Demonstra ie: S presupunem c (P) nu este în form standard,


altminteri avem teorema 3.4.2. Fie (FSP) forma standard a programului (P).
Deoarece avem coresponden a bijectiv : AP AFSP deducem c AFSP
pentru c prin ipotez AP . Prin teorema 3.4.2 mul imea AFSP are cel pu in
-1
un vârf; acesta, prin proiec ia va fi un vârf al mul imii AP , gra ie
teoremei 3.3.1.
34 I. PROGRAMARE LINIARA
Având în vedere caracterizarea algebric a vârfurilor dat în teorema
3.4.1, teorema central a program rii liniare poate fi formulat i în urm torii
termeni.

Teorema 3.4.3 Dac un program liniar în form standard are optim


finit, cel pu in una din solu iile sale optime este o solu ie de baz .

Mai r mâne de ar tat c mul imea solu iilor admisibile ale unui
program liniar are un num r finit de vârfuri. În virtutea teoremelor 3.3.1 i
3.4.1, aceasta revine la a ar ta c un program liniar în form standard (P) are
un num r finit de solu ii admisibile de baz . Faptul rezult nemijlocit din aceea
c num rul sistemelor liniar independente ce pot fi extrase dintr-o mul ime
finit de vectori este finit. Vom preciza acest lucru sub forma unei teoreme în
sec iunea urm toare, în care vom introduce un concept u or diferit de cel de
solu ie de baz , acela de solu ie asociat unei baze a programului (P). Noul
concept are avantajul de a fi mai u or de manipulat în practic .

3.5 Baze ale unui program liniar în form standard. Solu ia


asociat unei baze

În nota iile sec iunii precedente facem ipoteza:

rangA = m < n (3.5.1)

Ipoteza ne asigur c ecua iile ce compun sistemul liniar Ax = b al restric iilor


sunt independente i c acest sistem are o infinitate de solu ii. S not m c
ipoteza nu implic în mod necesar i existen a solu iilor admisibile (adic cu
toate componentele nenegative) pentru sistemul considerat. Dup cum vom
vedea în sec iunea 4.6 ipoteza f cut nu este deloc restrictiv .

Deoarece rangA = m, în matricea A va exista cel pu in un grup de m


coloane liniar independente, constituind deci o baz a spa iului Rm. Un
asemenea grup se va numi baz a programului (P) i num rul acestora este
n!
finit , nedep ind Cnm .
m !( n m )!

Fie B o baz a programului (P), I mul imea indicilor coloanelor din B i


J mul imea indicilor coloanelor din A care nu sunt în B. Renumerotând
convenabil variabilele programului vom scrie matricea A în forma:
3. Structura mul imii solu iilor admisibile ale unei probleme de programare liniar 35
A = [B , S] cu B = [Ai]i I , S = [Aj]j J

Parti ion m corespunz tor vectorul (coloan ) x al variabilelor:

xB
x cu x B xi , xS xj
xS i I j J

ca i vectorul (linie) al coeficien ilor func iei obiectiv:

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:

xB
B, S b Bx B Sx S b
xS

Deoarece B este o baz a spa iului Rm, B (ca matrice!) este nesingular deci
inversabil . Înmul ind la stânga cu B-1 ob inem:

xB Sx S b cu S B 1S a ij ,b B 1b bi i I
(3.5.2)
i I,j J

Va fi util s punem în eviden coloanele matricii S:

1
S B Aj j J
B 1Aj j J
Aj j J

cu
Aj B 1Aj a ij (3.5.3)
i I

Utiliz m (3.5.2) pentru a elimina din expresia func iei obiectiv variabilele
bazice:
B S
xB
f c ,c c B x B c S x S c B ( b Sx S ) c S x S
xS
cBb ( cBS c S )x S f c SxS (3.5.4)

unde:
36 I. PROGRAMARE LINIARA
f c B b ( c B B 1b ) c i bi (3.5.5)
i I

i:
cS cBS c S ( c B B 1S cS ) cj
j J

în care:
cj cB A j c j ( cBB 1 A j cj ) c i a ij cj (3.5.6)
i I

Astfel, în raport cu baza B, programul (P) poate fi adus la urm toarea form
echivalent , conform (3.5.2) i (3.5.4):

max f f cjxj
max f f c SxS j J

( PB ) xB Sx S b xi a ij x j bi i I (3.5.7)
j J
B S
x 0 ,x 0 xi 0 ,i I ;x j 0, j J

(PB) se nume te forma explicit a programului (P) în raport cu baza B.


Comparând (PB) cu (P) constat m c efectul înmul irii cu B -1 a sistemului
Ax = b este explicitarea variabilelor bazice xi , i I în func ie de cele
nebazice xj , j J.

Luând în (PB):
xS = 0 xj = 0 , j J (3.5.8)
ob inem:

xB b xi bi i I (3.5.9)
Vectorul:
b xB
x (3.5.10)
0 xS

este evident o solu ie a programului (P), numit solu ia asociat bazei B. Vom
spune c B este o baz admisibil dac solu ia asociat (3.5.10) este
admisibil , ceea ce revine la a spune c bi 0 , i I .

Prin construc ie, solu ia asociat unei baze a programului (P) este o
solu ie de baz în sensul defini iei din sec iunea precedent . Reciproca nu este
în general adev rat . Astfel, dac x = ( x1 , x 2 ,..., x n ) T este o solu ie de baz a
programului (P), num rul componentelor nenule este m. Dac acest num r
este exact m atunci x este solu ia asociat bazei formate din coloanele matricii
3. Structura mul imii solu iilor admisibile ale unei probleme de programare liniar 37
A corespunz toare celor m componente nenule. Spunem în acest caz c x
este o solu ie de baz nedegenerat . Dac num rul componentelor nenule este
< m,

coloanele corespunz toare acestor componente pot fi completate pân la o baz


în mai multe moduri, astfel c x se asociaz la mai multe baze! Dac se
întâmpl a a spunem c x este o solu ie degenerat .

Deoarece (P) are un num r finit de baze, el va avea i un num r finit


de solu ii asociate acestor baze i de aici un num r finit de solu ii de baz .

În baza rela iilor (3.5.8), (3.5.9) constanta f din (3.5.5) reprezint


valoarea func iei obiectiv a programului (P) în solu ia (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 esen ial în caracterizarea optimalit ii unei solu ii admisibile de
baz . Ele se numesc costuri reduse i sunt întotdeauna asociate variabilelor
nebazice. Coeficien ii numerici ai formei explicite (3.5.7) se trec într-un tabel
(TB) al c rui format este indicat în tabelul 3.5.1. Tabelul (TB) se nume te
tabelul simplex asociat bazei B. Coloana “B” con ine vectorii bazei B, coloana
“CB” con ine coeficien ii din func ia 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 func iei obiectiv în solu ia asociat bazei
B precum i costurile reduse c j , j J corespunz toare coloanelor nebazice.
Formula (3.5.5) arat c f este produsul scalar al coloanelor “CB” i “VVB”
în timp ce rela ia (3.5.6) arat c c j se ob ine din produsul scalar al coloanelor
“CB” i “Aj” sc zând costul cj scris deasupra coloanei “Aj”.

ci cr cj ck
CB B VV Ai Ar Aj Ak
B

ci Ai bi 1 0 aij ai (TB)
k

cr Ar br 0 1 arj ar
k

f f * * cj ck
38 I. PROGRAMARE LINIARA
Tabelul 3.5.1

Extindem defini ia costului redus i la coloanele “Ai”,


i I: c i c i c i 0 .Aceste costuri reduse au fost notate în linia test cu
asteriscuri (*) spre a le deosebi de eventualele costuri reduse nule c j , j J
care, dup cum vom vedea în sec iunea 4.2, indic - “la optim” - prezen a mai
multor solu ii optime de baz .
38 I. PROGRAMARE LINIARA

4. Metoda simplex

Deoarece tim c dac programul în form standard (P) are optim finit
o solu ie optim va fi cu necesitate o solu ie de baz i deci va fi asociat unei
baze B*, este natural s ne întreb m cum g sim aceast baz optimal
B*.Traducând în termeni algebrici procedeul geometric “naiv”, descris în
finalul sec iunii 3.2, rezult urm toarea procedur :

se genereaz toate bazele programului (P) i se calculeaz solu iile


asociate acestora;
se elimin solu iile de baz neadmisibile i dintre cele admisibile se
re ine acea solu ie care ofer func iei obiectiv valoarea maxim .

Nu mai insist m asupra dezavantajelor i lipsurilor acestei scheme deoarece ele


au fost deja men ionate în sec iunea 3.2. “Metoda” descris are o alternativ
care, din fericire, s-a dovedit a fi deosebit de eficient din punct de vedere
practic. Este vorba de metoda simplex datorat matematicianului american
G.B. Dantzig (1947).
Aceast metod este un procedeu de cercetare sistematic a solu iilor
admisibile de baz ale unui program liniar în form standard (P). Ea presupune
cunoscut o asemenea solu ie, numit solu ie ini ial sau de start i în
continuare construie te un ir de solu ii admisibile de baz dealungul c ruia

valoarea func iei obiectiv cre te progresiv. Metoda simplex ofer un test
simplu de recunoa tere a optimalit ii unei solu ii de baz i deasemeni un test
de recunoa tere a optimului infinit. Practica numeric a ar tat c num rul
solu iilor admisibile de baz efectiv generate este de regul mult mai mic decât
num rul total al acestora.
Cu anumite precau ii, u or de îndeplinit, metoda simplex garanteaz
convergen a procesului iterativ în sensul c o baz admisibil cercetat la un
moment dat nu mai revine în itera iile ulterioare (vezi sec iunea 4.5). Cum
num rul bazelor este finit, urmeaz c într-un num r finit de pa i se ajunge fie
la solu ia optim fie la concluzia c programul are optim infinit.
Fire te, în aceast descriere succint , am plecat de la ipoteza cunoa terii
unei solu ii admisibile de baz ini iale, adic de la premiza c (P) este un
program compatibil. În sec iunea 4.3 vom vedea cum se face recunoa terea
incompatibilit ii unui program liniar.
4. Metoda simplex 39
4.1 Teoremele fundamentale ale metodei simplex

În prezentarea fundamentelor teoretice ale metodei simplex vom folosi


nota iile introduse în sec iunea 3.5. În mod constant vom presupune c solu ia
(3.5.10), asociat bazei B, este admisibil , adic bi 0 , i I .

Teorema A. Dac to i c j 0 , j J atunci solu ia (3.5.10) asociat


bazei B este optim . Dac în plus c j 0 , j J ,atunci ea este i unica solu ie
optim a programului (P).

Demonstra ie: Fie y = (y1,y2,...,yn)T A o solu ie admisibil arbitrar


aleas . Deoarece y1 0, y2 0, ...,yn 0 vom avea:

f ( y) f c jy j f f ( x)
j J

Inegalitatea de mai sus arat c , dintre toate solu iile admisibile ale
programului(P),solu ia x din (3.5.10) ofer func iei 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 solu iei
optime x .

Teorema B. Presupunem c exist indicele k J astfel c c k 0 i to i


a ik 0 , i I ( A k 0) .Atunci programul (P) are optim infinit.

Demonstra ie: Pornind de la solu ia x din (3.5.10) construim o solu ie


admisibil variabil dup cum urmeaz . Înlocuim în (3.5.7):

xk = 0 ; xj = 0 , j J,j k (4.1.1)

Rezult :
xi bi a ik , i I (4.1.2)
40 I. PROGRAMARE LINIARA
Not m cu x ( ) solu ia ale c rei componente sunt definite în (4.1.1) i
(4.1.2). Condi ia enun ului face ca x ( ) A, ( ) 0. Evalu m func ia
obiectiv în solu ia x ( ) :
f ( x( )) f ck (4.1.3)
Rezult imediat c : lim f ( x( )) .Deci f este nem rginit superior pe A i
ca urmare (P) are optim infinit.

Teorema C Presupunem c exist k J astfel încât c k 0 dar exist i


indici i I cu a ik 0 . Fie r I indicele determinat prin formula:

br bi
min (4.1.4)
a rk i I a ik 0 a ik

Atunci grupul de coloane B' ob inut din B înlocuind coloana Ar cu coloana Ak


este o baz admisibil a programului (P) i solu ia x asociat ei este cel
pu in la fel de bun ca i solu ia x asociat bazei B, adic f( x ) f( x ).

Demonstra ie: Din (4.1.4) rezult c a rk 0 . Din Ak = B-1Ak avem:

Ak BA k a ik A i a rk A r
i I ,i r

Deoarece a rk 0 putem exprima Ar în func ie de Ai , i r i Ak:

a ik i 1 k
Ar A A
i I ,i k a rk a rk

Din teorema substitu iei rezult c sistemul B', format din coloanele Ai , i r
i Ak, este o baz a problemei (P).

S lu m în solu ia variabil x ( ) construit în demonstra ia teoremei B:


br
(4.1.5)
a rk
Din formulele (4.1.1) , (4.1.2) rezult :
4. Metoda simplex 41
br
xk ; xj 0 , j J, j k
a rk
br
xi bi a ik , i I
a rk

br
Pentru i = r avem x r br a rk 0 a a c solu ia de mai sus poate fi
a rk
rescris astfel:
xj 0 , j J, j k ; xr 0
br br (4.1.6)
xi bi a ik , i I, i r ; xk
a rk a rk

Not m cu x solu ia ale c rei componente sunt definite în (4.1.6). Vom


observa mai întâi c x este solu ie admisibil a problemei (P), adic are toate
componentele nenegative. Într-adev r:

- dac a ik 0 atunci xi 0;
br bi br
- dac a ik 0 atunci b i a ik 0 care are loc
a rk a ik a rk
conform alegerii indicelui r (vezi (4.1.4)).

În al doilea rând remarc m c x este solu ia asociat bazei B'. Într-adev r, din
(4.1.6) rezult c în x toate variabilele secundare în raport cu baza B' au
valoarea 0. Afirma ia rezult acum din unicitatea solu iei asociate unei baze.

Utilizând formulele (4.1.3) i (4.1.5) ob inem:

br
f (x ) f ck f f ( x) (4.1.7)
a rk

În concluzie, x este cel pu in la fel de bun ca i x.

Observa ii: 1) Bazele B i B' ap rute în enun ul 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 solu iile asociate.
42 I. PROGRAMARE LINIARA

2) Teoremele B i C afirm c dac o solu ie de baz admisibil x nu


satisface criteriul de optimalitate al teoremei A atunci sau (P) are optim infinit
sau, printre solu iile vecine cu x exist cel pu in una la fel de bun ca i x
dac nu chiar mai bun .

Recapitulând materialul expus în aceast sec iune constat m c testarea


optimalit ii solu iei x asociate bazei B presupune cunoa terea formei
explicite (3.5.7) a problemei ini iale în raport cu baza B. Mai mult, dac x nu
verific criteriul de optimalitate al teoremei A, construc ia solu iei de baz mai
bune x se face cu ajutorul elementelor aceleia i forme (3.5.7). În consecin ,
testarea optimalit ii solu iei x asociat bazei vecine B' va necesita
cunoa terea formei explicite a problemei ini iale în raport cu noua baz B':

max f f c jx j cr x r
j J,j k

xi a ij x j a ir x r bi i I, i r
( PB' ) j J,j k (4.1.8)
xk a kj x j a kr x r bk
j J,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 da i de (4.1.6) în
timp ce constanta f , care este valoarea func iei obiectiv în noua solu ie de
baz x , a fost ob inut în (4.1.7).)

Fire te, (4.1.8) se poate ob ine ca i (3.5.7) prin înmul irea la stânga a
sistemului original de restric ii Ax = b cu matricea invers (B')-1. Putem deduce
(4.1.8) direct din (3.5.7) cu ajutorul urm toarelor opera ii:

Din ecua ia r a sistemului (3.5.7):

xr a rj x j a rk x k br
j k

explicit m xk, împ r ind rela ia cu a rk :


4. Metoda simplex 43
a rj 1 br
xk xj xr (4.1.9)
j k a rk a rk a rk

Substituim xk dat de (4.1.9) în celelalte ecua ii ale sistemului din (3.5.7).


Ob inem:

a rj a ik br
xi ( a ij )x j xr bi a ik , i I, i r (4.1.10)
j k a rk a rk a rk

Ecua iile (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 acela i xk i în expresia func iei obiectiv din (3.5.7).
G sim:

br a rj ck
f (f ck ) (c j ck )x j xr (4.1.11)
a rk j k a rk a rk

Astfel, am exprimat func ia 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'. Identificând coeficien ii din
aceste ecua ii cu coeficien ii corespunz tori din (4.1.8) rezult formulele:

a rj i I, i r a ik
a ij a ij a ik ; a ir i I, i r
a rk j J, j k a rk

a rj 1
a kj j J, j k ; a kr (4.1.12)
a rk a rk

br a rj ck
f f ck ; cj cj ck j J, j k ; cr
a rk a rk a rk

cunoscute i sub numele de formule de schimbare a bazei.


44 I. PROGRAMARE LINIARA

4.2 Algoritmul simplex

Rezolvarea efectiv a unui program liniar în form standard (P) se face


cu ajutorul algoritmului simplex. Acesta este un pachet invariabil de
instruc iuni logice i de calcul care, aplicate unei solu ii admisibile de baz a
programului (P), stabile te dac solu ia respectiv este optim i, în caz
contrar, pune în eviden situa ia de optim infinit sau construie te efectiv o
solu ie admisibil de baz mai bun decât cea curent .

S consider m o baz admisibil B precum i forma explicit (PB) a


programului (P) în raport cu aceast baz . (vezi nota iile sec iunii 3.5)
În raport cu aceste date de intrare, con inutul unei itera ii simplex este
urm torul:

Pasul 1. (Test de optimalitate) Dac to i c j 0 , j J solu ia de baz


curent (adic solu ia (3.5.10), asociat bazei B) este optim : STOP.
Altminteri:

Pasul 2. Se alege indicele nebazic k J astfel ca:

ck min c j (4.2.1)
j J

Pasul 3. Dac :
a ik 0,i I ( Ak 0)

programul (P) are optim infinit:STOP. Altminteri:

Pasul 4. Se determin indicele bazic r I cu formula:

br bi
min (4.2.2)
a rk i I aik 0 a ik

Pasul 5. Se construie te 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 itera ii.
4. Metoda simplex 45
Observa ii 1) La pasul 2 avem cu necesitate c k 0 . Despre coloana
nebazic Ak vom spune c intr în baza curent . În demonstra ia teoremei C
s-a ar tat c varia ia valorii func iei obiectiv la schimbarea coloanei bazice Ar
cu coloana Ak este dat de formula:

br
f (x ) f ( x) ck (4.2.3)
a rk

br
Cum 0 (vezi (4.2.2)) urmeaz c introducerea în baz a oric rei coloane
a rk
nebazice Aj cu c j 0 îmbun t e te valoarea curent a func iei obiectiv.
Alegerea coloanei nebazice care va intra în baza curent dup formula (4.2.1)
asigur func iei obiectiv cea mai mare vitez de varia ie i în general conduce
la terminarea algoritmului în mai pu ine itera ii.

2) Se poate ar ta u or c dac situa ia descris în pasul 3 are loc atunci


vectorul w = (w1,w2,...,wn)T definit prin:

wi a ik , i I; wj 0 , j J, j k ; wk 1 (4.2.4)

este o raz extrem a mul imii poliedrale AP.

3) Despre coloana bazic Ar al c rei indice se determin cu formula


(4.4.2) vom spune c p r se te baza curent . Alegerea ei dup formula
amintit asigur admisibilitatea solu iei 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 nume te pivot i opera ia 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 rela iei (1.3.1). Algoritmul simplex descris mai sus este
aplicabil i problemelor de minimizare cu urm toarele mici modific ri:

în pasul 1: solu ia curent este optim dac c j 0, j J;


46 I. PROGRAMARE LINIARA
în pasul 2: pentru determinarea indicelui coloanei nebazice care
intr în baza curent se va utiliza formula
c k max c j
j J
De aceast dat vom avea c k 0.

6) S presupunem c baza curent B este optimal (adic solu ia


asociat ei verific testul de optimalitate) i c exist indici nebazici j J cu
c j 0 . Formula (4.2.3) arat c introducerea în baza curent a oric rei coloane
Ak pentru care c k 0 conduce la solu ii de baz la fel de bune ca i cea
curent , deci optime. Se poate ar ta c dac x 1 , x 2 ,..., x p , p 2 sunt toate
solu iile de baz optime ale programului (P) atunci acesta are o infinitate de
solu ii optime care au forma:

1 2 p
x 1x 2x ... px cu 1, 2 ,..., p 0 si 1 2 ... p 1

(altfel spus, orice solu ie optim este o combina ie convex a solu iilor optime
de baz )

7) În rezolvarea manual a programelor liniare (fire te de mici


dimensiuni) se utilizeaz tabelele simplex (3.5.1) asociate diferitelor baze
cercetate. Aceste tabele se deduc unul din altul prin pivotare gaussian .

În continuare vom aplica algoritmul simplex pe o problem simpl , în


dou variabile, pentru a putea ilustra grafic modul în care ac ioneaz
procedura.
4. Metoda simplex 47

Exemplul 4.2.1 Consider m programul:

max f 2 x1 x 2
( P) x1 x 2 4 ; 3x1 x 2 18 ; x1 2x 2 6
x1 0 , x2 0

a c rui mul ime de solu ii admisibile AP este vizualizat în figura 4.2.1.

x2

S3: x1=42/5, x2=36/5

S2: x1=7, x2=3


A
S1: x1=4, x2=0
x1

S0: x1=0, x2=0

Figura 4.2.1

Aducem (P) la forma standard ad ugând variabilele de abatere x3, x4, x5:

max f 2 x1 x2
x1 x2 x3 4
( FSP) 3x1 x2 x4 18
x1 2x 2 x5 6
xj 0 , j 1,...,5

Se observ c matricea A a coeficien ilor formei standard (FSP) con ine baza
unitar E = [ A3,A4,A5] a c rei solu ie asociat :

1 = 0 , x2 = 0 , x3 = 4 , x4 = 18 , x5 = 6
48 I. PROGRAMARE LINIARA

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 cu bazele cercetate. În trei
itera ii s-a ob inut solu ia optim x1 42 5
, x 2 36
5
, valoarea maxim a
func iei obiectiv fiind 24; variabilele de abatere au în solu ia optim valorile
x 3 145 , x 4 x 5 0 .

2 1 0 0 0
cBB VVB A1 A2 A3 A4 A5
0 A3 4 1 -1 1 0 0 x 1 - x 2 + x3 = 4
0 A4 18 3 -1 0 1 0 3x1 - x2 +x4 = 18
0 A5 6 -1 2 0 0 1 -x1+2x2 +x5 = 6
f 0 -2 -1 * * * -2x1 -x2 +f = 0
22 A1 4 1 -1 1 0 0 x1 -x2 + x3 = 4
0 A4 6 0 2 -3 1 0 2x2 -3x3 +x4 = 6
0 A5 10 0 1 1 0 1 x 2 + x3 +x5 = 10
f 8 * -3 2 * * -3x2 +2x3 +f = 8
2 A1 7 1 0 -1/2 1/2 0 x1 - 1/2x3+1/2x4 = 7
1 A2 3 0 1 -3/2 1/2 0 x2 -3/2x3+1/2x4 = 3
0 A5 7 0 0 5/2 -1/2 1 5/2x3 - 1/2x4 +x5 = 7
f 17 * * -5/2 3/2 * -5/2x3+3/2x4 +f = 17
2 A1 42/5 1 0 0 2/5 1/5 x1 +2/5x4 +1/2x5 =
42/5
1 A2 36/5 0 1 0 1/5 3/5 x2 +1/5x4 +3/5x5 = 36/5
0 A3 14/5 0 0 1 -1/5 2/5 x3 -1/5x4 +2/5x5 =
14/5
f 24 * * * 1 1 x4 + x5 +f = 24

Tabelele 4.2.1 - 4.2.4

Componentele
solu iei de baz Solu ia Valoarea
Solu ia Baza generat de algoritm programului func iei
x1 x2 x3 x4 x5 (P) obiectiv
S0 B0 = [A3 , A4 , 0 0 4 18 6 (0 , 0) 0
A5]
S1 B1 = [A1 , A4 , 4 0 0 6 10 (4 , 0) 8
A5]
S2 B = [A1 , A2 ,
2
7 3 0 0 7 (7 , 3) 17
A5]
S3 B = [A1 , A2 ,
3
42/5 36/5 14/5 0 0 (42/5 , 36/5) 24
A3]
4. Metoda simplex 49

Tabelul 4.2.5

Este util s recapitul m într-un tabel solu iile admisibile de baz ale
programului (FSP) , efectiv generate de algoritm , împreun cu solu iile

programului (P), asociate prin coresponden a din finalul sec iunii 3.3 (vezi
tabelul 4.2.5).
Urm rind imaginea grafic (fig. 4.2.1), deducem sensul geometric al
algoritmului simplex: procedura pleac dintr-un vârf al mul imii solu iilor
admisibile apoi se deplaseaz c tre un vârf “vecin” mai bun .a.m.d. pân la
g sirea solu iei optime.

4.3 Determinarea unei solu ii admisibile de start

Dup cum s-a specificat, aplicarea algoritmului simplex necesit


cunoa terea unei baze admisibile de start precum i a formei explicite asociate
acesteia, celelalte forme explicite deducându-se una din alta prin pivotare
gaussian . Chiar i pentru probleme de dimensiuni mici, g sirea unei asemenea
baze de start prin simpla inspectare a coloanelor matricii A, se dovede te a fi o
treab complicat , ne mai vorbind de faptul c este posibil ca problema s nu
aibe solu ii admisibile. În plus, s nu uit m c teoria metodei simplex s-a bazat
esen ial pe ipoteza c restric iile problemei sunt liniar independente, lucru
iar i greu de verificat în practic . Pentru ob inerea formei explicite ini iale
avem nevoie de câteva preg tiri.

Vom spune c programul în form standard (P) este în form bun dac
matricea A con ine o submatrice unitate de ordinul m (= num rul restric iilor)
iar termenii liberi sunt nenegativi. Dac este a a, (P) satisface condi ia (3.5.1)
iar solu ia asociat bazei unitare este admisibil i poate fi considerat ca
solu ie de start pentru aplicarea algoritmului simplex. Dac (P) nu este în
form bun , el se poate aduce la aceast form , notat (FBP), în felul urm tor:

În caz c unele restric ii ale programului ini ial au termeni liberi


negativi înmul im aceste restric ii cu -1; în acest fel to i termenii liberi ai
restric iilor problemei de rezolvat vor fi 0.
Se aduce problema la forma standard ad ugând variabile de
abatere în restric iile inegalit i.
Dac matricea programului rezultat nu con ine toate coloanele
matricii unitate de ordinul m, în anumite restric ii se vor ad uga noi variabile
nenegative pentru crearea coloanelor lips ; aceste noi variabile se numesc
50 I. PROGRAMARE LINIARA
variabile artificiale i, spre deosebire de cele de abatere, apar i în func ia
obiectiv cu un coeficient comun, foarte mare în valoare absolut . Coeficientul
va fi negativ dac func ia obiectiv se maximizeaz i pozitiv în caz contrar.

Se observ imediat c dac programul ini ial (P) este compatibil,


solu iile sale admisibile se identific cu acele solu ii ale formei bune în care
variabilele artificiale au valoarea zero. Prin faptul c variabilele artificiale sunt
înso ite în expresia func iei obiectiv de ni te “penaliz ri” foarte mari, metoda
simplex este “instruit ” s caute tocmai asemenea solu ii! i astfel, rezolvarea
formei bune ne conduce la unul din urm toarele cazuri:

1. Forma bun are optim infinit. Atunci i programul ini ial are optim
infinit.
2. Forma bun are optim finit dar în solu ia optim cel pu in o
variabil artificial are valoare nenul . Atunci programul original este
incompatibil.
3. Forma bun are optim finit i în solu ia optim toate variabilele
artificiale au valoarea zero. Ignorând valorile acestor variabile se ob ine
solu ia optim a programului ini ial.

Exemplul 4.3.1 Consider m urm torul program împreun cu forma sa


standard:
(max) f 2 x1 3x 2 (max) f 2x1 3x 2
2 x1 x2 40 2 x1 x 2 x 3 40
(P) x1 3x 2 30 ( FSP ) x1 3x 2 x4 30
x1 x2 30 x1 x 2 x5 30
x1 0 , x2 0 x j 0 , j 1,...,5

Se constat c (FSP) nu este în forma bun necon inând decât un singur vector
al matricii unitare de ordinul 3. Vom creea o asemenea matrice introducând în
primele dou restric ii variabilele artificiale x6 i x7. Ob inem programul:
4. Metoda simplex 51
(max) f 2 x1 3x 2 Mx 6 Mx 7
2 x1 x2 x3 x6 40
( FBP ) x1 3x 2 x4 x 7 30 , M 0
x1 x2 x5 30
x j 0 , j 1,...,7

Putem aplica algoritmul simplex programului (FBP) plecând de la baza unitar


E = [A6, A7, A5] i de la solu ia asociat acesteia:

x1 = x2 = x3 =x4 = 0 x5 = 30 , x6 = 40 , x7 = 30

Dup trei itera ii (vezi tabelele 4.3.1 - 4.3.4) se ob ine solu ia optim a
programului (FBP) în care variabilele artificiale x6 , x7 au valoarea zero.
Ignorând aceste valori se ob ine solu ia optim a formei standard (FSP) i
implicit solu ia optim a programului original (P):

x1 10 , x 2 20 f max 80

varibilele de abatere având valorile: x 3 0 , x4 40 , x 5 0.

2 3 0 0 0 -M -M
cB B VVB A1 A2 A3 A4 A5 A6 A7
-M A6 40 2 1 -1 0 0 1 0
-M A7 30 1 3 0 -1 0 0 1
0 A5 30 1 1 0 0 1 0 0
f -70M -3M-2 -4M-3 M M * * *
-M A6 30 5/3 0 -1 1/3 0 1 -1/3
3 A2 10 1/3 1 0 -1/3 0 0 1/3
0 A5 20 2/3 0 0 1/3 1 0 -1/3
f -30M+30 -5/3M-1 * M -M/3-1 * * 4M/3+1
2 A1 18 1 0 -3/5 1///5 0 3/5 -1/5
3 A2 4 0 1 1/5 -2/5 0 -1/5 2/5
0 A5 8 0 0 2/5 1/5 1 -2/5 -1/5
f 48 * * -3/5 -4/5 * M+3/5 M+4/5
2 A1 10 1 0 -1 0 -1 1 0
3 A2 20 0 1 1 0 2 -1 0
0 A4 40 0 0 2 1 5 -2 -1
f 80 * * 1 * 4 M-1 M

Tabelele 4.3.1 - 4.3.4


52 I. PROGRAMARE LINIARA
Punctele din R2 corespunz toare celor patru solu ii generate de algoritm sunt
S = (0,0) , S1 = (0,10) , S2 = (18,4) , S3 = (10,20).
0

x2

S3: x1=10 , x2=20

A
S1: x1=0 , x2=10 x1

S0: x1=0 , x2=0

S2: x1=18 , x2=4

Figura 4.3.1

Urm rind fig. 4.3.1 se constat c punctele S0 i S1, ce corespund unor


solu ii ale programului (FBP) în care cel pu in o variabil artificial are valoare
nenul , sunt în afara mul imii AP în timp ce S2 i S3, corespunz toare unor
solu ii în care x6 = x7 = 0, sunt vârfuri ale acestei mul imi.

Pentru determinarea unei solu ii admisibile de baz de start, în situa ia


în care programul ini ial (P) nu este în form bun , se poate aplica i a a
numita metod a celor dou faze:

se introduc în restric ii variabile artificiale, bineîn eles acolo unde


este cazul, în scopul form rii unei baze unitare de start (termenii liberi ai
restric iilor se presupun a fi nenegativi);
în faza I se minimizeaz suma w a variabilelor artificiale introduse.
Deoarece i aceste variabile sunt supuse condi iei de nenegativitate, urmeaz
c (min)w 0. În caz c (min)w > 0 este clar c programul ini ial (P) este
incompatibil; dac (min)w = 0 se trece la:
4. Metoda simplex 53
faza a II-a, în care se optimizeaz func ia obiectiv a programului
ini ial (P) plecând de la solu ia de baz rezultat la finele fazei I. (Aten ie, la
începutul acestei faze, vom avea grij s recalcul m costurile reduse c j în
raport cu coeficien ii func iei obiectiv din (P)!)

4.4. Inversa bazei curente. Solu ia optim a problemei duale

S consider m un program liniar (P) în form bun . Renumerotând


convenabil variabilele programului, matricea coeficien ilor sistemului de
restric ii are forma:
A = [A’ , E]

unde E este matricea unitate de ordinul m = num rul restric iilor din (P). Dup
cum am v zut, E se ia ca baz de start în procesul rezolv rii programului (P)

prin algoritmul simplex. Dac B este o baz cercetat de algoritm, atunci


matricea formei explicite asociat bazei B va fi:

B-1A = [B-1A’ , B-1]

Cum matricea B-1A apare în “corpul mare” al tabelului simplex corespunz tor
bazei B, deducem urm toarea concluzie important :

La fiecare itera ie, algoritmul simplex pune în eviden inversa B-1 a


bazei curente. Ea este format din coloanele Aj corespunz toare coloanelor
unitare Aj care au format baza de start.

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 “cite te” din ultimul tabel simplex:

1 0 1
1 6 7 5
B A ,A ,A 1 0 2
2 1 5
54 I. PROGRAMARE LINIARA
O calitate remarcabil a algoritmului simplex este aceea c produce
nu numai solu ia optim a problemei c reia i se aplic ci i solu ia optim a
problemei duale.

S consider m un cuplu de probleme în dualitate în care una este în form


standard (vezi sec iunea 2.2):

max f ( x ) cx min g( u ) ub
(P) Ax b (Q) uA c
x 0 u oarecare

Cu nota iile sec iunii 3.5 avem urm toarea;

Teorema 4.4.1 Presupunem c (P) are o solu ie optim x* asociat


unei baze B. Atunci:
u* = cBB-1 (4.4.1)

este o solu ie optim a problemei duale (Q).

Demonstra ie: Vom ar ta c u* satisface restric iile uAj cj , j =


j B -1 j
1,…,n ale problemei duale (Q). Într-adev r u*A - cj =c B A -cj = c j , conform
(3.5.6). Avem c j 0 , j = 1,…,n, deoarece x* este prin ipotez solu ia optim a
programului (P), astfel c u* este o solu ie a dualei (Q). Mai departe f(x*) =
g(u*) = cBB-1b. Concluzia teoremei decurge acum din teorema 2.3.1.

Practic, pentru determinarea solu iei optime duale se procedeaz astfel.


Am ar tat c rezolvarea unei probleme în form standard se reduce la
rezolvarea unei probleme de acela i tip a c rei matrice con ine o submatrice
unitate având ordinul egal cu num rul restric iilor.

Atunci inversa bazei optimale B-1 se cite te în tabelul simplex asociat


acestei baze pe coloanele Aj corespunz toare vectorilor care au format baza
unitar de start!

Extr gând B-1 din tabel se poate aplica formula (4.4.1).

Procedeul descris este valabil i pentru un cuplu general de probleme în


dualitate (P,Q). Într-adev r, dup cum am v zut deja, aducerea problemei (P) la
o form (P1) convenabil aplic rii algoritmului simplex se face prin ad ugare
4. Metoda simplex 55
de variabile: de abatere i/sau artificiale. În consecin , duala (Q1) a
problemei (P1) va avea acelea i variabile i aceea i func ie obiectiv ca i duala
(Q) a problemei ini iale(P), diferen a constând în num rul restric iilor i în
condi iile impuse variabilelor. Se poate ar ta f r dificultate c aceast
“diferen ” nu înseamn altceva decât dou modalit i de scriere a uneia i
aceleia i probleme, altfel spus (Q) i (Q1), în esen , coincid! În acest fel,
teorema de dualitate 2.3.3 este probat .

Exemplul 4.4.2 Ilustr m cele de mai sus, determinând solu ia optim a


programului liniar:

min g( u ) 40u1 30u2 30u3


( Q ) 2u1 u2 u3 2 ; u1 3u2 u3 3
u1 0 , u2 0 , u3 0

care este dualul programului (P) rezolvat în exemplul 4.3.1. Dup ad ugarea
variabilelor de abatere i a celor artificiale, din (P) s-a ob inut programul
(P1) = (FBP) al c rui dual este:

min g( u ) 40u1 30u2 30u3


2u1 u2 u3 2
u1 3u2 u3 3
u1 0
( Q1 ) u2 0
u3 0
u1 M
u2 M
u1 , u2 , u3 f.r.s.
56 I. PROGRAMARE LINIARA
Restric ia u3 0 este de fapt condi ia de nenegativitate impus variabilei u3
în (Q) iar -u1 0 , -u2 0 înseamn u1 0 , u2 0. Ultimele dou restric ii din
(Q1) sunt superflue pentru c M este prin defini ie >>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
solu ia optim a probl;emei 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.

Observa ie: Folosind nota iile din 3.5 punem în eviden


componentele vectorului linie cBB-1 :

j cB A j c i a ij j J
i I

Pentru coloanele unitare Ai corespunz toare vectorilor Ai din baza curent


punem:
i = ci i I

Din (3.5.6) rezult atunci c :

c j = j - cj j=1,…,n

i deci m rimile j sunt efectiv calculate în procesul evalu rii coeficien ilor
c j ! Acesta este i motivul pentru care de multe ori m rimile j sunt puse în
eviden într-o linie separat plasat în tabelul simplex deasupra liniei test. Cu
aceste preg tiri, formula (4.4.1) arat c :

Solu ia optim a problemei duale este dat de coeficien ii j din tabelul


simplex al problemei primale, corespunz tori coloanelor unitare care au
format baza de start.

4.5 Convergen a algoritmului simplex


4. Metoda simplex 57
Se arat u or c dac minimul din (4.2.2) nu este unic atunci noua
solu ie de baz x este degenerat , adic are un num r de componente nenule
< m. Aceast situa ie este delicat prin faptul c poate implica neconvergen a
algoritmului. Mai precis, este posibil ca algoritmul s genereze un ir de solu ii
de baz neoptimale x 1 , x 2 ,..., x p , dealungul c ruia valoarea func iei obiectiv
sta ioneaz , adic f (x1 ) f (x 2 ) f ( x p ) , astfel încât x p x 1 !!
Fenomenul descris, numit ciclare, de i teoretic posibil, nu a fost întâlnit în nici
o aplica ie practic , existen a lui fiind probat doar prin câteva exemple
“artificial” construite.

Exemplul 4.5.1 [Beale] Se consider programul liniar:

x1 + 14 x 4 8x 5 x6 9x 7 0
x2 + 12 x 4 12 x 5 1
2 x6 3x 7 0
x3 + x6 =1
3 1
(max)f = 4 x4 20 x 5 2 x6 6x 7

O baz admisibil de start este B0 = E = [A1,A2,A3] a c rei solu ie asociat x0


este degenerat . Într-adev r, 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 f r dificultate c valoarea func iei obiectiv în solu iile de baz
asociate este zero i c nici una din aceste solu ii, toate degenerate, nu verific
criteriul de optimalitate. Pe de alt parte observ m c baza B6 este identic cu
baza B1 i deci algoritmul intr într-un ciclu infinit f r a putea determina
solu ia optim (care exist i este unic dup cum vom vedea).
Pentru problemele ale c ror solu ii de baz admisibile sunt toate
nedegenerate convergen a algoritmului este asigurat de urm toarea :

Teorema 4.5.1 Dac programul în form standard (P) este compatibil


i toate solu iile sale admisibile de baz sunt nedegenerate atunci aplicarea
algoritmului simplex descris în 4.2 se termin într-un num r finit de itera ii, fie
cu g sirea solu iei optime, fie cu concluzia c programul are optim infinit.
58 I. PROGRAMARE LINIARA

Demonstra ie: Fie x 0 , x 1 , x 2 ,... solu iile cercetate în cursul aplic rii
algoritmului , x 0 fiind solu ia ini ial . Avem f ( x 0 ) f ( x 1 ) f ( x 2 ) ....
Ipoteza nedegener rii precum i formula (4.2.3) arat c de fapt
f ( x 0 ) f ( x 1 ) f ( x 2 ) ... i deci nici o solu ie admisibil de baz nu va fi
cercetat de dou ori. Concluzia teoremei rezult acum din faptul c num rul
solu iilor de baz este finit (vezi sec iunea 3.5).

Din fericire, exist proceduri de evitare a cicl rii care constau într-o
mic modificare a regulii (4.2.2). Ele sunt încorporate în orice pachet de
programe destinat rezolv rii problemelor de programare liniar . O asemenea
metod va fi descris în cele ce urmeaz . Sunt necesare câteva preg tiri.

Defini ie Spunem c vectorul x = (x1,x2,...,xn) este lexicografic pozitiv i


scriem x 0 dac x 0 i prima component nenul a lui x este pozitiv .

În mul imea vectorilor din Rn introducem rela ia binar :

x y dac x-y 0

Se verific u or afirma iile:

Dac x y i y z atunci x z (tranzitivitate).


Oricare ar fi x , y Rn una i numai una din urm toarele rela ii are
loc: x = y , x y , y x.

Prin urmare rela ia este o rela ie de ordine total pe Rn care extinde rela ia
de ordine natural din R În plus ea este compatibil cu structura liniar a
spa iului Rn în sensul c :

x y x+z y+z
x y i >0 x y

S consider m acum problema de programare liniar în form standard:

Ax b 0
( P) x 0
(max) f cx
4. Metoda simplex 59

Putem presupune c problema (P) este în form bun , altfel spus c matricea A
con ine o submatrice unitate de ordinul m, unde m este, ca de obicei, num rul
restric iilor. Renumerotând convenabil variabilele problemei putem presupune
c primele m coloane din A sunt unitare, astfel c A are forma A = E , S .
Atunci tabelul simplex asociat unei baze oarecare B, nu neap rat admisibil ,
are urm torul con inut:

VVB
B b B-1 B-1S

Fie I mul imea indicilor vectorilor Ai care formeaz baza B. Pentru fiecare i I
not m:
qiB bi , ai1 , ai 2 ,..., aim (4.5.1)

unde ai1 , ai 2 ,..., aim sunt componentele liniei i a matricii B-1.

Defini ie Vom spune c baza B este lexicografic admisibil dac


B
q i 0 pentru orice i I.

Este clar c dac B este lexicografic admisibil atunci B este admisibil în


sensul de pân acum adic bi 0 , i I . Reciproc, dac B este admisibil i
solu ia asociat este nedegenerat , adic bi 0 , i I atunci evident, B este
lexicografic admisibil .

Baza de start B0 = E este lexicografic admisibil . Într-adev r:


0
qiB bi ,0,...,1,...0 i = 1,...,m

0
i este clar c to i q iB 0 . Introducem vectorul q B ( f , c ) în care f este
valoarea func iei obiectiv în solu ia asociat bazei B iar c este vectorul
costurilor reduse corespunz toare (vezi sec iunea 3.5).

Defini ie Spunem c baza B' este lexicografic mai bun decât baza B
(în sensul maximiz rii func iei obiectiv f ) i vom scrie B' B dac qB' qB.

Evident B' B este o rela ie de ordine total în mul imea bazelor problemei (P).
Se constat imediat c dac B' este lexicografic mai bun decât B atunci B' este
cel pu in la fel de bun ca i B în sensul obi nuit adic f ' f .
60 I. PROGRAMARE LINIARA
Ideea de modificare a algoritmului simplex descris în 4.2 const în a
pleca de la o baz B0 lexicografic admisibil i de a genera în continuare numai
baze lexicografic admisibile B1 , B2 ,... care s fie din ce în ce mai bune în sens
lexicografic, adic :
B0 B1 B2 ...

Având în vedere c în irul de mai sus nu pot exista dou baze identice i c
num rul bazelor admisibile este finit urmeaz c ideea de modificare a
algoritmului simplex propus mai sus garanteaz convergen a procedurii.

Trecem acum la concretizarea ideii de modificare. Fie B o baz


lexicografic admisibil care nu verific criteriul de optimalitate al algoritmului
simplex. Determin m cu criteriul (4.2.1) coloana Ak care intr în baz i
presupunem c Ak are i componente pozitive (cu alte cuvinte nu suntem în
cazul optimului infinit). Pentru determinarea indicelui coloanei Ar care
p r se te baza curent B, în locul criteriului (4.2.2) vom folosi formula:

1 B 1 B
qr minlex qi (4.5.2)
a rk i ,aik 0 aik

în care qiB , i I sunt da i de (4.5.1) iar minimul din membrul drept este luat
în sens lexicografic. Acest minim se calculeaz astfel:

se determin mul imea I0 a indicilor r I astfel încât:

br bi
min
a rk i ,aik 0 aik
1 B
Dac I0 se reduce la un singur indice r atunci q r realizeaz minimul
a rk
lexicografic din (4.5.2). Prin urmare dac minimul din (4.2.2) este unic cele
dou criterii de ie ire din baz (4.2.2) i (4.5.2) coincid.
Dac I0 se compune din cel pu in dou elemente, se determin mul imea I1 I0
a indicilor r cu proprietatea c :
ar1 a
min i1
a rk i I 0 a ik

Dac nici I1 nu se reduce la un singur element, se determin în continuare sub


mul imea I2 I1 format din indicii r pentru care:
4. Metoda simplex 61
ar 2 ai 2
min
a rk i I1 a ik
.a.m.d.
Se genereaz astfel un ir de submul imi:
I0 I1 I2 ...
ultima din ele având cu siguran un singur element ce define te minimul
lexicografic din (4.5.2). Într-adev r, dac ultima mul ime generat ar con ine
cel pu in doi indici diferi i r i r', aceasta va fi Im i în consecin :

a ri a r 'i
pentru to i i = 1,...,m
a rk a r 'k

ceeace ar implica propor ionalitatea a dou linii din matricea B-1, fapt
imposibil. Prin urmare, minimul din (4.5.2) este unic.
S ar t m acum c noua baz B' dedus din B înlocuind Ak cu Ar:

este lexicografic admisibil , adic :

qiB ' 0,i I ,i r si q kB ' 0;

este lexicografic mai bun decît B, adic qB' qB .

În baza formulelor de schimbare a bazei (4.1.12) putem scrie rela iile:

aik B 1 B
qiB ' qiB qr i r; q kB ' qr
a rk a rk

Deoarece prin ipotez q rB 0 si a rk 0 rezult q kB' 0 .Fie i r. Dac aik 0


atunci în mod clar qiB' 0 . Dac aik > 0 atunci:

1 B 1 B
qiB ' aik qi qr 0
aik a rk

ck B
în virtutea alegerii lui r, conform (4.5.2). În fine: q B ' qB q r i deoarece
a rk
ck < 0 rezult q B ' qB .
62 I. PROGRAMARE LINIARA
Aplicarea în calculul manual a criteriului de ie ire din baz modificat
(4.5.2) este foarte simpl :

bi
Dac minimul rapoartelor , aik 0 din criteriul uzual de ie ire
aik
din baz nu este unic i se atinge pe o submul ime de indici I0 se caut minimul
a
rapoartelor i1 , i I 0 în care num r torii sunt lua i din prima coloan a
aik
inversei bazei curente. Dac nici acesta nu este unic i se atinge pe o
a
submul ime I1 I0 se caut minimul rapoartelor i 2 , i I 1 cu num r torii din
aik
a doua coloan a inversei bazei .a.m.d. Dup cum am v zut acest proces se
termin într-un num r finit de pa i cu g sirea unui unic indice r. Vectorul Ar
p r se te baza.

Considera iile de mai sus vor fi aplicate problemei din ex.4.5.1 (vezi tabelele
4.5.1 - 4.5.3)
La prima itera ie intr în baz A4. Se observ c :
b1 b2
min , min 0 , 0
a14 a 24

nu este unic. Fie I0 = {1,2}. Prima coloan a inversei bazei curente este A1 i
ca urmare calcul m:
a11 a 21 1 0 a 21
min , min , 0
a14 a 24 14 12 a 24

În consecin vectorul A2 p r se te baza .a.m.d.


0 0 0 3/4 -20 1/2 -6
cB B VVB A1 A2 A3 A4 A5 A6 A7
0 A1 0 1 0 0 1/4 -8 -1 9
0 A2 0 0 1 0 1/2 -12 -1/2 3
0 A3 1 0 0 1 0 0 1 0
f 0 * * * -3/4 20 -1/2 6
0 A1 0 1 -1/2 0 0 -2 -3/4 15/2
3/4 A4 0 0 2 0 1 -24 -1 6
0 A3 1 0 0 1 0 0 1 0
f 0 * 3/2 * * 2 -5/4 9/2
0 A1 3/4 1 -1/2 3/4 0 -2 0 15/2
3/4 A4 1 0 2 1 1 -24 0 6
1/2 A6 1 0 0 1 1 0 1 0
4. Metoda simplex 63
f 5/4 * 3/2 5/4 * 2 * 9/2

Tabelele 4.5.1 - 4.5.3

4.6 Alte exemple numerice

Aceste exemple au rolul de a ilustra diferitele fapte teoretice prezentate


în sec iunile anterioare.

Exemplul 4.6.1 (Optim infinit, raze extreme).

Vom considera programul (P) împreun cu forma sa standard (FSP):

(max) f 3x1 4 x 2 (max) f 3x1 4 x 2


3x1 4 x 2 12 3 x1 4 x 2 x 3 12
( P) 2 x1 x2 2 ( FSP) 2 x1 x 2 x4 2
x1 2 x 2 2 x1 2 x 2 x5 2
x1 0, x 2 0 x j 0 , j 1,...,5

Plecând cu baza unitar admisibil E = A3, A4, A5 , în dou intera ii se ajunge


la tabelul 4.6.1:

3 4 0 0 0
CB B VVB A 1
A 2
A 3
A4
A5
3 A1 4/5 1 0 1/5 -4/5 0
4 A2 18/5 0 1 2/5 -3/5 0
0 A5 42/5 0 0 3/5 -2/5 1
f 84/5 * * 11/5 -24/5 *

Tabelul 4.6.1

Conform pasului 3 al algoritmului simplex programul (P) are optim infinit


deoarece:
4
c4 0 iar A 0

Vectorul w1=(4/5, 3/5, 0, 1, 2/5)T este o raz extrem a mul imii AFSP a
solu iilor admisibile ale formei standard (FSP), vezi (4.2.4). Prin "proiec ie",
vectorul w1=(4/5, 3/5) este o raz extrem a mul imii AP a solu iilor admisibile
ale programului ini ial (P). Din fig. 4.6.1 rezult c AP mai are o raz extrem
w2=(2,1)T. Aceast raz se poate determina tot cu ajutorul algoritmului simplex
64 I. PROGRAMARE LINIARA
cu condi ia ca la prima intera ie, în baz , s fie introdus coloana A1.
Propunem cititorulului s efectueze calculele necesare.

x2

v1+ w1, 0
1
v

AP

w1=(4/5,3/5)
w2=(2,1)

v2+ w2, 0
v2
x1

Figura 4.6.1
Exemplu 4.6.2 (Incompatibilitate) Consider m programul:

(min) f 6 x1 x 2 2 x 3
5 x1 x 2 x3 6
( P) 2 x1 x 2 3 x 3 7
3 x1 x 2 2 x 3 2
x1 , x 2 , x 3 0

Dup introducerea variabilelor de abatere x4, x5 i a variabilelor artificiale x6 i


x7 (în prima i respectiv a treia restric ie) se ob ine programul în form bun :

(min) f 6 x1 x 2 2 x 3 Mx 6 Mx 7 ,M 0
5 x1 x 2 x3 x4 x6 6
( FBP) 2 x1 x 2 3 x 3 x5 7
3 x1 x 2 2 x 3 x7 2
xj 0 1 j 7
4. Metoda simplex 65

(Deoarece func ia obiectiv se minimizeaz , variabilele artificiale au fost


incluse în func ia obiectiv cu un coeficient pozitiv M foarte mare!)

Pornind de la baza unitar E= A6, A5, A7 , în dou itera ii algoritmul


simplex produce tabelul 4.6.2, ce con ine solu ia optim a programului (FBP).
6 1 -2 0 0 M
cB B VVB A1 A2 A3 A4 A5 A6 A7
M A6 1 0 -1 0 -1 -1 1 1
6 A1 8/13 1 -1/13 0 0 2/13 0 -3/13
-2 A3 25/13 0 5/13 1 0 3/13 0 2/13
f M - 2/13 * - M - 29/13 * -M -M + 6/13 * - 22/13

Tabelul 4.6.2

Deoarece în aceast solu ie variabila artificial x6 are valoare nenul ,


programul în forma standard i implicit programul original nu au solu ii
admisibile.

Exemplul 4.6.3 (Programe liniare cu variabile f r restric ie de semn)

Condi ia de nenegativitate impus variabilelor unui program liniar (P)


nu este deloc restrictiv . Într-adev r s presupunem c în (P) ar exista o

variabil xj ce poate lua orice valoare real . Înlocuim xj cu diferen a a dou


variabile nenegative:

xj x 'j x ''j cu x 'j 0, x ''j 0

În consecin , în locul coloanei Aj a coeficien ilor varia iei xj vor apare dou
coloane:

(Aj)'=Aj (Aj)'' = -Aj

iar în func ia obiectiv coeficientul cj se înlocuie te cu : c 'j c j si c ''j cj


j j j j
Deoarece (A )'+(A )'' = 0, coloanele (A )' i (A )'' sunt liniar dependente i prin
urmare nu vor putea apare simultan în nici o baz a programului transformat.
Dup rezolvarea programului transformat, valoarea variabilei originale xj în
* *
solu ia optim va fi x *j x 'j x ''j . Cum x 'j si x 'j' nu pot fi simultan
variabile bazice vom avea: x *j ( x 'j ) * 0 sau x *j ( x ''j ) * 0 dup cum, în
66 I. PROGRAMARE LINIARA
solu ia optim a programului transformat x 'j , respectiv x ''j ,a fost variabil
bazic . Pentru ilustrare s consider m problema:

min f 3 x1 2 x2
x1 2 x2 2
( P)
3 x1 x2 3
x1 fara restrictii de semn, x 2 0

Înlocuim: x1 x1' x1'' , ad ug m variabilele de abatere x3, x4 precum i


variabila artificial x5 în scopul ob inerii unei baze unitare de start. Rezult
urm torul program transformat:

min f 3x1 3x1 2x 2 Mx 5 ,M 0


x1 x1 2 x 2 x 3 x5 2
( P' )
3x1 3x1 x2 x4 3
x1 , x1 , x 2 , x 3 , x 4 , x 5 0

În continuare d m elementele ultimului tabel simplex:

3 -3 2 0 0 M
CB B VVB (A1)' (A1)'' A2 A3 A4 A5
2 A2 3/5 0 0 1 -3/5 -1/5 3/5
-3 (A1)'' 4/5 -1 1 0 1/5 2/5 -1/5
f - 6/5 0 * * - 9/5 - 8/5 9/5 - M

Tabelul 4.6.3

Solu ia optim a programului (P') este deci:

( x1' ) * 0, ( x1'' ) * 4 / 5, x 2* 3/5 f min 6/5

Urmeaz c solu ia optim a programului original va fi :

x1* 4 / 5, x 2* 3/ 5
4. Metoda simplex 67
4.7 Interpretarea economic a algoritmului simplex

S consider m cazul în care problema de maximizare în form


standard:

max f cx
Ax b
x 0

reprezint modelul de optimizare a activit ii unei firme (sec iunea 1.1,


exemplul 1). Se cere determinarea combina iei de bunuri ce urmeaz a fi
realizate precum i a cantit ilor în care acestea vor fi produse astfel încât
venitul firmei s fie maxim cu condi ia consum rii integrale a resurselor
disponibile. Ultima cerin nu este deloc restrictiv întrucât în lista activit ilor
productive putem include la nevoie un num r de activit i fictive ale c ror
nivele s reprezinte resursele neconsumate (aceste activit i fictive corespund
variabilelor de abatere).

O prim concluzie care se desprinde din teoria metodei simplex este


aceea c în orice solu ie optim a modelului num rul bunurilor ce vor fi
efectiv realizate este cel mult egal cu num rul resurselor folosite.

Aceasta rezult din faptul c în orice solu ie de baz num rul componentelor
nenule nu dep e te num rul restric iilor. În consecin , realizarea unor bunuri
ce nu sunt incluse în "lista optim " implic ad ugarea unor noi restric ii în
model, fapt care duce la diminuarea optimului ini ial.

S consider m acum un program de produc ie "de baz ", adic o solu ie


admisibil de baz , asociat unei baze B. Activit ile i corespunz toare
coloanelor Ai din B vor fi numite în continuare activit i de baz , iar celelalte
activit i secundare. Conform defini iei, acest program nu prevede folosirea
activit ilor secundare iar cantit ile de bunuri realizate în activit ile de baz
trebuie astfel dimensionate încât s se asigure consumarea întregului stoc de
resurse. În nota iile sec iunii 3.5 :

BxB = b , xS = 0 de unde xB = B-1b = b

Dup cum se vede, lista activit ilor de baz determin în mod unic cantit ile
de bunuri ce pot fi produse i ca atare detectarea unui program mai bun se
poate face numai studiind oportunitatea utiliz rii unor activit i secundare care
68 I. PROGRAMARE LINIARA
s înlocuiasc o parte din activit ile bazice curente. Pentru aceasta avem
nevoie de un criteriu care s permit compararea unei activit i secundare j cu
grupul activit ilor de baz . S examin m coloana Aj a tabelului simplex
asociat bazei B. Conform (3.5.3) Aj = B-1Aj de unde Aj = B. Aj sau:

Aj a1 j A 1 a 2 j A 2 .... a mj A m (4.7.1)

în ipoteza c B A1 , A 2 ,..., A m . Sensul economic al egalit ii (4.7.1) este


urm torul: din punctul de vedere al consumului de resurse producerea unei
unit i din bunul j este echivalent cu producerea cantit ilor a1 j , a 2 j ,..., a mj
din bunurile activit ilor de baz . În consecin , dac se dore te producerea
unei unit i din bunul j, produc ia activit ilor de baz trebuie diminuat cu
cantit ile a1 j , a 2 j ,..., a mj .Analiza oportunit ii introducerii în fabrica ie a
bunului j se va face prin compararea aportului s u la cre terea venitului firmei
cu aportul valoric al cantit ilor a1 j , a 2 j ,..., a mj .Astfel, realizarea unei unit i
din bunul j determin cre terea valorii curente a func iei obiectiv cu pre ul s u
cj în timp ce renun area la producerea cantit ilor a1 j , a 2 j ,..., a mj înseamn
diminuarea aceleia i valori cu suma c1a1 j c2 a 2 j ... cm a mj .Prin urmare dac
diferen a:
cj c1a1 j c2 a 2 j ... cm a mj cj

este 0 realizarea bunului j nu este rentabil deoarece nu duce la cre terea


valorii produc iei asigurate prin programul curent. Dac cj 0 pentru toate
activit ile secundare, programul de fabrica ie curent este optim. Am reg sit
astfel criteriul de optimalitate din teorema A sec iunea 4.1. Dac cj < 0,
utilizarea activit ii secundare j duce la o sporire a venitului realizabil prin
programul curent, viteza de cre tere fiind - cj . Interpretarea criteriului de
intrare în baz (4.2.1) este acum clar : dac mai multe activit i secundare sunt
rentabile în raport cu grupul activit ilor de baz este preferat activitatea care
asigur cea mai ridicat vitez de cre tere a valorii curente a produc iei.Fie k
aceast activitate. Ultima problem const în stabilirea cantit ii din bunul k ce
poate fi realizat în condi iile date. Conform celor de mai sus producerea unei
cantit i din acest bun implic mic orarea produc iei din bunurile activit ilor
de baz cu cantit ile a1k , a 2 k ,..., a mk :

x1 b1 a 1k , x 2 b2 a 2 k ,..., x m bm a mk
4. Metoda simplex 69
Deoarece desf urarea unei activit i la un nivel negativ este lipsit de sens
va trebui s avem bi aik 0 i 1,.., m de unde:

bi
0 min
i ,a
ik
0 aik

(excludem cazul optimului infinit, nesemnificativ din punct de vedere


br
economic). Dac 0 a rk i 0 ob inem cre terea maxim a valorii
curente a produc iei prin utilizarea activit ii k. În acest caz activitatea k nu mai
br
este folosit întrucât x r br 0 a rk br a rk 0 . Am ob inut din nou
a rk
criteriul de ie ire din baz (4.2.2).

4.8 Versiunea revizuit a algoritmului simplex

Relu m programul liniar în form standard (P):

(max) f cx
( P) x 0
Ax b

cu nota iile i terminologia introduse în sec iunile 3.4 - 3.5. Consider m o


itera ie oarecare a algoritmului simplex în care se cerceteaz solu ia asociat
unei baze B. Pentru efectuarea itera iei sunt necesar urm toarele elemente:

1) Costurile reduse: c j cB B 1 A j cj , j J
Dac testul de optimalitate nu este îndeplinit se determin k J astfel ca:

ck min c j
j J

Coloana Ak intr în baza curent .


2) Componentele coloanei:

k
A B 1 Ak

3) Valorile variabilelor bazice curente xi , i I reunite în vectorul:


70 I. PROGRAMARE LINIARA
1
b B b

Admi ând c nu are loc cazul optimului infinit se determin i I astfel încât:

br min bi
a rk a ik 0 a ik

Coloana Ak p r se te baza curent .

Dup efectuarea opera iilor necesare evalu rii elementelor amintite, tabelul
simplex curent se pivoteaz cu pivotul ark..

Se observ c aceste m rimi numerice se pot calcula direct din datele


ini iale A, b, c ale programului (P) cunoscând inversa B-1 a bazei curente.

Dac avem în vedere solu ionarea problemelor practice de programare


liniar caracterizate în primul rând prin num rul mare de restric ii i variabile
urm toarele probleme trebuie s ne dea de gândit:

Din mul imea de coloane calculate Aj=B-1Aj , j J doar una este


efectiv folosit la aflarea pivotului i anume Ak ; toate celelalte servesc la
calculul costurilor reduse conform formulei:

cj=cB Aj-cj , j J

Cum în practic problemele au multe variabile, astfel spus matricea A are


multe coloane, evaluarea coloanelor Aj necesit timp i efort de calcul.
Exceptând primul tabel simplex, celelalte se deduc unul din altul
prin pivotare gaussian , facilitând propagarea i amplificarea erorilor de
rotunjire inerente calculului cu numere reale. Este posibil ca în final
aceste erori s
compromit grav rezultatele (de exemplu o problem compatibil s fie
declarat incompatibil ).
Chiar dac matricea ini ial A este rar (adic densitatea
elementelor nenule este mic ), densitatea elementelor nenule în tabelele
simplex generate cre te vertiginos, cu efecte negative asupra vitezei de calcul.

Este de la sine în eles c aceste neajunsuri nu sunt vizibile în calculul


manual. Aceste probleme apar în contextul rezolv rii programelor de
dimensiuni mari când utilizarea calculatorului este inevitabil !
4. Metoda simplex 71
Versiunea revizuit a algoritmului simplex elimin în mare parte
aceste neajunsuri. În esen , aceast versiune propune calcularea m rimilor
amintite mai înainte într-o alt ordine i apelarea la datele ini iale ale
problemei. La fiecare itera ie este necesar cunoa terea inversei bazei curente.

Fie B o baz a programului (P). Componentele vectorului (linie):

=cBB-1

se numesc multiplicatori simplex asocia i bazei B (vezi observa ia din finalul


sec iunii 4.4)

Inser m elementele B-1, , b=B-1b i f=cB b= b într-un tabel:

B b B-1
f f

numit tabel simplex redus.

S presupunem cunoscut o solu ie admisibil de baz a programului


(P) i tabelul simplex redus al acesteia. Cu aceste preg tiri, con inutul unei
itera ii în versiunea revizuit este urm torul:

Pasul 1. Se calculeaz costurile reduse:

cj= Aj-cj , j J

Dac to i cj 0 solu ia curent este optim . Altminteri:

Pasul 2. Se determin indicele nebazic k J cu proprietatea :

ck min c j ( ck 0 !)
j J

Coloana Ak intr în baza curent . Se calculeaz Ak=B-1Ak

Pasul 3. Dac Ak 0 programul dat are optim infinit. Altminteri:

Pasul 4. Se determin indicele bazei r I cu proprietatea:

br min bi
a rk a ik 0 a ik
72 I. PROGRAMARE LINIARA

Coloana Ar p r se te baza curent .

Pasul 5. Se pivoteaz tabelul simplex redus curent cu pivotul ark 0


(se presupune c la tabelul simplex redus curent au fost "ata ate" coloana Ak
i costul redus ck)

Fa de algoritmul simplex standard, versiunea revizuit are o serie de


avantaje:

utilizarea la fiecare itera ie a datelor ini iale ale problemei (pentru


calcularea costurilor reduse cj i a coloanei Ak ) asigur un control mai bun
asupra propag rii erorilor de rotunjire ca i o vitez de calcul mai mare dac
se are în vedere faptul c densitatea elementelor nenule în matricea A este de
regul mic (este tiut faptul c o opera ie de înmul ire se efectueaz în
calculator numai dac ambii operanzi sunt nenuli)

volumul de calcule este în general mai mic, mai cu seam în situa ia


în care num rul variabilelor este cu mult mai mare decât cel al restric iilor.
Este evident faptul c aceste avantaje depind de "calitatea" inversei B-1 a bazei
curente. Într-adev r, inversele diferitelor baze cercetate de algoritmul revizuit
se calculeaz ca i în algoritmul standard "una din alta" prin pivotare. Am
amintit deja "riscurile numerice" care decurg din aceast situa ie ce nu poate
fi evitat : pe de o parte propagarea i amplificarea erorilor de rotunjire cu
impact negativ asupra acurate ii evalu rii diferitelor m rimi necesare

efectu rii unei itera ii i pe de alta cre terea timpului de calcul ca urmare a
"îndesirii" elementelor nenule din B-1.În principiu, atenuarea acestor
neajunsuri se face prin reinversarea periodic a bazei curente i "stocarea"
inversei B-1 sub forma unui produs de matrici foarte simple ca structur .

Pentru determinarea unei solu ii admisibile de baz de start, în situa ia


în care programul ini ial (P) nu este în form bun , se aplic metoda celor
dou faze (vezi sec iunea 4.3), cu observa ia c la începutul fazei II, vor trebui
recalcula i multiplicatorii simplex ce compun vectorul =cBB-1 în raport cu
coeficien ii func iei obiectiv din (P)!

Urm torul exemplu are menirea de a ilustra diferen ele de organizare a


calculelor introduse algoritmul simplex revizuit i nu de a pune în eviden
avantajele de ordin "numeric" în raport cu algoritmul standard; este i
4. Metoda simplex 73
imposibil de f cut acest lucru deoarece în calculul manual se lucreaz
"exact". Oricum, în rezolvarea manual a programelor liniare de dimensiuni
mici se recomand versiunea standard.

Exemplu 4.8.1 Se consider programul:

(max) f 3x1 4 x2 x3 2 x4 2 x5 x6
2 x1 4 x3 2 x4 2 x6 5
2 x1 4 x2 4 x4 2 x5 2 x6 1
(P)
x2 x3 1
x4 x5 x6 1
xj 0 ,1 j 6

Introducem variabilele de abatere x7, x8 în primele dou restric ii ob inând


forma standard dup care introducem variabilele artificiale x9, x10, x11 în
restric iile 2, 3 i 4 în scopul form rii bazei unitare de start. Ob inem sistemul
liniar:

2 x1 4 x3 2 x4 2 x6 x7 5
2 x1 4 x2 4 x4 2 x5 2 x6 x8 x9 1
x2 x3 x10 1
x4 x5 x6 x11 1
xj 0 , j 1,...,11

Faza I. Ata m sistemului de mai sus func ia obiectiv:

w=x9+x10+x11

pe care o minimiz m. Lu m ca baz de start B=E= A7, A9, A10, A11 c reia îi
corespunde solu ia: x1=x2=x3=x4=x5=x6=x8=0 , x7=5 , x9=1 , x10=1 , x11=1. În
raport cu aceast baz cB= 0,1,1,1 astfel c =cBB-1= 0,1,1,1 , w= b=3 .
Primul tabel simplex redus arat astfel:

A7 5 1 0 0 0
A9 1 0 1 0 0
A10 1 0 0 1 0
A11 1 0 0 0 1
w 3 0 1 1 1
74 I. PROGRAMARE LINIARA

Tabelul 4.8.1

Calcul m costurile reduse cj= Aj-cj. Costurile reduse corespunz toare


diferitelor itera ii ale fazei I sunt date în tabelul 4.8.6; de fiecare dat un cost
încadrat arat coloana care intr în baza curent .

(A4)T 2 4 0 1 A4
A7 5 1 0 0 0 2
A9 1 0 1 0 0 4
A10 1 0 0 1 0 0
A11 1 0 0 0 1 1
w 3 0 1 1 1 5= c4

Tabelul 4.8.2

(A2)T 0 -4 1 0 A2 (A3)T -4 0 1 0 A3
A7 9/2 1 -1/2 0 0 2 A 7
3 1 0 0 -2 -4
A4 1/4 0 1/4 0 0 -1 A4 1 0 0 0 1 0
A10 1 0 0 1 0 1 A10 1/4 0 1/4 1 -1 1
A11 3/4 0 -1/4 0 1 1 A2 3/4 0 -1/4 0 1 0
w 7/4 0 -1/4 1 1 2= c2 w 1/4 0 1/4 1 -1 1= c3

Tabelul 4.8.3 Tabelul 4.8.4

La prima itera ie intr în baz A4. Calcul m A4=B-1A4; pentru aceasta


(vezi tabelul 4.8.2 care coincide cu 4.8.1) scriem A4 în linie, deasupra tabelului

cB (A1)T 2 2 0 0 A1
7
0 A 4 1 1 4 -6 4
2 A4 1 0 0 0 1 0
3
1 A 1/4 0 1/4 1 -1 1/2
4 A2 3/4 0 -1/4 0 1 -1/2
w 0
f 21/4 0 -3/4 1 5 -9/2= c1

Tabelul 4.8.5

i facem produsele scalare ale lui (A4)T cu liniile matricei B-1; rezultatele le
înscriem în dreapta tabelului 4.8.2. Tot în dreapta jos înscriem costul redus c4.
Parcurgând celelalte etape al algoritmului g sim c A9 p r se te baza. Se
efectueaz pivotarea tabelului 4.8.2 cu pivotul încadrat i se ob ine tabelul
(4.8.3). Tabelele 4.8.4 si 4.8.5 apar in deasemeni fazei I.
4. Metoda simplex 75

Coef. func iei ob. f 3 4 1 2 2 1 0 0


Coef. func iei ob. w 0 0 0 0 0 0 0 0 1 1 1
A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11
Matricea A 2 0 -4 2 0 -2 1 0 0 0 0
2 -4 0 4 -2 2 0 -1 1 0 0
Costuri reduse 0 1 1 0 0 0 0 0 0 1 0
la itera ia 0 0 0 1 1 1 0 0 0 0 1
1 2 -3 1 5 -1 3 * -1 * * *
FAZA I 2 -1/2 2 1 * 3/2 1/2 * 1/4 -5/4 * *
3 1/2 * 1 * -3/2 -1/2 * -1/4 -3/4 * -2
1 -9/2 * * * 9/2 5/2 * 3/4
2 * * 9 * -9 -2 * -3/2
FAZA II 3 * * -9 * * -13/2 9/4 3/4
4 * * * 9/2 * 1/4 9/8 -3/8
5 * 3 * 3 * -2 3/2 *
6 * 3 * 3 2 * 3/2 *

Tabelul 4.8.6

La itera ia 3 (tabelul 4.8.5) s-a ob inut w = 0, ceea ce înseamn


ob inerea unei solu ii admisibile de baz pentru forma standard a programului
(P). Nu s-au mai calculat multiplicatorii simplex relativi la func ia obiectiv w i
ca urmare nu s-a mai urm rit verificarea testului de optimalitate în raport cu
aceast func ie! În schimb s-a "actualizat" cB=[ 0, 2, 1, 4 ], în raport cu func ia
obiectiv original f i s-au calculat multiplicatorii simplex în raport cu aceast
func ie.

În alte cinci itera ii se ob ine solu ia optim a programului dat:

x1* 11
2 , x 2* 0 , x 3* 1 , x 4* x5* 0 , x 6* 1 ; (max) f 37
2

În continuare se dau tabelele simplex reduse ale fazei a II-a.

(A5)T 0 -2 0 1 A5 (A3) -4 0 1 0 ( A 3)

A7 2 1 -1 -4 2 4 A5 1/2 1/4 -1/4 -1 1/2 -2


A4 1 0 0 0 1 1 A4 1/2 -1/4 1/4 1 1/2 2
A1 1/2 0 1/2 2 -2 -3 A1 2 3/4 -1/4 -1 -1/2 -4
A2 1 0 0 1 0 0 A2 1 0 0 1 0 1
f 15/2 0 3/2 10 -4 -9= c5 f 12 9/4 -3/4 1 1/2 -9= c3
76 I. PROGRAMARE LINIARA

Tabelul 4.8.7 Tabelul 4.8.8

(A8)T 0 -1 0 0 A8 (A6)T -2 2 0 1 A6
5
A 1 0 0 0 1 0 A5 1 0 0 0 1 1
A3 1/4 -1/8 1/8 1/2 1/4 -1/8 A3 1 0 0 1 0 0
A1 3 1/4 1/4 1 1/2 -1/4 A1 9/2 1/2 0 2 0 -1
A2 3/4 1/8 -1/8 1/2 -1/4 1/8 A2 6 1 -1 4 -2 -6
f 57/4 9/8 3/8 11/2 11/4 -3/8 = c8 f 33/2 3/2 0 7 2 -2 = c6

Tabelul 4.8.9 Tabelul 4.8.10

A6 1 0 0 0 1
A3 1 0 0 1 0
A1 11/2 1/2 0 2 1
A8 12 1 -1 4 4
f 37/2 3/2 0 7 4

Tabelul 4.8.11

***

În considera iile de pân acum am avut în vedere în exclusivitate


numai aspectele teoretice legate de rezolvarea unui program liniar. Rezolvarea
efectiv , mai cu seam a programelor de dimensiuni mari ( rezultate, de
exemplu, din modelarea unor situa ii economice reale), de neconceput f r
utilizarea unui calculator , pune îns i alte probleme, de natur numeric cum
ar fi controlul propag rii erorilor de rotunjire (inerente calculului cu numere
reale) , volumul de memorie necesar stoc rii diferitelor informa ii numerice
utilizate în procesul rezolv rii, timpul de rulare pân la ob inerea rezultatului
final etc.
Reamintim cu acest prilej c , nu de pu ine ori, o metod de optimizare
bine fundamentat teoretic s-a dovedit a fi total ineficient în practic din
cauza ignor rii dificult ilor numerice semnalate mai sus.
De regul cre terea performan elor numerice ale unei metode teoretice se face
prin :

Reorganizarea procesului de calcul de a a manier încât s se


asigure diminuarea efectelor nefaste ale propag rii erorilor de rotunjire ca i o
vitez de calcul crescut . În acest fel s-a ajuns, de exemplu, la versiunea
revizuit a algoritmului simplex, versiune care st la baza celor mai multe
pachete de programe utilizate în rezolvarea programelor liniare.
4. Metoda simplex 77
Exploatarea structurii problemei de rezolvat care, în cazul unor
dimensiuni apreciabile are de obicei anumite propriet i "speciale". Un

exemplu edificator în acest sens îl constituie diferitele metode de


descompunere sau de relaxare din programarea liniar . În principiu, aceste
metode reduc rezolvarea unei probleme de dimensiuni mari, cu structur
special la rezolvarea mai multor probleme mai mici i implicit mai u or de
manevrat.

Referindu-ne la eficacitatea practic a algoritmului simplex, dup o


jum tate de veac de experimente numerice i perfec ion ri teoretice, se poate
spune c acesta s-a dovedit a fi o procedur foarte robust fiind capabil s
rezolve programe liniare de dimensiuni impresionante con inînd sute de
restric ii i mii de variabile.
Este de la sine în eles c aceste performan e n-ar fi fost posibile f r
utilizarea unor calculatoare din ce în ce mai puternice.
76 I. PROGRAMARE LINIARA

5.Algoritmul simplex dual

Exist situa ii în care pentru rezolvarea unui program liniar, dispunem


de o solu ie de baz care nu este admisibil . Urm toarele considera ii au drept
scop s pun în eviden o alt clas de solu ii de baz cu care se poate opera
într-o manier asem n toare 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 Ax b
( P) xj 0 j 1,..., n x 0
n (max) f cx
(max) f cj x j
j 1

(vezi nota iile matriciale(3.3.1)) Fie B o baz a programului (P), I mul imea
indicilor coloanelor din B, J mul imea indicilor coloanelor din A care nu sunt
în B. În sec iunea 3.5 am scris (P) în forma:

(max) f f cj xj (max) f f c S xS
j J

( PB ) xi aij x j bi xB Sx S b
j J
B S
x 0, x 0
xi 0 ,i I ;xj 0, j J

(vezi nota iile (3.5.2-3.5.7)), numit forma explicit a programului (P) în raport
cu baza B.
S consider m acum dualul programului (P):
m
aij ui cj j 1,..., n
i 1 uA c
( Q) ui oarecari , i 1,..., m u oarecare
m
(min) g ub
(min) g bi ui
i 1
5. Algoritmul simplex dual 77

(vezi nota iile din 2.2) Aducem sistemul de inegalit i uA c la forma standard
introducând variabilele de abatere v1, v2, ..., vn reunite în vectorul linie v.

m
aij ui vj cj
i 1 uA v c
( FSQ) ui oarecari , i 1,..., m; v j 0 j 1,..., n u oarecare , v 0
m (min) g ub
(min) g bi ui
i 1

Parti ionând:

v v B ,vS cu v B vi i I
, vS vj
j J

sistemul liniar din (FSQ) devine succesiv:

uB v B cB (511
..)
uA v c u B, S v B ,vS cB ,cS
uS v S cS (512
.. )

Deoarece B este nesingular din (5.1.1) rezult :

u cB B 1
vBB 1
(5.1.3)

Introducem u în (5.1.2):

(c B B 1
v B B 1 )S vS cS vS v B B 1S c B B 1S cS vS vBS cS

(cu nota iile 3.5.2-3.5.7) Folosind din nou (5.1.3) elimin m u din func ia
obiectiv dual :

g ( u) (c B B 1
v B B 1 )b c B B 1b v B B 1b f vBb

In acest fel, am adus (FSQ) la forma echivalent :

vS vBS cS
(QB ) vS 0, vB 0
(min) g f vBb
78 I. PROGRAMARE LINIARA

variabilele originale ui , i=1,...,m fiind legate de variabilele vj , j=1,...,n prin


rela ia (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 al turat atât scalar cât i matricial:

xi aij x j bi i I vj aij vi cj j J
j J i I

( PB ) xi 0 ,i I ;xj 0, j J ( QB ) v j 0, j J ; vi 0 ,i I
(max) f f cj x j (min) g f vi b i
j J i I

xB Sx S b vS vBS cS
xB 0 , xS 0 vS 0, vB 0
(max) f f c S xS (min) g f vBb

Observa ie: Cu ajutorul rela iei (5.1.3) am rescris dualul (Q) în alte
variabile care sunt supuse condi iei de nenegativitate ca i variabilele
programului primal (P). Putem vorbi acum de solu ii i solu ii admisibile
pentru programul (Q) i când facem acest lucru ne referim la forma echivalent
(QB).

Prin analogie cu conceptul de solu ie a primalei (P) asociat bazei B


introducem termenul de solu ie a dualei (Q) asociat bazei B anulând în
sistemul restric iilor 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 func iei obiectiv duale în solu ia construit este
constanta f .
Folosind (5.1.3), solu ia dualei (Q), corespunz toare solu iei (5.1.4) este:
5. Algoritmul simplex dual 79

u = cBB-1 (5.1.5)

Solu ia (5.1.4) va fi o solu ie admisibil pentru duala (Q) dac :

cS 0 cj 0 , j J

Mai departe, exact ca în demonstra ia teoremei A a metodei simplex ( vezi


sec iunea 4.1 ) solu ia (5.1.4), presupus admisibil , va fi optim dac :

b 0 bi 0 , i I

Reamintim c solu ia primalei (P) asociat bazei B este:

xS=0 xB= b
(5.1.6)
xj 0, j J xi bi , i I

Aceast solu ie este admisibil dac b 0 b i 0 , i I i în plus optim


dac c S 0 c j 0 , j J. Ob inem urm toarele concluzii remarcabile:

Solu ia (5.1.6) a primalei (P) asociat bazei B este admisibil


(respectiv satisface criteriul de optimalitate al algoritmului simplex) dac i
numai dac solu ia (5.1.4) a dualei (Q) asociat aceleia i baze satisface
criteriul de optimalitate (respectiv este admisibil ).
Valorile func iilor obiectiv primal i dual în cele dou solu ii
eviden iate coincid (cu constanta f )
Solu ia (5.1.6) este o solu ie optim a programului (PB) (P) dac i
numai dac solu ia (5.1.4) este optim pentru programul (QB), ceeace
echivaleaz cu a spune c solu ia (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
solu ii ale acestora, pe care le-am numit solu ii asociate bazei B. Cuplul de
solu ii eviden iat are propriet ile:

i)Una din solu ii 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 func iilor obiectiv în cele dou solu ii coincid.

Contextul astfel creat sugereaz urm toarea schimbare de terminologie:

O solu ie de baz a programului (P) se va numi primal admisibil


dac este admisibil în sensul de pân acum adic are toate componentele
nenegative.
O solu ie 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 solu ia asociat este dual
admisibil .

În terminologia introdus , proprietatea i) de mai sus se reformuleaz astfel:

Una din solu ii 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

Considera iile precedente sugereaz posibilitatea rezolv rii programului


original (P) utilizând clasa solu iilor dual admisibile. Urm torul algoritm,
numit algoritmul simplex dual, rezult nemijlocit din aplicarea teoremelor A,
B, C ale metodei simplex la problema (QB).

Presupunem cunoscut o solu ie de baz dual admisibil a programului


(P) i tabelul simplex (uzual) asociat. În nota iile deja utilizate, o itera ie a
algoritmului simplex dual se compune din urm torii pa i:

Pasul 1. (Test de optimalitate) Dac to i b i 0 , i I STOP : solu ia


de baz dual admisibil curent este optim . În caz contrar:

Pasul 2. Se determin indicele bazic r I cu proprietatea:

br min b i (b r 0)
i I
r
Coloana A p r se te baza curent .
5. Algoritmul simplex dual 81

Pasul 3. Dac pentru to i j J avem a rj 0 STOP: problema primal


nu are solu ii admisibile. Altminteri:

Pasul 4. Se determin indicele nebazic k J cu proprietatea:

ck min c j
a rk 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 ob ine 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 itera ii.

Observa ii: 1) Considera iile expuse în aceast sec iune sunt valabile
cu mici modific ri i în cazul în care func ia obiectiv din programul original
(P) se minimizeaz . Cititorul va verifica imediat c algoritmul prezentat mai
sus r mîne valabil i pentru asemenea probleme.

2) Concluzia din pasul 3 este consecin a teoremei fundamentale a


dualit ii. Într-adev r, dac arj 0 , j J atunci programul dual (Q) are optim
infinit i în consecin programul (P) este incompatibil.

3) Nu insist m asupra modalit ii de determinare a unei solu ii de baz


dual admisibile de start deoarece algoritmul va fi aplicat numai în situa ii în
care o asemenea solu ie este disponibil .

Exemplu 5.2.1 Consider m programul:

(min) f 12 x1 2 x2 6 x3
3 x1 2 x 2 x 3 3
( P)
4 x1 x2 x3 4
x1 , x 2 , x 3 0

Introducem variabilele de abatere x4 i x5 dup care înmul im cu -1 egalit ile


rezultate:
82 I. PROGRAMARE LINIARA
3 x1 2 x2 x3 x4 3
4 x1 x2 x3 x5 4

Solu ia asociat bazei unitare E= A4 , A5 nu este admisibil :

x1=x2=x3=0 x4= -3 , x5= -4

dar dac evalu m costurile reduse c1 , c2 , c3 constat m c ele verific


criteriul de optimalitate al algoritmului simplex (bineîn eles pentru probleme
de minimizare!).Vezi tabelele 5.2.1-5.2.4.

Se constat c solu ia optim a programului dat are componentele :

x1* 1
7 , x 2* 0 , x 3* 24
7 ; f min 156
7

Observa ie final . Pentru simetrie, algoritmul descris în sec iunea 4.2


se va numi algoritmul simplex primal. Recapitulând teoria se constat f r
dificultate c maximul (minimul) unei func ii obiectiv se atinge prin valori
cresc toare (descresc toare) în simplexul primal i prin valori descresc toare
(cresc toare) în simplexul dual.

12 2 6 0 0
cB B VVB A1 A2 A3 A4 A5 A5 iese din baza curent .
0 A4 -3 3 2 -1 1 0 min{ -12/-4 , -2/-1 , -6/-1 } =
0 A5 -4 -4 -1 -1 0 1 =2 A2 intr în baza curent .
f 0 -12 -2 -6 * * ***
0 A4 -11 -5 0 -3 1 2 A4 iese din baza curent .
2 A2 4 4 1 1 0 -1 min{ -4/-5 , -4/-3 } = 4/5
f 8 -4 * -4 * -2 A1 intr în baza curent .
12 A1 11/5 1 0 3//5 -1//5 -2/5 ***
2 A2 -24/5 0 1 -7/5 4/5 3/5 A2 iese din baza curent .
f 84/5 * * -8/5 -4/5 -18/5 A3 intr în baza curent .
12 A1 1/7 1 3/7 0 1/7 -1/7 ***
6 A3 24/7 0 -5/7 1 -4/7 -3/7 Solu ia curent este dual i primal
f 156/7 * -8/7 * -12/7 -30/7 admisibil .

Tabelele 5.2.1 - 5.2.4

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