Dynamick programov n
Download
1 / 21

Dynamické programování - PowerPoint PPT Presentation


  • 59 Views
  • Uploaded on

Dynamické programování. RNDr. Jiří Dvořák, CSc. dvorak @fme.vutbr.cz. Dynamické programování.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Dynamické programování' - kato-rivera


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Dynamick programov n

Dynamické programování

RNDr. Jiří Dvořák, CSc.

[email protected]


Dynamick programov n1
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.


P klady aplikac dynamick ho programov n
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.


Rozhodovac proces
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.


Klasifikace r ozhodovac ch proces
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)

  • procesynestacionární.


Diskr tn rozhodovac proces
Diskrétní rozhodovací proces

Diskrétní rozhodovací proces můžeme definovat jako posloupnost vektorů {p1, q1, p2, q2, … }, kde pi je stav v i-té etapě procesu, qi je rozhodnutí v i-té etapě procesu, přičemž p1 je počáteční stav a pro ostatní stavy platí pi+1 = i (pi, qi).

Jestliže pro všechna i = 1, 2, … je pi+1 = (pi, qi), tj. transformační funkce nezávisí na etapě procesu, jedná se o proces stacionární. Předpokládáme, že rozhodnutí qi může nabývat hodnot z množiny Si (pi).

Cílem je nalezení takové rozhodovací strategie {q1, q2, … }, která optimalizuje kriteriální funkci F(p1, q1, p2, q2, … ) 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 snekonečnýmpočtemetap.


Proces s kone n m po tem etap
Proces s konečným počtem etap

Uvažujme N-etapový rozhodovací proces

{p1, q1, p2, q2, … , pN, qN},

kde pi jsou stavové proměnné, qi jsou rozhodovací proměnné, přičemž p1 je počáteční stav, pro ostatní stavy platí

pi+1=  i (pi, qi)a qiSi (pi) pro i = 1, 2, … , N.

Cílem je nalezení takové rozhodovací strategie {q1, q2, … , qN}, která maximalizuje účelovou funkci F(p1, q1, p2, q2, … , pN, qN),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.


P klad funkce sdru en s procesem
Příklad funkce sdružené s procesem

Uvažujme problém

Definujme pro i = 1, 2, … , N funkce

Výraz fN – i + 1(pi) tedy představuje maximální hodnotu účelové funkce sdružené s (N – i + 1)-etapovým procesem, který začíná ve stavu pi .


Funkcion ln rovnice
Funkcionální rovnice

Pro funkce fN – i + 1(pi) (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.


Bellman v princip optimality
Bellmanův princip optimality

Nechť je optimální strategie N-etapového procesu s počátečním stavem p1 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 pi 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.


Tabulkov metoda
Tabulková metoda

1. Postupně pro i = N, N – 1, … , 1 a pro všechny možné hodnoty stavů se počítají hodnoty fN – i + 1(pi) 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 fN – i + 1(pi) stačí pouze tabulka s hodnotami fN – i(pi+1) .

2. Určením hodnoty fN(p1) je určena optimální hodnota účelové funkceF. 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 .


Loha o batohu
Ú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 aj je hmotnost j-té věci, cj je cena j-té věci, b je limit hmotnosti, xj = 1 znamená, že j-tou věc vezmeme, a xj = 0 znamená, že j-tou věc nevezmeme.


Formulace lohy o batohu pomoc dynamick ho programov n
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 pj) a rozhodnutím v j-té etapě je určení hodnoty proměnné xj (1 znamená j-tou věc vzít a 0 znamená nevzít).

Stavy procesu:

p1= b, pj+1 = pj – ajxj

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 pj .


Syst m funkcion ln ch rovnic pro lohu o batohu
Systém funkcionálních rovnic programovánípro úlohu o batohu

Označme symbolem n – j + 1(pj)optimální hodnotu účelové funkce spojené s (n – j + 1)-etapovým procesem, začínajícím ve stavu pj . Pak platí


E en syst mu funkcion ln ch rovnic
Řešení systému funkcionálních rovnic programování

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 xjo(pj) se zaznamenávají do tabulek.

Optimální řešení x* úlohy o batohu se pak z těchto tabulek získá takto:

kde


Zobecn n loha o batohu
Zobecněná úloha o batohu programování

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 aj je hmotnost věci j-tého druhu, b je limit hmotnosti batohu, cj je cena věci j-tého druhu, dj je disponibilní počet věcí j-tého druhu, xj je počet věcí j-tého druhu vložených do batohu a Z označuje množinu celých čísel.


Formulace a e en zobecn n lohy o batohu pomoc dp
Formulace a řešení zobecněné úlohy o batohu pomocí DP programování

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čujenejvětší celé číslo menší nebo rovné hodnotě výrazu uvnitř závorek.

Systém funkcionálních rovnic se řeší pro hodnoty stavů


Proces s nekone n m po tem etap
Proces s nekonečným počtem etap programování

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í.


Aproximace v prostoru funkc
Aproximace v prostoru funkcí programování

Zvolíme počáteční aproximaci f0(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)}.


Pln n batohu jako proces s nekone n m po tem etap
Plnění batohu jako proces s nekonečným počtem etap programování

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


E en lohy o pln n batohu v nekone n m po tu etap
Ř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 di je toto optimální řešení použitelné tehdy, jestliže

pro všechna i platí, že


ad