Sunteți pe pagina 1din 37

Bazele cercetrii operaionale

FACULTATEA DE TIINE ECONOMICE


DISCIPLINA
CERCETRI OPERAIONALE
COORDONATOR
MASTERAND
2011 / 2012
1
Programarea liniar
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 in!ormaia 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 bene!iciat de aportul abordrii interdisciplinare care a permis apro!undarea analizei
e!icienei ma%imale a sistemelor comple%e, a permis descoperirea unor concepte noi ale optimului
economic, a per!ecionat metodele de cercetare i cunoatere iar practica economic s-a mbogit
cu un instrument deosebit de util analizei economice i !undamentrii deciziilor.
&tructura modelului general de programare liniar se constituie n primul r#nd prin mulimea
de activiti '(
1
, (
)
, ... (
n
* care compun sistemul economic analizat, mulimea de resurse utilizate
'+
1
, +
)
, ... +
m
* precum i prin relaiile te,nico-economice dintre acestea. -egtura dintre activiti
i resurse este determinat de te,nologia de !abricaie corespunztoare !iecrei activiti (
j
.j/1,...,n0 i poate !i caracterizat numeric prin vectorul coloan a
.j0
de componente .a
1j
, a
)j
, ... a
mj
0.
1lementele 'a
ij
, i / 1,...,m2 j / 1,...,n* se numesc coe!icieni te,nici sau coe!icieni de consum
speci!ic i arat ce cantitate din resursa +
i
se consum pentru producerea unei uniti din produsul
.serviciul0 P
j
.ca rezultat al activitii (
j
0. $oate te,nologiile de !abricaie de!inite de vectorii
coloan a
.j0
se pot organiza ntr-o matrice ( cu m linii i n coloane2 !iecare linie se re!er la o resurs
+
i
.i / 1,...,m0 i !iecare coloan se re!er la o activitate (
j
.j / 1,...,n0.
3ot#nd cu %
j
.j / 1,...,n0 rezultatul activitii (
j
ntr-o perioad dat i cu b
i
.i / 1,...,m0
cantitile disponibile din resursele +
i
.i / 1,...,m0, se pot scrie matematic urmtoarele restricii
te,nico-economice4
.10
m n mn ) m) 1 m1
) n )n ) )) 1 )1
1 n 1n ) 1) 1 11
b % a ... % a % a
b % a ... % a % a
b % a ... % a % a
+ + +
+ + +
+ + +

sau (% b
unde ( /

,
_

mn m) m1
)n )) )1
1n 1) 11
a a a
a a a
a a a

2 % /

,
_

n
)
1
%
%
%

i b /

,
_

n
)
1
b
b
b

5iecare inecuaie6restricie ncorporeaz dou a!irmaii4


a. cantitatea consumat dintr-o resurs nu poate depi volumul disponibil .propoziie de
logic economic0
b. consumul total +
ij
din resursa +
i
pentru e!ectuarea activitii (
j
este proporional cu
intensitatea acesteia, adic cu %
j
, deci +
ij
.0
/ a
ij
%
j
.ipotez simpli!icatoare0
&istemul de restricii .10 realizeaz legtura dintre resurse i activiti prin intermediul celor
m restricii liniare.
.0
7e aici rezult posibilitatea s calculm coe!icienii ai8 pe baza in!ormaiilor disponibile privind cantitile consumate
+i8 i nivelul %84 ai8 /
8
%
i8
+
2 i / 1,...,m2 8 / 1,...,n
)
Bazele cercetrii operaionale
Modelul problemei de programare liniar conine restricii de tipul .10 precum i un criteriu
de per!orman care s permit evaluarea e!icienei !iecrei activiti. 9n !uncie de scopul urmrit,
putem alege drept criteriu de e!icien un indicator care msoar e!ortul, unul care msoar
rezultatul sau un indicator e%primat ca raport ntre rezultat i e!ort .sau e!ort pe rezultat0.
1ste evident c e!iciena ma%im nseamn minimizarea e!ortului i ma%imizarea
rezultatului, iar conceptul de optim se de!inete, n acest caz, ca un program x R
n
care minimizeaz
sau ma%imizeaz o !uncie obiectiv i, n acelai timp, satis!ace toate restriciile te,nico-economice.
Presupun#nd c !iecare component a vectorului linie c / .c
1
, c
)
, ..., c
n
0 msoar e!iciena
unei uniti din rezultatul activitii (
j
, atunci se poate introduce !uncia liniar4
f.%0 / c
1
%
1
: c
)
%
)
: ... : c
n
%
n
care evalueaz per!ormana oricrui program x.
&intetiz#nd, obinem urmtorul program de programare liniar4
( ) [ ]

'

n 1, 8 ; %
< = b % a
< i b % a
% optim
8
)
n
1 8
= 8 =8
1
n
1 8
i 8 i8
f
x
+elaiile .10, .)0 i .>0 constituie mpreun modelul general al unei probleme de programare
liniar, av#nd !iecare un rol speci!ic4
1. relaia .10, unde f.%0 /

n
1 8
8 8
c x
este denumit !uncia obiectiv de e!icien a problemei,
evalueaz e!iciena6per!ormana !iecrei variante de program x2
). relaiile .)0 de tipul


n
1 8
i 8 i8
b % a
reprezint restricii de tip resurse2 iar restriciile de
tipul


n
1 8
= 8 =8
b % a
se re!er la restricii te,nico-economice de tip calitativ .i ca urmare
indicatorul b
k
este limita in!erioar impus reetei optime2
>. relaia .>0 %
j
; j / 1,...,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.
(st!el, n cazul problemei determinrii structurii sortimentale optime a produciei, se
cunosc cantitile disponibile .cantitile de care se poate !ace rost pe perioada analizat0 din !iecare
materie prim 'b
i
, i /1,...,m*, coe!icienii te,nologici 'a
ij
, i / 1,...,m, j / 1,...,n* .a
ij
reprezint
cantitatea din materia prim i necesar !abricrii unei uniti din produsul de tipul j0, cantitile
ma%ime ' j
x
, j / 1,...,n* i minime ' j
x
, j / 1,...,n* ce pot !i produse din !iecare sortiment n
perioada analizat i pro!iturile unitare 'p
j
, j / 1,...,n* ale !iecrui tip de produs. &e cere gsirea
acelor cantiti %
j
care trebuie !abricate din !iecare tip de produs ast!el nc#t s se obin pro!itul
ma%im, n condiiile nedepirii disponibilurilor din !iecare resurs.
Pentru simpli!icarea modelului, se presupune c preul unui bun nu depinde de cantitatea
produs din acesta sau din celelalte, consumul din !iecare materie prim este direct proporional cu
cantitatea produs i, pentru !iecare bun, consumurile dintr-o resurs sau alta nu se condiioneaz
reciproc.
>
unde <
1
<
)
/ '1,),...,m*
.10
.)0
.>0
Programarea liniar
Problema matematic ec,ivalent este4
( )

'



+ + +
+ + +

n 1,..., 8 ; %
n 1,..., 8 % % %
m 1,..., i b % a ... % a % a
% p ... % p % p ma%
8
8 8 8
i n in ) i) 1 i1
n n ) ) 1 1
n 1, 8 %
8
9n unele probleme, n loc de pro!iturile p
j
se cunosc veniturile unitare v
j
sau costurile unitare
c
j
sau alt criteriu de e!icien, scopul !iind ma%imizarea venitului, minimizarea costurilor respectiv
optimul indicatorului de e!icien 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 re!er la o serie de
maini .utila8e0 cu care se e%ecut produsele dorite, b
i
!iind disponibilul de timp al utila8ului i pe
perioada analizat iar a
ij
timpul necesar prelucrrii unui produs de tipul j pe utila8ul i, scopul !iind
ma%imizarea produciei.
?a urmare, modelul are !orma4
( )

'


+ + +
+ + +

n 1,..., i ; %
m 1,..., i b % a ... % a % a
% ... % % ma%
8
i n in ) i) 1 i1
n ) 1
n0 1,..., 8 . %
8
7ac se dorete obinerea unui meniu .reete !ura8ere0, care s asigure necesarurile 'b
i
, i /
1,...,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 / 1,...,m, j / 1,...,n* din !iecare substan pe care le conine
o unitate de msur din !iecare aliment i costurile 'c
j
, j / 1,...,n* unei uniti de msur din !iecare
aliment, putem scrie modelul4
( )

'


+ + +
+ + +

n 1,..., 8 ; %
m 1,..., i b % a ... % a % a
% c ... % c % c min
8
i n in ) i) 1 i1
n n ) ) 1 1
n0 1,..., 8 .
8
%
Variabilele %
j
reprezint, n acest caz, cantitatea din !iecare aliment ce va intra n meniu iar
f.%0 /

n
1 8
8 8
c x
este costul total al reetei de!init de vectorul %.
@
Bazele cercetrii operaionale
Vom nc,eia e%empli!icarea cu prezentarea modelului amestecului optim de produse
petroliere. Presupunem c o ra!inrie 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. A serie de
caracteristici trebuie s !ie ndeplinite cu o limit in!erioar .de e%emplu ci!ra octanic0, altele cu o
limit superioar .de e%emplu densitatea sau temperatura de !ierbere0 i altele cu egalitate .de
e%emplu cantitatea necesar0, aceste limite !iind
1
i
b , i / 1,...,m
1
,
)
i
b , i / 1,...,m
)
respectiv
>
i
b , i /
1,...,m
>
cu m
1
: m
)
: m
>
/ m. 7e asemenea, trebuie inut cont de cantitile disponibile din !iecare
benzin 7
i
, i / 1,...,n. &e cunosc caracteristicile !iecrei benzine disponibile, date ntr-o matrice (
M
mn
, unde a
i8
este valoarea caracteristicii i pentru benzina 8 i preurile unitare ale !iecrei benzine,
notate p
8
, 8 / 1,...,n. 7ac notm cu %
8
, 8 / 1,...,n, cantitile din !iecare benzin care vor !orma
amestecul optim, atunci avem de rezolvat problema4

'



+ +
+ +

,
_

n 1,..., 8 ; %
n 1,..., 8 7 %
m 1,..., m m i b % a
m m 1,..., m i b % a
m 1,..., i b % a
p min
8
8 8
) 1
n
1 8
>
i 8 i8
) 1 1
n
1 8
)
i 8 i8
1
n
1 8
1
i 8 i8
n
1 8
8 8
%
8
x
Programarea matematic
&e observ c toate aceste probleme, cu toate c reprezint situaii economice total di!erite,
sunt aplicaii n s!era activitii economice ale urmtoarei probleme de optimizare4
( ) ( ) ( )
( )
> . 1
) . 1
1 . 1
% ,..., % , %
n 1,..., i b % ,..., % , %
% ,..., % , % min sau ma%
n
n ) 1
i n ) 1
n ) 1

