Dynamické programování UIN009 Efektivní algoritmy 1

Podobné dokumenty
Návrh Designu: Radek Mařík

Dynamické programování

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

Dynamic programming. Historie. Dynamické programování je obsaženo v těchto programech: Příklad: chceme optimálně přiložit dvě sekvence

Třídy složitosti P a NP, NP-úplnost

Katedra počítačů FEL

Programy na PODMÍNĚNÝ příkaz IF a CASE

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

II. Úlohy na vložené cykly a podprogramy

5. Dynamické programování

Dynamické programování

POSLOUPNOSTI. 1. Najděte prvních pět členů posloupnosti (a n ) n=1, je-li a) a n = 1 2 (1 + ( 1)n ), b) a n = n + ( 1) n, c) a n = ( 1) n cos πn2

Zadání semestrálního projektu Algoritmy II. letní semestr 2017/2018

Binární soubory (datové, typované)

Dynamické programování. Optimální binární vyhledávací strom

Složitost Filip Hlásek

12. Globální metody MI-PAA

OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA

Třída PTIME a třída NPTIME. NP-úplnost.

R zné algoritmy mají r znou složitost

Dynamické programování

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem

Dynamické programování

Vztah teorie vyčíslitelnosti a teorie složitosti. IB102 Automaty, gramatiky a složitost, /31

4. NP-úplné (NPC) a NP-těžké (NPH) problémy

Množinu všech slov nad abecedou Σ značíme Σ * Množinu všech neprázdných slov Σ + Jazyk nad abecedou Σ je libovolná množina slov nad Σ

Úvod do lineární algebry

Rekurentní rovnice, strukturální indukce

Rekurentní rovnice, strukturální indukce

6 Simplexová metoda: Principy

SOUSTAVY LINEÁRNÍCH ALGEBRAICKÝCH ROVNIC

V tomto článku popíšeme zajímavou úlohu (inspirovanou reálnou situací),

57. ročník Matematické olympiády 2007/2008

Značení 1.1 (posloupnost výsledků pokusu). Mějme posloupnost opakovaných (i závislých) pokusů,

63. ročník Matematické olympiády 2013/2014

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

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu (reg. č. CZ.1.07/2.2.00/28.

Základy umělé inteligence

NEJKRATŠÍ CESTY I. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Třída PTIME a třída NPTIME. NP-úplnost.

SPECIÁLNÍCH PRIMITIVNÍCH FUNKCÍ INTEGRACE RACIONÁLNÍCH FUNKCÍ

4. Kombinatorika a matice

Teorie rozhodování (decision theory)

LDF MENDELU. Simona Fišnarová (MENDELU) Základy lineárního programování VMAT, IMT 1 / 25

Modely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT

3. ANTAGONISTICKÉ HRY

Dynamické programování

1.3. Číselné množiny. Cíle. Průvodce studiem. Výklad

Prohledávání do šířky = algoritmus vlny

1. Posloupnosti čísel

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D.

Grafové algoritmy. Programovací techniky

Numerická stabilita algoritmů

4. Trojúhelníkový rozklad p. 1/20

Použití dalších heuristik

Vytvořující funkce. Zuzka Safernová

Sbírka příkladů. verze

TGH06 - Hledání nejkratší cesty

Problém lineární komplementarity a kvadratické programování

a) b) c) Radek Mařík

11. Číselné a mocninné řady

[1] LU rozklad A = L U

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

Dijkstrův algoritmus

ANTAGONISTICKE HRY 172

Matematika B101MA1, B101MA2

Definice 7.2. Nejmenší přirozené číslo k, pro které je graf G k-obarvitelný, se nazývá chromatické číslo (barevnost) grafu G a značí se χ(g).

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008

Základy algoritmizace. Pattern matching

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

Algoritmy komprese dat

NALG 001 Lineární algebra a geometrie 1, zimní semestr MFF UK Doba řešení: 3 hodiny

