Sunteți pe pagina 1din 46

1.

PROGRAMAREA LINIAR
O problem de programare liniar cere s se determine punctul de
extrem al unei funcii reale numit funcie obiectiv (sau, sub alte
denumiri funcie scop, funcie criteriu) reprezentat printr-o expresie
liniar, atunci cnd variabilele aceste funcii trebuie s respecte o
mulime de restricii reprezentate de un numr de egaliti sau inegaliti
care sunt, la rndul lor, liniare. n raport de cerinele problemei care
trebuie rezolvat se discut de probleme de maximizare, dac se cere
determinarea valorii maxime a funciei obiectiv, sau de probleme de
minimizare atunci cnd se cere gsirea valorii minime a acestei funcii.
1.1 Forme de scriere a problemelor de programare liniar
Exist mai multe forme echivalente sub care poate fi transcris
matematic problem de programare liniar. Cea mai folosit
reprezentare a problemelor de programare liniar este forma standard:

max(min)F (x) max(min)1 c1 x 2c x2 L cnx (1.1)


n
a11 x1 a12 x2 L a1n xn b1
a x a x L a x b
21 1
22 2 2n n 2 (1.2)

M
a m1 x1 a m 2 x 2 L a mn x n bm
xi 0 i 1, (1.3)
n

Dup cum se poate observa, o problem de programare liniar se


compune din funcia obiectiv (1.1), restriciile (1.2) i condiiile de
nenegativitate impuse variabilelor (1.3). Pentru a defini complet o
problem de programare liniar trebuie precizai coeficienii funciei
obiectiv ci, coeficienii restriciilor aij i termenii liberi ai restriciilor bj.
Determinarea soluiei optime a problemei de programare liniar
prin aplicarea condiiilor de extrem ale funciilor reale (derivatele
pariale de ordinul nti s fie nule) nu este posibil deoarece, datorit
1
formei particulare a funciei obiectiv, derivate pariale sunt constante i
n
deci nu se pot anula (gradientul funciei obiectiv este constant pe R ).
Pe lng forma standard, o problem de programare liniar poate
fi formulat sau poate fi transpus i sub alte forme. Trebuie subliniat c

2
diferitele forme ale problemei sunt echivalente, n sensul c au aceeai
soluie (valoarea maxim sau minim a funciei obiectiv este aceeai i
ea este atins n acelai punct).
Forma canonic este reprezentat de relaiile urmtoare:
n1 (1.4)
max(min)F (x) c i
xi
i 1

n1
j 1, m
i 1a ji xi b (1.5)
j
i
xi 0 (1.6)
1,n1
Trecerea de la forma canonic la forma standard se face prin
adugarea cte unei variabile suplimentare (numit variabil ecart sau
variabil de egalizare) pentru fiecare inecuaie a sistemului de restricii,
variabil care are rolul de a transforma inegalitatea n egalitate. Pentru a
pstra valoarea funciei obiectiv, aceste variabile suplimentare vor fi
introduse n funcia obiectiv cu coeficieni ci nuli. Valorile variabilelor
ecart nu sunt importante n rezolvarea problemei, ele artnd, de
exemplu, cantitile de resurse rmase nefolosite.
Fiecare dintre formele standard sau canonic pot fi transcrise i
sub form matriceal sau vectorial.
Transcrierea matriceal a unei probleme de programare liniar
sub form standard este urmtoarea:

max(min)F x cT (1.7)
x
(1.8)
Ax b
(1.9)
x0
unde
x Rn A [aij ]
b - vector
- matricea coeficienilor sistemului
Rm ul (cu m linii i n coloane);
c variabi - vectorul termenilor liberi ai restriciilor;
Rn lelor; - vectorul constant al coeficienilor funciei obiectiv.
Forma vectorial este reprezentat de relaiile:
max(min)F (x) cT x (1.10)
a1 x1 a2 x2 L an xn b (1.11)
x0
(1.12)

unde a1, ... ,an sunt vectorii coloan ai matricei A.

Considernd o problem de programare liniar sub forma


standard, transcris sub form matriceal, notnd cu Ab matricea
mn+1 obinut adugnd la dreapta lui A coloana termenilor liberi b,
condiiile necesare pentru ca aceast s aib soluie sunt urmtoarele:

rangA rangA (1.13)


b (1.14)
rangA n

care arat c sistemul de restricii trebuie s fie compatibil i


nedeterminat, ceea ce nseamn c exist o infinitate de soluii care
respect restriciile.

Dac (1.13) nu este ndeplinit sistemul restriciilor este


incompatibil, ceea ce nseamn c nici problema de optimizare nu poate
avea soluii, iar dac (1.13) este verificat dar rangA n acesta are o
soluie unic (deci nu se mai pune problema de a alege acea soluie
pentru care funcia obiectiv are valoarea cea mai bun).
n condiiile anterioare, se va admite n continuare c rang Am
(numrul de ecuaii ale sistemului de restricii). Aceast ipotez nu
reprezint o restrngere a generalitii problemei date: dac (1.13) i
(1.14) sunt verificate dar rangA se poate obine o problem
m
echivalent cu cea iniial eliminnd din sistemul de ecuaii liniare pe
cele secundare (ecuaiile ai cror coeficieni nu apar n determinantul
nenul care d rangul matricei A).

