Sunteți pe pagina 1din 40

I.

PROGRAMARE LINIARA

38


4. Metoda simplex

Deoarece tim c dac programul n form standard (P) are optim finit
o soluie optim va fi cu necesitate o soluie de baz i deci va fi asociat unei
baze B*, este natural s ne ntrebm cum gsim aceast baz optimal
B*.Traducnd n termeni algebrici procedeul geometric naiv, descris n
finalul seciunii 3.2, rezult urmtoarea procedur:

se genereaz toate bazele programului (P) i se calculeaz soluiile
asociate acestora;
se elimin soluiile de baz neadmisibile i dintre cele admisibile se
reine acea soluie care ofer funciei obiectiv valoarea maxim.

Nu mai insistm asupra dezavantajelor i lipsurilor acestei scheme deoarece ele
au fost deja menionate n seciunea 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 soluiilor
admisibile de baz ale unui program liniar n form standard (P). Ea presupune
cunoscut o asemenea soluie, numit soluie iniial sau de start i n
continuare construiete un ir de soluii admisibile de baz dealungul cruia

valoarea funciei obiectiv crete progresiv. Metoda simplex ofer un test
simplu de recunoatere a optimalitii unei soluii de baz i deasemeni un test
de recunoatere a optimului infinit. Practica numeric a artat c numrul
soluiilor admisibile de baz efectiv generate este de regul mult mai mic dect
numrul total al acestora.
Cu anumite precauii, uor de ndeplinit, metoda simplex garanteaz
convergena procesului iterativ n sensul c o baz admisibil cercetat la un
moment dat nu mai revine n iteraiile ulterioare (vezi seciunea 4.5). Cum
numrul bazelor este finit, urmeaz c ntr-un numr finit de pai se ajunge fie
la soluia optim fie la concluzia c programul are optim infinit.
Firete, n aceast descriere succint, am plecat de la ipoteza cunoaterii
unei soluii admisibile de baz iniiale, adic de la premiza c (P) este un
program compatibil. n seciunea 4.3 vom vedea cum se face recunoaterea
incompatibilitii unui program liniar.



4. Metoda simplex

39
4.1 Teoremele fundamentale ale metodei simplex

n prezentarea fundamentelor teoretice ale metodei simplex vom folosi
notaiile introduse n seciunea 3.5. n mod constant vom presupune c soluia
(3.5.10), asociat bazei B, este admisibil, adic b i
i
0 , . I

Teorema A. Dac toi c j
j
J 0 , atunci soluia (3.5.10) asociat
bazei B este optim. Dac n plus c
j
> j J 0 , ,atunci ea este i unica soluie
optim a programului (P).

Demonstraie: Fie y = (y
1
,y
2
,...,y
n
)
T
A

o soluie admisibil arbitrar
aleas. Deoarece y
1
0, y
2
0, ...,y
n

0 vom avea:

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



Inegalitatea de mai sus arat c, dintre toate soluiile admisibile ale
programului(P),soluia x din (3.5.10) ofer funciei obiectiv f cea mai mare
valoare posibil. Dac costurile reduse sunt pozitive i y x atunci
inegalitatea de mai sus este strict, fapt care probeaz unicitatea soluiei
optime x .




Teorema B. Presupunem c exist indicele kJ astfel c c
k
< 0 i toi
a i I A
ik
k
0 , ( 0) .Atunci programul (P) are optim infinit.

Demonstraie: Pornind de la soluia x din (3.5.10) construim o soluie
admisibil variabil dup cum urmeaz. nlocuim n (3.5.7):

x
k
= 0 ; x
j
= 0 , j J , j k (4.1.1)

Rezult:
x b a i
i i ik
= , I (4.1.2)




I. PROGRAMARE LINIARA

40
Notm cu x () soluia ale crei componente sunt definite n (4.1.1) i
(4.1.2). Condiia enunului face ca x() A
,
() 0. Evalum funcia
obiectiv n soluia x() :
f x f c
k
( ( )) = (4.1.3)
Rezult imediat c:

= +
lim
( ( )) f x .Deci f este nemrginit superior pe A i
ca urmare (P) are optim infinit.

Teorema C Presupunem c exist k J astfel nct c
k
< 0 dar exist i
indici i I cu a
ik
> 0. Fie r I indicele determinat prin formula:


b
a
b
a
r
rk
i I a
i
ik ik
=


