PROGRAMOWANIE WIELOKRYTERIALNE (CELOWE)
Przykład 14. Zakład zamierza rozpocząć produkcję wyrobów W 1 i W 2. Wśród środków produkcyjnych, które zostaną użyte w produkcji dwa są limitowane. Limity te wynoszą: dla środka S 1 63 jednostki, a dla środka S 2 64 jednostki. Aby wyprodukować jednostkę wyrobu W 1 potrzeba 9 jednostek środka S 1 i 8 jednostek środka S 2. Aby wyprodukować jednostkę wyrobu W 2 potrzeba 7 jednostek S 1 i 8 jednostek S 2. Zarówno wyrób W 1 jak i W 2 jest niezbędny do produkcji pewnego urządzenia U. Jedno urządzenie U wymaga 3 jednostek W 1 i 2 jednostek W 2. Produkcja będzie opłacalna, jeżeli zakład sprzeda wyroby W 1 i W 2 potrzebne do wytworzenia co najmniej 6 jednostek urządzenia U. 2
c.d. Określono trzy cele, które zakład zamierza osiągnąć: 1. Maksymalny zysk ze sprzedaży wyrobów, który powinien być nie mniejszy niż 1, przy cenach wyrobów wynoszących 6 dla W 1 i 5 dla W 2. 2. Utrzymanie zatrudnienia w zakładzie na poziomie 5 osób, przy czym na każdej zmianie przy produkcji wyrobu W 1 będą pracować 4 osoby, a przy produkcji W 2 3 osoby. 3. Nakłady inwestycyjne na rozpoczęcie produkcji nie mogą przekroczyć 5, przy czym koszty związane z jednostką wyrobu W 1 mają wynosić 2, a z wyrobem W 2 4. Dla zakładu najważniejsze jest przede wszystkim osiągnięcie celu 3, następnie celu 1, natomiast najmniej istotny jest cel 2. 3
c.d. Ponieważ najprawdopodobniej jednoczesne osiągnięcie wszystkich celów jest niemożliwe, określono wartości współczynników kar związanych z ewentualnym niezrealizowaniem poszczególnych celów: dla celu 1.: -współczynnik kary równy 5 dla odchylenia in minus dla celu 2.: -współczynnik kary równy 4 dla odchylenia in plus -współczynnik kary równy 2 dla odchylenia in minus dla celu 3.: - współczynnik kary równy 3 dla odchylenia in plus Zbudować pełny model matematyczny dla tego zadania. 4
Ograniczenia: W 1 W 2 S 1 9 7 63 S 2 8 8 64 U 3 2 6 Tabela 14.1. 5
Zmienne decyzyjne: x 1 wielkość produkcji wyrobu W 1 x 2 wielkość produkcji wyrobu W 2 6
1 9x + 7x 63 2 8x + 8x 64 3 3x + 2x 6 7
Cele: Nr celu W 1 W 2 Założony poziom celu 1 Zysk 6 5 Nie mniejszy niż 1 2 Zatrudnienie 4 3 Na poziomie 5 3 Nakłady inwestycyjne 2 4 Nie większe niż 5 Tabela 14.2. 8
cel 1.: 6x + 5x 1 cel 2.: 4x + 3x = 5 cel 3.: 2x + 4x 5 9
Priorytet: P cel 1.: 6x + 5x 1 2 cel 2.: 4x + 3x = 5 3 cel 3.: 2x + 4x 5 1 1
Współczynniki kar: Nr celu 1 6x + 5x 1 Dla odchyleń Dla odchyleń in plus in minus y ˆ i( + ) yˆ i( ) 5 2 4x + 3x = 5 4 2 3 2x + 4x 5 3 i = 1, 2, 3 Tabela 14.3. 11
Dla celu 1.: Zyski muszą być równe co najmniej 1 Cel nie będzie zrealizowany, gdy zyski będą mniejsze od 1 Minimalizujemy ewentualne odchylenia in minus dla tego celu Współczynnik kary yˆ 1( ) > 12
Każde odchylenie in plus od wartości 1 jest korzystne Współczynnik kary y ˆ 1( + ) = 13
Dla celu 2.: Zatrudnienie musi się utrzymać na poziomie 5 Cel nie będzie zrealizowany, gdy zatrudnienie będzie większe lub mniejsze od 5 Minimalizujemy ewentualne odchylenia zarówno in plus jak i in minus dla tego celu yˆ Współczynniki kary 2 2 ( + ), yˆ ( ) > 14
Dla celu 3.: Nakłady inwestycyjne nie mogą przekroczyć 5 Cel nie będzie zrealizowany, gdy nakłady przekroczą 5 Minimalizujemy ewentualne odchylenia in plus dla tego celu Współczynnik kary y ˆ 3( + ) > 15
Każde odchylenie in minus od wartości 5 jest korzystne Współczynnik kary yˆ 3( ) = 16
Cele: - jednostronne:, tylko jeden niezerowy współczynnik kary odchylenia niekorzystne z jednej strony -dwustronne: = dwa niezerowe współczynnik kar odchylenia niekorzystne z dwu stron 17
Model matematyczny: Nr celu y ˆ i ( + ) yˆ i ( ) P 1 6x + 5x 1 5 2 2 4x + 3x = 5 4 2 3 3 2x + 4x 5 3 1 9x + 7x 63 O: x 1+ x2 8 WB: x1, x2 3x + 2x 6 Tabela 14.4. 18
Przykład 15. Rozwiązać zadanie programowania wielokryterialnego z Przykładu 14. 19
Cel o priorytecie 1: cel 3. 2x + 4x 5 y ˆ 3( + ) = 3 Budujemy zadanie programowania liniowego, w którym będziemy minimalizować niekorzystne odchyłki in plus dla tego celu 2
Zadanie P1. Funkcja celu: 3 y 3( + ) MIN Ograniczenia z zadania pierwotnego: 9x + 7x 63 x1+ x2 8 3x + 2x 6 21
Ograniczenia wynikające z założonych celów: 6x + 5 x y ( + ) + y ( ) = 1 1 1 4x + 3 x y ( + ) + y ( ) = 5 2 2 2x + 4 x y ( + ) + y ( ) = 5 3 3 Warunki brzegowe: x, x, y ( + ), y ( ), y ( + ), y ( ), y ( + ), y ( ) 1 2 3 3 22
Zadanie rozwiązujemy np. metodą simplex: Wyniki: (jest kilka rozwiązań alternatywnych w każdym y 3 (+) = ) x = 2 y ( + ) = y ( + ) = y ( + ) = 1 3 x = y ( ) = 88 y ( ) = 42 y ( ) = 46 2 3 FC: 3 y 3( + ) = Wielkość odchyłki in plus dla Zadania P1 = 23
Cel o priorytecie 2: cel 1. 6x1+ 5x2 1 yˆ 1( ) = 5 Budujemy zadanie programowania liniowego, w którym będziemy minimalizować niekorzystne odchyłki in minus dla tego celu W zadaniu tym należy uwzględnić otrzymaną wartość odchyłki in plus dla celu o wyższym priorytecie (y 3 (+) = ) 24
Zadanie P2. Funkcja celu: 1 5 y ( ) MIN Ograniczenia z zadania pierwotnego: Ograniczenia wynikające z założonych celów: jak poprzednio jak poprzednio Ograniczenie wynikające z Zadania P1: 3 y 3( + ) = Warunki brzegowe: jak poprzednio 25
Zadanie rozwiązujemy np. metodą simplex: Wyniki: x = 3.5 y ( + ) = y ( + ) = y ( + ) = 1 3 x = 4.5 y ( ) = 56.5 y ( ) = 22.5 y ( ) = 25 2 3 FC: 5 y1( ) = 5 56.5 = 282.5 Wielkość odchyłki in minus dla Zadania P2 = 56.5 26
Cel o priorytecie 3: cel 2. 4x1+ 3x2 = 5 yˆ ˆ 2( + ) = 4 y2( ) = 2 Budujemy zadanie programowania liniowego, w którym będziemy minimalizować niekorzystne odchyłki in plus i in minus dla tego celu W zadaniu tym należy uwzględnić otrzymane wartości odchyłek dla celów o wyższym priorytecie (y 3 (+) =, y 1 ( ) = 56.5) 27
Zadanie P3. 4 y ( + ) + 2 y ( ) MIN Funkcja celu: 2 2 Ograniczenia z zadania pierwotnego: Ograniczenia wynikające z założonych celów: Ograniczenie wynikające z Zadania P1: jak poprzednio jak poprzednio jak poprzednio Ograniczenie wynikające z Zadania P2: 5 y1( ) = 282.5 Warunki brzegowe: jak poprzednio 28
Zadanie rozwiązujemy np. metodą simplex: Wyniki: x = 3.5 y ( + ) = y ( + ) = y ( + ) = 1 3 x = 4.5 y ( ) = 56.5 y ( ) = 22.5 y ( ) = 25 2 3 4 y ( + ) + 2 y ( ) = 4 + 2 22.5 = 45 FC: 2 2 Wielkość odchyłki in plus dla Zadania P3 = Wielkość odchyłki in minus dla Zadania P3 = 22.5 29
Ponieważ nie ma więcej celów, to rozwiązanie Zadania P3, jest rozwiązaniem optymalnym: x = 3.5 x = 4.5 Cel 1. Cel 2. Cel 3. y i (+) y i ( ) 56.5 22.5 25 Tabela 15.1. 3
Odpowiedź: - Cel 1., który miał priorytet 2. nie zostanie zrealizowany, a niekorzystna odchyłka in minus będzie wynosić 56.5. (czyli osiągnięty zysk będzie wynosił 1 56.5 = 43.5) - Cel 2., który miał priorytet 3. nie zostanie zrealizowany, a niekorzystna odchyłka in minus będzie wynosić 22.5. (czyli zatrudnienie obniży się do poziomu 27.5 osób!) - Cel 3., który miał priorytet 1. zostanie zrealizowany, a nawet wystąpi korzystna odchyłka in minus równa 25. (czyli połowa nakładów inwestycyjnych nie zostanie wykorzystana) 31
Przykład 16. Rozwiązać zadanie programowania wielokryterialnego z Przykładu 14., przy czym zmieniona zostaje hierarchia celów. -najważniejszy jest cel 3. -cel 1 i 2 są jednakowo ważne. 32
Model matematyczny: Nr celu y ˆ i ( + ) yˆ i ( ) P 1 6x + 5x 1 5 2 2 4x + 3x = 5 4 2 2 3 2x + 4x 5 3 1 9x + 7x 63 O: x 1+ x2 8 WB: x1, x2 3x + 2x 6 Tabela 16.1. 33
Cel o priorytecie 1: cel 3. 2x + 4x 5 y ˆ 3( + ) = 3 Budujemy zadanie programowania liniowego, w którym będziemy minimalizować niekorzystne odchyłki in plus dla tego celu 34
Zadanie P1. Funkcja celu: 3 y 3( + ) MIN Ograniczenia z zadania pierwotnego: 9x + 7x 63 x1+ x2 8 3x + 2x 6 35
Ograniczenia wynikające z założonych celów: 6x + 5 x y ( + ) + y ( ) = 1 1 1 4x + 3 x y ( + ) + y ( ) = 5 2 2 2x + 4 x y ( + ) + y ( ) = 5 3 3 Warunki brzegowe: x, x, y ( + ), y ( ), y ( + ), y ( ), y ( + ), y ( ) 1 2 3 3 36
Wyniki: (jest kilka rozwiązań alternatywnych w każdym y 3 (+) = ) x = 2 y ( + ) = y ( + ) = y ( + ) = 1 3 x = y ( ) = 88 y ( ) = 42 y ( ) = 46 2 3 FC: 3 y 3( + ) = Wielkość odchyłki in plus dla Zadania P1 =. Dotąd jak w Przykładzie 15. 37
Cele o priorytecie 2: cel 1. i 2. 6x1+ 5x2 1 yˆ 1( ) = 5 4x1+ 3x2 = 5 yˆ ˆ 2( + ) = 4 y2( ) = 2 Budujemy zadanie programowania liniowego, w którym będziemy minimalizować niekorzystne odchyłki in minus dla celu 1. i jednocześnie minimalizować odchyłki in plus i in minus dla celu 2. W zadaniu tym należy uwzględnić otrzymaną wartość odchyłki in plus dla celu o wyższym priorytecie (y 3 (+) = ) 38
Zadanie P2. 5 y ( ) + 4 y ( + ) + 2 y ( ) MIN Funkcja celu: 2 Ograniczenia z zadania pierwotnego: jak poprzednio Ograniczenia wynikające z założonych celów: jak poprzednio Ograniczenie wynikające z Zadania P1: 3 y 3( + ) = Warunki brzegowe: jak poprzednio 39
Wyniki: x = 3.5 y ( + ) = y ( + ) = y ( + ) = 1 3 x = 4.5 y ( ) = 56.5 y ( ) = 22.5 y ( ) = 25 2 3 5 y ( ) + 4 y ( + ) + 2 y ( ) = 327.5 FC: 2 4
Ponieważ nie ma więcej celów, to rozwiązanie Zadania P2, jest rozwiązaniem optymalnym: x = 3.5 x = 4.5 Cel 1. Cel 2. Cel 3. y i (+) y i ( ) 56.5 22.5 25 Tabela 16.2. 41
Odpowiedź: Identyczna jak w Przykładzie 15. 42
Przykład 17. Rozwiązać zadanie programowania wielokryterialnego z Przykładu 14., przy czym wszystkie trzy cele są jednakowo ważne. 43
Model matematyczny: Nr celu y ˆ i ( + ) yˆ i ( ) P 1 6x + 5x 1 5 1 2 4x + 3x = 5 4 2 1 3 2x + 4x 5 3 1 9x + 7x 63 O: x 1+ x2 8 WB: x1, x2 3x + 2x 6 Tabela 17.1. 44
Budujemy zadanie programowania liniowego, w którym jednocześnie będziemy minimalizować niekorzystne odchyłki dla wszystkich celów. 45
Zadanie P1. Funkcja celu: 2 3 5 y ( ) + 4 y ( + ) + 2 y ( ) + 3 y ( + ) MIN Identyczne jak w poprzednich przykładach: Ograniczenia z zadania pierwotnego. Ograniczenia wynikające z założonych celów. Warunki brzegowe. 46
Wyniki: x = 3.5 y ( + ) = y ( + ) = y ( + ) = 1 3 x = 4.5 y ( ) = 56.5 y ( ) = 22.5 y ( ) = 25 2 3 5 y ( ) + 4 y ( + ) + 2 y ( ) + 3 y ( + ) = 327.5 FC: 2 3 Odpowiedź: jak w poprzednim przykładzie. 47
Przykład 18. Nr celu y ˆ i ( + ) yˆ i ( ) P 1 6x + 5x 1 5 2 2 4x + 3x = 5 4 2 3 3 2x + 4x 5 3 1 WB: x1, x2 Tabela 18.1. 48
Dla każdego zadania dodatkowego model składa się z: - Funkcji celu minimalizującej odpowiednie odchyłki -Ograniczeń wynikających z nałożonych celów - Dla zadań o priorytecie większym niż 1 z ograniczeń dodatkowych, wynikających z poprzednich zadań dodatkowych - Warunków brzegowych 49
x = 1.71 x = 7.41 y i (+) y i ( ) FC Cel 1. Cel 2. 14.29 57.14 Cel 3. Tabela 18.2. 5
Przykład 19. Rozwiązać zadanie programowania wielokryterialnego z Przykładu 14. metodą geometryczną. 51
Model matematyczny: Nr celu y ˆ i ( + ) yˆ i ( ) P 1 6x + 5x 1 5 2 2 4x + 3x = 5 4 2 3 3 2x + 4x 5 3 1 9x + 7x 63 O: x 1+ x2 8 WB: x1, x2 3x + 2x 6 Tabela 19.1. 52
Rys. 19.1. Zbiór rozwiązań dopuszczalnych 53
A(2,) B(7,) C(3.5,4.5) D(,8) E(,3) 54
Cel o priorytecie 1: cel 3. 2x + 4x 5 y ˆ 3( + ) = 3 Zadanie P1. Z = 2x + 4x L = 5 P1 P1 FC : 3 y 3( + ) MIN 55
Z P1 y 3 (+) y 3 ( ) A(2,) 4 46 B(7,) 14 36 C(3.5,4.5) 25 25 D(,8) 32 18 E(,3) 12 38 Tabela 19.2. 56
y 3 (+) wartość o jaką Z P1 jest większe od wartość L P1 y 3 ( ) wartość o jaką Z P1 jest mniejsze od wartość L P1 Interesuje nas najmniejsza wartość odchyłki y 3 (+) 5 alternatywnych rozwiązań 57
Cel o priorytecie 2: cel 1. 6x1+ 5x2 1 yˆ 1( ) = 5 Zadanie P2. Z = 6x + 5x L = 1 P2 P2 FC : 5 y1 ( ) MIN 58
Z P2 y 1 (+) y 1 ( ) A(2,) 12 88 B(7,) 42 58 C(3.5,4.5) 43.5 56.5 D(,8) 4 6 E(,3) 15 85 Tabela 19.3. 59
y 1 (+) wartość o jaką Z P2 jest większe od wartość L P2 y 1 ( ) wartość o jaką Z P2 jest mniejsze od wartość L P2 Interesuje nas najmniejsza wartość odchyłki y 1 ( ) y1( ) = 56.5 Punkt C FC : 5 y1 ( ) = 282.5 6
Punkt C jest również jednym z alternatywnych rozwiązań optymalnych dla Zadania P1. 61
Cel o priorytecie 3: cel 2. 4x1+ 3x2 = 5 yˆ ˆ 2( + ) = 4 y2( ) = 2 Zadanie P3. Z = 4x + 3x L = 5 P3 P3 FC : 4 y ( + ) + 2 y ( ) MIN 2 2 62
Z P3 y 2 (+) y 2 ( ) A(2,) 8 42 B(7,) 28 22 C(3.5,4.5) 27.5 22.5 D(,8) 24 26 E(,3) 9 41 Tabela 19.4. 63
y 2 (+) wartość o jaką Z P3 jest większe od wartość L P3 y 2 ( ) wartość o jaką Z P3 jest mniejsze od wartość L P3 Interesuje nas najmniejsza wartość odchyłki 4y 2 (+) + 2 y 2 ( ) y ( + ) = y ( ) = 22 Punkt B 2 2 64
Ponieważ dla celów o wyższych priorytetach rozwiązaniem najlepszym był punkt C Przyjmujemy punkt C jako rozwiązanie dla Zadania P3. FC: Z (C) = 4 y ( + ) + 2 y ( ) = 45 P3 2 2 65
Ostateczne rozwiązanie zadania programowania wielokryterialnego: Punkt C(3.5,4.5) Cel 1. Cel 2. Cel 3. y i (+) y i ( ) 56.5 22.5 25 Tabela 19.5. 66