Schemat programowania dynamicznego (ang. dynamic programming)

Podobne dokumenty
Modele i narzędzia optymalizacji w systemach informatycznych zarządzania

Algorytmy i struktury danych.

Algorytmy i Struktury Danych

Projektowanie i analiza algorytmów

Programowanie dynamiczne cz. 2

Programowanie dynamiczne i algorytmy zachłanne

Zaawansowane algorytmy i struktury danych

Programowanie dynamiczne (optymalizacja dynamiczna).

Programowanie dynamiczne. Tadeusz Trzaskalik

Rozdział 9 PROGRAMOWANIE DYNAMICZNE

Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott

Techniki konstruowania algorytmów. Metoda dziel i zwyciężaj

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Temat: Algorytmy zachłanne

Wstęp do programowania

Sterowanie optymalne

Optymalizacja. Algorytmy dokładne

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Algorytmy i Struktury Danych.

Ekonometria - ćwiczenia 10

Elementy Modelowania Matematycznego

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

SPOTKANIE 11: Reinforcement learning

Programowanie nieliniowe

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

PROGRAMOWANIE DYNAMICZNE W ROZMYTYM OTOCZENIU DO STEROWANIA STATKIEM

BADANIA OPERACYJNE i teoria optymalizacji. Prowadzący: dr Tomasz Pisula Katedra Metod Ilościowych

Programowanie liniowe

Instytut Konstrukcji i Eksploatacji Maszyn Katedra Logistyki i Systemów Transportowych. Badania operacyjne. Dr inż.

Programowanie dynamiczne

Programowanie liniowe

Programowanie celowe #1

Wstęp do Sztucznej Inteligencji

Technologia informacyjna Algorytm Janusz Uriasz

Document: Exercise*02*-*manual /11/ :31---page1of8 INSTRUKCJA DO ĆWICZENIA NR 2

Metody ilościowe w badaniach ekonomicznych

ALGORYTMY EWOLUCYJNE W OPTYMALIZACJI JEDNOKRYTERIALNEJ

Wstęp do programowania

ZASTOSOWANIE PROGRAMOWANIA LINIOWEGO W ZAGADNIENIACH WSPOMAGANIA PROCESU PODEJMOWANIA DECYZJI

ZAGADNIENIE TRANSPORTOWE

Ćwiczenie 3 Programowanie dynamiczne

Definicja problemu programowania matematycznego

ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1)

Plan. Zakres badań teorii optymalizacji. Teoria optymalizacji. Teoria optymalizacji a badania operacyjne. Badania operacyjne i teoria optymalizacji

Z52: Algebra liniowa Zagadnienie: Zastosowania algebry liniowej Zadanie: Operatory różniczkowania, zagadnienie brzegowe.

Opis przedmiotu. Karta przedmiotu - Badania operacyjne Katalog ECTS Politechniki Warszawskiej

Rozdział 1 PROGRAMOWANIE LINIOWE

Wstęp do Programowania potok funkcyjny

Metody numeryczne. dr Artur Woike. Ćwiczenia nr 2. Rozwiązywanie równań nieliniowych metody połowienia, regula falsi i siecznych.

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Elementy Modelowania Matematycznego Wykład 7 Programowanie nieliniowe i całkowitoliczbowe

Opis przedmiotu. Karta przedmiotu - Badania operacyjne Katalog ECTS Politechniki Warszawskiej

Opis przedmiotu: Badania operacyjne

Optymalizacja konstrukcji

Programowanie matematyczne

Algorytm genetyczny (genetic algorithm)-

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Algorytm simplex i dualność

Wykład z modelowania matematycznego. Zagadnienie transportowe.

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Spis treści WSTĘP... 9

//warunki początkowe m=500; T=30; c=0.4; t=linspace(0,t,m); y0=[-2.5;2.5];

ZAGADNIENIE TRANSPORTOWE(ZT)

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 9. Karol Tarnowski A-1 p.

Autostopem przez galaiktykę: Intuicyjne omówienie zagadnień. Tom I: Optymalizacja. Nie panikuj!

doc. dr Beata Pułska-Turyna Zarządzanie B506 mail: mgr Piotr J. Gadecki Zakład Badań Operacyjnych Zarządzania B 505.

Procesy Markowa zawdzięczają swoją nazwę ich twórcy Andriejowi Markowowi, który po raz pierwszy opisał problem w 1906 roku.