`
)
>0
min
(4.1.4)

Atunci grupul de coloane B' obinut din B nlocuind coloana A
r
cu coloana A
k

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

Demonstraie: Din (4.1.4) rezult c a
r
0
k
> . Din A
k
= B
-1
A
k
avem:

A BA a A a A
k k
ik
i
i I i r
rk
r
= = +
,


Deoarece a
rk
0 putem exprima A
r
n funcie de A
i
, i r i A
k
:



A
a
a
A
a
A
r ik
rk
i
i I i k
rk
k
= +
,
1


Din teorema substituiei rezult c sistemul B', format din coloanele A
i
, i r
i A
k
, este o baz a problemei (P).

S lum n soluia variabil x() construit n demonstraia teoremei B:
= (4.1.5)
b
a
r
rk
Din formulele (4.1.1) , (4.1.2) rezult:


4. Metoda simplex

41
x
b
a
x j J j
x b
b
a
a i I
k
r
rk
j
i i
r
rk
ik
= =
=

; , ,
,
0 k


Pentru i = r avem x b
b
a
a
r r
r
rk
rk
= = 0 aa c soluia de mai sus poate fi
rescris astfel:

x j J j k x
x b
b
a
a i I i r x
b
a
j r
i i
r
rk
ik k
r
rk
= =
= =

0 0 , , ;
, , ;
(4.1.6)

Notm cu x soluia ale crei componente sunt definite n (4.1.6). Vom
observa mai nti c x este soluie admisibil a problemei (P), adic are toate
componentele nenegative. ntr-adevr:

- dac a atunci x 0
ik

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

n al doilea rnd remarcm c x este soluia asociat bazei B'. ntr-adevr, din
(4.1.6) rezult c n x toate variabilele secundare n raport cu baza B' au
valoarea 0. Afirmaia rezult acum din unicitatea soluiei asociate unei baze.


Utiliznd formulele (4.1.3) i (4.1.5) obinem:

f x f
b
a
c f f x
r
rk
k
( ) ( ) = = (4.1.7)

n concluzie, x este cel puin la fel de bun ca i x.


Observaii: 1) Bazele B i B' aprute n enunul teoremei C difer una
de alta printr-o singur coloan a matricii A. Dou baze ale programului (P) cu
aceast proprietate se vor numi n continuare baze vecine i tot vecine se vor
numi i soluiile asociate.
I. PROGRAMARE LINIARA

42

2) Teoremele B i C afirm c dac o soluie de baz admisibil x nu
satisface criteriul de optimalitate al teoremei A atunci sau (P) are optim infinit
sau, printre soluiile vecine cu x exist cel puin una la fel de bun ca i x
dac nu chiar mai bun.

Recapitulnd materialul expus n aceast seciune constatm c testarea
optimalitii soluiei x asociate bazei B presupune cunoaterea formei
explicite (3.5.7) a problemei iniiale n raport cu baza B. Mai mult, dac x nu
verific criteriul de optimalitate al teoremei A, construcia soluiei de baz mai
bune x se face cu ajutorul elementelor aceleiai forme (3.5.7). n consecin,
testarea optimalitii soluiei x asociat bazei vecine B' va necesita
cunoaterea formei explicite a problemei iniiale n raport cu noua baz B':

( )
max
,
, ,...,
'
,
,
,
P
f f c x c x
x a x a x b i I i
x a x a x b
x x x
B
j j
j J j k
r r
i ij j
j J j k
ir r i
k kj j
j J j k
kr r k
n
=
+ + =
+ + =




1 2
0
r
(4.1.8)

(Vom remarca faptul c unele elemente din (4.1.8) sunt deja evaluate! Astfel,
termenii liberi, adic valorile noilor variabile bazice, sunt dai de (4.1.6) n
timp ce constanta f , care este valoarea funciei obiectiv n noua soluie de
baz x , a fost obinut n (4.1.7).)


Firete, (4.1.8) se poate obine ca i (3.5.7) prin nmulirea la stnga a
sistemului original de restricii Ax = b cu matricea invers (B')
-1
. Putem deduce
(4.1.8) direct din (3.5.7) cu ajutorul urmtoarelor operaii:

Din ecuaia r a sistemului (3.5.7):

x a x a x
r rj j
j k
rk k r
+ + =

b

explicitm x
k
, mprind relaia cu a
rk
:



4. Metoda simplex

43
x
a
a
x
a
x
b
a
k
rj
rk
j
j k
rk
r
r
rk
+ + =

1
(4.1.9)

Substituim x
k
dat de (4.1.9) n celelalte ecuaii ale sistemului din (3.5.7).
Obinem:

x a
a
a
x
a
a
x b
b
a
a i I i
i ij
rj
rk
j
j k
ik
rk
r i
r
rk
ik
+ =

( ) , , r (4.1.10)

Ecuaiile (4.1.9) , (4.1.10) reprezint sistemul Ax = b explicitat n noile
variabile bazice x
i
i I,i r i x
k
.

Mai departe substituim acelai x
k
i n expresia funciei obiectiv din (3.5.7).
Gsim:

f f
b
a
c c
a
a
c x
c
a
x
r
rk
k j
rj
rk
k j
k
rk
r
j k
= +

( ) ( ) (4.1.11)

Astfel, am exprimat funcia obiectiv cu ajutorul noilor variabile nebazice x
j

j J,j k i x
r
.

Prin urmare (4.1.9) , (4.1.10) , (4.1.11) constituie forma explicit a
problemei originale n raport cu noua baz B'. Identificnd coeficienii din
aceste ecuaii cu coeficienii corespunztori din (4.1.8) rezult formulele:


=


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

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

= = = f f
b
a
c c c
a
a
c j J j k c
c
a
r
rk
k j j
rj
rk
k r
k
rk
; , ;

cunoscute i sub numele de formule de schimbare a bazei.


I. PROGRAMARE LINIARA

44

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
instruciuni logice i de calcul care, aplicate unei soluii admisibile de baz a
programului (P), stabilete dac soluia respectiv este optim i, n caz
contrar, pune n eviden situaia de optim infinit sau construiete efectiv o
soluie admisibil de baz mai bun dect cea curent.

S considerm o baz admisibil B precum i forma explicit (P
B
) a
programului (P) n raport cu aceast baz. (vezi notaiile seciunii 3.5)
n raport cu aceste date de intrare, coninutul unei iteraii simplex este
urmtorul:

Pasul 1. (Test de optimalitate) Dac toi c j
j
0 , J soluia de baz
curent (adic soluia (3.5.10), asociat bazei B) este optim: STOP.
Altminteri:

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

c
k
j J
j
c =

min
(4.2.1)

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

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

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


b
a
b
a
r
rk
i I a
i
ik ik
=
|
\

|
.
|
>0
min
(4.2.2)

Pasul 5. Se construiete forma explicit a programului (P) n raport cu
baza B' dedus din B prin nlocuirea coloanei A
r
cu coloana A
k
. Se revine la
pasul 1 n cadrul unei noi iteraii.



4. Metoda simplex

45
Observaii 1) La pasul 2 avem cu necesitate c
k
< 0 . Despre coloana
nebazic A
k
vom spune c intr n baza curent. n demonstraia teoremei C
s-a artat c variaia valorii funciei obiectiv la schimbarea coloanei bazice A
r

cu coloana A
k
este dat de formula:

f x f x
b
a
c
r
rk
k
( ) ( ) =
|
\

|
.
|
(4.2.3)

Cum
b
a
r
rk
0 (vezi (4.2.2)) urmeaz c introducerea n baz a oricrei coloane
nebazice A
j
cu c
j
< 0 mbuntete valoarea curent a funciei obiectiv.
Alegerea coloanei nebazice care va intra n baza curent dup formula (4.2.1)
asigur funciei obiectiv cea mai mare vitez de variaie i n general conduce
la terminarea algoritmului n mai puine iteraii.

2) Se poate arta uor c dac situaia descris n pasul 3 are loc atunci
vectorul w = (w
1
,w
2
,...,w
n
)
T
definit prin:

w a i I w j J j k w
i ik j k
= = = , ; , , ; 0 1 (4.2.4)

este o raz extrem a mulimii poliedrale A
P
.

3) Despre coloana bazic A
r
al crei indice se determin cu formula
(4.4.2) vom spune c prsete baza curent. Alegerea ei dup formula
amintit asigur admisibilitatea soluiei asociate noii baze B'.


4) Elementul a , unde k este indicele coloanei care intr n baz iar r
este indicele coloanei care iese din baz se numete pivot i operaia de
calculare a elementelor formei explicite n raport cu baza B' din elementele
formei explicite n raport cu baza veche B prin aplicarea formulelor de
schimbare a bazei (4.1.12) poart numele de pivotare gaussian.
rk

5) n principiu, problemele de minimizare se reduc la cele de
maximizare n baza relaiei (1.3.1). Algoritmul simplex descris mai sus este
aplicabil i problemelor de minimizare cu urmtoarele mici modificri:

n pasul 1: soluia curent este optim dac c j
j
J 0 , ;

I. PROGRAMARE LINIARA

46
n pasul 2: pentru determinarea indicelui coloanei nebazice care
intr n baza curent se va utiliza formula
c c
k
j J
j
=

max

De aceast dat vom avea c
k
> 0.

6) S presupunem c baza curent B este optimal (adic soluia
asociat ei verific testul de optimalitate) i c exist indici nebazici jJ cu
c
j
= 0. Formula (4.2.3) arat c introducerea n baza curent a oricrei coloane
A
k
pentru care c
k
= 0 conduce la soluii de baz la fel de bune ca i cea
curent, deci optime. Se poate arta c dac x x x p
p 1 2
2 , ,..., , sunt toate
soluiile de baz optime ale programului (P) atunci acesta are o infinitate de
soluii optime care au forma:

x x x x cu si
p
p
p p
= + + + + + + =
1
1
2
2
1 2 1 2
0 1 ... , ,..., ...

(altfel spus, orice soluie optim este o combinaie convex a soluiilor optime
de baz)

7) n rezolvarea manual a programelor liniare (firete 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 acioneaz
procedura.














4. Metoda simplex

47


8
Exemplul 4.2.1 Considerm programul:

( )
max
; ;
,
P
f x x
x x x x x x
x x
= +
+

2
4 3 18 2 6
0 0
1 2
1 2 1 2 1 2
1 2


a crui mulime de soluii admisibile A
P
este vizualizat n figura 4.2.1.


x
1
x
2

S
3
: x
1
=42/5, x
2
=36/5
S
2
: x
1
=7, x
2
=3
S
1
: x
1
=4, x
2
=0
S
0
: x
1
=0, x
2
=0
A













Figura 4.2.1

Aducem (P) la forma standard adugnd variabilele de abatere x
3
, x
4
, x
5
:

( )
max
, ,...,
FSP
f x x
x x x
x x x
x x x
x j
j
= +
+ =
+ =
+ + =
=

2
4
3 1
2 6
0 1 5
1 2
1 2 3
1 2 4
1 2 5


Se observ c matricea A a coeficienilor formei standard (FSP) conine baza
unitar E = [ A
3
,A
4
,A
5
] a crei soluie asociat:

1 = 0 , x
2
= 0 , x
3
= 4 , x
4
= 18 , x
5
= 6

I. PROGRAMARE LINIARA

48


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
iteraii s-a obinut soluia optim x x
1
42
5
2
36
5

= = , , valoarea maxim a
funciei obiectiv fiind 24; variabilele de abatere au n soluia optim valorile
x x x
3
14
5 4 5
0

= = , . =

2 1 0 0 0
c
B
B VVB A
1
A
2
A
3
A
4
A
5

0 A
3
4 1 -1 1 0 0 x
1
- x
2
+ x
3
= 4
0 A
4
18 3 -1 0 1 0 3x
1
- x
2
+x
4
= 18
0 A
5
6 -1 2 0 0 1 -x
1
+2x
2
+x
5
= 6
f 0 -2 -1 * * * -2x
1
-x
2
+f = 0
22 A
1
4 1 -1 1 0 0 x
1
-x
2
+ x
3
= 4
0 A
4
6 0 2 -3 1 0 2x
2
-3x
3
+x
4
= 6
0 A
5
10 0 1 1 0 1 x
2
+ x
3
+x
5
= 10
f 8 * -3 2 * * -3x
2
+2x
3
+f = 8
2 A
1
7 1 0 -1/2 1/2 0 x
1
- 1/2x
3
+1/2x
4
= 7
1 A
2
3 0 1 -3/2 1/2 0 x
2
-3/2x
3
+1/2x
4
= 3
0 A
5
7 0 0 5/2 -1/2 1 5/2x
3
- 1/2x
4
+x
5
= 7
f 17 * * -5/2 3/2 *
-5/2x
3
+3/2x
4
+f = 17
2 A
1
42/5 1 0 0 2/5 1/5 x
1
+2/5x
4
+1/2x
5
=
42/5
1 A
2
36/5 0 1 0 1/5 3/5 x
2
+1/5x
4
+3/5x
5
= 36/5
0 A
3
14/5 0 0 1 -1/5 2/5 x
3
-1/5x
4
+2/5x
5
=
14/5
f 24 * * * 1 1 x
4
+ x
5
+f = 24

Tabelele 4.2.1 - 4.2.4



Soluia


Baza
Componentele
soluiei de baz
generat de algoritm

Soluia
programului

Valoarea
funciei

x
1
x
2
x
3
x
4
x
5
(P) obiectiv
S
0
B
0
= [A
3
, A
4
,
A
5
]
0 0 4 18 6 (0 , 0) 0
S
1
B
1
= [A
1
, A
4
,
A
5
]
4 0 0 6 10 (4 , 0) 8
S
2
B
2
= [A
1
, A
2
,
A
5
]
7 3 0 0 7 (7 , 3) 17
S
3
B
3
= [A
1
, A
2
,
A
3
]
42/5 36/5 14/5 0 0 (42/5 , 36/5) 24
4. Metoda simplex

49

Tabelul 4.2.5

Este util s recapitulm ntr-un tabel soluiile admisibile de baz ale
programului (FSP) , efectiv generate de algoritm , mpreun cu soluiile


programului (P), asociate prin corespondena din finalul seciunii 3.3 (vezi
tabelul 4.2.5).
Urmrind imaginea grafic (fig. 4.2.1), deducem sensul geometric al
algoritmului simplex: procedura pleac dintr-un vrf al mulimii soluiilor
admisibile apoi se deplaseaz ctre un vrf vecin mai bun .a.m.d. pn la
gsirea soluiei optime.

4.3 Determinarea unei soluii admisibile de start

Dup cum s-a specificat, aplicarea algoritmului simplex necesit
cunoaterea unei baze admisibile de start precum i a formei explicite asociate
acesteia, celelalte forme explicite deducndu-se una din alta prin pivotare
gaussian. Chiar i pentru probleme de dimensiuni mici, gsirea unei asemenea
baze de start prin simpla inspectare a coloanelor matricii A, se dovedete a fi o
treab complicat, ne mai vorbind de faptul c este posibil ca problema s nu
aibe soluii admisibile. n plus, s nu uitm c teoria metodei simplex s-a bazat
esenial pe ipoteza c restriciile problemei sunt liniar independente, lucru
iari greu de verificat n practic. Pentru obinerea formei explicite iniiale
avem nevoie de cteva pregtiri.

Vom spune c programul n form standard (P) este n form bun dac
matricea A conine o submatrice unitate de ordinul m (= numrul restriciilor)
iar termenii liberi sunt nenegativi. Dac este aa, (P) satisface condiia (3.5.1)
iar soluia asociat bazei unitare este admisibil i poate fi considerat ca
soluie de start pentru aplicarea algoritmului simplex. Dac (P) nu este n
form bun, el se poate aduce la aceast form, notat (FBP), n felul urmtor:

n caz c unele restricii ale programului iniial au termeni liberi
negativi nmulim aceste restricii cu -1; n acest fel toi termenii liberi ai
restriciilor problemei de rezolvat vor fi 0.
Se aduce problema la forma standard adugnd variabile de
abatere n restriciile inegaliti.
Dac matricea programului rezultat nu conine toate coloanele
matricii unitate de ordinul m, n anumite restricii se vor aduga noi variabile
nenegative pentru crearea coloanelor lips; aceste noi variabile se numesc
I. PROGRAMARE LINIARA

50
variabile artificiale i, spre deosebire de cele de abatere, apar i n funcia
obiectiv cu un coeficient comun, foarte mare n valoare absolut. Coeficientul
va fi negativ dac funcia obiectiv se maximizeaz i pozitiv n caz contrar.


Se observ imediat c dac programul iniial (P) este compatibil,
soluiile sale admisibile se identific cu acele soluii ale formei bune n care
variabilele artificiale au valoarea zero. Prin faptul c variabilele artificiale sunt
nsoite n expresia funciei obiectiv de nite penalizri foarte mari, metoda
simplex este instruit s caute tocmai asemenea soluii! i astfel, rezolvarea
formei bune ne conduce la unul din urmtoarele cazuri:


1. Forma bun are optim infinit. Atunci i programul iniial are optim
infinit.
2. Forma bun are optim finit dar n soluia optim cel puin o
variabil artificial are valoare nenul. Atunci programul original este
incompatibil.
3. Forma bun are optim finit i n soluia optim toate variabilele
artificiale au valoarea zero. Ignornd valorile acestor variabile se obine
soluia optim a programului iniial.


0
=
0
0
Exemplul 4.3.1 Considerm urmtorul program mpreun cu forma sa
standard:
( )
(max)
,
P
f x x
x x
x x
x x
x x
= +
+
+
+

2 3
2 4
3 30
30
0 0
1 2
1 2
1 2
1 2
1 2
( )
(max)
, ,...,
FSP
f x x
x x x
x x x
x x x
x j
j
= +
+ =
+ =
+ +
=

2 3
2 4
3 3
30
0 1 5
1 2
1 2 3
1 2 4
1 2 5

Se constat c (FSP) nu este n forma bun neconinnd dect un singur vector
al matricii unitare de ordinul 3. Vom creea o asemenea matrice introducnd n
primele dou restricii variabilele artificiale x
6
i x
7
. Obinem programul:

4. Metoda simplex

51
( )
(max)
, ,... ,
, FBP
f x x Mx Mx
x x x x
x x x x
x x x
x j
M
j
= +
+ + =
+ + =
+ + =
=

>>
2 3
2 4
3 30
30
0 1 7
0
1 2 6 7
1 2 3 6
1 2 4 7
1 2 5
0


Putem aplica algoritmul simplex programului (FBP) plecnd de la baza unitar
E = [A
6
, A
7
, A
5
] i de la soluia asociat acesteia:


.
x
1
= x
2
= x
3
=x
4
= 0 x
5
= 30 , x
6
= 40 , x
7
= 30

Dup trei iteraii (vezi tabelele 4.3.1 - 4.3.4) se obine soluia optim a
programului (FBP) n care variabilele artificiale x
6
, x
7
au valoarea zero.
Ignornd aceste valori se obine soluia optim a formei standard (FSP) i
implicit soluia optim a programului original (P):

x x f
1 2
10 20 80

= = = ,
max


varibilele de abatere avnd valorile: x x x
3 4 5
0 40 0

= = = , ,

2 3 0 0 0 -M -M
c
B
B VVB A
1
A
2
A
3
A
4
A
5
A
6
A
7

-M A
6
40 2 1 -1 0 0 1 0
-M A
7
30 1 3 0 -1 0 0 1
0 A
5
30 1 1 0 0 1 0 0
f -70M -3M-2 -4M-3 M M * * *
-M A
6
30 5/3 0 -1 1/3 0 1 -1/3
3 A
2
10 1/3 1 0 -1/3 0 0 1/3
0 A
5
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 A
1
18 1 0 -3/5 1///5 0 3/5 -1/5
3 A
2
4 0 1 1/5 -2/5 0 -1/5 2/5
0 A
5
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 A
1
10 1 0 -1 0 -1 1 0
3 A
2
20 0 1 1 0 2 -1 0
0 A
4
40 0 0 2 1 5 -2 -1
f 80 * * 1 * 4 M-1 M

Tabelele 4.3.1 - 4.3.4

I. PROGRAMARE LINIARA

52
Punctele din R
2
corespunztoare celor patru soluii generate de algoritm sunt
S
0
= (0,0) , S
1
= (0,10) , S
2
= (18,4) , S
3
= (10,20).




















A
x
1
x
2
S
3
: x
1
=10 , x
2
=20
S
1
: x
1
=0 , x
2
=10
S
2
: x
1
=18 , x
2
=4
S
0
: x
1
=0 , x
2
=0
Figura 4.3.1

Urmrind fig. 4.3.1 se constat c punctele S
0
i S
1
, ce corespund unor
soluii ale programului (FBP) n care cel puin o variabil artificial are valoare
nenul, sunt n afara mulimii A
P
n timp ce S
2
i S
3
, corespunztoare unor
soluii n care x
6
= x
7
= 0, sunt vrfuri ale acestei mulimi.

Pentru determinarea unei soluii admisibile de baz de start, n situaia
n care programul iniial (P) nu este n form bun, se poate aplica i aa
numita metod a celor dou faze:

se introduc n restricii variabile artificiale, bineneles acolo unde
este cazul, n scopul formrii unei baze unitare de start (termenii liberi ai
restriciilor se presupun a fi nenegativi);
n faza I se minimizeaz suma w a variabilelor artificiale introduse.
Deoarece i aceste variabile sunt supuse condiiei de nenegativitate, urmeaz
c (min)w 0. n caz c (min)w > 0 este clar c programul iniial (P) este
incompatibil; dac (min)w = 0 se trece la:
4. Metoda simplex

53
faza a II-a, n care se optimizeaz funcia obiectiv a programului
iniial (P) plecnd de la soluia de baz rezultat la finele fazei I. (Atenie, la
nceputul acestei faze, vom avea grij s recalculm costurile reduse c
j
n
raport cu coeficienii funciei obiectiv din (P)!)





4.4. Inversa bazei curente. Soluia optim a problemei duale

S considerm un program liniar (P) n form bun. Renumerotnd
convenabil variabilele programului, matricea coeficienilor sistemului de
restricii are forma:
A = [A , E]

unde E este matricea unitate de ordinul m = numrul restriciilor din (P). Dup
cum am vzut, E se ia ca baz de start n procesul rezolvrii programului (P)

prin algoritmul simplex. Dac B este o baz cercetat de algoritm, atunci
matricea formei explicite asociat bazei B va fi:

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

Cum matricea B
-1
A apare n corpul mare al tabelului simplex corespunztor
bazei B, deducem urmtoarea concluzie important:


La fiecare iteraie, algoritmul simplex pune n eviden inversa B
-1
a
bazei curente. Ea este format din coloaneleA
j
corespunztoare coloanelor
unitare A
j
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 = [A
6
,A
7
,A
5
], inversa
bazei optime B = [A
1
,A
2
,A
4
] se citete din ultimul tabel simplex:

| | B A A A

= =

(
(
(
1 6 7 5
1 0 1
1 0 2
2 1 5
, ,

I. PROGRAMARE LINIARA

54
O calitate remarcabil a algoritmului simplex este aceea c produce
nu numai soluia optim a problemei creia i se aplic ci i soluia optim a
problemei duale.

S considerm un cuplu de probleme n dualitate n care una este n form
standard (vezi seciunea 2.2):

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

0
( )
min ( )
Q
g u ub
uA c
u
=

oarecare

Cu notaiile seciunii 3.5 avem urmtoarea;

Teorema 4.4.1 Presupunem c (P) are o soluie optim x* asociat
unei baze B. Atunci:
u* = c
B
B
-1
(4.4.1)

este o soluie optim a problemei duale (Q).


Demonstraie: Vom arta c u* satisface restriciile uA
j
c
j
, j =
1,,n ale problemei duale (Q). ntr-adevr u*A
j
- c
j
=c
B
B
-1
A
j
-c
j
=c
j
, conform
(3.5.6). Avem c
j
0 , j = 1,,n, deoarece x* este prin ipotez soluia optim a
programului (P), astfel c u* este o soluie a dualei (Q). Mai departe f(x*) =
g(u*) = c
B
B
-1
b. Concluzia teoremei decurge acum din teorema 2.3.1.

Practic, pentru determinarea soluiei optime duale se procedeaz astfel.
Am artat c rezolvarea unei probleme n form standard se reduce la
rezolvarea unei probleme de acelai tip a crei matrice conine o submatrice
unitate avnd ordinul egal cu numrul restriciilor.

Atunci inversa bazei optimale B
-1
se citete n tabelul simplex asociat
acestei baze pe coloanele A
j
corespunztoare vectorilor care au format baza
unitar de start!

Extrgnd 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-adevr, dup cum am vzut deja, aducerea problemei (P) la
o form (P
1
) convenabil aplicrii algoritmului simplex se face prin adugare
4. Metoda simplex

55
de variabile: de abatere i/sau artificiale. n consecin, duala (Q
1
) a
problemei (P
1
) va avea aceleai variabile i aceeai funcie obiectiv ca i duala
(Q) a problemei iniiale(P), diferena constnd n numrul restriciilor i n
condiiile impuse variabilelor. Se poate arta fr dificultate c aceast
diferen nu nseamn altceva dect dou modaliti de scriere a uneia i
aceleiai probleme, altfel spus (Q) i (Q
1
), n esen, coincid! n acest fel,
teorema de dualitate 2.3.3 este probat.

Exemplul 4.4.2 Ilustrm cele de mai sus, determinnd soluia optim a
programului liniar:

( )
min ( )
;
, ,
Q
g u u u u
u u u u u u
u u u
= + +
+ + + +

40 30 30
2 2 3
0 0 0
1 2
1 2 3 1 2 3
1 2 3
3
3


care este dualul programului (P) rezolvat n exemplul 4.3.1. Dup adugarea
variabilelor de abatere i a celor artificiale, din (P) s-a obinut programul
(P
1
) = (FBP) al crui dual este:


3











( )
min ( )
, ,
Q
g u u u u
u u u
u u u
u
u
u
u M
u M
u u u
1
1 2
1 2 3
1 2 3
1
2
3
1
2
1 2 3
40 30 30
2 2
3 3
0
0
0
= + +
+ +
+ +






f. r.s.


I. PROGRAMARE LINIARA

56
Restricia u
3
0 este de fapt condiia de nenegativitate impus variabilei u
3

n (Q) iar -u
1
0 , -u
2
0 nseamn u
1
0 , u
2
0. Ultimele dou restricii din
(Q
1
) sunt superflue pentru c M este prin definiie >>0. Prin urmare (Q) i (Q
1
)
coincid. Din tabelul simplex 4.3.4 extragem inversa bazei optimale comune B
= [ A
1
,A
2
,A
4
] a programelor (P) i (P
1
) - vezi exemplul precedent - astfel c
soluia optim a probl;emei duale (Q) este :

| | |
u c B
B
= =

(
(
(
=
1
2 3 0
1 0 1
1 0 2
2 1 5
1 0 4
|
4

adic: u u u
1 2 3
1 0

= = = , , .

Observaie: Folosind notaiile din 3.5 punem n eviden
componentele vectorului linie c
B
B
-1
:

j
B j
i ij
i I
c A c a j J = =



Pentru coloanele unitare A
i
corespunztoare vectorilor A
i
din baza curent
punem:

i
= c
i
i I

Din (3.5.6) rezult atunci c:

c
j
=
j
- c
j
j=1,,n


i deci mrimile
j
sunt efectiv calculate n procesul evalurii coeficienilor
c
j
! Acesta este i motivul pentru care de multe ori mrimile
j
sunt puse n
eviden ntr-o linie separat plasat n tabelul simplex deasupra liniei test. Cu
aceste pregtiri, formula (4.4.1) arat c:

Soluia optim a problemei duale este dat de coeficienii
j
din tabelul
simplex al problemei primale, corespunztori coloanelor unitare care au
format baza de start.


4.5 Convergena algoritmului simplex

4. Metoda simplex

57
Se arat uor c dac minimul din (4.2.2) nu este unic atunci noua
soluie de baz x este degenerat, adic are un numr de componente nenule
< m. Aceast situaie este delicat prin faptul c poate implica neconvergena
algoritmului. Mai precis, este posibil ca algoritmul s genereze un ir de soluii
de baz neoptimale x x x
p 1 2
, ,..., , dealungul cruia valoarea funciei obiectiv
staioneaz, adic f x f x f x
p
( ) ( ) (
1 2
= = = L ) , astfel nct x x
p
=
1
!!
Fenomenul descris, numit ciclare, dei teoretic posibil, nu a fost ntlnit n nici
o aplicaie practic, existena lui fiind probat doar prin cteva exemple
artificial construite.

Exemplul 4.5.1 [Beale] Se consider programul liniar:

x x x x
x x x x x
x
x x x x
1 4 5
2 4 5
1
2 6 7
3
4 5
1
2 6 7
8 9
12 3 0
20 6
+ x
+
+ x = 1
(max)f =
1
4 6
1
2
6
3
4
+ =
+ =
+

7
0


O baz admisibil de start este B
0
= E = [A
1
,A
2
,A
3
] a crei soluie asociat x
0

este degenerat. ntr-adevr, variabilele bazice au valorile:

x
1
= 0 , x
2
= 0 , x
3
= 1 (toate celelalte variabile fiind nule)

Propunem cititorului s arate c succesiunea de baze admisibile:

B
1
= [A
4
,A
2
,A
3
] , B
2
= [A
4
,A
5
,A
3
] , B
3
= [A
6
,A
5
,A
3
] , B
4
= [A
6
,A
7
,A
3
]

B
5
= [A
6
,A
2
,A
3
] , B
6
= [A
4
,A
2
,A
3
]

poate fi dedus din B
0
prin aplicarea regulilor algoritmului simplex. Se
constat fr dificultate c valoarea funciei obiectiv n soluiile de baz
asociate este zero i c nici una din aceste soluii, toate degenerate, nu verific
criteriul de optimalitate. Pe de alt parte observm c baza B
6
este identic cu
baza B
1
i deci algoritmul intr ntr-un ciclu infinit fr a putea determina
soluia optim (care exist i este unic dup cum vom vedea).
Pentru problemele ale cror soluii de baz admisibile sunt toate
nedegenerate convergena algoritmului este asigurat de urmtoarea :

Teorema 4.5.1 Dac programul n form standard (P) este compatibil
i toate soluiile sale admisibile de baz sunt nedegenerate atunci aplicarea
algoritmului simplex descris n 4.2 se termin ntr-un numr finit de iteraii, fie
cu gsirea soluiei optime, fie cu concluzia c programul are optim infinit.
I. PROGRAMARE LINIARA

58

Demonstraie: Fie x x x
0 1 2
, , ,... soluiile cercetate n cursul aplicrii
algoritmului , x
0
fiind soluia iniial. Avem f x f x f x ( ) ( ) ( ) ...
0 1 2
.
Ipoteza nedegenerrii precum i formula (4.2.3) arat c de fapt
f x f x f x ( ) ( ) (
0 1
< < )
2
... i deci nici o soluie admisibil de baz nu va fi
cercetat de dou ori. Concluzia teoremei rezult acum din faptul c numrul
soluiilor de baz este finit (vezi seciunea 3.5).

Din fericire, exist proceduri de evitare a ciclrii care constau ntr-o
mic modificare a regulii (4.2.2). Ele sunt ncorporate n orice pachet de
programe destinat rezolvrii problemelor de programare liniar. O asemenea
metod va fi descris n cele ce urmeaz. Sunt necesare cteva pregtiri.

Definiie Spunem c vectorul x = (x
1
,x
2
,...,x
n
) este lexicografic pozitiv i
scriem xf 0 dac x 0 i prima component nenul a lui x este pozitiv.

n mulimea vectorilor din R
n
introducem relaia binar:

xf y dac x-y f 0

Se verific uor afirmaiile:

Dac x f y i y f z atunci x f z (tranzitivitate).
Oricare ar fi x , y R
n
una i numai una din urmtoarele relaii are
loc: x = y , x f y , y f x.



Prin urmare relaia f este o relaie de ordine total pe R
n
care extinde relaia
de ordine natural din R n plus ea este compatibil cu structura liniar a
spaiului R
n
n sensul c:

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

S considerm acum problema de programare liniar n form standard:

( )
(max)
P
Ax b
x
f c
=

0
x
0
4. Metoda simplex

59

Putem presupune c problema (P) este n form bun, altfel spus c matricea A
conine o submatrice unitate de ordinul m, unde m este, ca de obicei, numrul
restriciilor. Renumerotnd 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 neaprat admisibil,
are urmtorul coninut:

VVB
B b B
-1
B
-1
S

Fie I mulimea indicilor vectorilor A
i
care formeaz baza B. Pentru fiecare i I
notm:

|
q b a a a
i
B
i i i im
= , , ,...,
1 2 |
(4.5.1)

unde a a a
i i i 1 2
, ,...,
m
sunt componentele liniei i a matricii B
-1
.

Definiie Vom spune c baza B este lexicografic admisibil dac
pentru orice i I. q
i
B
f 0

Este clar c dac B este lexicografic admisibil atunci B este admisibil n
sensul de pn acum adic b i
i
0 , I . Reciproc, dac B este admisibil i
soluia asociat este nedegenerat, adic b i
i
> 0 , I atunci evident, B este
lexicografic admisibil.


|
Baza de start B
0
= E este lexicografic admisibil. ntr-adevr:

|
q b
i
B
i
0
0 1 0 = , ,..., ,... i = 1,...,m

i este clar c toi . Introducem vectorul q
i
B
0
0 f q f
B
= ( , ) c n care f este
valoarea funciei obiectiv n soluia asociat bazei B iar c este vectorul
costurilor reduse corespunztoare (vezi seciunea 3.5).

Definiie Spunem c baza B' este lexicografic mai bun dect baza B
(n sensul maximizrii funciei obiectiv f ) i vom scrie B' f B dac q
B'
f q
B
.

Evident B' fB este o relaie de ordine total n mulimea bazelor problemei (P).
Se constat imediat c dac B' este lexicografic mai bun dect B atunci B' este
cel puin la fel de bun ca i B n sensul obinuit adic f f ' .

I. PROGRAMARE LINIARA

60
Ideea de modificare a algoritmului simplex descris n 4.2 const n a
pleca de la o baz B
0
lexicografic admisibil i de a genera n continuare numai
baze lexicografic admisibile B
1
, B
2
,... care s fie din ce n ce mai bune n sens
lexicografic, adic:
B
0
p B
1
p B
2
p ...

Avnd n vedere c n irul de mai sus nu pot exista dou baze identice i c
numrul bazelor admisibile este finit urmeaz c ideea de modificare a
algoritmului simplex propus mai sus garanteaz convergena procedurii.

Trecem acum la concretizarea ideii de modificare. Fie B o baz
lexicografic admisibil care nu verific criteriul de optimalitate al algoritmului
simplex. Determinm cu criteriul (4.2.1) coloana A
k
care intr n baz i
presupunem c A
k
are i componente pozitive (cu alte cuvinte nu suntem n
cazul optimului infinit). Pentru determinarea indicelui coloanei A
r
care
prsete baza curent B, n locul criteriului (4.2.2) vom folosi formula:


1 1
(4.5.2)
0
a
q
a
q
rk
r
B
ik
i
B
i a
ik
=


`
)
>
minlex
,

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