Aceste restricii secundare vor fi ndeplinite n mod automat de


orice soluie a problemei, obinut prin rezolvarea sistemului de restricii
simplificat, ceea ce garanteaz echivalena celor dou probleme.
1.2 Soluii ale problemelor de programare liniar
Lund n considerare sistemul de restricii i condiiile de
nenegativitate ale unei probleme de programare liniar dat se pot defini
mai multe tipuri de soluii care vor fi utilizate pentru fundamentarea
metodelor de rezolvare a problemei.

Se numete soluie admisibil (realizabil, fezabil) a problemei


n
de programare liniar dat un vector din R ale crui componente
verific simultan restriciile (1.2) i condiiile de nenegativitate (1.3).
Se numete soluie de baz o soluie admisibil care are cel mult
m componente strict pozitive (unde m este numrul de ecuaii din
sistemul de restricii). Deoarece o soluie admisibil trebuie s verifice
condiiile de nenegativitate celelalte componente ale soluiei de baz
sunt, bineneles, nule.
O soluie de baz care are exact m componente strict pozitive se
numete nedegenerat. Dac soluia de baz are mai puin de m
componente strict pozitive se numete degenerat.
Se numete soluie optim acea soluie admisibil creia i
corespunde o valoarea maxim (pentru problemele de maximizare) sau
minim (pentru problemele de minimizare) a funciei obiectiv pe
mulimea soluiilor admisibile. O problem de programare liniar poate
avea o soluie optim sau o infinitate de soluii optime. Se poate
demonstra c orice punct care aparine segmentului determinat de dou
soluii optime este, la rndul su, soluie optim
Deci, a rezolva o problem de programare liniar nseamn a gsi
rspunsul la ntrebarea: pentru care dintre vectorii din Rn ale cror
componente verific simultan condiiile (1.2) i (1.3) funcia obiectiv
are valoarea cea mai mare (sau cea mai mic)?

n funcie de specificul problemei care trebuie rezolvat, diferiii


coeficieni au semnificaii diferite. Astfel, coeficienii funciei obiectiv ci
reprezint beneficii unitare, preuri unitare, cheltuieli de producie
unitare. Coeficienii sistemului de restricii aij (denumii coeficieni
tehnici) reprezint consumuri specifice, capaciti de ncrcare a
utilajelor etc. Termenii liberi bi reprezint, n general, cantiti de
resurse disponibile sau limite tehnologice.
4
1.3 Metoda simplex de rezolvare a
problemelor de programare liniar
Metoda simplex de rezolvare a problemelor de programare liniar
a fost elaborat de G.B. Dantzig i are la baz cteva definiii i teoreme
importante, prezentate n continuare.
Se numete punct extremal al unui domeniu convex U al unui
spaiu vectorial un punct u care are proprietatea c, oricare ar fi alte
dou puncte v i w din U i parametrul real 0,1 , este adevrat
implicaia:

u v 1 w uv (1.15)
w

Deci, un punct extremal al unei mulimi este acel punct care nu


poate fi scris ca o combinaie liniar convex a altor dou puncte din
mulime, ceea ce este echivalent cu a spune c nu exist un segment
inclus n mulime (ale crui capete fac parte din mulimea respectiv)
cruia s-i aparin acest punct.

n
Se numete poliedru convex n R o mulime de forma:

n
i 1,
n

U x cij x j di p cij x j
j 1 j 1
dk k p 1,m (1.16)
Rn

Deci, un poliedru convex este o mulime convex care are un


numr finit de puncte extremale.
Se numete vrf al unui poliedru un punct extremal al acestuia.
Tr. Dac un poliedru este nevid, atunci el are cel puin un vrf. n
plus, numrul vrfurilor este finit.
n
Se numete simplex un poliedru convex din R care are (m+1)
puncte extremale.
n continuare se va considera o problem de programare liniar
sub form standard, reprezentat de relaiile (1.1), (1.2) i (1.3).
Dup cum se poate observa, mulimea soluiilor admisibile ale
n
acestei probleme este un poliedru n R .

5
Tr. Condiia necesar i suficient ca un punct x diferit de origine
al poliedrului:

(1.17)
U x R n n c x d i 1,m
ij j i
j 1

s fie vrf al acestuia este ca vectorii coloan C j Rm ai coeficienilor


