Dynamické programování
|
|
- Emilie Bartošová
- před 5 lety
- Počet zobrazení:
Transkript
1 Dynamické programování prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA) ZS 2010/11, Přednáška 11 Evropský sociální fond. Praha & EU: Investujeme do vaší budoucnosti prof. Pavel Tvrdík (FIT ČVUT) Dynamické programování BI-EFA, 2010, Předn / 19
2 Dynamické programování vs. Rozděl-a-Panuj Dynamické programování vs. Rozděl-a-Panuj Metody Rozděl-a-Panuj je vhodné pro řešení úloh, které lze rozdělit na nezávislé podúlohy: Rozděl úlohu na nezávislé podúlohy. Rekurzivně vyřeš podúlohy. Zkombinuj řešení podúloh do celkového výsledku úlohy. Dynamické programování (DP) je vhodné pro řešení úloh, ve kterých se podúlohy překrývají, t.j., řeší se stejné podpodúlohy. Pro takové úlohy nejsou metody Rozděl-a-Panuj vhodné, protože sdílené podúlohy se opakovaně (redundantně, zbytečně) řeší znovu a znovu, což může vést na řádově vyšší výpočetní složitost. Metody DP si výsledky dříve vyřešených podúloh zapamatují a při jejich znovuobjevení je využijí. prof. Pavel Tvrdík (FIT ČVUT) Dynamické programování BI-EFA, 2010, Předn / 19
3 DP pro řešení optimalizačních úloh Dynamické programování pro řešení optimalizačních úloh Definice 1 Optimalizační úloha: Z více možných řešení hledáme řešení s optimální cenou (maximální či minimální hodnotou,... ). Vytvoření DP algoritmu pro řešení dané optimalizační úlohy se skládá ze 4 kroků: 1 Charakterizuj strukturu optimálního řešení. 2 Rekurzivně definuj cenu optimálního řešení. 3 Vypočítej efektivně cenu optimálního řešení: 1 metodou shora dolů. 2 metodou zdola nahoru. 4 (Zrekonstruuj strukturu optimálního řešení z vypočtených hodnot cen.) Poslední bod odpadá, pokud stačí pouze cena optimálního řešení. prof. Pavel Tvrdík (FIT ČVUT) Dynamické programování BI-EFA, 2010, Předn / 19
4 Řetězové násobení matic Řetězové násobení matic Definice 2 Je dána posloupnost přirozených čísel d 0, d 1, d 2,..., d n a posloupnost matic A 1, A 2,..., A n, kde matice A i má rozměry d i 1 d i. Řetězové násobení matic (ŘNM) je úkol vypočítat součin A = A 1 A 2 A n tak, aby výpočetní aritmetická složitost byla minimální. Jinými slovy, úkolem je najít takové uzávorkování pořadí násobení matic, které vede na násobení s nejmenším počtem aritmetických operací. Cena řešení = výpočetní složitost násobení matic. Budeme předpokládat klasické násobení matic řádky krát sloupce. Výpočetní složitost součinu A i A i+1 budeme aproximovat výrazem d i 1 d i d i+1 (zanedbáváme konstanty a nižší členy). prof. Pavel Tvrdík (FIT ČVUT) Dynamické programování BI-EFA, 2010, Předn / 19
5 Řetězové násobení matic Vlastnosti ŘNM Vlastnosti ŘNM Poznámky: Násobení matic je asociativní, proto jakékoli uzávorkování dá správný výsledek A. Různé pořadí násobení má dramatický vliv na výpočetní složitost výpočtu. Příklad 3 Uvažujme n = 3 a (d 0, d 1, d 2, d 3 ) = (5, 50, 10, 30). Pak uzávorkování (A 1 A 2 )A 3 má výpočetní složitost = = 4000, kdežto uzávorkování A 1 (A 2 A 3 ) má výpočetní složitost = = 22500!!! Přitom problém ŘNM má kombinatorickou složitost, přesněji exponenciální (viz další slajd), takže řešení hrubou silou, zkoušením všech možností, není myslitelné. prof. Pavel Tvrdík (FIT ČVUT) Dynamické programování BI-EFA, 2010, Předn / 19
6 Řetězové násobení matic Kombinatorická složitost problému ŘNM Počet různých uzávorkování v ŘNM Označme Z(n) počet všech různých způsobů, jak uzávorkovat součin A 1 A 2 A n. Posloupnost matic můžeme rozdělit na dvě části hranicí mezi A k a A k+1 pro libovolné k = 1, 2,..., n 1 a pak uzávorkovat rekurzívně a nezávisle na sobě obě vzniklé podposloupnosti A 1,..., A k a A k+1,..., A n. Proto platí rekurentní vztah Z(n) = { 1 if n = 1, n 1 k=1 Z(k)Z(n k) if n 2. Řešením jsou tzv. Catalanova čísla: Z(n) = C(n 1), viz o kterých se ví, že C(n) = 1 n + 1 ( ) ( ) 2n 4 n = Ω n n. n prof. Pavel Tvrdík (FIT ČVUT) Dynamické programování BI-EFA, 2010, Předn / 19
7 První krok algoritmu DP Charakterizace struktury optimálního řešení 1. krok DP pro ŘNM: Charakterizování optimálního závorkování Označme A i...j matici vzniklou vynásobením A i A i+1... A j, i j. Pro každé optimální závorkování existuje hranice k, 1 k < n, taková, že rekurzivně se zkonstruuje závorkování pro výpočet A 1...k, pak závorkování pro výpočet A k+1...n, a výslednou A = A 1...n získáme vynásobením A 1...k A k+1...n. Výpočetní složitost ŘNM je tedy složitost výpočtu A 1...k + složitost výpočtu A k+1...n + složitost násobení 2 matic A 1...k A k+1...n. Lemma 4 Nechť k je hranice optimálního závorkování (s minimální výpočetní složitostí). Pak závorkování pro výpočet A 1...k i závorkování pro výpočet A k+1...n musejí být optimální. Důkaz. Důkaz sporem. Pokud by např. první nebylo, existovalo by závorkování pro A 1...k s nižší cenou a tím by i výsledná cena byla nižší, což je spor, protože dané závorkování pro A 1...n je optimální. prof. Pavel Tvrdík (FIT ČVUT) Dynamické programování BI-EFA, 2010, Předn / 19
8 Druhý krok algoritmu DP Rekurzivní definice ceny optimálního řešení 2. krok DP pro ŘNM: Rekurzivní definice ceny optimálního závorkování Nechť m[i, j] je minimální cena závorkování (=nejmenší výpočetní složitost násobení) A i A i+1... A j, i j. Pak platí: { 0 if i = j, m[i, j] = min i k<j {m[i, k] + m[k + 1, j] + d i 1 d k d j } if i < j. (1) Označme h[i, j] právě takové k, které v (1) dává minimum, čili m[i, j] = m[i, h[i, j]] + m[h[i, j] + 1, j] + d i 1 d h[i,j] d j. Pak cena optimálního závorkování je m[1, n] = m[1, h[1, n]] + m[h[1, n] + 1, n] + d 0 d h[1,n] d n. prof. Pavel Tvrdík (FIT ČVUT) Dynamické programování BI-EFA, 2010, Předn / 19
9 Třetí krok algoritmu DP Efektivní výpočet ceny optimálního řešení 3. krok DP pro ŘNM: Standardní rekurzivní algoritmus??? Přímý rekurzivní algoritmus RecRNM(d, 1, n) realizující výpočet m[1, n] podle (1) nelze použít, protože má exponenciální složitost!!! procedure RecRNM(d, i, j) // d je posloupnost d 0,..., d n { (1) if (i = j) then return 0; (2) m[i, j] + ; (3) for (k i to j 1) (4) do {q RecRNM(d, i, k) + RecRNM(d, k + 1, j) (5) +d[i 1] d[k] d[j]; (6) if (q < m[i, j]) then { m[i, j] q; h[i, j] k}}; (7) return m[i, j]; } prof. Pavel Tvrdík (FIT ČVUT) Dynamické programování BI-EFA, 2010, Předn / 19
10 Třetí krok algoritmu DP Efektivní výpočet ceny optimálního řešení Strom rekurzivních volání (SRV) RecRNM Důvod exponenciální složitosti: Celkový počet hodnot m[, ], které je třeba vypočítat pro zjištění hodnoty m[1, n], je počet všech dvojic i, j takových, že 1 i j n, což je pouze ( ) ( n 2 + n = n+1 ). 2 = n 2 2. Dochází však masivně k opakovanému výpočtu stejných hodnot. Lemma 5 Časová složitost t(n) běhu RecRNM(d, 1, n) je Ω(2 n 1 ). prof. Pavel Tvrdík (FIT ČVUT) Dynamické programování BI-EFA, 2010, Předn / 19
11 Třetí krok algoritmu DP Nerekurzivní záplavová metoda zdola nahoru 3. krok DP pro ŘNM: Nerekurzivní záplavová metoda zdola nahoru Předpoklady: Vstupem je pole d[0,..., n] rozměrů matic. Výstupem jsou 2 pole: m[1,..., n, 1,..., n], kam se ukládají ceny opt. závorkování pro výpočet A i...j, h[1... n 1, 2... n], kam se ukládají příslušné hodnoty hranic optimálního závorkování. Definovány pouze hodnoty h[i, j] pro i < j. Princip: Systematické zaplňování tabulky zdola nahoru pro všechny dvojice i, j, kde 1 i j n (čili pro ( ) n+1 2 hodnot). prof. Pavel Tvrdík (FIT ČVUT) Dynamické programování BI-EFA, 2010, Předn / 19
12 Třetí krok algoritmu DP Nerekurzivní záplavová metoda zdola nahoru Příklad běhu BottomUpRNM(6, d, m, h) m[1..6,1..6] h[1..5,2..6] j 4 3 i j 4 3 i m[1..6,1..6] j 4 3 i h[1..5,2..6] j 4 3 i prof. Pavel Tvrdík (FIT ČVUT) Dynamické programování BI-EFA, 2010, Předn / 19
13 Třetí krok algoritmu DP Nerekurzivní záplavová metoda zdola nahoru 3. krok DP pro ŘNM: Rekurzivní algoritmus shora dolů s tabelací Princip tabelace (anglické označení je memoization): Algoritmus také vytváří tabulku s hodnotami řešení podúloh. Každá položka tabulky je inicializována speciální hodnotou Neurčeno. Řídící struktura pro zaplňování však není záplavové plnění zdola nahoru jako ve variantě 1, ale pořadí vyvolávané rekurzivním algoritmem. První rekurzivně vyvolané řešení dané podúlohy provede výpočet a výsledek uloží do příslušného místa v tabulce. Následné opakované volání řešení téže podúlohy pouze přečte tuto hodnotu z tabulky. prof. Pavel Tvrdík (FIT ČVUT) Dynamické programování BI-EFA, 2010, Předn / 19
14 Třetí krok algoritmu DP Nerekurzivní záplavová metoda zdola nahoru procedure MemRecRNM(d, n) { (1) for (i 1 to n) (2) for (j i to n) do m[i, j] Neurceno. (3) return LookUpRNM(d, 1, n)} procedure LookUpRNM(d, i, j) { (1) if (m[i, j] Neurceno) (2) then return m[i, j]; (3) if (i = j) (4) then m[i, j] 0 (5) else for (k i to j 1) (6) do {q LookUpRNM(d, i, k) (7) +LookUpRNM(d, k + 1, j) + d[i 1] d[k] d[j]; (8) if (q < m[i, j]) then {m[i, j] q; h[i, j] k}}; (9) return m[i, j]} prof. Pavel Tvrdík (FIT ČVUT) Dynamické programování BI-EFA, 2010, Předn / 19
15 Třetí krok algoritmu DP Nerekurzivní záplavová metoda zdola nahoru SRV MemRecRNM Zakroužkované uzly stromu rekurzivních volání se nepočítají, ale pouze načtou z tabulky. prof. Pavel Tvrdík (FIT ČVUT) Dynamické programování BI-EFA, 2010, Předn / 19
16 Třetí krok algoritmu DP Nerekurzivní záplavová metoda zdola nahoru Složitost a srovnání MemRecRNM a BottomUpRNM Lemma 6 Oba algoritmy mají složitost O(n 3 ). Důkaz. Triviálně ze struktury iteračních cyklů v kódu. Srovnání obou metod: Algoritmus MemRecRNM je svojí podstatou metoda shora dolů, kdežto BottomUpRNM je metoda zdola nahoru. Pokud logika výpočtu vyžaduje, aby každá podúloha byla řešena aspoň jednou, pak BottomUpRNM je rychlejší o multiplikativní konstantu. Pravidelnost přístupu do tabulky pak uspoří čas i díky menším výpadkům skrytých pamětí a efektivnějším tokům dat mezi pamětí a procesorem. Pokud rekurzivní sestup způsobí, že některé podúlohy se vůbec nevyvolají, pak MemRecRNM může být rychlejší. prof. Pavel Tvrdík (FIT ČVUT) Dynamické programování BI-EFA, 2010, Předn / 19
17 Čtvrtý krok DP algoritmu Rekonstrukce struktury optimálního řešení 4. krok DP pro ŘNM: Konstrukce optimálního závorkování Tabulka h[1... n 1, 2... n] obsahuje hodnoty hranic pro optimální závorkování při ŘNM. Díky Lemmatu na Slajdu 7 je konstrukce optimálního řešení triviální rekurzivním sestupem. Na nejvyšší úrovni to je h[1, n]: Nejprve rekurzivně optimálně vypočteme A 1 A h[1,n], pak A h[1,n]+1 A n a výsledné matice nakonec vynásobíme. prof. Pavel Tvrdík (FIT ČVUT) Dynamické programování BI-EFA, 2010, Předn / 19
18 Čtvrtý krok DP algoritmu Rekonstrukce struktury optimálního řešení 4. krok DP pro ŘNM: Konstrukce optimálního závorkování Úloha ŘNM je řešena voláním RNM(A, n, h, 1, n). Vstupní data: posloupnost matic A 1, A 2,..., A n a tabulka hranic h[1... n 1, 2... n]. procedure RNM(A, n, h, i, j) { (1) if (i < j) (2) then { X RNM(A, n, h, i, h[i, j]); (3) Y RNM(A, n, h, h[i, j] + 1, j); (4) return XY } (5) else return A i ; } prof. Pavel Tvrdík (FIT ČVUT) Dynamické programování BI-EFA, 2010, Předn / 19
19 Příklady úloh dobře řešitelných metodami DP Příklady úloh vhodných pro řešení metodou DP 1 Floydův algoritmus hledání nejkratších cest v grafech. 2 Optimální plánování výpočetních úloh, zadaných časovými intervaly, v kterých mohou běžet. 3 Výpočet Levenshteinovy vzdálenosti mezi 2 textovými řetězci. 4 Určení způsobu, jak nejlépe daný řetězec vygenerovat pomocí dané bezkontextové gramatiky. 5 Hledání nejdelšího společného podřetězce dvou řetězců. 6 Optimální triangulace konvexního mnohoúhelníku. 7 Problém obchodního cestujícího: Obecný případ v exponenciálním, ale o(n!) čase. Spec. případy v polynomiálním čase prof. Pavel Tvrdík (FIT ČVUT) Dynamické programování BI-EFA, 2010, Předn / 19
Dynamické programování
Dynamické programování Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol., 207 Datové struktury a algoritmy, B6B36DSA 05/207, Lekce 2
VíceAlgoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
Dynamické programování Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Rozděl a panuj (divide-and-conquer) Rozděl (Divide): Rozděl problém na několik podproblémů tak, aby tyto podproblémy odpovídaly původnímu
VíceZákladní datové struktury III: Stromy, haldy
Základní datové struktury III: Stromy, haldy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní
VíceDatové struktury 2: Rozptylovací tabulky
Datové struktury 2: Rozptylovací tabulky prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy
VíceNávrh Designu: Radek Mařík
1. 7. Najděte nejdelší rostoucí podposloupnost dané posloupnosti. Použijte metodu dynamického programování, napište tabulku průběžných délek částečných výsledků a tabulku předchůdců. a) 5 8 11 13 9 4 1
VíceAlgoritmy výpočetní geometrie
Algoritmy výpočetní geometrie prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA)
VíceLineární algebra : Násobení matic a inverzní matice
Lineární algebra : Násobení matic a inverzní matice (8. přednáška) František Štampach, Karel Klouda frantisek.stampach@fit.cvut.cz, karel.klouda@fit.cvut.cz Katedra aplikované matematiky Fakulta informačních
Více5. Dynamické programování
5. Dynamické programování BI-EP1 Efektivní programování 1 ZS 2011/2012 Ing. Martin Kačer, Ph.D. 2010-11 Martin Kačer Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické
VíceRekurzivní algoritmy
Rekurzivní algoritmy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA) ZS
VíceNP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze
NP-ÚPLNÉ PROBLÉMY Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2010/2011, Lekce 13 Evropský sociální fond Praha & EU: Investujeme do
VíceStromy, haldy, prioritní fronty
Stromy, haldy, prioritní fronty prof. Ing. Pavel Tvrdík CSc. Katedra počítačů FEL České vysoké učení technické DSA, ZS 2008/9, Přednáška 6 http://service.felk.cvut.cz/courses/x36dsa/ prof. Pavel Tvrdík
VíceBinární soubory (datové, typované)
Binární soubory (datové, typované) - na rozdíl od textových souborů data uložena binárně (ve vnitřním tvaru jako v proměnných programu) není čitelné pro člověka - všechny záznamy téhož typu (může být i
VíceProhledávání do šířky = algoritmus vlny
Prohledávání do šířky = algoritmus vlny - souběžně zkoušet všechny možné varianty pokračování výpočtu, dokud nenajdeme řešení úlohy průchod stromem všech možných cest výpočtu do šířky, po vrstvách (v každé
VíceDynamické programování UIN009 Efektivní algoritmy 1
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í
VíceLineární algebra : Násobení matic a inverzní matice
Lineární algebra : Násobení matic a inverzní matice (8. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 17. března 2014, 12:42 1 2 0.1 Násobení matic Definice 1. Buďte m, n, p N, A
VícePokročilé haldy. prof. Ing. Pavel Tvrdík CSc. Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010
Pokročilé haldy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (I-EFA) ZS 2010/11,
VíceDynamické programování
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
Více3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem
ČVUT FEL X36PAA - Problémy a algoritmy 3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem Jméno: Marek Handl Datum: 1. 1. 2009 Cvičení: Pondělí 9:00 Zadání Naprogramujte
VíceAplikovaná numerická matematika - ANM
Aplikovaná numerická matematika - ANM 3 Řešení soustav lineárních rovnic iterační metody doc Ing Róbert Lórencz, CSc České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových
VícePROGRAMOVACÍ JAZYKY A PŘEKLADAČE LL SYNTAKTICKÁ ANALÝZA DOKONČENÍ, IMPLEMENTACE.
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LL SYNAKICKÁ ANALÝZA DOKONČENÍ, IMPLEMENACE. VLASNOSI LL GRAMAIK A JAZYKŮ. 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Gramatika
VíceALGORITMY A DATOVÉ STRUKTURY
Název tématického celku: Cíl: ALGORITMY A DATOVÉ STRUKTURY Metodický list č. 1 Časová složitost algoritmů Základním cílem tohoto tematického celku je vysvětlení potřebných pojmů a definic nutných k popisu
VíceDynamické programování
ALG 11 Dynamické programování Úloha batohu neomezená Úloha batohu /1 Úloha batohu / Knapsack problem Máme N předmětů, každý s váhou Vi a cenou Ci (i = 1, 2,..., N) a batoh s kapacitou váhy K. Máme naložit
VíceAlgoritmus pro hledání nejkratší cesty orientovaným grafem
1.1 Úvod Algoritmus pro hledání nejkratší cesty orientovaným grafem Naprogramoval jsem v Matlabu funkci, která dokáže určit nejkratší cestu v orientovaném grafu mezi libovolnými dvěma vrcholy. Nastudoval
VíceDynamické programování
ALG 0 Dynamické programování zkratka: DP Zdroje, přehledy, ukázky viz https://cw.fel.cvut.cz/wiki/courses/a4balg/literatura_odkazy 0 Dynamické programování Charakteristika Neřeší jeden konkrétní typ úlohy,
VíceMimo samotné správnosti výsledku vypočteného zapsaným algoritmem je ještě jedno
12 Délka výpočtu algoritmu Mimo samotné správnosti výsledku vypočteného zapsaným algoritmem je ještě jedno neméně důležité hledisko k posouzení vhodnosti algoritmu k řešení zadané úlohy. Jedná se o čas,
VíceParalelní grafové algoritmy
Paralelní grafové algoritmy Značení Minimální kostra grafu Nejkratší cesta z jednoho uzlu Nejkratší cesta mezi všemi dvojicemi uzlů Použité značení Definition Bud G = (V, E) graf. Pro libovolný uzel u
VíceRekurze. Pavel Töpfer, 2017 Programování 1-8 1
Rekurze V programování ve dvou hladinách: - rekurzivní algoritmus (řešení úlohy je definováno pomocí řešení podúloh stejného charakteru) - rekurzivní volání procedury nebo funkce (volá sama sebe přímo
VíceSložitost algoritmů. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol.
Složitost algoritmů Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol., 2017 Datové struktury a algoritmy, B6B36DSA 02/2017, Lekce 3
VíceDynamické datové struktury III.
Dynamické datové struktury III. Halda. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované
Více12. Globální metody MI-PAA
Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI
VíceAlgoritmy I, složitost
A0B36PRI - PROGRAMOVÁNÍ Algoritmy I, složitost České vysoké učení technické Fakulta elektrotechnická v 1.01 Rychlost... Jeden algoritmus (program, postup, metoda ) je rychlejší než druhý. Co ta věta znamená??
Více3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA
Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI
VíceNPRG030 Programování I, 2018/19 1 / :03:07
NPRG030 Programování I, 2018/19 1 / 20 3. 12. 2018 09:03:07 Vnitřní třídění Zadání: Uspořádejte pole délky N podle hodnot prvků Měřítko efektivity: * počet porovnání * počet přesunů NPRG030 Programování
VíceNEJKRATŠÍ CESTY I. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze
NEJKRATŠÍ CESTY I Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2010/2011, Lekce 7 Evropský sociální fond Praha & EU: Investujeme do vaší
VíceDatové struktury 1: Základní datové struktury
Datové struktury 1: Základní datové struktury prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní
VíceGrafové algoritmy. Programovací techniky
Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být
VíceTOKY V SÍTÍCH II. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze
TOKY V SÍTÍCH II Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 010/011, Lekce 10 Evropský sociální fond Praha & EU: Investujeme do vaší
VíceMarkov Chain Monte Carlo. Jan Kracík.
Markov Chain Monte Carlo Jan Kracík jan.kracik@vsb.cz Princip Monte Carlo integrace Cílem je (přibližný) výpočet integrálu I(g) = E f [g(x)] = g(x)f (x)dx. (1) Umíme-li generovat nezávislé vzorky x (1),
VíceObsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest
Obsah prezentace Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest 1 Základní pojmy Vrchol grafu: {množina V} Je to styčná vazba v grafu, nazývá se též uzlem, prvkem
VíceFIT ČVUT MI-LOM Lineární optimalizace a metody. Dualita. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
FIT ČVUT MI-LOM Lineární optimalizace a metody Dualita Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Michal Černý, 2011 FIT ČVUT, MI-LOM, M. Černý, 2011: Dualita 2/5 Dualita Evropský
VíceFP - SEMINÁŘ Z NUMERICKÉ MATEMATIKY. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci
FP - SEMINÁŘ Z NUMERICKÉ MATEMATIKY Dana Černá http://www.fp.tul.cz/kmd/ Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci OBSAH A CÍLE SEMINÁŘE: Opakování a procvičení vybraných
VícePŘEDNÁŠKA 2 POSLOUPNOSTI
PŘEDNÁŠKA 2 POSLOUPNOSTI 2.1 Zobrazení 2 Definice 1. Uvažujme libovolné neprázdné množiny A, B. Zobrazení množiny A do množiny B je definováno jako množina F uspořádaných dvojic (x, y A B, kde ke každému
Více13. Lineární programování
Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI
VíceÚvod do teorie grafů
Úvod do teorie grafů Neorientovaný graf G = (V,E,I) V množina uzlů (vrcholů) - vertices E množina hran - edges I incidence incidence je zobrazení, buď: funkce: I: E V x V relace: I E V V incidence přiřadí
VíceNumerická stabilita algoritmů
Numerická stabilita algoritmů Petr Tichý 9. října 2013 1 Numerická stabilita algoritmů Pravidla v konečné aritmetice Pro počítání v konečné aritmetice počítače platí určitá pravidla, která jsou důležitá
VíceGrafové algoritmy. Programovací techniky
Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být
VíceDijkstrův algoritmus
Dijkstrův algoritmus Hledání nejkratší cesty v nezáporně hranově ohodnoceném grafu Necht je dán orientovaný graf G = (V, H) a funkce, která každé hraně h = (u, v) H přiřadí nezáporné reálné číslo označované
VíceBinární vyhledávací stromy pokročilé partie
Binární vyhledávací stromy pokročilé partie KMI/ALS lekce Jan Konečný 30.9.204 Literatura Cormen Thomas H., Introduction to Algorithms, 2nd edition MIT Press, 200. ISBN 0-262-5396-8 6, 3, A Knuth Donald
VíceFaculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
1 / 23 Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 2 / 23 biologové často potřebují najít často se opakující sekvence DNA tyto sekvence bývají relativně krátké,
VíceDoba běhu daného algoritmu/programu. 1. Který fragment programu z následujících dvou proběhne rychleji?
1 Doba běhu daného algoritmu/programu 1. Který fragment programu z následujících dvou proběhne rychleji? int n = 100; int sum = 0; for (i = 0; i < n; i++) for (j = 0; j < i; j++) sum += i+j; int n = 75;
VíceVzdálenost uzlů v neorientovaném grafu
Vzdálenosti a grafy Vzdálenost uzlů v neorientovaném grafu Je dán neorientovaný neohodnocený graf G = (V,E,I) vzdálenost uzlů u a v v neorientovaném souvislém grafu G je délka nejkratší cesty spojující
VíceAlgoritmizace. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Úvod stránky předmětu: https://cw.felk.cvut.cz/doku.php/courses/a4b33alg/start cíle předmětu Cílem je schopnost samostatné implementace různých variant základních
VíceŘešení: PŘENESVĚŽ (N, A, B, C) = přenes N disků z A na B pomocí C
Hanojské věže - 3 kolíky A, B, C - na A je N disků různé velikosti, seřazené od největšího (dole) k nejmenšímu (nahoře) - kolíky B a C jsou prázdné - úkol: přenést všechny disky z A na B, mohou se odkládat
VíceTřídy složitosti P a NP, NP-úplnost
Třídy složitosti P a NP, NP-úplnost Cíle přednášky: 1. Definovat, za jakých okolností můžeme problém považovat za efektivně algoritmicky řešitelný. 2. Charakterizovat určitou skupinu úloh, pro které není
VíceTato tematika je zpracována v Záznamy přednášek: str
Obsah 10. přednášky: Souvislosti Složitost - úvod Výpočet časové složitosti Odhad složitosti - příklady Posuzování složitosti Asymptotická složitost - odhad Přehled technik návrhů algoritmů Tato tematika
VíceKombinatorická minimalizace
Kombinatorická minimalizace Cílem je nalézt globální minimum ve velké diskrétní množině, kde může být mnoho lokálních minim. Úloha obchodního cestujícího Cílem je najít nejkratší cestu, která spojuje všechny
VíceNázev předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu:
Plán předmětu Název předmětu: Algoritmizace a programování (PAAPK) Školní rok: 2007/2008 Forma studia: Kombinovaná Studijní obory: DP, DI, PSDPI, OŽPD Ročník: I Semestr: II. (letní) Typ předmětu: povinný
VíceRůzné algoritmy mají různou složitost
/ 1 Různé algoritmy mají různou složitost 1/ 1 Rychlost... Jeden algoritmus (program, postup, metoda ) je rychlejší než druhý. Co ta věta znamená?? 2/ 1 Asymptotická složitost y y x x Každému algoritmu
VíceDobSort. Úvod do programování. DobSort Implementace 1/3. DobSort Implementace 2/3. DobSort - Příklad. DobSort Implementace 3/3
DobSort Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 V roce 1980 navrhl Dobosiewicz variantu (tzv. DobSort),
VíceAplikovaná numerická matematika
Aplikovaná numerická matematika 6. Metoda nejmenších čtverců doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Příprava studijních
VíceMetody síťové analýzy
Metody síťové analýzy Řeší problematiku složitých systémů, zejména pak vazby mezi jejich jednotlivými prvky. Vychází z teorie grafů. Základní metody síťové analýzy: CPM (Critical Path Method) deterministický
Více13. Třídící algoritmy a násobení matic
13. Třídící algoritmy a násobení matic Minulou přednášku jsme probírali QuickSort, jeden z historicky prvních třídících algoritmů, které překonaly kvadratickou složitost aspoň v průměrném případě. Proč
VíceMatematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic
Přednáška třetí (a pravděpodobně i čtvrtá) aneb Úvod do lineární algebry Matice a soustavy rovnic Lineární rovnice o 2 neznámých Lineární rovnice o 2 neznámých Lineární rovnice o dvou neznámých x, y je
VíceMatematika pro informatiky
(FIT ČVUT v Praze) Konvexní analýza 13.týden 1 / 1 Matematika pro informatiky Jaroslav Milota Fakulta informačních technologíı České vysoké učení technické v Praze Letní semestr 2010/11 Extrémy funkce
VíceAutomaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů
BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 2/29 Hodnocení předmětu BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 4/29 Automaty a gramatiky(bi-aag) 1. Základní pojmy Jan Holub Katedra teoretické
Víceprof. RNDr. Čestmír Burdík DrCs. prof. Ing. Edita Pelantová CSc. BI-ZMA ZS 2009/2010
Věty o přírustku funkce prof. RNDr. Čestmír Burdík DrCs. prof. Ing. Edita Pelantová CSc. Katedra matematiky České vysoké učení technické v Praze c Čestmír Burdík, Edita Pelantová 2009 Základy matematické
VíceČasová a prostorová složitost algoritmů
.. Časová a prostorová složitost algoritmů Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Hodnocení algoritmů Programovací techniky Časová a prostorová
VíceInterpolace Lagrangeovy polynomy. 29. října 2012
Interpolace Lagrangeovy polynomy Michal Čihák 29. října 2012 Problematika interpolace V praxi máme často k dispozici údaje z různých měření tzv. data. Data mohou mít například podobu n uspořádaných dvojic
VíceTest prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem
Test prvočíselnosti Úkol: otestovat dané číslo N, zda je prvočíslem 1. zkusit všechny dělitele od 2 do N-1 časová složitost O(N) cca N testů 2. stačí zkoušet všechny dělitele od 2 do N/2 (větší dělitel
VíceProgramování: základní konstrukce, příklady, aplikace. IB111 Programování a algoritmizace
Programování: základní konstrukce, příklady, aplikace IB111 Programování a algoritmizace 2011 Připomenutí z minule, ze cvičení proměnné, výrazy, operace řízení výpočtu: if, for, while funkce příklady:
VíceKomprese dat. Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI. přednášky
Komprese dat Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI přednášky Statistické metody Jan Outrata (Univerzita Palackého v Olomouci) Komprese dat Olomouc, únor březen 2016 1 / 23 Tunstallův
VíceZáklady algoritmizace. Pattern matching
Základy algoritmizace Pattern matching 1 Pattern matching Úloha nalézt v nějakém textu výskyty zadaných textových vzorků patří v počítačové praxi k nejfrekventovanějším. Algoritmy, které ji řeší se používají
Více63. ročník Matematické olympiády 2013/2014
63. ročník Matematické olympiády 2013/2014 Úlohy ústředního kola kategorie P 2. soutěžní den Na řešení úloh máte 4,5 hodiny čistého času. Při soutěži je zakázáno používat jakékoliv pomůcky kromě psacích
VíceLineární algebra Operace s vektory a maticemi
Lineární algebra Operace s vektory a maticemi Robert Mařík 26. září 2008 Obsah Operace s řádkovými vektory..................... 3 Operace se sloupcovými vektory................... 12 Matice..................................
Více4. NP-úplné (NPC) a NP-těžké (NPH) problémy
Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA 4. NP-úplné (NPC) a NP-těžké (NPH) problémy Karpova redukce
VíceTřída PTIME a třída NPTIME. NP-úplnost.
VAS - Přednáška 9 Úvod ke kursu. Složitost algoritmu. Model RAM. Odhady složitosti. Metoda rozděl a panuj. Greedy algoritmy. Metoda dynamického programování. Problémy, třídy složitosti problémů, horní
VíceAproximace funkcí. x je systém m 1 jednoduchých, LN a dostatečně hladkých funkcí. x c m. g 1. g m. a 1. x a 2. x 2 a k. x k b 1. x b 2.
Aproximace funkcí Aproximace je výpočet funkčních hodnot funkce z nějaké třídy funkcí, která je v určitém smyslu nejbližší funkci nebo datům, která chceme aproximovat. Třída funkcí, ze které volíme aproximace
Více1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) 759 10 b) 2578 10
Úlohy- 2.cvičení 1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) 759 10 b) 2578 10 2. Převeďte dané desetinné číslo do dvojkové soustavy (DEC -> BIN): a) 0,8125 10 b) 0,35 10
VíceNPRG030 Programování I 3/2 Z --- NPRG031 Programování II --- 2/2 Z, Zk
NPRG030 Programování I 3/2 Z --- NPRG031 Programování II --- 2/2 Z, Zk Pavel Töpfer Katedra softwaru a výuky informatiky MFF UK MFF Malostranské nám., 4. patro, pracovna 404 pavel.topfer@mff.cuni.cz http://ksvi.mff.cuni.cz/~topfer
VíceCvičení MI-PRC I. Šimeček
Cvičení MI-PRC I. Šimeček xsimecek@fit.cvut.cz Katedra počítačových systémů FIT České vysoké učení technické v Praze Ivan Šimeček, 2011 MI-PRC, LS2010/11, Cv.1-6 Příprava studijního programu Informatika
VíceMatematika B101MA1, B101MA2
Matematika B101MA1, B101MA2 Zařazení předmětu: povinný předmět 1.ročníku bc studia 2 semestry Rozsah předmětu: prezenční studium 2 + 2 kombinované studium 16 + 0 / semestr Zakončení předmětu: ZS zápočet
VícePŘÍJMENÍ a JMÉNO: Login studenta: DATUM:
PŘÍJMENÍ a JMÉNO: Login studenta: DATUM: Závěrečný test z předmětu Vyčíslitelnost a složitost Doba trvání: 90 minut Max. zisk: 100 bodů Obecné pokyny: Po obdržení testu ihned do pravého horního rohu napište
Více10. Složitost a výkon
Jiří Vokřínek, 2016 B6B36ZAL - Přednáška 10 1 Základy algoritmizace 10. Složitost a výkon doc. Ing. Jiří Vokřínek, Ph.D. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Jiří
VíceNMIN101 Programování 1 2/2 Z --- NMIN102 Programování /2 Z, Zk
NMIN101 Programování 1 2/2 Z --- NMIN102 Programování 2 --- 2/2 Z, Zk Pavel Töpfer Katedra software a výuky informatiky MFF UK MFF Malostranské nám., 4. patro, pracovna 404 pavel.topfer@mff.cuni.cz http://ksvi.mff.cuni.cz/~topfer
VíceZavedení a vlastnosti reálných čísel
Zavedení a vlastnosti reálných čísel jsou základním kamenem matematické analýzy. Konstrukce reálných čísel sice není náplní matematické analýzy, ale množina reálných čísel R je pro matematickou analýzu
VíceDynamické programování
Algoritmická matematika 3 KMI/ALM3 Mgr. Petr Osička, Ph.D ZS 2014 1 Základní princip Dynamické programování Princip dynamického programování je založen na podobné myšlence jako rozděl a panuj. Vstupní
VíceTGH12 - Problém za milion dolarů
TGH12 - Problém za milion dolarů Jan Březina Technical University of Liberec 7. května 2013 Složitost problému Co je to problém? Složitost problému Co je to problém? K daným vstupním datům (velkému binárnímu
VíceII. Úlohy na vložené cykly a podprogramy
II. Úlohy na vložené cykly a podprogramy Společné zadání pro příklady 1. - 10. začíná jednou ze dvou možností popisu vstupních dat. Je dána posloupnost (neboli řada) N reálných (resp. celočíselných) hodnot.
VíceInterpolace Uvažujme třídu funkcí jedné proměnné ψ(x; a 0,..., a n ), kde a 0,..., a n jsou parametry, které popisují jednotlivé funkce této třídy. Mějme dány body x 0, x 1,..., x n, x i x k, i, k = 0,
Více4EK311 Operační výzkum. 5. Teorie grafů
4EK311 Operační výzkum 5. Teorie grafů 5. Teorie grafů definice grafu Graf G = uspořádaná dvojice (V, E), kde V označuje množinu n uzlů u 1, u 2,, u n (u i, i = 1, 2,, n) a E označuje množinu hran h ij,
VíceB3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11
333LP - lgoritmy a programování - Zkouška z předmětu 333LP Jméno Příjmení Už. jméno Marek oháč bohacm11 Zkouškový test Otázka 1 Jaká je hodnota proměnné count po vykonání následujícího kódu: data=[4,4,5,5,6,6,6,7,7,7,7,8,8]
VíceJednoznačné a nejednoznačné gramatiky
BI-AAG (2011/2012) J. Holub: 11. Bezkontextové gramatiky p. 2/36 Jednoznačné a nejednoznačné gramatiky BI-AAG (2011/2012) J. Holub: 11. Bezkontextové gramatiky p. 4/36 Automaty a gramatiky(bi-aag) 11.
Více4. Rekurze. BI-EP1 Efektivní programování Martin Kačer
4. Rekurze BI-EP1 Efektivní programování 1 ZS 2011/2012 Ing. Martin Kačer, Ph.D. 2010-11 Martin Kačer Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze
VíceÚvod do kvantového počítání
2. přednáška Katedra počítačů, Fakulta elektrotechnická České vysoké učení technické v Praze 17. března 2005 Opakování Část I Přehled z minulé hodiny Opakování Alternativní výpočetní modely Kvantové počítače
VíceImplementace LL(1) překladů
Překladače, přednáška č. 6 Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 30. října 2007 Postup Programujeme syntaktickou analýzu: 1 Navrhneme vhodnou LL(1) gramatiku
VíceZáklady matematické analýzy
Základy matematické analýzy Spojitost funkce Ing. Tomáš Kalvoda, Ph.D. 1, Ing. Daniel Vašata 2 1 tomas.kalvoda@fit.cvut.cz 2 daniel.vasata@fit.cvut.cz Katedra aplikované matematiky Fakulta informačních
VíceOptimalizace obecný úvod. [proč optimalizovat?] Formalizace problému. [existují podobné problémy?]
Optimalizace obecný úvod 1 Optimalizace obecný úvod Motivace optimalizačních úloh [proč optimalizovat?] Formalizace problému [jak obecně popsat optimalizační úlohu?] Klasifikace optimalizačních problémů
VíceAlgoritmy a datové struktury
Algoritmy a datové struktury Slajdy pro výuku na KS Ondřej Čepek Sylabus 1. Prostředky pro popis složitosti algoritmů a operací nad datovými strukturami (asymptotická notace), příklady použití asymptotické
Více4. Trojúhelníkový rozklad p. 1/20
4. Trojúhelníkový rozklad 4. Trojúhelníkový rozklad p. 1/20 4. Trojúhelníkový rozklad p. 2/20 Trojúhelníkový rozklad 1. Permutační matice 2. Trojúhelníkové matice 3. Trojúhelníkový (LU) rozklad 4. Výpočet
Více3. Matice a determinanty
. Matice a determinanty Teorie matic a determinantů představuje úvod do lineární algebry. Nejrozsáhlejší aplikace mají matice a determinanty při řešení systémů lineárních rovnic. Pojem determinantu zavedl
Více