se determin mulimea I
0
a indicilor r I astfel nct:

b
a
b
a
r
rk
i
ik
i a
ik
=


`
)
> ,
min
0

Dac I
0
se reduce la un singur indice r atunci
1
a
q
rk
r
B
realizeaz minimul
lexicografic din (4.5.2). Prin urmare dac minimul din (4.2.2) este unic cele
dou criterii de ieire din baz (4.2.2) i (4.5.2) coincid.
Dac I
0
se compune din cel puin dou elemente, se determin mulimea I
1
I
0

a indicilor r cu proprietatea c:
a
a
a
a
r
rk
i
ik
i I
1 1
0
=

min

Dac nici I
1
nu se reduce la un singur element, se determin n continuare sub
mulimea I
2
I
1
format din indicii r pentru care:

4. Metoda simplex

61
a
a
a
a
r
rk
i
ik
i I
2 2
1
=

min

.a.m.d.
Se genereaz astfel un ir de submulimi:
I
0
I
1
I
2
...
ultima din ele avnd cu siguran un singur element ce definete minimul
lexicografic din (4.5.2). ntr-adevr, dac ultima mulime generat ar conine
cel puin doi indici diferii r i r', aceasta va fi I
m
i n consecin:


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

ceeace ar implica proporionalitatea a dou linii din matricea B
-1
, fapt
imposibil. Prin urmare, minimul din (4.5.2) este unic.
S artm acum c noua baz B' dedus din B nlocuind A
k
cu A
r
:

este lexicografic admisibil, adic:

q i I i r q
i
B
k
B ' '
, , f f 0 0 si ;

este lexicografic mai bun dect B, adic q
B'
f q
B
.


n baza formulelor de schimbare a bazei (4.1.12) putem scrie relaiile:

q q
a
a
q i r q
a
q
i
B
i
B ik
rk
r
B
k
B
rk
r
B ' '
; = =
1


Deoarece prin ipotez q a
r
B
rk
f 0 si >
f 0
0 rezult .Fie i r. Dac a q
k
B'
f 0
ik
0
atunci n mod clar q . Dac a
i
B'
ik
> 0 atunci:

q a
a
q
a
q
i
B
ik
ik
i
B
rk
r
B '
=
|
\

|
.
|
1 1
0 f

n virtutea alegerii lui r, conform (4.5.2). n fine: q q i deoarece
c
c
a
q
B B k
rk
r
B '
=
k
< 0 rezult . q q
B B '
f

I. PROGRAMARE LINIARA

62
Aplicarea n calculul manual a criteriului de ieire din baz modificat
(4.5.2) este foarte simpl:

Dac minimul rapoartelor
b
a
a
i
ik
ik
, > 0 din criteriul uzual de ieire
din baz nu este unic i se atinge pe o submulime de indici I
0
se caut minimul
rapoartelor
a
a
i I
i
ik
1
0
, n care numrtorii sunt luai din prima coloan a
inversei bazei curente. Dac nici acesta nu este unic i se atinge pe o
submulime I
1
I
0
se caut minimul rapoartelor
a
a
i I
i
ik
2
1
, cu numrtorii din
a doua coloan a inversei bazei .a.m.d. Dup cum am vzut acest proces se
termin ntr-un numr finit de pai cu gsirea unui unic indice r. Vectorul A
r

prsete baza.

Consideraiile de mai sus vor fi aplicate problemei din ex.4.5.1 (vezi tabelele
4.5.1 - 4.5.3)
La prima iteraie intr n baz A
4
. Se observ c:
{ } min , min ,
b
a
b
a
1
14
2
24
0 0


`
)
=
nu este unic. Fie I
0
= {1,2}. Prima coloan a inversei bazei curente este A
1
i
ca urmare calculm:
min , min ,
a
a
a
a
a
a
11
14
21
24
21
24
1
1 4
0
1 2
0