corespunztori valorilor strict pozitive ale lui x s fie liniar
independeni.
Cu alte cuvinte o soluie admisibil x este vrf al poliedrului care
reprezint domeniul de admisibilitatea dac i numai dac coloanele din
matricea A care corespund unor componente nenule ale lui x sunt
m
vectori liniar independeni, deci formeaz o baz n R .
Deoarece A este o matrice cu m linii i n coloane, rezult c
numrul maxim de coloane liniar independente este m, deci orice punct
care constituie un vrf al poliedrului soluiilor admisibile are cel mult m
componente nenule.
n aceste condiii se poate enuna urmtoarea teorem:
n
Tr. Un punct din R reprezint un vrf al poliedrului soluiilor
admisibile dac i numai dac el este soluie de baz pentru problema de
optimizare respectiv.
Fiecrei soluii de baz (vrf al poliedrului) i se poate asocia baza
format din coloanele lui A corespunztoare componentelor nenule ale
vectorului care reprezint soluia de baz. Dac se cunoate baza se
obine soluia de baz foarte simplu prin rezolvarea sistemului liniar
care rezult din sistemul de restricii eliminnd necunoscutele ale cror
coloane nu fac parte din baz.
Trebuie subliniat faptul c baza asociat unei soluii de baz
nedegenerate este unic n timp ce baza asociat unei soluii de baz
degenerate nu este obligatoriu unic.
Tr. Dac problema de programare liniar considerat are o
soluie, atunci cel puin un vrf al poliedrului soluiilor admisibile este
de asemenea soluie.

6
Considernd o problem de maximizare, principiul metodei
simplex de rezolvare a problemelor de programare liniar este
0
urmtorul: plecnd dintr-un vrf x al poliedrului soluiilor admisibile se
0 1 2 k-1 k
construiete un ir de vrfuri x , x , x , . . . , x , x , . . . crora le
corespund valori cresctoare ale funciei obiectiv. Dac irul de vrfuri
se poate construi astfel nct s se respecte inegalitatea strict:

F x k 1
F x k
(1.18)

i dac problema are o soluie, innd cont de faptul c poliedrul


soluiilor admisibile are un numr finit de vrfuri, rezult c aceast
metod garanteaz obinerea soluiei optime ntr-un numr finit de pai.
Aplicarea metodei simplex presupune:
a. Determinarea unui vrf (soluie de baz) iniial.
b. Odat atins un vrf se analizeaz modul n care se modific
valorile funciei obiectiv de-a lungul muchiilor poliedrului
care se intersecteaz n acest vrf:
- dac valoarea funciei obiectiv nu mai crete cnd punctul
curent se deplaseaz de-a lungul nici uneia dintre aceste
muchii, vrful atins este soluia optim;
- dac exist o muchie de-a lungul creia funcia obiectiv
crete, atunci urmtorul punct din irul de vrfuri este cel n
care se ajunge de-a lungul acestei muchii.

Exemplu
Pentru ilustrarea metodei simplex se consider urmtoarea
problem de programare liniar bidimensional.

max
F x , x x1 2x2
x x 1 2
7
7
1 2

x1 2x 2 8
x1 5
x1 0, x2 0

8
Metoda simplex urmrete deplasarea pe frontiera domeniului
soluiilor admisibile, de-a lungul muchiilor simplexului, urmrind
proiecia gradientului funciei (care este constant) pe aceste muchii.
n fig.1.1 a fost ilustrat grafic metoda simplex de rezolvare a
problemei. Aici se poate vedea domeniul soluiilor admisibile (poligonul
convex OABCD) i dreptele ce conin punctele pentru care funcia
obiectiv are valoare constant.

x2
B(2,5)
5
F(x1,x2)=12
A(0,4)

3 Domeniul soluiilor
admisibile
grad(F) C(5,2)
2
F(x1,x2)=8
1
D(5,0)
6 x1
O(0,0) 1 2 3 4
F(x1,x2)=4

Figura 1.1 Metoda de rezolvare a problemei bidimensionale


Dac se pornete din origine ca soluie de baz iniial (unde
funcia obiectiv are valoare nul) se obine o cretere a acesteia prin
deplasare de-a lungul celor dou muchii OA i OB care se ntlnesc n
acest vrf. Deoarece creterea funciei este mai rapid de-a lungul
muchiei OA (proiecia gradientului funciei pe aceasta este mai mare)
urmtoarea soluie de baz va fi vrful A(0,4) caracterizat prin valoarea
F(0,4)=8. Din acest punct extremal se va urma latura AB pn n vrful
B, care reprezint soluia optim.
Soluia optim a problemei va fi x1=2 ; x2=5 iar valoarea maxim
a funciei obiectiv F(2,5)=12.
Aplicarea metodei simplex sub form grafic este imposibil
pentru problemele de mari dimensiuni, cu multe restricii. Din aceast
cauz trebuie obinut o metod analitic, iterativ, sub forma unui
algoritm bine structurat, cu pai i condiii de oprire precizate.
Pentru aceasta se consider c, la un moment dat, s-a obinut o
soluie de baz. Fr a restrnge generalitatea se poate considera c
aceast soluie are ca variabile de baz (cele care pot fi strict pozitive)
primele m componente, celelalte fiind nule (dac situaia nu este aceasta
se poate ajunge aici prin renumerotarea variabilelor problemei). n
aceste condiii se fac urmtoarele notaii:
- vectorul variabilelor de baz

