Algoritmizace. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Podobné dokumenty
Časová složitost / Time complexity

Digitální učební materiál

Složitost 1.1 Opera ní a pam ová složitost 1.2 Opera ní složitost v pr rném, nejhorším a nejlepším p ípad 1.3 Asymptotická složitost

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

PŘÍJMENÍ a JMÉNO: Login studenta: DATUM:

Digitální učební materiál

Složitost algoritmů. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava

Digitální učební materiál

Algoritmizace složitost rekurzivních algoritmů. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Určování složitosti algoritmů. Základy diskrétní matematiky, BI-ZDM

Základy algoritmizace, návrh algoritmu

Michal Krátký. Úvod do programování. Cíl kurzu. Podmínky získání zápočtu III/III

10. Složitost a výkon

Asymptotická složitost algoritmů

ALGORITMY A DATOVÉ STRUKTURY

Složitosti základních operací B + stromu

Obecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012

Mimo samotné správnosti výsledku vypočteného zapsaným algoritmem je ještě jedno

Složitost algoritmů. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol.

Databáze, sítě a techniky programování X33DSP

Algoritmy I, složitost

Obsah přednášky. Analýza algoritmu Algoritmická složitost Návrhy algoritmů Urychlování algoritmů 1/41

2. Složitost, grafové algoritmy (zapsal Martin Koutecký)

Časová a prostorová složitost algoritmů

COMPLEXITY

Kapitola 1: Reálné funkce 1/13

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

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

Úvod do problematiky

Úvod do informatiky. Miroslav Kolařík

ÚVODNÍ ZNALOSTI. datové struktury. správnost programů. analýza algoritmů

IB111 Úvod do programování skrze Python

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

IB015 Neimperativní programování. Časová složitost, Typové třídy, Moduly. Jiří Barnat Libor Škarvada

Rekurentní rovnice, strukturální indukce

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

Výpočetní složitost algoritmů

Kapitola 1: Reálné funkce 1/20

Základní informace o předmětu Otázka:

Složitost. Teoretická informatika Tomáš Foltýnek

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

IV. Základní pojmy matematické analýzy IV.1. Rozšíření množiny reálných čísel

NPRG030 Programování I 3/2 Z --- NPRG031 Programování II --- 2/2 Z, Zk

Datové struktury 2: Rozptylovací tabulky

Matematika I (KMI/5MAT1)

Modely Herbrandovské interpretace

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

LEKCE10-RAD Otázky

Dynamické programování

Výroková a predikátová logika - III

Zimní semestr akademického roku 2015/ ledna 2016

Limita posloupnosti, limita funkce, spojitost. May 26, 2018

Bakalářská matematika I

Kapitola 1: Reálné funkce 1/13

Číselné množiny. Přirozená čísla (N) Množina všech přirozených čísel N={1,2,3 } Celá čísla (Z) Množina všech celých čísel Z={,-3,-2,-1,0,1,2,3, }

x (D(f) D(g)) : (f + g)(x) = f(x) + g(x), (2) rozdíl funkcí f g znamená: x (D(f) D(g)) : (f g)(x) = f(x) g(x), (3) součin funkcí f.

6. F U N K C E 6.1 F U N K C E. Sbírka úloh z matematiky pro SOU a SOŠ RNDr. Milada Hudcová, Mgr. Libuše Kubičíková 181/1 190/24 25

Matematika 1 Jiˇr ı Fiˇser 19. z aˇr ı 2016 Jiˇr ı Fiˇser (KMA, PˇrF UP Olomouc) KMA MAT1 19. z aˇr ı / 19

Obecná úloha lineárního programování

Rekurentní rovnice, strukturální indukce

IB111 Úvod do programování skrze Python

Výroková a predikátová logika - III

Funkce, elementární funkce.

NP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

ϵ = b a 2 n a n = a, pak b ϵ < a n < b + ϵ (2) < ϵ, což je spor, protože jsme volili ϵ = b a

NMIN101 Programování 1 2/2 Z --- NMIN102 Programování /2 Z, Zk

Základy algoritmizace

Tato tematika je zpracována v Záznamy přednášek: str

V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2

Texty k přednáškám z MMAN3: 4. Funkce a zobrazení v euklidovských prostorech

1 Nejkratší cesta grafem

Základy matematické analýzy

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