`
)
=


`
)
= =
n consecin vectorul A
2
prsete baza .a.m.d.
0 0 0 3/4 -20 1/2 -6
c
B
B VVB A
1
A
2
A
3
A
4
A
5
A
6
A
7

0 A
1
0 1 0 0 1/4 -8 -1 9
0 A
2
0 0 1 0 1/2 -12 -1/2 3
0 A
3
1 0 0 1 0 0 1 0
f 0 * * * -3/4 20 -1/2 6
0 A
1
0 1 -1/2 0 0 -2 -3/4 15/2
3/4 A
4
0 0 2 0 1 -24 -1 6
0 A
3
1 0 0 1 0 0 1 0
f 0 * 3/2 * * 2 -5/4 9/2
0 A
1
3/4 1 -1/2 3/4 0 -2 0 15/2
3/4 A
4
1 0 2 1 1 -24 0 6
1/2 A
6
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 seciunile anterioare.

Exemplul 4.6.1 (Optim infinit, raze extreme).

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

(
,
P)
(max) f x x
x x
x x
x x
x x
= +
+
+

3 4
3 4 12
2 2
2 2
0 0
1 2
1 2
1 2
1 2
1 2
(
, ,...,
FSP)
(max) f x x
x x x
x x x
x x x
x j
j
= +
+ + =
+ + =
+
=