T
x B x1 K xi K xm (1.19)

- vectorul variabilelor secundare

T
x R xm1 K xn (1.20)

- vectorul coeficienilor variabilelor de baz

T
cB
K c i K cm (1.21)
c
1

- vectorul coeficienilor variabilelor secundare

T
c R cm1 K cn (1.22)

- matricea coeficienilor restriciilor corespunztori variabilelor


m
de baz (matrice care constituie o baz n spaiul R ).
9
a11 a12 K a1m
M

B ai1 ai 2 K aim (1.23)
M
a
a m1 m 2 K amm

10
- matricea coeficienilor restriciilor corespunztori variabilelor
secundare

a1m1 a1m2 K a1n


M

R aim1 aim 2 K a (1.24)
in

M
a mm1 amm2 K a
mn

Cu aceste notaii problema de programare liniar poate fi pus


sub forma echivalent:

c B T c B T T
max F x c B
x c x R
B R

c R c

R
Bx Rx b
B R
(1.25)
xB0 ; xR0

Deoarece matricea B este nesingular, din sistemul de restricii,


prin nmulire la stnga cu inversa matricei B, se poate obine:


x B B 1b B 1 Rx R (1.26)

Aceast relaie permite determinarea unei prime soluii de baz


dac se consider v toate variabilele secundare sunt nule, respectiv
R
x =0. Pentru aceasta se observ c x B definit ca:


x B B 1b (1.27)

este soluie de baz dac nu are nici o component negativ.


Dac x B astfel determinat are componente negative soluia nu
este admisibil, deci nu poate fi nici soluie de baz. n acest caz se
poate considera o alt baz B (se alege o alt matrice ptratic
nesingular compus din m coloane ale matricei A) pn la obinerea
unei soluii de baz.
Valoarea funciei obiectiv pentru soluia de baz astfel
determinat va fi:

F x B ,K, x B ,
not
(1.28)
Z c B T x B c B T
0,K,0
B 1b
1 m

n continuare se va nota cu G matricea cu m linii i (n-m) coloane:

g1m1 g1m2 K g1n


M gim 2 (1.29)

G B 1R K gin
g
im1

M

g mm1 g mm K g mn
2

Deoarece G are aceeai dimensiune ca i R s-au folosit aceiai


indici.
Plecnd de la soluia de baz obinut se urmrete mbuntirea
sa iterativ astfel nct s se obin, la fiecare pas, o cretere a valorii
funciei obiectiv. n acest scop se consider c una dintre variabilele din
R
X devine nenul, deci intr ntre variabilele de baz. Fie aceast
component Xj cu j avnd o valoare ntre m+1 i n.
Valorile componentelor soluiei astfel modificate rezult din:

x B B 1b B 1 Rx R x B G0 K 0
(1.30)
0 K
0
j
X T

sau, particulariznd pentru o anumit component:


x iB xi gij x (1.31)
B j

Dup cum se poate observa din aceast relaie, pe msur ce x j


B
crete vor scdea toate componentele lui x crora le corespund valori gij
pozitive. Deoarece soluia care rezult trebuie s fie tot soluie de baz
(s aib tot cel mult m componente pozitive i restul nule) creterea lui
xi va trebui s se opreasc atunci cnd prima dintre componentele lui
B B
x devine nul, ceea ce corespunde minimului raportului x s gij :
x
min B 0
xj k gkj (1.32)
k 1,m g
kj

Valoarea funciei obiectiv pentru noua soluie va fi:

n m

F x ci xi B
c jx j
ci xi
i1 i1 (1.33)
m
m c
cx x B
c
i i
g j i ij j
i1 i1

sau, cu notaiile:

not
(1.34)
F x Z
not m

Z j ci gij
i1

se obine:

Z Z x j Z j c j
(1.35)

Deci, pentru ca funcia obiectiv s creasc ( Z Z ), deoarece xj


este pozitiv, trebuie ca diferena Z j c j s fie negativ.
Dac este ndeplinit condiia:
Z j cj 0 j m 1, (1.36)
n

valoarea funciei obiectiv nu mai poate crete prin trecerea unei


R B
variabile din x n x , deci soluia de baz obinut este soluia optim.
Dac exist o variabil pentru care
Z j c j 0 i, n plus,

gij 0 i 1,n atunci funcia obiectiv nu admite un minim finit.


n acest caz valoarea acestei variabile poate s fie orict de mare
B
deoarece, odat cu ea, cresc i celelalte variabile din x conform (1.31),
iar valoarea funciei obiectiv crete pn la infinit conform (1.35).
Rezult c prin analiza semnului diferenelor
Z j c i a
elementelor lui G se poate stabili:
j
-dac soluia de baz curent este soluie optim sau nu;
-dac problema dat nu are soluie optim.
n cazul n care nu rezult nici una dintre aceste concluzii, deci
soluia curent poate fi mbuntit, rezultnd o cretere finit a valorii
funciei obiectiv, pentru a obine soluia optim ntr-un numr minim de
pai ar trebui introdus printre variabilele de baz aceea pentru care
creterea funciei obiectiv ar fi maxim:

x Z max x (1.37)
c Zjc

k k

Z c j
0
k j

j j
j m1,n

n care valoarea xj se poate obine din (1.32).


Deoarece calculele ar fi destul de complicate, necesitnd
determinarea valorilor variabilelor xj, se prefer selectarea variabilei xl
pentru care:

Zl cl
max Z c Zjc
(1.38)


j
j m1,n
j j 0

Alegerea variabilei care intr n baz nu este critic ct timp se


respect condiia ca Z j c j s fie negativ. O alegere incorect poate
conduce doar la mrirea numrului de pai dup care se rezolv
problema i se obine soluia optim.
Variabila care trece n vectorul variabilelor secundare se obine
din (1.32) ca fiind prima variabil xs care se anuleaz:

B
xs xB (1.39)
g sl mi k g 0
n
k 1,m
kl
g kl
1.4 Algoritmul simplex primal
Se presupune cunoscut o soluie de baz iniial.
Algoritmul simplex primal este format din urmtoarele etape:

1. Se determin B i se calculeaz matricea G B 1 R
2. Se determin diferenele:
not
m
j J m 1 (1.40)
Z j c j c i g ij m 2 K n
c j i 1

i se analizeaz semnul acestora;


2.1 Dac Z j c j j soluia de baz este optim.
0 J
2.2 Dac exist diferene Z j c negative se noteaz cu
j

J1 j Z j cj (1.41)

J 0
mulimea indicilor diferenelor negative;
2. Se analizeaz semnul componentelor vectorilor coloan gj ai lui
G pentru indicii j din J1
3.1 Dac exist cel puin un vector g j J (care nu are j 1
0
nici o component pozitiv) rezult c problema nu are
soluie mrginit;
3.2 Dac pentru toi indicii jJ vectorii gj au componente
1
pozitive se determin vectorul al care va intra n baz din
condiia:
Zl cl max Z
j m1,n
j
c jJ (1.42)


j
1

i vectorul as care va iei din baz din condiia:


x (1.43)
xsB B
g kl 0
g sl
m1,n
min g klkk


3. Se formeaz noua baz prin nlocuirea lui as cu al, se determin
soluia corespunztoare acestei baze, i se revine la punctul 1.
Soluia iniial va fi mbuntit iterativ, pn la obinerea
soluiei optime sau pn se stabilete c problema nu are un maxim finit.
Pentru aplicarea algoritmului se completeaz un tabel numit tabel
simplex i care are forma urmtoare.
Tab. 1.1 Tabelul simplex
c1 c2 cm cm+1 ck cn
c Baza a1 a2 am am+1 ak an b
c1 a1 1 0 0 g1m+1 g1k g1n ~b
1

c2 a2 0 1 0 g2m+1 g2k g2n b~2

cm am 0 0 1 gmm+1 gmk gmn b~m


Zj Z1 Z2 Zm Zm+1 Zk Zn Z
Zj-cj 0 0 0 Zm+1-cm+1 Zk-ck Zn-cn

Valoarea Zj se obine ca produs scalar ntre vectorul c i coloana


ai din tabelul simplex. Pentru variabilele de baz se va obine Zi ci
(coloana fiind un versor al bazei), deci Zi ci 0 . Valoarea Z a funciei
obiectiv este egal cu produsul scalar dintre c i b.

Pentru trecerea la urmtorul tabel simplex se aplic metoda


pivotajului, pivotul fiind elementul aflat la intersecia liniei vectorul care
iese din baz cu coloana vectorul care intr n baz. Pentru aplicarea
acestei metode se procedeaz astfel:
-linia pivotului se mparte la acesta;
-cu excepia pivotului, coloana acestuia se completeaz cu 0;
-considernd c pivotul este aij, orice element care nu se gsete
nici pe linia i nici pe coloana pivotului se determin ca:

~ a a
a kl a kl ail kj

~ ij
(1.44)
b a
bk bk i kj
a
ij
a~,
~b
fiind valorile din tabloul modificat, iar a, b cele din tabloul iniial.

15
1.5 Dualitatea n programarea liniar
Se consider dou probleme de programare liniar:

max F (x) cT x
Ax (1.45)
bx0
i:
min U ( y) bT y
AT y c (1.46)
y0

Problema de programare liniar (1.46) reprezint duala problemei