'



R
g
f
i
n care !unciile f,g
i
4 R
n
R pot avea orice !orm i proprieti .liniare, conve%e, continui,
di!ereniabile etc0 iar poate !i orice submulime a lui R
n
.continu sau discret, mrginit sau
nemrginit, conve% sau neconve%, !init sau in!init etc0 i n care dorim s gsim minimul sau
ma%imul !unciei f n variabilele %
i
care ndeplinesc restriciile 1.) i 1.>. A ast!el de problem se
numete problem de programare matematic.
5uncia .1.10 se numete !uncia obiectiv a problemei de optimizare. 9n aplicaiile
economice, ea reprezint criteriul de per!orman urmrit4 ma%imizarea bene!iciului, ma%imizarea
produciei mar!, minimizarea costului produciei, ma%imizarea gradului de ncrcare al utila8elor
sau minimizarea timpului de staionare al acestora, ma%imizarea veniturilor etc.
<negalitile .1.)0, n care g
i
sunt !uncii de n variabile iar b
i
sunt constante, se numesc
restricii ale problemei de optimizare. 1le traduc n limba8 matematic condiiile de natur economic
sau te,nologic n care se des!oar procesul economic modelat, cum ar !i4 nedepirea stocurilor
B
Programarea liniar
disponibile de resurse .materii prime, capaciti de producie, !or de munc, !onduri bneti, timp
etc0, ndeplinirea sau depirea unor indicatori economici .producia !izic, net0 etc.
?ondiiile .1.>0, impuse direct variabilelor, depind de natura problemei studiate. 7e cele
mai multe ori, este mulimea vectorilor % / .%
l
,...,%
n
0 R
n
cu toate componentele nenegative i
acest !apt se 8usti!ic prin aceea c, n general, %
i
reprezint nivelele unor activiti de producie,
nivele care nu pot !i negative. 9n unele probleme de optimizare, cum ar !i cele de croire sau
ordonanare, variabilele desemneaz mrimi indivizibile i deci nu pot lua dec#t valori ntregi.
Mulimea va !i !ormat n acest caz din vectori % cu toate componentele ntregi i nenegative. 9n
alte probleme, ca de pild cele de a!ectare, porto!oliu etc, variabilele nu pot lua dec#t valorile ; sau
1 .variabile bivalente0 i ca atare va !i !ormat din vectorii % / .%
1
, C,%
n
0 cu toate componentele ;
sau 1. ?aracteristic acestor tipuri de probleme este !aptul c devine o submulime discret din R
n
,
de unde i numele generic de probleme de optimizare discret dat acestora.
A soluie a unei ast!el de probleme are deci trei proprieti4
P1. veri!ic restriciile 1.)
P). veri!ic restriciile directe 1.>
P>. optimizeaz !uncia obiectiv pe mulimea vectorilor care ndeplinesc condiiile P1. i P).
9n teoria programrii matematice se !olosesc, pentru claritatea i simplitatea e%punerii,
urmtoarele noiuni4
soluie a problemei de optimizare /
un vector % R
n
care veri!ic restriciile 1.)
soluie admisibil a problemei de optimizare / un vector % R
n
care veri!ic restriciile 1.) i 1.>
o soluie care veri!ic restriciile 1.>
soluie optim a problemei de optimizare / un vector % R
n
care veri!ic restriciile 1.) i
1.> i optimizeaz !uncia obiectiv pe mulimea
tuturor vectorilor cu aceast proprietate
o soluie care veri!ic restriciile 1.> i
optimizeaz !uncia obiectiv pe mulimea
tuturor soluiilor cu aceast proprietate
o soluie admisibil care optimizeaz
!uncia 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 !ost puternic stimulat
de creterea vertiginoas a comple%itii activitilor economice, care a !urnizat probleme cu
structuri din ce n ce mai complicate, ca i de rapida per!ecionare a mi8loacelor automate de calcul,
singurele capabile s testeze e!iciena practic a metodelor teoretice elaborate. -a r#ndul ei,
programarea matematic, prin rezultatele ei, a adus un considerabil aport la per!ecionarea
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
!ace imposibil gsirea unui algoritm practic care s le poat rezolva pe toate, dar putem gsi .sau
ne putem atepta s gsim0, pentru !iecare caz particular, un algoritm de rezolvare care s-i trag
e!icacitatea tocmai din !olosirea 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.
D
Bazele cercetrii operaionale
Problema de programare liniar
Definiia 1. 7ac ntr-o problem de programare matematic !uncia obiectiv f i !unciile
g
i
, din restriciile 1.), sunt !uncii liniare atunci problema se numete problem de programare
liniar. A problem de programare liniar este, deci, un caz particular al problemelor de programare
matematic i, in#nd cont de !orma oricrei !uncii liniare, rezult c !orma general a oricrei
probleme de programare liniar este4
( )

'

+ + +
+ + +
oarecare
;
;
% ,..., % , %
n 1,..., i b % a ... % a % a
% c ... % c % c min ma%
n ) 1
i n in ) i) 1 i1
n n ) ) 1 1
f
unde c
8
.coe!icienii !unciei obiectiv0, a
i8
.coe!icienii restriciilor0 i b
i
.termenii liberi0 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 !aptul c orice restricie poate avea
trei !orme di!erite iar obiectivul poate !i minimizarea sau ma%imizarea !unciei f. 1ste 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 !orm .c#t mai simpl0 cu
proprietatea c pentru orice problem P, e%ist o alta problem PE de aceast !orm, ec,ivalent cu
problema iniial P .spunem c dou probleme sunt ec,ivalente dac e%ist un izomor!ism ntre
mulimile soluiilor celor dou probleme i un ,omeomor!ism ntre !unciile lor obiectiv0 i s
dispunem de un algoritm care s rezolve problemele de aceast !orm i de o regul prin care s
gsim soluia problemei iniiale P din soluia problemei PE, gsit cu acest algoritm.
9n acest sens .dar i din cauza !recvenei apariiei lor n practic0 s-au evideniat dou !orme
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 !orme4
5orma canonic de minim 5orma canonic de ma%im
( )

'

+ + +
+ + +
; % ,..., % , %
n 1,..., i b % a ... % a % a
% c ... % c % c min
n ) 1
i n in ) i) 1 i1
n n ) ) 1 1
f ( )

'

+ + +
+ + +
; % ,..., % , %
n 1,..., i b % a ... % a % a
% c ... % c % c ma%
n ) 1
i n in ) i) 1 i1
n n ) ) 1 1
f
(ceast !orm este cel mai des nt#lnit n practic .vezi problema determinrii structurii
sortimentale optime a produciei sau problema dietei0 i, n plus, restriciile economice sunt n
general inegaliti i !oarte rar egaliti. 7e asemenea, aceast !orm este invariant la anumite
trans!ormri .vezi problema dual0 i asigur e%istena soluiei .orice problem la aceast !orm,
care are termenii liberi i coe!icienii restriciilor pozitivi, are soluie0.
F
Programarea liniar
Definiia >. &punem c o problem este la "orma standard dac are !orma4
( ) ( )

'

+ + +
+ + +
; % ,..., % , %
n 1,..., i b % a ... % a % a
% c ... % c % c ma% sau min
n ) 1
i n in ) i) 1 i1
n n ) ) 1 1
f
(ceast !orm, dei nenatural din punct de vedere economic, este cea care se preteaz cel
mai bine la rezolvarea cu metodele algebrei clasice.
Propoziie. Pentru orice problem de programare liniar P e%ist o problem la !orma
canonic P5? i o problem la !orma standard P5& ec,ivalente cu P.
Demonstraie. 9ntr-adevr4
a0 orice problem de ma%im poate !i trans!ormat n una de minim i reciproc !olosind relaia4
ma% f.%0 / " min f."%0
b0 orice restricie de tipul poate !i trans!ormat ntr-o restricie de !orma i reciproc
!olosind relaia4
" "
c0 orice restricie inegalitate poate !i trans!ormat n egalitate, prin introducerea unei variabile
suplimentare nenegative i !olosind relaiile4

'

+
; %
%
i

'


; %
%
$oate variabilele introduse pentru trans!ormarea inegalitilor n egaliti se numesc #ariabile de
abatere sau #ariabile de compensare.
d0 orice restricie egalitate poate !i trans!ormat n restricii inegalitate, !olosind relaia4
/

'



e0 orice variabil cu restricie de semn negativ .% ;0 poate !i nlocuit cu o variabil cu restricie
de semn pozitiv .G ;0, !olosind relaia4
% ;

'

; G
G - %

!0 orice variabil !r restricie de semn poate !i nlocuit cu dou variabile cu restricie de semn
pozitiv, !olosind relaia4
% oarecare

'

; z
; G
z - G %
H
Bazele cercetrii operaionale
&e demonstreaz !r un e!ort matematic deosebit c dac PE se obine din P !olosind doar
trans!ormrile de mai sus .numite i trans!ormri elementare0 atunci P i PE sunt dou probleme
ec,ivalente i ntre soluiile lor optime e%ist o bi8ecie.
7in cele de mai sus rezult cum poate !i adus orice problem de programare liniar la
!orma standard .sau canonic0 i cum se obine soluia problemei iniiale din soluia problemei la
!orma standard .sau canonic0.
Exemplu4 Problemei P de mai 8os i corespunde problema la !orma standard P5& alturat4
P P5&
.min0 f / >%
1
")%
)
: @%
>