Definicja pochodnej cząstkowej

Wykład z równań różnicowych

Problem decyzyjny naley do klasy NP. (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM.

Rozwiązywanie zależności rekurencyjnych metodą równania charakterystycznego

TEORETYCZNE PODSTAWY INFORMATYKI

ZASTOSOWANIE ZASADY MAKSIMUM PONTRIAGINA DO ZAGADNIENIA

Teoretyczne podstawy informatyki

Programowanie liniowe całkowitoliczbowe. Tadeusz Trzaskalik

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

Rozdział 1 PROGRAMOWANIE LINIOWE

OPTYMALIZACJA W LOGISTYCE

TOZ -Techniki optymalizacji w zarządzaniu

Wykład XII. optymalizacja w relacyjnych bazach danych

Rekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie:

Przekształcanie równań stanu do postaci kanonicznej diagonalnej

Wybrane podstawowe rodzaje algorytmów

Optymalizacja. Algorytmy dokładne

Wykład 5 Dopasowywanie lokalne

Wykład 7. Informatyka Stosowana. Magdalena Alama-Bućko. 16 kwietnia Magdalena Alama-Bućko Wykład 7 16 kwietnia / 23

INSTRUKCJA DO ĆWICZENIA NR 1

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

Wstęp do programowania

Wykład na Politechnice Krakowskiej w dniu 18 stycznia 2012 r. ZADAŃ I ALGORYTMÓW W OPTYMALIZACJI DYSKRETNEJ

Algebra liniowa. Macierze i układy równań liniowych

Matematyka stosowana i metody numeryczne

Aby mówić o procesie decyzyjnym Markowa musimy zdefiniować następujący zestaw (krotkę): gdzie:

Pochodne cząstkowe i ich zastosowanie. Ekstrema lokalne funkcji

Elementy Modelowania Matematycznego

Opis efektów kształcenia dla programu kształcenia (kierunkowe efekty kształcenia) WIEDZA. rozumie cywilizacyjne znaczenie matematyki i jej zastosowań

WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY

Aproksymacja funkcji a regresja symboliczna

Rozdział 2 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE

Transkrypt:

Schemat programowania dynamicznego (ang. dynamic programming) Jest jedną z metod rozwiązywania problemów optymalizacyjnych. Jej twórcą (1957) był amerykański matematyk Richard Ernest Bellman. Schemat ten określa ogólne podejście polegające na przekształceniu zadania optymalizacyjnego w wieloetapowy proces decyzyjny, w którym stan na każdym etapie zależy od decyzji wybieranej ze zbioru decyzji dopuszczalnych. Metoda ma zastosowanie dla problemów ciągłych i dyskretnych.

Zadanie: zminimalizować koszt przejścia pomiędzy stanami Dane: graf (I) reprezentujący problem S A 2 C 3 B 4 A I 4 F 6 D 7 B I 2 D 5 F 7 C I 1 D 4 F 7 D E 1 H 9 E G 3 F E 1 H 2 G H G 4 I E 3 H 6

Zadanie: zminimalizować koszt przejścia pomiędzy stanami Dane: graf (I) analiza sytuacji...

Zadanie: zminimalizować koszt przejścia pomiędzy stanami Dane: graf (I) Metoda: zachłanna (A) wynik:... koszt:...

Zadanie: zminimalizować koszt przejścia pomiędzy stanami Dane: graf (I) Metoda: zachłanna (A) wynik: S-A-I-E-G koszt: 13 Czy jest rozwiązanie optymalne? Jak je znaleźć? Jaki będzie koszt znalezienia rozwiązania optymalnego?

Zadanie: zminimalizować koszt przejścia pomiędzy stanami Dane: graf (I) Metoda: zachłanna (A) wynik: S-A-I-E-G koszt: 12 Czy jest rozwiązanie optymalne? NIE Jak je znaleźć? np. metodą brute force Jaki będzie koszt znalezienia rozwiązania optymalnego?...

Zadanie: zminimalizować koszt przejścia pomiędzy stanami Dane: graf (I) Metoda: zachłanna (A) wynik: S-A-I-E-G koszt: 12 Czy jest rozwiązanie optymalne? NIE Jak je znaleźć? np. metodą brute force Jaki będzie koszt znalezienia rozwiązania optymalnego? 3 x 3 x 2 sum po 4 dane, czyli 72 działania.

Zadanie: zminimalizować koszt przejścia pomiędzy stanami Dane: graf (I) Metoda: Dijkstry (B) wynik:... koszt:...

Zadanie: zminimalizować koszt przejścia pomiędzy stanami Dane: graf (I) Metoda: Dijkstry (B) wynik: S-C-I-E-G koszt: 10

Zadanie: zminimalizować koszt przejścia pomiędzy stanami Dane: graf (I) Metoda: programowanie dynamiczne (C) wynik:... koszt:...

PD - metoda rozwiązywania problemów optymalizacyjnych dekomponowalnych rekurencyjnie na podproblemy. 1. scharakteryzowanie struktury rozwiązania optymalnego 2. zdefiniowanie kosztu rozwiązania optymalnego jako funkcji optymalnych rozwiązań podproblemów (układ równań rekurencyjnych) 3. obliczenie optymalnego kosztu metodą bottom-up (rozwiązywanie problemów od najmniejszego do największego) 4. skonstruowanie rozwiązania optymalnego (na podstawie wykonanych obliczeń) - można pominąć jeżeli interesuje nas tylko koszt rozwiązania optymalnego a nie jego przebieg

ad. 1 problem wykazuje optymalną strukturę, jeśli jego rozwiązanie jest funkcją optymalnych rozwiązań podproblemów. czy (nasz) problem posiada optymalną podstrukturę?

ad. 1 problem wykazuje optymalną strukturę, jeśli jego rozwiązanie jest funkcją optymalnych rozwiązań podproblemów. czy (nasz) problem posiada optymalną podstrukturę? TAK ad. 2 zdefiniowanie kosztu rozwiązania optymalnego jako funkcji optymalnych rozwiązań podproblemów (układ równań rekurencyjnych) jak zdefiniowany jest (rekurencyjnie) koszt rozwiązania?

ad. 1 problem wykazuje optymalną strukturę, jeśli jego rozwiązanie jest funkcją optymalnych rozwiązań podproblemów. czy (nasz) problem posiada optymalną podstrukturę? TAK ad. 2 zdefiniowanie kosztu rozwiązania optymalnego jako funkcji optymalnych rozwiązań podproblemów (układ równań rekurencyjnych) jak zdefiniowany jest (rekurencyjnie) koszt rozwiązania? (patrz: tablica)

ad. 1 problem wykazuje optymalną strukturę, jeśli jego rozwiązanie jest funkcją optymalnych rozwiązań podproblemów. czy (nasz) problem posiada optymalną podstrukturę? TAK ad. 2 zdefiniowanie kosztu rozwiązania optymalnego jako funkcji optymalnych rozwiązań podproblemów (układ równań rekurencyjnych) jak zdefiniowany jest (rekurencyjnie) koszt rozwiązania? (patrz: tablica) ad. 3 obliczenie optymalnego kosztu od czego zaczynamy, czyli gdzie mamy najmniejszy problem i ile wynosi koszt optymalny? (patrz: tablica)

ad. 1 problem wykazuje optymalną strukturę, jeśli jego rozwiązanie jest funkcją optymalnych rozwiązań podproblemów. czy (nasz) problem posiada optymalną podstrukturę? TAK ad. 2 zdefiniowanie kosztu rozwiązania optymalnego jako funkcji optymalnych rozwiązań podproblemów (układ równań rekurencyjnych) jak zdefiniowany jest (rekurencyjnie) koszt rozwiązania? (patrz: tablica) ad. 3 obliczenie optymalnego kosztu od czego zaczynamy? od końca, czyli G, a koszt wynosi 10 ad. 4 skonstruowanie rozwiązania optymalnego jak odczytać rozwiązanie, pamiętając o spełnionym warunku optymalnej podstruktury?

ad. 1 problem wykazuje optymalną strukturę, jeśli jego rozwiązanie jest funkcją optymalnych rozwiązań podproblemów. czy (nasz) problem posiada optymalną podstrukturę? TAK ad. 2 zdefiniowanie kosztu rozwiązania optymalnego jako funkcji optymalnych rozwiązań podproblemów (układ równań rekurencyjnych) jak zdefiniowany jest (rekurencyjnie) koszt rozwiązania? (patrz: tablica) ad. 3 obliczenie optymalnego kosztu od czego zaczynamy, czyli gdzie mamy najmniejszy problem? od końca, czyi G, a koszt wynosi 10 ad. 4 skonstruowanie rozwiązania optymalnego jak odczytać rozwiązanie? S-C-I-E-G

Przyjmijmy następujące oznaczenia: d i - decyzja podejmowana na i-tym etapie procesu, S i - zbiór stanów procesu na kolejnych etapach, s i - stan przed podjęciem decyzji d i, s i+1 - stan po podjęciu decyzji d i, D i - zbiór decyzji dopuszczalnych na i-tym etapie procesu, Przebieg wieloetapowego procesu podejmowania decyzji można zapisać w postaci transformacji s k = T (s k 1, d k 1 ) stąd s i+1 = T (s i, d i )

Z procesem podejmowania decyzji związana jest skalarna funkcja celu służąca do oceny ciągu decyzji d 1, d 2,..., d N F = (s 1, s 2,..., s N ; d 1, d 2,..., d N ) Rozwiązaniem rozważanego problemu jest znalezienie strategii optymalnej, czyli takiego ciągu decyzji d 1, d 2,..., d N, dla którego funkcja F osiąga ekstremum (minimum bądź maksimum). Jeżeli S 1 jest znany, to przebieg wieloetapowego procesu decyzyjnego jest wyznaczony przez ciąg decyzji dopuszczalnych d 1, d 2,..., d N nazywanych strategią.

Wyznaczanie strategii optymalnej w ogólnym przypadku wymaga rozwiązania zadania optymalizacji nieliniowej min F (s 1, s 2,..., s N ; d 1, d 2,..., d N ) d 1,d 2,...,d N s k = T (s k 1, d k 1 ), k = 2,..., N, gdzie S 1 jest dane.

Metoda DP ma zastosowanie do rozwiązywania tzw. problemów bez pamięci, spełniających własność Markowa, która mówi, że... prawdopodobieństwo przejścia ze stanu s do stanu s zależy tylko od stanu s, a nie od historii poprzednich stanów. Przyszłe stany procesu są warunkowo niezależne od stanów przeszłych. Zatem, wieloetapowy proces decyzyjny ma własność Markowa, jeżeli po dowolnych k decyzjach, wartość funkcji celu f zależy tylko od stanu procesu na końcu k-tego etapu i od decyzji następnych. W oparciu o własność Markowa sformułowana została tzw zasada optymalności Bellmana mówiąca, że... strategia optymalna ma tę własność, że niezależnie od wyboru stanu początkowego i decyzji początkowej, pozostałe decyzje muszą tworzyć strategię optymalną z punktu widzenia stanu wynikłego z pierwszej decyzji.

Rozważmy przykład maksymalizacji funkcji addytywnej. Zgodnie z zasadą optymalności Bellmana mamy Oznaczając otrzymamy równania Bellmana F (s 1, s 2,..., s N ; d 1, d 1,..., s N ) = N i=1 f i (s i, d i ) max (f 1 (s 1, d 1 ) +... + f N (s N, d N )) = d 1,d 2,...,d N max(f 1 (s 1, d 1 ) + max (f 2 (s 2, d 2 ) +... + f N (s N, d N ))) d 1 d k,...,d N g k (s k ) = max d k,...,d N (f k (s k, d k ) +... + f N (s N, d N )) g N (s N ) = max d N f N (s N, d N ) g k (s k ) = max d k f k (s k, d k ) + g k+1 (s k+1 )) Wynik można zapisać w postaci równania rekurencyjnego Bellmana g k (s k ) = max d k f k (s k, d k ) + g k+1 (T (s k, d k )))

