Documente Academic
Documente Profesional
Documente Cultură
101
TEMA13:METODASIMPLEXDEPROGRAMARE LINIAR
Obiective:
Definirea conceptelor generale ale metodei simplex Definirea algoritmului de rezolvare a problemei de programare liniar prin metoda simplex
Coninut:
13.1 Concepte generale privind metoda simplex 13.2 Algoritmul simplex pentru rezolvarea problemelor de programare liniar de maximizare 13.3 Concepte cheie 102 103 108
102
MODULUL6:MODELEDEOPTIMIZARE
13.1Conceptegeneraleprivindmetodasimplex
Metodele grafice de rezolvare a problemelor de programare liniar sunt aplicabile, dup cum am vzut n tema anterioar, numai pentru modelele de programare liniar cu dou variabile. Pentru trei sau mai multe variabile, metoda grafic nu mai poate fi aplicat. Metoda simplex de rezolvare a problemelor de programare liniar, introdus n anul 1947 de George B. Dantzig, poate fi aplicat pentru trei sau mai multe variabile, fiind n esen o metod matriceal. Denumirea metodei este legat de faptul c un poliedru convex se mai numete i simplex. innd cont c soluiile optime ale unei probleme de programare liniar se gsesc printre vrfurile poliedrului convex sau simplexului care reprezint regiunea admisibil, metoda simplex pornete de la un vrf sau o soluie de baz i trece apoi la un alt vrf care s reprezinte o soluie mai bun. Algoritmul metodei simplex se finanlizeaz n dou situaii: (1) se obine cea mai bun soluie, i se decide c problema de programare liniar are optim finit unic sau multiplu; (2) nu se obine cea mai bun soluie, pentru c aceast soluie nu exist, i se decide c problema de programare liniar nu are optim finit. Pentru rezolvarea problemelor de programare liniar cu metoda simplex, vom considera, mai nti problema standard de maximizare:
n [ ] max f cjxj = j =1 n aij x j b j , 1 i m , j =1 x 0, 1 j n j
(13.1)
n care avem valorile b j > 0 . Pentru problemele de minimizare sub form matriceal:
[min ]g = yb . yA c y 0
(13.2)
(13.3)
care conduce de fapt la o problem de maximizare standard cu cerinele definite mai sus. De asemenea, vom considera i cazul n care sunt restriciile mixte, respectiv unele inecuaii din sistemul de restricii sunt definite prin condiia 0 , iar altele sunt definite prin condiia 0 .
TEMA13:METODASIMPLEXDEPROGRAMARELINIAR
103
13.2Algoritmulsimplexpentrurezolvareaproblemelorde programareliniardemaximizare
Vom analiza n continuare metoda simplex pentru rezolvarea problemelor de programare liniar de maximizare, pentru care vom aplica urmtorul algoritm:
Pasul 1: Determinarea funciei obiectiv i a restriciilor:
n [ ] max f = cjxj j =1 n a x b , 1 i m . ij j j j =1 b j > 0, 1 j n x j 0, 1 j n
Pasul 2: Determinarea matricei sau a tabloului simplex: (2.1) Rescriem problema de programare liniar, rescriind funcia obiectiv i introducnd variabilele artificiale sau suplimentare sj, care transform inecuaiile n ecuaii:
n [ ] max cjxj + f = 0 j =1 n a x + s = b , 1 i m ij j j j j =1 b j > 0, 1 j n x j 0, 1 j n
s1 1 ... 0 ... 0 0
st 0 ... 1 ... 0 0
f 0 ... 0 ... 0 1
b b1 ... br ... bm 0
Raport
Componentele tabloului simplex sunt urmtoarele: (1) n prima coloan vom numerota liniile tabelului n funcie de numrul tabloului, care reprezint de fapt numrul iteraiilor algoritmului. (2) Pentru variabilele suplimentare, vom considera sj = 1, iar n rest 0. (3) n ultima linie vom nscrie valorile cu semn schimbat ale coeficienilor funciei obiectiv, apoi 0 pentru celulele corespunztoare variabilelor suplimentare, iar n coloana corespunztare lui f valoarea 1.
104
MODULUL6:MODELEDEOPTIMIZARE
Pasul 3: Determinarea celulei pivot: (3.1) Determinarea coloanei pivot: Coloana pivot este dat de valoarea cj negativ minim:
c p = min{c j }, 1 p n .
1 j n
(3.2) Determinarea liniei pivot: Se determin mai nti, n ultima coloan a tabelului simplex, rapoartele:
r1 = b b1 , ..., rm = m . a1 p amp
s1 1 ... 0 ... 0 0
st 0 ... 1 ... 0 0
f 0 ... 0 ... 0 1
b b1 ... bl ... bm 0
L2,m+1
c1
...
Pasul 4: Determinarea valorii 1 n celula pivot i a valorilor 0 n celelalte celule ale coloanei pivot: (4.1) Se mparte linia pivot la elementul pivot (dac elementul pivot este diferit de 1):
L3l := L2l a1p L2l / alp, ..., L3,m+l := L3,m+l cp L2l / alp.
Pasul 5: Se continu iteraiile de la Pasul 3 pn cnd se obin toate celulele pivot corespunztoare variabilelor problemei. Pasul 6: Dac toate valorile din ultima linie a tabloului simplex sunt 0 sau pozitive, s-a obinut soluia optim. Valorile optime ale variabilelor se obin n coloana termenilor liberi b, iar valoarea optim a funciei obiectiv se obine n ultima celul a tabloului simplex.
Dac obinem celule pivot corespunztoare variabilelor suplimentare, atunci problema de programare liniar nu are soluie unic. Dac dup determinare tuturor celulelor pivot corespunztoare variabilelor problemei n ultima linie a tabelului simplex exist valori negative, atunci problema de programare liniar nu are soluie optim.
TEMA13:METODASIMPLEXDEPROGRAMARELINIAR
105
Exemplul 13.1: S se aplice algoritmul simplex pentru rezolvarea problemei de programare liniar: [max] f ( x, y ) = 4 x + 3 y x + 2 y 8 . 2 x + y 10 x 0 y 0 Rezolvare: Vom aplica algoritmul simplex descris anterior. Pasul 1: Determinarea funciei obiectiv i a restriciilor: [max] f ( x, y ) = 4 x + 3 y x + 2 y 8 . 2 x + y 10 x 0 y 0 Pasul 2: Determinarea matricei sau a tabloului simplex: (2.1) Rescriem problema de programare liniar, rescriind funcia obiectiv i introducnd variabilele artificiale sau suplimentare s1 i s2, care transform inecuaiile n ecuaii: [max] 4 x 3 y + f = 0 x + 2 y + s = 8 1 2 x + y + s2 = 10 x 0 y 0
s1 1 0 0
s2 0 1 0
f 0 0 1
b 8 10 0
Raport
Pasul 3: Determinarea celulei pivot: (3.1) Determinarea coloanei pivot: Coloana pivot este dat de valoarea cj negativ minim:
c p = min{ 4;3} = 4 .
Rezult coloana pivot corespunztoare variabilei x1. (3.2) Determinarea liniei pivot: Se determin mai nti, n ultima coloan a tabelului simplex, rapoartele:
r1 = 8 10 = 8 , r2 = = 5. 1 2
106
MODULUL6:MODELEDEOPTIMIZARE
rl = min{8;5} = 5 .
Rezult linia pivot L22. (3.3) Elementul pivot va fi: a12 = 2. Rezult tablolul simplex #2:
Tabloul simplex #2 Linia x1 x2 L21 1 2 L22 2 1 L23 4 3
s1 1 0 0
s2 0 1 0
f 0 0 1
b 8 10 0
Pasul 4: Determinarea valorii 1 n celula pivot i a valorilor 0 n celelalte celule ale coloanei pivot: (4.1) Se mparte linia pivot la elementul pivot (dac elementul pivot este diferit de 1):
L32 := L22 / 2; (4.2) Se aplic combinaii liniare n funcie de celula pivot, astfel nct s se obin valoarea 0 n celelalte celule ale coloanei pivot: L3l := L21L32, L33 := L23 + 4L22. Rezult operaiile: Linia x1 L31 11=0 L32 2/2=1 L33 4+4=0 x2 20,5=1,5 1/2=0,5 3+2=1 s1 10=1 0/2=0 0+0=0 s2 00,5=0,5 1/2=0,5 0+2=2 f 00=0 0/2=0 1+0=1 b 85=3 10/2=5 0+20=20
Rezult tablolul simplex #3: Tabloul simplex #3 Linia x1 x2 L31 0 1,5 L32 1 0,5 L33 0 1
s1 1 0 0
s2 0,5 0,5 2
f 0 0 1
b 3 5 20
Pasul 5: Se continu iteraiile de la Pasul 3 pn cnd se obin toate celulele pivot corespunztoare variabilelor problemei. (3.1) Determinarea coloanei pivot: Coloana pivot este dat de valoarea cj negativ minim:
c p = min{0;1} = 1 .
Rezult coloana pivot corespunztoare variabilei x2. (3.2) Determinarea liniei pivot: Se determin mai nti, n ultima coloan a tabelului simplex, rapoartele: r1 = 3 5 = 2 , r2 = = 10 . 1,5 0,5
TEMA13:METODASIMPLEXDEPROGRAMARELINIAR
107
rl = min{2;10} = 2 .
Rezult linia pivot L31. (3.3) Elementul pivot va fi: a22 = 1,5.
Pasul 4: Determinarea valorii 1 n celula pivot i a valorilor 0 n celelalte celule ale coloanei pivot: (4.1) Se mparte linia pivot la elementul pivot (dac elementul pivot este diferit de 1):
L4l := L31 / 1,5; (4.2) Se aplic combinaii liniare n funcie de celula pivot, astfel nct s se obin valoarea 0 n celelalte celule ale coloanei pivot: L42 := L32L41/2, L43 := L4l + L33. Rezult operaiile: Linia x1 x2 L41 0/1,5=0 1,5/1,5=1 L42 10/2=1 0,51/2=0 L43 0+0=0 11=0 Rezult tablolul simplex #4:
Tabloul simplex #4 Linia x1 x2 L41 0 1 L42 1 0 L43 0 0
f 0 0 1
b 2 4 22
Raport
Pasul 6: Avnd n vedere c toate valorile din ultima linie a tabloului simplex sunt 0 sau pozitive, s-a obinut soluia optim. Valorile optime ale variabilelor se obin n coloana termenilor liberi b, iar valoarea optim a funciei obiectiv se obine n ultima celul a tabloului simplex.
108
MODULUL6:MODELEDEOPTIMIZARE
13.4Conceptecheie
Metoda simplex Tabloul (matricea) simplex Variabil artificial (suplimentar) Coloan pivot Linie pivot Celul pivot