'


+ +

+ +
+ +
; % oarecare, % , ; %
>1 % B % >; % >
)1 % 1@ % F % F
I % D % >D % 1I
1D % 1B % 1> % I
> ) 1
> ) 1
> ) 1
> ) 1
> ) 1
.ma%0 g / :>a
1
: )G
)
" )z
)
" @%
>

'

+ + +
+ +
+ +
+ + +
; % , % , % , % , % , z , G , a
>1 % % B z >; G >; a >
)1 % % 1@ z F G F a F
I % % D z >D G >D a 1I
1D % % 1B z 1> G 1> a I
F D B @ > ) ) 1
F > ) ) 1
D > ) ) 1
B > ) ) 1
@ > ) ) 1

Problema P5& are o singur soluie optim4
a
1
/ >, G
)
/
>
@
, z
)
/ ;, %
>
/ ;, %
@
/
>
FF
, %
B
/ ;, %
D
/
>
1B@
, %
F
/ ;
care d un ma%im al !unciei g egal cu
>
>B
.
(cestei soluii i corespunde singura soluie optim pentru P4
%
1
/ ->, %
)
/
>
@
, %
>
/ ;
care d un minim al !unciei f, egal cu
>
>B

.
Rezol#area problemei de programare liniar$
Analiza problemei
5ie o problem P despre care presupunem .!r a restr#nge generalitatea0 c a !ost adus la
!orma standard. 7e asemenea presupunem .tot !r a restr#nge generalitatea0 c variabilele
problemei au !ost numerotate i denumite %
8
cu j / 1,...,n .n / numrul de necunoscute0, coe!icienii
variabilelor din !uncia obiectiv f cu c
j
.c
j
/ coe!icientul variabilei %
8
0, c n ecuaii variabilele apar
n ordinea indicilor, ecuaiile !iind numerotate de la 1 la m .m / numrul de ecuaii0 i c am notat
cu b
i
termenul liber al ecuaiei i i cu a
i8
coe!icientul variabilei 8 din ecuaia i. 9n acest caz putem
aeza variabilele problemei ntr-un vector cu n componente, coe!icienii !unciei obiectiv ntr-un
vector cu n componente, termenii liberi ntr-un vector cu m componente, coe!icienii variabilelor
din ecuaii ntr-o matrice cu m linii i n coloane i vom avea4
% /

,
_

n
)
1
%
%
%

, c /

,
_

n
)
1
c
c
c

, b /

,
_

n
)
1
b
b
b

, ( /

,
_

mn m) m1
)n )) )1
1n 1) 11
a a a
a a a
a a a

I
Programarea liniar
.vom nota cu %
$
, c
$
i b
$
transpuii acestor vectori i cu (
$
transpusa matricei (0.
(legerea aezrii ca vectori coloan a !ost !cut din raiuni de uurin a calculelor i a
memorrii acestora. 7up aceste notaii, problema poate !i scris mult mai simplu4
( )

'



; %
b % (
% c min
$
f
sau
( )

'



; %
b % (
% c ma%
$
f
&e tie c un sistem de !orma (% / b are soluie doar dac rang.(0 / rang. (0, 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
neinteresant0.
Presupunem c au !ost eliminate aceste restricii. 7ac rang ( / n atunci sistemul are o
singur soluie care, dac este admisibil, este i soluia optim cutat, alt!el problema nu are
soluie. 1ste evident c i acest caz este la !el de neinteresant ca primul.
Presupunem deci n continuare c4
rang%A& ' m ( n
+ezolvarea sistemului (% / b se poate !ace ntr-un mod simplu .cel puin teoretic0 !olosind
algebra matricial ast!el4
mprim coloanele matricei ( n dou submatrici4 minorul principal .notat cu B, care
este o matrice ptratic de dimensiune m i va !i numit baz a sistemului0 i restul
coloanelor .notat cu &, care este o matrice cu m linii i n " m coloane02
mprim variabilele problemei n doi vectori4 vectorul variabilelor principale
.corespunztoare coloanelor bazei0 i vectorul variabilelor secundare .notat cu %
&
0.
5c#nd eventual o renumerotare, pentru uurina e%punerii i !iind evident c nu se
restr#nge generalitatea problemei, presupunem c variabilele principale sunt c,iar
primele m .aceast presupunere va !i !cut de c#te ori va !i posibil, !r a mai speci!ica
acest lucru0.
aducem succesiv sistemul la !orma de mai 8os4
(% / b .B&0

,
_

&
B
%
%
/ b B%
B
: &%
&
/ b B%
B
/ b " &%
&
%
B
/ B
-1
b " B
-1
&%
&
soluia sistemului va !i submulimea lui R
n
4
7
B
/ '% / '%
B
,%
&
* 6 %
&
R
n-m
oarecare, %
B
/ B
-1
b " B
-1
&%
&
*
Arice alegere a lui %
&
d o soluie. 7intre toate alegerile posibile este remarcabil .prin
simplitatea ei0 soluia %
&
/ ;, care duce la soluia particular4
x
B
/

,
_


;
;
;
b B
1

numit soluia de baz asociat bazei ). 7eci %


B
este x
B
/ B
-1
b la care se adaug n-m
zerouri. ?u toate acestea, vor !i ambele numite soluie de baz, rezult#nd din conte%t de care
1;
n " m zerouri
Bazele cercetrii operaionale
este vorba.
Observaie4 1ste evident c !iecrui minor principal al sistemului ./ minor de
dimensiune m / baz0 i corespunde o unic soluie de baz. A 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 di!erite 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 !i% m elemente nenule, numite soluii nedegenerate.
7
B
este izomor! 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 .vectorii0 care d .dau0 e%tremul lui f.
+ezolvarea problemei poate duce la urmtoarele rezultate4
+1. &istemul (% / b nu are soluii sau nu are soluii admisibile. 9n acest caz problema nu
are soluie.
+). <maginea !unciei obiectiv pe mulimea soluiilor admisibile este nemrginit .la :
ntr-o problem de ma%im sau la - ntr-o problem de minim0. 9n acest caz spunem
c problema are optim in!init.
+>. <maginea !unciei obiectiv pe mulimea soluiilor admisibile este mrginit. 9n acest
caz problema are cel puin o soluie i spunem c problema are optim !init.
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
!unciei f. 1ste natural ca primele ncercri n rezolvare s caute n primul r#nd o limitare c#t mai
puternic a locului n care cutm. Pe baza unor reprezentri geometrice ale problemei au !ost
descoperite urmtoarele proprieti ale problemei, care poart denumirea de teoreme "undamentale
ale programrii liniare4
Teorema 1. 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 .optime0 este nc,is i conve%. 7ac este i
mrginit atunci punctele e%tremale ale acesteia sunt c,iar soluiile admisibile
.optime0 de baz ale problemei.

?ele dou teoreme realizeaz e!ectiv 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 !init. 9n acest
moment s-ar prea c nu avem dec#t s lsm calculatorul s calculeze toate soluiile de baz i
valorile !unciei obiectiv n cele admisibile gsind-o prin comparare pe cea care d minimul sau
ma%imul !unciei printre acestea. $otui, aceast variant se dovedete nepractic la o analiz mai
atent, in#nd cont de urmtoarele observaii4
1. !aptul c numrul soluiilor de baz este !init 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 !ie rezolvat n timp util, adic repede. +ezolv#nd problema ca mai sus vom
avea, pentru o problem cu B; variabile i ); restricii, de calculat, listat i comparat
);
B;
? soluii de baz, adic n 8ur de 1;
);
. Presupun#nd c suntem dotai cu un
supercalculator care ar termina un miliard de baze pe secund, rezolvarea ar dura >;;;
11
Programarea liniar
ani. 7e alt!el, o problem ca cea de sus este !oarte mic n comparaie cu problemele
serioase ce au peste 1;;; de variabile i 1;; 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, !r ns s tim dac problema admite, de !apt, optim .ar putea s aib optim
in!init0.
>. 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.
@. &oluia optim, odat gsit, nu va !i 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 !i e!icient, un algoritm ar trebui s aib urmtoarele proprieti4
a0 s dispun de un criteriu de recunoatere a !aptului c problema nu are soluii admisibile2
b0 s dispun de un criteriu de recunoatere a !aptului c problema are optim in!init2
c0 s dispun de un criteriu de recunoatere dac o soluie este optim sau nu2
d0 s treac de la o soluie de baz admisibil la una cel puin la !el de bun .o soluie % este
mai bun dec#t o soluie G dac f.%0 L !.G0 ntr-o problem de ma%im i f.%0 M !.G0 ntr-o
problem de minim2
e0 s treac de la o soluie la cea mai bun dintre soluiile cel puin la !el de bune posibile
ca succesoare2
!0 s nu revin la o soluie de8a analizat2
g0 s e!ectueze un numr de iteraii comparabil polinomial cu dimensiunea problemei.
,0 s nu introduc erori de rotun8ire .sau nu prea mari02
i0 s !ie c#t mai simplu de implementat2
?ondiiile de mai sus reprezint de !apt un algoritm ideal. -a nceputurile cercetrii
operaionale era su!icient, de !apt, i un algoritm care s ndeplineasc mcar condiiile b0, c0, d0, e0
i ,0. (cest algoritm a !ost dat de K.B. 7antzig, n 1I@F, care la numit algoritmul simple*. 1l
rm#ne i n zilele noastre cel mai e!icient algoritm n ceea ce privete viteza de lucru, simplitatea i
implementarea pe calculator, pentru problemele care apar e!ectiv n practica economic.
$otui, el nu ndeplinea condiiile a0, !0 i g0.
?ondiia a0 este relativ uor de ndeplinit i ea este acoperit prin introducerea unei !aze
iniiale suplimentare la algoritmul simple%, rezult#nd algoritmul simple* +n dou "aze.
?ondiia !0 a !ost 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
!el de bun i tot aa, ast!el nc#t, dac nu se iau msuri de evitare, se poate a8unge la o soluie care
a mai !ost, !enomen numit ciclare. (st!el de e%emple a !ost e!ectiv gsite, unul !iind e*emplul lui
)eale prezentat mai 8os4
( )

'


+
+ +
+ +
+
F ,..., 1 i , ; %
1 % %
; >% %
)
1
1)% %
)
1
%
; I% % H% %
@
1
%
% D %
)
1
% ); %
@
>
ma%
i
D >
F D B @ )
F D B @ 1
F D B @
f
1)
Bazele cercetrii operaionale
&e observ imediat baza admisibil B
;
/ .a
1
,a
)
,a
>
0, de la care, aplic#nd algoritmul sub !orma
clasic, se vor obine succesiv bazele admisibile B
1
/ .a
@
,a
)
,a
>
0, B
)
/ .a
@
,a
B
,a
>
0, B
>
/ .a
D
,a
B
,a
>
0, B
@
/
.a
D
,a
F
,a
>
0, B
B
/ .a
D
,a
)
,a
>
0, B
D
/ .a
@
,a
)
,a
>
0 ... . ?ititorul poate veri!ica uor c toate aceste baze au ca
soluie de baz soluia .;,;,1,;,;,;,;0 i valoarea !unciei ;, dar nu ndeplinesc condiia de optim. Pe
de alt parte se vede c B
D
/ B
1
i deci algoritmul va repeta la in!init aceast succesiune de baze,
neating#nd niciodat valoarea ma%im
@
F
, corespunztoare soluiei .
@
>
,;,;,1,;,1,;0.
(ceast situaie este ngri8ortoare nu at#t din considerente practice imediate .nc nu a !ost
gsit o problem din practic la care s apar acest !enomen, toate e%emplele e%istente !iind
arti!icial construite, ca i cel de mai sus0 c#t din !aptul c un algoritm implementat pe calculator s-ar
putea s !ie pus n !aa unei ast!el de probleme, situaie n care n-am putea rezolva problema nici pe
calculator, nici manual, ea !iind prea mare. &ituaia a !ost depit prin di!erite te,nici suplimentare
adugate celei de trecere la o soluie cel puin la !el de bun .insu!icient, cum s-a vzut0, cea mai
cunoscut !iind cea care !olosete ordonarea le*icogra"ic a soluiilor, care va !i prezentat i n
aceast carte.
9n !ine, re!eritor la condiia g0, a durat mult timp p#n s-a demonstrat c algoritmul, sub
aceast !orm, nu este +n timp polinomial, un e%emplu !iind clasa de probleme de mai 8os, gsit
de Nlee i MintG n 1IF), n care algoritmul trebuie s analizeze )
n
baze .n / numrul de
necunoscute0 p#n la gsirea celei optime.
( )

