Sunteți pe pagina 1din 8

TEMA13:METODASIMPLEXDEPROGRAMARELINIAR

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

102

13.2 Algoritmul simplex pentru rezolvarea problemelor


de programare liniar de maximizare

103

13.3 Concepte cheie

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)

[max ] f = cx

,
Ax b
x 0

(13.3)

vom considera problema dual:

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
aij x j b j , 1 i m .
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
aij x j + s j = b j , 1 i m
j =1
b j > 0, 1 j n

x j 0, 1 j n

(2.2) Considerm tabloul simplex de forma:


Tabloul simplex #1
Linia x1
...
L11
a11
...
...
...
...
L1r
a1r
...
...
...
...
L1m
a1m
...
L1,m+1 c1
...

xk
a1k
...
ark
...
amk
ck

...
...
...
...
...
...
...

xn
a1n
...
arn
...
amn
cn

s1
1
...
0
...
0
0

...
...
...
...
...
...
...

st
0
...
1
...
0
0

...
...
...
...
...
...
...

sn
0
...
...
...
1
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

Linia pivot este dat de valoarea ri minim (marcat cu *):


b
rl = min i .
1i m a
ip
(3.3) Elementul pivot va fi: alp.
Tabloul simplex #2
Linia x1
...
L21
a11
...
...
...
...
L2l
a1l
...
...
...
...
L2m
a1m
...

xp
a1p
...
alp
...
amp

...
...
...
...
...
...

xn
a1n
...
aln
...
amn

s1
1
...
0
...
0

...
...
...
...
...
...

st
0
...
1
...
0

...
...
...
...
...
...

sn
0
...
...
...
1

f
0
...
0
...
0

b
b1
...
bl
...
bm

c1

cp

...

cn

...

...

L2,m+1

...

Raport
b1 a1 p
...
bl a1l *
...
bm amp

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 / alp;


(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 := 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

(2.2) Considerm tabloul simplex de forma:


Tabloul simplex #1
Linia
x1
x2
L11
1
2
L12
2
1
L13
4
3

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

Linia pivot este dat de valoarea ri minim:

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

Raport
8/1 = 8
10/2 = 5*

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

Rezult tablolul simplex #3:


Tabloul simplex #3
Linia
x1
x2
L31
0
1,5
L32
1
0,5
L33
0
1

s1
10=1
0/2=0
0+0=0

s1
1
0
0

s2
00,5=0,5
1/2=0,5
0+2=2

s2
0,5
0,5
2

f
0
0
1

f
00=0
0/2=0
1+0=1

b
3
5
20

b
85=3
10/2=5
0+20=20

Raport
3/1,5=2*
5/0,5=10

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

Linia pivot este dat de valoarea ri minim:

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

s1
s2
1/1,5=0,67
0,5/1,5=0,33
00,67/2=0,33 0,5+0,33/2=0,67
0,67+0=0,67
0,33+2=1,67

f
0/1,5=0
00/2=0
0+1=1

b
3/1,5=2
52/2=4
2+20=22

Rezult tablolul simplex #4:


Tabloul simplex #4
Linia
x1
x2
L41
0
1
L42
1
0
L43
0
0

s1
0,67
0,33
0,67

s2
0,33
0,67
1,67

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.

Rezult valorile optime (maxime) x1 = 4 , x2 = 2 i f = 22 .

108

MODULUL6:MODELEDEOPTIMIZARE

13.4Conceptecheie
Metoda simplex

Coloan pivot

Tabloul (matricea) simplex

Linie pivot

Variabil artificial
(suplimentar)

Celul pivot

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