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

Podobné dokumenty
Úvod do problematiky

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

Digitální učební materiál

Časová složitost / Time complexity

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

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

Řešení rekurentních rovnic 2. Základy diskrétní matematiky, BI-ZDM ZS 2011/12, Lekce 11

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

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

Algoritmy I, složitost

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

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

Dynamické programování

Datové struktury 2: Rozptylovací tabulky

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

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

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

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

Ekvivalence. Základy diskrétní matematiky, BI-ZDM ZS 2011/12, Lekce 5

Matematická indukce a správnost programů. Základy diskrétní matematiky, BI-ZDM ZS 2011/12, Lekce 13

MIDTERM D. Příjmení a jméno:

Časová složitost algoritmů

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

Řešení rekurentních rovnic 3. Základy diskrétní matematiky, BI-ZDM ZS 2011/12, Lekce 12

Zimní semestr akademického roku 2014/ prosince 2014

Úvod do informatiky. Miroslav Kolařík

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

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

Digitální učební materiál

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

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

Aplikovaná numerická matematika - ANM

10. Složitost a výkon

Vyvažování a rotace v BVS, všude se předpokládá AVL strom

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

Digitální učební materiál

2.6. VLASTNÍ ČÍSLA A VEKTORY MATIC

Asymptotická složitost algoritmů

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr

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

Matematika B101MA1, B101MA2

ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ

Složitost problémů. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna / 23

Základy algoritmizace, návrh algoritmu

Matematická analýza pro informatiky I. Limita posloupnosti (I)

Vzdálenost uzlů v neorientovaném grafu

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.

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

Rekurzivní algoritmy

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

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

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

4. Rekurze. BI-EP1 Efektivní programování Martin Kačer

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

Cvičení 5. Přednášející: Mgr. Rudolf B. Blažek, Ph.D. prof. RNDr. Roman Kotecký, DrSc.

Stochastické modely Informace k závěrečné zkoušce

IB111 Úvod do programování skrze Python

Rekurentní rovnice, strukturální indukce

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

FP - SEMINÁŘ Z NUMERICKÉ MATEMATIKY. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

ALGORITMY A DATOVÉ STRUKTURY

Základní datové struktury III: Stromy, haldy

COMPLEXITY

Matematická analýza pro informatiky I. Limita funkce

5. Dynamické programování

Diskrétní matematika. DiM /01, zimní semestr 2017/2018

Zpracoval: 7. Matematická indukce a rekurse. Řešení rekurentních (diferenčních) rovnic s konstantními koeficienty.

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

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

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

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

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

Matematika III přednáška Aplikace vytvořujících funkcí - další úlohy

Rekurentní rovnice, strukturální indukce

prof. RNDr. Čestmír Burdík DrCs. prof. Ing. Edita Pelantová CSc. BI-ZMA ZS 2009/2010

Časová složitost algoritmů, řazení a vyhledávání

Rekurence, rekurze a sumy. Základy diskrétní matematiky, BI-ZDM

SOUSTAVY LINEÁRNÍCH ALGEBRAICKÝCH ROVNIC

stránkách přednášejícího.

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Projekt IMPLEMENTACE ŠVP. pořadí početních operací, dělitelnost, společný dělitel a násobek, základní početní operace

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

1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) b)

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

Matematika IV 9. týden Vytvořující funkce

Principy indukce a rekursivní algoritmy

3 Množiny, Relace a Funkce

0.1 Úvod do matematické analýzy

Architektura počítačů Logické obvody

PROHLEDÁVÁNÍ GRAFŮ. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Algoritmus pro hledání nejkratší cesty orientovaným grafem

Pravděpodobnostní algoritmy

Vzpěr jednoduchého rámu, diferenciální operátory. Lenka Dohnalová

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

Martin Hejtmánek hejtmmar

Lineární algebra : Skalární součin a ortogonalita

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

Základy matematické analýzy

Elegantní algoritmus pro konstrukci sufixových polí

Lingebraické kapitolky - Počítání s maticemi

Transkript:

Určování složitosti algoritmů doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky FIT České vysoké učení technické v Praze c Josef Kolar, 2011 Základy diskrétní matematiky, BI-ZDM ZS 2011/12, Lekce 1 Evropský sociální fond. Praha& EU: Investujeme do vaší budoucnosti doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 1/ 15

