Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

1 Dynamické programování RNDr. Jiří Dvořák, CSc.

Podobné prezentace


Prezentace na téma: "1 Dynamické programování RNDr. Jiří Dvořák, CSc."— Transkript prezentace:

1 1 Dynamické programování RNDr. Jiří Dvořák, CSc.

2 2 Dynamické programování Dynamické programování se zabývá optimalizací dynamických úloh, které je možno formulovat také jako úlohy řízení procesů probíhajících v čase. Dynamické programování je však použitelné i pro takové problémy, v nichž čas explicitně nevystupuje a může být do nich uměle zaveden. Přístupy dynamického programování využívají aparát rekurentních funkcionálních vztahů a opírají se přitom o tzv. princip optimality, jehož autorem je Richard Bellman. Aplikace těchto přístupů vyžaduje zpravidla náročnější přípravu než aplikace metod matematického programování, neboť tyto přístupy v sobě zahrnují nejen vytvoření matematického modelu, ale také konstrukci výpočetní procedury k jeho řešení. Získaný algoritmus přitom podstatně závisí na struktuře řešeného problému.

3 3 Příklady aplikací dynamického programování Plánování výroby a zásob. Je třeba pro každou etapu plánovacího období určit, jaké množství výrobku vyrobit a jaké uskladnit pro budoucí použití, aby byla splněna poptávka po výrobku a byly minimalizovány seřizovací, výrobní a skladovací náklady. Obnova zařízení. Zařízení postupně zastarává a zisk z jeho použití se postupně snižuje. Je třeba určit, kdy je nevhodnější pořídit nové zařízení. Rozdělování zdrojů. Je dáno omezené množství nějakého ekonomického zdroje a několik možných způsobů použití s různým přínosem. Je třeba dané množství rozdělit tak, aby byl maximalizován celkový přínos.

4 4 Rozhodovací proces Rozhodovací proces může definovat pomocí pětice  T, P, Q, S,  , kde jednotlivé symboly mají tento význam: T … časová množina (obecně nějaká uspořádaná množina reálných čísel, přičemž tato čísla nemusejí mít význam časových hodnot) P … množina stavů procesu Q … množina rozhodovacích funkcí (strategií) q; q: T  P S … množina rozhodnutí  … transformační funkce;  : T  T  P  Q  P; hodnotou výrazu je výsledný stav procesu v čase, do něhož se proces dostal z počátečního stavu p v čase t vlivem segmentu rozhodovací funkce q.

5 5 Klasifikace rozhodovacích procesů Podle vlastností časové množiny T  diskrétní procesy (T je nejvýše spočetná)  spojité procesy (T je interval). Podle charakteru veličin, které v procesech vystupují:  procesy deterministické,  procesy stochastické  fuzzy procesy. Dalším možným dělením procesů je dělení na  procesy stacionární (výsledek transformace nezávisí na volbě počátečního okamžiku t)  procesy nestacionární.

6 6 Diskrétní rozhodovací proces Diskrétní rozhodovací proces můžeme definovat jako posloupnost vektorů {p 1, q 1, p 2, q 2, … }, kde p i je stav v i-té etapě procesu, q i je rozhodnutí v i-té etapě procesu, přičemž p 1 je počáteční stav a pro ostatní stavy platí p i+1 =  i (p i, q i ). Jestliže pro všechna i = 1, 2, … je p i+1 =  (p i, q i ), tj. transformační funkce nezávisí na etapě procesu, jedná se o proces stacionární. Předpokládáme, že rozhodnutí q i může nabývat hodnot z množiny S i (p i ). Cílem je nalezení takové rozhodovací strategie {q 1, q 2, … }, která optimalizuje kriteriální funkci F(p 1, q 1, p 2, q 2, … ) sdruženou s daným procesem, přičemž jsou splněny dané omezující podmínky. Diskrétní rozhodovací procesy se také označují jako víceetapové rozhodovací procesy. Tyto procesy dělíme na procesy s konečným počtem etap a procesy s nekonečným počtem etap.

