Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Programowanie dynamiczne

Podobne prezentacje


Prezentacja na temat: "Programowanie dynamiczne"— Zapis prezentacji:

1 Programowanie dynamiczne
Opracowano na podstawie: „Badania operacyjne w przykładach i zadaniach” pod red. Karola Kukuły Wyd. Naukowe PWN „Matematyczne techniki zarządzania” pod red. Zbigniewa Łuckiego Wyd. AGH Badania operacyjne mgr inż. Piotr Betlej

2 Programowanie dynamiczne
jest jedną z technik matematycznych poszukiwania rozwiązań optymalnych określa sposób podejścia do rozwiązywania problemu niż jako pojedynczy uniwersalny algorytm.

3 rozwiązanie polega na podziale zagadnienia pierwotnego na podproblemy lub etapy, a następnie na ich sekwencyjnym rozwiązywaniu, aż do znalezienia rozwiązania optymalnego. Stosuje się przy tym, niezależnie od algorytmu, zasadę optymalności Bellmana, w myśl której optymalne rozwiązanie zagadnień z zakresu programowania dynamicznego ma tę własność, że optymalne rozwiązanie dla k-tego etapu jest jednocześnie rozwiązaniem optymalnym dla etapów k + 1, k + 2, ..., N. Tak więc optymalne rozwiązanie dla etapu pierwszego stanowi optymalne rozwiązanie dla całego problemu. W związku z powyższą zasadą problem z zakresu programowania dynamicznego rozwiązuje się rozpoczynając od poszukiwania rozwiązania dla ostatniego etapu (N), a następnie cofając się poszukuje się rozwiązania dla etapu N-1 Uzyskane w ten sposób rozwiązanie dla etapów N-1 oraz N jest optymalne bez względu na to, w jaki sposób osiągnięto etap N- 1. Powtarzając w powyższy sposób etap po etapie dochodzimy do rozwiązania optymalnego dla pierwszego etapu, a więc i dla całego problemu.

4 Zadania programowania dynamicznego
zagadnienie dyliżansu, zagadnienie finansowania inwestycji, optymalizacja zapasów, alokacja zasobów, czy wymiana majątku trwałego.

5 Zagadnienie finansowania przedsięwzięcia inwestycyjnego
Zagadnienie finansowania przedsięwzięcia inwestycyjnego można scharakteryzować jako problem alokacji określonego zasobu środków (w tym przypadku wyrażonego w jednostkach pieniężnych) pomiędzy poszczególne zadania (programy inwestycyjne), tak aby osiągnąć maksymalny efekt. Przyjmuje się przy tym następujące założenia: Efekt zastosowania każdego z programów inwestycyjnych nie zależy od tego, czy zostały zastosowane równocześnie inne programy inwestycyjne. Zwrot nakładów inwestycyjnych jest mierzony w tych samych jednostkach. Nakłady inwestycyjne są liczbami całkowitymi. Funkcje określające związki między nakładami inwestycyjnymi a wysokością zwrotu z nakładów są niemalejące.

6 Przykład zagadnienia alokacji inwestycji
Przedsiębiorca Jan Rogala, posiadający kredyt inwestycyjny w wysokości 6 min złotych oraz halę produkcyjną w Rzeszowie, postanowił zainstalować nowoczesne linie piekarnicze: francuską (F), szwedzką (S) oraz polską (P). Dobowe zdolności produkcyjne pieczywa (w tonach) w zależności od wysokości nakładów inwestycyjnych przeznaczonych na zainstalowanie linii produkcyjnej danego typu, przedstawiono w poniższej tabeli: Analiza rynku wykazała, że każda z linii produkcyjnych, pozwala uzyskiwać jednakowe zyski w przeliczeniu na 1 t pieczywa. Jan Rogala musi więc w tym przypadku podjąć decyzję dotyczącą podziału kredytu pomiędzy poszczególne programy inwestycyjne, tak aby piekarnia osiągnęła maksymalną, dobową zdolność produkcyjną.

7 Rozwiązanie Powyższy problem, należący do kategorii programowania dynamicznego, można rozwiązać za pomocą procedury opisanej w kilku etapach.