Organizace předmětu Organizace předmětu ZDM Předmět teoretického informatického základu. Cílem je seznámit se svlastnostmidiskrétníchstrukturajejichvyužitímvinformatice shlavnímidruhybinárníchrelacíajejichvlastnostmi stechnikouaširokýmvyužitímmatematickéindukcevinformatice sezákladnímikombinatorickýmipostupy Cvičení: seminární, u tabule aktivníúčast12b 4průběžnétestypo4b=16b 6domácíchúlohpo3b(počítajísemax.4=12b). Nazápočetjetřebaminimálně24bze40b. Zkouška: M-midtermv9.týdnu24b,minimálně15b R-roztřel16b,M+Rminimálně24b V-velkápísemka(20-5)b U-ústní(10-5)b doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 2/ 15

Organizace předmětu Reference Při přípravě předmětu jsem využíval mnoha zdrojů, především pak: Habala, P.: Diskrétní matematika(viz URL http://math.feld.cvut.cz/habala/teaching/dma.htm) s laskavým svolením autora je text k dispozici i studentům BI-ZDM. Kolář,J.-Štěpánková,O.-Chytil,M.:Logika,algebryagrafy. SNTL,Praha1989(pokudjiněkdosežene...). Johnsonbaugh, R.: Discrete Mathematics. Prentice Hall, New Jersey 1997. Graham, R.L.- Knuth, D.E.- Patashnik, O.: Concrete Mathematics. Addison-Wesley, Boston 1994. Použitelné jsou ovšem i libovolné další zdroje, které se věnují tématice zahrnuté do obsahu předmětu BI-ZDM. doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 3/ 15

Problém vs. algoritmus vs. program Problémy a algoritmy Výpočetní problém V: úkol zpracovat/transformovat vstupní data In na výstupní data Out s požadovanými vlastnostmi. Algoritmus A: výpočetní postup řešení problému V, čili posloupnost výpočetních kroků, která vezme vstupní data a vyprodukuje výstupní data, požadovaných vlastností podle zadání problému. Instance problému: problém s konkrétními daty potřebnými pro jeho řešení. Příklad 1 Problém řazení čísel(sorting Problem). Vstup:Posloupnostčísel In=(a 1,a 2,...,a n ). Výstup:Permutace Out=(a 1,a 2,...,a n)posloupnosti Intaková, že a 1 a 2... a n. Instance problému řazení: Seřaďtevzestupněposloupnost In=(75,11,34,176,59,6,54). doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 4/ 15

Problém vs. algoritmus vs. program Korektnost algoritmu Korektníalgoritmus Aproproblém V: prokaždouinstanciproblému V, algoritmus A skončí v konečném čase se správným výstupem.pakříkáme,žealgoritmus Ařešíproblém V. Čili: A není korektní algoritmus, pokud: pro některou instanci problému neskončí(např. se zacyklí ) nebo pro některou instanci problému skončí s nesprávným výstupem. Jak se přesvědčíme, že nějaký algoritmus je korektní? doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 5/ 15

Problém vs. algoritmus vs. program Zápis algoritmů Používaná forma zápisu algoritmů na přednáškách ZDM: slovní popis pseudokód program v jazyce systému Mathematica Program P: zápis(implementace) algoritmu A v programovacím jazyku, spustitelný(proveditelný) na nějakém počítači s nějakým OS a SW prostředím. jedenalgoritmus A víceprogramů P 1,P 2,... časové a paměťové nároky různých programů téhož algoritmu mohou záviset na architektuře počítače nikoli ale řádově. doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 6/ 15

Složitost algoritmů Algoritmy mají různou složitost Projedenproblém V mohouexistovatrůznéalgoritmy A 1,A 2,..., pro jeho řešení. Jejich nároky na výpočetní prostředky(složitost) se mohou výrazně (řádově) lišit. Zvláště se mohou lišit svojí rychlostí(operační složitostí). Analýza složitosti algoritmu: výpočet/odhad/predikce požadavků na výpočetní prostředky, které provedení algoritmu bude vyžadovat v závislosti na velikosti vstupních dat. Velikost vstupních dat závisí na specifikaci daného problému: počet bitů vstupního čísla délka vstupní posloupnosti čísel rozměry vstupní matice početznakůvstupníhotextu,... doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 7/ 15

Složitost algoritmů Výpočetní(operační) složitost Varianty: doba běhu algoritmu doba výpočtu počet provedených operací počet provedených instrukcí(aritmetických, logických, paměťových) počet transakcí nad databází Případová analýza složitosti: Algoritmus obsahuje podmíněné příkazy jeho složitost obecně závisí: nejen na velikosti vstupních dat, ale také na jejich hodnotách(algoritmus je citlivý na vstupní data). doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 8/ 15

Složitost algoritmů Příklad algoritmů s různou složitostí Příklad algoritmů s různou složitostí Příklad 2 Zjistěte,zdajsouvpoli a[0,...,n 1]všechnyhodnotynavzájemrůzné. 8 1 4 6 3 10-2 true 8 1 3 6 3 10-2 false doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 9/ 15

Složitost algoritmů Příklad algoritmů s různou složitostí 1.algoritmus A 1 (intuitivní,jednoduchý) Myšlenka: porovnat každý prvek s každým, zda se shodují. bool ruzne = true; for (i=0; (i<n); i++) for (j=0; (j<n); j++) if ((i!=j) && (a[i]==a[j])) ruzne = false; Početiterací: n 2. Početporovnání:přibližně h 1 (n). =4n 2. Kromě toho se provádí řada dalších operací, např. čtení z paměti. doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 10/ 15

Složitost algoritmů Příklad algoritmů s různou složitostí 2.lepšíalgoritmus A 2 Myšlenka: ukončit cyklus, pokud jsou nalezeny stejné hodnoty. bool ruzne = true; for (i=0; (i<n) && ruzne; i++) for (j=0; (j<n) && ruzne; j++) if ((i!=j) && (a[i]==a[j])) ruzne = false; Početiterací:1až n 2. Početporovnání: h 2 (n). =4ažpřibližně4n 2. doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 11/ 15

Složitost algoritmů Příklad algoritmů s různou složitostí 3.ještělepšíalgoritmus A 3 Myšlenka: Neporovnávat každý prvek s každým prvkem dvakrát (rovnost je symetrická) rovnou vynechat diagonálu. bool ruzne = true; for (i=1; (i<n) && ruzne; i++) for (j=0; (j<i) && ruzne; j++) if ( /*... */ (a[i]==a[j])) ruzne = false; Početiterací:1až n(n 1)/2. Početporovnání: h 3. =3ažpřibližně3n(n 1)/2. doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 12/ 15

Složitost algoritmů Příklad algoritmů s různou složitostí 4.ještělepšíalgoritmus A 4 Myšlenka: Hodnoty v poli nejprve seřadit. bool ruzne = true; seřaď vstupní pole a[0,...,n-1]; for (i=1; (i<n) && ruzne; i++) if (a[i]==a[i-1]) ruzne = false; Početiterací:1až(n 1). Počet porovnání: 2 až přibližně 2n. Celkovásložitost:nejvýšepřibližně h 4 (n). = knlogn+2n, kje nějaká konstanta. doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 13/ 15

Asymptotická matemetika Vyjádření složitosti algoritmu Viděli jsme, že složitost algoritmu může obecně záviset na hodnotách vstupních dat. Proto je obecně potřebné vyjádřit složitost algoritmu: vnejlepšímpřípadě, vnejhoršímpřípadě, vprůměrnémpřípadě. Poslední případ je nejobtížnější, protože není vždy zřejmé, co to jsou vstupní data v průměrném případě. Typicky náhodně vygenerovaná, aletonemusíbýtvpraxisplněno. Platí pro složitost časovou, paměťovou, komunikační, transakční,... doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 14/ 15

Asymptotická matemetika Umění analýzy složitosti algoritmu Analýza složitosti algoritmů vyžaduje řadu znalostí a schopností: znalost asymptotických odhadů řádu růstu funkcí schopnost abstrakce výpočetního modelu znalosti z diskétní matematiky kombinatoriky znalost sčítání řad a řešení rekurentních rovnic znalosti základů teorie pravděpodobnosti adalší doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 15/ 15

Asymptotická matemetika Výpočetní model RAM model Pro analýzu složitosti algoritmu potřebujeme model výpočetního systému, na kterém algoritmus bude hypoteticky implementován. Nejčastější je jednoprocesorový Random Access Machine(RAM) model: datauloženavadresovatelnépaměti aritmetickologické,řídící,paměťovéinstrukce časovásložitostinstrukcíjejednotkovánebokonstatní instrukcejsouprováděnypostupně(sekvenčně). doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 16/ 15

Asymptotická matemetika Asymptotická složitost Asymptotická složitost Přesnou složitost lze určit jen v případě jednodušších algoritmů, cožvevětšiněpřípadůnestojízanámahu, vpřípaděsložitýchalgoritmůjetoobtížnéažnemožné. Proto se to typicky nedělá. Z praktického hlediska nás zajímá především, jak se bude algoritmus chovat pro velké( ) instance problému. Typicky nám stačí vyjádřit řád růstu funkce vyjadřující složitost se zanedbáním příspěvků nižších řádu. Příklad 3 Složitost4.algoritmujenejvýše h 4 (n)=knlogn+3n. = knlognpro velká n řazení dominuje zbytku algoritmu. DEMO1 doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 17/ 15

Asymptotická matemetika Asymptotická složitost Asymptotická složitost(pokr.) Zajímá nás, jak složitost algoritmu závisí na velikosti vstupních dat v limitě, pokud velikost instance problému poroste nade všechny meze. Pro první porozumění chování algoritmu nás nemusejí zajímat ani multiplikativní konstanty říkáme, že nás zajímá asymptotická složitost. Je to složitost vyjádřená pro instance problému dostatečně velké, aby se jasně projevil řád růstu složitosti v závislosti na velikosti vstupních dat. Asymptoticky lepší algoritmus bude lepší pro všechny instance problému kromě konečného počtu menších instancí. Příklad 4 Hodnotyfce f(n)=1.5n 2 +140 n+30provelká nbudouvelmiblízké hodnotámfce g(n)=1.5n 2 nebofce h(n)=1.5n 2 25n+44.DEMO2 doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 18/ 15

Asymptotická matemetika Asymptotická aritmetika Asymptotická aritmetika N + =množinakladnýchpřirozenýchčísel R + =množinakladnýchreálnýchčísel Uvažujeme pouze kladné funkce jedné přirozené proměnné n: f,g,...:n + R +. doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 19/ 15

Asymptotická matemetika Asymptotická horní mez Asymptotická horní mez: O-notace Definice 5 (Relační)Jsou-lidányfunkce f(n)ag(n),pakřekneme,že f(n)je nejvýše řádu g(n), psáno f(n) = O(g(n)), jestliže c R + n 0 N + n n 0 : f(n) c.g(n). Alternativní definice. Definice 6 ( Množinová) Je-li dána funkce g(n), pak O(g(n)) je definována jako (nekonečná) množina funkcí {f(n): c R + n 0 N + n n 0 : f(n) c.g(n)}. O-notaci používáme pro vyjádření horní meze růstu funkce až na multiplikativní konstantu. doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 20/ 15

Asymptotická matemetika Asymptotická horní mez Asymptotická horní mez: O-notace(pokr.) doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 21/ 15

Asymptotická matemetika Asymptotická horní mez Landauova symbolika a O-notace Vztahnaší O-notaceaLandauovysybmolikyzBI-ZMA(označmeji O L )? Definice 8 a n = O L (b n ) df existuje(ω n ) taková,že (ω n ) jeomezenáposloupnostaa n = ω n b n prokaždé n N +. f(n)=o(g(n)) df c R + n 0 N + n n 0 : f(n) c.g(n). V našem případě pracujeme pouze s posloupnostmi/funkcemi, jež mají kladnéhodnoty,(a n ) f(n), (b n ) g(n) a(ω n ) ω(n). O L O: ω(n)jeomezená ω(n) =ω(n) K pro n N + pro c=ka n n 0 =1platí f(n)=ω(n)g(n) K.g(n) O O L : zvolme ω(n)= f(n) g(n),pakpro n n 0je f(n) c.g(n) neboli ω(n) c.položíme-li K= max(ω(1),...,ω(n 0 1),c),pak ω(n) Kprovšechna n N +. doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 22/ 15

Asymptotická matemetika Asymptotická dolní mez Asymptotická dolní mez: Ω-notace Definice 9 (Relační)Jsou-lidányfunkce f(n)ag(n),pakřekneme,že f(n)je nejméně řádu g(n), psáno f(n) = Ω(g(n)), jestliže c R + n 0 N + n n 0 : c.g(n) f(n). Alternativní definice. Definice 10 ( Množinová) Je-li dána funkce g(n), pak Ω(g(n)) je definována jako (nekonečná) množina funkcí {f(n): c R + n 0 N + n n 0 : c.g(n) f(n)}. Ω-notaci používáme pro vyjádření dolní meze růstu funkce až na multiplikativní konstantu. doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 23/ 15

Asymptotická matemetika Asymptotická dolní mez Asymptotická dolní mez: Ω-notace(pokr.) doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 24/ 15

Asymptotická matemetika Asymptotická těsná mez Asymptotická těsná mez: Θ-notace Definice 12 (Relační)Jsou-lidányfunkce f(n)ag(n),pakřekneme,že f(n)je téhožřádujako g(n),psáno f(n)=θ(g(n)),jestliže c 1,c 2 R + n 0 N + n n 0 : c 1.g(n) f(n) c 2.g(n). Alternativní definice. Definice 13 ( Množinová) Je-li dána funkce g(n), pak Θ(g(n)) je definována jako (nekonečná) množina funkcí {f(n): c 1,c 2 R + n 0 N + n n 0 : c 1.g(n) f(n) c 2.g(n)}. Θ-notaci používáme pro vyjádření faktu, že dvě funkce rostou asymptoticky stejně až na multiplikativní konstantu. Zápisy f(n) Θ(g(n))af(n)=Θ(g(n))jsourovnocennéazáleží pouzenakontextu,kterýjevhodnější(totéžplatípro O,Ω,o,ω). doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 25/ 15

Asymptotická matemetika Asymptotická těsná mez Asymptotická těsná mez: Θ-notace(pokr.) Příklad 14 3n 2 5n+15=Θ(n 2 ) Prokaždýpolynomplatí d i=0 a in i =Θ(n d ),pokud a d >0. 1 2 1 2 doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 26/ 15

Asymptotická matemetika Asymptotická těsná mez Příklad použití Θ-notace Vztah mezi asymptotickou horní, dolní a těsnou mezí: f(n)=θ(g(n))implikuje f(n)=o(g(n)) (Θ je silnější podmínka než O neboli Θ(g(n)) O(g(n))). f(n)=θ(g(n))implikuje f(n)=ω(g(n)) (Θ je silnější podmínka než Ω neboli Θ(g(n)) Ω(g(n))). f(n)=θ(g(n)) f(n)=o(g(n)) f(n)=ω(g(n)) doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 27/ 15

Asymptotická matemetika Asymptotická těsná mez Příklad použití Θ-notace Příklad 15 Ukážeme,že f(n)=3n 2 5n+15=Θ(n 2 ). Pro c 1 =2,c 2 =4an 0 =3platí neboť máme 2n 2 3n 2 5n+15 3n 2 pro n 3, 2n 2 3n 2 5n+15poodečtení2n 2 dostaneme 0 n 2 5n+15,cožplynezn 2 5n+15=(n 3) 2 +n+6 0 3n 2 5n+15 3n 2 poodečtení3n 2 5n+15 0,cožplatípro n=3atedyipro n 3,neboťlevá strana je klesající funkce. doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 28/ 15

Asymptotická matemetika Asymptotická větší horní mez Striktně větší horní mez: o-notace Definice 16 (Relační)Jsou-lidányfunkce f(n)ag(n),pakřekneme,že f(n)je striktně nižšího řádu než g(n), psáno f(n) = o(g(n)), jestliže c R + n 0 N + n n 0 : f(n) < c.g(n). Alternativní definice. Definice 17 ( Množinová) Je-li dána funkce g(n), pak o(g(n)) je definována jako (nekonečná) množina funkcí {f(n): c R + n 0 N + n n 0 : f(n) < c.g(n)}. Zápisy f(n) o(g(n))af(n)=o(g(n))jsouopětrovnocenné. Vyjadřují,že g(n)jepro f(n)asymp.hornímezívyššíhořádu. Pakplatílim n f(n) g(n) =0,tj. f(n)=o L(g(n)) vlandauověnotaci. doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 29/ 15

Asymptotická matemetika Asymptotická menší dolní mez Striktně menší dolní mez: ω-notace Definice 18 (Relační)Jsou-lidányfunkce f(n)ag(n),pakřekneme,že f(n)je striktně vyššího řádu než g(n), psáno f(n) = ω(g(n)), jestliže c R + n 0 N + n n 0 : c.g(n) < f(n). Alternativní definice. Definice 19 ( Množinová) Je-li dána funkce g(n), pak ω(g(n)) je definována jako (nekonečná) množina funkcí {f(n): c R + n 0 N + n n 0 : c.g(n) < f(n)}. Zápis f(n)=ω(g(n))vyjadřuje,že g(n)jepro f(n)asymptotickou dolní mezí nižšího řádu. Pakplatílim n f(n) g(n) =. Žádná multiplikativní konstanta neumožní, aby g(n) dostihlo f(n). doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 30/ 15

Asymptotická matemetika Asymptotická menší dolní mez Použití asymptotické notace Asymptotická notace nám umožňuje zjednodušovat výrazy zanedbáním nepodstatných částí. Znamená f(n)=θ(g(n)) totéž,jako f(n) g(n)vlandauově notaci? DEMO 5 Coznamenázápis f(n)=4n 3 +Θ(n 2 )? VýrazΘ(n)zastupujeanonymnífunkcizmnožinyΘ(n 2 )(nějaká kvadratická funkce), jejíž konkrétní podobu prozatím zanedbáváme. Co znamenají zápisy Θ(1), O(1), Ω(1)? Přesněji neurčené konstantní meze. Coznamenázápis f(n)=o(n O(1) )? f(n)jeshoraomezenanějakoupolynomiálnífunkcí n c,kde csice přesně neznáme, ale víme, že to je konstanta. doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 31/ 15

Asymptotická matemetika Zákony asymptotické aritmetiky Zákony asymptotické aritmetiky Tranzitivita: f(n)=o(g(n)) g(n)=o(h(n)) f(n)=o(h(n)) (podobněproω,θ,o,ω) Reflexivita: f(n)=o(f(n)) (podobněproω,θ) Symetrie: f(n)=θ(g(n)) g(n)=θ(f(n)) Transpoziční f(n)=o(g(n)) g(n)=ω(f(n)) symetrie: f(n)=o(g(n)) g(n)=ω(f(n)) Inkluze: f(n)=o(g(n)) f(n)=o(g(n)) f(n)=θ(g(n)) f(n)=o(g(n)) f(n)=ω(g(n)) f(n)=ω(g(n)) f(n)=θ(g(n)) f(n)=ω(g(n)) Všimněte si následující analogie s porovnáváním čísel: O Ω Θ o ω odpovídá = < > doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 32/ 15

Asymptotická matemetika Základní funkce Základní funkce jedné proměnné dolníceláčást x,horníceláčást x polynomiální exponent >1,např. n 2 lineární mocninnásexponentem <1,např. 4 n exponenciální,např.2 n polylogaritmické,např.log 3 n faktoriální n! logaritmickáiteracelog n Fibonacciho čísla F(n)... doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 33/ 15

Asymptotická matemetika Základní funkce Porovnání řádu funkcí Příklad 20 1 Dokažte,želogn=o(n c )prolibovolnoukonstantu0 < c <1. 2 Seřaďte následující funkce dle jejich asymptotické složitosti. n 3 logn! e n 2 n n log(n!) loglogn 1.5 n n2 n n! n logn logn log 2 n 2 2n n 2 logn 2 n n/logn 2 log2 n n 1/logn logn nlogn doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 34/ 15

Asymptotická matemetika Základní funkce Srovnání časových složitostí Předpokládejme,že1operacetrvá1µsažepočetoperacíjedánfunkcív prvním sloupci. Doba výpočtu je pak pro různé hodnoty n následující: (Připomeňme,žepočetatomůvevesmíruseodhadujena10 80 astáří vesmíruna14 10 9 let.) n 10 20 40 80 500 1000 logn 3,3 µs 4,3µs 5µs 5,8µs 9µs 10µs n 10µs 20µs 40µs 60µs 0, 5ms 1ms n log n 33µs 86µs 0, 2ms 0, 35ms 4, 5ms 10ms n 2 0,1ms 0,4ms 1,6 ms 3,6ms 0,25s 1s n 3 1ms 8ms 64ms 0,2s 125s 17min n 4 10ms 160ms 2,56s 13s 17h 11,6dní 2 n 1ms 1s 12,7dní 3600let 10 137 let 10 287 let n! 3,6s 77100let 10 34 let 10 105 let 10 1110 let 10 2554 let doc. Josef Kolář (FIT ČVUT) Určování složitosti algoritmů ZDM, ZS 2011/12, Lekce 1 35/ 15