Wykorzystanie równań Bellmana można przedstawić w postaci następującego algorytmu: krok 1. etap n wyznacz kroki 2...., n 1. etapy n k wyznacz g N (s N ) = max d N D N {f N (s N, d N )} krok n. etap 1 wyznacz g k (s k ) = max d k D k {f k (s k, d k ) + g k+1 (s k+1 )} g 1 (s 1 ) = max d 1 D 1 {f 1 (s 1, d 1 ) + g 2 (s 2 )}

Niemniej jednak, do wyboru decyzji optymalnej wykorzystuje się odpowiednio skonstruowaną funkcję dominacji. Wtedy dycyzja optymalna to taka, dla której wartość funkcji dominacji przyjmuje minimum bądź maksimum. Pytanie 1. Czy zatem, dla każdego problemu można skonstruować algorytm programowania dynamicznego?

Niemniej jednak, do wyboru decyzji optymalnej wykorzystuje się odpowiednio skonstruowanej funkcję dominacji. Wtedy dycyzja optymalna to taka, dla której wartość funkcji dominacji przyjmuje minimum bądź maksimum. Pytanie 1. Czy zatem, dla każdego problemu można skonstruować algorytm programowania dynamicznego? Niestety nie.

Niemniej jednak, do wyboru decyzji optymalnej wykorzystuje się odpowiednio skonstruowanej funkcję dominacji. Wtedy dycyzja optymalna to taka, dla której wartość funkcji dominacji przyjmuje minimum bądź maksimum. Pytanie 1. Czy zatem, dla każdego problemu można skonstruować algorytm programowania dynamicznego? Niestety nie. Pytanie 2. Czym powinien się charakteryzować problem, aby można było zastosować programowanie dynamiczne?

