Sunteți pe pagina 1din 36

Bazele cercetrii operaionale

PROGRAMAREA LINIAR
Prezentare general
Mulimea sistemelor economice concrete i multitudinea problemelor conducerii acestora au
creat o diversitate de reprezentri economico-matematice, denumite modele.
Varietatea acestora este determinat, n principal, de structura "obiectului" analizat, de
scopul cercetrii precum i de informaia disponibil.
Modelele de programare matematic i mai ales subclasa acestora modelele de programare
liniar ocup un loc deosebit de important, at!t n teoria c!t i n practica economic. "eoria
economic a beneficiat de aportul abordrii interdisciplinare care a permis aprofundarea analizei
eficienei ma#imale a sistemelor comple#e, a permis descoperirea unor concepte noi ale optimului
economic, a perfecionat metodele de cercetare i cunoatere iar practica economic s-a mbogit
cu un instrument deosebit de util analizei economice i fundamentrii deciziilor.
$tructura modelului general de programare liniar se constituie n primul r!nd prin mulimea
de activiti %&
'
, &
(
, ... &
n
) care compun sistemul economic analizat, mulimea de resurse utilizate
%*
'
, *
(
, ... *
m
) precum i prin relaiile te+nico-economice dintre acestea. ,egtura dintre activiti
i resurse este determinat de te+nologia de fabricaie corespunztoare fiecrei activiti &
j
-j.',...,n/ i poate fi caracterizat numeric prin vectorul coloan a
-j/
de componente -a
'j
, a
(j
, ... a
mj
/.
0lementele %a
ij
, i . ',...,m1 j . ',...,n) se numesc coeficieni te+nici sau coeficieni de consum
specific i arat ce cantitate din resursa *
i
se consum pentru producerea unei uniti din produsul
-serviciul/ 2
j
-ca rezultat al activitii &
j
/. "oate "te+nologiile" de fabricaie definite de vectorii
coloan a
-j/
se pot organiza ntr-o matrice & cu m linii i n coloane1 fiecare linie se refer la o resurs
*
i
-i . ',...,m/ i fiecare coloan se refer la o activitate &
j
-j . ',...,n/.
3ot!nd cu #
j
-j . ',...,n/ rezultatul activitii &
j
ntr-o perioad dat i cu b
i
-i . ',...,m/
cantitile disponibile din resursele *
i
-i . ',...,m/, se pot scrie matematic urmtoarele restricii
te+nico-economice4
-'/
m n mn ( m( ' m'
( n (n ( (( ' ('
' n 'n ( '( ' ''
b # a ... # a # a
b # a ... # a # a
b # a ... # a # a
+ + +
+ + +
+ + +

sau &# b
unde & .

,
_

mn m( m'
(n (( ('
'n '( ''
a a a
a a a
a a a

1 # .

,
_

n
(
'
#
#
#

i b .

,
_

n
(
'
b
b
b

5iecare inecuaie6restricie ncorporeaz dou afirmaii4


a. cantitatea consumat dintr-o resurs nu poate depi volumul disponibil -propoziie de
logic economic/
b. consumul total *
ij
din resursa *
i
pentru efectuarea activitii &
j
este proporional cu
intensitatea acesteia, adic cu #
j
, deci *
ij
-/
. a
ij
#
j
-ipotez simplificatoare/
-/
7e aici rezult posibilitatea s calculm coeficienii ai8 pe baza informaiilor disponibile privind cantitile consumate
*i8 i nivelul #84 ai8 .
8
#
i8
*
1 i . ',...,m1 8 . ',...,n
('
2rogramarea liniar
$istemul de restricii -'/ realizeaz legtura dintre resurse i activiti prin intermediul celor
m restricii liniare.
Modelul problemei de programare liniar conine restricii de tipul -'/ precum i un criteriu
de "performan" care s permit evaluarea eficienei fiecrei activiti. 9n funcie de scopul urmrit,
putem alege drept criteriu de eficien un indicator care msoar efortul, unul care msoar
rezultatul sau un indicator e#primat ca raport ntre rezultat i efort -sau efort pe rezultat/.
0ste evident c eficiena ma#im nseamn minimizarea efortului i ma#imizarea
rezultatului, iar conceptul de optim se definete, n acest caz, ca un program x R
n
care minimizeaz
sau ma#imizeaz o funcie obiectiv i, n acelai timp, satisface toate restriciile te+nico-economice.
2resupun!nd c fiecare component a vectorului linie c . -c
'
, c
(
, ..., c
n
/ msoar eficiena
unei uniti din rezultatul activitii &
j
, atunci se poate introduce funcia liniar4
f-#/ . c
'
#
'
: c
(
#
(
: ... : c
n
#
n
care evalueaz performana oricrui program x.
$intetiz!nd, obinem urmtorul program de programare liniar4
( ) [ ]

'

n ', 8 ; #
< = b # a
< i b # a
# optim
8
(
n
' 8
= 8 =8
'
n
' 8
i 8 i8
f
x
*elaiile -'/, -(/ i ->/ constituie mpreun modelul general al unei probleme de programare
liniar, av!nd fiecare un rol specific4
'. relaia -'/, unde f-#/ .

n
' 8
8 8
c x
este denumit funcia obiectiv de eficien a problemei,
evalueaz eficiena6performana fiecrei variante de program x1
(. relaiile -(/ de tipul


n
' 8
i 8 i8
b # a
reprezint restricii de tip resurse1 iar restriciile de
tipul


n
' 8
= 8 =8
b # a
se refer la restricii te+nico-economice de tip calitativ -i ca urmare
indicatorul b
k
este limita inferioar impus "reetei optime"1
>. relaia ->/ #
j
; j . ',...,n, numit condiia de nenegativitate a variabilelor, asigur
obinerea unei soluii realizabile din punctul de vedere al logicii economice.
7up cum s-a artat la nceput, structura concret a unei aplicaii n economie este
determinat n primul r!nd de obiectivul urmrit.
&stfel, n cazul problemei determinrii structurii sortimentale optime a produciei, se
cunosc cantitile disponibile -cantitile de care se poate face rost pe perioada analizat/ din fiecare
materie prim %b
i
, i .',...,m), coeficienii te+nologici %a
ij
, i . ',...,m, j . ',...,n) -a
ij
reprezint
cantitatea din materia prim i necesar fabricrii unei uniti din produsul de tipul j/, cantitile
ma#ime % j
x
, j . ',...,n) i minime % j
x
, j . ',...,n) ce pot fi produse din fiecare sortiment n
perioada analizat i profiturile unitare %p
j
, j . ',...,n) ale fiecrui tip de produs. $e cere gsirea
acelor cantiti #
j
care trebuie fabricate din fiecare tip de produs astfel nc!t s se obin profitul
ma#im, n condiiile nedepirii disponibilurilor din fiecare resurs.
2entru simplificarea modelului, se presupune c preul unui bun nu depinde de cantitatea
produs din acesta sau din celelalte, consumul din fiecare materie prim este direct proporional cu
((
unde <
'
<
(
. %',(,...,m)
-'/
-(/
->/
Bazele cercetrii operaionale
cantitatea produs i, pentru fiecare bun, consumurile dintr-o resurs sau alta nu se condiioneaz
reciproc.
2roblema matematic ec+ivalent este4
( )

'



+ + +
+ + +

n ',..., 8 ; #
n ',..., 8 # # #
m ',..., i b # a ... # a # a
# p ... # p # p ma#
8
8 8 8
i n in ( i( ' i'
n n ( ( ' '
n ', 8 #
8
9n unele probleme, n loc de profiturile p
j
se cunosc veniturile unitare v
j
sau costurile unitare
c
j
sau alt criteriu de eficien, scopul fiind ma#imizarea venitului, minimizarea costurilor respectiv
optimul indicatorului de eficien respectiv, sau toate la un loc. 7e asemenea pot lipsi condiiile de
limitare a produciei sau pot e#ista i alte condiii.
,a o problem de programare operativ a produciei restriciile se refer la o serie de
maini -utila8e/ cu care se e#ecut produsele dorite, b
i
fiind disponibilul de timp al utila8ului i pe
perioada analizat iar a
ij
timpul necesar prelucrrii unui produs de tipul j pe utila8ul i, scopul fiind
ma#imizarea produciei.
?a urmare, modelul are forma4
( )

'


+ + +
+ + +

n ',..., i ; #
m ',..., i b # a ... # a # a
# ... # # ma#
8
i n in ( i( ' i'
n ( '
n/ ',..., 8 - #
8
7ac se dorete obinerea unui meniu -reete fura8ere/, care s asigure necesarurile %b
i
, i .
',...,m) dintr-un numr de m substane eseniale organismului, av!nd la dispoziie un numr de n
alimente, cunosc!ndu-se cantitile %a
ij
, i . ',...,m, j . ',...,n) din fiecare substan pe care le conine
o unitate de msur din fiecare aliment i costurile %c
j
, j . ',...,n) unei uniti de msur din fiecare
aliment, putem scrie modelul4
( )

'


+ + +
+ + +

n ',..., 8 ; #
m ',..., i b # a ... # a # a
# c ... # c # c min
8
i n in ( i( ' i'
n n ( ( ' '
n/ ',..., 8 -
8
#
Variabilele #
j
reprezint, n acest caz, cantitatea din fiecare aliment ce va intra n meniu iar
f-#/ .

n
' 8
8 8
c x
este costul total al reetei definit de vectorul #.
(>
2rogramarea liniar
Vom nc+eia e#emplificarea cu prezentarea modelului amestecului optim de produse
petroliere. 2resupunem c o rafinrie dispune de n tipuri de benzine, prin amestecarea acestora
urm!nd s obin o benzin cu m caracteristici impuse i la un pre minim posibil. @ serie de
caracteristici trebuie s fie ndeplinite cu o limit inferioar -de e#emplu cifra octanic/, altele cu o
limit superioar -de e#emplu densitatea sau temperatura de fierbere/ i altele cu egalitate -de
e#emplu cantitatea necesar/, aceste limite fiind
'
i
b , i . ',...,m
'
,
(
i
b , i . ',...,m
(
respectiv
>
i
b , i .
',...,m
>
cu m
'
: m
(
: m
>
. m. 7e asemenea, trebuie inut cont de cantitile disponibile din fiecare
benzin 7
i
, i . ',...,n. $e cunosc caracteristicile fiecrei benzine disponibile, date ntr-o matrice &
M
mn
, unde a
i8
este valoarea caracteristicii i pentru benzina 8 i preurile unitare ale fiecrei benzine,
notate p
8
, 8 . ',...,n. 7ac notm cu #
8
, 8 . ',...,n, cantitile din fiecare benzin care vor forma
amestecul optim, atunci avem de rezolvat problema4

'



+ +
+ +

,
_

n ',..., 8 ; #
n ',..., 8 7 #
m ',..., m m i b # a
m m ',..., m i b # a
m ',..., i b # a
p min
8
8 8
( '
n
' 8
>
i 8 i8
( ' '
n
' 8
(
i 8 i8
'
n
' 8
'
i 8 i8
n
' 8
8 8
#
8
x
Programarea matematic
$e observ c toate aceste probleme, cu toate c reprezint situaii economice total diferite,
sunt aplicaii n sfera activitii economice ale urmtoarei probleme de optimizare4
( ) ( ) ( )
( )
> . '
( . '
' . '
# ,..., # , #
n ',..., i b # ,..., # , #
# ,..., # , # min sau ma#
n
n ( '
i n ( '
n ( '

'



R
g
f
i
n care funciile f,g
i
4 R
n
R pot avea orice form i proprieti -liniare, conve#e, continui,
difereniabile etc/ iar poate fi orice submulime a lui R
n
-continu sau discret, mrginit sau
nemrginit, conve# sau neconve#, finit sau infinit etc/ i n care dorim s gsim minimul sau
ma#imul funciei f n variabilele #
i
care ndeplinesc restriciile '.( i '.>. @ astfel de problem se
numete problem de programare matematic.
5uncia -'.'/ se numete funcia obiectiv a problemei de optimizare. 9n aplicaiile
economice, ea reprezint criteriul de performan urmrit4 ma#imizarea beneficiului, ma#imizarea
produciei marf, minimizarea costului produciei, ma#imizarea gradului de ncrcare al utila8elor
sau minimizarea timpului de staionare al acestora, ma#imizarea veniturilor etc.
<negalitile -'.(/, n care g
i
sunt funcii de n variabile iar b
i
sunt constante, se numesc
restricii ale problemei de optimizare. 0le traduc n limba8 matematic condiiile de natur economic
sau te+nologic n care se desfoar procesul economic modelat, cum ar fi4 nedepirea stocurilor
(A
Bazele cercetrii operaionale
disponibile de resurse -materii prime, capaciti de producie, for de munc, fonduri bneti, timp
etc/, ndeplinirea sau depirea unor indicatori economici -producia fizic, net/ etc.
?ondiiile -'.>/, impuse "direct" variabilelor, depind de natura problemei studiate. 7e cele
mai multe ori, este mulimea vectorilor # . -#
l
,...,#
n
/ R
n
cu toate componentele nenegative i
acest fapt se 8ustific prin aceea c, n general, #
i
reprezint "nivelele" unor activiti de producie,
nivele care nu pot fi negative. 9n unele probleme de optimizare, cum ar fi cele de croire sau
ordonanare, variabilele desemneaz mrimi indivizibile i deci nu pot lua dec!t valori ntregi.
Mulimea va fi format n acest caz din vectori # cu toate componentele ntregi i nenegative. 9n
alte probleme, ca de pild cele de afectare, portofoliu etc, variabilele nu pot lua dec!t valorile ; sau
' -variabile bivalente/ i ca atare va fi format din vectorii # . -#
'
, B,#
n
/ cu toate componentele ;
sau '. ?aracteristic acestor tipuri de probleme este faptul c devine o submulime discret din R
n
,
de unde i numele generic de probleme de optimizare discret dat acestora.
@ soluie a unei astfel de probleme are deci trei proprieti4
2'. verific restriciile '.(
2(. verific restriciile "directe" '.>
2>. optimizeaz funcia obiectiv pe mulimea vectorilor care ndeplinesc condiiile 2'. i 2(.
9n teoria programrii matematice se folosesc, pentru claritatea i simplitatea e#punerii,
urmtoarele noiuni4
soluie a problemei de optimizare .
un vector # R
n
care verific restriciile '.(
soluie admisibil a problemei de optimizare . un vector # R
n
care verific restriciile '.( i '.>
o soluie care verific restriciile '.>
soluie optim a problemei de optimizare . un vector # R
n
care verific restriciile '.( i
'.> i optimizeaz funcia obiectiv pe mulimea
tuturor vectorilor cu aceast proprietate
o soluie care verific restriciile '.> i
optimizeaz funcia obiectiv pe mulimea
tuturor soluiilor cu aceast proprietate
o soluie admisibil care optimizeaz
funcia obiectiv pe mulimea soluiilor
admisibile
<zvor!t din studiul problemelor e#tremale ale analizei matematice clasice, programarea
matematic a cunoscut n ultimele decenii o dezvoltare spectaculoas, e#plicabil numai n parte
prin progresele nregistrate n matematic. 9ntr-adevr, aceast dezvoltare a fost puternic stimulat
de creterea vertiginoas a comple#itii activitilor economice, care a furnizat probleme cu
structuri din ce n ce mai complicate, ca i de rapida perfecionare a mi8loacelor automate de calcul,
singurele capabile s testeze eficiena practic a metodelor teoretice elaborate. ,a r!ndul ei,
programarea matematic, prin rezultatele ei, a adus un considerabil aport la perfecionarea
metodelor de conducere n economie i a impulsionat cercetrile - n plan teoretic - privind
modelarea sistemelor economice comple#e, studiul i interpretarea legilor i proceselor economice.
9n ceea ce privete rezolvarea acestor probleme, este evident c varietatea e#trem a acestora
face imposibil gsirea unui algoritm practic care s le poat rezolva pe toate, dar putem gsi -sau
ne putem atepta s gsim/, pentru fiecare caz particular, un algoritm de rezolvare care s-i trag
eficacitatea tocmai din folosirea tuturor particularitilor cazului respectiv. 9n prezent e#ist sute de
algoritmi de rezolvare, cercetarea problemei evolu!nd din ce n ce mai mult spre testarea i
mbuntirea acestora dec!t spre gsirea unora noi.
(C
2rogramarea liniar
Problema de programare liniar
Definiia '. 7ac ntr-o problem de programare matematic funcia obiectiv f i funciile g
i
,
din restriciile '.(, sunt funcii liniare atunci problema se numete problem de programare liniar.
@ problem de programare liniar este, deci, un caz particular al problemelor de programare
matematic i, in!nd cont de forma oricrei funcii liniare, rezult c forma general a oricrei
probleme de programare liniar este4
( )

'

+ + +
+ + +
oarecare
;
;
# ,..., # , #
n ',..., i b # a ... # a # a
# c ... # c # c min ma#
n ( '
i n in ( i( ' i'
n n ( ( ' '
f
unde c
8
-coeficienii funciei obiectiv/, a
i8
-coeficienii restriciilor/ i b
i
-termenii liberi/ sunt
constate reale.
orma conic !i "orma standard a unei probleme de programare liniar
?u toate c problema de programare liniar este cea mai simpl dintre problemele de
programare matematic, ea este nc destul de complicat, prin faptul c orice restricie poate avea
trei forme diferite iar obiectivul poate fi minimizarea sau ma#imizarea funciei f. 0ste puin probabil
c e#ist un algoritm i simplu i aplicabil la toate cazurile.
7in acest motiv este mult mai simplu s gsim o anumit form -c!t mai simpl/ cu
proprietatea c pentru orice problem 2, e#ist o alta problem 2D de aceast form, ec+ivalent cu
problema iniial 2 -spunem c dou probleme sunt ec+ivalente dac e#ist un izomorfism ntre
mulimile soluiilor celor dou probleme i un +omeomorfism ntre funciile lor obiectiv/ i s
dispunem de un algoritm care s rezolve problemele de aceast form i de o regul prin care s
gsim soluia problemei iniiale 2 din soluia problemei 2D, gsit cu acest algoritm.
9n acest sens -dar i din cauza frecvenei apariiei lor n practic/ s-au evideniat dou forme
ale problemelor de programare liniar, "orma canonic i "orma standard.

Definiia (. $punem c o problem este la "orma canonic dac are una din urmtoarele
dou forme4
5orma canonic de minim 5orma canonic de ma#im
( )

'

+ + +
+ + +
; # ,..., # , #
n ',..., i b # a ... # a # a
# c ... # c # c min
n ( '
i n in ( i( ' i'
n n ( ( ' '
f ( )

'

+ + +
+ + +
; # ,..., # , #
n ',..., i b # a ... # a # a
# c ... # c # c ma#
n ( '
i n in ( i( ' i'
n n ( ( ' '
f
&ceast form este cel mai des nt!lnit n practic -vezi problema determinrii structurii
sortimentale optime a produciei sau problema dietei/ i, n plus, restriciile economice sunt n
general inegaliti i foarte rar egaliti. 7e asemenea, aceast form este invariant la anumite
transformri -vezi problema dual/ i asigur e#istena soluiei -orice problem la aceast form,
care are termenii liberi i coeficienii restriciilor pozitivi, are soluie/.
(E
Bazele cercetrii operaionale
Definiia >. $punem c o problem este la "orma standard dac are forma4
( ) ( )

'

+ + +
+ + +
; # ,..., # , #
n ',..., i b # a ... # a # a
# c ... # c # c ma# sau min
n ( '
i n in ( i( ' i'
n n ( ( ' '
f
&ceast form, dei nenatural din punct de vedere economic, este cea care se preteaz cel
mai bine la rezolvarea cu metodele algebrei clasice.
Propoziie. 2entru orice problem de programare liniar 2 e#ist o problem la forma
canonic 25? i o problem la forma standard 25$ ec+ivalente cu 2.
Demonstraie. 9ntr-adevr4
a/ orice problem de ma#im poate fi transformat n una de minim i reciproc folosind relaia4
ma# f-#/ . min f-#/
b/ orice restricie de tipul "" poate fi transformat ntr-o restricie de forma "" i reciproc
folosind relaia4

c/ orice restricie inegalitate poate fi transformat n egalitate, prin introducerea unei variabile
suplimentare nenegative i folosind relaiile4

'

+
; #
#
i

'


; #
#
"oate variabilele introduse pentru transformarea inegalitilor n egaliti se numesc #ariabile de
abatere sau #ariabile de compensare.
d/ orice restricie egalitate poate fi transformat n restricii inegalitate, folosind relaia4
.

'



e/ orice variabil cu restricie de semn negativ -# ;/ poate fi nlocuit cu o variabil cu restricie
de semn pozitiv -F ;/, folosind relaia4
# ;

'

; F
F - #

f/ orice variabil fr restricie de semn poate fi nlocuit cu dou variabile cu restricie de semn
pozitiv, folosind relaia4
# oarecare

'

; z
; F
z - F #
(G
2rogramarea liniar
$e demonstreaz fr un efort matematic deosebit c dac 2D se obine din 2 folosind doar
transformrile de mai sus -numite i transformri elementare/ atunci 2 i 2D sunt dou probleme
ec+ivalente i ntre soluiile lor optime e#ist o bi8ecie.
7in cele de mai sus rezult cum poate fi adus orice problem de programare liniar la
forma standard -sau canonic/ i cum se obine soluia problemei iniiale din soluia problemei la
forma standard -sau canonic/.
Exemplu4 2roblemei 2 de mai 8os i corespunde problema la forma standard 25$ alturat4
2 25$
-min/ f . >#
'
(#
(
: A#
>

'


+ +

+ +
+ +
; # oarecare, # , ; #
>' # C # >; # >
(' # 'A # G # G
H # E # >E # 'H
'E # 'C # '> # H
> ( '
> ( '
> ( '
> ( '
> ( '
-ma#/ g . :>a
'
: (F
(
(z
(
A#
>

'

+ + +
+ +
+ +
+ + +
; # , # , # , # , # , z , F , a
>' # # C z >; F >; a >
(' # # 'A z G F G a G
H # # E z >E F >E a 'H
'E # # 'C z '> F '> a H
G E C A > ( ( '
G > ( ( '
E > ( ( '
C > ( ( '
A > ( ( '

2roblema 25$ are o singur soluie optim4
a
'
. >, F
(
.
>
A
, z
(
. ;, #
>
. ;, #
A
.
>
GG
, #
C
. ;, #
E
.
>
'CA
, #
G
. ;
care d un ma#im al funciei g egal cu
>
>C
.
&cestei soluii i corespunde singura soluie optim pentru 24
#
'
. ->, #
(
.
>
A
, #
>
. ;
care d un minim al funciei f, egal cu
>
>C

.
Rezol#area problemei de programare liniar$
Analiza problemei
5ie o problem 2 despre care presupunem -fr a restr!nge generalitatea/ c a fost adus la
forma standard. 7e asemenea presupunem -tot fr a restr!nge generalitatea/ c variabilele
problemei au fost numerotate i denumite #
8
cu j . ',...,n -n . numrul de necunoscute/, coeficienii
variabilelor din funcia obiectiv f cu c
j
-c
j
. coeficientul variabilei #
8
/, c n ecuaii variabilele apar
n ordinea indicilor, ecuaiile fiind numerotate de la ' la m -m . numrul de ecuaii/ i c am notat
cu b
i
termenul liber al ecuaiei i i cu a
i8
coeficientul variabilei 8 din ecuaia i. 9n acest caz putem
aeza variabilele problemei ntr-un vector cu n componente, coeficienii funciei obiectiv ntr-un
vector cu n componente, termenii liberi ntr-un vector cu m componente, coeficienii variabilelor
din ecuaii ntr-o matrice cu m linii i n coloane i vom avea4
# .

,
_

n
(
'
#
#
#

, c .

,
_

n
(
'
c
c
c

, b .

,
_

n
(
'
b
b
b

, & .

,
_

mn m( m'
(n (( ('
'n '( ''
a a a
a a a
a a a

(I
Bazele cercetrii operaionale
-vom nota cu #
"
, c
"
i b
"
transpuii acestor vectori i cu &
"
transpusa matricei &/.
&legerea aezrii ca vectori coloan a fost fcut din raiuni de uurin a calculelor i a
memorrii acestora. 7up aceste notaii, problema poate fi scris mult mai simplu4
( )

'



; #
b # &
# c min
"
f
sau
( )

'



; #
b # &
# c ma#
"
f
$e tie c un sistem de forma &# . b are soluie doar dac rang-&/ . rang- &/, unde &
este matricea e#tins obinut adug!nd matricei & vectorul b, n acest caz sistemul devenind
ec+ivalent cu sistemul obinut prin eliminarea restriciilor care nu corespund minorului principal
-dac sistemul nu are soluie atunci evident nici problema nu are soluii, caz care este total
neinteresant/.
2resupunem c au fost eliminate aceste restricii. 7ac rang & . n atunci sistemul are o
singur soluie care, dac este admisibil, este i soluia optim cutat, altfel problema nu are
soluie. 0ste evident c i acest caz este la fel de neinteresant ca primul.
2resupunem deci n continuare c4
rang%A& ' m ( n
*ezolvarea sistemului &# . b se poate face ntr-un mod simplu -cel puin teoretic/ folosind
algebra matricial astfel4
mprim coloanele matricei & n dou submatrici4 minorul principal -notat cu B, care
este o matrice ptratic de dimensiune m i va fi numit baz a sistemului/ i restul
coloanelor -notat cu $, care este o matrice cu m linii i n m coloane/1
mprim variabilele problemei n doi vectori4 vectorul variabilelor principale
-corespunztoare coloanelor bazei/ i vectorul variabilelor secundare -notat cu #
$
/.
5c!nd eventual o renumerotare, pentru uurina e#punerii i fiind evident c nu se
restr!nge generalitatea problemei, presupunem c variabilele principale sunt c+iar
primele m -aceast presupunere va fi fcut de c!te ori va fi posibil, fr a mai specifica
acest lucru/.
aducem succesiv sistemul la forma de mai 8os4
&# . b -B$/

,
_

$
B
#
#
. b B#
B
: $#
$
. b B#
B
. b $#
$
#
B
. B
-'
b B
-'
$#
$
soluia sistemului va fi submulimea lui R
n
4
7
B
. %# . %#
B
,#
$
) 6 #
$
R
n-m
oarecare, #
B
. B
-'
b B
-'
$#
$
)
@rice alegere a lui #
$
d o soluie. 7intre toate alegerile posibile este remarcabil -prin
simplitatea ei/ soluia #
$
. ;, care duce la soluia particular4
x
B
.

,
_


;
;
;
b B
'

numit soluia de baz asociat bazei ). 7eci #


B
este x
B
. B
-'
b la care se adaug n-m
zerouri. ?u toate acestea, vor fi ambele numite soluie de baz, rezult!nd din conte#t de care
(H
n m zerouri
2rogramarea liniar
este vorba.
Observaie4 0ste evident c fiecrui minor principal al sistemului -. minor de
dimensiune m . baz/ i corespunde o unic soluie de baz. @ soluie de baz care are toate
componentele nenule strict pozitive se va numi soluie de baz admisibil iar o soluie
optim care este de baz se va numi soluie optim de baz. $e observ c o soluie de baz
are cel mult m componente diferite de ;. 7in cauza importanei lor n rezolvarea problemei,
vom evidenia soluiile de baz care au mai puin dec!t m componente nenule, numite soluii
degenerate i pe cele care au fi# m elemente nenule, numite soluii nedegenerate.
7
B
este izomorf cu R
n
, adic are tot at!tea elemente c!te puncte sunt ntr-un spaiu cu n
J

J
m dimensiuni. "&leg!ndu-le" din acestea doar pe cele cu toate elementele pozitive, gsim
mulimea n care vom "cuta" vectorul -vectorii/ care d -dau/ e#tremul lui f.
*ezolvarea problemei poate duce la urmtoarele rezultate4
*'. $istemul &# . b nu are soluii sau nu are soluii admisibile. 9n acest caz problema nu
are soluie.
*(. <maginea funciei obiectiv pe mulimea soluiilor admisibile este nemrginit -la :
ntr-o problem de ma#im sau la - ntr-o problem de minim/. 9n acest caz spunem
c problema are optim infinit.
*>. <maginea funciei obiectiv pe mulimea soluiilor admisibile este mrginit. 9n acest
caz problema are cel puin o soluie i spunem c problema are optim finit.
Kreutatea gsirii soluiei problemei const n imensitatea numrului de soluiilor posibile ale
sistemului i n respectarea condiiei de nenegativitate a celor printre care cutm e#tremul dorit al
funciei f. 0ste natural ca primele ncercri n rezolvare s caute n primul r!nd o limitare c!t mai
puternic a locului n care cutm. 2e baza unor reprezentri geometrice ale problemei au fost
descoperite urmtoarele proprieti ale problemei, care poart denumirea de teoreme "undamentale
ale programrii liniare4
Teorema '. 7ac problema de programare liniar are soluii admisibile atunci are i soluii
de baz admisibile.
Teorema (. 7ac problema de programare liniar are soluii optime atunci are i soluii
optime de baz.
Teorema >. Mulimea soluiilor admisibile -optime/ este nc+is i conve#. 7ac este i
mrginit atunci punctele e#tremale ale acesteia sunt c+iar soluiile admisibile
-optime/ de baz ale problemei.

?ele dou teoreme realizeaz efectiv trecerea ctre o problem rezolvabil pe calculator.
9ntr-adevr, deoarece o baz este un minor de ordinul m al matricii & i unei baze i corespunde o
unic soluie de baz rezult c sunt cel mult
m
n
? soluii de baz, adic un numr finit. 9n acest
moment s-ar prea c nu avem dec!t s lsm calculatorul s calculeze toate soluiile de baz i
valorile funciei obiectiv n cele admisibile gsind-o prin comparare pe cea care d minimul sau
ma#imul funciei printre acestea. "otui, aceast variant se dovedete nepractic la o analiz mai
atent, in!nd cont de urmtoarele observaii4
'. faptul c numrul soluiilor de baz este finit ne asigur doar c problema se va termina
c!ndva, ceea ce, din punct de vedere economic, este evident nemulumitor. 3oi dorim ca
problema s fie rezolvat n timp util, adic repede. *ezolv!nd problema ca mai sus vom
avea, pentru o problem cu C; variabile i (; restricii, de calculat, listat i comparat
(;
C;
? soluii de baz, adic n 8ur de ';
(;
. 2resupun!nd c suntem dotai cu un
supercalculator care ar termina un miliard de baze pe secund, rezolvarea ar dura >;;;
>;
Bazele cercetrii operaionale
ani. 7e altfel, o problem ca cea de sus este foarte mic n comparaie cu problemele
"serioase" ce au peste ';;; de variabile i ';; de restricii. 9n plus, un calculator ca cel
de sus nu e#ist nc, deci n nici un caz nu e disponibil ntreprinderilor obinuite.
(. ?u algoritmul de mai sus vom gsi cea mai bun soluie dintre soluiile admisibile de
baz, fr ns s tim dac problema admite, de fapt, optim -ar putea s aib optim
infinit/.
>. 3u vom ti dac un minor de mm este baz dec!t dup ce-i vom calcula determinantul
i nu vom ti dac soluia de baz corespunztoare este admisibil dec!t dup ce o vom
calcula.
A. $oluia optim, odat gsit, nu va fi recunoscut ca atare dec!t dup ce vom calcula
toate celelalte soluii de baz, c+iar dac ea a aprut c+iar la nceputul calculelor.
9n concluzie, pentru a fi eficient, un algoritm ar trebui s aib urmtoarele proprieti4
a/ s dispun de un criteriu de recunoatere a faptului c problema nu are soluii admisibile1
b/ s dispun de un criteriu de recunoatere a faptului c problema are optim infinit1
c/ s dispun de un criteriu de recunoatere dac o soluie este optim sau nu1
d/ s treac de la o soluie de baz admisibil la una cel puin la fel de bun -o soluie # este
mai bun dec!t o soluie F dac f-#/ L f-F/ ntr-o problem de ma#im i f-#/ M f-F/ ntr-o
problem de minim1
e/ s treac de la o soluie la cea mai bun dintre soluiile cel puin la fel de bune posibile
ca succesoare1
f/ s nu revin la o soluie de8a analizat1
g/ s efectueze un numr de iteraii comparabil polinomial cu dimensiunea problemei.
+/ s nu introduc erori de rotun8ire -sau nu prea mari/1
i/ s fie c!t mai simplu de implementat1
?ondiiile de mai sus reprezint de fapt un algoritm ideal. ,a nceputurile cercetrii
operaionale era suficient, de fapt, i un algoritm care s ndeplineasc mcar condiiile b/, c/, d/, e/
i +/. &cest algoritm a fost dat de K.B. 7antzig, n 'HAG, care la numit algoritmul simple*. 0l
rm!ne i n zilele noastre cel mai eficient algoritm n ceea ce privete viteza de lucru, simplitatea i
implementarea pe calculator, pentru problemele care apar efectiv n practica economic.
"otui, el nu ndeplinea condiiile a/, f/ i g/.
?ondiia a/ este relativ uor de ndeplinit i ea este acoperit prin introducerea unei faze
iniiale suplimentare la algoritmul simple#, rezult!nd algoritmul simple* +n dou "aze.
?ondiia f/ a fost pus n momentul n care s-a observat c, n condiiile e#istenei soluiilor
degenerate, se poate a8unge n situaia c!nd, de la o soluie dat, nu se poate a8unge dec!t la una la
fel de bun i tot aa, astfel nc!t, dac nu se iau msuri de evitare, se poate a8unge la o soluie care
a mai fost, fenomen numit ciclare. &stfel de e#emple a fost efectiv gsite, unul fiind e*emplul lui
)eale prezentat mai 8os4
( )

'


+
+ +
+ +
+
G ,..., ' i , ; #
' # #
; ># #
(
'
'(# #
(
'
#
; H# # I# #
A
'
#
# E #
(
'
# (; #
A
>
ma#
i
E >
G E C A (
G E C A '
G E C A
f
>'
2rogramarea liniar
$e observ imediat baza admisibil B
;
. -a
'
,a
(
,a
>
/, de la care, aplic!nd algoritmul sub forma
clasic, se vor obine succesiv bazele admisibile B
'
. -a
A
,a
(
,a
>
/, B
(
. -a
A
,a
C
,a
>
/, B
>
. -a
E
,a
C
,a
>
/, B
A
.
-a
E
,a
G
,a
>
/, B
C
. -a
E
,a
(
,a
>
/, B
E
. -a
A
,a
(
,a
>
/ ... . ?ititorul poate verifica uor c toate aceste baze au ca
soluie de baz soluia -;,;,',;,;,;,;/ i valoarea funciei ;, dar nu ndeplinesc condiia de optim. 2e
de alt parte se vede c B
E
. B
'
i deci algoritmul va repeta la infinit aceast succesiune de baze,
neating!nd niciodat valoarea ma#im
A
G
, corespunztoare soluiei -
A
>
,;,;,',;,',;/.
&ceast situaie este ngri8ortoare nu at!t din considerente practice imediate -nc nu a fost
gsit o problem din practic la care s apar acest fenomen, toate e#emplele e#istente fiind
artificial construite, ca i cel de mai sus/ c!t din faptul c un algoritm implementat pe calculator s-ar
putea s fie pus n faa unei astfel de probleme, situaie n care n-am putea rezolva problema nici pe
calculator, nici manual, ea fiind prea mare. $ituaia a fost depit prin diferite te+nici suplimentare
adugate celei de trecere la o soluie cel puin la fel de bun -insuficient, cum s-a vzut/, cea mai
cunoscut fiind cea care folosete ordonarea le*icogra"ic a soluiilor, care va fi prezentat i n
aceast carte.
9n fine, referitor la condiia g/, a durat mult timp p!n s-a demonstrat c algoritmul, sub
aceast form, nu este +n timp polinomial, un e#emplu fiind clasa de probleme de mai 8os, gsit
de Nlee i MintF n 'HG(, n care algoritmul trebuie s analizeze (
n
baze -n . numrul de
necunoscute/ p!n la gsirea celei optime.
( )

'

,
_

n ',..., 8 ; #
n ',..., i ';; # # '; (
# '; ma#
8
' - i
i
' - i
' 8
8
8 - i
n
' 8
8
8 - n
f
2entru o astfel de problem, la ';; de variabile, algoritmul va avea (
';;
';
>;
iteraii, i
c+iar la o vitez de un miliard iteraii pe secund -mult peste puterea unui calculator actual/ va
termina n ';
'>
ani.
3u se tie nc dac e#ist sau nu o alt modalitate de trecere de la o baz la alta, folosind
tabelele simple#, prin care algoritmul s devin n timp polinomial. &u fost ns gsii algoritmi
care nu folosesc tabelele simple#, primul fiind algoritmul de punct interior al lui Narma=ar, despre
care s-a demonstrat c lucreaz n timp polinomial.
9n ceea ce privete erorile de rotun8ire, inevitabile c!nd se fac calculele pe un calculator,
algoritmul se comport ntr-adevr foarte ru, orice eroare propag!ndu-se imediat la tot tabelul cu
efecte foarte mari. &cest lucru poate fi ns depit aplic!nd o variant a algoritmului, numit
varianta revizuit a algoritmului simple#.
"oate punctele slabe ale algoritmului, amintite mai sus, nu au nmorm!ntat ns algoritmul
simple#, deoarece folosirea acestuia aduce informaii mult mai ample dec!t gsirea soluiei propriu-
zise, este mult mai maleabil n cazul modificrilor ulterioare ale datelor problemei -vezi analiza
senzitivitii soluiei la datele problemei/, se preteaz mult mai bine la interpretri economice, este
uor de scris un program de calculator asociat, este implementat pe foarte multe calculatoare i n
plus, aa cum aminteam mai sus, nc nu a aprut o problem practic n faa cruia s clac+eze.
3oii algoritmi rm!n doar ca alternative teoretice sau pentru cazurile n care algoritmul simple# este
lent, dar ei nu-l pot nlocui complet.
undamentarea matematic a algoritmului simple*
>(
Bazele cercetrii operaionale
&lgoritmul simple# pleac de la presupunerea c dispunem de,a de o soluie admisibil de
baz #
B
, corespunztoare unei baze B. 7e asemenea, presupunem c am rezolvat sistemul &# . b
folosind aceast baz, rezult!nd astfel variabilele principale n funcie de cele secundare4
#
B
. B
-'
b B
-'
$#
$
9nlocuind variabilele, cu formula gsit, n funcia obiectiv, obinem4
f-#/ .
"
B
c -B
-'
b B
-'
$#
$
/ :
"
$
c #
$
.
"
B
c B
-'
b -
"
B
c B
-'
$
"
$
c /#
$
.
. f-x
B
/ -
"
B
c B
-'
$
"
$
c /#
$
. f-x
B
/ -z
"
$
c /#
$
. f-x
B
/ #
$

unde4
f-x
B
/ .
"
B
c B
-'
b este valoarea funciei obiectiv n soluia de baz

"
B
c B
-'
$ . z este un vector n-m componente z . -z
m:'
, z
m:(
,...,z
n
/.
. z
"
$
c este un vector n-m componente . -
m:'
,
m:(
,...,
n
/

@binem urmtoarea form a problemei4
( ) ( ) ( )

'

+
+
n ',..., 8 , ; #
m ',..., i # a #
# min sau ma#
8
n
' m 8
i 8 i8 i
n
' m 8
8 8
B
x
x f f
7in motive de organizare i concentrare a datelor problemei, 7anzig le-a trecut pe acestea
ntr-un tabel ca cel de mai 8os, numit tabel simple*.
c
'
c
(
... c
m
c
m:'
... c
n
c
B
#
B
x
B
#
'
#
(
... #
m
#
m:'
... #
n
c
'
c
(

c
m
#
'
#
(

#
m
B
-'
b <
m
B
-'
$
f-x
B
/ ; z
m:'
... z
n
;
m:'
...
n
5iecrei soluii de baz i corespunde un tabel simple# i reciproc, deci, de fiecare dat c!nd
vom vorbi de un tabel simple#, vom spune i care este baza asociat.
7in forma funciei obiectiv se vede c4
ntr-o problem e maxim4
x
B
este soluie optim
( )

+

n
' m 8
8 8
B
# x f
( )
B
x f oricare ar fi #
$
;

+

n
' m 8
8 8
#
; oricare ar fi #
$
;
8
;, 8 . ',...,n -toi
,
sunt poziti#i/
ntr-o problem e minim4
x
B
este soluie optim
( )

+

n
' m 8
8 8
B
# x f
( )
B
x f oricare ar fi #
$
;
>>
2rogramarea liniar

+

n
' m 8
8 8
#
; oricare ar fi #
$
;
8
;, 8 . ',...,n -toi
,
negati#i/
2entru a evita complicarea e#punerii vom presupune n continuare c problema este e
maxim, pentru cazul de minim raionamentul fiind analog.
*ezultatul obinut reprezint criteriul de recunoatere a optimalitii soluiei sau, mai simplu,
criteriul de optim.
7ac soluia nu este optim atunci e#ist evident o alt soluie de baz admisibil mai bun.
$e poate demonstra c dac # i F sunt dou soluii admisibile de baz cu f-#/ f-F/ i numrul de
variabile principale prin care difer cele dou este =, cu ' = m, atunci e#ist un ir de soluii
admisibile de baz4 %#
'
. #, #
(
, ..., #
=
. F) astfel nc!t4
'. f-#
i
/ f-#
i:'
/ oricare ar fi ' i M =
(. #
i
difer de #
i:'
printr-o singur variabil, oricare ar fi ' i M =
7in cele de mai sus rezult c e suficient s cutm o soluie de baz admisibil mai bun
doar printre cele care difer de cea actual printr-o singur variabil.
"rebuie deci s gsim acea variabil principal care iese din baz i acea variabil secundar
care intr n baz. *ezultatul sc+imbrii trebuie s fie4
'. o soluie de baz -deci coloanele corespunztoare noii variabile s formeze un minor
principal/1
(. o soluie admisibil -adic s aib toate componentele pozitive/1
>. o soluie mai bun1
A. cea mai bun posibil dintre soluiile mai bune.
2resupunem c nlocuim variabila principal #
i
-' i m/ cu variabila secundar #
8
-m:' 8
m/. &ceasta este ec+ivalent cu a scoate din ecuaia i -singura n care apare #
i
/ variabila #
8
, n
funcie de variabila #
i
i de celelalte variabile secundare. 0ste evident c acest lucru -care este
ec+ivalent cu faptul c noua soluie trebuie s fie de baz/ este posibil doar dac coeficientul lui #
8
din aceast ecuaie este diferit de ; -a
i,
-/. 9n acest caz avem succesiv4
#
i
:

n
8 =
' m =
= i=
# a
: a
i,
#
8
. x
i
#
8
:

n
8 =
' m =
=
i8
i=
#
a
a
:
i8
a
'
#
i
.
i8
a
'
x
i

#
8
.
i8
a
'
x
i

n
8 =
' m =
=
i8
i=
#
a
a

i8
a
'
#
i
9nlocuind variabila #
j
n celelalte ecuaii obinem4
#
s
:

n
8 =
' m =
= s=
# a
: a
s8
-
i8
a
'
x
i

n
8 =
' m =
=
i8
i=
#
a
a

i8
a
'
#
i
/ . x
s

#
s
:

,
_


n
8 =
' m =
=
i8
i=
s8 s=
#
a
a
a a

i8
s8
a
a
#
i
. x
s

i8
s8
a
a
x
i
pentru s . ',...,m i s i
?onform formulelor de mai sus rezult c noua soluie de baz este admisibil dac4
>A
Bazele cercetrii operaionale
x
s

i8
s8
a
a
x
i
; oricare ar fi s .',...,m diferit de i
s,
s
a
x

i,
i
a
x
oricare ar "i s './$$$/m/ s i
i n urma sc+imbrii noua soluie de baz va fi4
8
x
.
i8
a
'
x
i
i
s
x
. x
s

i8
s8
a
a
x
i
pentru s i
9n concluzie, dac ne +otr!m s introducem n baz variabila 8, singura #ariabil care o
poate +nlocui %pentru ca noua soluie s "ie admisibil de baz& nu poate fi dec!t aceea care
corespunde acelui a
i8
strict poziti# din coloana 8 din matricea B
-'
$, pentru care se obine valoarea
minim a rapoartelor dintre componentele soluiei de baz actuale i componentele coloanei 8.
2entru evidenierea acestora, ele se noteaz cu
s
i avem4

i
'

,
_

>

s,
s
- a
m s .
a
min
i,
x
s

?ondiia de mai sus este numit criteriul de ie!ire din baz.


Mai nainte am vzut ce efect are sc+imbarea unei variabile din baz asupra sistemului. 0ste
important ns s vedem efectul ei i asupra funciei obiectiv. Valoarea funciei obiectiv n noua
soluie de baz va fi4
f-
B
x / .
( )
8 8
B
# x f
.
( )
i
i8
8
B
a
'
x x f
2entru ca aceast soluie s fie cel puin la fel de bun trebuie ca4
f-
B
x / f-x
B
/
( )
i
i8
8
B
a
'
x x f
f-x
B
/
;
a
'
i
i8
8
x

; a
;
i8
i

x

8
;
9n concluzie, dac vrem s obinem o soluie strict mai bun vom alege o variabil #
8
corespunztoare unui
8
M ;. 3oua soluie va e#ista efectiv doar dac pe coloana 8 din matricea B
-'
$
e#ist o component a
i8
strict pozitiv i va fi efectiv strict mai bun doar dac componenta
corespunztoare x
i
din soluia de baz este diferit de ;, mbuntirea fiind egal cu i
i8
8
a
'
x
.
$ituaia n care toate componentele coloanei 8 din matricea B
-'
$ sunt mai mici sau egale cu
; este lmurit de urmtoarea teorem4
Teorem4 7ac pe coloana 8 din matricea B
-'
$, corespunztoare unei variabile #
8
cu
,
( -,
toate componentele sunt mai mici sau egale cu zero atunci problema are optim in"init.
Demonstraie4 5ie o soluie particular a sistemului, n care variabila secundar #
8
. L ;,
oarecare iar celelalte sunt ;. 9n acest caz, variabilele principale vor fi4 !
i
. x
i
a
i8
i vor fi toate
pozitive, in!nd cont de faptul c toi a
i8
; i, deci, soluia va fi admisibil. 2entru o astfel de
soluie, valoarea funciei obiectiv este4
f-!

/ . f-x
B
/
8
. i avem4
( ) +

! f lim

deci imaginea funciei f este nemrginit i afirmaia este demonstrat.
2resupunem n continuare c e#ist o component a
i8
strict pozitiv. 7eoarece dorim s
trecem la cea mai bun dintre bazele posibile, vom alege dintre toate variabilele cu
8
M ;, pe cea
pentru care se obine4
>C
2rogramarea liniar

,
_


>

<
+
i8
i
; a
m i '
8
;
n 8 ' m
a
min ma#
i8
8
x
&ceast condiie este criteriul de intrare +n baz.
7eoarece calculul necesar gsirii acestuia este laborios, 7anzig a preferat nlocuirea acestei
alegeri cu alegerea acelui 8 care corespunde celui mai negativ
8
-.
( )
8
;
n 8 ' m
8
ma#
<
+
/, variant care
este uor de aplicat, mbuntete soluia i prin care se obine, n marea ma8oritate a cazurilor,
acelai 8.
9n acest moment tim cum s gsim o soluie mai bun, dac ea e#ist i am putea calcula
din nou elementele necesare analizrii noii soluii, din tabelul simple#, folosind formulele fiecruia4
x
B
. B
-'
b
z .
"
B
c B
-'
&
. z c
&cest mod de lucru este efectiv folosit n anumite variante ale algoritmului simple# -vezi
forma revizuit/ dar el presupune calcularea inversei matricei B, ceea ce necesit foarte mult timp.
&cest motiv era suficient de convingtor pentru ca 7anzig s-i fi pus problema dac nu cumva
noul tabel simple# poate fi calculat pe baza fostului tabel simple#, fc!nd mult mai puine calcule i
utiliz!nd formule uor de memorat i aplicat. &ceast ntrebare era natural de pus, dac inem cont
c noua soluie difer de fosta soluie printr-o singur variabil. &ceste formule au fost efectiv
gsite, ele put!nd fi obinute urmrind efectul nlocuirii lui #
i
cu #
8
asupra sistemului4
noua soluie de baz
B
x
se obine din fosta soluie cu formulele de8a gsite mai sus4
8
x
.
i8
a
'
x
i
i
s
x
. x
s

i8
s8
a
a
x
i
pentru s i

noii coeficienii ai variabilelor n cele m ecuaii vor fi4
'. variabil principal #
s
va avea coeficientul ' n ecuaia = i ; n celelalte ecuaii1
(. o variabil secundar #
=
, diferit de #
i
, va avea coeficienii
i8
i=
s8 s=
a
a
a a
n ecuaiile
s i i coeficientul
i8
i=
a
a
n ecuaia i.
>. noua variabil secundar #
i
va avea coeficienii
i8
s8
a
a
n ecuaiile s i i coeficien-
tul
i8
a
'
n ecuaia i.
A. noua valoare a funciei obiectiv va fi4 f-
B
x / .
( )
i
i8
8
B
a
'
x x f
C. noii
8
i obinem nlocuind n funcia obiectiv variabila #
8
n funcie de #
i
4
>E
Bazele cercetrii operaionale
f-#/ . f-
B
x /

+

n
8 =
' m =
= =
#

8
-

n
8 =
' m =
=
i8
i=
#
a
a

i8
a
'
#
i
:
i8
a
'
x
i
/ .
.
( )
i
i8
8
B
a
'
x x f

,
_


n
8 =
' m =
=
i8
i=
8 =
#
a
a

,
_

i8
8
a
#
i
.
. f-
B
x /

,
_


n
8 =
' m =
=
i8
i=
8 =
#
a
a

,
_

i8
8
a
#
i

de unde rezult c
i8
i=
8 = =
a
a

pentru = i i
i8
8
i
a


7ei par s fie foarte multe formule complicate, frumuseea algoritmului i meritul lui
7anzig const tocmai n faptul c toate respect o regul vizual uor de memorat, numit regula
dreptung0iului, aa cum se va vedea n algoritmul simple#.
ALGORI1M2L 3IMPLE4
*eamintim c presupunem c problema este la forma standard de ma*im i c dispunem de
o soluie de baz admisibil.
Pasul .$ $e construiete tabelul simple# corespunztor bazei de care dispunem n ordinea
urmtoare4
'. pe linia a doua se trec toate variabilele ntr-o ordine oarecare1
(. pe prima linie se trec coeficienii funciei obiectiv, fiecare deasupra variabilei
corespunztoare1
>. se construiete matricea &, fiecare coloan fiind format din coeficienii unei
variabile din toate ecuaiile -ordinea n care se parcurg ecuaiile trebuie s fie aceeai
pentru toate variabilele/, av!nd gri8 ca, coloanele s fie trecute n ordinea n care au
fost trecute variabilele pe linia (1
A. se construiete baza B, ordinea coloanelor fiind cea n care apar ele n matricea &1
C. se calculeaz B
-'
1
E. se calculeaz B
-'
& i se trece n partea central a tabelului1
G. se trec variabilele principale n a doua coloan, n aa fel nc!t, la intersecia liniei i
coloanei corespunztoare acestei variabile, s se afle valoarea '.
I. se trec n prima coloan coeficienii corespunztori variabilelor principale din funcia
obiectiv, fiecare n dreptul variabilei corespunztoare1
H. se calculeaz soluia de baz cu formula B
-'
b, av!nd gri8 ca ordinea n care au fost
trecui termenii liberi n vectorul b s fie aceeai cu ordinea n care au fost parcurse
ecuaiile la formarea matricii &1
';. se trec n a treia coloan valorile variabilelor principale din soluia de baz, fiecare n
dreptul variabilei corespunztoare1
''. se calculeaz f-x
B
/ nmulind dou c!te dou componentele coloanei ' cu cele din
coloana > aflate pe aceeai linie i adun!nd toate produsele ntre ele -adic facem
produsul scalar dintre c
B
i x
B
/1
'(. se calculeaz pe r!nd fiecare z
8
8 . ',...,n un z
8
obin!ndu-se nmulind scalar c
B
cu
coloana 8 din B
-'
& aflat n centrul tabelului -aceast linie se calculeaz i se trece
doar n primul tabel, scopul ei fiind calcularea lui /1
'>. se calculeaz pe r!nd fiecare
8
8 . ',...,n scz!nd din linia lui z linia lui c -
8
. z
8
- c
8
/
>G
2rogramarea liniar
Pasul 5$ $e analizeaz valorile
8
corespunztoare variabilelor secundare -e uor de vzut c
ntotdeauna, cei corespunztori variabilelor principale sunt toi ;, deci neinteresani/.
dac toi sunt mai mari sau egali cu ; atunci soluia actual este cea optim. 7ac
e#ist
8
. ; n afara bazei, atunci pot aprea dou cazuri4
'/ toate elementele din coloana a
8
din B
-'
& sunt mai mici sau egale cu ;. &tunci
toate soluiile de forma x
B
- a
8
sunt soluii optime, unde L ; oarecare1
(/ e#ist o component a
i8
a coloanei a
8
strict pozitiv. &tunci introduc!nd
variabila #
8
n baz n locul variabilei principal #
i
obinem alt soluie de
baz optim.
7ac apar numai cazuri de tipul (/, obinem toate soluiile de baz optime, mulimea
tuturor soluiilor optime fiind format din toate combinaiile conve#e ale acestora.
7ac apare i cazul '/ atunci mulimea soluiilor optime este nemrginit fiind
format din combinaiile conve#e ale soluiilor de forma x
B
- a
8
unde x
B
sunt toate
soluiile optime de baz.
dac e#ist
8
M ; atunci l alegem pe cel mai negativ4
=
.
8
;
n 8 ' m
8
min
<
+
. Variabila #
8
va fi cea care intr n noua baz. 7ac minimul este multiplu atunci alegem, la
nt!mplare, unul dintre acetia -cei minimi/.
Pasul 6$ $e analizeaz elementele coloanei a
8
din B
-'
&, corespunztoare variabilei alese la pasul (.
7ac toate sunt mai mici sau egale cu ; atunci problema are optim infinit i
algoritmul ia sf!rit1
7ac e#ist componente strict pozitive, pentru acestea se calculeaz rapoartele
s
'
s8
s
a
x
$ Variabila #
i
corespunztoare raportului minim este cea care va iei din
baz. 7ac acest minim este multiplu sunt posibile dou cazuri4
'/ minimul este strict pozitiv. 9n acest caz se alege unul dintre acetia la
nt!mplare1
(/ minimul este ;. &tunci x
i
corespunztori sunt ;, deci soluia este
degenerat i noua soluie este la fel de bun. &ceast situaie poate duce
la ciclarea algoritmului i alegerea la nt!mplare nu mai este suficient,
fiind nevoie de o regul de alegere suplimentar care s evite ciclarea. @
metod de alegere se bazeaz pe faptul c, aa cum vom vedea,
ntotdeauna prima baz este matricea unitate i n dreptul ei, n toate
tabelele simple#, se va afla inversa bazei corespunztor fiecruia. 9n acest
caz, pentru poziiile n care s-a obinut minimul +mprim prima coloan
a lui )
7.
la coloana a
,
i alegem minimul dintre aceste rapoarte. 7ac
minimul dintre acetia este tot multiplu continum procedeul, pentru
poziiile ce dau noul minim, cu coloana a doua din B
-'
i aa mai departe,
p!n minimul rm!ne unic. 3u este posibil s se epuizeze toate coloanele
lui B
-'
i minimul s rm!n multiplu, deoarece, n acest caz, am avea4
8 i
8 i
8 i
8 i
(
= (
'
= '
a
b
a
b

, pentru toi indicii 8


=
ai coloanelor lui B
-'
, i
'
i i
(
fiind doi din
indicii care dau acelai minim p!n la sf!rit sau altfel scris
8 i
8 i
8 i
8 i
(
'
= (
= '
a
a
b
b

pentru orice 8
=
liniile i
'
i i
(
din B
-'
sunt proporionale, fapt ce
contrazice faptul c B
-'
este inversabil.
>I
Bazele cercetrii operaionale
Pasul 8$ $e calculeaz componentele tabelului simple# corespunztor noii baze pe baza tabelului
actual i folosind urmtoarele reguli4
'. se ncadreaz elementul a
i8
, aflat la intersecia coloanei variabilei care intr n baz
cu linia variabilei care iese din baz, care a fost numit de 7anzig pi#ot, ntr-un
dreptung+i
(. coloana pivotului va avea ' n dreptul pivotului i ; n rest -inclusiv
8
/1
>. linia pivotului este linia actual mprit la pivot -inclusiv n soluia de baz/1
A. restul elementelor se calculeaz cu regula dreptung+iului -inclusiv soluia de baz,
i f-x
B
//. *egula dreptung+iului se bazeaz pe observaia c n toate formulele
prin care se calculeaz acestea nu apare dec!t valoarea lor actual, pivotul i cele
dou elemente care ar completa dreptung+iul ce are poziia de calculat i pivotul
pe diagonal. *egula dreptung+iului se enun literar astfel4 "noua valoare .
produsul dintre elementele de pe diagonala pivotului minus produsul dintre cele
aflate pe cealalt diagonal totul mprit la pivot". -pentru scurtarea timpului de
lucru se poate observa c elementele unei linii care are ; pe coloana pivotului
rm!n aceleai i de asemenea elementele unei coloane care are ; pe linia
pivotului/
@peraia de calculare a noului tabel prin regulile de mai sus poart denumirea de
pi#otare.
Pasul 9$ $e reia algoritmul de la pasul (.
Exemplu4 5ie problema de programare liniar4
( )

'


+ + + + +
+ + + + +
+ + + + +
+ + + + +
',...,E i , ; #
'' # ( # # ( # ( # >#
'C # ( # > # # > # ( (#
I # # > # # # ( #
# C # > # A # # ( # > ma#
i
E C A > ( '
E C A > ( '
E C A > ( '
E C A > ( '
f
pentru care tim c baza format din coloanele a
'
, a
(
, a
>
este admisibil. 2entru rezolvare vom aduce
problema la forma standard de ma#im introduc!nd variabilele de abatere #
G
, #
I
, #
H
obin!nd4
( )

'


+ + + + + +
+ + + + + +
+ + + + + +
+ + + + +
',...,H i , ; #
'' # # ( # # ( # ( # >#
'C # # ( # > # # > # ( (#
I # # # > # # # ( #
# C # > # A # # ( # > ma#
i
H E C A > ( '
I E C A > ( '
G E C A > ( '
E C A > ( '
f
Vom aeza n tabelul simple# variabilele n ordinea indicilor i vom avea4
>H
2rogramarea liniar
c .

,
_

;
;
;
C
>
A
'
(
>
, & .

,
_

' ; ; ( ' ( ( ' >


; ' ; ( > ' > ( (
; ; ' ' > ' ' ( '
, B .

,
_

( ' >
> ( (
' ( '
, c
B
.

,
_

'
(
>
vom calcula matricea B
-'
.

,
_

G
(
G
C
G
A
G
'
G
'
G
C
G
A
G
>
G
'
i pe baza acesteia soluia de baz x
B
. B
-'
b .

,
_

>
(
'
i matricea B
-'
& .

,
_




G
(
G
C
G
A
G
(
G
'
G
>
' ; ;
G
'
G
'
G
C
G
'
G
''
G
(
; ' ;
G
A
G
>
G
'
G
>
G
(
G
E
; ; '
care se trec n tabelul simple#4
> ( ' A > C ; ; ;
c
B
#
B
x
B
#
'
#
(
#
>
#
A
#
C
#
E
#
G
#
I
#
H
>
(
'
#
'
#
(
#
>
'
(
>
G
(
G
C
G
A
G
(
G
'
G
>
' ; ;
G
'
G
'
G
C
G
'
G
''
G
(
; ' ;
G
A
G
>
G
'
G
>
G
(
G
E
; ; '



i n final se vor calcula valoarea funciei obiectiv n aceast soluie, z
8
i
8
4
> ( ' A > C ; ; ;
c
B
#
B
x
B
#
'
#
(
#
>
#
A
#
C
#
E
#
G
#
I
#
H
>
(
'
#
'
#
(
#
>
'
(
>
G
(
G
C
G
A
G
(
G
'
G
>
' ; ;
G
'
G
'
G
C
G
'
G
''
G
(
; ' ;
G
A
G
>
G
'
G
>
G
(
G
E
; ; '



';
G
I
G
E
G
H
G
'>
G
'G
G
'H
' ( >
G
I
G
E
G
H
G
((
G
A
G
H
; ; ;
A;
Bazele cercetrii operaionale
7in tabel se observ c e#ist
8
M ;, acetia fiind
A
,
C
,
E
,
I
iar minimul lor este
E
.
Observaie 7ac vom cuta acel
8
care d cea mai bun mbuntire vom avea de gsit acel

8
dintre cei negativi pentru care se obine

,
_


>

<

i8
i
; a
> i '
8
;
H 8 A
a
min ma#
i8
8
x
i deci de calculat4
iA
i
; a
> i '
A
a
min
iA
x
>


.

,
_

G
(
G
E
(
,
'
min
G
H
.
(
>
iC
i
; a
> i '
C
a
min
iC
x
>


.

,
_

G
'
G
''
>
,
(
min
G
A
.
''
I
iE
i
; a
> i '
E
a
min
iE
x
>


.

,
_

G
(
G
'
G
>
>
,
(
,
'
min
G
((
.
>
((
iI
i
; a
> i '
I
a
min
iI
x
>


.

,
_

G
C
>
min
G
E
.
C
'I
i n final ma# -
(
>
,
''
I
,
>
((
,
C
'I
/ .
>
((
i corespunde tot lui
E
.
9n concluzie, soluia actual nu este optim i soluia cea mai bun dintre cele posibile ca
succesoare va avea variabila #
E
printre cele principale.
&naliz!nd coloana a
E
observm c e#ist componente strict pozitive -de fapt, n acest caz
sunt c+iar toate/ i calculm pentru acestea rapoartele
i
obin!nd4

'
.
G
>
'
.
>
G
,
(
.
G
'
(
. 'A,
>
.
G
(
>
.
(
('

deci minimul corespunde variabilei #
'
i aceasta este cea care va iei din baz. 9n cest moment
cunoatem noua baz i vom construi tabelul simple# pe baza regulilor de calcul de la pasul A4
'. pivotul este a
'E
.
G
>
A. de e#emplu, pentru elementul de pe poziia a
>A
avem dreptung+iul4
i noua valoare de pe aceast poziie va fi4
G
>
G
(
G
E
G
>
G
>

,
_


. '
9n final, tabelul corespunztor noii baze va fi4
> ( ' A > C ; ; ;
c
B
#
B
x
B
#
'
#
(
#
>
#
A
#
C
#
E
#
G
#
I
#
H
A'
G
E
G
>

G
>
G
(
2rogramarea liniar
C
(
'
#
E
#
(
#
>
>
G
>
C
>
G
>
(
'
>
(
;
>
'
' ' ;
>
(
>
'
;
>
(
;
>
C
; ; '
>
'
>
A
'
>
'
'
>
(
( ; ;
>
G



>
C(
>
'E
A
>
G
;
>
I
C ; ;
>
((

?ontinu!nd algoritmul vom gsi tabelele4
> ( ' A > C ; ; ;
c
B
#
B
x
B
#
'
#
(
#
>
#
A
#
C
#
E
#
G
#
I
#
H
C
(
;
#
E
#
(
#
I
>
'A
>
C
>
G
>
(
'
>
(
;
>
'
' ' ;
>
(
>
'
;
>
(
;
>
C
; ; '
>
'
>
(
;
>
'
'
>
'
' ' ;
>
C



>
I;
>
I
;
>
'
;
>
A
' A ;
>
'A

> ( ' A > C ; ; ;
c
B
#
B
x
B
#
'
#
(
#
>
#
A
#
C
#
E
#
G
#
I
#
H
C
>
;
#
E
#
C
#
I
C
'
(
C
>
'
C
A
; ; ' '
C
'
C
>
C
'
;
C
(
; ' ; ;
C
>
C
'
C
>
;
C
'
' ; ' '
C
'
C
I

(I
C
(
;
C
'
; ; ' A
C
A
C
((
Oltimul tabel conine soluia optim, deoarece toi
8
;. 7eoarece nu mai e#ist nici un
8
. ; n afara celor din baz rezult c soluia optim este unic.
:eterminarea unei soluii de baz admisibile de start
2resupunem nc odat c problema este la forma standard.
&lgoritmul simple# necesit, pentru pornire, o soluie admisibil de baz. Ksirea acesteia
pur i simplu prin ncercri nu este deloc o sarcin uoar, g!ndindu-ne c aceasta presupune
gsirea unui minor principal, inversarea acestuia i calcularea soluiei, abia n acest moment put!nd
vedea dac aceasta are toate componentele pozitive, aceast cutare put!nd dura foarte mult.
*ezolvarea problemei pleac de la observaia c singura baz pentru care calculul de mai sus
se poate face imediat este matricea unitate, caz n care soluia de baz corespunztoare este c+iar
vectorul termenilor liberi. &ceasta presupune ca problema s aib toi termenii liberi mai mari sau
egali cu ; i n matricea & s e#iste toate coloanele matricii unitate.
A(
Bazele cercetrii operaionale
7ac toi termenii liberi pot fi fcui mai mari sau egali cu ; foarte simplu, prin nmulirea
eventual cu ' a restriciei respective, e#istena tuturor coloanelor matricii unitate este evident c
este foarte puin probabil i mai greu de obinut.
9n acest sens plecm de la observaia c e#istena unui vector din coloana unitate printre
coloanele matricii & este ec+ivalent cu e#istena unei variabile care apare doar n ecuaia
corespunztoare lui ' din acel vector, cu coeficientul '. &cest lucru poate fi obinut n dou moduri4
a/ 9ncep!nd de la prima ecuaie, cutm o variabil care are coeficientul de acelai semn cu
termenul liber, o scoatem din aceast ecuaie n funcie de celelalte variabile, o nlocuim
n celelalte i repetm procedeul pornind de la a doua ecuaie. 2ot aprea trei cazuri4
'/ la un moment dat obinem o ecuaie n care toi coeficienii variabilelor au semn
contrar termenului liber, mcar unul dintre toi fiind diferit de ;. 9n acest caz
ecuaia nu are evident soluie admisibil-pozitiv/ i deci problema nu are soluie1
(/ toi coeficienii variabilelor i termenul liber sunt ;. 9n acest caz rezult c aceast
ecuaie rezult din cele anterioare i ea va fi eliminat, trec!ndu-se la urmtoarea1
>/ se epuizeaz toate ecuaiile. 9n acest moment, variabilele care au fost scoase din
fiecare ecuaie formeaz baza dorit.
2rocedeul de mai sus poate prea atractiv, dar presupune introducerea unui algoritm
diferit de simple#, cu efect asupra omogenitii calculelor i a vitezei de lucru. 7e
asemenea, prin efectuarea calculelor de mai sus, datele problemei nu mai au semnificaia
economic iniial, ne mai put!ndu-se face interpretri economice.
b/ 2entru toi vectorii coloan introducem n ecuaiile corespunztoare c!te o variabil cu
coeficientul '. Vom obine evident un nou sistem de restricii i rm!ne de vzut ce
legtur este ntre soluiile acestuia i cel iniial. ?ele dou sisteme au forma4
&# . b i &# : F . b
0ste evident c o soluie a primului sistem este soluie i a celui de-al doilea -lum F . ;/
iar o soluie a celui de-al doilea este soluie i pentru primul doar dac F . ;. $copul
nostru va fi deci, ca pornind de la soluia iniial a celei de-a doua probleme s a8ungem
la o soluie a acesteia n care F . ;. Pin!nd cont c n soluiile de baz, variabilele
secundare sunt toate egale cu ;, vom ncerca s scoatem din baz variabilele F. $copul
algoritmului simple# este ns ma#imizarea funciei obiectiv, nu scoaterea a uneia sau
alteia din variabile din baz. 2entru a ec+ivala cele dou scopuri putem proceda n dou
feluri4
'/ &legem o nou funcie obiectiv care s-i ating e#tremul printre soluiile pozitive
c+iar pentru F . ; i n momentul c!nd am obinut soluia respectiv pornim cu
aceasta ca soluie iniial algoritmul simple# pentru fosta problem.
(/ &dugm la fosta funcie obiectiv noile variabile cu nite coeficieni de asemenea
natur alei nc!t aportul variabilelor F la valoarea funciei s fie contrar scopului
dorit -foarte mari pozitivi ntr-o problem de minim i foarte mari negativi ntr-o
problem de ma#im/.
Vom detalia n continuare cele dou metode4
Algoritmul simple* +n dou "aze
7at problema de programare liniar la forma standard de ma#im4
( )

'



; #
b # &
# c ma#
"
f
A>
2rogramarea liniar
n care am aran8at de8a ca toi termenii liberi s fie pozitivi -b ;/.
aza . ?onstruim problema4
( )

'

; F #,
b F # &
F min g
pe care o rezolvm cu algoritmul simple# pornind rezolvarea de la baza matrice unitate, put!nd
a8unge la dou situaii4
'/ minimul "unciei g este strict poziti#. &ceasta este ec+ivalent cu faptul c egalitatea &#
: F . b se poate obine doar pentru F L ; sau altfel spus &# L b pentru orice # ;, deci
sistemul &# . b nu are soluii admisibile i n concluzie problema iniial nu are
soluie.
(/ minimul "unciei g este -. 9n acest caz, soluia optim obinut are F . ;, deci verific
&# . b fiind n concluzie o soluie admisibil de baz a primei probleme.
aza 5 9ncep!nd de la soluia gsit la faza ' se rezolv problema iniial cu algoritmul simple#.
7ezavanta8ul metodei const n faptul c tabelul simple# final de la faza ' trebuie modificat
pentru a obine tabelul simple# iniial de la faza ( -vectorii #, c, c
B
, z, , f-x
B
/, se elimin coloanele
corespunztoare lui F/ i n plus nu vom mai avea n tabelele simple# ale problemei iniiale inversa
bazei -care se gsea n dreptul coloanelor matricii unitate din prima faz/ necesar n anumite
variante ale algoritmului simple#.
Metoda bazei arti"iciale %metoda penalizrii&
7at problema de programare liniar la forma standard de ma#im4
( )

'



; #
b # &
# c ma#
"
f
n care am aran8at de8a ca toi termenii liberi s fie pozitivi -b ;/.
?onstruim problema4
( )

'

+

; F #,
b F # &
MF # c ma#
"
g
n care M este o constant presupus foarte mare -mai mare dec!t orice constant care ar putea
apare n rezolvarea problemei/. *ezolvm problema cu algoritmul simple# pornind rezolvarea de la
baza matrice unitate, put!nd a8unge la trei situaii4
'/ problema are optim infinit. 9n acest caz, problema iniial are optim infinit.
(/ problema are optim finit i n soluia de baz avem cel puin o variabil din vectorul F. 9n
acest caz problema iniial nu are soluii admisibile.
>/ problema are optim finit i n soluia de baz nu avem nici o variabil din vectorul F. 9n
acest caz problema iniial are optim finit, soluia optim i ma#imul funciei fiind
AA
Bazele cercetrii operaionale
aceleai cu cele ale problemei modificate.
9n final vom remarca faptul c variabilele F nu corespund unor mrimi economice ca
celelalte, ele fiind introduse doar ca un artificiu de calcul pentru a putea porni algoritmul simple#.
7in acest motiv ele se numesc #ariabile arti"iciale.
AC
2rogramarea liniar
Exemplu 5ie problema de programare liniar4
( )

'

+
+
+
; # , #
( # A #
'; # # >
# > # ( ma#
( '
( '
( '
( '
f
5orma standard a problemei va fi4
( )

'

+
+ +
+
; # , # , # , #
( # # A #
'; # # # >
# > # ( ma#
A > ( '
A ( '
> ( '
( '
f
&vem de8a termenii liberi i o coloan a matricii unitate
,
_

;
'
corespunztoare variabilei #
>
.
2entru a obine i a doua coloan
,
_

'
;
vom introduce variabila #
C
cu coeficientul ' n a doua
ecuaie i n final vom avea de rezolvat problema4
Algoritmul simple* +n dou "aze Metoda bazei artificiale
( )

'

+ +
+ +

; # , # , # , # , #
( # # # A #
'; # # # >
# min
C A > ( '
C A ( '
> ( '
C
g ( )

'

+ +
+ +
+
; # , # , # , # , #
( # # # A #
'; # # # >
M# # > # ( ma#
C A > ( '
C A ( '
> ( '
C ( '
f
&plic!nd algoritmul simple# n dou faze vom obine n prima faz succesiunea de tabele4
; ; ; ; '
c
B
#
B
x
B
#
'
#
(
#
>
#
A
#
C
; #
>
'; > ' ' ; ;
' #
C
( ' A ; -' '
( ' A ; -' '
' A ; -' ;
; ; ; ; '
c
B
#
B
x
B
#
'
#
(
#
>
#
A
#
C
; #
>
(
'H
A
''
; '
A
'
A
'

; #
(
(
'
A
'
' ;
A
'

A
'
; ; ; ; ; -'
&m obinut optimul egal cu ; n soluia de baz -#
>
,#
(
/ care va fi soluia iniial pentru
algoritmul simple# aplicat problemei iniiale n a doua faz. 0liminm din tabel coloana lui #
C
,
nlocuim valorile coeficienilor funciei obiectiv i deci i valoarea acesteia, valorile i obinem
tabelul4
AE
Bazele cercetrii operaionale
( > ; ;
c
B
#
B
x
B
#
'
#
(
#
>
#
A
; #
>
(
'H
A
''
; '
A
'
> #
(
(
'
A
'
' ;
A
'

(
>
A
C

; ;
A
>


( > ; ;
c
B
#
B
x
B
#
'
#
(
#
>
#
A
; #
>
A ; -'' ' >
( #
'
( ' A ; -'
A ; C ; -(
( > ; ;
c
B
#
B
x
B
#
'
#
(
#
>
#
A
; #
A
>
A
;
>
''

>
'
'
( #
'
>
';
'
>
'
>
'
;
>
(;
;
>
G

>
(
;
( > ; ;
c
B
#
B
x
B
#
'
#
(
#
>
#
A
; #
A
>I '' ; A '
> #
(
'; > ' ' ;
>; G ; > ;
$oluia optim a primei probleme este deci #
'
. ; i #
(
. '; care d un ma#im al funciei
egal cu >;. 7ac aplicm a doua metod vom obine succesiv tabele4
( > ; ; -M
c
B
#
B
x
B
#
'
#
(
#
>
#
A
#
C
; #
>
'; > ' ' ; ;
-M #
C
( ' A ; -' '
-(M -M -AM ; M -M
-M-( -AM-> ; M ;
( > ; ; -M
c
B
#
B
x
B
#
'
#
(
#
>
#
A
#
C
; #
>
(
'H
A
''
; '
A
'
A
'

> #
(
(
'
A
'
' ;
A
'

A
'
(
>
A
C

; ; A
>

M:
A
>

AG
2rogramarea liniar
( > ; ; -M
c
B
#
B
x
B
#
'
#
(
#
>
#
A
#
C
; #
>
A ; -'' ' > ->
( #
'
( ' A ; -' '
A ; C ; -( (:M
( > ; ; -M
c
B
#
B
x
B
#
'
#
(
#
>
#
A
#
C
; #
A
>
A
;
>
''

>
'
' -'
( #
'
>
';
'
>
'
>
'
; ;
>
(;
;
>
G

>
(
; M
( > ; ; -M
c
B
#
B
x
B
#
'
#
(
#
>
#
A
#
C
; #
A
>I '' ; A ' -'
> #
(
'; > ' ' ; ;
>; G ; > ; M
*ezultatul final este evident acelai.
;ARIAN1E ALE ALGORI1M2L2I 3IMPLE4
.$ Algoritmul simple* dual
2entru e#punerea acestui algoritm trebuie introduse noiunile de baz dual admisibil i
soluie dual admisibil de baz. 2rin definiie numim4
soluie de baz dual admisibil .
soluie de baz pentru care toi
8
;
baz dual admisibil . baz corespunztoare unei soluii de
baz dual admisibile
?a i n cazul algoritmului simple#, pentru a putea rezolva problema cu algoritmul simple#
dual trebuie s dispunem de8a de o baz iniial dual admisibil. &ceast soluie poate e#ista ca
urmare a unor calcule anterioare -vezi capitolul cu reoptimizarea/ sau, ca i n cazul algoritmului
simple#, poate fi aplicat o procedur prin care s gsim aceast baz. 2rezentarea acesteia este mai
complicat dec!t cea de la algoritmul simple# astfel nc!t4
dac dispunem de o baz dual admisibil vom rezolva problema cu algoritmul simple#
dual
dac nu dispunem de o baz dual admisibil vom rezolva problema cu algoritmul
simple#.
2entru a evita orice confuzie, vom numi n continuare algoritmul simple# obinuit algoritm
simple* primal i o baz admisibil baz primal admisibil.
$e observ c o soluie dual admisibil nu este n general primal admisibil i reciproc, iar o
soluie care este simultan primal i dual admisibil este o soluie optim i reciproc.
2resupunem c am adus problema la forma standard de ma#im i dispunem de o baz dual
admisibil i dispunem de8a de de o baz dual admisibil. &lgoritmul simple# dual const n
AI
Bazele cercetrii operaionale
urmtorii pai4
Pasul .$ $e construiete tabelul simple# asociat acestei baze, la fel ca i la algoritmul simple#
primal1
Pasul 5$ $e analizeaz componentele soluiei4
7ac toate componentele sunt mai mari sau egale cu - atunci soluia este i
primal admisibil, deci optim.
7ac e*ist componente strict negati#e, variabila corespunztoare celei mai
negative -#
i
. =
m = '
# min

/ este cea care iese din baz. 7ac minimul este multiplu se
ia una la nt!mplare.
Pasul 6$ $e analizeaz linia l
i
corespunztoare variabilei #
i
aleas la pasul (4
7ac toate componentele a
i8
8 . ',...,n sunt mai mari sau egale cu -, atunci am
avea o ecuaie cu toi coeficienii necunoscutelor pozitivi i termenul liber strict
negativ, deci problema nu are soluii primal admisibile.
7ac e*ist componente strict negati#e, atunci pentru acestea se gsete acel
indice pentru care se obine
i8
8
; a
a
min
i8

<
-prin

am notat modulul numrului /.


7ac minimul este multiplu alegem unul dintre acetia la nt!mplare. Variabila
corespunztoare acestuia este cea care intr n baz.
Pasul 8$ $e construiete tabelul corespunztor noii baze aplic!nd aceleai reguli ca la algoritmul
simple# primal1
Pasul 9$ $e reia algoritmul de la pasul (
5$ orma secundar
0ste evident c modul de organizare al datelor n tabelul simple# nu este unicul mod de a
organiza datele ntr-un tabel. 5orma secundar este tocmai o astfel de alternativ. 2resupunem i n
acest caz c problema este la forma standard de ma#im, c problema este la forma standard i c
dispunem de o soluie iniial de baz care este primal sau dual admisibil.
Pasul .$ 7atele problemei vor fi organizate ntr-un tabel de forma4
c
$
c # f #
$
f-x
B
/

$
c
B
#
B x
B
. B
-'
b B
-'
$
c
$
#
$
; <
n-m
$e observ c singura diferena este c la coloana variabilelor bazei din st!nga se adaug
i cele secundare, pe orizontal se las doar variabilele secundare iar n loc de matricea
unitate n dreptul variabilelor principale vom avea matricea unitate n dreptul celor
secundare -dar cu minus/, fiind calculat la fel, negli8!ndu-se cei din dreptul variabilelor
principale, care oricum erau ;.
Pasul 5$ < Pasul 6$ $e gsesc variabila care iese din baz i cea care intr n baz cu aceleai
reguli ca la algoritmul simple# primal sau, dup caz, ca la cel dual.
AH
2rogramarea liniar
Pasul 8$ $e construiete tabelul asociat noii baze aplic!nd regulile4
'/ 2ivotul este acelai ca la tabelul simple#1
(/ ,inia pivotului are ' n dreptul pivotului i ; n rest1
>/ ?oloana pivotului se mparte la pivotul cu semn sc+imbat
A/ ?elelalte elemente se calculeaz cu regula dreptung+iului
Pasul 9$ $e reia algoritmul de la pasul (.
Exemplu 5ie problema de programare liniar rezolvat mai sus4
( )

'

+
+
+
; # , #
( # A #
'; # # >
# > # ( ma#
( '
( '
( '
( '
f
5orma standard a problemei va fi4
( )

'

+
+ +
+
; # , # , # , #
( # # A #
'; # # # >
# > # ( ma#
A > ( '
A ( '
> ( '
( '
f
iar dup introducerea variabilelor artificiale obinem4
( )

'

+ +
+ +
+
; # , # , # , # , #
( # # # A #
'; # # # >
M# # > # ( ma#
C A > ( '
C A ( '
> ( '
C ( '
f
"abelul corespunztor va fi4
( > ;
c
B
#
B
x
B
#
'
#
(
#
A
-(M -M-( -AM-> M
( #
'
; -' ; ;
> #
(
; ; -' ;
; #
>
'; > ' ;
; #
A
; ; ; -'
-M #
C
( ' A -'
&plicm simple# primal i obinem cel mai negativ
8
corespunztor lui #
(
i
i
minim
corespunztor lui #
C
. 9n acest moment avem o soluie de baz a problemei iniiale i putem elimina
variabila #
C
. @binem4
( -M ; ( ;
c
B
#
B
x
B
#
'
#
C
#
A
c
B
#
B
x
B
#
'
#
A
(
>
A
C

M:Q -Q
(
>
A
C

-Q
( #
'
; -' ; ; ( #
'
; -' ;
> #
(
R S S -S > #
(
R S -S
; #
>
(
'H
A
''
-S S ; #
>
(
'H
A
''
S
C;
Bazele cercetrii operaionale
; #
A
; ; ; -' ; #
A
; ; -'
-M #
C
; ; -' ;
i n continuare4
C'
2rogramarea liniar
> ; > ;
c
B
#
B
x
B
#
(
#
A
c
B
#
B
x
B
#
(
#
>
A C -(
>
(;
>
G

>
(
( #
'
( A -' ( #
'
>
';
>
'
>
'

> #
(
; -' ;

> #
(
; -' ;
; #
>
A -'' > ; #
>
; ; -'
; #
A
; ; -' ; #
A
>
A
>
''

>
'
( ;
c
B
#
B
x
B
#
'
#
>
>; G >
( #
'
; -' ;
> #
(
'; > '
; #
>
; ; -'
; #
A
>I '' A
7in rezolvarea de mai sus se observ c aceast metod este mai eficient doar dac
numrul variabilelor secundare este mai mic dec!t numrul variabilelor principale. "otui, motivul
principal pentru care a fost introdus aceast variant, este e#istena unor probleme n care, pe
parcursul rezolvrii, se adaug foarte multe restricii -de e#emplu rezolvarea problemelor n numere
ntregi/, pentru o restricie n plus tabelul simple# mrindu-se cu o linie i o coloan -cum se va
vedea la capitolul de reoptimizare/ iar tabelul corespunztor formei secundare doar cu o linie.
6$ orma re#izuit a algoritmului simple*
@ problem mare -de e#emplu cu ';;; variabile i ';; restricii/ necesit n algoritmul
simple# introducerea, memorarea i lucrul cu un tabel cu ';;.;;; componente, adic un numr
imens de date. 7in acest motiv, i remarc!nd faptul c n algoritmul simple# doar o parte din
acestea contribuie efectiv la luarea deciziilor, s-a construit un algoritm care s in cont de
observaiile de mai sus, numit "forma revizuit a algoritmului simple#", n care se lucreaz cu
minimul necesar din datele tabelului simple#. &stfel, pentru testarea soluiei actuale i trecerea
eventual la o nou baz avem nevoie doar de urmtoarele elemente4
-'/ inversa bazei curente B
-'
-(/ componentele vectorului pentru a face testul de optim i a gsi variabila care intr n
baz -dac soluia nu e optim/
->/ coloana a
=
din B
-'
& corespunztoare celui mai negativ
8
-dac e#ist strict negativi/
pentru a face testul de optim infinit
-A/ soluia curent pentru a gsi variabila care iese din baz -dac mai e cazul/
&ceste elemente se aeaz ntr-un tabel de forma4
c
B
#
B
x
B
. B
-'
b B
-'
C(
Bazele cercetrii operaionale
f-x
B
/
T .
"
B
c B
-'
numit tabelul simple# redus.
@peraiile ce se efectueaz n cadrul algoritmului simple# revizuit sunt -presupunem c
problema este la forma standard de ma#im i deinem o soluie admisibil de baz i inversa bazei
corespunztoare/4
Pasul .$ $e calculeaz
8
corespunztori variabilelor secundare cu formula cunoscut4

8
.
"
B
c B
-'
2
8
- c
8
. T2
8
- c
8
unde 2
8
este coloana corespunztoare variabilei #
8
din matricea iniial.
Pasul 5$ $e analizeaz
8
calculai4
dac toi sunt mai mari sau egali cu ; soluia curent este optim. $"@2
dac e#ist
8
strict negativi se alege minimul dintre acetia
=
, variabila #
=
va intra n
baz i se trece la pasul >.
Pasul 6$ $e calculeaz a
=
. B
-'
2
=
care se ataeaz ca nou coloan la tabel4
c
B
#
B
x
B
. B
-'
b B
-'
a
=
. B
-'
2
=
f-x
B
/
T .
"
B
c B
-'

=
Pasul 8$ $e analizeaz componentele coloanei a
=
4
dac toate sunt mai mici sau egale cu ; problema are optim infinit. $"@2
dac e#ist a
i=
strict pozitivi se alege cel pentru care se obine4
a
r=
.
i=
i
; a
m i '
a
min
i=
x
>

i variabila #
r
va iei din baz apoi se trece la pasul C.
Pasul 9$ $e pivoteaz ntregul tabel simple# i se elimin ultima coloan.
Pasul =$ $e reia algoritmul de la pasul (.
Exemplu 5ie problema de programare liniar rezolvat mai sus4
( )

'

+
+
+
; # , #
( # A #
'; # # >
# > # ( ma#
( '
( '
( '
( '
f
C>
2rogramarea liniar
5orma standard a problemei va fi4
( )

'

+
+ +
+
; # , # , # , #
( # # A #
'; # # # >
# > # ( ma#
A > ( '
A ( '
> ( '
( '
f
iar dup introducerea variabilelor artificiale obinem4
( )

'

+ +
+ +
+
; # , # , # , # , #
( # # # A #
'; # # # >
M# # > # ( ma#
C A > ( '
C A ( '
> ( '
C ( '
f
Iteraia .$ 2rima baz este B . <
(
. B
-'
corespunztoare variabilelor #
>
i #
C
de unde rezult x
B
.

,
_

(
';
i T . -;,-M/<
(
. -;,-M/. 2rimul tabel redus va fi4
;
-M
#
>
#
C
';
(
'
;
;
'
-(M ; -M
$e calculeaz
$
. T$ c
$
. -;,-M/
,
_

' A '
; ' >

( ) ; > (
.
( ) M > M A ( M
de unde rezult c cel mai negativ este
(
i vom calcula coloana a
(
. <
(

,
_

A
'
.
,
_

A
'
care se adaug la tabelul anterior rezult!nd4
;
-M
#
>
#
C
';
(
'
;
;
'
'
A
-(M ; -M -AM->

i
minim este cel corespunztor lui #
C
i deci variabila #
(
va intra n locul variabilei #
C
.
7up pivotare i eliminarea ultimei coloane obinem4
;
>
#
>
#
(
(
'H
R
'
;
-S
S
(
>
; Q
7eoarece variabila artificial #
C
a ieit din baz ea va fi eliminat din problem.
Iteraia 5$
$
. T$ c
$
. -;,Q/
,
_

' '
; >

( ) ; (
. -
A
>
A
C
/
cel mai negativ este
'
i vom calcula coloana a
'
.

,
_


A
'
A
'
;
'

,
_

'
>
.

,
_

A
'
A
''
care se
adaug la tabelul anterior rezult!nd4
;
>
#
>
#
(
(
'H
R
'
;
-S
S
A
''
S
CA
Bazele cercetrii operaionale
(
>
; Q
A
C

i
minim este cel corespunztor lui #
(
i deci variabila #
'
va intra n locul variabilei #
(
.
7up pivotare i eliminarea ultimei coloane obinem4
;
(
#
>
#
'
A
(
'
;
->
'
A ; (
Iteraia 6$
$
. T$ c
$
. -;,(/
,
_

' A
; '

( ) ; >
. -
( I
/
cel mai negativ este
A
i vom calcula coloana a
A
.
,
_


' ;
> '

,
_

'
;
.
,
_

'
>
care se
adaug la tabelul anterior rezult!nd4
;
(
#
>
#
'
A
(
'
;
->
'
>
-'
A ; ( -(

i
minim este cel corespunztor lui #
>
i deci variabila #
A
va intra n locul variabilei #
>
.
7up pivotare i eliminarea ultimei coloane obinem4
;
(
#
A
#
'
>
A
>
';
>
'
>
'
-'
;
>
(;
>
(
;
Iteraia 8$
$
. T$ c
$
. -
>
(
,;/
,
_

; A
' '

( ) ; >
. -
;
>
G

/
cel mai negativ este
(
i vom calcula coloana a
(
.

,
_


;
'
>
'
>
'

,
_

A
'
.

,
_

>
'
>
''
care se
adaug la tabelul anterior rezult!nd4
;
(
#
A
#
'
>
A
>
';
>
'
>
'
-'
;
>
''

>
'
>
(;
>
(
;
>
G

i
minim este cel corespunztor lui #
'
i deci variabila #
(
va intra n locul variabilei #
'
.
7up pivotare i eliminarea ultimei coloane obinem4
;
>
#
A
#
(
>I
';
A
'
-'
;
>; > ;
CC
2rogramarea liniar
Iteraia 9$
$
. T$ c
$
. ->,;/
,
_

; '
' >

( ) ; (
. -
> G
/ L; deci soluia este optim -i unic/
$"@2
?+iar dac la prima vedere calculele par mai mprtiate i deci mai lente, pentru probleme
mari, pe calculator se economisete foarte mult memorie i se mrete foarte mult viteza de calcul.
"otui, marele avanta8 al acestei metode este acela c, la fiecare iteraie, se folosesc datele
problemei iniiale, ceea ce face ca erorile inerente de rotun8ire s nu se propage, rm!n!nd n limite
acceptabile.
CE

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