Dynamické programování



Podobné dokumenty
Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2013/2014 Radim Farana. Obsah. Strom

Dynamické programování

Analytická metoda aneb Využití vektorů v geometrii

Úvěr a úvěrové výpočty 1

PARALELNÍ PROCESY A PROGRAMOVÁNÍ

3.2 Metody s latentními proměnnými a klasifikační metody

Laplaceova transformace.

1. série. Různá čísla < 1 44.

Návrh Designu: Radek Mařík

Způsobilost. Data a parametry. Menu: QCExpert Způsobilost

7. VÝROBNÍ ČINNOST PODNIKU

NÁVRH A OVĚŘENÍ BETONOVÉ OPŘENÉ PILOTY ZATÍŽENÉ V HLAVĚ KOMBINACÍ SIL

Univerzita Pardubice FAKULTA CHEMICKO TECHNOLOGICKÁ

Cyklické kódy. Alena Gollová, TIK Cyklické kódy 1/23

Téma 7: Přímý Optimalizovaný Pravděpodobnostní Výpočet POPV

Pokud světlo prochází prostředím, pak v důsledku elektromagnetické interakce s částicemi obsaženými

14. Soustava lineárních rovnic s parametrem

SHANNONOVY VĚTY A JEJICH DŮKAZ

Slezská univerzita v Opavě Obchodně podnikatelská fakulta v Karviné

0.1 Úvod do lineární algebry

Dynamické programování

Obr. V1.1: Schéma přenosu výkonu hnacího vozidla.

Dynamické programování

1.3.3 Přímky a polopřímky

7. Funkce jedné reálné proměnné, základní pojmy

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Metody s latentními proměnnými a klasifikační metody

Přednáška č. 11 Analýza rozptylu při dvojném třídění

Lineární algebra : Násobení matic a inverzní matice

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Učební texty k státní bakalářské zkoušce Matematika Posloupnosti a řady funkcí. študenti MFF 15. augusta 2008

EKONOMETRIE 4. přednáška Modely chování spotřebitele

Výpočet svislé únosnosti osamělé piloty

Markovovy řetězce se spojitým časem CTMC (Continuous time Markov Chain)

6. Zobrazení δ: (a) δ(q 0, x) obsahuje x i, x i Z. (b) δ(x i, y) obsahuje y j, x i y j P 7. Množina F je množinou koncových stavů.

Zdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2.

Předpjatý beton Přednáška 6

1. Matice a maticové operace. 1. Matice a maticové operace p. 1/35

Lineární algebra : Násobení matic a inverzní matice

Matematika B101MA1, B101MA2

Dynamické programování

DMA Přednáška Rekurentní rovnice. takovou, že po dosazení odpovídajících členů do dané rovnice dostáváme pro všechna n n 0 + m pravdivý výrok.

Úlohy domácí části I. kola kategorie C

Příklady z přednášek Statistické srovnávání

CVIČENÍ Z ELEKTRONIKY

Lineární algebra Operace s vektory a maticemi

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

Výpočet svislé únosnosti osamělé piloty

Algebraický úvod. Kapitola Pologrupa, monoid, neutrální prvek. 1.2 Grupa, inverzní prvek, krácení

PŘEDNÁŠKA 2 POSLOUPNOSTI

Cvičení z termomechaniky Cvičení 5.

Extrémy funkce dvou proměnných

, : (vzor prvku b) q ).

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

a počtem sloupců druhé matice. Spočítejme součin A.B. Označme matici A.B = M, pro její prvky platí:

0.1 Úvod do lineární algebry

Úloha č.1: Stanovení Jouleova-Thomsonova koeficientu reálného plynu - statistické zpracování dat

Systémové struktury - základní formy spojování systémů

1.5.5 Potenciální energie

Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce)

Národní informační středisko pro podporu jakosti

ALGEBRA. Téma 5: Vektorové prostory

METODICKÉ POZNÁMKY VÝPOČET BAZICKÉHO CENOVÉHO INDEXU *100

Model tenisového utkání

Jednoduché cykly

Větrání hromadných garáží