3 4
3 4 1
2 2
2 2
0 1 5
1 2
1 2 3
1 2 4
1 2 5
=
2

Plecnd cu baza unitar admisibil E = |A
3
,

A
4
,

A
5
| , n dou interaii se ajunge
la tabelul 4.6.1:

3 4 0 0 0
C
B
B VVB A
1
A
2
A
3
A
4
A
5

3 A
1
4/5 1 0 1/5 -4/5 0
4 A
2
18/5 0 1 2/5 -3/5 0
0 A
5
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:
c A 4
4
0 0 < iar

Vectorul w
1
=(4/5, 3/5, 0, 1, 2/5)
T
este o raz extrem a mulimii A
FSP
a
soluiilor admisibile ale formei standard (FSP), vezi (4.2.4). Prin "proiecie",
vectorul w
1
=(4/5, 3/5) este o raz extrem a mulimii A
P
a soluiilor admisibile
ale programului iniial (P). Din fig. 4.6.1 rezult c A
P


mai are o raz extrem
w
2
=(2,1)
T
. Aceast raz se poate determina tot cu ajutorul algoritmului simplex
I. PROGRAMARE LINIARA

64
cu condiia ca la prima interaie, n baz, s fie introdus coloana A
1
.
Propunem cititorulului s efectueze calculele necesare.