ALGORITMY A DATOVÉ STRUKTURY

Vzdálenost uzlů v neorientovaném grafu

Lineární programování

0.1 Úvod do lineární algebry

Zdroj:

1 Projekce a projektory

1 Duální simplexová metoda

Matice. a m1 a m2... a mn

Jednoduché cykly

x 2 = a 2 + tv 2 tedy (a 1, a 2 ) T + [(v 1, v 2 )] T A + V Příklad. U = R n neprázdná množina řešení soustavy Ax = b.

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

2.6. VLASTNÍ ČÍSLA A VEKTORY MATIC

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

H {{u, v} : u,v U u v }

Úlohy k přednášce NMAG 101 a 120: Lineární algebra a geometrie 1 a 2,

Transformace obrazu Josef Pelikán KSVI MFF UK Praha

Micro:bit lekce 3. - Konstrukci If Then a If Then Else najdete v kategorii Logic - Podmínky od If (např. porovnání < >= atd.) najdete taktéž v Logic

Algoritmy a struktury neuropočítačů ASN P9 SVM Support vector machines Support vector networks (Algoritmus podpůrných vektorů)

Logaritmy a věty o logaritmech

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Úvod do informatiky. Miroslav Kolařík

Funkce jedné proměnné

Přijímací zkouška - matematika

C2142 Návrh algoritmů pro přírodovědce

Jak funguje asymetrické šifrování?

Kontingenční tabulky v MS Excel 2010

Posloupnosti a jejich limity

TGH06 - Hledání nejkratší cesty

Transkript:

Dynamické programování. 10.3.2005 UIN009 Efektivní algoritmy 1

Srovnání metody rozděl a panuj a dynamického programování Rozděl a panuj: top-down Dynamické programování: bottom-up Rozděl a panuj: překrývání podproblémů Dynamické programování: opakovaným výpočtům se vyhneme udržováním tabulky již vypočtených hodnot. Protože předem nevíme, které podproblémy budeme potřebovat, vyřešíme všechny. Bellmanův princip optimality: Optimální řešení problému obsahuje optimální řešení podproblému. 10.3.2005 UIN009 Efektivní algoritmy 2

Formální popis algoritmu dynamického programování R. Bellman: Dynamic programming (1957) Řízený proces P = (P, {Q(p) p P},T), kde P je množina stavů Q(p) je množina přípustných řízení ze stavu p P T : p Q p je přechodová funkce U p P ({} ( )) P Nechť p 1 P je počáteční stav. Posloupnost (q 1 ) splňující q 1 Q(p 1 ), q 2 Q(T(p 1 )),..., q n Q(T(p n-1,q n-1 )) se nazývá strategie délky n z p 1. Posloupnost (p 1,...,p n+1 ), kde p 2 T(p 1 ),..., p n+1 T(p n,q n ), nazveme průběhem procesu při strategii (q 1 ) z počátečního stavu p 1. 10.3.2005 UIN009 Efektivní algoritmy 3

Problém Mějme účelovou funkci F(p 1,..., p n ). Problém: Nalezení optimální strategie = strategie (q 1 ) délky n ze stavu p 1, která maximalizuje (minimalizuje) F(p 1,..., p n ). Předpoklad: F(p 1,..., p n )= f 1 (p 1 )+...+f n (p n,q n ) 10.3.2005 UIN009 Efektivní algoritmy 4

Bellmanův princip optimality Nechť (q 1 ) je optimální strategie procesu P ze stavu p 1 s účelovou funkcí f 1 (p 1 )+...+f n (p n,q n ). Pak pro libovolné 1< i n je (q i,q i+1 ) optimální strategie procesu P ze stavu p i s účelovou funkcí f i (p i,q i )+...+f n (p n,q n ). optimální strategie q p 1 q 1 p 2 q i-1 q 2 p i q q... i p i+1 n i+1... p n+1 optimální strategie 10.3.2005 UIN009 Efektivní algoritmy 5