Skalární součin je nástroj, jak měřit velikost vektorů a úhly mezi vektory v reálných a komplexních vektorových prostorech.

1.5.2 Mechanická práce II

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Kapitola 1: Reálné funkce 1/13

3. ANTAGONISTICKÉ HRY

Různé algoritmy mají různou složitost

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Náhodným (stochastickým) procesem nazveme zobrazení, které každé hodnotě náhodnou veličinu X ( t)

ALGEBRA. Téma 4: Grupy, okruhy a pole

Protokol o provedeném měření

2. Najděte funkce, které vedou s těmto soustavám normálních rovnic

Slovní úlohy 1. 2,42cm; 7cm; 11,58cm; 2. původní cena; dní; 4. 2,3*10 15 kg; 5. 2,8*10 14 ; ; 27325; 7. 3, 9, 27; -3, 9, -27;

V p-v diagramu je tento proces znázorněn hyperbolou spojující body obou stavů plynu, je to tzv. izoterma :

Časová a prostorová složitost algoritmů

Binární vyhledávací stromy pokročilé partie

Matice. Předpokládejme, že A = (a ij ) je matice typu m n: diagonálou jsou rovny nule.

Kontakt. Naučit se navrhovat a analyzovat netriviální datové struktury. registrováni na SISu

Spojitost a limita funkce

Vzdálenost uzlů v neorientovaném grafu

Souřadnicové prostory

2.6. VLASTNÍ ČÍSLA A VEKTORY MATIC

COMPLEXITY

F4 SÍLA, PRÁCE, ENERGIE A HYBNOST

Algoritmy I, složitost

Matematika (KMI/PMATE)

4. Kombinatorika a matice

Úlohy klauzurní části školního kola kategorie A

NPRG030 Programování I, 2018/19 1 / :03:07

1. Ukazatele primární: - jsou přímo zjišťované, neodvozené - např. stav zásob, počet pracovníků k , atd.

Způsob určení množství elektřiny z kombinované výroby vázané na výrobu tepelné energie

GONIOMETRICKÉ ROVNICE -

POSLOUPNOSTI A ŘADY INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky

1 Posloupnosti a řady.

Funkce a lineární funkce pro studijní obory

Transkript:

ALG Dynamické rogramování Nejdelší rostoucí odoslounost Otimální ořadí násobení matic

Nejdelší rostoucí odoslounost Z dané oslounosti vyberte co nejdelší rostoucí odoslounost. 5 4 9 5 8 6 7 Řešení: 4 5 6 7 Jiné možné varianty Vlastnosti hledané odoslounosti: Klesající, nerostoucí, neklesající, aritmetická, s omezenou rychlostí růstu, s váhami rvků, atd., Konceční řístu I zde nerobírané Převeď na známou úlohu, definuj vhodný DAG odle daných vlastností odoslounosti, v DAG hledej nejdelší cestu.

Nejdelší rostoucí odoslounost Konceční řístu I Transformace na známou úlohu Prvky oslounosti budou uzly DAG, který je již toologicky usořádán, ořadí v oslounosti = ořadí v to. usořádání. Hrana x > y existuje rávě tehdy, když x je v oslounosti dříve než y a navíc x<y. V tomto DAG hledáme nejdelší cestu. 5 4 9 5 8 6 7 Algoritmus je znám, má složitost (N+M), tedy O(N ). Nař. ro rostoucí oslounost má složitost až (N ).

Nejdelší rostoucí odoslounost Konceční řístu II Sestav samostatný a otenciálně rychlejší algoritmus řešení: Registrujme otimální odoslounosti všech možných délek. Postuně metodou DP aktualizujme tyto otimální odoslounosti. k V 5 4 9 4 5 5 6 7 8 9 8 6 7 k.. index rvku V.. hodnota rvku.. index ředchůdce.. index osledního rvku v rostoucí odoslounosti délky d =,,, N. Pro každý index k: Nechť d je index největšího rvku, ro který latí V[[d]] < V[k]. Potom [d+] := k, [k] = [d], okud d existuje. Jinak [] := k, [k] = null. V[[d]], d =..N je neklesající, lze v ní hledat v čase O(log N).

