Documente Academic
Documente Profesional
Documente Cultură
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:
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)
u v 1 w uv (1.15)
w
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
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
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)
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
T
x B x1 K xi K xm (1.19)
T
x R xm1 K xn (1.20)
T
cB
K c i K cm (1.21)
c
1
T
c R cm1 K cn (1.22)
10
- matricea coeficienilor restriciilor corespunztori variabilelor
secundare
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
x B B 1b B 1 Rx R (1.26)
x B B 1b (1.27)
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
x B B 1b B 1 Rx R x B G0 K 0
(1.30)
0 K
0
j
X T
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)
x Z max x (1.37)
c Zjc
k k
Z c j
0
k j
j j
j m1,n
Zl cl
max Z c Zjc
(1.38)
j
j m1,n
j j 0
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
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
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
~ 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
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
~x B B (1.50)
b
1
~
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
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
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
0 0 0 0 0 0
x 0; x 0; x 2200; x 150; x 100; x 200
1 2 3 4 5 5
g 2200 150 1 00 1 00
xBk min , ,
0
kl
min
k m1,n
9,12 0,48 1 1
g kl
24