Návrh algoritmu Φ k (p) := f n-k+1 (p,q n-k+1 )+...+f n (p n,q n ), kde (q n-k+1 ) je optimální strategie délky k ze stavu p. Rekurentní vztah pro výpočet Φ : Φ 1 (p) = max {f n (p,q) q Q(p)} Φ k+1 (p) = max {f n-k (p,q) + Φ k (T(p,q)) q Q(p)} p optimální strategie délky k 10.3.2005 UIN009 Efektivní algoritmy 6

Algoritmus Postupně počítej Φ 1 (p), ϕ 1 (p), p P Φ 2 (p), ϕ 2 (p), p P... Φ n (p), ϕ n (p), p P kde ϕ i (p) je ta hodnota z Q(p), v níž příslušné maximum nastává. Optimální řízení je (ϕ n (p 1 ), ϕ n-1 (p 2 ),..., ϕ 1 (p n )), kde p 2 =T(p 1, ϕ n (p 1 )),..., p n =T(p n-1, ϕ 2 (p n-1 )). Hodnota účelové funkce při optimální strategii je Φ n (p 1 ). 10.3.2005 UIN009 Efektivní algoritmy 7

Příklady optimální uzávorkování součinu matic minimální triangulace konvexního mnohoúhelníka určení nejdelší společné podposloupnosti optimální vyhledávací stromy P.Töpfer: Algoritmy a programovací techniky. Prometheus, Praha 1995. 10.3.2005 UIN009 Efektivní algoritmy 8

Problémy Srovnejte řešení problému batohu algoritmem dynamického programování a hladovým algoritmem. Nalezne hladový algoritmus vždy optimální řešení? Co když jsou předměty dělitelné? Nechť u,v Σ*. Navrhněte algoritmus, který metodou dynamického programování zjistí minimální počet operací, pomocí nichž lze převést u na v. Povoleny jdou operace vymazání znaku vložení znaku změna znaku Analyzujte složitost vašeho algoritmu. Vstupní text, sestávající z n slov o délkách l 1,..,l n znaků je třeba vytisknout na jistý počet řádků, každý o délce M znaků. Pokud řádek obsahuje slova i až j a mezi dvěma sousedními slovy je vždy jedna mezera, pak počet mezer na j konci řádku je M j + i = l. Navrhněte algoritmus dynamického k i k programování, který vytiskne odstavec n slov tak, aby byl minimalizován součet třetích mocnin počtu nadbytečných mezer na konci všech řádků kromě posledního. 10.3.2005 UIN009 Efektivní algoritmy 9

Další problémy Vpůjčovně sportovních potřeb mají m párů lyží, i-té lyže o délce d i, které si chce vypůjčit n lyžařů, i-tý lyžař má výšku v i. Každý lyžař touží po lyžích, jejichž délka je co nejblíže jeho výšce. Navrhněte efektivní algoritmus, který přiřadí lyže lyžařům tak, aby součet absolutních hodnot rozdílů výšky každého lyžaře a délky jeho lyží byl minimalizován. Uvažte 2 varianty: n = m n m Kterou variantu je vhodné řešit algoritmem dynamického programování a kterou hladovým algoritmem? Je dáno n N, konečná abeceda Σ, pro každý znak z Σ jeho pravdě-podobnost p(z) (0,1). Navrhněte algoritmus, který navrhne rozmístění znaků na n tlačítek klávesnice mobilního telefonu tak, aby střední hodno-ta počtu stisků tlačítek při psaní textové zprávy byla minimalizována. Uvažte 2 varianty: Pořadí znaků abecedy je předem dáno Pořadí znaků abecedy lze měnit Kterou variantu je vhodné řešit algoritmem dynamického programování a kterou hladovým algoritmem? 10.3.2005 UIN009 Efektivní algoritmy 10