Badania operacyjne (wykład), Bad.oper.


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:

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

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

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

  1. 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:

KLASYFIKACJA MODELI DECYZYJNYCH

Istnieją trzy kryteria klasyfikacji modeli decyzyjnych:

  1. ze względu na zmienne decyzyjne:

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

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

  1. ze względu na parametry:

  1. 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:

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.

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ą.

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:

  1. modele deterministyczne

Model, w którym wszystkie parametry są stałe i znane (pewne) nazywamy modelem deterministycznym.

  1. ze względu na czas:

  1. modele statyczne

Jeżeli model dotyczy jednego okresu (nie zawiera zmiennej czasowej t) to jest to model statyczny.

  1. 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:

  1. polega na wyznaczeniu obszaru dopuszczalnych rozwiązań

Aby wyznaczyć obszar dopuszczalnych rozwiązań należy:

  1. wykreślić prostą, której punkty spełniają równanie odpowiadające danej nierówności

  2. 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.

  1. 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:

  1. w postaci kanonicznej

Jeżeli wszystkie warunki uboczne w modelu są równaniami to taki model nazywamy modelem o postaci kanonicznej.

  1. 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:

  1. osiągnąć maksymalny efekt przy danych środkach

  2. 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

  1. 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)

  1. 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)

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

  1. 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)

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

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

  1. 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)

  1. 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)

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

  1. 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:

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

ix

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

ix

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:

  1. 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;

  1. 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;

  1. 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ć.

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

ix

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:

  1. Dzielimy każdy element wiersza kluczowego przez element rozwiązujący. Otrzymane ilorazy będą odpowiednimi elementami nowego wiersza następnej tablicy simplex.

  2. 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.

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

  1. 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:

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

  2. 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:

  1. Polega on na ustaleniu rozwiązania podstawowego.

Znamy dwie metody ustalania planu podstawowego:

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

  1. metoda minimum macierzy

  2. 1

    2

    3

    4

    5

    0x08 graphic
    0x08 graphic
    0x08 graphic
    0x08 graphic
    0x08 graphic
    0x08 graphic
    1

    2510

    2515

    20

    20

    40

    50 25 0

    0x08 graphic
    2

    20

    1040

    6015

    3030

    30

    100 40 10 0

    0x08 graphic
    3

    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

    1. 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 przezcij.

    Istnieją dwie metody wypełniania tablicy kosztów pośrednich:

    1. 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:

    0x08 graphic

    1

    2

    3

    4

    5

    0x08 graphic
    0x08 graphic
    1

    10

    15

    -10

    5

    5

    0x08 graphic
    0x08 graphic
    2

    35

    40

    15

    30

    30

    0x08 graphic
    0x08 graphic
    3

    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.

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

    0x08 graphic
    ui vj

    10

    15

    -10

    5

    5

    0x08 graphic
    0x08 graphic
    0x08 graphic
    0

    10

    15

    -10

    5

    5

    0x08 graphic
    0x08 graphic
    25

    35

    40

    15

    30

    30

    0x08 graphic
    0x08 graphic
    20

    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.

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

    0x08 graphic
    0x08 graphic
    0x08 graphic
    1

    10

    15

    5

    20

    5

    0x08 graphic
    0x08 graphic
    2

    20

    25

    15

    30

    15

    0x08 graphic
    0x08 graphic
    3

    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:

    1. Jeżeli w zadaniu pierwotnym chodzi o maksymalizację wartości funkcji celu to w zadaniu dualnym funkcję celu należy minimalizować i odwrotnie.

    2. Liczba zmiennych w zadaniu dualnym jest równa liczbie równań w zadaniu pierwotnym.

    3. Wagi (cj) funkcji celu zadania pierwotnego są wyrazami wolnymi zadania dualnego.

    4. Wyrazy wolne zadania pierwotnego są wagami funkcji celu zadania dualnego.

    5. Macierz współczynników przy zmiennych decyzyjnych w programie dualnym jest macierzą transponowaną macierzy z programu pierwotnego.

    6. 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:

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

    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

    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:

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

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



    Wyszukiwarka

    Podobne podstrony:
    Badania operacyjne wyklad 2 id Nieznany
    Jadczak R Badania operacyjne, Wykład 4 Optymalizacja w logistyce
    BADANIA OPERACYJNE wykład1, WAT, semestr IV, Modelowanie Matematyczne
    Jadczak R Badania operacyjne, wyklad teoria podejmowania decyzji
    Jadczak R, Badania operacyjne wyklad teoria podejmowania decyzji
    Jadczak R - Badania operacyjne Wykład 3, programowanie całkowitoliczbowe
    badania operacyjne wykład
    Jadczak R Badania operacyjne, Wykład 5 zarządzanie projektami (LESS)
    Jadczak R Badania operacyjne, Wykład 1 Optymalizacja w logistyce
    Jadczak R - Badania operacyjne Wykład 5, zarządzanie projektami (LESS)
    Jadczak R - Badania operacyjne Wykład 2, liniowe modele decyzyjne
    Jadczak R Badania operacyjne, Wykład 2 Optymalizacja w logistyce
    Jadczak R Badania operacyjne, Wykład 2 liniowe modele decyzyjne
    Badania operacyjne - wyklady, STATYSTYKA - wykłady
    Jadczak R - Badania operacyjne Wykład 3, Optymalizacja w logistyce
    Badania operacyjne wyklad 1 id 76574 (2)
    Jadczak R - Badania operacyjne Wykład 4, zarządzanie projektami (CPM, PERT)

    więcej podobnych podstron