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

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

Algoritmy a datové struktury 1 TIN060 Jan Hric Dynamické programování, 23.5.2016/b.

Podobné prezentace


Prezentace na téma: "Algoritmy a datové struktury 1 TIN060 Jan Hric Dynamické programování, 23.5.2016/b."— Transkript prezentace:

1 Algoritmy a datové struktury 1 TIN060 Jan Hric Dynamické programování, /b

2 2 Dynamické programování ● Metoda pro návrh algoritmů (a řešení problémů) – Obvykle pro optimalizační problémy, kde se řešení dá složit z řešení menších podproblémů ● Vlastnosti 1. Optimální podstruktura ● Optimální řešení se skládá (pouze) z optimálních podřešení 2. Překrývající se podproblémy ● Jinak „Rozděl a panuj“

3 3 Známý příklad ● Floydův-Warshallův alg: ● : min. cesta z u do v přes vnitřní v. {1..k} ● Stavový prostor ● Rekurzivní vyjádření optima ● Počítání: (závislosti tvoří (implicitní) DAG) – Shora dolů (rekurze) – Tabelace: pamatuju si mezivýsledky (a rozhodnutí) – Zdola nahoru, nerekurzivně → jednodušší program

4 4 Jiné příklady ● Fibonacciho čísla (v 1D) ● Nejlepší násobení matic ● Nejkratší triangulace n-úhelníka ● Nejdelší „kopec“: rostoucí a pak klesající (pod)posloupnost ● Nejdelší společná posloupnost – Varianty: s cenou za výměnu, za mezeru ● Optimální vyhledávací strom (pro dané frekv.)

5 5 Méně obvyklé příklady ● Existence řešení: Odvození v bezkontextových gramatikách. ● Vyhrávající strategie ve hře dvou hráčů s úplnou informaci ● (Ekonomické aplikace: opt. investice vs. Spotř.) – Vývoj nástrojů v SW díle.

6 6 Druhy úloh ● Druhy úloh: – Nalezení ceny optimálního řešení – Nalezení/rekonstrukce optimálního řešení ● Pamatujeme si optimální rozhodnutí, nebo ● Rekonstruujeme optimální rozhodnutí – Pomocí Bellmanovy rovnice – Existence řešení (existence je lepší než neexisten.) – Počet optimálních řešení ● Optimalizace paměti: Rekonstrukce (když potřebujeme) vs. zapamatování vs. pouze hodnota opt. řešení (můžeme zapomínat)

7 7 Souvislosti ● Stavový prostor a časová složitost nemusí být polynomiální – Nejdelší cesta v grafu; Problém obchodního cestujícího (TSP) ● Diskrétní vs. Spojité DP – Přistání na Měsíci, dnes i na Zemi: min. spotřebu paliva ● Deterministické vs. Pravděpodobnostní DP

8 8 Dodatky, rozšiřující část ● S hladovými algoritmy sdílí DP vlastnost optimální podstruktury ● S metodou Rozděl a panuj sdílí DP rozdělení na podproblémy a skládání výsledku ● Jednotlivé konkrétní úlohy můžou mít efektivnější algoritmus pro řešení než “generické“ procházení stavového prostoru – Př: Hledání optimálního BVStromu – Př: Nejdelší rostoucí posloupnost

9 9 Dodatky ● Víc způsobů vyjádření stavového prostoru – Př: Hledání optimálního BVStromu ● Víc způsobu procházení stavového prostoru ● Podobné úlohy mají stejný (nebo podobný) stavový prostor a liší se cenovou funkcí (a případně „cílovým stavem“) – ~ hledání opt. BVStromu – ~ hledání opt. triangulace n-úhelníka – ~ hledání opt. násobení matic

10 10 Úlohy ● Nejdelší rostoucí posloupnost (a pod.) ● Dynamic time warping (nejlepší zarovnání dvou nebo n sekvencí) ● Bitonické cesty v TSP ● Opt. zarovnání odstavce (min. suma kvadrátů odchylek) ● Optimální kódování/komprese ● Batoh, součet podmnožiny, … (nepolynomiální) – Přesné i přibližné ● Viterbi alg./decoding: nejpravděpodobnější cesta v DAG ● Opt. strategie v diskrétní optimalizaci ● Rozměnění mincí ^

11 11 Srovnání DP a hlad. alg. ● Př: Rozměnění mincí: Dány hodnoty mincí, danou sumu s chceme rozměnit na co nejméně mincí (s opakováním) – Hladová heuristika nedá obecně optimální řešení ● Vyber minci největší hodnoty, kterou lze použít – Najděte protipříklad – Řešitelné DP ● V poli velikosti s+1

12 12

13 13 Dynamic programming 1/3 ● It is a method for problem solving – Usually optimisation problems, an instance decomposition gives common subproblems ● Classical problems: – Fibonacci numbers (in 1D) – The best matrix multiplication – The longest increasing subsequence – The longest peak subseq. (increasing and decreasing) – The longest common subseq. of two seqs (in 2D) ● The best „match“ of two/n seqs (DTW: dynamic time warping) – The shortest triangulation of a polygon

14 14 Dynamic programming 2/3 ● Other problems – Floyd-Warshall alg. for all minimal paths – Fast Fourier transform – Bitonic paths in TSP – Optimal search tree – Optimal print (min. sum of squares of line errors) – Optimal coding (in QR codes) – Two-player games with perfect information – Existence of a derivation in context-free grammars – Subset sum (both existence and approx. sol; nonpolynomial) – Viterbi alg. (~ the most probable path in DAG) – Search of an optimal strategy in a discrete optimisation

15 15 Dynamic programming 3/3 ● Necessary properties, DP is usable only for some problems 1. Optimal substructure 2. Overlapping subproblems ● Bellman principle of optimality: An optimal solution consists only of optimal subsolutions. – A possibility to reconstruct a solution; to remember or to recompute an optimal solution using Bellman equation – No reconstruction, if only a value of opt. is needed (we can prune subresults) ● Tabelation vs. Bottom-up vs. Top-down computation – Tabelation (memoization) for direct use of a rec. alg. ● A bottom-up approach saves space for some problems – Incomplete tabelation ● A various space of subproblems, lazy evaluation ● Ex: A longest path in a graph (DP in nonpolynomial time)

16 16


Stáhnout ppt "Algoritmy a datové struktury 1 TIN060 Jan Hric Dynamické programování, 23.5.2016/b."

Podobné prezentace


Reklamy Google