Wykład 4

IV. Decyzje wielostopniowe, programowanie dynamiczne

  1. Problem alokacji zasobów. Algorytm Bellmana.

Podstawy programowania dynamicznego opracowane zostały przez Richarda Bellmana i opublikowane w podstawowej pracy z tego zakresu badań Dynamic Programing /New Jersey 1957r/. Autor omówił w niej zasady podejmowania decyzji optymalnych w procesach wieloetapowych.

Charakterystyczną cechą tych procesów jest to, że składają się one z ciągu przedsięwzięć, w których efekty osiągnięte w poprzednim przedsięwzięciu wykorzystywane są do sterowania przebiegiem przedsięwzięć następnych.

Teoria programowania dynamicznego przedstawiona przez R. Bellmana daje rozwiązania decyzyjnych modeli tak deterministycznych jak i stochastycznych, także wtedy gdy analizowany proces jest procesem ciągłym, oraz gdy jest procesem dyskretnym.

Podstawą teorii jest zasada optymalności Bellmana - „polityka optymalna ma tę własność, że niezależnie od początkowego stanu i początkowej decyzji, pozostałe decyzje muszą stanowić politykę optymalną ze względu na stan wynikający z pierwszej decyzji”.

Zasada sformułowana przez R. Bellmana prowadzi do definicji równań funkcyjnych, tworzących układ równań rekurencyjnych, które stanowią model /obraz/ ciągu przedsięwzięć o których mowa powyżej.

Idea metody programowania dynamicznego sprowadza się do wyznaczenia optimum funkcji wielu zmiennych przez wielokrotne wyznaczenie optimum funkcji jednej zmiennej. Funkcje jednej zmiennej o których mowa są definiowane w szczególny sposób, w jaki?, przeanalizujmy przykład.

Inwestor dysponuje kapitałem K, który może zainwestować w n różnych przedsięwzięć. Na podstawie przeprowadzonych analiz, wynikających z oczekiwań związanych ze zwrotem poniesionych nakładów inwestycyjnych, oszacowano ciąg funkcji zwrotu nakładów 0x01 graphic
; gdzie 0x01 graphic
, i=1,…n, oznacza wartość zwrotu nakładów poniesionych na inwestycje w i - te przedsięwzięcie, zaś 0x01 graphic
wielkość poniesionych nakładów w i przedsięwzięcie.

Inwestor chce znać odpowiedź na następujące pytania:

  1. Jak podzielić nakłady finansowe /kwotę K/ pomiędzy n przedsięwzięć, by łączny zwrot z tytułu poniesionych nakładów był maksymalny,

  2. Jak duży będzie to zwrot nakładów, czy konieczna jest cała kwota nakładu by oczekiwany maksymalny zwrot uzyskać.

Rozwiązanie:

Niech 0x01 graphic
oznacza funkcję zwrotu nakładów. Oczekujemy takich decyzji, które określą nieujemne wartości 0x01 graphic
, i=1,…n, tak, że funkcja 0x01 graphic
przyjmie wartość maksymalną przy założeniu 0x01 graphic
K.

Postać analityczna funkcji nie jest zdefiniowana, należy zatem rozwiązać kwestię definicji tej funkcji jak?.

Etap I: 0x01 graphic
, oznacza zwrot nakładów poniesionych w całej kwocie nakładów K, tylko w przedsięwzięcie pierwsze, 0x01 graphic
K,

Etap II: Niech 0x01 graphic
, gdzie: 0x01 graphic
K, funkcja 0x01 graphic
pozwala wyznaczyć maximum zwrotu nakładów w pierwsze i drugie przedsięwzięcie łącznie.

Etap III: 0x01 graphic
, gdzie 0x01 graphic
K, funkcja 0x01 graphic
określa maximum zwrotu nakładów w przedsięwzięcie pierwsze, drugie i trzecie.

…………………………………………………………………………………

Etap n-1: 0x01 graphic
, gdzie 0x01 graphic
K, funkcja 0x01 graphic
wyznacza maximum zwrotu nakładów w przedsięwzięcie od pierwszego do n-1.

Etap n: 0x01 graphic
, gdzie 0x01 graphic
K.

Funkcja 0x01 graphic
, teza ta wynika z definicji funkcji 0x01 graphic
. Oznacza to, że po realizacji n etapów, w których definiujemy funkcje zwrotu nakładów w kolejno dołączane przedsięwzięcia otrzymujemy odpowiedź na sformułowane na wstępie pytania o wartość zwrotu łącznego oraz odpowiedź na pytanie o alokację nakładów.

