Programowanie dynamiczne Tadeusz Trzaskalik
9.. Wprowadzenie Słowa kluczowe Wieloetapowe procesy decyzyjne Zmienne stanu Zmienne decyzyjne Funkcje przejścia Korzyści (straty etapowe) Funkcja kryterium Strategia Strategia optymalna Optymalna realizacja procesu Dekompozycja Zasada optymalności Bellmana Wektorowa wersja zasady optymalności Bellmana T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem
9.. Metoda programowania dynamicznego Przykład 9. Zadanie sterowania zapasami Liczba etapów T = Stan magazynu na początku pierwszego etapu y = Maksymalna możliwość uzupełniania zapasu w jednym etapie p t = 4 Maksymalne możliwości magazynowania h t = 4 Popyt (taki sam w każdym etapie) d t = Koszty stałe uzupełniania zapasu k t = 8 Jednostkowe koszty zmienne uzupełniania zapasu c t = Jednostkowe koszty magazynowania m t = Pożądany stan magazynu na koniec ostatniego etapu y T+ = 0 Zminimalizować koszty zakupu i koszty magazynowania. T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem
9.. Metoda programowania dynamicznego 9... Składowe wieloetapowego procesu decyzyjnego (/) Opis procesu y t - stan procesu na początku etapu t, (stan magazynu na początku etapu t) x t - decyzja dla etapu t, (wielkość zamówienia, związana z uzupełnieniem zapasu) y t+ = y t + x t d t Y t = {y t : 0 y t h t } - funkcja przejścia, - zbiory stanów dopuszczalnych dla etapu t. T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 4
9.. Metoda programowania dynamicznego 9... Składowe wieloetapowego procesu decyzyjnego (/) Zbiory decyzji dopuszczalnych. Popyt w każdym etapie musi być zaspokojony y t + x t d t. Zapasy na końcu etapu nie mogą przekraczać pojemności magazynu y t + x t d t h t. Nie mogą zostać przekroczone możliwości uzupełniania zapasu x t p t 4. Wielkość, o którą uzupełniamy zapasy jest nieujemna x t 0 X t (y t ) = { x t : 0 y t + x t d t h t, 0 x t p t } T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 5
9.. Metoda programowania dynamicznego 9... Składowe wieloetapowego procesu decyzyjnego (/) Funkcje kosztów etapowych ξ t (x t ) - koszty uzupełniania zapasu w etapie t, µ t (y t+ ) - koszty magazynowania w etapie t, gdy r > 0 λ(r) = 0 gdy r 0 ξ t (x t ) = k t λ(x t ) + c t x t µ t (y t+ ) = m t y t+ = m t (y t + x t d t ) f t (y t,x t ) = k t λ(x t ) + c t x t + m t (y t + x t d t ) T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 6
9.. Metoda programowania dynamicznego 9... Zbiory stanów i decyzji dopuszczalnych (/9) Etap Y = { } dla czyli X () = { x : 0 + x 4, 0 x 4 } x = 0 0 + 0 4 czyli 0 X () x = 0 + 4 czyli X () x = 0 + 4 czyli X () x = 0 + 4 czyli X () x = 4 0 + 4 4 czyli 4 X () X () = {,, 4 } T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 7
9.. Metoda programowania dynamicznego 9... Zbiory stanów i decyzji dopuszczalnych (/9) Etap (c.d.) dla czyli y = y + x x = y = + = 0 x = y = + = x = 4 y = + 4 = Y = { 0,, } T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 8
9.. Metoda programowania dynamicznego 9... Zbiory stanów i decyzji dopuszczalnych (/9) Etap Y = { 0,, } dla czyli X (0) = { x : 0 0 + x 4, 0 x 4 } x = 0 0 0 + 0 4 czyli 0 X (0) x = 0 0 + 4 czyli X (0) x = 0 0 + 4 czyli X (0) x = 0 0 + 4 czyli X (0) x = 4 0 0 + 4 4 czyli 4 X (0) X (0) = {, 4 } T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 9
9.. Metoda programowania dynamicznego 9... Zbiory stanów i decyzji dopuszczalnych (4/9) Etap (c.d.) Y = { 0,, } dla czyli X () = { x : 0 + x 4, 0 x 4 } x = 0 0 + 0 4 czyli 0 X () x = 0 + 4 czyli X () x = 0 + 4 czyli X () x = 0 + 4 czyli X () x = 4 0 + 4 4 czyli 4 X () X () = {,, 4 } T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 0
9.. Metoda programowania dynamicznego 9... Zbiory stanów i decyzji dopuszczalnych (5/9) Etap Y = { 0,, } dla czyli X () = { x : 0 + x 4, 0 x 4 } x = 0 0 + 0 4 czyli 0 X () x = 0 + 4 czyli X () x = 0 + 4 czyli X () x = 0 + 4 czyli X () x = 4 0 + 4 4 czyli 4 X () X () = {,,, 4 } T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem
9.. Metoda programowania dynamicznego 9... Zbiory stanów i decyzji dopuszczalnych (6/9) Etap (c.d.) y = y + x czyli y = 0 y = y = x = y = 0 + = 0 x = 4 y = 0 + 4 = x = y = + = 0 x = y = + = x = 4 y = + 4 = x = y = + = 0 x = y = + = x = y = + = x = 4 y = + 4 = Y = { 0,,, } T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem
9.. Metoda programowania dynamicznego 9... Zbiory stanów i decyzji dopuszczalnych (7/9) Etap (c.d.) Stan końcowy procesu jest ustalony i wynosi 0, stąd: X (0) = X () = X () = X () = { x : 0 0 + x = 0 } x = 0 ; x = { x : 0 + x = 0 } x = 0 ; x = { x : 0 + x = 0 } x = 0 ; x = { x : 0 + x = 0 } x = 0 T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem
9.. Metoda programowania dynamicznego 9... Zbiory stanów i decyzji dopuszczalnych (8/9) Zestawienie Y = { } X () = {,, 4 } Y = { 0,, } X (0) = {, 4 } X () = {,, 4 } X () = {,,, 4 } Y = { 0,,, } X (0) = { } X () = { } X () = { } X () = { 0 } Y 4 = { 0 } T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 4
9.. Metoda programowania dynamicznego 9... Zbiory stanów i decyzji dopuszczalnych (9/9) Graf procesu (4) () (0) (4) (4) () () () () () () (4) () () 0 () 0 () 0 T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 5
9.. Metoda programowania dynamicznego 9... Wartości funkcji kosztów etapowych (/) Wartości liczbowe f t (y t,x t ) = k t λ(x t ) + c t x t + m t (y t + x t d t ) f t (0,) = 8 + + (0 + ) = 4 f t (0,4) = 8 + 4 + (0 + 4 ) = 9 f t (,) = 8 + + ( + ) = f t (,) = 8 + + ( + ) = 7 f t (,4) = 8 + 4 + ( + 4 ) = f t (,) = 8 + + ( + ) = 0 f t (,) = 8 + + ( + ) = 5 f t (,) = 8 + + ( + ) = 0 f t (,4) = 8 + 4 + ( + 4 ) = 5 f t (,0) = 8 + 0 + ( + 0 ) = 0 T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 6
9.. Metoda programowania dynamicznego 9... Wartości funkcji kosztów etapowych (/) Graf procesu z kosztami etapowymi (4) 7 () () 5 (4) 0 () (4) 0 9 (4) 7 () () 4 () 5 () 0 () 0 (0) 0 () () 4 () 0 0 T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 7
9.. Metoda programowania dynamicznego 9..4. Zasada optymalności Bellmana i równania optymalności (/) Zasada optymalności Strategia optymalna ma tę własność, że niezależnie od początkowego stanu i początkowej decyzji, pozostałe decyzje muszą stanowić ciąg optymalny ze względu na stan wynikający z pierwszej decyzji. T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 8
9.. Metoda programowania dynamicznego 9..4. Zasada optymalności Bellmana i równania optymalności (/) Etap 5 (4) (4) 7 () () 0 0 () (4) 5 () 7 () () 9 (4) 0 () 4 () 0 0 (0) 0() () 4 () 0 g (0) = min { 4 } g (0) = 4 x (0) = T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 9
9.. Metoda programowania dynamicznego 9..4. Zasada optymalności Bellmana i równania optymalności (/) Etap (c.d.) 5 (4) (4) 7 () () 0 0 (0) 0 () (4) 0() 5 () 7 () () () 9 (4) 0 () 4 () 4 () 0 0 g () = min { } x () = g () = T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 0
9.. Metoda programowania dynamicznego 9..4. Zasada optymalności Bellmana i równania optymalności (4/) Etap (c.d.) 5 (4) 0 (0) 0 () 0() (4) (4) 5 () 7 () () 0 7 () () () 9 (4) 0 () 4 () 4 () 0 0 g () = min { 0 } x () = g () = 0 T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem
9.. Metoda programowania dynamicznego 9..4. Zasada optymalności Bellmana i równania optymalności (5/) Etap (c.d.) 5 (4) (4) 7 () () 0 0 (0) 0 () (4) 0() 5 () 7 () () () 9 (4) 0 () 4 () 4 () 0 0 g () = min { 0 } x () = 0 g () = 0 T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem
9.. Metoda programowania dynamicznego 9..4. Zasada optymalności Bellmana i równania optymalności (6/) Etap 5 (4) g () = 0 0 () (4) (4) 5 () 0 (0) g () = 0 0() 7 () 7 () () () () 9 (4) 0 4 () 0 () g () = 4 () 0 0 g (0) = 4 g (0) = min { 4 +4, 9 + } x (0) = g (0) = 8 T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem
9.. Metoda programowania dynamicznego 9..4. Zasada optymalności Bellmana i równania optymalności (7/) Etap (c.d.) 5 (4) g () = 0 (4) 7 () () 0 0 () (4) 5 () 0 (0) g () = 0 0() 7 () () () 9 (4) 0 () 4 () g () = 4 () 0 0 g (0) = 4 g () = min { +4, 7 +, + 0 } x () = g () = 6 T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 4
9.. Metoda programowania dynamicznego 9..4. Zasada optymalności Bellmana i równania optymalności (8/) Etap (c.d.) 5 (4) g () = 0 (4) 7 () () 0 0 () (4) 5 () 0 (0) g () = 0 0() 7 () () () 9 (4) 0 () 4 () g () = 4 () 0 0 g (0) = 4 g () = min { 0 + 4, 5 +, 0 + 0, 5 + 0 } x () = g () = 4 T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 5
9.. Metoda programowania dynamicznego 9..4. Zasada optymalności Bellmana i równania optymalności (9/) Etap 5 (4) g () = 0 g () = 4 0 () (4) (4) g () = 6 7 () 7 () () () 9 (4) 0 4 () g (0) = 8 5 () 0 (0) g () = 0 0() g () = () 0 () 4 () 0 0 g (0) = 4 g () = min { + 8, 7 + 6, + 4 } x () = g () = 40 T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 6
9.. Metoda programowania dynamicznego 9..4. Zasada optymalności Bellmana i równania optymalności (0/) Stan początkowy y = y = x () = y = + = 0 x (0) = y = 0 + = 0 x (0) = y 4 = 0 + = 0 x () = x () = (4) x () = () () () x (0) = (4) (4) () (4) () () x () = 0 x () = x () = () x (0) = (0) () () 0 () 0 () 0 T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 7
9.. Metoda programowania dynamicznego 9..4. Zasada optymalności Bellmana i równania optymalności (/) Zestawienie dla t = g { f ( y, x ) : x X ( )} ( y) = min y dla t = g { f ( y, x ) + g ( y + x d ) : x X ( )} ( y) = min y dla t = g { f ( y, x ) + g ( y + x d ) : x X ( )} ( y) = min y T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 8
9.. Metoda programowania dynamicznego 9..5. Reguły postępowania przy rozwiązywaniu zadań programowania dynamicznego (/) Algorytm. Ustalamy liczbę etapów T rozpatrywanego procesu.. Definiujemy zmienne stanu y t (dla t =,..., T+) i zmienne decyzyjne x t (dla t =,..., T).. Określamy postać funkcji przejścia y t+ = Ω 4. Identyfikujemy zbiór stanów początkowych Y i zbiór stanów końcowych Y T+. 5. Dla etapu t (t =,..., T): t (y t, x a) określamy zbiór stanów dopuszczalnych Y t, b) dla każdego stanu y t Y t określamy zbiór decyzji dopuszczalnych X t (y t ). t ). T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 9
9.. Metoda programowania dynamicznego 9..5. Reguły postępowania przy rozwiązywaniu zadań programowania dynamicznego (/) Algorytm (c.d.) 6. Korzystając z zasady optymalności Bellmana konstruujemy równania optymalności i rozwiązujemy je. a) Etap T: 7. Ciąg: g T ( y T ) = min b) Etap t (t = T,..., ): g t ( y t { f ( y, x ) : x X ( y )} x ( y ) T T T T T { f ( y, x ) + g ( y ) : x X ( y )} x ( y ) ) = min t t t t+ t+ przy czym y t+ = Ω t (y t,x t ). { x ( y ) : y Y, t = T} t t t t,..., T t t T t T t t decyzji optymalnych, wyznaczonych w kroku 6 stanowi strategię optymalną. T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 0
9.. Metoda programowania dynamicznego 9..5. Reguły postępowania przy rozwiązywaniu zadań programowania dynamicznego (/) Algorytm (c.d.) 8. Znajdujemy optymalny stan początkowy porównując ze sobą wartości g ( y ) następująco: (y ) = max{ g (y ) : y Y }. y g 9. Konstruujemy optymalną realizację procesu: y optymalny stan początkowy x ( = x y ) y = ) x = x ) Ω( y, x ( y... T = T T T ( T T T y Ω ( y, x ) x = x y ) y T + = ΩT ( yt, xt ( y x, y, x,..., y T x ),, T ) - optymalna realizacja procesu. T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem
9.. Przykłady zastosowania programowania dynamicznego 9... Zagadnienie rozdziału środka (/8) Przykład 9. Projekt I Projekt II Przydzielona ilość środka a b Dochód a b Do wykorzystania w następnym okresie Początkowa ilość środka 0,7a 0,b 00 jednostek Liczba okresów Dokonać takiego rozdziału środka, by zmaksymalizować łączny dochód z realizacji projektów I i II T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem
9.. Przykłady zastosowania programowania dynamicznego 9... Zagadnienie rozdziału środka (/8) Opis wieloetapowego procesu decyzyjnego Stan procesu y t - Decyzja x t - Funkcja przejścia - ilość środka, jaka pozostała do dyspozycji na początku tego okresu ilość środka przydzielona na początku okresu t na realizację projektu I y 0, y t + = 0,7 xt + 0,( yt xt ) = 0,4xt + t T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem
9.. Przykłady zastosowania programowania dynamicznego 9... Zagadnienie rozdziału środka (/8) Zbiory stanów dopuszczalnych Y = { 00 } Y = [ 0; 70 ] Y = [ 9; 49 ] Y 4 = [,7; 4, ] y 0, y t + = 0,4xt + t T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 4
9.. Przykłady zastosowania programowania dynamicznego 9... Zagadnienie rozdziału środka (4/8) Decyzje dopuszczalne X t (y t ) = [0; y t ] - przydzielić cały zasóbśrodka na realizację projektu I (czyli x t = y t ), - przydzielić cały zasób środka na realizację projektu II (czyli x t = 0), - dokonać takiego rozdziału środka pomiędzy projekty, przy którym ilości środka przydzielone poszczególnym projektom są różne od zera (czyli x t (0; y t )). Funkcja korzyści f t ( yt, xt ) = xt + ( yt xt ) T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 5
9.. Przykłady zastosowania programowania dynamicznego 9... Zagadnienie rozdziału środka (5/8) Etap h ( x ) g ) = max{ f ( y, x : x X ( )}= ( y y { x + ( y x ) : x X ( )} = max y h ( x ) jest parabolą o ramionach skierowanych do góry h (x ) x Mamy: h ( y ) = y czyli: y) h ( = y 0) g ( = y x ( y ) 0 = T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 6
9.. Przykłady zastosowania programowania dynamicznego 9... Zagadnienie rozdziału środka (6/8) Etap g = max{ f( y, x) + g(0,4x + 0,y ) : x X ( )} { x + ( y x ) + (0,4x + 0,y ) : x X ( )} ( y) y = max y h ( x ) h ( x ) jest parabolą o ramionach skierowanych do góry h (x ) x Mamy: h ( y ) =, 47 y czyli: y), 47 h ( 0) =, 7 y g ( = y x ( y) = y T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 7
9.. Przykłady zastosowania programowania dynamicznego 9... Zagadnienie rozdziału środka (7/8) Etap g { x + ( y x ) +,47(0,4 x + 0,y ) : x X ( )} = max y h ( x ) ) = max{ f ( y, x ) + g (0,4x + 0,y ) : x X ( )}= ( y y h ( x ) jest parabolą o ramionach skierowanych do góry h (x ) x Mamy: czyli: h ( = y y), 70 h ( 0) =, y g ( y) =, 70y x ( y) = y T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 8
9.. Przykłady zastosowania programowania dynamicznego 9... Zagadnienie rozdziału środka (8/8) Optymalne realizacje procesu dla y = 00 dla y = 80 y = 00 y = 70 y = 49 x = x (00) = 00 x = x (70) = 70 x = x (49) = 0 y 4 = 4,7 Dochód = 7 00 y = 80 y = 56 y = 9, y 4 =,76 x = x (80) = 80 x = x (56) = 56 x = x (9,) = 0 Dochód = 68,9 T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 9
9.. Przykłady zastosowania programowania dynamicznego 9... Zagadnienie alokacji (/) Przykład 9. Wielkość przydzielonej kwoty 0 4 5 6 Projekt I II III 0 0 0,5,5,8,5 4, 4,5 4,0 5,5 6,5 5,0 6,5 7,8 6, 7,5 9,0 7, 8 0, Rozdzielić fundusz pomiędzy projekty tak, by zmaksymalizować łączną wartość zysku T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 40
9.. Przykłady zastosowania programowania dynamicznego 9... Zagadnienie alokacji (/) Opis wieloetapowego procesu decyzyjnego Stan procesu y t - Decyzja x t - Funkcja przejścia kwota do dyspozycji na początku etapu t, wielkość funduszu przekazana na realizację projektu y t+ = y t x t T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 4
9.. Przykłady zastosowania programowania dynamicznego 9... Zagadnienie alokacji (/) Zbiory stanów i decyzji dopuszczalnych Y = { 6 } X (6) = { 0,,,, 4, 5, 6 } y = y x Y = { 0,,,, 4, 5, 6 } X (0) = { 0 } X () = { 0, } X () = { 0,, } X () = { 0,,, } X (4) = { 0,,,, 4 } X (5) = { 0,,,, 4, 5 } X (6) = { 0,,,, 4, 5, 6 } y = y x Y = { 0,,,, 4, 5, 6 } X (0) = { 0 } X () = { } X () = { } X () = { } X (4) = { 4 } X (5) = { 5 } X (6) = { 6 } y 4 = y x Y 4 = { 0 } T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 4
9.. Przykłady zastosowania programowania dynamicznego 9... Zagadnienie alokacji (4/) Graf procesu 6 6 6 5 4 5 4 0 0 0 T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 4
9.. Przykłady zastosowania programowania dynamicznego 9... Zagadnienie alokacji (5/) Wartość funkcji korzyści etapowych f (6; 0) = 0 f (6; ) =,5 f (6; ) =,5 f (6; ) = 4 f (6; 4) = 5 f (6; 5) = 6, f (6; 6) = 7, f (y ; 0) = 0 f (y ; ) =,5 f (y ; ) = 4, f (y ; ) = 5,5 f (y ; 4) = 6,5 f (y ; 5) = 5,5 f (y ; 6) = 8 f (0; 0) = 0 f (; ) =,8 f (; ) = 4,5 f (; ) = 6,5 f (4; 4) = 7,8 f (5; 5) = 9 f (6; 6) = 0, T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 44
9.. Przykłady zastosowania programowania dynamicznego 9... Zagadnienie alokacji (6/) Równania optymalności etap g { f ( y, x ) : x X ( )} y ( y) = max g 0) = f (0,0) 0 x (0) = 0 ( = g ) = f (,),8 x () = ( = g ) = f (,) 4,5 x () = ( = g ) = f (,) 6,5 x () = ( = g 4) = f (4,4) 7,8 x (4) = 4 ( = g 5) = f (5,5) 9,0 x (5) = 5 ( = g 6) = f (6,6) 0, x (6) = 6 ( = T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 45
9.. Przykłady zastosowania programowania dynamicznego 9... Zagadnienie alokacji (7/) Równania optymalności etap g { f ( y, x ) + g ( y x ) : x X ( )} y ( y) = max g (0) 0 oraz x (0) = 0 = f 0,8,8 (;0) + g () + g ( ) = max max = max =,8 = oraz x () = 0 f (;) (0),5 0,5 + g + f(;0) + g () 0 + 4,5 4,5 g () = max f(;) + g () = max,5 +,8 = max 5, = 5, oraz x () = (;) (0) 4, 0 4,4 f + g + T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 46
9.. Przykłady zastosowania programowania dynamicznego 9... Zagadnienie alokacji (8/) Równania optymalności etap (c.d.) g { f ( y, x ) + g ( y x ) : x X ( )} y ( y) = max f 0 6,5 6,5 (;0) + g () + f,5 4,5 7 (;) + g () + g () = max max max 7 = = = oraz x () = f (;) () 4,,8 6,9 + g + (;) (0) 5,5 0 5,5 f + g + f 0 7,8 7,8 (4;0) + g (4) + (4;) (),5 6,5 9 f + g + g (4) = max f (4;) () max 4, 4,5 = max 8,6 = 9 + g = + oraz x (4) = (4;) () 5,5 +,8 8, f + g f (4;4) (0) 6,5 0 6,5 + g + T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 47
9.. Przykłady zastosowania programowania dynamicznego 9... Zagadnienie alokacji (9/) Równania optymalności etap (c.d.) g { f ( y, x ) + g ( y x ) : x X ( )} y ( y) = max f 0 9 9 (5;0) + g (5) +,5 7,8 0, f(5;) + g (4) + f (5;) () 4, 6,5 0,6 + g + g (5) = max max max = 0,6 = = oraz x (5;) () 5,5 4,5 0 + (5) = f + g f (5;4) () 6,5 +,8 9, + g f (5;5) (0) 7,5 0 7,5 + g + T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 48
9.. Przykłady zastosowania programowania dynamicznego 9... Zagadnienie alokacji (0/) Równania optymalności etap (c.d.) g { f ( y, x ) + g ( y x ) : x X ( )} y ( y) = max f (6;0) (6) 0 0, 0, + + g f,5 9,5 (6;) + g(5) + f (6;) (4) 4, 7,8,9 + g + g (6) = max f (6;) () max 5,5 6,5 max = + g = + = oraz x (6) = f (6;4) () 6,5 4,5 + g + f (6;5) () 7,5,8 0, + g + f (6;6) (0) 8 0 8 + g + T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 49
9.. Przykłady zastosowania programowania dynamicznego 9... Zagadnienie alokacji (/) Równania optymalności etap g { f ( y, x ) + g ( y x ) : x X ( )} y ( y) = max f (6;0) (6) 0 + g + (6;) (5),5 + 0,6, f + g f (6;) (4),5 9,5 + g + g (6) = max f (6;) () max 4 7 max =, + g = + = oraz x (6) = f (6;4) () 5 5, 0, + g + f (6;5) () 6, +,8 9 + g f (6;6) (0) 7, 0 7, + g + T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 50
9.. Przykłady zastosowania programowania dynamicznego 9... Zagadnienie alokacji (/) Optymalna realizacja procesu y 6 x = x (6) = = y = y x = 6 = 5 x = x (5) = = y = y x = 5 x = x () y 4 = y x = = 0 = T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 5
9.. Przykłady zastosowania programowania dynamicznego 9... Zagadnienie alokacji (/) Analiza rozwiązania optymalnego w zależności od wielkości funduszu Wielkość funduszu y g (y ),8 5, 7,0 4 9,0 5 0,6 6, Optymalny ciąg decyzji x x x 0 0 0 0 0 0 T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 5
9.. Przykłady zastosowania programowania dynamicznego 9... Dwukryterialne zagadnienie alokacji (/) Przykład 9.4 Wielkość przydzielonej kwoty Zysk 0 0 Moduł Niezawodność Zysk Niezawodność Zysk Niezawodność 0,9 Moduł Moduł 0 0,9 0 0,9,5 0,97,5 0,94,8 0,96,5 0,99 4, 0,964 4,5 0,984 4,0 0,997 5,5 0,9784 6,5 0,996 4 5,0 0,999 6,5 0,987 7,8 0,9974 5 6, 0,9998 7,5 0,99 9,0 0,999 6 7, 0,9999 8 0,995 0, 0,9994 Rozdzielić posiadany zasób środka w taki sposób, by zmaksymalizować łączną korzyść z działalności systemu i zmaksymalizować jego niezawodność. T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 5
9.. Przykłady zastosowania programowania dynamicznego 9... Dwukryterialne zagadnienie alokacji (/) Kryterium zysku f (6; 0) = 0 f (6; ) =,5 f (6; ) =,5 f (6; ) = 4 f (6; 4) = 5 f (6; 5) = 6, f (6; 6) = 7, f (y ; 0) = 0 f (y ; ) =,5 f (y ; ) = 4, f (y ; ) = 5,5 f (y ; 4) = 6,5 f (y ; 5) = 5,5 f (y ; 6) = 8 f (y ; 0) = 0 f (y ; ) =,8 f (y ; ) = 4,5 f (y ; ) = 6,5 f (y ; 4) = 7,8 f (y ; 5) = 9 f (y ; 6) = 0, T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 54
9.. Przykłady zastosowania programowania dynamicznego 9... Dwukryterialne zagadnienie alokacji (/) Kryterium niezawodności f (6; 0) = 0,9 f (6; ) = 0,97 f (6; ) = 0,99 f (6; ) = 0,997 f (6; 4) = 0,999 f (6; 5) = 0,9998 f (6; 6) = 0,9999 f (y ; 0) = 0,9 f (y ; ) = 0,94 f (y ; ) = 0,964 f (y ; ) = 0,9784 f (y ; 4) = 0,9870 f (y ; 5) = 0,99 f (y ; 6) = 0,995 f (y ; 0) = 0,9 f (y ; ) = 0,96 f (y ; ) = 0,984 f (y ; ) = 0,996 f (y ; 4) = 0,9974 f (y ; 5) = 0,999 f (y ; 6) = 0,9994 T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 55
dynamiczne ), ( ), ( ), ( ),,,,, ( x y f x y f x y f x y x y x y f + + = ), ( ), ( ), ( ),,,,, ( x y f x y f x y f x y x y x y f = [ ] = Składowa - zysk Składowa - niezawodność 9.. Przykłady zastosowania programowania dynamicznego 9... Dwukryterialne zagadnienie alokacji (4/) Wektorowa funkcja kryterium 9. Programowanie d T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 56 [ ], f f F = [ ] ), ( ),, ( ), ( t t t t t t t t t x y f x y f x y F = Ocena modułu drugiego i trzeciego [ ], f f f f F F + = o Ocena modułu pierwszego łącznie z pozostałymi ( ) ( ) ( ) [ ], f f f f f f F F F + + = o o Dekompozycja etapowa
9.. Przykłady zastosowania programowania dynamicznego 9... Dwukryterialne zagadnienie alokacji (5/) Wektorowa wersja zasady optymalności Bellmana Strategia sprawna ma tę własność, że niezależnie od początkowego stanu i początkowej decyzji, pozostałe decyzje muszą stanowić ciąg decyzji sprawnych ze względu na stan wynikający z pierwszej decyzji. T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 57
9.. Przykłady zastosowania programowania dynamicznego 9... Dwukryterialne zagadnienie alokacji (6/) Wektorowe równania optymalności etap G { F ( y, x ) : x X ( )} ( y) = ' max' y G 0) = F (0,0) {[0;0,9]} x (0) = {0} ( = G = {[,8;0,96]} x () = { } ( ) = F (,) = ( = G ) = F (,) {[4,5;0,984]} x () = {} ( = G ) = F (,) {[6,5;0,996]} x () = {} ( = G 4) = F (4,4) {[7,8;0,9974]} x (4) = {4} ( = G 5) = F (5,5) {[9,0;0,999]} x (5) = {5} ( = G 6) = F (6,6) {[0,;0,9994]} x (6) = {6} T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 58
9.. Przykłady zastosowania programowania dynamicznego 9... Dwukryterialne zagadnienie alokacji (7/) Wektorowe równania optymalności etap G { F ( y, x ) G ( y x ) : x X ( )} y ( y) = 'max' o G (0) = ' max'{[0; 0,9] o[0; 0,9]} = {[0; 0,8]} G () G () oraz (0) = {0} [0; 0,9] o[,8; 0,96] [,8; 0,864] = ' max' = ' max' = [,8; 0,864] [,5; 0,94] o[0; 0,9] [,5; 0,846] oraz x () = { } [0; 0,9] o[4,5; 0,984] [4,5; 0,8856] = ' max' [,5; 0,94] o[,8; 0,96] = max [5,; 0,904] = [5,; 0,904] [4,; 0,964] o[0; 0,9] [4,; 0,8676] oraz x () = { } x T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 59
9.. Przykłady zastosowania programowania dynamicznego 9... Dwukryterialne zagadnienie alokacji (8/) Wektorowe równania optymalności etap (c.d.) G { F ( y, x ) G ( y x ) : x X ( )} y ( y) = 'max' o G [ 0; 0,9] o[6,5; 0,996] [6,5; 0,894] [,5; 0,94] o[4,5; 0,984] [7; 0,95] [7; 0,95] () = ' max' = ' max' = [4,; 0,964] o[,8; 0,9] [6,9; 0,954] [6,9; 0,954] [5,5; 0,9784] o[0; 0,9] [5,5; 0,8805] oraz x () = {, } G (4) [0; 0,9] o[7,8; 0,9974] [7,8; 0,8977] [,5; 0,94] o[6,5; 0996] [9; 0,94] [9; 0,94] = ' max' [4,; 0,964] o[4,5; 0,984] = max [8,6; 0,9486] = [8,6; 0,9486] [5,5; 0,9784] o[,8; 0,96] [8,; 0,99] [6,5; 0,987] o[0; 0,9] [6,5; 0,888] oraz x (4) = {, } T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 60
9.. Przykłady zastosowania programowania dynamicznego 9... Dwukryterialne zagadnienie alokacji (9/) Wektorowe równania optymalności etap (c.d.) G { F ( y, x ) G ( y x ) : x X ( )} y ( y) = 'max' o (5) G [ 0; 0,9] o[9; 0,999] [9; 0,899] [,5; 0,94] o[7,8; 0,9974] [0,; 0,976] [4,; 0,964] o[6,5; 0,996] [0,6; 0,9578] = ' max' = max = [5,5; 0,9784] o[4,5; 0,984] [0; 0,967] [6,5; 0,987] o[,8; 0,96] [9,; 0,9475] [7,5; 0,99] o[0; 0,9] [7,5; 0,89] [0,6; 0,9578] [0; 0,967] oraz x (5) = {,} T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 6
9.. Przykłady zastosowania programowania dynamicznego 9... Dwukryterialne zagadnienie alokacji (0/) Wektorowe równania optymalności etap (c.d.) G { F ( y, x ) G ( y x ) : x X ( )} y ( y) = 'max' o [0; 0,9] o[0,; 0,9994] [0,; 0,8995] [,5; 0,94] o [9; 0,999] [,5; 0,99] [4,; 0,964] [7,8; 0,9974] [,9; 0,965] o G (6) = ' max' [5,5; 0,9784] o[6,5; 0,996] = max [; 0,97] = [; 097] [6,5; 0,987] o[4,5; 0,984] [; 0,97] [7,5; 0,99] o[,8; 0,96] [0,; 0,955] [8; 0,995] o[0; 0,9] [8; 0,8958] oraz x (6) = {} T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 6
9.. Przykłady zastosowania programowania dynamicznego 9... Dwukryterialne zagadnienie alokacji (/) Wektorowe równania optymalności etap G { F ( y, x ) G ( y x ) : x X ( )} y ( y) = 'max' o (6) G [0; 0,9] o[; 0,97] [; 0,8749] [,5; 0,97] o[0,6; 0,9578] [,; 0,99] [,5; 0,97] o[0; 0,967] [,5; 0,98] [,5; 0,99] o[9; 0,94] [,5; 0,956] [,5; 0,99] o[8,6; 0,9486] [,; 0,940] [,; 0,99] = ' max' = max = [,5; 0,98] [4; 0,997] o[7; 0,95] [; 0,95] [4; 0,997] [,; 0,940] o[6,9; 0,954] [0,9; 0,99] [5; 0,999] o[5,; 0,904] [0,; 0,907] [6,; 0,9998] o[,8; 0,864] [9,0; 0,868]] [7,; 0,9999] o[0; 0,8] [7,; 0,8099] oraz x (6) = {, } T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 6
9.. Przykłady zastosowania programowania dynamicznego 9... Dwukryterialne zagadnienie alokacji (/) Rozwiązanie optymalne wektorowo Niezdominowany wektor ocen Rozwiązanie sprawne [,; 0,99] x =, x =, x = [,5; 0,98] x =, x =, x = [,; 0,940] x =, x =, x = T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 64
Pora na relaks T.Trzaskalik: Wprowadzenie do badań operacyjnych z komputerem 65