Algorytm simplex 1 Istota algorytmu simpleks polega na badaniu

Transkrypt

Algorytm simplex 1 Istota algorytmu simpleks polega na badaniu
Badania operacyjne
Ćwiczenia 3:
Algorytm simplex
Istota algorytmu simpleks polega na badaniu kolejnych rozwiązań bazowych programu liniowego o postaci
kanonicznej w taki sposób, że:
a) znajdujemy dowolne rozwiązanie bazowe programu,
b) sprawdzamy czy jest ono optymalne,
c) jeżeli dane rozwiązanie nie jest optymalne, znajdujemy następne rozwiązanie bazowe lepsze (lub
przynajmniej nie gorsze) od poprzedniego.
Algorytm simpleks jest zatem procedurą iteracyjną, etapową. Kończy się w momencie stwierdzenia, ze
aktualnego rozwiązania bazowego nie można już poprawić (czyli jest ono optymalne). Wyniki poszczególnych
etapów (iteracji) zestawia się w kolejnych tablicach simpleks.
Każdy program liniowy, np.:
 a 11 x 1  a 12 x 2



 a m1 x 1  a m 2 x 2
x , x , , x  0
n
 1 2
c1 x1  c 2 x 2 



 a mn x n
a 1n x n

b1
 bm
 c n x n  max
można zapisać w postaci macierzowej:
Ax  b
x0
cx  max
gdzie:
 a11
a
A   21


 am1
a12
a22
am 2
a1n 
a2 n 
,


amn 
 x1 
x 
x   2,
 
 
 xn 
 b1 
b 
b   2 ,
 
 
 bm 