7 7 Proces s konečným počtem etap Uvažujme N-etapový rozhodovací proces {p 1, q 1, p 2, q 2, …, p N, q N }, kde p i jsou stavové proměnné, q i jsou rozhodovací proměnné, přičemž p 1 je počáteční stav, pro ostatní stavy platí p i+1 =  i (p i, q i ) a q i  S i (p i ) pro i = 1, 2, …, N. Cílem je nalezení takové rozhodovací strategie {q 1, q 2, …, q N }, která maximalizuje účelovou funkci F(p 1, q 1, p 2, q 2, …, p N, q N ), sdruženou s daným procesem. Tvar této funkce nemůže být libovolný. Abychom mohli uplatnit přístupy dynamického programování, musí být účelová funkce separovatelná, což znamená, že je z ní možno separovat složky odpovídající jednotlivým etapám procesu.

8 8 Příklad funkce sdružené s procesem Uvažujme problém Definujme pro i = 1, 2, …, N funkce Výraz f N – i + 1 (p i ) tedy představuje maximální hodnotu účelové funkce sdružené s (N – i + 1)-etapovým procesem, který začíná ve stavu p i.

9 9 Funkcionální rovnice Pro funkce f N – i + 1 (p i ) (i = 1, 2, …, N) platí Tímto způsobem je N-rozměrný optimalizační problém převeden na posloupnost jedno­rozměrných problémů, které se řeší postupně pro i = N, N–1, …, 1.

10 10 Bellmanův princip optimality Nechť je optimální strategie N-etapového procesu s počátečním stavem p 1 a transformační funkcí  i. Pak posloupnost (2  i  N) tvoří optimální strategii (N  i +1)-etapového procesu, jehož počáteční stav p i je dán vztahy Slovně tento princip můžeme formulovat tak, že jakákoli zbývající část optimální strategie je rovněž optimální, pokud proces začíná ve stavu, do nějž se dostane v důsledku předcházející části optimální strategie.

11 11 Tabulková metoda 1.Postupně pro i = N, N – 1, …, 1 a pro všechny možné hodnoty stavů se počítají hodnoty f N – i + 1 (p i ) a ukládají se do tabulek. Do dalších tabulek se ukládají příslušná optimální rozhodnutí. Pro druhou fázi této metody je nutno uchovat tabulky všech hodnot. Pro výpočet hodnot f N – i + 1 (p i ) stačí pouze tabulka s hodnotami f N – i (p i+1 ). 2.Určením hodnoty f N (p 1 ) je určena optimální hodnota účelové funkce F. Současně je také určeno optimální výchozí rozhodnutí. Zbývající prvky příslušné optimální strategie se pak naleznou v tabulkách hodnot na základě vztahu kde i = 2, …, N a.

12 12 Úloha o batohu Máme n věcí, jejichž celková hmotnost převyšuje limit hmotnosti obsahu batohu. Úkolem je naplnit batoh tak, aby byla maximalizována celková cena obsahu batohu. Matematický model: kde a j je hmotnost j-té věci, c j je cena j-té věci, b je limit hmotnosti, x j = 1 znamená, že j-tou věc vezmeme, a x j = 0 znamená, že j-tou věc nevezmeme.

13 13 Formulace úlohy o batohu pomocí dynamického programování Úlohu o batohu chápeme jako n-etapový rozhodovací proces, kde stavem procesu na začátku j-té etapy je zbývající kapacita batohu (označme ji p j ) a rozhodnutím v j-té etapě je určení hodnoty proměnné x j (1 znamená j-tou věc vzít a 0 znamená nevzít). Stavy procesu: p 1 = b,p j+1 = p j – a j x j Přípustná rozhodnutí: Úloha se převede na systém n funkcionálních rovnic, přičemž j-tá rovnice určuje optimální hodnotu účelové funkce spojené s (n – j + 1)-etapovým procesem, začínajícím ve stavu p j.

14 14 Systém funkcionálních rovnic pro úlohu o batohu Označme symbolem  n – j + 1 (p j ) optimální hodnotu účelové funkce spojené s (n – j + 1)-etapovým procesem, začínajícím ve stavu p j. Pak platí