A
P

v
1
+w
1
,0
v
2
+w
2
,0
x
1

x
2

v
1

v
2

w
2
=(2,1)
w
1
=(4/5,3/5)

















3
0
Figura 4.6.1

Exemplu 4.6.2 (Incompatibilitate) Considerm programul:

( )
(min)
, ,
P
f x x x
x x x
x x x
x x x
x x x
= +
+
+ +
+ + =

6 2
5 6
2 3 7
3 2 2
0
1 2
1 2 3
1 2 3
1 2 3
1 2 3


Dup introducerea variabilelor de abatere x
4
, x
5
i a variabilelor artificiale x
6
i
x
7
(n prima i respectiv a treia restricie) se obine programul n form bun:

( )
(min) ,
FBP
f x x x Mx Mx M
x x x x x
x x x x
x x x x
x j
j
= + + +
+ + =
+ + + =
+ + + =

6 2
5 6
2 3 7
3 2 2
0 1 7
1 2 3 6 7
1 2 3 4 6
1 2 3 5
1 2 3 7

4. Metoda simplex

65

(Deoarece funcia obiectiv se minimizeaz, variabilele artificiale au fost
incluse n funcia obiectiv cu un coeficient pozitiv M foarte mare!)

Pornind de la baza unitar E=| A
6
, A
5
, A
7
|, n dou iteraii algoritmul
simplex produce tabelul 4.6.2, ce conine soluia optim a programului (FBP).

6 1 -2 0 0 M
c
B
B VVB A
1
A
2
A
3
A
4
A
5
A
6
A
7

M A
6
1 0 -1 0 -1 -1 1 1
6 A
1
8/13 1 -1/13 0 0 2/13 0 -3/13
-2 A
3
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 soluie variabila artificial x
6
are valoare nenul,
programul n forma standard i implicit programul original nu au soluii
admisibile.

Exemplul 4.6.3 (Programe liniare cu variabile fr restricie de semn)

Condiia de nenegativitate impus variabilelor unui program liniar (P)
nu este deloc restrictiv. ntr-adevr s presupunem c n (P) ar exista o

variabil x
j
ce poate lua orice valoare real. nlocuim x
j
cu diferena a dou
variabile nenegative:

x x x cu x x
j j j j j
=
' '' ' ''
, 0 0

n consecin, n locul coloanei A
j
a coeficienilor variaiei x
j
vor apare dou
coloane:

(A
j
)'=A
j
(A
j
)
''
= -A
j

iar n funcia obiectiv coeficientul c
j
se nlocuiete cu : c c si c c
j j j
' ''
= =
j

Deoarece (A
j
)'+(A
j
)'' = 0, coloanele (A
j
)' i (A
j
)'' 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 x
j
n
soluia optim va fi
( ) ( )
x x x
j j j
* '
*
''
*
. =
x x
j
*
) =
Cum
'
nu pot fi simultan
variabile bazice vom avea: dup cum, n
x si x
j
'

u x
* *
=
j
'
j
( )
''
sa x
j j
*
(
'
0 0
I. PROGRAMARE LINIARA

66
soluia optim a programului transformat , respectiv ,a fost variabil
bazic. Pentru ilustrare s considerm problema:
x
j
'
mn
M
x
0
3
4
x
1
'
0
j
''
>>
/
*
x
3/
/ =

( )
min
,
P
f x x
x x
x x
x fara restrictii de se x
= +
+
+

3 2
2 2
3 3
0
1 2
1 2
1 2
1 2


nlocuim:
'
, adugm variabilele de abatere x x x x
1 1
=
'
3
, x
4
precum i
variabila artificial x
5
n scopul obinerii unei baze unitare de start. Rezult
urmtorul program transformat:

( )
min ,
, , , , ,
'
P
f x x x x M
x x x x x
x x x
x x x x x x
= + +
+ + + =
+ + + =

3 3 2
2 2
3 3 3
1 1 2 5
1 1 2 5
1 1 2
1 1 2 3 4 5


n continuare dm elementele ultimului tabel simplex:



3 -3 2 0 0 M
C
B
B VVB (A
1
)' (A
1
)'' A
2
A
3
A
4
A
5

2 A
2
3/5 0 0 1 -3/5 -1/5 3/5
-3 (A
1
)
''
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

