Metoda programowania dynamicznego - Notatki - Badania operacyjne, Notatki'z Badania operacyjne. University of Szczecin
Osholom
Osholom5 March 2013

Metoda programowania dynamicznego - Notatki - Badania operacyjne, Notatki'z Badania operacyjne. University of Szczecin

PDF (207.4 KB)
2 strony
1000+Liczba odwiedzin
Opis
Notatki dotyczące badań operacyjnych: metoda programowania dynamicznego (Błażewicz); wieloetapowe procesy decyzyjne,
20punkty
Punkty pobierania niezbędne do pobrania
tego dokumentu
Pobierz dokument

Metoda programowania dynamicznego

Podstawowym elementem koncepcji dynamicznego rozwiązania zadania WPD z własnością Markowa jest tzw. zasada optymalności sformułowana przez R.Bellmana:

DEFINICJA Zasady Optymalności Bellmana

Strategia optymalna ma tę własność, że niezależnie od stanu początkowego i decyzji początkowej, pozostałe decyzje muszą stanowić politykę optymalną ze względu na stan wynikający z pierwszej decyzji.

Interpretacja: Jeżeli x1*,...,xn* jest strategią optymalną procesu N-etapowego, to również strategią optymalną jest strategia x2*,...,xN* dla procesu N-1 etapowego przy stanie początkowym s2=T(s1,x1*).

Algorytm programowania dynamicznego: Niech

z=f1(s1,x1)+ f2(s2,x2)+ ... + fN(sN,xN) będzie funkcją celu którą należy zminimalizować. Zgodnie z zasadą optymalności

min {f1(s1,x1)+ f2(s2,x2)+ ... + fN(sN,xN)}=

min {f1(s1,x1)+ min {f2(s2,x2)+ ... + fN(sN,xN)}}

Wprowadzając oznaczenie

q1(s1) = min {f1(s1,x1)+ f2(s2,x2)+ ... + fN(sN,xN)}

otrzymamy

qk(sk) = min {fk(sk,xk) + qk+1(sk+1)} qN(sN) = min {fN(sN,xN)}

Ostatecznie otrzymamy równanie rekurencyjne Bellmana (RRB)

qk(sk) = min { fk(sk,xk)+ qk+1(T(sk,xk)) }

qN(sN) = min {fN(sN,xN)}

Rozpoczynamy od etapu N. Dla każdego stanu wejściowego etapu N (dla każdego sSN) oblicz:

qN(sN) = min{ fN(xN, sN) } Przechodzimy do etapu k (k=N-1,..,1). Dla każdego stanu wejściowego etapu k (dla każdego sSk) oblicz:

qk(sk) = min {fk(sk,xk)+ qk+1(sk+1)}

Otrzymujemy minimalną wartość funkcji kryterialnej z*=g1(s1) oraz optymalną decyzję

x1*. Znając si oraz xi* możemy określić si+1* si+1*=T(si,xi*)

PRZYKŁAD cd.: Wprowadźmy oznaczenia: FH oznaczać będzie najkrótszą drogę pomiędzy F i H FH=L[G] oznaczać będzie, że najkrótsza droga z F do H wynosi L i następnikiem F jest G

docsity.com

Zadanie polega na znalezieniu najkrótszej drogi z A do E. Oznaczmy ją następująco: A- Bk-Cl-Dm-E. Z zasady optymalności Bellmana wynika, że:

 najkrótszą drogą z Bk do E musi być Bk-Cl-Dm-E  a jeżeli to, to najkrótszą drogą z Cl-E musi być Cl-Dm-E  a jeżeli to, to najkrótszą drogą z Dm do E musi być Dm-E.

W oparciu o algorytm programowania dynamicznego należy:  znaleźć DiE - najkrótszą drogę z Di do E (dla każdego Di)  znaleźć CiE - najkrótszą drogę z Ci do E (dla każdego Ci) jako min{CiDj +DjE}  znaleźć BiE - najkrótszą drogę z Bi do E (dla każdego Bi) jako min{BiCj +CjE}  znaleźć AE - najkrótszą drogę z A do E jako min{ABj +BjE}

Będziemy wyznaczać odległości począwszy od ostatniego etapu, przechodząc do etapu pierwszego. D1E = 4[E] D2E= 7[E] C1E = min{C1Di +DiE} = min {5+4, 1+7} = 8[D2] C2E=min {3+4, 2+7} = 7[D1] B1E = min{8+8,11+7} = 16[C1] B2E=min{3+8, 10+7}=11[C1] B3E=min{12+8,4+7}=11[C2] AE =min{4+16,6+11,7+11}=17[B2] Możemy określić najkrótszą drogę z A do E idąc od początku:

A - B2 - C1 - D2 - E

docsity.com

komentarze (0)
Brak komentarzy
Bądź autorem pierwszego komentarza!
To jest jedynie podgląd.
Zobacz i pobierz cały dokument.
Docsity is not optimized for the browser you're using. In order to have a better experience we suggest you to use Internet Explorer 9+, Chrome, Firefox or Safari! Download Google Chrome