15 15 Řešení systému funkcionálních rovnic Systém funkcionálních rovnic se řeší pro j = n, n – 1, …, 1 a pro hodnoty stavů kde  je zvolená hodnota (např.  = 1) a získané optimální hodnoty x j o (p j ) se zaznamenávají do tabulek. Optimální řešení x* úlohy o batohu se pak z těchto tabulek získá takto: kde

16 16 Zobecněná úloha o batohu Máme n druhů věcí a od každého druhu několik exemplářů. Celková hmotnost všech věcí převyšuje limit hmotnosti obsahu batohu (kontejneru). Úkolem je naplnit batoh tak, aby celková cena obsahu batohu byla maximální. Matematický model: kde a j je hmotnost věci j-tého druhu, b je limit hmotnosti batohu, c j je cena věci j-tého druhu, d j je disponibilní počet věcí j-tého druhu, x j je počet věcí j-tého druhu vložených do batohu a Z označuje množinu celých čísel.

17 17 Formulace a řešení zobecněné úlohy o batohu pomocí DP Můžeme použít stejné funkcionální rovnice jako pro klasickou úlohu o batohu, přičemž množiny přípustných rozhodnutí jsou dány vztahem kde [ ] označuje největší celé číslo menší nebo rovné hodnotě výrazu uvnitř závorek. Systém funkcionálních rovnic se řeší pro hodnoty stavů

18 18 Proces s nekonečným počtem etap Procesy s nekonečným počtem etap jsou jen matematickou idealizací reality. Uvažujme proces s konečným počtem etap s funkcionální rovnicí Jestliže při velké hodnotě N použijeme jako aproximaci tohoto procesu proces s nekonečným počtem etap, dostaneme rovnici kterou můžeme chápat jako limitní případ výše uvedeného vztahu pro N  . Tuto rovnici je obvykle nutno řešit metodou postupných aproximací. Je možné použít aproximace v prostoru funkcí a aproximace v prostoru strategií.

19 19 Aproximace v prostoru funkcí Zvolíme počáteční aproximaci f 0 (p) funkce f(p) a pak následně určujeme další aproximace této funkce na základě vztahů Řešením těchto rovnic získáváme funkce Chceme-li nějaký problém řešit uvedeným způsobem, musíme nejprve zkoumat otázku, za jakých podmínek posloupnosti konvergují k řešení {f(p)} a {q*(p)}.

20 20 Plnění batohu jako proces s nekonečným počtem etap Předpokládejme, že počet věcí každého druhu je stejný a je roven M, což je velké číslo. Pak můžeme tuto úlohu chápat jako M-etapový rozhodovací proces, kde stavem procesu na začátku i-té etapy je zbývající kapacita batohu a rozhodnutím v i-té etapě je určení druhu věci, jejíž jeden exemplář se vloží do batohu. Tento proces můžeme aproximovat procesem s nekonečným počtem etap, kterému odpovídá funkcionální rovnice kde  (p) označuje maximální cenu, kterou lze získat naplněním batohu o kapacitě p a

21 21 Řešení úlohy o plnění batohu v nekonečném počtu etap Princip řešení zobecněné úlohy o batohu založené na funkcionální rovnici uvedené na předchozím snímku můžeme charakterizovat takto: jestliže dokážeme optimálně naplnit menší batoh, dokážeme to i pro větší batoh. Vzhledem k charakteru úlohy nemusíme zmíněnou funkcionální rovnici řešit metodou aproximací. Tuto rovnici řešíme postupně pro hodnoty p = 0, , 2 , …, b. Tak získáme optimální rozhodovací funkci q*(p). Optimální řešení výchozí úlohy je funkcí q*(p) určeno tak, že je počet případů, kdy q*(p) = i. Pro úlohu s počty exemplářů jednotlivých věcí omezenými hodnotami d i je toto optimální řešení použitelné tehdy, jestliže pro všechna i platí, že


Stáhnout ppt "1 Dynamické programování RNDr. Jiří Dvořák, CSc."

Podobné prezentace


Reklamy Google