Soluia optim a programului (P') este deci:

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

Urmeaz c soluia optim a programului original va fi :

x x
1 2
4 5 5
* *
/ , = =



4. Metoda simplex

67
4.7 Interpretarea economic a algoritmului simplex

S considerm cazul n care problema de maximizare n form
standard:

max f c
Ax b
x
=
=

0
x


reprezint modelul de optimizare a activitii unei firme (seciunea 1.1,
exemplul 1). Se cere determinarea combinaiei de bunuri ce urmeaz a fi
realizate precum i a cantitilor n care acestea vor fi produse astfel nct
venitul firmei s fie maxim cu condiia consumrii integrale a resurselor
disponibile. Ultima cerin nu este deloc restrictiv ntruct n lista activitilor
productive putem include la nevoie un numr de activiti fictive ale cror
nivele s reprezinte resursele neconsumate (aceste activiti fictive corespund
variabilelor de abatere).

O prim concluzie care se desprinde din teoria metodei simplex este
aceea c n orice soluie optim a modelului numrul bunurilor ce vor fi
efectiv realizate este cel mult egal cu numrul resurselor folosite.



Aceasta rezult din faptul c n orice soluie de baz numrul componentelor
nenule nu depete numrul restriciilor. n consecin, realizarea unor bunuri
ce nu sunt incluse n "lista optim" implic adugarea unor noi restricii n
model, fapt care duce la diminuarea optimului iniial.

S considerm acum un program de producie "de baz", adic o soluie
admisibil de baz, asociat unei baze B. Activitile i corespunztoare
coloanelor A
i
din B vor fi numite n continuare activiti de baz, iar celelalte
activiti secundare. Conform definiiei, acest program nu prevede folosirea
activitilor secundare iar cantitile de bunuri realizate n activitile de baz
trebuie astfel dimensionate nct s se asigure consumarea ntregului stoc de
resurse. n notaiile seciunii 3.5 :

Bx
B
= b , x
S
= 0 de unde x
B
= B
-1
b =b

Dup cum se vede, lista activitilor de baz determin n mod unic cantitile
de bunuri ce pot fi produse i ca atare detectarea unui program mai bun se
poate face numai studiind oportunitatea utilizrii unor activiti secundare care
I. PROGRAMARE LINIARA

68
s nlocuiasc o parte din activitile bazice curente. Pentru aceasta avem
nevoie de un criteriu care s permit compararea unei activiti secundare j cu
grupul activitilor de baz. S examinm coloana A
j
a tabelului simplex
asociat bazei B. Conform (3.5.3) A
j
= B
-1
A
j
de unde A
j
= B.A
j
sau:

A a A a A a A
j
j j mj
m
= + + +
1
1
2
2
.... (4.7.1)

n ipoteza c
| |
B A A A
m
=
1 2
, ,..., . Sensul economic al egalitii (4.7.1) este
urmtorul: din punctul de vedere al consumului de resurse producerea unei
uniti din bunul j este echivalent cu producerea cantitilor a a a
j j 1 2
, ,...,
mj

din bunurile activitilor de baz. n consecin, dac se dorete producerea
unei uniti din bunul j, producia activitilor de baz trebuie diminuat cu
cantitile a a a
j j mj 1 2
, ,..., .Analiza oportunitii introducerii n fabricaie a
bunului j se va face prin compararea aportului su la creterea venitului firmei
cu aportul valoric al cantitilor a a a
j j m 1 2
, ,...,
j
.Astfel, realizarea unei uniti
din bunul j determin creterea valorii curente a funciei obiectiv cu preul su
c
j
n timp ce renunarea la producerea cantitilor a a a
j j 1 2
, ,...,
mj
nseamn
diminuarea aceleiai valori cu suma c a c a c a
j j m 1 1 2 2 mj
+ + + ... .Prin urmare dac
diferena:
c c a c a c a c
j j j m mj j
= + + +
1 1 2 2
...

este 0 realizarea bunului j nu este rentabil deoarece nu duce la creterea
valorii produciei asigurate prin programul curent. Dac c
j
0 pentru toate
activitile secundare, programul de fabricaie curent este optim. Am regsit
astfel criteriul de optimalitate din teorema A seciunea 4.1. Dac c
j
< 0,
utilizarea activitii secundare j duce la o sporire a venitului realizabil prin
programul curent, viteza de cretere fiind -c
j
. Interpretarea criteriului de
intrare n baz (4.2.1) este acum clar: dac mai multe activiti secundare sunt
rentabile n raport cu grupul activitilor de baz este preferat activitatea care
asigur cea mai ridicat vitez de cretere a valorii curente a produciei.Fie k
aceast activitate. Ultima problem const n stabilirea cantitii din bunul k ce
poate fi realizat n condiiile date. Conform celor de mai sus producerea unei
cantiti din acest bun implic micorarea produciei din bunurile activitilor
de baz cu cantitile a a a
k k m 1 2
, ,..., :
k


x b a x b a x b a
k k m m 1 1 1 2 2 2
= = = , ,...,
mk


4. Metoda simplex

69
Deoarece desfurarea unei activiti la un nivel negativ este lipsit de sens
va trebui s avem b a de unde: i
i ik
= 0 1,.., m

=
>
0
0 i a
ik
i
ik
b
a ,
min


(excludem cazul optimului infinit, nesemnificativ din punct de vedere
economic). Dac
0
=
b
a
r
rk
i =
0
obinem creterea maxim a valorii
curente a produciei prin utilizarea activitii k. n acest caz activitatea k nu mai
este folosit ntruct x b b
b
a
a
r r r
r
rk
rk
= = = 0 a
rk

0
. Am obinut din nou
criteriul de ieire din baz (4.2.2).


4.8 Versiunea revizuit a algoritmului simplex

Relum programul liniar n form standard (P):

( )
(max)
P
f c
x
Ax b
=

0
x

cu notaiile i terminologia introduse n seciunile 3.4 - 3.5. Considerm o
iteraie oarecare a algoritmului simplex n care se cerceteaz soluia asociat
unei baze B. Pentru efectuarea iteraiei sunt necesar urmtoarele elemente:

1) Costurile reduse: c c B A c j
j
B j
j
=
1
, J
Dac testul de optimalitate nu este ndeplinit se determin kJ astfel ca:

c c
k
j J
j
=

min
Coloana A
k
intr n baza curent.
2) Componentele coloanei:

A B A
k
k
=
1


3) Valorile variabilelor bazice curente x
i
, iI reunite n vectorul:

I. PROGRAMARE LINIARA

70
b B b =
1


Admind c nu are loc cazul optimului infinit se determin iI astfel nct:

b
a
b
a
r
rk a
i
ik
ik
=
>
min
0


Coloana A
k
prsete baza curent.

Dup efectuarea operaiilor necesare evalurii elementelor amintite, tabelul
simplex curent se pivoteaz cu pivotul a
rk
..

Se observ c aceste mrimi numerice se pot calcula direct din datele
iniiale A, b, c ale programului (P) cunoscnd inversa B
-1
a bazei curente.

Dac avem n vedere soluionarea problemelor practice de programare
liniar caracterizate n primul rnd prin numrul mare de restricii i variabile
urmtoarele probleme trebuie s ne dea de gndit:

Din mulimea de coloane calculate A
j
=B
-1
A
j
, jJ doar una este
efectiv folosit la aflarea pivotului i anume A
k
; toate celelalte servesc la
calculul costurilor reduse conform formulei:

c
j
=c
B
A
j
-c
j
, jJ

Cum n practic problemele au multe variabile, astfel spus matricea A are
multe coloane, evaluarea coloanelor A
j
necesit timp i efort de calcul.
Exceptnd primul tabel simplex, celelalte se deduc unul din altul
prin pivotare gaussian, facilitnd 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 iniial A este rar (adic densitatea
elementelor nenule este mic), densitatea elementelor nenule n tabelele
simplex generate crete vertiginos, cu efecte negative asupra vitezei de calcul.

Este de la sine neles c aceste neajunsuri nu sunt vizibile n calculul
manual. Aceste probleme apar n contextul rezolvrii programelor de
dimensiuni mari cnd 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 mrimilor
amintite mai nainte ntr-o alt ordine i apelarea la datele iniiale ale
problemei. La fiecare iteraie este necesar cunoaterea inversei bazei curente.

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

=c
B
B
-1


se numesc multiplicatori simplex asociai bazei B (vezi observaia din finalul
seciunii 4.4)

Inserm elementele B
-1
, , b=B
-1
b i f=c
B
b=b ntr-un tabel:

B b B
-1

f f

numit tabel simplex redus.

S presupunem cunoscut o soluie admisibil de baz a programului
(P) i tabelul simplex redus al acesteia. Cu aceste pregtiri, coninutul unei
iteraii n versiunea revizuit este urmtorul:

Pasul 1. Se calculeaz costurile reduse:

c
j
=A
j
-c
j
, jJ

Dac toi c
j
0 soluia curent este optim. Altminteri:

Pasul 2. Se determin indicele nebazic kJ cu proprietatea :

c c c k
j J
j k = <

min ( !) 0

Coloana A
k
intr n baza curent. Se calculeaz A
k
=B
-1
A
k


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

Pasul 4. Se determin indicele bazei rI cu proprietatea:

b
a
b
a
r
rk a
i
ik
ik
=
>
min
0

I. PROGRAMARE LINIARA

72

Coloana A
r
prsete baza curent.


Pasul 5. Se pivoteaz tabelul simplex redus curent cu pivotul a
rk
> 0
(se presupune c la tabelul simplex redus curent au fost "ataate" coloana A
k

i costul redus c
k
)

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

utilizarea la fiecare iteraie a datelor iniiale ale problemei (pentru
calcularea costurilor reduse c
j
i a coloanei A
k
) asigur un control mai bun
asupra propagrii 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 operaie de nmulire se efectueaz n
calculator numai dac ambii operanzi sunt nenuli)

volumul de calcule este n general mai mic, mai cu seam n situaia
n care numrul variabilelor este cu mult mai mare dect cel al restriciilor.
Este evident faptul c aceste avantaje depind de "calitatea" inversei B
-1
a bazei
curente. ntr-adevr, 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 situaie ce nu poate
fi evitat: pe de o parte propagarea i amplificarea erorilor de rotunjire cu
impact negativ asupra acurateii evalurii diferitelor mrimi necesare