k V Nejdelší rostoucí odoslounost 4 8 4 5 4 6 7 9 8 9 7 5 6 k.. index rvku V.. hodnota rvku.. index ředchůdce.. index osledního rvku v rostoucí odoslounosti délky d =,,, N. 8 8 5 5 6 5 5 k= 5 5 8 k= 5 5 8 Pro každý index k: Nechť d je index max. rvku, ro který latí V[[d]] < V[k]. Potom [d+] := k, [k] = [d], okud d existuje. Jinak [] := k, [k] = null. Pro každé k je nalezneme d v čase O(log N) ůlením intervalu. Aktualizace a roběhne v konstantním čase. Celkem je složitost O(N log (N)). 4

Nejdelší rostoucí odoslounost k 4 5 6 7 8 9 k 4 5 6 7 8 9 V 4 8 4 9 7 5 6 V 4 8 4 9 7 5 6 4 5 4 4 6 5 4 4 8 6 5 7 4 9 5 4 8 8 5 7 4 9 5 5

Nejdelší rostoucí odoslounost k 4 5 6 7 8 9 k 4 5 6 7 8 9 V 4 8 4 9 7 5 6 V 4 8 4 9 7 5 6 8 5 7 4 9 5 8 5 4 5 5 5 5 VL 8 5 9 4 7 5 5 8 5 5 5 5 8 Rekonstrukce otimální cesty 8 5 6 5 5 5 8 Poslední definovaný rvek v je indexem osledního rvku jedné z otimálních odoslouností celé oslounosti. Pole určuje omocí ředchůdců tuto odoslounost. 6

Otimální ořadí násobení matic Instance úlohy Máme sočítat co nejefektivněji součin reálných matic A A A A 4 A 5 A 6, kde rozměry jednotlivých matic jsou o řadě 5, 5 5, 5 5, 5,, 5. (Výsledná matice D má rozměr ). Grafická odoba (dimenze matic ve srávném oměru) A A A A 4 A 5 A 6 D = Instance řevzata z [CLRS], ka. 5. 7

Otimální ořadí násobení matic Počet oerací v násobení dvou matic a b b = c a c b = b b oerací násobení ro výočet jednoho rvku výsledné matice a * c rvků ve výsledné matici Vynásobení dvou matic o rozměrech a b a b c vyžaduje celkem a * b * c oerací násobení dvou rvků (čísel). Sčítání zde neuvažujeme, lze ro něj vyvinout analogický ostu. 8

Otimální ořadí násobení matic A A A A 4 A 5 A 6 D = Sledujeme jen očet oerací součinu dvou reálných čísel. Uvažujeme různé možnosti uzávorkování a tím i ořadí výočtu. metoda Výraz Počet oerací zleva dorava zrava doleva ((((A A ) A ) A 4 ) A 5 ) A 6 4 5 A (A (A (A 4 (A 5 A 6 )))) 47 5 nejhorší A ((A ((A A 4 ) A 5 )) A 6 ) 58 nejleší (A (A A )) ((A 4 A 5 ) A 6 ) 5 5 9

Otimální ořadí násobení matic Příklad násobení více matic + 4 = 54 o. 4 * * 4 = 4 o. 4 + 6 = o. 4 5 * * 4 = 6 o. 4 5 5 4 5 * * = o. o. o. * 5 * 4 = 4 o. 5 5 4 5 5 4

Otimální ořadí násobení matic A = A = A = 5 5 Součin (A A ) A vyžaduje 54 oerace násobení. Součin A (A A ) vyžaduje oerací násobení. Evidentně, na zůsobu uzávorkování záleží. Catalanova čísla C N Součin A A A A N lze uzávorkovat 4 C N = Comb(N, N) / (N+) zůsoby. C, C,, C 7 =,,, 5, 4, 4,. C N >N ro N > 7. V obecném říadě by mělo vyzkoušení všech uzávorkování exonenciální složitost.