'

,
_

n 1,..., 8 ; %
n 1,..., i 1;; % % 1; )
% 1; ma%
8
1 - i
i
1 - i
1 8
8
8 - i
n
1 8
8
8 - n
f
Pentru o ast!el de problem, la 1;; de variabile, algoritmul va avea )
1;;
1;
>;
iteraii, i
c,iar la o vitez de un miliard iteraii pe secund .mult peste puterea unui calculator actual0 va
termina n 1;
1>
ani.
3u se tie nc dac e%ist sau nu o alt modalitate de trecere de la o baz la alta, !olosind
tabelele simple%, prin care algoritmul s devin n timp polinomial. (u !ost ns gsii algoritmi
care nu !olosesc tabelele simple%, primul !iind 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 !ac calculele pe un calculator,
algoritmul se comport ntr-adevr !oarte ru, orice eroare propag#ndu-se imediat la tot tabelul cu
e!ecte !oarte mari. (cest lucru poate !i 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 !olosirea acestuia aduce in!ormaii mult mai ample dec#t gsirea soluiei propriu-
zise, este mult mai maleabil n cazul modi!icrilor ulterioare ale datelor problemei .vezi analiza
senzitivitii soluiei la datele problemei0, se preteaz mult mai bine la interpretri economice, este
uor de scris un program de calculator asociat, este implementat pe !oarte multe calculatoare i n
plus, aa cum aminteam mai sus, nc nu a aprut o problem practic n !aa 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*
1>
Programarea liniar
(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
!olosind aceast baz, rezult#nd ast!el variabilele principale n !uncie de cele secundare4
%
B
/ B
-1
b " B
-1
&%
&
9nlocuind variabilele, cu !ormula gsit, n !uncia obiectiv, obinem4
f.%0 /
$
B
c .B
-1
b " B
-1
&%
&
0 :
$
&
c %
&
/
$
B
c B
-1
b " .
$
B
c B
-1
& "
$
&
c 0%
&
/
/ f.x
B
0 " .
$
B
c B
-1
& "
$
&
c 0%
&
/ f.x
B
0 " .z"
$
&
c 0%
&
/ f.x
B
0 " %
&

unde4
f.x
B
0 /
$
B
c B
-1
b este valoarea !unciei obiectiv n soluia de baz

$
B
c B
-1
& / z este un vector n-m componente z / .z
m:1
, z
m:)
,...,z
n
0.
/ z "
$
&
c este un vector n-m componente / .
m:1
,
m:)
,...,
n
0

Abinem urmtoarea !orm a problemei4
( ) ( ) ( )

'

+
+
n 1,..., 8 , ; %
m 1,..., i % a %
% min sau ma%
8
n
1 m 8
i 8 i8 i
n
1 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
1
c
)
... c
m
c
m:1
... c
n
c
B
%
B
x
B
%
1
%
)
... %
m
%
m:1
... %
n
c
1
c
)

c
m
%
1
%
)

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

+

n
1 m 8
8 8
B
% x f
( )
B
x f oricare ar !i %
&
;

+

n
1 m 8
8 8
%
; oricare ar !i %
&
;
8
;, 8 / 1,...,n .toi
,
sunt poziti#i0
ntr-o problem e minim4
x
B
este soluie optim
( )

+

n
1 m 8
8 8
B
% x f
( )
B
x f oricare ar !i %
&
;
1@
Bazele cercetrii operaionale

+

