Algorytm simpleks

Transkrypt

Algorytm simpleks
Algorytm simpleks
Uniwersalna, metoda, rozwiazywania
program¶
ow liniowych jest algorytm sim,
pleks. Metoda ta polega na badaniu kolejnych rozwiaza¶
, n bazowych programu
liniowego o postaci kanonicznej w taki spos¶
ob, z_ e
² znajdujemy dowolne rozwiazanie
bazowe programu;
,
² sprawdzamy, czy jest ono optymalne;
² je_zeli dane rozwiazanie
nie jest optymalne, znajdujemy nastepne
rozwiazanie
,
,
,
bazowe lepsze lub przynajmniej nie gorsze ni_z poprzednie.
Zde¯niujmy program liniowy:
c1 x1 + c2 x2 + : : : + xn cn ! max;
a11 x1 + a12 x2 + : : : + a1n xn · b1 ;
a21 x1 + a22 x2 + : : : + a2n xn · b2 ;
:::::::::::::::::::::::::::
am1 x1 + am2 x2 + : : : + amn xn · bm ;
x1 ; x2 ; : : : ; xn ¸ 0
Mo_zna zapisa¶c go w postaci macierzowej:
cx ! max;
Ax · b
x ¸ 0;
gdzie
0
a11
B a21
B
A=@
:::
am1
a12
a22
:::
am2
: : : a1n
: : : a2n
::: :::
: : : amn
¡
c = c1
1
0
1
0
x1
C
B
C
B
C ; x = B x2 C ; b = B
A
@ ::: A
@
xn
¢
c2 : : : cn :
1
b1
b2 C
C;
::: A
bn
Algorytm simpleks polega na badaniu rozwiaza¶
, n bazowych programu o postaci
kanonicznej.
De¯nicja 1 Model o postaci kanonicznej jest to taki model, w kt¶
orym wszystkie
warunki ograniczajace
maj
a
posta¶
c
r¶
o
wno¶
s
ci.
,
,
Zatem zamieniamy wszystkie nier¶
owno¶sci na r¶
owno¶sci:
² w przypadku nier¶owno¶sci typu · do lewych stron warunk¶
ow ograniczajacych
,
dodajemy tzw. zmienne swobodne, kt¶
ore wchodza, do poczatkowego
rozwiazania
,
,
bazowego ( w pierwszej tablizy sympleksowej);
1
² w przypadku nier¶owno¶sci typu ¸ od lewych stron odejmujemy zmienne
swobodne i dodajemy tzw. zmienne sztuczne. W tym przypadku zmienne
sztuczne wchodza, do pierwszej bazy.
Do funkcji celu zmienne swobodne wchodza, ze wsp¶
oÃlczynnikami r¶
ownymi zeru,
a zmienne sztuczne z tzw. wsp¶
oÃlczynnikami M, gdzie M jest liczba, bardzo du_za.,
Zmienne swobodne moga, znale¶z¶c sie, w ko¶
ncowym rozwiazaniu
PL, a zmienne
,
sztuczne nie moga,, dlatego w funkcji celu, kt¶
ora jest maksymalizowana, zmienne
sztuczne wystepuj
a, ze wszp¶
oÃlczynnikami ¡M , natomiast w funkcji celu, kt¶
ora
,
jest minimalizowana zmienne sztuczne wystepuj
a
ze
wsp¶
o
l
Ã
czynnikami
+M
.
,
,
Macierzowa posta¶c tablicy simpleksowej dla l-tej operacji:
cbl
Zmienne bazowe
xbl
zj
cj ¡ zj
c
c
Bl¡1 A
T ¡1
cb Bl A
¡ cTb Bl¡1 A
Bl¡1
cTb Bl¡1
¡ cTb Bl¡1
Rozwiazanie
,
Bl¡1 b
cTb Bl¡1 b
PrzykÃlad 1 Firma produkuje dwa wyroby W1 i W2 . Ograniczeniem w produkcji
sa, zapasy trzech surowc¶
ow S1 , S2 i S3 .
Surowce
S1
S2
S3
Cena (w zÃl)
Zu_zycie surowca w jedn.
na 1 szt. wyrobu
W1
W2
2
1
3
3
1,5
30
20
Zapas surowca (kg)
1000
2400
600
Ustali¶c rozmiar produkcji wyrob¶
ow W1 i W2 , kt¶
ore zpewniaja, maksymalny
zysk i ich sprzeda_zy przy istniejacych
zapasach
surowc¶
ow.
,
Tablica sympleksowa
cb
0
0
0
cj
Zmienne bazowe
x3
x4
x5
zj
cj ¡ zj
0
30
x1
2
3
1,5
0
30
20
x2
1
3
0
0
20
1
0
x3
1
0
0
0
0
0
0
x4
0
1
0
0
0
2 3
1 0
Zauwa_zmy, z_ e A = @ 3 3 A, I = @ 0 1
1; 5 0
0 0
2
0
x5
0
0
1
0
0
Rozwiazanie
(bj )
,
1000
2400
600
0
1
0
1
0
1000
0 A, b = @ 2400 A,
1
300
0
1
0 1
x3
0
¢
c = 30 20 0 0 0 , xb = @ x4 A, cb = @ 0 A.
x5
0
1
0
1
0
1 0 2
1 0 ¡ 43
Macierz B2 ma posta¶c @ 0 1 3 A. Wtedy B2¡1 = @ 0 1 ¡2 A
0 0 32
0
1 0 0 1; 5 0
1
0 1
200
¡
¢
oraz B2¡1 ¢ A = @ 0 3 A, B2¡1 ¢ b = @ 1200 A, cTb B2¡1 A =
30 0 ,
1 0
400
¡
¢
cTb B2¡1 = 0 0 20 oraz cTb B2¡1 b = 12000. W¶
owczas II tablica simpleksowa wyglada
nast
epuj
aco:
,
,
,
¡
cb
cj
Zmienne bazowe
x3
x4
x1
zj
cj ¡ zj
30 20 0
0
0
Rozwiazanie
(bj )
,
x1 x2 x3 x4 x5
0
0
1
1
0 - 43
200
0
0
3
0
1
-2
1200
2
30
1
0
0
0
400
3
30 0
0
0
20
12000
0 20 0
0 -20
0
1
0
1
1 0 2
1 0 ¡ 43
Macierz B3 ma posta¶c @ 3 1 3 A. Wtedy B3¡1 = @ ¡3 1 2 A
0 0 32
0
1 0 0 1; 5 0
1
0 1
200
¡
¢
oraz B3¡1 ¢ A = @ 0 0 A, B3¡1 ¢ b = @ 600 A, cTb B3¡1 A =
30 20 ,
1 0
400
¡
¢
T ¡1
cTb B3¡1 = 20 0 ¡ 20
oraz
c
B
b
=
16000.
W¶
owczas III tablica simb 3
3
pleksowa wyglada
nast
epuj
aco:
,
,
,
cb
cj
Zmienne bazowe
x2
x4
x1
zj
cj ¡ zj
0
20
0
30
30
x1
0
0
1
30
0
20
x2
1
0
0
20
0
1 0
Macierz B4 ma posta¶c @ 3 0
0
10 1
0 1
oraz B4¡1 ¢ A = @ 0 0 A, B4¡1
1 0
0
x3
1
-3
0
20
-20
1
0
x4
0
1
0
0
0
0
x5
- 43
2
2
3
- 20
3
20
3
Rozwiazanie
(bj )
,
200
600
400
16000
0
2
2
1
3
¡1
3 A. Wtedy B4 = @ ¡1; 5 0; 5
1; 5 0
1
¡ 31
1
600
¡
¢ b = @ 300 A, cTb B4¡1 A =
30
200
3
1
0
1 A
0
¢
20 ,
¡
¢
cTb B4¡1 = 10 10
0 oraz cTb B4¡1 b = 18000. W¶
owczas IV tablica simplek3
sowa wyglada
nast
epuj
aco:
,
,
,
cb
20
0
30
cj
Zmienne bazowe
x2
x5
x1
zj
cj ¡ zj
30
x1
0
0
1
30
0
20
x2
1
0
0
20
0
0
x3
-1
-1,5
1
10
-10
4
0
x4
2
3
0,5
¡ 13
10
3
¡ 10
3
0
x5
0
1
0
0
0
Rozwiazanie
(bj )
,
600
300
200
18000