efecturii unei iteraii i pe de alta creterea 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 soluii admisibile de baz de start, n situaia
n care programul iniial (P) nu este n form bun, se aplic metoda celor
dou faze (vezi seciunea 4.3), cu observaia c la nceputul fazei II, vor trebui
recalculai multiplicatorii simplex ce compun vectorul =c
B
B
-1
n raport cu
coeficienii funciei obiectiv din (P)!

Urmtorul exemplu are menirea de a ilustra diferenele 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 fcut 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:

(P)


(max)
,
f x x x x x
x x x x
x x x x x
x x
x x x
x j
j
= + + + + +
+
+ +
+ =
+ + =

3 4 2 2
2 4 2 2
2 4 4 2 2 1
1
1
0 1 6
1 2 3 4 5
1 3 4 6
1 2 4 5 6
2 3
4 5 6
x
5
6
5
1 =
=

Introducem variabilele de abatere x
7
, x
8
n primele dou restricii obinnd
forma standard dup care introducem variabilele artificiale x
9
, x
10
, x
11
n
restriciile 2, 3 i 4 n scopul formrii bazei unitare de start. Obinem sistemul
liniar:

2 4 2 2
2 4 4 2 2
1
1
0 1 11
1 3 4 6 7
1 2 4 5 6 8 9
2 3 10
4 5 6 11
x x x x x
x x x x x x x
x x x
x x x x
x j
j
+ + =
+ + +
+ +
+ + + =
=

, ,...,



Faza I. Atam sistemului de mai sus funcia obiectiv:

w=x
9
+x
10
+x
11


pe care o minimizm. Lum ca baz de start B=E=|A
7
, A
9
, A
10
, A
11
| creia i
corespunde soluia: x
1
=x
2
=x
3
=x
4
=x
5
=x
6
=x
8
=0 , x
7
=5 , x
9
=1 , x
10
=1 , x
11
=1. n
raport cu aceast baz c
B
=|0,1,1,1| astfel c =c
B
B
-1
=|0,1,1,1|, w=b=3 .
Primul tabel simplex redus arat astfel:

A
7
5 1 0 0 0
A
9
1 0 1 0 0
A
10
1 0 0 1 0
A
11
1 0 0 0 1
w 3 0 1 1 1
I. PROGRAMARE LINIARA

74

Tabelul 4.8.1


Calculm costurile reduse c
j=
A
j
-c
j
. Costurile reduse corespunztoare
diferitelor iteraii ale fazei I sunt date n tabelul 4.8.6; de fiecare dat un cost
ncadrat arat coloana care intr n baza curent.

(A
4
)
T
2 4 0 1 A
4

A
7
5 1 0 0 0 2
A
9
1 0 1 0 0 4
A
10
1 0 0 1 0 0
A
11
1 0 0 0 1 1
w 3 0 1 1 1 5=c
4


Tabelul 4.8.2

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

A
7
9/2 1 -1/2 0 0 2 A
7
3 1 0 0 -2 -4
A
4
1/4 0 1/4 0 0 -1 A
4
1 0 0 0 1 0
A
10
1 0 0 1 0 1 A
10
1/4 0 1/4 1 -1 1
A
11
3/4 0 -1/4 0 1 1 A
2
3/4 0 -1/4 0 1 0
w 7/4 0 -1/4 1 1 2=c
2
w 1/4 0 1/4 1 -1 1=c
3


Tabelul 4.8.3 Tabelul 4.8.4

La prima iteraie intr n baz A
4
. Calculm A
4
=B
-1
A
4
; pentru aceasta
(vezi tabelul 4.8.2 care coincide cu 4.8.1) scriem A
4
n linie, deasupra tabelului


c
B
(A
1
)
T
2 2 0 0 A
1

0 A
7
4 1 1 4 -6 4
2 A
4
1 0 0 0 1 0
1 A
3
1/4 0 1/4 1 -1 1/2
4 A
2
3/4 0 -1/4 0 1 -1/2
w 0
f 21/4 0 -3/4 1 5 -9/2=c
1


Tabelul 4.8.5

i facem produsele scalare ale lui (A
4
)
T
cu liniile matricei B
-1
; rezultatele le
nscriem n dreapta tabelului 4.8.2. Tot n dreapta jos nscriem costul redus c
4
.
Parcurgnd celelalte etape al algoritmului gsim c A
9
prsete baza. Se
efectueaz pivotarea tabelului 4.8.2 cu pivotul ncadrat i se obine tabelul
(4.8.3). Tabelele 4.8.4 si 4.8.5 aparin deasemeni fazei I.
4. Metoda simplex

75




Coef. funciei ob. f 3 4 1 2 2 1 0 0
Coef. funciei ob. w 0 0 0 0 0 0 0 0 1 1 1
A
1
A
2
A
3
A
4
A
5
A
6
A
7
A
8
A
9
A
10
A
11
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 iteraia 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 iteraia 3 (tabelul 4.8.5) s-a obinut w = 0, ceea ce nseamn
obinerea unei soluii admisibile de baz pentru forma standard a programului
(P). Nu s-au mai calculat multiplicatorii simplex relativi la funcia obiectiv w i
ca urmare nu s-a mai urmrit verificarea testului de optimalitate n raport cu
aceast funcie! n schimb s-a "actualizat" c
B
=[ 0, 2, 1, 4 ], n raport cu funcia
obiectiv original f i s-au calculat multiplicatorii simplex n raport cu aceast
funcie.

n alte cinci iteraii se obine soluia optim a programului dat:

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

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

(A
5
)
T
0 -2 0 1 A
5
(A
3
) -4 0 1 0 (A
3
)

A
7
2 1 -1 -4 2 4 A
5
1/2 1/4 -1/4 -1 1/2 -2
A
4
1 0 0 0 1 1 A
4
1/2 -1/4 1/4 1 1/2 2
A
1
1/2 0 1/2 2 -2 -3 A
1
2 3/4 -1/4 -1 -1/2 -4
A
2
1 0 0 1 0 0 A
2
1 0 0 1 0 1
f 15/2 0 3/2 10 -4 -9=c
5
f 12 9/4 -3/4 1 1/2 -9=c
3

I. PROGRAMARE LINIARA

76

Tabelul 4.8.7 Tabelul 4.8.8



(A
8
)
T
0 -1 0 0 A
8
(A
6
)
T
-2 2 0 1 A
6

A
5
1 0 0 0 1 0 A
5
1 0 0 0 1 1
A
3
1/4 -1/8 1/8 1/2 1/4 -1/8 A
3
1 0 0 1 0 0
A
1
3 1/4 1/4 1 1/2 -1/4 A
1
9/2 1/2 0 2 0 -1
A
2
3/4 1/8 -1/8 1/2 -1/4 1/8 A
2
6 1 -1 4 -2 -6
f 57/4 9/8 3/8 11/2 11/4 -3/8 =c
8
f 33/2 3/2 0 7 2 -2 =c
6

Tabelul 4.8.9 Tabelul 4.8.10

A
6
1 0 0 0 1
A
3
1 0 0 1 0
A
1
11/2 1/2 0 2 1
A
8
12 1 -1 4 4
f 37/2 3/2 0 7 4

Tabelul 4.8.11


***

n consideraiile de pn 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 situaii economice reale), de neconceput fr
utilizarea unui calculator , pune ns i alte probleme, de natur numeric cum
ar fi controlul propagrii erorilor de rotunjire (inerente calculului cu numere
reale) , volumul de memorie necesar stocrii diferitelor informaii numerice
utilizate n procesul rezolvrii, timpul de rulare pn la obinerea rezultatului
final etc.
Reamintim cu acest prilej c, nu de puine ori, o metod de optimizare
bine fundamentat teoretic s-a dovedit a fi total ineficient n practic din
cauza ignorrii dificultilor numerice semnalate mai sus.
De regul creterea performanelor numerice ale unei metode teoretice se face
prin :

Reorganizarea procesului de calcul de aa manier nct s se
asigure diminuarea efectelor nefaste ale propagrii 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 proprieti "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 uor de
manevrat.

Referindu-ne la eficacitatea practic a algoritmului simplex, dup o
jumtate de veac de experimente numerice i perfecionri teoretice, se poate
spune c acesta s-a dovedit a fi o procedur foarte robust fiind capabil s
rezolve programe liniare de dimensiuni impresionante coninnd sute de
restricii i mii de variabile.
Este de la sine neles c aceste performane n-ar fi fost posibile fr
utilizarea unor calculatoare din ce n ce mai puternice.

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