n
1 m 8
8 8
%
; oricare ar !i %
&
;
8
;, 8 / 1,...,n .toi
,
negati#i0
Pentru a evita complicarea e%punerii vom presupune n continuare c problema este e
maxim, pentru cazul de minim raionamentul !iind 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 G sunt dou soluii admisibile de baz cu f.%0 f.G0 i numrul de
variabile principale prin care di!er cele dou este =, cu 1 = m, atunci e%ist un ir de soluii
admisibile de baz4 '%
1
/ %, %
)
, ..., %
=
/ G* ast!el nc#t4
1. f.%
i
0 f.%
i:1
0 oricare ar !i 1 i M =
). %
i
di!er de %
i:1
printr-o singur variabil, oricare ar !i 1 i M =
7in cele de mai sus rezult c e su!icient s cutm o soluie de baz admisibil mai bun
doar printre cele care di!er 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 !ie4
1. o soluie de baz .deci coloanele corespunztoare noii variabile s !ormeze un minor
principal02
). o soluie admisibil .adic s aib toate componentele pozitive02
>. o soluie mai bun2
@. cea mai bun posibil dintre soluiile mai bune.
Presupunem c nlocuim variabila principal %
i
.1 i m0 cu variabila secundar %
8
.m:1 8
m0. (ceasta este ec,ivalent cu a scoate din ecuaia i .singura n care apare %
i
0 variabila %
8
, n
!uncie de variabila %
i
i de celelalte variabile secundare. 1ste evident c acest lucru .care este
ec,ivalent cu !aptul c noua soluie trebuie s !ie de baz0 este posibil doar dac coe!icientul lui %
8
din aceast ecuaie este di!erit de ; .a
i,
-0. 9n acest caz avem succesiv4
%
i
:

n
8 =
1 m =
= i=
% a
: a
i,
%
8
/ x
i
%
8
:

n
8 =
1 m =
=
i8
i=
%
a
a
:
i8
a
1
%
i
/
i8
a
1
x
i

%
8
/
i8
a
1
x
i
"

n
8 =
1 m =
=
i8
i=
%
a
a
"
i8
a
1
%
i
9nlocuind variabila %
j
n celelalte ecuaii obinem4
%
s
:

n
8 =
1 m =
= s=
% a
: a
s8
.
i8
a
1
x
i
"

n
8 =
1 m =
=
i8
i=
%
a
a
"
i8
a
1
%
i
0 / x
s

%
s
:

,
_


n
8 =
1 m =
=
i8
i=
s8 s=
%
a
a
a a
"
i8
s8
a
a
%
i
/ x
s
"
i8
s8
a
a
x
i
pentru s / 1,...,m i s i
?on!orm !ormulelor de mai sus rezult c noua soluie de baz este admisibil dac4
1B
Programarea liniar
x
s
"
i8
s8
a
a
x
i
; oricare ar !i s /1,...,m di!erit 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 !i4
8
x
/
i8
a
1
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 !i dec#t aceea care
corespunde acelui a
i8
strict poziti# din coloana 8 din matricea B
-1
&, pentru care se obine valoarea
minim a rapoartelor dintre componentele soluiei de baz actuale i componentele coloanei 8.
Pentru 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 e!ect are sc,imbarea unei variabile din baz asupra sistemului. 1ste
important ns s vedem e!ectul ei i asupra !unciei obiectiv. Valoarea !unciei obiectiv n noua
soluie de baz va !i4
f.
B
x 0 /
( )
8 8
B
% x f
/
( )
i
i8
8
B
a
1
x x f
Pentru ca aceast soluie s !ie cel puin la !el de bun trebuie ca4
f.
B
x 0 f.x
B
0
( )
i
i8
8
B
a
1
x x f
f.x
B
0
;
a
1
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 e!ectiv doar dac pe coloana 8 din matricea B
-1
&
e%ist o component a
i8
strict pozitiv i va !i e!ectiv strict mai bun doar dac componenta
corespunztoare x
i
din soluia de baz este di!erit de ;, mbuntirea !iind egal cu i
i8
8
a
1
x
.
&ituaia n care toate componentele coloanei 8 din matricea B
-1
& sunt mai mici sau egale cu
; este lmurit de urmtoarea teorem4
Teorem4 7ac pe coloana 8 din matricea B
-1
&, 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 !i4 !
i
/ x
i
" a
i8
i vor !i toate
pozitive, in#nd cont de !aptul c toi a
i8
; i, deci, soluia va !i admisibil. Pentru o ast!el de
soluie, valoarea !unciei obiectiv este4
f.!

0 / f.x
B
0 "
8
. i avem4
( ) +

! f lim

deci imaginea !unciei ! este nemrginit i a!irmaia este demonstrat.
Presupunem 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
1D
Bazele cercetrii operaionale

,
_


>

<
+
i8
i
; a
m i 1
8
;
n 8 1 m
a
min ma%
i8
8
x
(ceast condiie este criteriul de intrare +n baz.
7eoarece calculul necesar gsirii acestuia este laborios, 7anzig a pre!erat nlocuirea acestei
alegeri cu alegerea acelui 8 care corespunde celui mai negativ
8
./ "
( )
8
;
n 8 1 m
8
ma%
<
+
0, 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%, !olosind !ormulele !iecruia4
x
B
/ B
-1
b
z /
$
B
c B
-1
(
/ z " c
(cest mod de lucru este e!ectiv !olosit n anumite variante ale algoritmului simple% .vezi
!orma revizuit0 dar el presupune calcularea inversei matricei B, ceea ce necesit !oarte mult timp.
(cest motiv era su!icient de convingtor pentru ca 7anzig s-i !i pus problema dac nu cumva
noul tabel simple% poate !i calculat pe baza !ostului tabel simple%, !c#nd mult mai puine calcule i
utiliz#nd !ormule uor de memorat i aplicat. (ceast ntrebare era natural de pus, dac inem cont
c noua soluie di!er de !osta soluie printr-o singur variabil. (ceste !ormule au !ost e!ectiv
gsite, ele put#nd !i obinute urmrind e!ectul nlocuirii lui %
i
cu %
8
asupra sistemului4
noua soluie de baz
B
x
se obine din !osta soluie cu !ormulele de8a gsite mai sus4
8
x
/
i8
a
1
x
i
i
s
x
/ x
s
"
i8
s8
a
a
x
i
pentru s i

noii coe!icienii ai variabilelor n cele m ecuaii vor !i4
1. variabil principal %
s
va avea coe!icientul 1 n ecuaia = i ; n celelalte ecuaii2
). o variabil secundar %
=
, di!erit de %
i
, va avea coe!icienii
i8
i=
s8 s=
a
a
a a
n ecuaiile
s i i coe!icientul
i8
i=
a
a
n ecuaia i.
>. noua variabil secundar %
i
va avea coe!icienii "
i8
s8
a
a
n ecuaiile s i i coe!icien-
tul
i8
a
1
n ecuaia i.
@. noua valoare a !unciei obiectiv va !i4 f.
B
x 0 /
( )
i
i8
8
B
a
1
x x f
B. noii
8
i obinem nlocuind n !uncia obiectiv variabila %
8
n !uncie de %
i
4
1F
Programarea liniar
f.%0 / f.
B
x 0 "

+

n
8 =
1 m =
= =
%
"
8
."

n
8 =
1 m =
=
i8
i=
%
a
a
"
i8
a
1
%
i
:
i8
a
1
x
i
0 /
/
( )
i
i8
8
B
a
1
x x f
"

,
_


n
8 =
1 m =
=
i8
i=
8 =
%
a
a
"

,
_

i8
8
a
%
i
/
/ f.
B
x 0 "

,
_


n
8 =
1 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 !ie !oarte multe !ormule complicate, !rumuseea algoritmului i meritul lui
7anzig const tocmai n !aptul 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 !orma 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
1. pe linia a doua se trec toate variabilele ntr-o ordine oarecare2
). pe prima linie se trec coe!icienii !unciei obiectiv, !iecare deasupra variabilei
corespunztoare2
>. se construiete matricea (, !iecare coloan !iind !ormat din coe!icienii unei
variabile din toate ecuaiile .ordinea n care se parcurg ecuaiile trebuie s !ie aceeai
pentru toate variabilele0, av#nd gri8 ca, coloanele s !ie trecute n ordinea n care au
!ost trecute variabilele pe linia )2
@. se construiete baza B, ordinea coloanelor !iind cea n care apar ele n matricea (2
B. se calculeaz B
-1
2
D. se calculeaz B
-1
( i se trece n partea central a tabelului2
F. se trec variabilele principale n a doua coloan, n aa !el nc#t, la intersecia liniei i
coloanei corespunztoare acestei variabile, s se a!le valoarea 1.
H. se trec n prima coloan coe!icienii corespunztori variabilelor principale din !uncia
obiectiv, !iecare n dreptul variabilei corespunztoare2
I. se calculeaz soluia de baz cu !ormula B
-1
b, av#nd gri8 ca ordinea n care au !ost
trecui termenii liberi n vectorul b s !ie aceeai cu ordinea n care au !ost parcurse
ecuaiile la !ormarea matricii (2
1;. se trec n a treia coloan valorile variabilelor principale din soluia de baz, !iecare n
dreptul variabilei corespunztoare2
11. se calculeaz f.x
B
0 nmulind dou c#te dou componentele coloanei 1 cu cele din
coloana > a!late pe aceeai linie i adun#nd toate produsele ntre ele .adic !acem
produsul scalar dintre c
B
i x
B
02
1). se calculeaz pe r#nd !iecare z
8
8 / 1,...,n un z
8
obin#ndu-se nmulind scalar c
B
cu
coloana 8 din B
-1
( a!lat n centrul tabelului .aceast linie se calculeaz i se trece
doar n primul tabel, scopul ei !iind calcularea lui 02
1>. se calculeaz pe r#nd !iecare
8
8 / 1,...,n scz#nd din linia lui z linia lui c .
8
/ z
8
- c
8
0
1H
Bazele cercetrii operaionale
Pasul 5$ &e analizeaz valorile
8
corespunztoare variabilelor secundare .e uor de vzut c
ntotdeauna, cei corespunztori variabilelor principale sunt toi ;, deci neinteresani0.
dac toi sunt mai mari sau egali cu ; atunci soluia actual este cea optim. 7ac
e%ist
8
/ ; n a!ara bazei, atunci pot aprea dou cazuri4
10 toate elementele din coloana a
8
din B
-1
( sunt mai mici sau egale cu ;. (tunci
toate soluiile de !orma x
B
- a
8
sunt soluii optime, unde L ; oarecare2
)0 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 )0, obinem toate soluiile de baz optime, mulimea
tuturor soluiilor optime !iind !ormat din toate combinaiile conve%e ale acestora.
7ac apare i cazul 10 atunci mulimea soluiilor optime este nemrginit !iind
!ormat din combinaiile conve%e ale soluiilor de !orma 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 1 m
8
min
<
+
. Variabila %
8
va !i cea care intr n noua baz. 7ac minimul este multiplu atunci alegem, la
nt#mplare, unul dintre acetia .cei minimi0.
Pasul 6$ &e analizeaz elementele coloanei a
8
din B
-1
(, corespunztoare variabilei alese la pasul ).
7ac toate sunt mai mici sau egale cu ; atunci problema are optim in!init i
algoritmul ia s!#rit2
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
10 minimul este strict pozitiv. 9n acest caz se alege unul dintre acetia la
nt#mplare2
)0 minimul este ;. (tunci x
i
corespunztori sunt ;, deci soluia este
degenerat i noua soluie este la !el de bun. (ceast situaie poate duce
la ciclarea algoritmului i alegerea la nt#mplare nu mai este su!icient,
!iind nevoie de o regul de alegere suplimentar care s evite ciclarea. A
metod de alegere se bazeaz pe !aptul c, aa cum vom vedea,
ntotdeauna prima baz este matricea unitate i n dreptul ei, n toate
tabelele simple%, se va a!la inversa bazei corespunztor !iecruia. 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
-1
i aa mai departe,
p#n minimul rm#ne unic. 3u este posibil s se epuizeze toate coloanele
lui B
-1
i minimul s rm#n multiplu, deoarece, n acest caz, am avea4
8 i
8 i
8 i
8 i
)
= )
1
= 1
a
b
a
b

, pentru toi indicii 8


=
ai coloanelor lui B
-1
, i
1
i i
)
!iind doi din
indicii care dau acelai minim p#n la s!#rit sau alt!el scris
8 i
8 i
8 i
8 i
)
1
= )
= 1
a
a
b
b


pentru orice 8
=
liniile i
1
i i
)
din B
-1
sunt proporionale, !apt ce
contrazice !aptul c B
-1
este inversabil.
1I
Programarea liniar
Pasul 8$ &e calculeaz componentele tabelului simple% corespunztor noii baze pe baza tabelului
actual i !olosind urmtoarele reguli4
1. se ncadreaz elementul a
i8
, a!lat la intersecia coloanei variabilei care intr n baz
cu linia variabilei care iese din baz, care a !ost numit de 7anzig pi#ot, ntr-un
dreptung,i
). coloana pivotului va avea 1 n dreptul pivotului i ; n rest .inclusiv
8
02
>. linia pivotului este linia actual mprit la pivot .inclusiv n soluia de baz02
@. restul elementelor se calculeaz cu regula dreptung,iului .inclusiv soluia de baz,
i f.x
B
00. +egula dreptung,iului se bazeaz pe observaia c n toate !ormulele
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 ast!el4 noua valoare /
produsul dintre elementele de pe diagonala pivotului minus produsul dintre cele
a!late 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
pivotului0
Aperaia 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
( )

'


+ + + + +
+ + + + +
+ + + + +
+ + + + +
1,...,D i , ; %
11 % ) % % ) % ) % >%
1B % ) % > % % > % ) )%
H % % > % % % ) %
% B % > % @ % % ) % > ma%
i
D B @ > ) 1
D B @ > ) 1
D B @ > ) 1
D B @ > ) 1
f
pentru care tim c baza !ormat din coloanele a
1
, a
)
, a
>
este admisibil. Pentru rezolvare vom aduce
problema la !orma standard de ma%im introduc#nd variabilele de abatere %
F
, %
H
, %
I
obin#nd4
( )