(1.45). Se observ c, ntre problemele iniial i dual exist
urmtoarele legturi i deosebiri:
-se schimb tipul problemei: dac problema iniial cere
maximizarea funciei obiectiv, duala impune minimizarea i invers;
-vectorul coeficienilor funciei obiectiv i vectorul termenilor
liberi ai sistemului de restricii se schimb ntre ei;
-matricea sistemului de restricii n dual este reprezentat de
transpusa matricei sistemului de restricii al problemei iniiale;
-se modific semnul restriciilor, ceea ce nseamn, pentru a
transforma inecuaiile n ecuaii, variabilele ecart se adun la primul
termen n problema de maxim i se scad la problema de minim.
Tr. Dac problema iniial (1.44) are soluie optim atunci i
duala sa are soluie optim i reciproc. n plus:

max F x min U (1.47)


y

Trebuie subliniat faptul c perechea de probleme primal-dual nu


trebuie rezolvat separat: n ultimul tabel simplex corespunztor uneia
dintre probleme se gsete i soluia celeilalte probleme. Astfel, soluia
problemei duale este reprezentat de valorile gsite pe linia lui Zj n
coloanele corespunztoare vectorilor care au format baza n primul tabel
simplex.
16
1.6 Reoptimalizarea problemelor de programare liniar
n practic se ntmpl uneori ca, dup rezolvarea unei probleme
de programare liniar i gsirea soluiei optime, s se produc anumite
modificri n structura acestei probleme, modificri reflectate n
schimbarea anumitor parametri ai acesteia.
Determinarea noii soluii optime este posibil, bineneles, prin
rezolvarea noii probleme obinute, dar cu un efort de calcul considerabil
(n special n cazul problemelor de mari dimensiuni). n acest caz se
poate ncerca reoptimalizarea, pornind de la problema iniial i de la
soluia sa optim.
Cele mai frecvente modificri constau n variaii ale vectorului
resurselor b, modificarea coeficienilor funciei obiectiv C, modificarea
coeficienilor sistemului de restricii aij, apariia unor restricii
suplimentare, apariia unor variabile suplimentare. Astfel, se pot
produce modificri la nivelul stocurilor de resurse disponibile, variaii
ale parametrilor acestor resurse, ceea ce conduce la modificarea
consumurilor specifice, schimbri n parametrii tehnologici ai
instalaiilor ca urmare a unor defectri sau finalizrii unor lucrri de
retehnologizare, intrarea n funcionare a unor agregate suplimentare,
apariia unor restricii datorate unor factori de mediu ambiant.
Metodele de reoptimalizare pentru fiecare caz sunt fundamentate
pornind de la expresiile soluiei de baz (1.27) i condiiilor de optim
(1.36) i analiznd modul n care sunt influenate acestea de schimbrile
produse n problem.
Prin aplicarea diferitelor tehnici de reoptimalizare se pot obine
reduceri ale efortului de calcul sau a timpului de calcul (aspect extrem
de important n conducerea proceselor n timp real, unde timpul n care
este disponibil soluia este critic).
Trebuie subliniat faptul c eficiena acestor metode depinde att
de tipul modificrilor produse ct i de amplitudinea (valoarea) acestor
modificri.

17
n sistemele reale pot aprea situaii n care se produc mai multe
modificri simultan. n acest caz se pot analiza succesiv fiecare
schimbare aprut, soluia final fiind obinut ca rezultat al ultimei
analize efectuate.

18
1.6.1. Modificarea coeficienilor funciei obiectiv c
n acest caz, deoarece vectorul termenilor liberi ai restriciilor b i
matricea A au rmas neschimbate (deci i B, R i G), soluia optim a
problemei iniiale, dat de (1.27) rmne soluie de baz pentru
problema modificat (deoarece are toate componentele pozitive).
ntrebarea este dac aceast soluie de baz mai este soluie optim
pentru problema modificat. Deoarece coeficienii funciei obiectiv s-au
modificat de la c la c~ , condiiile de optim (1.36) pot fi scrise vectorial,
lund n considerare relaiile (1.34) i (1.29):

~ (1.48)

Z j c~ B T B c~
~ 1
jc a 0

j j

Putem avea dou situaii:


a. Condiiile (1.48) sunt verificate. n acest caz soluia optim a problemei
iniiale rmne soluie optim i pentru problema modificat. Rezolvare
problemei modificate se face prin modificarea coeficienilor ci n
ultimul tabel simplex, recalcularea valorilor Zj i a diferenelor Zj-cj, deci
cu un efort de calcul minim.
Trebuie subliniat faptul c, prin modificarea coeficienilor funciei
obiectiv, se modific valoarea optim a acesteia chiar dac soluia
optim (punctul n care valoarea optim este atins) rmne aceeai.
Valoarea optim a funciei obiectiv pentru problema modificat va fi
dat de (1.28) cu modificrile coeficienilor ci:
~
Z c~ B T B 1 b

(1.49)
~ ~
b. Exist diferene Z j c j negative. n acest caz soluia optim a
problemei iniiale este soluie de baz a problemei modificate dar nu
este soluie optim. Pentru rezolvarea problemei se continu de la
ultimul tabel simplex al problemei modificate. n general, pentru
modificri mici aduse problemei date rezult modificri mici ale soluiei
problemei. Soluia final va fi obinut ntr-un numr mai mic de pai
dect dac s-ar porni de la o soluie de baz iniial arbitrar. n plus, nu
mai este necesar determinarea soluiei de baz iniiale.
1.6.2. Modificarea vectorului b
Soluia optim a problemei iniiale, care este i soluie de baz,
~
este dat de (1.27). Prin modificarea lui b n b , se vor modifica i
componentele acestei soluii:

~x B B (1.50)
b
1
~

Putem avea dou situaii:


sunt pozitive, deci soluia
a. Toate componentele lui B 1
~
b
transformat este tot o soluie de baz. ntrebarea care se pune este dac
reprezint i soluie optimal pentru problema modificat. Din (1.48) se
observ c n condiiile de optimalitate nu apar componentele vectorului
b.n consecin, soluia optim a problemei iniiale reprezint soluie
optim i pentru problema modificat.
b. Soluia modificat are componente negative, deci nu mai este
soluie de baz. Deoarece n dual vectorii c i b si schimb rolul, iar c
a rmas nemodificat, soluia optim a problemei duale a rmas soluie
de baz, dar nu mai este soluie optim. Procesul de optimizare se poate
continua pentru dual ncepnd cu aceast soluie ca soluie de baz
iniial. Odat cu obinerea soluiei optime a problemei duale se obine
i soluia optim a problemei modificate.

1.6.3. Introducerea unei noi variabile


n cazul introducerii de noi variabile n problem, datorit
faptului c numrul de restricii rmne acelai, aceast variabil
suplimentar poate fi considerat o variabil secundar. n funcie de
valoarea diferenei:
B
Z n1 cn1 B an1 (1.51)

T
1
cn1

se poate trage concluzia c soluia optim a problemei iniiale rmne


soluie optim i pentru problema modificat atunci cnd valoarea dat
de (1.51) este pozitiv (cu valoare nul pentru variabila suplimentar)
sau procesul de optimizare trebuie continuat de la ultimul tabel simplex
In cazul n care diferena (1.51) este negativ.
1.6.4. Modificarea unui coeficient din matricea restriciilor
Dac se presupune c se modific valoarea coeficientului aij din
sistemul de restricii al probelmei, influena acestei modificri asupra
procesului de optimizare este diferit dup cum acesta aparine matricei
B sau matricei R.
a. n cazul n care se modific valoarea coeficientului aij al unei variabile
secundare soluia optim deja obinut pentru problema iniial rmne
soluie de baz pentru cea modificat deoarece B i b n (1.27) nu sunt
afectate. n schimb, coeficienii Zj vor fi diferii, conform relaiilor
(1.24), (1.29) i (1.34), i deci i diferenele Z j c j . n funcie
de semnul acestorase poate trage concluzia c soluia deja obinut
rmne soluie optim (atunci cnd toate diferenele sunt pozitive) sau
c optimizarea trebuie s fie reluat, ncepnd cu ultimul tabel simplex
(dac cel puin o diferen este negativ).
b. n cazul n care modificarea afecteaz un coeficient al unei variabile din
baz, analiza este mai dificil deoarece schimbrile sunt
-1
mai importante: se modific B (i deci B ), x B , G i Z. Se pot obine
situaii n care soluia optim iniial nu mai este soluie de baz (dac
B
x B are componente negative), este soluie de baz dar nu este
1
b
optim (exist diferene Z j c j negative) sau rmne soluie optim. n
fiecare situaie se procedeaz n mod corespunztor.

1.6.5. Introducerea unei noi restricii


n cazul adugrii unei noi restricii la sistemul deja existent
numrul variabilelor de baz se mrete cu o unitate (dac restricia este
independent fat de cele deja considerate) deoarece numrul
variabilelor de baz este egal cu numrul restriciilor.
n general, dac soluia optim determinat pentru problema
iniial verific restricia nou introdus ea rmne soluie optimal,

20
valoarea variabilei de baz suplimentare fiind obinut prin nlocuirea
variabilelor deja cunoscute n restricia suplimentar.
Dac soluia cunoscut nu verific restricia nou introdus
procesul optimizrii trebuie reluat.

21
Aplicaie
S se determine ncrcarea optim a dou grupuri ale unei
centrale termoelectrice cu puterile nominale de 100 i 200 MW. Cele
dou grupuri utilizeaz crbunele combustibil de baz i pcur
combustibil suport. Consumurile specifice sunt de 0,4 tcc/MWh (din
care 5% combustibil suport) pentru primul grup i 0,3 tcc/MWh (din
care 8% combustibil suport) pentru cel de al doilea grup. Cantitile de
combustibil disponibile pentru o zi de funcionare sunt de 2200 tcc
echivalent crbune i 150 tcc echivalent pcur. Criteriul de optimizare
cere s se produc o cantitate ct mai mare de energie cu combustibilul
disponibil.

Rezolvare
Se noteaz cu x1 puterea produs de primul grup i cu x2 puterea
produs de cel de al doilea grup.
Formularea matematic a aceste probleme este urmtoarea:

max24x1 24x 2
0,95 24 0,4x1 0,92 24 0,3x 2 2200
0,05 24 0,4x 0,08 24 0,3x 150
1 2
x 100
1
x 2 200
x1 0; x2 0

Dup cum se poate observa este vorba de o problem de


optimizare sub form canonic. Pentru a o transforma sub form
standard se introduc variabilele ecart suplimentare x3, x4, x5, x6 care
transform inegalitile n egaliti, problema modificat fiind:

max24 x1 24 x2 0 3x 0 4x 0 5x 0 5 x
9,12x1 6,624x 2 x 3 2200
0,48x 0,576x x 150
1 2 4
x x 100
1 5
x 2 x 6 200
x1 0; x2 0; x3 x4 0; x5 x6 0
0; 0;
Elementele care permit punerea acestei probleme sub form
standard matriceal sunt:

c
24 0 0 0 0
T

24
9,12 6,624 1 0 0 0
0,48 0,576 0 1 0 0
A 0 0 0 1 0
1
0 1501 1000 0 0T 1
b 200
2200

O mprire foarte simpl a matricei A care permite obinerea


soluiei iniiale de baz i iniializarea algoritmului este:

1 0
0 1 0 0 9,12 6,624
0,48 0,576
0 0
B I RG
0 0 1 0 1 0
;
0 0 0 1
0 1
0 0 0 c R 24
T T
cB
0 ; 24

care corespunde soluiei iniiale:

0 0 0 0 0 0
x 0; x 0; x 2200; x 150; x 100; x 200
1 2 3 4 5 5

cu o valoare nul a funciei obiectiv.


n continuare se completeaz tabelul simplex. Pentru aceasta se
pornete de la soluia iniial de baz pentru care se determin valorile
coeficienilor Zj fcnd produsul scalar dintre coloana c i coloana aj.
De exemplu:

Z1 c Ta1 0 9,12 0 0,48 0 1 0 0 0 0 0

Aceti coeficieni se utilizeaz pentru determinarea diferenelor


Zj-cj pentru coloanele aj care nu fac parte din baz.
Deoarece ambele diferene care intereseaz la acest caz (Z1-c1 i
Z2-c2 ) sunt negative, rezult c soluia nu este optim. Din faptul c att
vectorul a1 ct i vectorul a2 are componente pozitive, rezult c nu se
poate trage concluzia c nu exist soluie optimal.
Diferenele Zj-cj negative fiind, n acest caz, egale, se alege
arbitrar a1 ca fiind noul vector care intr n baz.
Pentru determinarea vectorului care iese din baz se calculeaz:

g 2200 150 1 00 1 00
xBk min , ,
0
kl
min

k m1,n
9,12 0,48 1 1

g kl

deci vectorul care iese din baz va fi a5.


Soluia optim pentru aceast problem este urmtoarea:

x3 115; x2 177,08; x1 100; x3 115; x6 22,91; x4 x5 0

Dup cum se poate observa, pentru a obine cantitatea maxim de


energie grupurile trebuie ncrcate cu puterile de 100 MW i respectiv
177 MW, deci trebuie ncrcat cu puterea nominal grupul care are
consumul specific maxim, contrar a ceea ce era de ateptat.

Problema dual corespunztoare problemei date va fi:


min2200 y1 150 100 200 y
y2 y3 4

0,95 24 0,4 y1 0,05 24 0,4 y2 24


y
y4 24
3

0,92 24 0,3y1 0,08 24 0,3y2


y1 y2 0; y3 y4 0
0; 0;
a crei soluie poate fi gsit pe linia ultimului tabel simplex, pe linia Zj
n coloanele a3a6 care au alctuit prima baz: y1=0; y2=41,66; y3=4;
y4=0.
24 24 0 0 0 0
C Baza a1 a2 a3 a4 a5 a6 b
0 a3 9,12 6,624 1 0 0 0 2200 2200 150 100
min , ,
0 a4 0,48 0,576 0 1 0 0 150 9,12 0,48 1
0 a5 1 0 0 0 1 0 100 100
1
0 a6 0 1 0 0 0 1 200
Zj 0 0 0 0 0 0 0
Zj-cj -24 -24 0 0 0 0
0 a3 0 6,624 1 0 -9,12 0 1288 1288 102 200
min , ,
0 a4 0 0,576 0 1 -0,48 0 102 6,624 0,576 1
24 a1 1 0 0 0 1 0 100 102
0,576
0 a6 0 1 0 0 0 1 200
Zj 24 0 0 0 24 0 2400
Zj-cj 0 -24 0 0 0 0
0 a3 0 0 1 -11,5 -3,6 0 115
24 a2 0 1 0 1,736 -0,833 0 177,08
24 a1 1 0 0 0 1 0 100
0 a6 0 0 0 -1,736 0,833 0 22,91
Zj 24 24 0 41,66 4 0 6649,9
Zj-cj 0 0 0 41,66 4 0

24