McDusty
archive
WPROWADZENIE
Badania operacyjne powstały podczas II wojny światowej w Anglii. Podczas II wojny światowej przy dowództwach większych jednostek utworzono pewne grupy specjalistów z różnych dziedzin nauki (matematyki, fizyki, psychologii itp.), które miały za zadanie opracowanie pewnej strategii związanej z obroną czy z atakiem. Ponieważ w wojsku zadanie takie nazywa się operacją dlatego grupy te nazwano grupami operacyjnymi.
Po wojnie okazało się, że opracowane metody przez te grupy można zastosować w gospodarce zarówno w skali makro jak i mikro.
Badania operacyjne wchodziły najpierw w skład ekonometrii.
W badaniach operacyjnych można wyodrębnić cztery następujące etapy:
Budowa modelu
W tym etapie należy określić cel lub cele działania, wyodrębnić czynniki od których zależy osiągnięcie tego celu. Następnie konstruujemy model matematyczny (postać analityczna modelu). Ze struktury modelu decyzyjnego wynika informacja np. o kosztach czy cenach.
Rozwiązanie modelu, czyli wyznaczenie decyzji optymalnej
W zależności od postaci analitycznej modelu stosujemy odpowiednie metody za pomocą których wyznaczamy decyzję optymalną analizowanego zagadnienia.
Weryfikacja modelu i uzyskanego rozwiązania
Analiza rozwiązania powinna odpowiadać na pytanie jak dalece rozwiązanie zmieni się w toku procesu decyzyjnego w zależności od zmiany niektórych czynników.
Wdrażanie rozwiązania
Sprawdzenie czy teoria pokrywa się z praktyką; przećwiczenie modelu na systemie rzeczywistym.
MATEMATYCZNY MODEL DECYZYJNY
PRZYKŁAD:
Przedsiębiorstwo wytwarza dwa wyroby A i B, używając w tym celu różnych środków produkcji, z których trzy są limitowane. Nakłady limitowanych środków na jednostkę produkcji i limity tych środków podaje tablica w jednostkach umownych.
Środki produkcji |
Jednostkowe nakłady |
Limity |
|
|
A |
B |
|
I |
1 |
4 |
24 |
II |
3 |
1 |
21 |
III |
1 |
1 |
9 |
Zysk osiągany na wyrobie A wynosi 2 jednostki, a na wyrobie B - 5 jednostek.
Ustalić optymalne rozmiary produkcji poszczególnych wyrobów oraz podać łączny zysk zrealizowany przy optymalnym asortymencie produkcji.
x1 - ilość produkcji wyroby A
x2 - ilość produkcji wyrobu B
Pierwsza część modelu - funkcja celu (lub kryterium celu)
z = 2x1 + 5x2 → zysk max
Druga część modelu - warunki uboczne (lub równania bilansowe) - dotyczy środków produkcji, które limitują ilość wyrobów
x1 + 4x2 ≤ 24
3x1 + x2 ≤ 21
x1 + x2 ≤ 9
Trzecia część modelu - tzw. warunki brzegowe - dotyczą zmiennych decyzyjnych
x1, x2 ≥ 0
W modelu programowania liniowego występują dwie grupy wielkości, a mianowicie:
zmienne decyzyjne - x1, x2 - tzn. wielkości, które należy ustalić;
parametry.
KLASYFIKACJA MODELI DECYZYJNYCH
Istnieją trzy kryteria klasyfikacji modeli decyzyjnych:
ze względu na zmienne decyzyjne:
modele liniowe
Jeżeli w modelu wszystkie zmienne decyzyjne są w pierwszej potędze to taki model nazywamy modelem liniowym. Zespół wszystkich metod służących do rozwiązywania modeli liniowych nazywa się programowaniem liniowym.
modele nieliniowe
Jeżeli w modelu choć jedna ze zmiennych jest w innej potędze niż pierwszej to taki model nazywamy modelem nieliniowym. Zbiór metod służących do rozwiązywania modeli nieliniowych nazywamy programowaniem nieliniowym.
ze względu na parametry:
modele stochastyczne
Jeżeli w modelu choć jeden parametr jest niestały i niepewny to taki model nazywamy stochastycznym. Wyróżniamy trzy typy modeli stochastycznych:
modele probabilistyczne
Jeżeli w modelu choć jeden parametr jest zmienną losową o znanym rozkładzie prawdopodobieństwa to taki model nazywamy modelem probabilistycznym. W rozwiązaniu stosuje się rachunek prawdopodobieństwa.
modele statystyczne
Jeżeli w modelu choć jeden parametr jest zmienną losową o nieznanym rozkładzie prawdopodobieństwa to taki model nazywamy statystycznym. Do rozwiązania stosujemy statystykę matematyczną.
modele strategiczne
W tego typu modelach o parametrach wiemy tylko to, że przyjmują wartości z pewnego przedziału, inaczej mówiąc znamy obszar zmienności parametrów. Modelami strategicznymi zajmuje się teoria gier.
Modelami probabilistycznymi i statystycznymi zajmują się takie teorie jak:
teoria masowej obsługi (kolejek, ogonków)
teoria odnowy (odnowienia)
programowanie sieciowe
programowanie dynamiczne.
modele deterministyczne
Model, w którym wszystkie parametry są stałe i znane (pewne) nazywamy modelem deterministycznym.
ze względu na czas:
modele statyczne
Jeżeli model dotyczy jednego okresu (nie zawiera zmiennej czasowej t) to jest to model statyczny.
modele dynamiczne
Gdy model dotyczy kilku okresów (zawiera zmienną czasową t) to jest modelem dynamicznym.
Powyższa klasyfikacja modeli jest nierozłączna (zazębia się), tzn. analizowany przez nas model jest modelem liniowym, deterministycznym i statycznym.
GEOMETRYCZNA METODA ROZWIĄZYWANIA PROGRAMÓW LINIOWYCH
Metodę tę stosujemy w przypadku kiedy model decyzyjny składa się z dwóch lub najwyżej trzech zmiennych decyzyjnych. składa się ona z dwóch etapów:
polega na wyznaczeniu obszaru dopuszczalnych rozwiązań
Aby wyznaczyć obszar dopuszczalnych rozwiązań należy:
wykreślić prostą, której punkty spełniają równanie odpowiadające danej nierówności
rozstrzygnąć, po której stronie prostej znajdują się punkty spełniające daną nierówność
Aby wykreślić prostą należy znaleźć punkty (0, x1), (0, x2).
X1 |
X2 |
24 7 9 |
6 21 9 |
Ponieważ wszystkie te nierówności muszą być spełnione jednocześnie więc poszukujemy punktów (obszaru), który spełnia cały ten układ.
Obszarem dopuszczalnych rozwiązań jest wielobok w wierzchołkach ABCD0. Obszar dopuszczalny jest obszarem wypukłym. Z wypukłości obszaru dopuszczalnych rozwiązań wynika, że rozwiązania optymalnego należy poszukiwać wśród wierzchołków tego obszaru, czyli w naszym przypadku są to wierzchołki ABCD0.
poszukujemy rozwiązania optymalnego.
Aby wyznaczyć rozwiązanie optymalne należy wyjść z równania funkcji celu.
Dokonujemy przekształcenia
5x2 = z - 2x1 /5 z = 0
x2 = z/5 - 2/5 x1
x2 = -2/5 x1 → Jest to równanie linii izocelowej (izokwanty) dla zerowej
wartości funkcji celu.
Wiadomo, że przesuwając równolegle tą izokwantę nie zmieniają się parametry (zwiększa się funkcja celu). Jeżeli z dąży do maksimum (zysk) to poszukujemy wierzchołka jak najdalej początku układu. Jeżeli z dąży do minimum (koszt) to poszukujemy wierzchołka jak najbliżej początku układu.
x1 = 4 x2 = 5
z = 2*4 + 5*5 = 33 (jednostek)
ODPOWIEDŹ: Aby osiągnąć maksymalny zysk przedsiębiorstwo powinno produkować
4 jednostki wyrobu A oraz 5 jednostek wyrobu B.
OGÓLNY MODEL LINIOWY
Model programowania liniowego może występować w dwóch postaciach, a mianowicie:
w postaci kanonicznej
Jeżeli wszystkie warunki uboczne w modelu są równaniami to taki model nazywamy modelem o postaci kanonicznej.
w postaci standardowej
Gdy wszystkie warunki uboczne są nierównościami typu ≥ albo ≤ to taki model nazywamy modelem o postaci standardowej.
Funkcja celu w modelu decyzyjnym może dążyć do maksimum albo do minimum. Wynika to z zasady o racjonalnym działaniu, która przebiega według dwóch zasad:
osiągnąć maksymalny efekt przy danych środkach
osiągnąć dany efekt przy minimalnych środkach.
Model w postaci standardowej
I z = c1x1 + c2x2 + ... + cnxn → max lub min
II a11x1 + a12x2 + ... + a1nxn ≤ b1
a21x1 + a22x2 + ... + a2nxn ≤ b2
............
am1x1 + am2x2 + ... + amnxn ≤ bm
III x1, x2, ..., xn ≥ 0
lub
n
z = ∑ cj xj → max lub min
j = 1
n
∑ aij xj ≥ bi i = 1, 2, ..., m
j = 1
xj ≥ 0 j = 1, 2, ..., n
gdzie cj, bi, aij dla i = 1, 2, ..., m j = 1, 2, ..., n oznaczają parametry modelu
cj - współczynnik funkcji celu przy j-tej zmiennej decyzyjnej
bi - wyraz wolny i-tego warunku ograniczającego
aij - współczynnik przy j-tej zmiennej decyzyjnej w i-tym warunku ograniczającym
W ogólnej postaci mamy n zmiennych decyzyjnych i m warunków ubocznych.
W badaniach empirycznych uzyskujemy zawsze model o postaci standardowej, natomiast wszystkie metody programowania liniowego są przystosowane do postaci kanonicznej.
MODEL O POSTACI KANONICZNEJ
n
I z = c1x1 + c2x2 + ... + cnxn z = ∑ cj xj
j = 1
II a11x1 + a12x2 + ... + a1nxn = b1
a21x1 + a22x2 + ... + a2nxn = b2 n
............ ∑ aij xj ≥ bi
am1x1 + am2x2 + ... + amnxn = bm j = 1
III x1, x2, ..., xn ≥ 0 xj ≥ 0
W jaki sposób zamienić model z postaci standardowej w model o postaci kanonicznej?
W tym celu wprowadzamy do każdej nierówności tzw. zmienną swobodną (uzupełniającą). Dla zmiennych swobodnych zakłada się zerowe wartości funkcji celu. Ponadto zmienne swobodne muszą spełniać warunek brzegowy. Jeżeli warunek uboczny jest nierównością o znaku „≤” to zmienną swobodną wprowadzamy ze znakiem „+”. Natomiast, gdy warunek uboczny jest nierównością o znaku „≥” to zmienną swobodną wprowadzamy ze znakiem „─”. Zmienne swobodne mają interpretację ekonomiczną, przy czym inaczej ich wartość interpretuje się gdy są wprowadzone ze znakiem „+”, tzn. że oznaczają zapasy (rezerwy) tego środka produkcji, w którym występują, a inaczej w przypadku gdy są wprowadzone ze znakiem „─”.
POSTAĆ STANDARDOWA POSTAĆ KANONICZNA
z = 2x1 + 5x2 → max z = 2x1 + 5x2 + 0x3 + 0x4 + 0x5 → max
x1 + 4x2 = 24 x1 + 4x2 + x3 = 24
3x1 + x2 = 21 3x1 + x2 + x4 = 21
x1 + x2 = 9 x1 + x2 + x5 = 9
x1, x2 ≥ 0 x1, x2, x3, x4, x5 ≥0
m = 3 n = 2 m = 3 n = 5 n > m
W postaci kanonicznej liczba zmiennych jest większa od ilości równań.
Jeżeli m = n to układ ma dokładnie jedno rozwiązanie - jest to tzw. układ Kramerowski. Nie istnieje tu problem optymalizacji.
Gdy n > m to układ posiada nieskończenie wiele rozwiązań, a więc w tym to przypadku istnieje możliwość wybrania rozwiązania optymalnego.
PODSTAWOWE OKREŚLENIA METODY PROGRAMOWANIA LINIOWEGO (dotyczą postaci kanonicznej modelu)
Rozwiązaniem dopuszczalnym programowania liniowego jest wektor (uporządkowany ciąg liczb) X = [x1 x2 ... xn] spełniający warunki uboczne i brzegowe modelu.
Rozwiązaniem podstawowym (wierzchołkowym lub bazowym) jest rozwiązanie dopuszczalne posiadające nie więcej niż m dodatnich wartości xj, gdzie m jest liczbą warunków ubocznych. X = (x1, x2, ..., xm, 0, 0, ...,0)
Niezdegenerowanym rozwiązaniem podstawowym nazywamy takie rozwiązanie, które zawiera dokładnie m dodatnich wartości xj.
Zdegenerowanym rozwiązaniem podstawowym nazywamy takie rozwiązanie, które posiada mniej niż m dodatnich wartości xj.
Maksymalna liczba rozwiązań podstawowych równa się ilości kombinacji
gdzie n - liczba zmiennych decyzyjnych
m - liczba warunków brzegowych
TWIERDZENIE:
Jeżeli optymalne rozwiązanie programu liniowego istnieje to przynajmniej jedno rozwiązanie podstawowe jest rozwiązaniem optymalnym.
ALGEBRAICZNA METODA ROZWIĄZYWANIA PROGRAMÓW LINIOWYCH
Polega ona na przebadaniu wszystkich rozwiązań podstawowych.
POSTAĆ STANDARDOWA POSTAĆ KANONICZNA
z = 2x1 + 5x2 → max z = 2x1 + 5x2 + 0x3 + 0x4 + 0x5 → max
x1 + 4x2 ≤ 24 x1 + 4x2 + x3 = 24
3x1 + x2 ≤ 21 3x1 + x2 + x4 = 21
x1 + x2 ≤ 9 x1 + x2 + x5 = 9
x1, x2 ≥ 0 x1, x2, x3, x4, x5 ≥0
m = 3 n = 2 m = 3 n = 5 n > m
Należy przebadać 10 rozwiązań podstawowych
Zakładamy, że istnieje rozwiązanie podstawowe w postaci następującej x = (x1, x2, x3, 0, 0)
x1 + 4x2 + x3 = 24
3x1 + x2 = 21
x1 + x2 = 9
x1 = 6
x2 = 3
x3 = 6
z = 2*6 + 5*3 = 27
x = (6, 3, 6, 0, 0)
Zakładamy następującą postać rozwiązań podstawowych x = (x1, x2, 0, x4, 0)
x1 + 4x2 = 24
3x1 + x2 + x4 = 21
x1 + x2 = 9
x1 = 4
x2 = 5
x4 = 4
z = 2*4 + 5*5 = 33
x = (4, 5, 0, 4, 0)
Zakładamy następującą postać rozwiązań podstawowych x = (x1, x2, 0, 0, x5)
x1 + 4x2 = 24
3x1 + x2 + x4 = 21
x1 + x2 + x5 = 9
x5 = - 12/11
Ponieważ zmienna x5 nie spełnia warunku brzegowego, wobec powyższego w takiej postaci nie istnieje rozwiązanie podstawowe.
Zakładamy następującą postać rozwiązań podstawowych x = (x1, 0, x3, 0, x5)
x1 + x3 = 24
3x1 = 21
x1 + x5 = 9
x1 = 7
x3 = 17
x5 = 2
z = 2*7 = 14
x = (7, 0, 17, 0, 2)
Zakładamy następującą postać rozwiązań podstawowych x = (x1, 0, 0, x4, x5)
x1 = 24
3x1 + x4 = 21
x1 + x5 = 9
x5 = -15
W takiej postaci rozwiązanie podstawowe nie istnieje.
Zakładamy następującą postać rozwiązań podstawowych x = (0, x2, x3, x4, 0)
4x2 + x3 = 24
x2 + x4 = 21
x2 = 9
x3 = -12
W takiej postaci rozwiązanie podstawowe nie istnieje.
Zakładamy następującą postać rozwiązań podstawowych x = (0, x2, 0, x4, x5)
4x2 = 24
x2 + x4 = 21
x2 + x5 = 9
x2 = 6
x4 = 15
x5 = 3
z = 5*6 = 30
x = (0, 6, 0, 15, 3)
Zakładamy następującą postać rozwiązań podstawowych x = (0, 0, x3, x4, x5)
x3 = 24
x4 = 21
x5 = 9
z = 0
x = (0, 0, 24, 21, 9)
Zakładamy następującą postać rozwiązań podstawowych x = (0, x2, x3, 0, x5)
4x2 + x3 = 24
x2 = 21
x2 + x5 = 9
x5 = -12
W takiej postaci nie istnieje rozwiązanie podstawowe.
Zakładamy następującą postać rozwiązań podstawowych x = (x1, 0, x3, x4, 0)
x1 + x3 = 24
3x1 + x4 = 21
x1 = 9
x4 = -6
W tej postaci nie istnieje rozwiązanie podstawowe.
Zestawienie wyników
Numer rozwiązania |
zmienne |
Wartości zmiennych |
wartości funkcji celu |
1 |
1, 2, 3 |
6, 3, 6 |
27 |
2 |
1, 2, 4 |
4, 5, 4 |
33 |
3 |
1, 2, 5 |
_ |
_ |
4 |
1, 3, 5 |
7, 17, 2 |
14 |
5 |
1, 4, 3 |
_ |
_ |
6 |
2, 3, 4 |
_ |
_ |
7 |
2, 4, 5 |
6, 15, 3 |
30 |
8 |
3, 4, 5 |
24, 21, 9 |
0 |
9 |
2, 3, 5 |
_ |
_ |
10 |
1, 3, 4 |
_ |
_ |
zmax = 33
x1 = 4 x2 = 5
Zakład powinien produkować 4 jednostki wyrobu A oraz 5 jednostek wyrobu B. Ponadto istnieje rezerwa drugiego środka produkcji wynosząca 4 jednostki.
METODA SIMPLEX
Metoda simplex przebiega według następujących etapów:
Musimy znaleźć rozwiązanie podstawowe (wyjściowe) pierwsze.
Istotę tej metody przedstawimy w oparciu o przykład numeryczny.
Załóżmy, że dany jest model, w którym funkcja celu dąży do maksimum
z = 10x1 + 20x2 + 15x3 → max
2x1 + 3x2 + 3x3 ≤ 480
2x1 + x2 + 5x3 ≤ 240
x1, x2, x3 ≥ 0
Powyższy model zamieniamy na postać kanoniczną
z = 10x1 + 20x2 + 15x3 + 0x4 + 0x5 → max
2x1 + 3x2 + 3x3 + x4 = 480
2x1 + x2 + 5x3 + x5 = 240
x1, x2, x3, x4, x5 ≥ 0
W metodzie simplex wybieramy pierwsze rozwiązanie podstawowe w postaci
x = (x1, x2, 0, 0, 0)
2x1 + 3x2 = 480
2x1 + x2 = 240
x1 = 60
x2 = 120
x = (60, 120, 0, 0, 0)
z = 10*60 + 20*120 = 3000
Miejsca niezerowe będziemy oznaczali przez „i” a miejsca zerowe oznaczamy przez „j”.
Metoda ta polega na przebadaniu wszystkich miejsc zerowych. Należy w tym celu policzyć pewne wielkości. W metodzie tej istnieje kryterium optymalności.
Badamy czy wprowadzenie zmiennej na miejsce j=3 ulepszy nam rozwiązanie. W tym celu należy obliczyć
∆j = ∑ci zij - cj
i∈x
∆j - kryterium optymalności dla naszego przykładu
ci - współczynniki z funkcji celu dla zmiennych i-tych
cj - współczynniki z funkcji celu dla zmiennej j-tej
∆3 = c1 z13 + c2 z23 - c3
zij są to współczynniki kombinacji liniowej, które wyliczamy według wzoru
Aj = ∑Ai zij
i∈x
gdzie Aj - wektor współczynników stojących przy zmiennej j-tej;
Ai - wektory współczynników przy zmiennych i-tych.
A3 = A1 z13 + A2 z23
Korzystając z własności działań na wektorach otrzymujemy następujący układ równań:
3 = 2z13 + 3z23
5 = 2z13 + z23
z13 = 3
z23 = -1
∆3 = 10*3 + 20*(-1) - 15 = -5
Wobec powyższego, tzn. w przypadku gdy z → max, może wystąpić jeden z następujących przypadków:
jeżeli ∆j ≥ 0 dla j = m+1, m+2, ..., n
to wartość funkcji celu nie może być zwiększona i plan początkowy jest optymalny;
jeżeli ∆j < 0 dla pewnego „j” i wszystkie odpowiadające temu indeksowi wielkości zij ≤ 0 dla i = 1, 2, ..., m
to zadanie nie posiada rozwiązania;
jeżeli ∆j < 0 dla pewnego „j” i dla każdego „i” co najmniej jedna z liczb zij > 0
to rozwiązanie można ulepszyć.
Obliczanie rozwiązania ulepszonego
W tym celu obliczamy (wyznaczamy) θ = xi / zij zij > 0
xi - wartość zmiennych z rozwiązania podstawowego
Następnie obliczamy zmienne nowego rozwiązania według następującego wzoru:
xi (θ) = xi - θzij
xj (θ) = θ
Obliczamy θ:
θ = min x1 / z13
θ = min 60 / 3 = 20
x1(θ) = 60 -20*3 = 0
x2(θ) = 120 - 20*(-1) = 140
x3(θ) = 20
x4(θ) = 0
x5(θ) = 0
x2 = (0, 140, 20, 0, 0)
z = 3100
W nowym rozwiązaniu zawsze wyzerowuje się ta zmienna, dla której θ przyjęła wartość minimalną.
Badamy czy wprowadzenie zmiennej na miejsce j=4 ulepszy nam rozwiązanie.
i = 2, 3 j = 4
∆4 = c2 z24 + c3 z34 - c4
A4 = A2 z24 + A3 z34
1 = 3z24 + 3z34
0 = z24 + 5z34
z23 = 5/12
z34 = - 1/12
∆4 = 20 * 5/12 + 15 * (-1/12) = 7 1/12 > 0
Ponieważ ∆j > 0, a więc wprowadzenie zmiennej na miejsce j=4 nie ulepszy nam rozwiązania.
Badamy miejsce j=5
i = 2, 3 j = 5
∆5 = c2 z25 + c3 z35 - c5
A5 = A2 z25 + A3 z35
0 = 3z25 + 3z35
1 = z25 + 5z35
z25 = -1/4
z35 = ¼
∆5 = 20 * (-1/4) + 15 * ¼ = -5/4 < 0
Ponieważ ∆5 < 0 i istnieje jedno z35 > 0 wobec powyższego wprowadzając zmienną na miejsce j=5 ulepszymy rozwiązanie.
Obliczamy θ
θ = x3/z35
θ = 20/(1/4) = 80
x1(θ) = 0
x2(θ) = 140 - 80*(-1/4) = 160
x3(θ) = 20 - 80*(1/4) = 0
x4(θ) = 0
x5(θ) = 80
zmax = 160*15 = 3200
ROZWIĄZYWANIE PROGRAMÓW LINIOWYCH ZA POMOCĄ TABLIC SIMPLEX (algorytmu simplex)
Zmaksymalizować następujący model:
z = 2x1 + x2 → max
x1 + 2x2 ≤ 18 x1 + 2x2 + x3 = 18
x1 + x2 ≤ 10 x1 + x2 + x4 = 10
5x1 + x2 ≤ 30 5x1 + x2 + x5 = 30
x1 + x2 ≥ 0 x1, x2, x3, x4, x5 ≥ 0
m = 3 n = 2 m = 3 n = 5
x = (x1, x2, x3, x4, x5)
W algorytmie simplex za pierwsze rozwiązanie podstawowe (bazowe) przyjmujemy rozwiązanie postaci następującej:
x = (0, 0, x3, x4, x5)
x3 = 18
x4 = 10
x5 = 30
z = 0
Budowa pierwszej tablicy simplex
ci |
Wektory bazy |
cj |
2 |
1 |
0 |
0 |
0 |
θ 18 10 6 |
|
|
B |
A1 |
A2 |
A3 |
A4 |
A5 |
|
0 |
A3 |
18 |
1 |
2 |
1 |
0 |
0 |
|
0 |
A4 |
10 |
1 |
1 |
0 |
1 |
0 |
|
0 |
A5 |
30 |
5 |
1 |
0 |
0 |
1 |
|
|
zj |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
∆j |
Х |
-2 |
-1 |
0 |
0 |
0 |
|
ci - wartość funkcji celu dla zmiennych bazowych
cj - wartości funkcji celu dla wszystkich zmiennych występujących w modelu
B - wektor wyrazów wolnych (wartości zmiennych z bazowego rozwiązania podstawowego)
A1, A2, A3, A4, A5 - wektory współczynników stojących przy odpowiednich zmiennych decyzyjnych
wektory bazy - wektory odpowiadające indeksom zmiennych wchodzących w skład rozwiązania bazowego
zj = ∑ci zij
i∈x
Wektory bazy każdej tablicy simplex muszą tworzyć macierz jednostkową. Oznacza to, że na skrzyżowaniu odpowiednich wektorów występuje 1, a pozostałe składowe to 0. Zależność ta powoduje, że wszystkie pozostałe parametry znajdujące się w tablicy są równe współczynnikom kombinacji liniowej zij z metody simplex.
Odczytujemy wartość funkcji celu
∆j = zj - cj
Ponieważ ∆j < 0 a funkcja celu zmierza do maksimum więc plan można ulepszyć. Należy jeszcze sprawdzić czy istnieje choć jedno zj > 0.
Aby ulepszyć rozwiązanie należy w tym celu ustalić kolumnę i wiersz kluczowy.
Kolumna kluczowa odpowiada minimalnej wartości ∆j. Oznacza jaką zmienną należy wprowadzić do bazy aby ulepszyć rozwiązanie.
Wiersz kluczowy jest to najmniejszy iloraz wynikający z podzielenia wektora B przez odpowiednie elementy kolumny kluczowej. Odpowiada to w metodzie simplex wartości θ (wektor A5).
Wiersz kluczowy oznacza, którą ze zmiennych należy usunąć z bazy aby na jej miejsce wprowadzić zmienną z kolumny kluczowej, czyli na miejsce wektora A5 wprowadzamy wektor A1.
Na przecięciu wiersza kluczowego z kolumną kluczową znajduje się element rozwiązujący.
Prawo tworzenia tablic simplex oprócz pierwszej:
Dzielimy każdy element wiersza kluczowego przez element rozwiązujący. Otrzymane ilorazy będą odpowiednimi elementami nowego wiersza następnej tablicy simplex.
Wszystkie pozostałe elementy obliczamy według następującego schematu:
EKK * EWK
NE = WE - ______
ER
NE - nowy element
WE - wybrany element
EKK - element kolumny kluczowej
EWK - element wiersza kluczowego
ER - element rozwiązujący
Druga tablica simplex
Ci |
wektory bazy |
cj |
2 |
1 |
0 |
0 |
0 |
θ 6 2/3 5 30 |
|
|
B |
A1 |
A2 |
A3 |
A4 |
A5 |
|
0 |
A3 |
12 |
0 |
9/5 |
1 |
0 |
-1/5 |
|
0 |
A4 |
4 |
0 |
4/5 |
0 |
1 |
-1/5 |
|
2 |
A1 |
6 |
1 |
1/5 |
0 |
0 |
1/5 |
|
|
zj |
12 |
2 |
2/5 |
0 |
0 |
2/5 |
|
|
∆j |
Х |
0 |
-3/5 |
0 |
0 |
2/5 |
|
Ponieważ ∆j < 0 i istnieją zij > 0 wobec powyższego rozwiązanie można ulepszyć.
Ustalamy kolumnę i wiersz kluczowy
Element rozwiązujący jest równy 4/5
Ci |
wektory bazy |
cj |
2 |
1 |
0 |
0 |
0 |
|
|
|
B |
A1 |
A2 |
A3 |
A4 |
A5 |
|
0 |
A3 |
3 |
0 |
0 |
1 |
-9/4 |
¼ |
|
1 |
A2 |
5 |
0 |
1 |
0 |
5/4 |
- ¼ |
|
2 |
A1 |
5 |
1 |
0 |
0 |
- ¼ |
¼ |
|
|
zj |
15 |
2 |
1 |
0 |
¾ |
¼ |
|
|
∆j |
Х |
0 |
0 |
0 |
¾ |
¼ |
|
Ponieważ wszystkie ∆j ≥ 0 wobec powyższego jest to rozwiązanie optymalne
x = (5, 5, 3, 0, 0)
zmax = 15
METODA SZTUCZNEJ BAZY (metoda M)
Metodę tę stosujemy wówczas kiedy warunki uboczne modelu są nierównościami typu „≥” albo równościami.
Kiedy warunki uboczne są „≥”
z = c1x1 + c2x2 + ... + cnxn → min
a11x1 + a12x2 + ... + a1nxn ≥ b1
a21x1 + a22x2 + ... + a2nxn ≥ b2
...................
am1x1 + am2x2 + ... + amnxn ≥ bm
xj ≥ 0 j = 1, 2, ..., n
Aby powyższy model sprowadzić do postaci kanonicznej należy do każdej nierówności wprowadzić zmienną swobodną ze znakiem „-”.
a11x1 + a12x2 + ... + a1nxn - xn+1 ≥ b1
a21x1 + a22x2 + ... + a2nxn - xn+2 ≥ b2
...................
am1x1 + am2x2 + ... + amnxn - xn+m ≥ bm
x1, x2, ..., xn, xn+1, xn+2, ..., xn+m ≥ 0
W tym przypadku istnieje problem zbudowania rozwiązania podstawowego ponieważ wartości zmiennych nie spełniają warunku brzegowego.
Aby zbudować rozwiązanie podstawowe należy do każdego równania wprowadzić zmienną sztuczną, która spełnia warunki brzegowe.
a11x1 + a12x2 + ... + a1nxn - xn+1 + u1 ≥ b1
a21x1 + a22x2 + ... + a2nxn - xn+2 + u2 ≥ b2
...................
am1x1 + am2x2 + ... + amnxn - xn+m + um ≥ bm
u1, u2, ..., um ≥ 0
Ale w tym przypadku zmienia się funkcja celu, ma ona postać następującą:
z = c1x1 + c2x2 + ... + cnxn + M(u1 + u2 + ... + um) → min
M - bardzo duża liczba dodatnia
Zmienne sztuczne nie mają interpretacji ekonomicznej, wprowadzany je tylko w celu rachunkowym.
Jeżeli warunki uboczne są równościami
a11x1 + a12x2 + ... + a1nxn = b1
a21x1 + a22x2 + ... + a2nxn = b2
...................
am1x1 + am2x2 + ... + amnxn = bm
xj ≥ 0 j = 1, 2, ..., n
W tym przypadku nie możemy zbudować rozwiązania bazowego ponieważ wektory bazy nie tworzą macierzy jednostkowej. Dlatego też należy do każdego równania wprowadzić zmienna sztuczną.
a11x1 + a12x2 + ... + a1nxn - xn+1 + u1 = b1
a21x1 + a22x2 + ... + a2nxn - xn+2 + u2 = b2
...................
am1x1 + am2x2 + ... + amnxn - xn+m + um = bm
TWIERDZENIA dotyczące metody sztucznej bazy:
Jeżeli rozwiązanie wyjściowe ma chociaż jedno rozwiązanie optymalne to jest ono również rozwiązaniem zadania rozszerzonego. Zastosowanie metody simplex do zadania rozszerzonego zapewnia takie rozwiązanie, w którym każda ze zmiennych sztucznych równa się 0.
Jeżeli zadanie wyjściowe nie ma rozwiązania to rozwiązanie zadania rozszerzonego będzie zawierać przynajmniej jedno ui dodatnie dla i = 1, 2, ..., m.
FORMUŁOWANIE ZAGADNIENIA TRANSPORTOWEGO
MODEL MATEMATYCZNY
Na określonym terenie istnieje n dostawców i każdy z nich dysponuje odpowiednio ai > 0 (i = 1, 2, ..., n) jednostkami towaru. Jednocześnie istnieje m odbiorców zgłaszających zapotrzebowanie na ten towar w ilości bj (j = 1, 2, ..., m). przyjmijmy, że są dane jednostkowe koszty transportu cij (i = 1, 2, ..., n oraz j = 1, 2, ..., m). Ponadto będziemy zakładali, że suma dostaw jest równa sumie zapotrzebowania
n m
∑ai = ∑bj
i=1 j=1
xij (i = 1, 2, ...,n oraz j = 1, 2, ..., m) - zmienne decyzyjne, które interpretujemy jako wielkości przewozu od i-tego nadawcy do j-tego odbiorcy.
Przy tych założeniach model matematyczny zadania transportowego postaci kanonicznej można zapisać w następującej postaci:
n m
k = ∑ ∑ cj xij → min
i=1 j=1
n
∑ xij = ai i = 1, 2, ..., n
i=1
n
∑ xij = bj j = 1, 2, ..., m
i-1
xij ≥ 0 i = 1, 2, ..., n j = 1, 2, ..., m
W zamkniętym zagadnieniu transportowym mamy mxn zmiennych decyzyjnych oraz m+n warunków ubocznych.
ZAPIS ZAGADNIENIA W POSTACI TABLICY TRANSPORTOWEJ
Punkty nadania (odprawy) |
Punkty odbioru |
Limity nadania (odprawy) |
|
1 2 ..... m |
|
1 2 .... n |
x11 x12 ..... x1m x21 x22 ..... x2m ............ xn1 xn2 ..... xnm |
a1 a2 ..... an |
zapotrzebowanie |
b1 b2 ..... bm |
∑bj = ∑ai |
Ponadto musimy mieć daną macierz kosztów jednostkowych (bezpośrednich) cij
┌ ┐
│c11 c12 ..... c1m│
│c21 c22 ..... c2m│
cij =│................ │
│................ │
│cn1 cn2 ..... cnm│
└ ┘
ALGORYTM ROZWIĄZYWANIA ZAMKNIĘTEGO ZAGADNIENIA TRANSPORTOWEGO
PRZYKŁAD:
Trzy wytwórnie wód gazowanych zapatrują w swój wyrób pięć hurtowni. Zdolności produkcyjne wytwórni wynoszą kolejno: 50, 100, 150 jednostek, a zapotrzebowanie hurtowni kolejno - 25, 115, 60, 30, 70 jednostek. Macierz kosztów jednostkowych oraz przedstawione powyżej parametry zostały ujęte w następującej tablicy transportowej:
wytwórnie |
Hurtownie |
limity |
||||
|
1 |
2 |
3 |
4 |
5 |
|
1 |
10 |
15 |
20 |
20 |
40 |
50 |
2 |
20 |
40 |
15 |
30 |
30 |
100 |
3 |
40 |
35 |
40 |
55 |
25 |
150 |
zapotrzebowanie |
25 |
115 |
60 |
30 |
70 |
300 |
Ustalić optymalny plan przewozu oraz łączny minimalny koszt transportu.
Aby rozwiązanie podstawowe było niezdegenerowane musi zawierać m+n-1 kratek bazowych
m+n-1 = 7
Algorytm transportowy składa się z trzech etapów:
Polega on na ustaleniu rozwiązania podstawowego.
Znamy dwie metody ustalania planu podstawowego:
metoda lewego górnego rogu (metoda kąta zachodnio-północnego)
Polega na przyporządkowaniu zmiennych wartości liczbowych poczynając od lewego górnego rogu poprzez korektę odpowiednich wartości przesuwamy się po przekątnej do prawego dolnego rogu.
Plan pierwszy ustalony metodą lewego górnego rogu
|
1 |
2 |
3 |
4 |
5 |
|
1 |
25 |
25 |
|
|
|
50 25 0 |
2 |
|
90 |
10 |
|
|
100 10 0 |
3 |
|
|
50 |
30 |
70 |
150 100 70 0 |
|
25 0 |
115 90 0 |
60 50 0 |
30 0 |
70 0 |
|
k1 = 10*25 + 15*25 + 40*90 + 15*10 + 40*50 + 55*30 + 25*70
k1 = 9775 jednostek
metoda minimum macierzy
|
1 |
2 |
3 |
4 |
5 |
|
|
2510 |
2515 |
20 |
20 |
40 |
50 25 0 |
|
20 |
1040 |
6015 |
3030 |
30 |
100 40 10 0 |
|
40 |
8035 |
40 |
55 |
7025 |
150 80 0 |
|
25 0 |
115 90 10 0 |
60 0 |
30 0 |
70 0 |
|
Metoda ta polega na znalezieniu macierzy kosztów bezpośrednich najniższego kosztu i wprowadzeniu w tę kratkę odpowiedniego ładunku. Następnie korygujemy odpowiednie wielkości ładunku i wykreślamy wiersz lub kolumnę. Powyższe postępowanie powtarzamy tak długo aż wykreślimy całą macierz kosztów. Ustalony plan pierwszy metodą minimum macierzy jest następujący:
|
1 |
2 |
3 |
4 |
5 |
|
1 |
25 |
25 |
|
|
|
50 |
2 |
|
10 |
60 |
30 |
|
100 |
3 |
|
80 |
|
|
70 |
150 |
|
25 |
115 |
60 |
30 |
70 |
|
Obliczając całkowite koszty przewozu dokonane według tego planu:
k1 = 7500 jednostek
Sprawdzamy czy rozwiązanie podstawowe jest optymalne.
W tym celu wychodzimy z jednego z planów ustalonych poprzednimi metodami (dla nas planem wyjściowym będzie plan minimum macierzy). Teraz należy wyznaczyć tablicę kosztów pośrednich, którą oznaczamy przezcij.
Istnieją dwie metody wypełniania tablicy kosztów pośrednich:
metoda jednakowych różnic
W kratki bazowe wpisujemy koszty bezpośrednie i bierzemy je w kółkach. Pozostałe miejsca tablicy wypełniamy w sposób następujący:
|
1 |
2 |
3 |
4 |
5 |
|
10 |
15 |
-10 |
5 |
5 |
|
35 |
40 |
15 |
30 |
30 |
|
30 |
35 |
10 |
25 |
25 |
Uwzględniając koszty w kratkach bazowych ustalamy różnicę między nimi dotyczące kolumn lub wierszy. Ustalona różnica musi być zachowana do końca tablicy.
metoda potencjałów
Polega ona na przyporządkowaniu każdemu punktowi nadania liczby ui i każdemu punktowi odbioru - vj. Powyższe oznaczenia muszą spełniać następujący układ równań dla każdej kratki bazowej. Równania te mają postać:
10 = u1 + v1
15 = u1 + v2
40 = u2 + v2
35 = u3 + v2
15 = u2 + v3
30 = u2 + v4
20 = u3 + v5
Powyższy układ składa się z siedmiu równań i ośmiu niewiadomych. Można więc nadać jednej ze zmiennych dowolną wartość np. u1 = 0
u1 = 0 v1 = 10
u2 = 25 v2 = 15
u3 = 20 v3 = -10
v4 = 5
v5 = 5
|
10 |
15 |
-10 |
5 |
5 |
|
10 |
15 |
-10 |
5 |
5 |
|
35 |
40 |
15 |
30 |
30 |
|
30 |
35 |
10 |
25 |
25 |
Następnie obliczamy kryterium optymalności ∆j =cij - cij, czyli koszty pośrednie minus koszty bezpośrednie.
|
1 |
2 |
3 |
4 |
5 |
1 |
0 |
0 |
-30 |
-15 |
-35 |
2 |
15 |
0 |
0 |
0 |
0 |
3 |
-10 |
0 |
-30 |
-30 |
0 |
Jeżeli wszystkie elementy tablicy ∆j ≤ 0 to kończymy obliczenia przyjmując rozwiązanie podstawowe pierwsze za optymalne.
Jeżeli choć jedna kratka w tablicy ∆j > 0 (kratka 21 - liczba 15) to rozwiązanie nie jest optymalne. Przechodzimy do etapu trzeciego.
Modyfikacja rozwiązania
W tym etapie korzystamy z metody simplex, która mówi, że do nowego rozwiązania wprowadzamy tę zmienną, dla której ∆j jest największa. Wprowadzając tę zmienną do bazy musimy inną zmienną z bazy usunąć, a ponadto pociąga to za sobą zmianę wartości innych niektórych zmiennych decyzyjnych. Reguły pozwalające na mechaniczne korygowanie wartości zmiennych są następujące:
W ostatnim planie wytyczamy graf zaczynając od kratki x21 wprowadzając do niej symbol „+” i na zmianę symbol „-”. Przy czym nie wolno jest zmienić kierunku przez pustą kratkę. Ilość ładunku jaką należy przesunąć jest równa najmniejszej liczbie opatrzonej symbolem „-”. W metodzie simplex odpowiada to wartości θ.
Plan drugi:
|
1 |
2 |
3 |
4 |
5 |
|
1 |
15 |
35 |
|
|
|
50 |
2 |
10 |
|
60 |
30 |
|
100 |
3 |
|
80 |
|
|
70 |
150 |
|
25 |
115 |
60 |
30 |
70 |
|
Przyrost planu obliczamy:
∆j * θ = 15*10 = 150
k2 = k1 - 150 = 7350 jednostek
Aby sprawdzić czy plan drugi jest planem optymalnym należy powtórzyć etap drugi (obliczamy koszty pośrednie).
|
1 |
2 |
3 |
4 |
5 |
|
10 |
15 |
5 |
20 |
5 |
|
20 |
25 |
15 |
30 |
15 |
|
30 |
35 |
25 |
40 |
25 |
∆j =cij - cij
|
1 |
2 |
3 |
4 |
5 |
1 |
0 |
0 |
-15 |
0 |
-35 |
2 |
0 |
-10 |
0 |
0 |
-15 |
3 |
-10 |
0 |
-15 |
-15 |
0 |
Wobec powyższego plan drugi jest planem optymalnym.
DUALIZM W PROGRAMOWANIU LINIOWYM
Dla każdego zadania decyzyjnego nazwanego zadaniem pierwotnym istnieje pewne inne zadanie decyzyjne nazwane zadaniem dualnym.
Dualizm można rozpatrywać w aspekcie matematycznym i ekonomicznym.
ASPEKT MATEMATYCZNY DUALIZMU
Dany model pierwotny
z = c1x1 + c2x2 + ... + cnxn → max
a11x1 + a12x2 + ... + a1nxn ≤ b1
a21x1 + a22x2 + ... + a2nxn ≤ b2
..................
am1x1 + am2x2 + ...+ amnxn ≤ bm
x1, x2, ..., xn ≥ 0
Model dualny
k = b1y1 + b2y2 + ... + bmym → min
a11y1 + a21y2 + ... + am1ym ≥ c1
a12y1 + a22y2 + ... + am2ym ≥ c2
.............
a1ny1 + a2ny2 + ... + amnym ≥ cn
y1, y2, ..., ym ≥ 0
Własności modelu dualnego:
Jeżeli w zadaniu pierwotnym chodzi o maksymalizację wartości funkcji celu to w zadaniu dualnym funkcję celu należy minimalizować i odwrotnie.
Liczba zmiennych w zadaniu dualnym jest równa liczbie równań w zadaniu pierwotnym.
Wagi (cj) funkcji celu zadania pierwotnego są wyrazami wolnymi zadania dualnego.
Wyrazy wolne zadania pierwotnego są wagami funkcji celu zadania dualnego.
Macierz współczynników przy zmiennych decyzyjnych w programie dualnym jest macierzą transponowaną macierzy z programu pierwotnego.
Kierunek nierówności w warunkach ubocznych programu dualnego jest przeciwny.
Pomiędzy tymi programami zachodzą związki matematyczne, które mają istotne znaczenie przy rozwiązywaniu tych programów. Związki matematyczne między programem pierwotnym i dualnym:
Przy dowolnych rozwiązaniach dopuszczalnych programu pierwotnego i dualnego wartość funkcji celu programu pierwotnego nie przewyższa wartości funkcji celu programu dualnego, co można zapisać:
n m
∑ cjxj ≤ ∑ biyi
j=1 i=1
Oba programy pierwotny i dualny mają rozwiązania optymalne, są to takie i tylko takie rozwiązania, przy których wartości funkcji celu programów są sobie równe.
Oznaczając przez xj i yi rozwiązania optymalne tych programów. Powyższą własność można zapisać następująco:
n m
∑ cjxj = ∑ biyi
j=1 i=1
Na to aby wektory x i y były odpowiednio optymalnymi rozwiązaniami swoich programów potrzeba i wystarczy aby spełnione były następujące warunki:
Jeżeli i-ty warunek programu pierwotnego jest w optymalnym rozwiązaniu tego programu spełniony z nierównością to i-ta zmienna w optymalnym rozwiązaniu programu dualnego przyjmuje wartość 0, co można zapisać:
ai1x1 + ai2x2 + ... + ainxn < bi to yi = 0
Jeżeli j-ty warunek programu dualnego jest w optymalnym rozwiązaniu tego programu spełniony z nierównością to j-ta zmienna w optymalnym rozwiązaniu programu pierwotnego przyjmuje wartość 0, co można zapisać:
a1jy1 + a2jy2 + ... + amjym < cj to xj = 0
Jest to tzw. twierdzenie o równowadze.
INTERPRETACJA EKONOMICZNA ZADANIA DUALNEGO
Przyjmijmy, że model pierwotny dotyczy ustalenia programu produkcyjnego maksymalizującego dochód osiągany z produkcji „n” wyrobów. Niech wagi cj oznaczają cenę j-tego wyrobu, w współczynnik aij wielkość zużycia i-tego środka na produkcję jednostki j-tego wyrobu. Wyrazy wolne bi - zasoby i-tego środka produkcji, a zmienna xj - wielkość produkcji j-tego wyrobu. Przy tych oznaczeniach zmienne dualne yi oznaczają cenę i-tego środka produkcji. Wielkość ceny dualnej każdego z zasobów wskazuje o ile wzrośnie maksymalna wartość funkcji celu, gdy wielkość danego zasobu powiększy się o jednostkę. Ceny dualne umożliwiają ujawnienie „wąskich gardeł” wstrzymujących wzrost efektywności produkcji. Ceny te wskazują, które zasoby są bardziej deficytowe (o najwyższych cenach), które są mniej deficytowe i które są niedeficytowe.
Na rynku, w którym panuje konkurencja program dualny powinien rozwiązywać konkurent, który chciałby odkupić środki produkcji od właściciela tych środków. Właściciel tych środków powinien rozwiązywać program pierwotny.
PRZYKŁAD:
Mając dany model pierwotny zbudować program dualny.
z = 2x1 + 5x2 → max
x1 + 4x2 ≤ 24
3x1 + x2 ≤ 21
x1 + x2 ≤ 9
x1, x2 ≥ 0
Program dualny
k = 24y1 + 21y2 + 9y3 → min
y1 + 3y2 + y3 ≥ 2
4y1 + y2 + y3 ≥ 5
y1, y2, y3 ≥ 0
19
18