Ilustrace Otimální ořadí násobení matic 4 různých zůsobů uzávorkování součinu 5 činitelů A (A (A (A 4 A 5 ))) A (A ((A A 4 ) A 5 )) A ((A A ) (A 4 A 5 )) A ((A (A A 4 )) A 5 ) A (((A A ) A 4 ) A 5 ) (A A ) (A (A 4 A 5 )) (A A ) ((A A 4 ) A 5 ) (A (A A )) (A 4 A 5 ) ((A A ) A ) (A 4 A 5 ) (A (A (A A 4 ))) A 5 (A ((A A ) A 4 )) A 5 ((A A ) (A A 4 )) A 5 ((A (A A )) A 4 ) A 5 (((A A ) A ) A 4 ) A 5

Otimální ořadí násobení matic A (A A A 4 A N- A N ) (A A ) (A A 4 A N- A N ) (A A A ) (A 4 A N- A N ) (A A A A 4 ) ( A N- A N )... (A A A A 4 ) (A N- A N ) (A A A A 4 A N- ) A N N možných míst, v nichž výraz rozdělíme a rovedeme oslední násobení Předokládejme, že máme ředočítáno otimální uzávorkování ro každý modrý úsek celkového výrazu.

Otimální ořadí násobení matic A (A A A 4 A N- A N ) (A A ) (A A 4 A N- A N ) (A A A ) (A 4 A N- A N ) (A A A A 4 ) ( A N- A N )... (A A A A 4 ) (A N- A N ) (A A A A 4 A N- ) A N = B[,] B[,N] = B[,] B[,N] = B[,] B[4,N] = B[,4] B[5,N]... = B[,N-] B[N-,N] = B[,N-] B[N,N] Matice B[i, j] ředstavuje výsledek vynásobení odovídajícího úseku. Nechť r(x) res. s(x) ředstavují očet řádků res slouců matice X. Podle ravidel násobení matic latí r(b[i, j]) = r(a i ), s(b[i, j]) = s(a j ), ro i j N. 4

Otimální ořadí násobení matic Nechť MO[i, j] ředstavuje minimální očet oerací otřebných k výočtu matice B[i, j], tj. minimální očet oerací otřebných k výočtu matice A i A i+ A j- A j. A4BALG 5/ B[,] B[,] B[,]... B[,N-] B[,N-] B[,N] B[,N] B[4,N] B[N-,N] B[N,N] MO[,] + r(a )*s(a )*s(a N ) + MO[, N] MO[,] + r(a )*s(a )*s(a N ) + MO[, N] MO[,] + r(a )*s(a )*s(a N ) + MO[4, N] MO[,N-] + r(a )*s(a N- )*s(a N ) + MO[N-, N] MO[,N-] + r(a )*s(a N- )*s(a N ) + MO[N, N] oerací v levém úseku oerací ři násobení B[,.] B[.,N] oerací v ravém úseku Celkem dostáváme MO[,N]: MO[,N] = min {MO[,k] + r(a )*s(a k )*s(a N ) + MO[k+, N] k =..N-} 5

Otimální ořadí násobení matic MO[,N] = min {MO[,k] + r(a )*s(a k )*s(a N ) + MO[k+, N] k =..N-} Za ředokladu znalosti MO[i, j] ro úseky kratší než [, N], lze řešení celé úlohy, tj. hodnotu MO[, N], sočíst v čase (N). (*) Rekurentní využití řešení menších odúloh Identické úvahy, jaké jsme rovedli ro celý výraz A A A A N, rovedeme rovněž ro každý jeho souvislý úsek A L A L+ A R- A R, L R N. Počet těchto souvislých úseků je stejný jako očet dvojic indexů (L, R), kde L R N. Ten je roven Comb(N, ) (N ). Podúlohu na úseku (L, R) lze sočíst odle (*) v čase O(N), celou úlohu tak lze vyřešit v čase O(N ). 6

