BADANIA OPERACYJNE
Dostarczają modeli i metod poszukiwania rozwiązań optymalnych w danych warunkach ekonomicznych.
PROGRAMOWANIE LINIOWE
W przypadku, gdy w modelu wszystkie zależności mają charakter liniowy, mamy do czynienia z zagadnieniem programowania liniowego – ZLP
Przykładowe klasy zagadnień programowania liniowego:
- zagadnienie wyboru asortymentu produkcji - zagadnienie diety
- zagadnienie wyboru procesu produkcyjnego
Ogólne sformułowanie zagadnienia programowania liniowego.
Funkcja celu:
z = c
1 *x
1+ c
2 *x
2+ … + c
n *x
n Max( lub Min)
Warunki ograniczające:
a
11 *x
1+ a
12 *x
12+ … + a
1n *x
n{ ≤
=
≥ } b
1a
21 *x
1+ a
12 *x
22+ … + a
2n *x
n{ ≤
= ≥ } b
2………
a
m1 *x
1+ a
m2 *x
2+ … + a
mn *x
n{ ≤
=
≥ } b
mWarunki brzegowe: Oznacza jeden ze znaków: ≤ lub = lub ≥
x
1, …, x
n≥ 0
W zagadnieniu programowania liniowego występują : a) parametry (wielkości dane):
𝑎𝑖𝑗, 𝑏𝑖, 𝑐𝑗 ; 𝑖 = 1, … , 𝑚 ; 𝑗 = 1, … , 𝑛
b) zmienne, których wartości należy ustalić (zmienne decyzyjne) 𝑥𝑗, 𝑗 = 1, … , 𝑛
Zbiór wartości zmiennych decyzyjnych spełniających warunki ograniczające i warunki brzegowe nazywamy zbiorem rozwiązaniem dopuszczalnych zagadnienia programowania liniowego.
Rozwiązanie zagadnienia programowania liniowego polega na wyznaczeniu rozwiązania optymalnego ( tzn. takiego, dla którego funkcja celu osiąga max lub min ) spośród rozwiązań
dopuszczalnych
Uniwersalną, numeryczną metodą rozwiązywania programów liniowych jest tzw. algorytm simpleks.
W szczególnym przypadku, gdy w modelu występują dwie zmienne decyzyjne, zagadnienie programowania liniowego rozwiązać metodą geometryczną.
Metoda geometryczna rozwiązywania ZLP
W metodzie geometrycznej wykorzystujemy następujące twierdzenia
1) Zbiór punktów spełniający warunki ograniczające i brzegowe ZPL (zbiór rozwiązań dopuszczalnych) jest obszarem wypukłym.
2) Obszar wypukły posiada skończoną liczbę punktów wierzchołkowych 3) Funkcja celu przyjmuje wartość optymalną (min lub max) w punkcie
wierzchołkowym zbioru rozwiązań dopuszczalnych.
Jeżeli funkcja celu przyjmie wartość optymalną w dwóch punktach wierzchołkowych 𝑃1(𝑥1, 𝑦1) i 𝑃2(𝑥2, 𝑦2) , to ma tę wartość w każdym punkcie 𝑃(𝑥, 𝑦) należącym do odcinka łączącego te punkty. Wtedy
𝑥 = 𝜆 ∗ 𝑥1+ (1 − 𝜆) ∗ 𝑥2 , 𝑦 = 𝜆 ∗ 𝑦1+ (1 − 𝜆) ∗ 𝑦2 , gdzie 𝜆𝜖〈0,1〉.
Przykład.
Przedsiębiorstwo produkuje dwa wyroby: 𝑊1 i 𝑊2. Ograniczeniem w procesie produkcji jest czas pracy maszyn 𝑀1 , 𝑀2 i 𝑀3. W tablicy podano zużycie czasu pracy każdej z tych maszyn na produkcję jednostki poszczególnych wyrobów, dopuszczalne czasy pracy maszyn oraz ceny wyrobów .
Maszyny
Zużycie czasu pracy maszyn w godz.
Na jednostkowy wyrób
Dopuszczalny czas pracy maszyn w godz.
W1 W2
M1 2 1 1000
M2 3 3 2400
M3 1,5 0 600
Ceny wyrobów(zł) 30 20
Określić w jakich ilościach produkować poszczególne wyroby, aby przy istniejących ograniczeniach przychód z ich sprzedaży był możliwie największy.
Rozwiązanie.
Zmienne decyzyjne
Należy ustalić wielkość produkcji dwóch wyrobów W1 i W2, zatem zmiennymi decyzyjnymi będą:
x1 – wielkość produkcji wyrobu W1
x2 – wielkość produkcji wyrobu W2 Warunki ograniczające
W celu wyprodukowania jednostki wyrobu W1 i W2 maszyna M1 pracuje 2 i 1 godz.
odpowiednio. Na wyprodukowanie x1 sztuk wyrobu W1 i x2 sztuk W2 wyrobu maszyna musi pracować 2*x1+ x2 godz. Dopuszczalny czas pracy tej maszyny wynosi 1000 godz. Stąd mamy następujące ograniczenie:
2*x1+ x2 ≤ 1000
Podobnie dla maszyn M2 i M3 otrzymujemy: 3*x1+3 x2 ≤ 2400 i 1,5*x1 ≤ 600.
Funkcja celu
Ceny wyrobów W1 i W2 wynoszą 30 zł i 20 zł odpowiednio. Zatem ze sprzedaży x1 sztuk wyrobu W1 i x2 sztuk wyrobu W2 otrzymamy przychód wynoszący 30*x1 + 20* x2 .
Ostatecznie ZPL dla powyższej sytuacji ma postać:
𝐹(𝑥1, 𝑥2) = 30 ∗ 𝑥1+ 20 ∗ 𝑥2 max 1) 2*x1+ x2 ≤ 1000
2) 3*x1+3 x2 ≤ 2400 warunki ograniczające 3) 1,5*x1 ≤ 600.
4) 𝑥1, 𝑥2 ≥ 0 warunki brzegowe
Aby otrzymać rozwiązanie, w przypadku dwóch zmiennych decyzyjnych, obszar rozwiązań dopuszczalnych wyznaczymy geometrycznie w układzie współrzędnych.
Obszar rozwiązań dopuszczalnych ograniczony jest prostymi : 1) 2*x1+ x2 = 1000
2) 3*x1+3 x2 = 2400 3) 1,5*x1 = 600.
Aby narysować prostą najlepiej znaleźć jej punkty przecięcia z osiami układu współrzędnych.
Prosta 1) :
x1 = 0 x2 = 1000, (0,1000) – punkt przecięcia z osią Ox2 x2 = 0 2*x1 = 1000, x1 = 500 (500,0) – punkt przecięcia z osią Ox1 Prosta 2) :
x1 = 0 3*x2 = 2400, x2 = 800 (0,800) – punkt przecięcia z osią Ox2
x2 = 0 3*x1 = 2400, x1 = 800 (800,0) – punkt przecięcia z osią Ox1 Prosta 3) :
x1 = 400 prosta prostopadła do osi Ox1
Wyznaczamy punkty wierzchołkowe zbioru rozwiązań dopuszczalnych:
A(0,0), B(400,0),
Punkt C jest przecięciem prostej 1 i 3:
2*x1+ x2 = 1000 x1 = 400
Stąd x2 = 1000-2*400 =200, zatem C(400,200)
Punkt D jest przecięciem prostej 1 i 2:
2*x1+ x2 = 1000 3*x1+3 x2 = 2400
Pierwsze równanie mnożymy przez 3, a drugie przez 2 6*x1+ 3*x2 = 3000
6*x1+ 6*x2 = 4800 i odejmujemy stronami 3*x2 = 1800, x2 = 600
x1 wyznaczamy np. z pierwszego równania 2*x1+ 600 = 1000, x1 =200
Stąd
D(200,600).
E(0,800)
Rozwiązanie optymalne będzie w jednym z punktów A,B,C,D,E.
Aby wyznaczyć to rozwiązanie obliczamy wartość funkcji celu w punktach wierzchołkowych.
𝐹(𝑥1, 𝑥2) = 30 ∗ 𝑥1+ 20 ∗ 𝑥2 A(0,0) F(A) = 30*0+20*0 =0
B(400,0) F(B) = 30*400 + 20*0 = 12000 C(400,200) F(C) = 30*400 + 20*200 = 16000 D(200,600) F(D) = 30*200 + 20*600 = 18000 max E(0,800) F(E) = 30*0 + 20*800 = 16000
Największą wartość funkcja przyjmuje w punkcie D.
Odpowiedź
Aby uzyskać możliwie największy przychód ze sprzedaży wyrobów należy produkować 200 sztuk wyrobu W1 i 600 sztuk wyrobu W2. Przychód ze sprzedaży wyniesie wtedy 18000 zł.
Punkt obszaru rozwiązań dopuszczalnych, w którym funkcja celu przyjmuje największą wartość można też wyznaczyć inaczej, bezpośrednio z rysunku.
Funkcja celu
𝐹(𝑥1, 𝑥2) = 𝑐1∗ 𝑥1+ 𝑐2∗ 𝑥2 𝐹(𝑥1, 𝑥2) = 30 ∗ 𝑥1+ 20 ∗ 𝑥2 może przyjmować różne wartości W dla punktów z obszaru rozwiązań dopuszczalnych:
𝑐1∗ 𝑥1+ 𝑐2∗ 𝑥2 = 𝑊 30 ∗ 𝑥1+ 20 ∗ 𝑥2 = 𝑊 (*) Równanie takie przedstawia prostą w postaci ogólnej i oznacza, że we wszystkich punktach należących do tej prostej wartość funkcji celu wynosi W, np. dla prostej o powyższych współczynnikach, przechodzącej przez punkt (0,0) mamy 𝑊 = 0:
𝑐1∗ 𝑥1+ 𝑐2∗ 𝑥2 = 0 30 ∗ 𝑥1+ 20 ∗ 𝑥2 = 0 Na rysunku proste te (dla różnych wartości W) są zaznaczone przerywanymi liniami.
Dla prostej w postaci ogólnej, wektor
𝑁⃗⃗ = [𝑐1, 𝑐2] 𝑁⃗⃗ = [30,20]
jest wektorem prostopadłym do tej prostej. Jeżeli teraz będziemy prostą (*), dla jakiejś wartości W, przesuwać równolegle w kierunku wskazanym przez wektor 𝑁⃗⃗ , to wartości W będą rosły (w przeciwnym kierunku będą malały). Przesuwamy tę prostą tak długo, dopóki mamy kontakt z obszarem rozwiązań dopuszczalnych. Ostatni kontakt, to będzie jakiś wierzchołek tego obszaru (w szczególnym przypadku może to być odcinek łączący dwa punkty). W tym punkcie funkcja celu przyjmie największą (najmniejszą wartość) przy zadanych ograniczeniach.
Sytuację tę na rysunku zaznaczono zieloną przerywaną linią:
𝑐1∗ 𝑥1+ 𝑐2∗ 𝑥2 = max 𝐹(𝑥1, 𝑥2)
Z rysunku widzimy, że funkcja celu, przy zadanych ograniczeniach, największą wartość przyjmie w punkcie D(200,600) i wyznaczamy wartość funkcji celu w tym punkcie. Wartość ta wynosi 18000. Zatem prosta zaznaczona na rysunku zieloną przerywaną linią ma równanie:
30 ∗ 𝑥1+ 20 ∗ 𝑥2 = 18000