'


+ + + + + +
+ + + + + +
+ + + + + +
+ + + + +
1,...,I i , ; %
11 % % ) % % ) % ) % >%
1B % % ) % > % % > % ) )%
H % % % > % % % ) %
% B % > % @ % % ) % > ma%
i
I D B @ > ) 1
H D B @ > ) 1
F D B @ > ) 1
D B @ > ) 1
f
Vom aeza n tabelul simple% variabilele n ordinea indicilor i vom avea4
);
Bazele cercetrii operaionale
c /

,
_

;
;
;
B
>
@
1
)
>
, ( /

,
_

1 ; ; ) 1 ) ) 1 >
; 1 ; ) > 1 > ) )
; ; 1 1 > 1 1 ) 1
, B /

,
_

) 1 >
> ) )
1 ) 1
, c
B
/

,
_

1
)
>
vom calcula matricea B
-1
/

,
_

F
)
F
B
F
@
F
1
F
1
F
B
F
@
F
>
F
1
i pe baza acesteia soluia de baz x
B
/ B
-1
b /

,
_

>
)
1
i matricea B
-1
( /

,
_




F
)
F
B
F
@
F
)
F
1
F
>
1 ; ;
F
1
F
1
F
B
F
1
F
11
F
)
; 1 ;
F
@
F
>
F
1
F
>
F
)
F
D
; ; 1
care se trec n tabelul simple%4
> ) 1 @ > B ; ; ;
c
B
%
B
x
B
%
1
%
)
%
>
%
@
%
B
%
D
%
F
%
H
%
I
>
)
1
%
1
%
)
%
>
1
)
>
F
)
F
B
F
@
F
)
F
1
F
>
1 ; ;
F
1
F
1
F
B
F
1
F
11
F
)
; 1 ;
F
@
F
>
F
1
F
>
F
)
F
D
; ; 1



i n !inal se vor calcula valoarea !unciei obiectiv n aceast soluie, z
8
i
8
4
> ) 1 @ > B ; ; ;
c
B
%
B
x
B
%
1
%
)
%
>
%
@
%
B
%
D
%
F
%
H
%
I
>
)
1
%
1
%
)
%
>
1
)
>
F
)
F
B
F
@
F
)
F
1
F
>
1 ; ;
F
1
F
1
F
B
F
1
F
11
F
)
; 1 ;
F
@
F
>
F
1
F
>
F
)
F
D
; ; 1



1;
F
H
F
D
F
I
F
1>
F
1F
F
1I
1 ) >
F
H
F
D
F
I
F
))
F
@
F
I
; ; ;
)1
Programarea liniar
7in tabel se observ c e%ist
8
M ;, acetia !iind
@
,
B
,
D
,
H
iar minimul lor este
D
.
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 1
8
;
I 8 @
a
min ma%
i8
8
x
i deci de calculat4
i@
i
; a
> i 1
@
a
min
i@
x
>


/

,
_

F
)
F
D
)
,
1
min
F
I
/
)
>
iB
i
; a
> i 1
B
a
min
iB
x
>


/

,
_

F
1
F
11
>
,
)
min
F
@
/
11
H
iD
i
; a
> i 1
D
a
min
iD
x
>


/

,
_

F
)
F
1
F
>
>
,
)
,
1
min
F
))
/
>
))
iH
i
; a
> i 1
H
a
min
iH
x
>


/

,
_

F
B
>
min
F
D
/
B
1H
i n !inal ma% .
)
>
,
11
H
,
>
))
,
B
1H
0 /
>
))
i corespunde tot lui
D
.
9n concluzie, soluia actual nu este optim i soluia cea mai bun dintre cele posibile ca
succesoare va avea variabila %
D
printre cele principale.
(naliz#nd coloana a
D
observm c e%ist componente strict pozitive .de !apt, n acest caz
sunt c,iar toate0 i calculm pentru acestea rapoartele
i
obin#nd4

1
/
F
>
1
/
>
F
,
)
/
F
1
)
/ 1@,
>
/
F
)
>
/
)
)1

deci minimul corespunde variabilei %
1
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 @4
1. pivotul este a
1D
/
F
>
@. de e%emplu, pentru elementul de pe poziia a
>@
avem dreptung,iul4
i noua valoare de pe aceast poziie va !i4
F
>
F
)
F
D
F
>
F
>

,
_


/ "1
9n !inal, tabelul corespunztor noii baze va !i4
> ) 1 @ > B ; ; ;
c
B
%
B
x
B
%
1
%
)
%
>
%
@
%
B
%
D
%
F
%
H
%
I
))
F
D
F
>

F
>
F
)
Bazele cercetrii operaionale
B
)
1
%
D
%
)
%
>
>
F
>
B
>
F
>
)
1
>
)
;
>
1
1 1 ;
>
)
>
1
;
>
)
;
>
B
; ; 1
>
1
>
@
1
>
1
1
>
)
) ; ;
>
F



>
B)
>
1D
@
>
F
;
>
H
B ; ;
>
))

?ontinu#nd algoritmul vom gsi tabelele4
> ) 1 @ > B ; ; ;
c
B
%
B
x
B
%
1
%
)
%
>
%
@
%
B
%
D
%
F
%
H
%
I
B
)
;
%
D
%
)
%
H
>
1@
>
B
>
F
>
)
1
>
)
;
>
1
1 1 ;
>
)
>
1
;
>
)
;
>
B
; ; 1
>
1
>
)
;
>
1
1
>
1
1 1 ;
>
B



>
H;
>
H
;
>
1
;
>
@
1 @ ;
>
1@

> ) 1 @ > B ; ; ;
c
B
%
B
x
B
%
1
%
)
%
>
%
@
%
B
%
D
%
F
%
H
%
I
B
>
;
%
D
%
B
%
H
B
1
)
B
>
1
B
@
; ; 1 1
B
1
B
>
B
1
;
B
)
; 1 ; ;
B
>
B
1
B
>
;
B
1
1 ; 1 1
B
1
B
H

)H
B
)
;
B
1
; ; 1 @
B
@
B
))
Oltimul tabel conine soluia optim, deoarece toi
8
;. 7eoarece nu mai e%ist nici un
8
/ ; n a!ara celor din baz rezult c soluia optim este unic.
:eterminarea unei soluii de baz admisibile de start
Presupunem nc odat c problema este la !orma 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 !oarte mult.
+ezolvarea problemei pleac de la observaia c singura baz pentru care calculul de mai sus
se poate !ace 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.
)>
Programarea liniar
7ac toi termenii liberi pot !i !cui mai mari sau egali cu ; !oarte simplu, prin nmulirea
eventual cu "1 a restriciei respective, e%istena tuturor coloanelor matricii unitate este evident c
este !oarte 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 1 din acel vector, cu coe!icientul 1. (cest lucru poate !i obinut n dou
moduri4
a0 9ncep#nd de la prima ecuaie, cutm o variabil care are coe!icientul de acelai semn cu
termenul liber, o scoatem din aceast ecuaie n !uncie de celelalte variabile, o nlocuim
n celelalte i repetm procedeul pornind de la a doua ecuaie. Pot aprea trei cazuri4
10 la un moment dat obinem o ecuaie n care toi coe!icienii variabilelor au semn
contrar termenului liber, mcar unul dintre toi !iind di!erit de ;. 9n acest caz
ecuaia nu are evident soluie admisibil.pozitiv0 i deci problema nu are soluie2
)0 toi coe!icienii variabilelor i termenul liber sunt ;. 9n acest caz rezult c aceast
ecuaie rezult din cele anterioare i ea va !i eliminat, trec#ndu-se la urmtoarea2
>0 se epuizeaz toate ecuaiile. 9n acest moment, variabilele care au !ost scoase din
!iecare ecuaie !ormeaz baza dorit.
Procedeul de mai sus poate prea atractiv, dar presupune introducerea unui algoritm
di!erit de simple%, cu e!ect asupra omogenitii calculelor i a vitezei de lucru. 7e
asemenea, prin e!ectuarea calculelor de mai sus, datele problemei nu mai au semni!icaia
economic iniial, ne mai put#ndu-se !ace interpretri economice.
b0 Pentru toi vectorii coloan introducem n ecuaiile corespunztoare c#te o variabil cu
coe!icientul 1. 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 !orma4
(% / b i (% : G / b
1ste evident c o soluie a primului sistem este soluie i a celui de-al doilea .lum G / ;0
iar o soluie a celui de-al doilea este soluie i pentru primul doar dac G / ;. &copul
nostru va !i deci, ca pornind de la soluia iniial a celei de-a doua probleme s a8ungem
la o soluie a acesteia n care G / ;. Pin#nd cont c n soluiile de baz, variabilele
secundare sunt toate egale cu ;, vom ncerca s scoatem din baz variabilele G. &copul
algoritmului simple% este ns ma%imizarea !unciei obiectiv, nu scoaterea a uneia sau
alteia din variabile din baz. Pentru a ec,ivala cele dou scopuri putem proceda n dou
!eluri4
10 (legem o nou !uncie obiectiv care s-i ating e%tremul printre soluiile pozitive
c,iar pentru G / ; i n momentul c#nd am obinut soluia respectiv pornim cu
aceasta ca soluie iniial algoritmul simple% pentru !osta problem.
)0 (dugm la !osta !uncie obiectiv noile variabile cu nite coe!icieni de asemenea
natur alei nc#t aportul variabilelor G la valoarea !unciei s !ie contrar scopului
dorit .!oarte mari pozitivi ntr-o problem de minim i !oarte mari negativi ntr-o
problem de ma%im0.
Vom detalia n continuare cele dou metode4
Algoritmul simple* +n dou "aze
7at problema de programare liniar la !orma standard de ma%im4
( )

'



; %
b % (
% c ma%
$
f
)@
Bazele cercetrii operaionale
n care am aran8at de8a ca toi termenii liberi s !ie pozitivi .b ;0.
aza . ?onstruim problema4
( )

'

; G %,
b G % (
G min g
pe care o rezolvm cu algoritmul simple% pornind rezolvarea de la baza matrice unitate, put#nd
a8unge la dou situaii4
10 minimul "unciei g este strict poziti#. (ceasta este ec,ivalent cu !aptul c egalitatea (%
: G / b se poate obine doar pentru G L ; sau alt!el spus (% L b pentru orice % ;, deci
sistemul (% / b nu are soluii admisibile i n concluzie problema iniial nu are
soluie.
)0 minimul "unciei g este -. 9n acest caz, soluia optim obinut are G / ;, deci veri!ic
(% / b !iind n concluzie o soluie admisibil de baz a primei probleme.
aza 5 9ncep#nd de la soluia gsit la !aza 1 se rezolv problema iniial cu algoritmul simple%.
7ezavanta8ul metodei const n !aptul c tabelul simple% !inal de la !aza 1 trebuie modi!icat
pentru a obine tabelul simple% iniial de la !aza ) .vectorii %, c, c
B
, z, , f.x
B
0, se elimin coloanele
corespunztoare lui G0 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 !az0 necesar n anumite
variante ale algoritmului simple%.
Metoda bazei arti"iciale %metoda penalizrii&
7at problema de programare liniar la !orma standard de ma%im4
( )

'



; %
b % (
% c ma%
$
f
n care am aran8at de8a ca toi termenii liberi s !ie pozitivi .b ;0.
?onstruim problema4
( )

'

+

; G %,
b G % (
MG % c ma%
$
g
n care M este o constant presupus !oarte mare .mai mare dec#t orice constant care ar putea
apare n rezolvarea problemei0. +ezolvm problema cu algoritmul simple% pornind rezolvarea de la
baza matrice unitate, put#nd a8unge la trei situaii4
10 problema are optim in!init. 9n acest caz, problema iniial are optim in!init.
)0 problema are optim !init i n soluia de baz avem cel puin o variabil din vectorul G. 9n
acest caz problema iniial nu are soluii admisibile.
>0 problema are optim !init i n soluia de baz nu avem nici o variabil din vectorul G. 9n
acest caz problema iniial are optim !init, soluia optim i ma%imul !unciei !iind
)B
Programarea liniar
aceleai cu cele ale problemei modi!icate.
9n !inal vom remarca !aptul c variabilele G nu corespund unor mrimi economice ca
celelalte, ele !iind introduse doar ca un arti!iciu de calcul pentru a putea porni algoritmul simple%.
7in acest motiv ele se numesc #ariabile arti"iciale.
)D
Bazele cercetrii operaionale
Exemplu 5ie problema de programare liniar4
( )

'

+
+
+
; % , %
) % @ %
1; % % >
% > % ) ma%
) 1
) 1
) 1
) 1
f
5orma standard a problemei va !i4
( )