Otimální ořadí násobení matic * MO[L,R] = min {MO[L,k] + r(a L )*s(a k )*s(a R ) + MO[k+,R] k = L..R-} Hodnoty MO[L,R] ukládáme do D ole na ozici s indexy [L][R]. * A4BALG 5/ Při výočtu MO[L,R] odle oužíváme vesměs hodnoty MO[x,y], kde rozdíl y - x (odovídající délce odvýrazu) je menší než rozdíl R - L. Tabulku DP roto vylňujeme v ořadí rostoucích rozdílů R - L.. Vylníme rvky s indexy[l][r], kde R-L =, to je hlavní diagonála.. Vylníme rvky s indexy[l][r], kde R-L =, to je diagonála těsně nad hlavní diagonálou.. Vylníme rvky s indexy[l][r], kde R-L =, to je diagonála těsně nad ředchozí diagonálou. N-. Vylníme rvek s indexem [L][R], kde R-L = N-, to je ravý horní roh tabulky. 7

Otimální ořadí násobení matic Schéma ostuu výočtu R - L = R - L = R - L = R - L = R - L = N- R - L = N- Sto 8

Otimální ořadí násobení matic MO[L,R] = min {MO[L,k] + r(a L )*s(a k )*s(a R ) + MO[k+,R] k = L..R-} Ukázka ostuu výočtu MO a b c d 8 w x y z MO[,8] = min { MO[,] + r(a )*s(a )*s(a 8 ) + MO[4,8], MO[,4] + r(a )*s(a 4 )*s(a 8 ) + MO[5,8], MO[,5] + r(a )*s(a 5 )*s(a 8 ) + MO[6,8], MO[,6] + r(a )*s(a 6 )*s(a 8 ) + MO[7,8], MO[,7] + r(a )*s(a 7 )*s(a 8 ) + MO[8,8]} Označme P[L, R] := r(a L )*s(a R ). Potom MO[,8] = min { + s(a )*P[,8] + w, a + s(a 4 )*P[,8] + x, b + s(a 5 )*P[,8] + y, c + s(a 6 )*P[,8] + z, d + s(a 7 )*P[,8] + }. 9

Otimální ořadí násobení matic Instance úlohy A A A A 4 A 5 A 6 D = 5 5 5 5 5 5 5 5 MO 4 5 6 575 7875 975 875 55 65 475 75 5 75 5 575 4 5 5 5 6 otimum

Otimální ořadí násobení matic Rekonstrukce uzávorkování * MO[L,R] = min {MO[L,k] + r(a L )*s(a k )*s(a R ) + MO[k+,R] k = L..R-} Při určení MO[L,R] do rekonstrukční tabulky RT stejné velikosti jako MO zaneseme na ozici [L][R] hodnotu k, v níž minimum * nastalo. Hodnota k určuje otimální rozdělení výrazu (A L A L+ A R ) na dva menší otimálně uzávorkované výrazy (A L A L+ A k ) (A k+ A k+ A R ) Hodnota RT[, N] určuje otimální rozdělení celého výrazu A A A N na rvní dva menší otimálně uzávorkované výrazy (A A A k ) (A k+ A k+ A N ). Dále rekonstrukce otimálního uzávorkování okračuje rekurzivně analogicky ro výraz (A A A k ) a ro výraz (A k+ A k+ A N ) a dále ro jejich odvýrazy atd.

Otimální ořadí násobení matic RT 4 5 6 4 4 5 5 5 6 A A A A4 A5A 6 A A 6 A A A A 4 A 6 A A A A A 4 A 5 A 6 A 6 (A (A A )) ((A 4 A 5 ) A 6 ) D =

Otimální ořadí násobení matic Odvození asymtotické složitosti index řádku Řádkové součty Počet buněk, z nichž je očítán obsah dané buňky v DP tabulce, je úměrný složitosti výočtu obsahu této buňky. k = N k = N k = N / * (N ) * N / * (N ) * (N ) / * (N ) * (N ) N N N N 4 N N N 5 N 4 N k = k / * k * (k+) N k N k N k k = k = k = / * * 4 / * * / * * Celkový součet N- N- / * k * (k+) = / * k N- + / * k k= k= k= = / * (N ) * N * (N )/6 + / * (N ) * N/ (N )