Przykład: Zarząd pewnej firmy zamierza zainwestować w budowę sieci sklepów w trzech miejscowościach. Dysponuje kwotą 30 mln PLN, dział analiz opracował dane dotyczące zwrotu nakładów przy nakładach na poziomie 10, 20 i 30 mln PLN.

Nakłady

Zwrot w miejsc. A

Zwrot w miejsc. B

Zwrot w miejsc. C

0

0

0

0

10

0,26

0,24

0,27

20

0,55

0,56

0,54

30

0,62

0,63

0,65

Dokonać takiej alokacji nakładów by łączny zwrot nakładów był maksymalny.

Etap I: 0x01 graphic
= 0,62. Gdyby Inwestor podjął decyzje o inwestycji tylko w miejscowości A, wówczas spodziewany zwrot nakładów wyniósłby 0,62 mln PLN.

Etap II: 0x01 graphic
, rozkład {0,0},

0x01 graphic
, {10,0},

0x01 graphic
,

0x01 graphic
, {0,20},

0x01 graphic

0x01 graphic
, {10,20}.

Etap III: 0x01 graphic
, rozkład {0,0,0},

0x01 graphic
, {0,0,10},

0x01 graphic
,

0x01 graphic
, {0,20,0},

0x01 graphic
0x01 graphic
, rozkład {0,20,10}.

Spodziewany maksymalny zwrot z inwestycji sięga 0,83 mln PLN. Wynik ten można osiągnąć inwestując 20 mln PLN w miejscowości B, dalsze 10 mln PLN należy zainwestować w miejscowości C, inwestycji w miejscowości A nie należy brać pod uwagę.

Powyższy wynik otrzymano przy założeniu iż zwrot nakładów został oszacowano w przestrzeni dyskretnej co oznacza, że oszacowano zwrot przy nakładach na poziomie 10,20 i 30 mln PLN. Niewątpliwie bardziej interesujący wynik otrzymalibyśmy zakładając, że zwrot nakładów ma charakter ciągły, co osiągniemy opisując zwrot nakładów za pomocą funkcji ciągłych.

Niech 0x01 graphic
, 0x01 graphic
,…, 0x01 graphic
są funkcjami ciągłymi aproksymującymi zwrot nakładów odpowiednio w miejscowości A1,A2 ,…, An, nakłady inwestycyjne na poziomie K. Określić tak zmienne 0x01 graphic
,…0x01 graphic
, by łączny efekt 0x01 graphic
osiągnął wartość maksymalną, przy założeniu, że:

0x01 graphic
K oraz 0x01 graphic
.

Rozwiązanie:

Niech 0x01 graphic
,

0x01 graphic
,

……………………………………………………………………….

0x01 graphic
.

Przykład: Oszacowano parametry funkcji ciągłych, definiujących zwrot nakładów w trzy produkty finansowe: 0x01 graphic
,

0x01 graphic
,

0x01 graphic
, gdzie 0x01 graphic
, nakład inwestycyjny K=10 mln PLN.

Oszacować tak zmienne decyzyjne 0x01 graphic
/oznaczają wielkość nakładów odpowiednio w produkt pierwszy, drugi i trzeci/ aby łączny efekt;

0x01 graphic
osiągnął wartość maksymalną, przy założeniu, że: 0x01 graphic
oraz 0x01 graphic
.

Rozwiązanie:

Etap I: Oznaczamy taką wartość 0x01 graphic
dla której 0x01 graphic
, jest to tzw. punkt krytyczny funkcji 0x01 graphic
, gdzie 0x01 graphic

Warunek 0x01 graphic
jest spełniony dla 0x01 graphic
oraz 0x01 graphic
.

Wartość 0x01 graphic
, oraz 0x01 graphic
, 0x01 graphic
. Porównując te trzy wartości otrzymamy:

0x01 graphic
oraz 0x01 graphic
, zatem 0x01 graphic
dla 0x01 graphic
, gdzie 0x01 graphic

Etap II: Rozwiązujemy równanie 0x01 graphic
, gdzie: 0x01 graphic
,

tzn. 0x01 graphic
, stąd 0x01 graphic
.

Wartość 0x01 graphic
, oraz 0x01 graphic
, 0x01 graphic
.

Zatem w punkcie 0x01 graphic
realizuje się największa wartość funkcji0x01 graphic
w przedziale [0;10]. Stąd 0x01 graphic
, 0x01 graphic
.

0x01 graphic
, tzn., że funkcja 0x01 graphic
osiąga maximum dla 0x01 graphic
, 0x01 graphic
, 0x01 graphic
, które wynosi 28.19mln PLN.