Amortizovaná složitost. Prioritní fronty, haldy (binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost

IV120 Spojité a hybridní systémy. Jana Fabriková

Funkce. Limita a spojitost

Matematika pro informatiky

5. Dynamické programování

1 Posloupnosti a řady.

Číselné posloupnosti

NMIN101 Programování 1 2/2 Z --- NMIN102 Programování /2 Z, Zk

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Zavedení a vlastnosti reálných čísel

NP-úplnost problému SAT

Elegantní algoritmus pro konstrukci sufixových polí

Doba běhu daného algoritmu/programu. 1. Který fragment programu z následujících dvou proběhne rychleji?

Obsah. Euler-Fermatova věta. Reziduální aritmetika. 3. a 4. přednáška z kryptografie

Matematika. ochrana životního prostředí analytická chemie chemická technologie Forma vzdělávání:

11 VYPOČITATELNOST A VÝPOČTOVÁ SLOŽITOST

Přehled funkcí. Funkce na množině D R je předpis, který každému číslu z množiny D přiřazuje právě jedno reálné číslo. přehled fcí.

Matematika (KMI/PMATE)

Požadavky k opravným zkouškám z matematiky školní rok

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

Digitální učební materiál

Kybernetika a umělá inteligence, cvičení 10/11

Gymnázium Jiřího Ortena, Kutná Hora

Exponenciální funkce. a>1, pro a>0 a<1 existuje jiný graf, který bude uveden za chvíli. Z tohoto

Základy algoritmizace a programování

IB109 Návrh a implementace paralelních systémů. Analytický model paralelních programů. RNDr. Jiří Barnat, Ph.D.

Požadavky k opravným zkouškám z matematiky školní rok

Transkript:

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 úloh informatiky. Hlavní témata jsou algoritmy řazení a vyhledávání a jim odpovídající datové struktury. Důraz je kladen na algoritmický aspekt úloh a efektivitu praktického řešení. přepoklady Kurs předpokládá schopnost programování v alespoň jednom z jazyků C/C++/Java. Součástí cvičení jsou programovací úlohy na řešení problematiky ALG. Adept musí ovládat základní datové struktury jako pole, seznam, soubor a musí být schopen manipulovat s daty v těchto strukturách. 2/13

Problémy a algoritmy Výpočetní problém P Úkol zpracovat vstupní data IN na výstupní data OUT se zadanými vlastnostmi. Algoritmus A Výpočetní postup řešení problému P. Tedy přesný popis posloupnosti kroků, která vezme vstupní data IN a vyprodukuje výstupní data OUT dle zadaných vlastností problémem P. Instance problému Problém s konkrétními vstupními daty potřebnými pro jeho řešení. Korektnost algoritmu A pro problém P Algoritmus A je korektní, pokud pro každou instanci problému P vydá v konečném čase správný výstup (tedy takový, který řeší problém P). 3/13

Jak měřit algoritmy? Podle algoritmu vytvoříme program v programovacím jazyku a několik vybraných instancí problému. Algoritmy pak porovnáme podle rychlosti a paměťové náročnosti na konkrétním počítači. Ale co když bychom změnili počítač, nebo jen OS, nebo co kdybychom vybrali jiné instance problému, nebo kdybychom změnili programovací jazyk? Budou algoritmy výše popsaným způsobem stále stejně porovnatelné?. zřejmě nikoliv Budeme potřebovat nějakou nezávislou metodu (na programovacím jazyku, počítači, atd ) na porovnávání algoritmů. 4/13

Růst funkcí Čas potřebný ke zpracování dat velikosti n, jestliže počet operací při provádění algoritmu je dán funkcí T(n) a provedení jedné operace trvá jednu mikrosekundu. (Připomeňme, že počet atomu ve vesmíru se odhaduje na 10 80 a stáří na 1410 9 let) T(n)/n 20 40 60 80 100 log(n) 4.3 s 5.3 s 5.9 s 6.3 s 6.6 s n 20 s 40 s 60 s 80 s 0.1 ms n log(n) 86 s 0.2 ms 0.35 ms 0.5 ms 0.7 ms n 2 0.4 ms 1.6 ms 3.6 ms 6.4 ms 10 ms n 3 8 ms 64 ms 0.22 s 0.5 s 1 s n 4 0.16 s 2.56 s 13 s 41 s 100 s 2 n 1 s 12.7 dní 36600 let 10 11 let 10 16 let n! 77100 let 10 34 let 10 68 let 10 105 let 10 144 let 5/13

Asymptotické odhady horní asymptotický odhad (velké omikron odhad): význam: f je shora asymptoticky ohraničená funkcí g (až na konstantu) definice: 0 0 kde 0 0 0 6/13

Asymptotické odhady horní asymptotický odhad pro více proměnných: 1 1 definice: 0 1 0 0 1 1 kde 0 0 1 0 7/13

Asymptotické odhady dolní asymptotický odhad (velké omega odhad): význam: f je zdola asymptoticky ohraničená funkcí g (až na konstantu) definice: 0 0 kde 0 0 0 8/13

Asymptotické odhady optimální asymptotický odhad (velké théta odhad): význam: f je asymptoticky ohraničená funkcí g z obou stran (až na konstantu) definice: nebo alternativně: kde Θ Ο Ω 1, 2 0 0 0 : 1 2 1, 2 0 0,, 0 9/13

Asymptotické odhady příklad: Mějme dvojrozměrné pole MxN celých čísel. Jaká je asymptotická složitost problému nalezení největšího čísla v tomto poli? horní: O((M+N) 2 ) O(max(M,N) 2 ) O(N 2 ) O(M N) dolní: (1) (M) (M N) optimální: (M N) 10 / 13

Asymptotické odhady O algoritmu se složitostí f (n) říkáme, že je logaritmický, pokud lineární, pokud kvadratický, pokud kubický, pokud polynomiální, pokud pro exponenciální, pokud pro Poznámka: U asymptotických odhadů nemá smysl u logaritmických složitostí uvádět základ logaritmu, protože platí pro libovolná nenulová kladná a,b. 3 2 11 / 13

Vlastnosti asymptotických odhadů Třídu složitosti polynomu určuje člen s nejvyšší mocninou: 0 0 12 / 13

Vlastnosti asymptotických odhadů Věta: Jsou-li funkce f(n), g(n) vždy kladné, pak pro limitu v platí lim lim lim, pak, ale neplatí 0 Ο Θ, kde 0, pak Θ, pak, ale neplatí Ο Θ Důsledek: Mějme pevně zvolené číslo, pak platí Důkaz lze provést pomocí L Hopitalova pravidla. 13 / 13