c  c1 c2
cn 
Przed przystąpieniem do budowy I tablicy simpleks, sprowadzamy program liniowy do postaci kanonicznej:
a) w przypadku nierówności typu „  ” do jej lewej strony dodajemy zmienną swobodną (slack variable),
która wchodzi do pierwszego rozwiązania bazowego,
b) w przypadku nierówności typu „  ” od jej lewej strony odejmujemy zmienną swobodną (surplus variable)
i dodajemy zmienną sztuczną (ang. artificial variable). W tym wypadku do pierwszej bazy wchodzi
zmienna sztuczna,
c) W przypadku warunku będącego równaniem, do jego lewej strony dodajemy zmienną sztuczną, która
wchodzi do pierwszej bazy.
Do funkcji celu zmienne swobodne wchodzą ze współczynnikami równymi 0, zmienne sztuczne – ze
współczynnikami M, takimi że M   . Zmienne swobodne mogą znaleźć się w końcowym rozwiązaniu
programu liniowego. Interpretujemy je wtedy jako niewykorzystane zapasy (slack) lub nadmiar ponad wymagane
normy (surplus) w zależności od znaku nierówności. Zmienne sztuczne z kolei nie mogą znaleźć się w końcowym
rozwiązaniu (pełnią one rolę „czujników” wskazujących czy dane zagadnienie posiada rozwiązanie), dlatego w
funkcji celu która jest maksymalizowana zmienne sztuczne występują ze współczynnikami –M (w ten sposób
sztucznie zaniżając wartość funkcji celu), natomiast w funkcji celu która jest minimalizowana, zmienne sztuczne
występują ze współczynnikami +M (sztucznie zawyżają wartość funkcji celu).
1
Badania operacyjne
Ćwiczenia 3:
Algorytm simplex
Macierzowa postać pierwszej tablicy simpleksowej
c
cb
xb
A
b
I
zj
0
cj  z j
c
Ostatni wiersz tablicy simpleksowej cj–zj nazywamy wierszem zerowym lub kryterium simpleks. Jego
elementy, odpowiadające poszczególnym zmiennym informują, o ile zmieni się aktualna w danej iteracji wartość
funkcji celu, jeśli jedną jednostkę tej zmiennej wprowadzimy do nowej (kolejnej bazy). Służy więc do sprawdzenia
czy aktualne rozwiązanie jest optymalne.
Gdy funkcja celu jest maksymalizowana, rozwiązanie dotąd nie będzie optymalne, dopóki w wierszu zerowym
będą występować liczby nieujemne (dodatnie liczby świadczą, że wprowadzenie do bazy zmiennej której
odpowiada dodatni współczynnik, zwiększy wartość funkcji celu). Jeśli funkcja celu jest minimalizowana, kolejne
rozwiązania dotąd nie są optymalne, dopóki w wierszu zerowym występują wielkości niedodatnie (znaczy to, że
wartość funkcji celu można obniżyć).
Macierzowa postać tablicy simpleksowej dla l-tej iteracji
cbl
Zmienne
bazowe
xbl
Bl1 A
zj
T
b
cj  z j
Rozwiązanie
c
Bl1
1
l
T
b
1
l
c B
c B A
Bl1b
T
b
1
l
c B b
← wartości zmiennych bazowych
← wartość funkcji celu
cbT Bl1
c  cbT Bl1 A
Zadanie 1
Przedsiębiorstwo produkuje dwa wyroby W1 i W2. Ograniczeniem w procesie produkcji są zapasy trzech zasobów:
S1, S2, S3. W tablicy podano jednostkowe nakłady surowców na produkcję wyrobów, zapasy surowców oraz ceny
wyrobów:
Surowce
S1
S2
S3
Cena (w zł)
Zużycie surowca (w kg)
na 1 szt. wyrobu
W1
W2
2
1
3
3
1,5
30
20
Zapas
surowca
(kg)
1000
2400
600
Korzystając z metody simpleks ustalić rozmiary produkcji wyrobów W 1 i W2, które gwarantują maksymalny
przychód ze sprzedaży przy istniejących zapasach surowców.
Zadanie 2
Fabryka celulozy i papieru otrzymała zamówienie na wykonanie 150 zwojów papieru o szerokości 105 cm, 200
zwojów papieru o szerokości 75 cm i 150 zwojów papieru o szerokości 35 cm. Jako surowiec zostanie użyty papier
zrolowany o szerokości 2 m. W jaki sposób fabryka ma zrealizować zamówienie przy założeniu, że w procesie
ciecia papieru odpad będzie jak najmniejszy?
2
Badania operacyjne
Ćwiczenia 3:
Algorytm simplex
Zadanie 3
Krawcowa otrzymuje od producenta resztki lniane o standardowej szerokości 1,2 m i długości 4,8 m. Z resztek tych
szyje obrusy, które oddaje do sklepu. Na najbliższy miesiąc sklep zamówił 600 obrusów prostokątnych, o długości
1,5 m i 200 obrusów kwadratowych o długości 1,2 m (szerokość obrusów odpowiada szerokości resztek – 1,2 m).
W jaki sposób krawcowa powinna pociąć posiadany surowiec, aby zrealizować zamówienie, minimalizując odpady
powstałe w procesie cięcia, jeżeli koszt 1m odpadów wynosi 3 zł?
Zadanie 4
Należy ustalić dzienne wielkości zakupu trzech pasz – P1, P2 i P3, potrzebnych do wykarmienia drobiu. Pasze te
dostarczają dwóch składników odżywczych S1 i S2, których minimalne ilości, jakie powinny być zawarte w diecie,
wynoszą odpowiednio 30 i 40 jednostek wagowych. Zawartość składników odżywczych w 1 kg każdej z pasz
pokazuje tabela:
Składniki Zawartość składników odżywczych w 1 kg
odżywcze
P1
P2
P3
S1
S2
0
2
1
1
2
0
Które pasze i w jakich ilościach powinny być kupowane, aby koszt hodowli był minimalny, jeśli wiadomo, że ceny
pasz wynoszą odpowiednio 5, 4 i 3 zł/kilogram. Zadanie rozwiązać za pomocą algorytmu simpleks, zinterpretować
wyniki.
Zadanie 5
Pewna firma produkuje dwa rodzaje pojazdów: ciężarówki i autobusy. Produkcja może przebiegać w dwóch
fabrykach. W fabryce pierwszej na wyprodukowanie ciężarówki potrzebnych jest 3,75 dni roboczych, natomiast na
wyprodukowanie autobusu 2 dni robocze. W fabryce drugiej na wyprodukowanie autobusu potrzebne są 3 dni
robocze, na wyprodukowanie ciężarówki potrzebne jest 1,25 dnia roboczego. Liczba roboczogodzin w jednym
tygodniu wynosi dokładnie: fabryka pierwsza – 130, fabryka druga – 180. Zysk z wyprodukowania autobusu
wynosi 1500 zł, a ciężarówki 2000 zł. Zakładając, że dzień roboczy składa się z 8 roboczogodzin i pracuje się tylko
pięć dni w tygodniu, ułóż plan produkcji na cały miesiąc (4 tygodnie) dla wspomnianej firmy tak, aby
zmaksymalizować zysk.
3