Documente Academic
Documente Profesional
Documente Cultură
min(max)!
, , ,...,
, , ,...,
1
1
12
0 12
(1.3)
sau matricial:
| | | |
| | | | | |
| |
z C X
A X D
X
T
= =
=
min(max)!
, 0
(1.4)
Metode de optimizare
Tehnici de optimizare n energetic Pag:8
| | | |
C c c c
T
n
=
1 2
...
(1.5)
| | | |
X x x x
T
n
=
1 2
...
(1.6)
| |
A
a a a
a a a
a a a
n
n
m m mn
=
(
(
(
(
11 12 1
21 22 2
1 2
...
...
.... ...... ..... .....
...
(1.7)
| | | |
D d d d
T
m
=
1 2
...
(1.8)
Vectorul [D] mai este denumit i vectorul resurselor. Vectorii coloan ai matricei [A],
vectori de dimensiune m n spaiul vectorial n dimensional i vom nota cu [V
j
]:
| | | |
V a a a
j
T
j j mj
=
1 2
....
(1.9)
In practic se ntlnesc mai des formele canonice ale problemei de programare linear:
| | | |
| | | | | |
| |
z C X
A X D
X
T
= =
min!
, 0
(1.10)
| | | |
| | | | | |
| |
z C X
A X D
X
T
= =
max!
, 0
(1.11)
Orice problem de programare liniar poate fi adus la forma standard (1.4). Astfel
problema (1.10) poate fi scris:
| | | |
| | | | | | | |
| | | |
z C X
A X X D
X X
T
e
e
= =
=
min!
, 0 0
(1.12)
iar problema (1.11) devine:
Metode de optimizare
Tehnici de optimizare n energetic Pag:9
| | | |
| | | | | | | |
| | | |
z C X
A X X D
X X
T
e
e
= =
+ =
max!
, 0 0
(1.13)
O soluie a problemei care satisface restriciile se numete program admisibil. Un program
care are cel mult m variabile nenule se numete program de baz (n condiiile rang(A)=m).
1.2.2. Proprieti ale problemei de programare liniar
a) Mulimea programelor admisibile ale problemei de programare liniar este convex.
Dac [X
1
] i [X
2
] sunt programe admisibile, atunci trebuie s artm c i programul [X]
obinut prin combinaia liniar a celorlalte dou este un program admisibil.
| | | | | |
X X X = + ( ) , [0, ] 1 1
1 2
(1.14)
Este evident c dac [X
1
] 0 , [X
2
] 0, atunci [X] 0. Scriind restriciile pentru
cele dou programe i nmulindu-le cu (1-), respectiv , vom obine
| | | | | |
| | | | | |
A X D
A X D
=
=
1
2
1 ( )
(1.15)
i adunnd cele dou ecuaii:
| | | | | | ( ) | | | |
| | | | | |
A X X D D
A X D
+ = +
=
( ) ( ) 1 1
1 2
(1.16)
adic [X] este tot un program admisibil.
b) Mulimea programelor optime este convex:
Dac [X
1
] i [X
2
] sunt programe optime, atunci trebuie s artm programul [X] dat de
(1.14) este dea asemenea optim. Deoarece ambele programe sunt optime, valoarea funciei obiectiv
va fi aceeai:
| | | |
| | | |
z C X
z C X
opt
T
opt
T
=
=
1
2
1 ( )
(1.17)
i prin adunare
Metode de optimizare
Tehnici de optimizare n energetic Pag:10
| | | | | | ( )
| | | |
( ) ( ) 1 1
1 2
+ = +
=
z z C X X sau
z C X
opt opt
T
opt
T
(1.18)
adic programul [X] este de asemenea optim.
c) Dac o problem de programare liniar admite un program, ea admite cel puin un
program de baz.
Fie un program [X] care are n valori nenule. Vom putea scrie:
| | | |
x V D
j
j
n
j
=
=
1
(1.19)
Deoarece rang(A)=m < n atunci cei n vectori ai matricei a vor fi liniar dependeni, adic
j
, j=1,2,..,n, nu toi nuli astfel nct:
| |
j
j
n
j
V
=
=
1
0
(1.20)
Sumnd (1.19) i (1.20) nmulit cu un coeficient R vom avea:
( ) | | | |
x V D
j j j
j
n
+ =
=
1
(1.21)
Pentru ca programul cu variabilele x'
j
= x
j
+
j
, j=1,2,..,n, care satisface restriciile de tip
egalitate, s satisfac i restriciile x'
j
0, j=1,2,..,n este necesar ca:
x j n
j j
+ = 0 12 , , ,...,
(1.22)
Alegnd pentru R valoarea pentru care una dintre restricii este satisfcut la limit, vom
obine:
=
j
j
j
x
inf
0
(1.23)
atunci programul [X']=[X]+
0
[] va avea n-1 componente nenule, componenta pentru care este
satisfcut relaia (1.23), anulndu-se.
Metode de optimizare
Tehnici de optimizare n energetic Pag:11
Procedeul de mai sus se poate repeta pn cnd relaia (1.20) scris pentru n-1, n-2,..
componente nenule nu mai este satisfcut. Acest lucru se va ntmpla atunci cnd numrul de
componente nenule va fi egal cu m, adic atunci cnd variabilele din baz vor fi independente.
d) Dac o problem de programare liniar admite un program optim ea va admite cel puin
un program optim de baz.
Fie un program [X] optim, cu n componente nenule. Fiind un program sunt satisfcute rel.
(1.19), (1.20) i (1.21).
Funcia obiectiv pentru soluia [X']=[X]+[] va fi:
| | | | | | | | | | | |
z C X C X C
T T T
= = + '
(1.24)
i ntruct [X] este un program optim, rezult:
| | | |
z z C
opt
T
= +
(1.25) Deoarece R i z nu poate fi mai mic dect z
opt
n cazul problemelor de minim, iar
z nu poate fi mai mare dect z
opt
n cazul problemelor de maxim, rezult ca necesar:
| | | |
C
T
= 0
(1.26)
i n consecin, valoarea funciei obiectiv z pentru programul [X']=[X]+[] nu depinde de
valoarea lui . Alegnd pentru valoarea
0
,
dat de (1.23) se obine un nou program optim cu n-1
componente nenule. Continund acest raionament se ajunge la un program optim cu m componente
nenule, adic un program optim de baz.
1.2.3. Algoritmul Simplex
Considerm problema de minim sub forma standard:
| | | |
| | | | | |
| |
z C X
A X D
X
T
= =
=
min!
, 0
(1.27)
Considernd rang(A)=m < n, cu eliminarea eventual a unor ecuaii inutile (combinaii
lineare ale altora) i c avem o soluie de baz [X
B
] neoptim vom cuta soluii de baz care s
Metode de optimizare
Tehnici de optimizare n energetic Pag:12
conduc la o valoare mai mic a funciei obiectiv. Evident situaiile n care soluia nu este de baz
nu intereseaz deoarece, aa cum s-a artat n paragraful anterior, programele pot fi transformate
uor n programe de baz. Pe de alt parte, n cazul unei soluii de baz, variabilele din afara bazei
sunt nule. Considernd c variabilele din afara bazei nu sunt nule, vom studia ce variabil dintre
acestea se poate introduce n baz astfel nct s se obin o soluie mai bun.
mprind variabilele n variabile de baz (x
i
B, m variabile) i n variabile din afara bazei (x
j
B, m-n variabile), mprind matricea A n mod corespunztor, restricia de tip egalitate din (1.27)
se scrie:
| |
[ ] [ ]
[ ]
[ ]
[ ] A A
X
X
D
B R
B
R
(
=
(1.28)
Dezvoltnd (1.28) se obine succesiv:
| | | | | | | | | |
A X D A X
B B R R
=
(1.29)
| | | | | | | | | | | |
X A D A A X
B B B R R
=
1 1
(1.30)
| | | | | | | |
X D A X
B B R
B
R
=
(1.31)
unde
| | | | | |
| | | | | |
D A D
A A A
B B
R
B
B R
=
=
1
1
(1.32)
Calculnd acum funcia obiectiv:
| | | | | | | | | | | | | |
z C X C C
X
X
C X C X
T
B T R T
B
R
B
T
B R
T
R
= =
(
= + [ ] [ ]
[ ]
[ ]
(1.33)
i nlocuind [X
B
], din (1.31), vom avea:
| | | | | | | | ( ) | | | | | | | |
| | | | | | ( ) | |
z C D A X C X C D
C C A X z c c a x
B
T
B R
B
R R
T
R B
T
B
R
T
B
T
R
B
R
B
j i ij
B
i B
j
j B
= + = +
+ = +
|
\
|
.
|
(1.34)
unde
Metode de optimizare
Tehnici de optimizare n energetic Pag:13
| | | |
z C D
B
B
T
B
=
(1.35)
reprezint valoarea curent a funciei obiectiv (n baza curent B).
Notnd
z c a
j
B
i ij
B
i B
=
(1.36)
relaia (1.34) devine:
( )
z z c z x
B
j j
B
j B
j
= +
(1.37)
Din relaia (1.37) se pot determina variabilele din afara bazei care primind o valoare nenul
conduc la scderea funciei obiectiv.
1. Criteriul de optim
Dac c
j
- z
j
0, jB, soluia este optim. Intr-adevr, din (1.37) se observ c dac se
introduce o variabil n baz, oricare ar fi ea, funcia obiectiv crete (fiind evident necesar ca x
j
0).
In cazul problemei de maxim condiia de optim este c
j
- z
j
0, jB.
2. Criteriul de intrare n baz
Dac c
j
- z
j
0 atunci soluia nu este optim i va intra n baz variabila x
k
(vectorul [V
k
])
pentru care
{ }
B
j j
j
B
k k
z c z c = inf
(1.38)
n acest fel, va intra n baz variabila care va conduce cel mai rapid la scderea funciei obiectiv.
In cazul problemei de maxim va intra n baz variabila pentru care:
{ }
B
j j
j
B
k k
z c z c = sup
(1.39)
3. Criteriul de optim infinit
Dac c
j
- z
j
0, i k este variabila care va intra n baz conform condiiei (1.39) dar toi
a
B
ik
< 0, (i=1,2,..,m) atunci programul admite un optim infinit. Intr-adevr din (1.32) scris pe
componente, n ipoteza intrrii n baz a variabilei k B, vom avea:
Metode de optimizare
Tehnici de optimizare n energetic Pag:14
x d a x
i
B
i
B
ik
B
k
= , i=1,2,..,m
(1.40) Se constat c variabila intrat n baz x
k
poate crete orict, deoarece variabilele x
B
i
rmn
pozitive. Funcia obiectiv va fi:
z z c z x z
B
k k
B
k
= + ( )
(1.41)
4. Criteriul de ieire din baz
Pentru ca programul obinut prin intrarea n baz a variabilei x
k
, s fie un program de baz,
va trebui ca din baz s iese o variabil. Criteriul de ieire este dat de condiia ca variabilele rmase
n baz s rmn pozitive. Scriind sistemul restriciilor de tip egalitate (1.31) rearanjat:
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1 1 1 1
2 1 2 2
1
1
... ... ... ...
... ... ... ...
... ... ... ... ... ... ... ... ... ... ...
... ... ... ...
... ... ... ... ... ... ... ... ... ... ...
... ... ... ...
a a a
a a a
a a a
a a a
m
B
k
B
n
B
m
B
k
B
n
B
hm
B
hk
B
hn
B
mm
B
mk
B
mn
B
+
+
+
+
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
=
(
(
(
(
(
(
(
(
x
x
x
x
x
d
d
d
d
h
k
n
B
B
h
B
m
B
1
2 1
2
...
...
...
...
...
(1.42)
Presupunnd c intr n baz variabila x
k
i iese din baz variabila x
h
, transformarea
coloanei k n coloan unitate, cu pivot a
B
hk
implic mprirea linei h cu pivotul i formarea de
zerouri n restul coloanei k. Termenii liberi vor avea expresiile:
d
d
a
h
B h
B
hk
B
1
=
(1.43)
d d
d
a
a
d a d a
a
i
B
i
B h
B
hk
B
ik
B i
B
hk
B
h
B
ik
B
hk
B
1
= =
, i # h, i=1,2,...,n
(1.44)
unde B1 reprezint baza obinut prin intrarea variabilei k i ieirea variabilei h. Din condiia d
B1
i
0, rezult urmtoarele condiie pentru ieirea din baz:
a
d a d a
hk
B
i
B
hk
B
h
B
ik
B
>
0
0
i=1,2,...,m
(1.45)
sau
d
a
d
a
i
B
ik
B
h
B
hk
B
, i=1,2,..., m
(1.46)
Rezult variabila h care iese din baz:
Metode de optimizare
Tehnici de optimizare n energetic Pag:15
d
a
d
a
h
B
hk
B
i
a
i
B
ik
B
ik
B
=
`
)
>
inf
0
(1.47)
1.2.4. Rezolvarea problemelor de programare liniar (PL)
Pentru rezolvarea problemelor se utilizeaz criteriile descrise n paragraful anterior. Pentru a
nelege procedura practic de rezolvare, vom prezenta n continuare un exemplu.
Fie problema de PL:
z x x
x x
x x
= + =
+
+
2 5
4 10
2 3 6
1 2
1 2
1 2
max!
(1.48)
Pentru aducerea problemei la forma standard (pentru care se aplic algoritmul simplex) se
adaug variabilele ecart y
1
, y
2
adugate la restricii:
z x x
x x y
x x y
= + =
+ + =
+ + =
2 5
4 10
2 3 6
1 2
1 2 1
1 2 2
max!
(1.49)
Rezolvare manual a problemei se face utiliznd tabelul (1.1).
Tabelul 1.1
Rezolvarea problemei de PL
C 2 5 0 0
B C
B
x
1
x
2
Y
1
y
2
D
y
1
0 1 4 1 0 10 {10/4}
y
2
0 2 3 0 1 6 {6/3}
z
j
0 0 0 0 0
c
j
- z
j
2 5 0 0
y
1
0 -5/3 0 1 -4/3 2
x
2
5 2/3 1 0 1/3 2
z
j
10/3 5 0 5/3 10
c
j
- z
j
-4/3 0 0 -5/3
Metode de optimizare
Tehnici de optimizare n energetic Pag:16
In prima linie din tabel se trec valorile vectorului [C] pentru toate variabilele, inclusiv cele
de ecart, y
1
, y
2
. In linia a 2-a se trece lista alfanumeric a variabilelor. In coloana 1 se trec
variabilele din baz. n prima iteraie baza va fi format de variabilele y
1
, y
2
care au deja o matrice
unitate n matricea restriciilor (col. 5 i 6). In coloana a 2-a se trec coeficienii din funcia obiectiv
a variabilelor din baz, c
i
, iB, necesari pentru calculul mrimilor z
j
cu relaia (1.36). In
urmtoarele coloane se trec coeficienii a
ij
, i=1,2,...,m, j=1,2,...,m, iar n ultima coloan vectorul
resurselor [D].
In prima etap se calculeaz mrimile z
j
cu rel (1.36), ca produs ntre mrimile din coloana 2
i cele din coloana j (3, 4, 5,...). Prin nmulirea coloanei 2 cu coloana D se obine conform relaiei
(1.36), valoarea funciei obiectiv (zona ngroat). In continuare se calculeaz linia c
j
- z
j
ca
diferen ntre linia 1 i linia z
j
. Pentru problema analizat se caut valoarea maxim pozitiv din
linia c
j
- z
j
care ne va da potrivit criteriului 2, variabila care va intra n baz. In cazul nostru intr n
baz variabila x
2
pentru care c
j
- z
j
= 5. Se determin, potrivit criteriului 4 variabila care iese din
baz. In cazul nostru min{10/4, 6/3}=6/3 i deci va iei din baz variabila y
2
. Coeficientul a
hk
=3
corespunztor interseciei coloanei variabilei care intr n baz i celei care iese din baz se mai
numete i pivot (chenar linie dubl). Pn aici am terminat prima iteraie.
In iteraia urmtoare, prima linie trecut n tabel este cea corespunztoare variabilei care
iese din baz. In coloana unu se trece variabila intrat, iar n cea de-a doua coeficientul c
i
aferent.
Toate mrimile din colanele urmtoare se mpart la pivot, astfel nct n iteraia curent acesta va
avea valoarea 1. Pentru a crea o nou baz, n coloana variabilei intrate, pentru restul liniilor se
formeaz, prin prelucrri lineare. 0.
Se continu, la fel ca n prima iteraie cu calculul liniilor z
j
i c
j
- z
j
. Din tabel (ultima line),
se observ c soluia obinut dup prima iteraie este optim deoarece c
j
- z
j
0, j=1,2,..,n.
Valoarea optim a funciei obiectiv se ia din ultima linie z
j
, coloana D, n cazul nostru valoarea 10.
Rezult c soluia optim este x
1
= 0, x
2
= 2, y
1
= 2, y
2
= 0. Se observ c ambele restricii din
(1.49) sunt satisfcute, iar din (1.48) a doua este satisfcut la limit, n timp ce prima este
satisfcut cu un ecart de 2 uniti, valoare dat de y
1
n (1.49).
1.2.5. Determinarea unui program iniial de baz
Pentru cazul particular al problemei prezentate n exemplul anterior, determinarea unui
program iniial de baz nu prezint dificulti acesta fiind dat de variabilele ecart y
1
i y
2.
Aceast
situaie nu este ns valabil pentru toate cazurile ntlnite n practic.
Metode de optimizare
Tehnici de optimizare n energetic Pag:17
a) Metoda formrii unei matrice unitate n matricea extins format din restricii + vectorul
resurselor [D]. Formarea unei matrice unitate se face prin pivotare, alegerea pivotului fcndu-se
din condiia obinerii unei soluii pozitive (1.46), adic alegerea pivotului se face cu (1.47). Coloana
pe care se pivoteaz se alege astfel nct volumul de calcule s fie minim. Vom arta modul de
lucru printr-un exemplu.
z x x x x x x
x x x x
x x x x x
x x x x x
x i
i
= + + + =
+ =
+ =
+ + + =
=
2 3 3 5
2 2 2
3 3 5 1
3 3
0 12 6
1 2 3 4 5 6
1 4 5 6
2 3 4 5 6
2 3 4 5 6
max!
, , ,...,
(1.50)
Matricea extins a sistemului transformat succesiv devine:
|
\
|
.
|
|
|
|
\
|
.
|
|
|
|
\
|
.
|
|
|
1 0 0 2 1 2 2
0 3 1 1 3 5 1
0 1 1 1 1 3 3
1 0 0 2 1 2 2
0 1 1 3 1 3 1 5 3 1 3
0 0 4 3 4 3 0 4 3 8 3
1 0 0 2 1 2 2
0 1 0 0 1 2 1
0 0 1 1 0 1 2
~ / / / /
/ / / /
~
~
unde s-a obinut o matrice unitate n coloanele x
1
, x
2
, x
3
, programul iniial de baz fiind [2 1 2 0 0
0]
T
, iar valoarea funciei obiectiv fiind 9. In continuare se aplic algoritmul simplex, tabelul 1.2,
datele prelundu-se din ultima matrice extins:
Tabelul 1.2
Tabelul simlpex pentru problema (1.50)
C 2 3 1 -3 -5 1
B C
B
x
1
x
2
x
3
x
4
X
5
x
6
D
x
1
2 1 0 0 -2 -1 2 2
x
2
3 0 1 0 0 -1 2 1
x
3
1 0 0 1 1 0 1 2
z
j
2 3 1 -3 -5 11 9
c
j
- z
j
0 0 0 0 0 -10
Din ultima linie a tabelului 1.2 se observ c soluia este optim (c
j
- z
j
0, j=1,2,..,6).
Metode de optimizare
Tehnici de optimizare n energetic Pag:18
b) Metoda celor dou faze
In aceast metod forma standard (1.4) se modific n faza I prin adugarea unor variabile
auxiliare x
a
j
, j=1,2,..,m i a funciei obiectiv:
| | | | | | | | | |
| | | |
z x
A X I X D
X X
j
a
j
m
a
a
1
1
0 0
= =
+ =
=
min!
,
(1.51)
Dac dup rezolvarea fazei I se obine min(z
1
)=0, deci x
a
j
= 0, j=1,2,..,m. nseamn c
variabilele auxiliare au fost eliminate din baz i vom avea o baz format din variabilele
principale. In caz contrar problema nu admite un program iniial de baz.
In faza II-a se preia ultimul tabel simplex al fazei I i se aplic n continuare algoritmul
simplex pentru problema principal:
| | | |
| | | | | |
| |
z C X
A X D
X
T
B B
= =
=
min(max)!
, 0
(1.52)
n care baza B este ultima baz a fazei I. Pentru exemplul (1.51) vom ntocmi tabelul simplex
pentru faza I innd seama c avem deja o coloan unitate (aferent variabilei x
1
). Vom aduga
numai dou variabile auxiliare x
a
1
, x
a
2
, n restriciile 2, respectiv 3, funcia obiectiv fiind
z
1
=(x
a
1
+x
a
2
)=min!:
Tabelul 1.3
Faza I pentru problema (1.50)
C 0 0 0 0 0 0 1 1
B C
B
x
1
x
2
x
3
x
4
x
5
x
6
x
a
1
x
a
2
D
x
1
0 1 0 0 -2 -1 2 0 0 2 {2/2}
x
a
1
1 0 3 -1 -1 -3 5 1 0 1 {1/5}
x
a
2
1 0 1 1 1 -1 3 0 1 3 {3/3}
z
j
0 4 0 0 -4 8 1 1 4
c
j
- z
j
0 -4 0 0 4 -8 0 0
x
1
0 1 -6/5 2/5 -8/5 1/5 0 -2/5 0 8/5 {8/2}
Metode de optimizare
Tehnici de optimizare n energetic Pag:19
x
6
0 0 3/5 -1/5 -1/5 -3/5 1 1/5 0 1/5 -
x
a
2
1 0 -4/5 8/5 8/5 4/5 0 -3/5 1 12/5 {12/8}
z
j
0 -4/5 8/5 8/5 4/5 0 -3/5 1 12/5
c
j
- z
j
0 4/5 -8/5 -8/5 -4/5 0 8/5 0
x
1
0 1 -1 0 -2 0 0 -1/4 -1/4 1
x
6
0 0 1/2 0 0 -1/2 1 1/8 1/8 1/2
x
3
0 0 -1/2 1 1 1/2 0 -3/8 5/8 3/2
z
j
0 0 0 0 0 0 0 0 0
c
j
-z
j
0 0 0 0 0 0 0 1 1
Din tabel se observ c s-a obinut 0 pentru funcia obiectiv n faza I i s-au eliminat din
baz variabilele auxiliare, ultima baz fiind format de variabilele x
1
, x
3
, x
6
. Se observ din prima
linie c s-au luat costurile c
j
aferente funciei obiectiv din faza I. In faza II se revine la funcia
obiectiv iniial:
Tabelul 1.4
Faza II-a pentru problema (1.50)
C 2 3 1 -3 -5 1
B C
B
x
1
x
2
x
3
x
4
x
5
x
6
D
x
1
2 1 -1 0 -2 0 0 1 -
x
6
1 0 1/2 0 0 -1/2 1 1/2 {1/1}
x
3
1 0 -1/2 1 1 1/2 0 3/2 -
z
j
2 -2 1 -3 0 1 4
c
j
- z
j
0 5 0 0 -5 0
x
1
2 1 0 0 -2 -1 2 2
x
2
3 0 1 0 0 -1 2 1
x
3
1 0 0 1 1 0 1 2
z
j
2 3 1 -3 -5 11 9
c
j
- z
j
0 0 0 0 0 -10
Se constat c s-a obinut aceeai valoare pentru funcia obiectiv, 9 i acelai program
optim, [2 1 2 0 0 0]
T
. Dei este mai laborioas, metoda celor dou faze are avantajul unei abordri
sistematice i deci posibilitatea programrii pe calculator.
Metode de optimizare
Tehnici de optimizare n energetic Pag:20
1.2.6. Dualitatea n programarea liniar
Prin definiie, dac avem o problem de programare liniar sub forma canonic:
z c x
a x d d m
x j n
j j
j
n
ij j i
j
n
j
1
1
1
12
0 12
= =
=
=
=
=
min!
, , ,...,
, , ,...,
(1.53)
duala acesteia este:
z d y
a y c j n
y i m
i i
i
m
ij i j
i
m
i
2
1
1
1 2
0 1 2
= =
=
=
=
=
max!
, , ,...,
, , ,...,
(1.54)
Problema dual se obine din problema iniial (primal) prin:
- schimbarea naturii extremului;
- fiecrei restricii de rang i i corespunde o variabil dual y
i
0;
- fiecrei variabile x
j
i corespunde o restricie dual, avnd drept coeficieni ai restriciilor
coordonatele vectorului [V
j
] i termenii liberi ai inecuaiei costurile unitare c
j
, j=1,2,..,n;
- termenii liberi ai restriciilor, d
i
, i=1,2,...,m devin coeficienii funciei obiectiv.
Intr-o form sintetic cuplul de probleme poate fi scris:
Metode de optimizare
Tehnici de optimizare n energetic Pag:21
| |
| | | |
| |
a a a
a a a
a a a
X
d
d
d
c c c X
a a a
a a a
a a a
Y
d
d
n
n
m m mn m
n
n
n
m m mn
T
11 12 1
21 22 2
1 2
1
2
1 2
11 12 1
21 22 2
1 2
1
2
.....
.....
.... .... ..... ....
....
....
..... min!
.....
.....
.... .... ..... ....
....
...
(
(
(
(
(
(
(
(
=
(
(
(
(
| |
| |
.
max!
.....
d
Y
c c c
m
T
n
(
(
(
(
=
1 2
(1.55)
sau
| | | | | | | |
| | | | | | | | | | | |
| | | |
z C X z D Y
A X D A Y C
X Y
T T
T
1 2
0 0
= = = =
min! max!
(1.56)
Avantajele utilizrii dualitii sunt numeroase. Noi vom sublinia numai avantajul rezolvrii
unei probleme de forma dualei, care spre deosebire de forma primal, admite cu uurin un
program iniial de baz.
1.2.6.1. Proprieti ale dualitii
a) Pentru un cuplu de probleme duale, valoarea funciei obiectiv pentru problema de maxim
nu poate depi valoarea funciei obiectiv a problemei de minim.
Dac nmulim restriciile de tip egalitate ale celor dou probleme cu [Y]
T
, respectiv [X]
T
vom obine:
| | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | |
Y A X D Y A X Y D D Y z
X A Y C X A Y X C C X z
T T T T
T T T T T T
= =
= =
2
1
(1.57)
ntruct
| | | | | | | | | | | |
| | | | | | | | | | | | | |
Y A X X A Y
z D Y X A Y C X z z z
T T T
T T T T
=
= =
2 1 2 1
(1.58)
Metode de optimizare
Tehnici de optimizare n energetic Pag:22
b) Dac pentru un cuplu de probleme duale, cu programele [X] i [Y], valorile funciilor
obiectiv coincid, atunci ambele programe sunt optime.
| | | | | | | |
z z C X D Y
T T
1 2
= =
i potrivit proprietii a), rezult c sa atins un punct de extrem pentru ambele probleme.
c) Teorema ecarturilor. Condiia necesar i suficient pentru ca programele [X] i [Y] s
fie optime este:
| | | || | | | ( )
| | | | | | ( ) | | 0
0
=
=
X Y A C
D X A Y
T T
T
(1.59)
S artm, de exemplu, suficiena. Dac adunm ecuaiile i inem seama c termenul
[Y]
T
[A] [X] se reduce rezult
| | | | | | | | | | | |
2 1
z z Y D D Y X C
T T T
= = = =
(1.60)
i, potrivit proprietii b) programele sunt simultan optime.
Observaie:
Dac se aduc problemele (1.56) la forma standard, atunci vom avea:
| | | |
| | | | | | | |
| | | | 0 ,
] [
min!
1
=
= =
e
e
T
X X
D X I X A
X C z
| | | |
| | | | | | | |
| | | | 0 ,
] [
max!
2
= +
= =
e
e T
T
Y Y
C Y I Y A
Y D z
(1.61)
de unde rezult:
| || | | | | |
| | | | | | | |
e T
e
Y Y A C
X D X A
=
=
(1.62)
i nlocuind n (1.59) avem:
| | | |
| | | | 0
0
=
=
e T
e T
Y X
X Y
de unde rezult i numele teoremei.
1.2.6.2. Determinarea soluiei optime a unei probleme
de programare liniar pe baza dualitii
Metode de optimizare
Tehnici de optimizare n energetic Pag:23
Ne propunem s rezolvm o problem de forma:
| | | |
| | | | | |
| |
z C X
A X D
X
T
1
0
= =
min!
(1.63)
pentru care, aa cum am artat, este mai dificil determinarea unui program iniial de baz.
Problema dual adus la forma standard este:
| | | |
| | | | | | | |
| | | | 0 , 0
max!
2
= +
= =
e
e T
T
Y Y
C Y Y A
Y D z
(1.64)
Aceast problem admite ca program iniial de baz variabilele ecart [Y
e
]. Dac pentru
aceast problem s-a determinat un program optim [Y
0
], tabelul simplex n ultima iteraie va arta
ca mai jos:
Tabelul 1.5
Tabelul simplex pentru problema dual
D d
1
d
2
.... d
m
0 .... 0
B D
B
y
1
y
2
.... y
m
y
1e
.... y
ne
C
[B] [D
B
] [B]
-1
[A]
T
[B]
-1
[B]
-1
[C]
z
i
[D
B
]
T
[B]
-1
[A]
T
[D
B
]
T
[B]
-1
[D
B
]
T
[B]
-1
[C]
d
i
- z
i
[D]
T
-[D
B
]
T
[B]
-1
[A]
T
-[D
B
]
T
[B]
-1
Deoarece soluia este optim rezult c
| | | | | |
| | | | | |
Y B C
z D B C
opt B
T
0
1
2
1
=
=
(1.65)
Dac notm:
| | | | | |
X D B
T
B
T
0
1
=
(1.66)
ntruct avem o problem de maxim, iar soluia este optim este necesar ca d
i
- z
i
0. In
consecin:
Metode de optimizare
Tehnici de optimizare n energetic Pag:24
| | | | | | | | | | | | | |
| | | | | |
D D B A A X D
D B X
T
B
T T
B
T
1
0
1
0
0
0 0
(1.67)
Din condiiile (1.67) rezult c [X
0
] este program pentru problema primal (satisface toate
restriciile). Dac scriem valoarea funciei obiectiv pentru problema primal vom avea:
| | | | | | | | | | | | | |
z C X X C D B C z
T T
B
T
opt 1 0 0
1
2
= = = =
(1.68)
din proprietile dualitii rezult ca programul [X
0
] este optim pentru problema primal.
Rezult c rezolvarea problemei primale (1.63) se poate face prin intermediul problemei
duale (1.64) soluia primei gsindu-se pe linia z
i
n dreptul variabilelor ecart al problemei duale.
Tabelul 1.6
Exemplu pentru rezolvarea unei probleme prin dualitate
C 5 6 0 0
B C
B
y
1
y
2
y
1e
y
2e
D
y
1e
0 1 1 1 0 1 {1/1}
y
2e
0 2 3 0 1 1 {1/3}
z
i
0 0 0 0 0
d
i
- z
i
5 6 0 0
y
1e
0 1/3 0 1 -1/3 2/3 {2/1}
y
2
6 2/3 1 0 1/3 1/3 {1/2}
z
i
4 6 0 2 2
d
i
- z
i
1 0 0 -2
y
1e
0 0 -1/2 1 -1/2 1/2
y
1
5 1 3/2 0 1/2 1/2
z
i
5 15/2 0 5/2 5/2
d
i
- z
i
0 -3/2 0 -5/2
Exemplu
S se rezolve problema de PL:
Metode de optimizare
Tehnici de optimizare n energetic Pag:25
z x x
x x
x x
x x
1 1 2
1 2
1 2
1 2
2 5
3 6
0
= + =
+
+
min!
,
(1.69)
Duala acestei probleme va fi:
z y y
y y
y y
2 1 2
1 2
1 2
5 6
1
2 3 1
= + =
+
+
max!
(1.70)
pe care o rezolvm prin algoritmul simplex utiliznd ca program iniial de baz cel dat de
variabilele ecart.
Soluia optim pentru problema dual este [Y]=[1/2 0 1/2 0] cu z
2opt
=5/2, iar pentru
problema primal este [X]=[0 5/2] i z
1opt
=5/2.