'

+
+ +
+
; % , % , % , %
) % % @ %
1; % % % >
% > % ) ma%
@ > ) 1
@ ) 1
> ) 1
) 1
f
(vem de8a termenii liberi i o coloan a matricii unitate
,
_

;
1
corespunztoare variabilei %
>
.
Pentru a obine i a doua coloan
,
_

1
;
vom introduce variabila %
B
cu coe!icientul 1 n a doua
ecuaie i n !inal vom avea de rezolvat problema4
Algoritmul simple* +n dou "aze Metoda bazei arti!iciale
( )

'

+ +
+ +

; % , % , % , % , %
) % % % @ %
1; % % % >
% min
B @ > ) 1
B @ ) 1
> ) 1
B
g ( )

'

+ +
+ +
+
; % , % , % , % , %
) % % % @ %
1; % % % >
M% % > % ) ma%
B @ > ) 1
B @ ) 1
> ) 1
B ) 1
f
(plic#nd algoritmul simple% n dou !aze vom obine n prima !az succesiunea de tabele4
; ; ; ; 1
c
B
%
B
x
B
%
1
%
)
%
>
%
@
%
B
; %
>
1; > 1 1 ; ;
1 %
B
) 1 @ ; -1 1
) 1 @ ; -1 1
1 @ ; -1 ;
; ; ; ; 1
c
B
%
B
x
B
%
1
%
)
%
>
%
@
%
B
; %
>
)
1I
@
11
; 1
@
1
@
1

; %
)
)
1
@
1
1 ;
@
1

@
1
; ; ; ; ; -1
(m obinut optimul egal cu ; n soluia de baz .%
>
,%
)
0 care va !i soluia iniial pentru
algoritmul simple% aplicat problemei iniiale n a doua !az. 1liminm din tabel coloana lui %
B
,
nlocuim valorile coe!icienilor !unciei obiectiv i deci i valoarea acesteia, valorile i obinem
tabelul4
)F
Programarea liniar
) > ; ;
c
B
%
B
x
B
%
1
%
)
%
>
%
@
; %
>
)
1I
@
11
; 1
@
1
> %
)
)
1
@
1
1 ;
@
1

)
>
@
B

; ;
@
>


) > ; ;
c
B
%
B
x
B
%
1
%
)
%
>
%
@
; %
>
@ ; -11 1 >
) %
1
) 1 @ ; -1
@ ; B ; -)
) > ; ;
c
B
%
B
x
B
%
1
%
)
%
>
%
@
; %
@
>
@
;
>
11

>
1
1
) %
1
>
1;
1
>
1
>
1
;
>
);
;
>
F

>
)
;
) > ; ;
c
B
%
B
x
B
%
1
%
)
%
>
%
@
; %
@
>H 11 ; @ 1
> %
)
1; > 1 1 ;
>; F ; > ;
&oluia optim a primei probleme este deci %
1
/ ; i %
)
/ 1; care d un ma%im al !unciei
egal cu >;. 7ac aplicm a doua metod vom obine succesiv tabele4
) > ; ; -M
c
B
%
B
x
B
%
1
%
)
%
>
%
@
%
B
; %
>
1; > 1 1 ; ;
-M %
B
) 1 @ ; -1 1
-)M -M -@M ; M -M
-M-) -@M-> ; M ;
) > ; ; -M
c
B
%
B
x
B
%
1
%
)
%
>
%
@
%
B
; %
>
)
1I
@
11
; 1
@
1
@
1

> %
)
)
1
@
1
1 ;
@
1

@
1
)
>
@
B

; ; @
>

M:
@
>

)H
Bazele cercetrii operaionale
) > ; ; -M
c
B
%
B
x
B
%
1
%
)
%
>
%
@
%
B
; %
>
@ ; -11 1 > ->
) %
1
) 1 @ ; -1 1
@ ; B ; -) ):M
) > ; ; -M
c
B
%
B
x
B
%
1
%
)
%
>
%
@
%
B
; %
@
>
@
;
>
11

>
1
1 -1
) %
1
>
1;
1
>
1
>
1
; ;
>
);
;
>
F

>
)
; M
) > ; ; -M
c
B
%
B
x
B
%
1
%
)
%
>
%
@
%
B
; %
@
>H 11 ; @ 1 -1
> %
)
1; > 1 1 ; ;
>; F ; > ; M
+ezultatul !inal este evident acelai.
;ARIAN1E ALE ALGORI1M2L2I 3IMPLE4
.$ Algoritmul simple* dual
Pentru e%punerea acestui algoritm trebuie introduse noiunile de baz dual admisibil i
soluie dual admisibil de baz. Prin de!iniie 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 reoptimizarea0 sau, ca i n cazul algoritmului
simple%, poate !i aplicat o procedur prin care s gsim aceast baz. Prezentarea acesteia este mai
complicat dec#t cea de la algoritmul simple% ast!el 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%.
Pentru a evita orice con!uzie, 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.
Presupunem c am adus problema la !orma 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
)I
Programarea liniar
urmtorii pai4
Pasul .$ &e construiete tabelul simple% asociat acestei baze, la !el ca i la algoritmul simple%
primal2
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 = 1
% min

0 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 / 1,...,n sunt mai mari sau egale cu -, atunci am
avea o ecuaie cu toi coe!icienii 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 0.


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% primal2
Pasul 9$ &e reia algoritmul de la pasul )
5$ orma secundar
1ste 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 ast!el de alternativ. Presupunem i n
acest caz c problema este la !orma standard de ma%im, c problema este la !orma standard i c
dispunem de o soluie iniial de baz care este primal sau dual admisibil.
Pasul .$ 7atele problemei vor !i organizate ntr-un tabel de !orma4
c
&
c % f %
&
f.x
B
0

&
c
B
%
B x
B
/ B
-1
b B
-1
&
c
&
%
&
; "<
n-m
&e observ c singura di!erena 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 minus0, !iind calculat la !el, 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.
>;
Bazele cercetrii operaionale
Pasul 8$ &e construiete tabelul asociat noii baze aplic#nd regulile4
10 Pivotul este acelai ca la tabelul simple%2
)0 -inia pivotului are "1 n dreptul pivotului i ; n rest2
>0 ?oloana pivotului se mparte la pivotul cu semn sc,imbat
@0 ?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
( )

'

+
+
+
; % , %
) % @ %
1; % % >
% > % ) ma%
) 1
) 1
) 1
) 1
f
5orma standard a problemei va !i4
( )