8 KROK 1. Załóżmy, że jedynym możliwym rozwiązaniem jest zakupienie polskiej linii produkcyjnej i zadajmy sobie pytanie dotyczące uzyskanej w ten sposób dobowej zdolności produkcyjnej w zależności od zainwestowanej kwoty. W tym przypadku, jedynym sensownym rozwiązaniem jest zainwestowanie 6 min zł w polską linię produkcyjną w celu osiągnięcia zdolności produkcyjnej 16 t pieczywa na dobę. Rezultat ten zapiszemy następująco: P(6) = 16, co oznacza, że 6 mln zł zainwestowane w polską linię produkcyjną zapewnia produkcję 16 t pieczywa na dobę.

9 KROK 2. Załóżmy, że dostępne są dwa typy linii produkcyjnych P oraz S i zadajmy sobie następujące pytanie: jak należy podzielić kredyt inwestycyjny pomiędzy te dwa programy, aby uzyskać maksymalną dobową zdolność produkcyjną?

10 W tym przypadku możliwe jest siedem wariantów podziału 6 min kredytu, które dają następujące dobowe zdolności produkcyjne: P(6) + S(0)= = 16, P(5) + S(l)= = 20, P(4) + S(2)= = 23, P(3) + S(3)= =26, P(2) + S(4)= = 29, P(1) + S(5)= 4+17 = 21, P(0) + S(6) = = 18. W powyższej sytuacji należy więc zainwestować 2 mln w polską linię oraz 4 mln w szwedzką linię, osiągając w ten sposób 29 t pieczywa na dobę, tzn. P(2) + S(4) = 29.

11 KROK 3. Spróbujmy obecnie znaleźć optymalny podział kredytu pomiędzy linię P oraz S przy malejącej kwocie nakładów inwestycyjnych: 5 mln na linie P oraz S P(5) + S(O) = = 15, P(4) + S(1) = = 20, P(3) + S(2) = = 23, P(2) + S(3) = = 26, P(1) + S(4) = = 18, P(0) + S(5) = = 17. W przypadku dysponowania kwotą 5 mln zł na linię P oraz S należy zainwestować 2 mln w linię P oraz 3 mln w linię S, osiągając 26 t pieczywa dobę. Rezultat zapiszemy w następujący sposób: P(2) + S(3) = 26.

12 b) 4 mln zł na linie P oraz S P(4) + S(0) = = 15, P(3) + S(1) = = 20, P(2) + S(2) = = 23, P(1) + S(3) = = 15, P(0) + S(4) = = 14. W przypadku dysponowania kwotą 4 mln zł należy zainwestować po 2 mln zł w linię P oraz S: P(2) + S(2) = 23.

13 c) 3 mln zł na linie P oraz S: P(3) + S(0) = 15 + 0 = 15
c) 3 mln zł na linie P oraz S: P(3) + S(0) = = 15. P(2) + S(1)= = 20, P(1) + S(2) = = 12, P(0) + S(3) = = 11. W tym przypadku należy zainwestować 2 mln w linię P oraz 1 mln w linię S: P(2) + S(1) = 20.

14 d) 2 mln zł na linie P oraz S P(2) + S(0) = = 15, P(1) + S(1) = = 9, P(0) + S(2) = = 8. W tym przypadku należy zainwestować 2 min zł w linię polską (P): P(2) + S(0)= 15.

15 e) 1 mln zł na linie P oraz S P(1) + S(0) = = 4, P(0) + S(1) = = 5. W tym przypadku należy zainwestować 1 mln zł w linię szwedzką (S): P(0) + S(1) = 5. A zatem, w kroku 3 określiliśmy optymalne kombinacje nakładów na linie P oraz S.

16 KROK 4. Konsekwentnie, w kroku 4 wystarczy rozpatrzyć wszystkie kombinacje podziału 6 mln zł kredytu pomiędzy linię F oraz linie P + S. Zdolności produkcyjne w zależności od nakładów kredytowych przedstawiono w poniższej tabeli:

17 Jak łatwo zauważyć możliwych jest siedem wariantów podziału 6 mln kredytu pomiędzy linie F oraz linie P + S, dających następujące zdolności produkcyjne: F(6) + (P + S)(0) = = 20, F(5) + (P + S)(1) = 15+5 = 20, F(4) + (P + S)(2) = = 27, F(3) + (P + S)(3) = = 32, F(2) + (P + S)(4) = = 35, F(1) + (P + S)(5)= = 32, F(0) + (P + S)(6) = = Tak więc maksymalną zdolność produkcyjną piekarni można uzyskać inwestując 2 min w linię francuską (F) oraz 4 mln zł w linię P i S.

18 Aby uzyskać rozwiązanie ostateczne, wystarczy odszukać w kroku 3 optymalny sposób podziału tych 4 mln zł pomiędzy linię P oraz S (krok 3b). W rezultacie otrzymujemy rozwiązanie: 2 mln zł na linię F, 2 mln zł na linię P oraz 2 mln ma linię S, co zapewnia 35 t pieczywa na dobę.

19 Zagadnienie dyliżansu
Nazwa zagadnienia pochodzi od pewnego kupca amerykańskiego, który transportował towary ze Wschodniego Wybrzeża USA na Wybrzeże Zachodnie, używając w tym celu różnych połączeń realizowanych za pomocą dyliżansu. Oczywiście chodziło o dobór takich połączeń, aby transport odbywał się w miarę bezpiecznie, a miarą bezpieczeństwa na danej linii były stawki pobierane przez towarzystwo ubezpieczeniowe. Rozwiązanie problemu wymagało podzielenia całej trasy na etapy, a w każdym z etapów określenia miast etapowych oraz wszystkich możliwych połączeń pomiędzy nimi.

20 Przykład problemu dyliżansu
Firma transportowa EuroTrans, ustalając nowe trasy przejazdu swych ciężarówek z Polski do Hiszpanii, podzieliła całą trasę na pięć etapów. W każdym z etapów wyznaczono po kilka miast, przez które przejeżdżać będą ciężarówki. Problem polega na znalezieniu najkrótszej drogi przejazdu pomiędzy Polską a Hiszpanią. Odległości drogowe pomiędzy miastami (w km) zaznaczono na poniższym rysunku:

21

22 KROK 1. Załóżmy, że ciężarówki dotarły do etapu 4. W tej sytuacji odległość od celu wynosi: d7,9 = 120 km lub d8,9 = 130 km, w zależności od tego, w którym z miast w etapie 4 zatrzymano się na postój.

23 KROK 2. Cofnijmy się o jeden etap. Odległość miast od celu w etapie 3 wynosi: d4,7 + d7,9 = = 320, d4,8 + d8,9 = = 380. Tak więc z miasta 4 do 9 należy wybrać drogę o długości d4,7,9 = 320. Podobnie: d5,7 + d7,9 = = 320, d5,8 + d8,9 = = 310, a więc z miasta 5 do 9 należy wybrać drogę o długości d5,8,9 = 310. Następnie: d6,7 + d7,9 = = 270, d6,8 + d8,9 = = 240, a więc z miasta 6 do 9 należy wybrać drogę o długości d6,8,9 = 240.

24 KROK 3. Powtórzmy całe postępowanie biorąc za punkt wyjścia etap 2: d2,4 + d4,9 = = 470, d2,5 + d5,9 = = 390, d2,6 + d6,9 = = 360, a więc z miasta 2 do 9 należy wybrać drogę: o długości 360 km. Podobnie d3,4 + d4,9 = = 470, d3,5 + d4,9 = = 440, d3,6 + d4,9 = = 430, a więc z miasta 3 do 9 należy wybrać drogę: o długości 430 km.

25 KROK 4. Dotarliśmy do punktu startowego, w którym rozpatrujemy sposób dotarcia do celu z miasta 1 przez miasta 2 lub 3: d1,2 + d2,9 = = 460, d1,3 + d3,9 = = 510, a więc z miasta 1 do 9 należy wybrać drogę: o długości 460 km.


Pobierz ppt "Programowanie dynamiczne"

Podobne prezentacje


Reklamy Google