Niemniej jednak, do wyboru decyzji optymalnej wykorzystuje się odpowiednio skonstruowanej funkcję dominacji. Wtedy dycyzja optymalna to taka, dla której wartość funkcji dominacji przyjmuje minimum bądź maksimum. Pytanie 1. Czy zatem, dla każdego problemu można skonstruować algorytm programowania dynamicznego? Niestety nie. Pytanie 2. Czym powinien się charakteryzować problem, aby można było zastosować programowanie dynamiczne? Powinien posiadać tzw. optymalność podstruktury, żeby na każdym etapie procesu podejmując pewną decyzję można uzyskać kolejny podproblem. Inaczej mówiąc. Problem musi dać się zdekomponować na podproblemy tak, żeby można było zastosować do podjęcia decyzji tę samą funkcję dominacji. Pytanie 3. Kiedy warto (można) stosować metodę programowania dynamicznego?

Pytanie 3. Kiedy warto (można) stosować metodę programowania dynamicznego?

Pytanie 3. Kiedy warto (można) stosować metodę programowania dynamicznego? Jeżeli problem wykazuje optymalną podstrukturę, czyli jego optymalne rozwiązanie jest funkcją optymalnych rozwiązań podproblemów (dowód przez założenie istnienia lepszego rozwiązania podproblemu i pokazanie, że takie założenia przeczy optymalności rozwiązania całego problemu) oraz Przestrzeń istotnie różnych podproblemów jest rozsądnie mała, czyli jeśli problem ma własność wspólnych podproblemów. Oznacza to, że algorytm rekurencyjny wielokrotnie oblicza rozwiązanie tego samego podproblemu, czego nie robią algorytmy oparte na DP, które rozwiązują każdy podproblem tylko raz, zapamiętują te rozwiązania oraz wykorzystują je w do rozwiązywania innych podproblemów.