'

+
+ +
+
; % , % , % , %
) % % @ %
1; % % % >
% > % ) ma%
@ > ) 1
@ ) 1
> ) 1
) 1
f
iar dup introducerea variabilelor arti!iciale obinem4
( )

'

+ +
+ +
+
; % , % , % , % , %
) % % % @ %
1; % % % >
M% % > % ) ma%
B @ > ) 1
B @ ) 1
> ) 1
B ) 1
f
$abelul corespunztor va !i4
) > ;
c
B
%
B
x
B
%
1
%
)
%
@
-)M -M-) -@M-> M
) %
1
; -1 ; ;
> %
)
; ; -1 ;
; %
>
1; > 1 ;
; %
@
; ; ; -1
-M %
B
) 1 @ -1
(plicm simple% primal i obinem cel mai negativ
8
corespunztor lui %
)
i
i
minim
corespunztor lui %
B
. 9n acest moment avem o soluie de baz a problemei iniiale i putem elimina
variabila %
B
. Abinem4
) -M ; ) ;
c
B
%
B
x
B
%
1
%
B
%
@
c
B
%
B
x
B
%
1
%
@
)
>
@
B

M:Q -Q
)
>
@
B

-Q
) %
1
; -1 ; ; ) %
1
; -1 ;
> %
)
R S S -S > %
)
R S -S
; %
>
)
1I

@
11
-S S ; %
>
)
1I

@
11
S
>1
Programarea liniar
; %
@
; ; ; -1 ; %
@
; ; -1
-M %
B
; ; -1 ;
i n continuare4
>)
Bazele cercetrii operaionale
> ; > ;
c
B
%
B
x
B
%
)
%
@
c
B
%
B
x
B
%
)
%
>
@ B -)
>
);
>
F

>
)
) %
1
) @ -1 ) %
1
>
1;
>
1
>
1

> %
)
; -1 ;

> %
)
; -1 ;
; %
>
@ -11 > ; %
>
; ; -1
; %
@
; ; -1 ; %
@
>
@
>
11

>
1
) ;
c
B
%
B
x
B
%
1
%
>
>; F >
) %
1
; -1 ;
> %
)
1; > 1
; %
>
; ; -1
; %
@
>H 11 @
7in rezolvarea de mai sus se observ c aceast metod este mai e!icient doar dac
numrul variabilelor secundare este mai mic dec#t numrul variabilelor principale. $otui, motivul
principal pentru care a !ost introdus aceast variant, este e%istena unor probleme n care, pe
parcursul rezolvrii, se adaug !oarte multe restricii .de e%emplu rezolvarea problemelor n numere
ntregi0, pentru o restricie n plus tabelul simple% mrindu-se cu o linie i o coloan .cum se va
vedea la capitolul de reoptimizare0 iar tabelul corespunztor !ormei secundare doar cu o linie.
6$ orma re#izuit a algoritmului simple*
A problem mare .de e%emplu cu 1;;; variabile i 1;; restricii0 necesit n algoritmul
simple% introducerea, memorarea i lucrul cu un tabel cu 1;;.;;; componente, adic un numr
imens de date. 7in acest motiv, i remarc#nd !aptul c n algoritmul simple% doar o parte din
acestea contribuie e!ectiv la luarea deciziilor, s-a construit un algoritm care s in cont de
observaiile de mai sus, numit !orma revizuit a algoritmului simple%, n care se lucreaz cu
minimul necesar din datele tabelului simple%. (st!el, pentru testarea soluiei actuale i trecerea
eventual la o nou baz avem nevoie doar de urmtoarele elemente4
.10 inversa bazei curente B
-1
.)0 componentele vectorului pentru a !ace testul de optim i a gsi variabila care intr n
baz .dac soluia nu e optim0
.>0 coloana a
=
din B
-1
( corespunztoare celui mai negativ
8
.dac e%ist strict negativi0
pentru a !ace testul de optim in!init
.@0 soluia curent pentru a gsi variabila care iese din baz .dac mai e cazul0
(ceste elemente se aeaz ntr-un tabel de !orma4
c
B
%
B
x
B
/ B
-1
b B
-1
>>
Programarea liniar
f.x
B
0
T /
$
B
c B
-1
numit tabelul simple% redus.
Aperaiile ce se e!ectueaz n cadrul algoritmului simple% revizuit sunt .presupunem c
problema este la !orma standard de ma%im i deinem o soluie admisibil de baz i inversa bazei
corespunztoare04
Pasul .$ &e calculeaz
8
corespunztori variabilelor secundare cu !ormula cunoscut4

8
/
$
B
c B
-1
P
8
- c
8
/ TP
8
- c
8
unde P
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. &$AP
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
-1
P
=
care se ataeaz ca nou coloan la tabel4
c
B
%
B
x
B
/ B
-1
b B
-1
a
=
/ B
-1
P
=
f.x
B
0
T /
$
B
c B
-1

=
Pasul 8$ &e analizeaz componentele coloanei a
=
4
dac toate sunt mai mici sau egale cu ; problema are optim in!init. &$AP
dac e%ist a
i=
strict pozitivi se alege cel pentru care se obine4
a
r=
/
i=
i
; a
m i 1
a
min
i=
x
>

i variabila %
r
va iei din baz apoi se trece la pasul B.
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
( )

'

+
+
+
; % , %
) % @ %
1; % % >
% > % ) ma%
) 1
) 1
) 1
) 1
f
>@
Bazele cercetrii operaionale
5orma standard a problemei va !i4
( )

'

+
+ +
+
; % , % , % , %
) % % @ %
1; % % % >
% > % ) ma%
@ > ) 1
@ ) 1
> ) 1
) 1
f
iar dup introducerea variabilelor arti!iciale obinem4
( )

'

+ +
+ +
+
; % , % , % , % , %
) % % % @ %
1; % % % >
M% % > % ) ma%
B @ > ) 1
B @ ) 1
> ) 1
B ) 1
f
Iteraia .$ Prima baz este B / <
)
/ B
-1
corespunztoare variabilelor %
>
i %
B
de unde rezult x
B
/

,
_

)
1;
i T / .;,-M0<
)
/ .;,-M0. Primul tabel redus va !i4
;
-M
%
>
%
B
1;
)
1
;
;
1
-)M ; -M
&e calculeaz
&
/ T& " c
&
/ .;,-M0
,
_

1 @ 1
; 1 >
"
( ) ; > )
/
( ) M > M @ ) M
de unde rezult c cel mai negativ este
)
i vom calcula coloana a
)
/ <
)

,
_

@
1
/
,
_

@
1
care se adaug la tabelul anterior rezult#nd4
;
-M
%
>
%
B
1;
)
1
;
;
1
1
@
-)M ; -M -@M->

i
minim este cel corespunztor lui %
B
i deci variabila %
)
va intra n locul variabilei %
B
.
7up pivotare i eliminarea ultimei coloane obinem4
;
>
%
>
%
)
)
1I
R
1
;
-S
S
)
>
; Q
7eoarece variabila arti!icial %
B
a ieit din baz ea va !i eliminat din problem.
Iteraia 5$
&
/ T& " c
&
/ .;,Q0
,
_

1 1
; >
"
( ) ; )
/ .
@
>
@
B

0
cel mai negativ este
1
i vom calcula coloana a
1
/

,
_


@
1
@
1
;
1

,
_

1
>
/

,
_

@
1
@
11
care se
adaug la tabelul anterior rezult#nd4
;
>
%
>
%
)
)
1I
R
1
;
-S
S
@
11
S
>B
Programarea liniar
)
>
; Q
@
B

i
minim este cel corespunztor lui %
)
i deci variabila %
1
va intra n locul variabilei %
)
.
7up pivotare i eliminarea ultimei coloane obinem4
;
)
%
>
%
1
@
)
1
;
->
1
@ ; )
Iteraia 6$
&
/ T& " c
&
/ .;,)0
,
_

1 @
; 1
"
( ) ; >
/ .
) H
0
cel mai negativ este
@
i vom calcula coloana a
@
/
,
_


1 ;
> 1

,
_

1
;
/
,
_

1
>
care se
adaug la tabelul anterior rezult#nd4
;
)
%
>
%
1
@
)
1
;
->
1
>
-1
@ ; ) -)

i
minim este cel corespunztor lui %
>
i deci variabila %
@
va intra n locul variabilei %
>
.
7up pivotare i eliminarea ultimei coloane obinem4
;
)
%
@
%
1
>
@
>
1;
>
1
>
1
-1
;
>
);
>
)
;
Iteraia 8$
&
/ T& " c
&
/ .
>
)
,;0
,
_

; @
1 1
"
( ) ; >
/ .
;
>
F

0
cel mai negativ este
)
i vom calcula coloana a
)
/

,
_


;
1
>
1
>
1

,
_

@
1
/

,
_

>
1
>
11
care se
adaug la tabelul anterior rezult#nd4
;
)
%
@
%
1
>
@
>
1;
>
1
>
1
-1
;
>
11

>
1
>
);
>
)
;
>
F

i
minim este cel corespunztor lui %
1
i deci variabila %
)
va intra n locul variabilei %
1
.
7up pivotare i eliminarea ultimei coloane obinem4
;
>
%
@
%
)
>H
1;
@
1
-1
;
>; > ;
>D
Bazele cercetrii operaionale
Iteraia 9$
&
/ T& " c
&
/ .>,;0
,
_

; 1
1 >
"
( ) ; )
/ .
> F
0 L; deci soluia este optim .i unic0
&$AP
?,iar dac la prima vedere calculele par mai mprtiate i deci mai lente, pentru probleme
mari, pe calculator se economisete !oarte mult memorie i se mrete !oarte mult viteza de calcul.
$otui, marele avanta8 al acestei metode este acela c, la !iecare iteraie, se !olosesc datele
problemei iniiale, ceea ce !ace ca erorile inerente de rotun8ire s nu se propage, rm#n#nd n limite
acceptabile.
>F

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