Zalety DP 1. Problemy posiadające rekurencyjną strukturę podproblemów są przetwarzane w czasie wielomianowym w związku z eliminacją rozwiązywania tych samych podproblemów wielokrotnie. 2. Rozwiązywane są wszystkie podproblemy, natomiast wyniki gromadzone są w strukturze (np. tablicy) o rozmiarze wielomianowym (np. O(n 2 )). 3. Konstruowanie optymalnego rozwiązania wykonywane jest zwykle w czasie liniowym (np. O(n)). 4. Możliwe jest wyznaczenie rozwiązania optymalnego dla problemu, który nie posiada algorytmu wielomianowego (np. problem plecakowy). Pytanie 4. Czy DP posiada jakieś wady?

Zalety i wady(?) DP 1. Problemy posiadające rekurencyjną strukturę podproblemów są przetwarzane w czasie wielomianowym w związku z eliminacją rozwiązywania tych samych podproblemów wielokrotnie. 2. Rozwiązywane są wszystkie podproblemy, natomiast wyniki gromadzone są w strukturze (np. tablicy) o rozmiarze wielomianowym (np. O(n 2 )). 3. Konstruowanie optymalnego rozwiązania wykonywane jest zwykle w czasie liniowym (np. O(n)). 4. Możliwe jest wyznaczenie rozwiązania optymalnego dla problemu, który nie posiada algorytmu wielomianowego (np. problem plecakowy). 1. Konieczność rekurencyjnego formułowania problemu. 2. Konieczność dowodzenia istnienia optymalnej podstruktury. 3. Konieczność zapewnienia pamięci o rozmiarze zależnym o instancji problemu.