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

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

Algoritmická matematika 3 Mgr. Petr Osička, Ph.D. ZS Rozděl a panuj

DMA Přednáška Rekurentní rovnice. takovou, že po dosazení odpovídajících členů do dané rovnice dostáváme pro všechna n n 0 + m pravdivý výrok.

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

Rzné algoritmy mají rznou složitost

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

= je prostý orientovaný graf., formálně c ( u, v) 0. dva speciální uzly: zdrojový uzel s a cílový uzel t. Dále budeme bez

KMI/ALM3 Mgr. Petr Osička, Ph.D. ZS ANO je slovo 1 a kódováním NE je slovo 0, pak je problém popsán pomocí dvojice L, R takové, že:

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

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

z nich byla poprvé dokázána v 19. století velikány analytické teorie čísel (Pafnutij Lvovič Čebyšev, Charles-Jean de la Vallée Poussin a další).

Stromové rozklady. Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom,

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

Rekurentní rovnice, strukturální indukce

TGH05 - Problém za milion dolarů.

8 Přednáška z

2 Důkazové techniky, Indukce

Principy indukce a rekurentní rovnice

Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů?

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

Základy matematické analýzy

4. Kombinatorika a matice

Definice (Racionální mocnina). Buď,. Nechť, kde a a čísla jsou nesoudělná. Pak: 1. je-li a sudé, (nebo) 2. je-li liché, klademe

PŘEDNÁŠKA 2 POSLOUPNOSTI

Algoritmy I, složitost

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.

úloh pro ODR jednokrokové metody

2 Fyzikální aplikace. Předpokládejme, že f (x 0 ) existuje. Je-li f (x 0 ) vlastní, pak rovnice tečny ke grafu funkce f v bodě [x 0, f(x 0 )] je

Principy indukce a rekursivní algoritmy

Rekurentní rovnice, strukturální indukce

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

dx se nazývá diferenciál funkce f ( x )

Soustavy rovnic pro učební obor Kadeřník

Příklad. Řešte v : takže rovnice v zadání má v tomto případě jedno řešení. Pro má rovnice tvar

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

Dijkstrův algoritmus

10 Přednáška ze

Posloupnosti a jejich limity

Věta 12.3 : Věta 12.4 (princip superpozice) : [MA1-18:P12.7] rovnice typu y (n) + p n 1 (x)y (n 1) p 1 (x)y + p 0 (x)y = q(x) (6)

Nechť je číselná posloupnost. Pro všechna položme. Posloupnost nazýváme posloupnost částečných součtů řady.

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

13. cvičení z PSI ledna 2017

Univerzita Karlova v Praze Pedagogická fakulta

označme j = (0, 1) a nazvěme tuto dvojici imaginární jednotkou. Potom libovolnou (x, y) = (x, 0) + (0, y) = (x, 0) + (0, 1)(y, 0) = x + jy,

Statistická teorie učení

Soustavy rovnic pro učební obory

Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní. stromový rozklad. Poznamenejme, že je-li k součástí vstupu, pak rozhodnout

Přednáška 6, 7. listopadu 2014

Digitální učební materiál

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

ALGORITMY A DATOVÉ STRUKTURY

Věta o dělení polynomů se zbytkem

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

Nejdřív spočítáme jeden příklad na variaci konstant pro lineární diferenciální rovnici 2. řádu s kostantními koeficienty. y + y = 4 sin t.

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

Diferenciální rovnice 1

NÁVRH ALGORITMŮ. poznámky pro Algoritmickou matematiku 3. Petr Osička

Nekonečné číselné řady. January 21, 2015

13. přednáška 13. ledna k B(z k) = lim. A(z) = M(z) m 1. z m.

5.3. Implicitní funkce a její derivace

Fibonacciho čísla na střední škole

Kapitola 1. Úvod. 1.1 Značení. 1.2 Výroky - opakování. N... přirozená čísla (1, 2, 3,...). Q... racionální čísla ( p, kde p Z a q N) R...

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

x + 6 2x 8 0. (6 x 0) & (2x 8 > 0) nebo (6 x 0) & (2x 8 < 0).

Matematická logika. Rostislav Horčík. horcik

Přijímací zkouška na navazující magisterské studium 2017

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

l, l 2, l 3, l 4, ω 21 = konst. Proved te kinematické řešení zadaného čtyřkloubového mechanismu, tj. analyticky

Příklady z Kombinatoriky a grafů I - LS 2015/2016

Řešení úloh TSP MU prezentace k výkladům na prezenčních kurzech ZKRÁCENÁ UKÁZKA PRO WEB Analytické myšlení ročník 2011, var. 07

2. LIMITA A SPOJITOST FUNKCE

Lineární algebra : Polynomy

Riemannův určitý integrál

Teoretická informatika - Úkol č.1

Úvod do problematiky

Modely Herbrandovské interpretace

Diferenciální rovnice 3

KMI/ALM3 Mgr. Petr Osička, Ph.D. Update: 15. listopadu 2016

Anotace. Informace o praktiku z programování!!! Direktivy překladače Soubory (textové) Quicksort Metoda rozděl a panuj

Lineární algebra : Změna báze

Intervalová data a výpočet některých statistik

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

5. Lokální, vázané a globální extrémy

Funkce komplexní proměnné a integrální transformace

IB002 Algoritmy a datové struktury I

POSLOUPNOSTI A ŘADY INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky

M - Příprava na 1. zápočtový test - třída 3SA

1 Lineární prostory a podprostory

M - Příprava na pololetní písemku č. 1

IB108 Sada 1, Příklad 1 Vypracovali: Tomáš Krajča (255676), Martin Milata (256615)

oddělení Inteligentní Datové Analýzy (IDA)

Limita a spojitost funkce. 3.1 Úvod. Definice: [MA1-18:P3.1]

Systém přirozené dedukce výrokové logiky

VZOROVÝ TEST PRO 1. ROČNÍK (1. A, 3. C)

řešeny numericky 6 Obyčejné diferenciální rovnice řešeny numericky

populace soubor jednotek, o jejichž vlastnostech bychom chtěli vypovídat letní semestr Definice subjektech.

Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:

FIT ČVUT MI-LOM Lineární optimalizace a metody. Dualita. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Číselné posloupnosti

1 Mnohočleny a algebraické rovnice

Transkript:

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

Vyjádřen ení složitosti rekurzivního algoritmu rekurentním m tvarem Příklad vyjádření složitosti rekurzivního algoritmu rekurencí: Kde T n je celková složitost algoritmu. Na pravé straně jsou jednotlivé případy složitostí pro různá n. Okrajové případy (pro n < konstanta) můžeme opomenout, protože mají konstantní asymptotickou složitost. Zaokrouhlení rovněž většinou neovlivní celkový výsledek (Pozor existují i výjimky!). Z toho dostáváme rekurentní vztah: 2/14

Převod rekurence na přímép vyjádřen ení Přímým vyjádřením složitosti myslíme vyjádření složitosti bez rekurence. Např: T(n) = Θ(log(n)) Jaké jsou možnosti řešení? Substituční metoda Uhádneme řešení a potom dokážeme, že je správné indukcí. Metoda rekurzívního stromu Spočítáme složitost celého rekurzivního stromu. Použití kuchařky (Master theorem mistrovská věta) Pro některé speciální tvary rekurentních vztahů známe předem vypočítané řešení dle mistrovské věty. 3/14

Substituční metoda Řešíme ve dvou krocích 1. Odhadneme přesný tvar řešení. Odhad lze stanovit například pomocí zjišťováním složitosti pro různá vstupní n. 2. Matematicky dokážeme, že je náš odhad správný. Obvykle se dokazuje pomocí matematické indukce. Metoda bývá zpravidla velmi účinná. Její nevýhodou je určování přesného tvaru řešení v kroku 1 pro které neexistuje obecný postup. 4/14

Substituční metoda - příklad Příklad: T (n) = 2T (n/2) + n Předpokládejme, že jsme odhadli přímé vyjádření vztahem: T (n) = O(n log(n)) Z definice horního odhadu O, chceme tedy dokázat, že T (n) cn log (n) pro nějaké vhodné c > 0. Nyní stanovíme vhodný indukční předpoklad (tj. nechť odhad platí pro n/2 ): T (n/2) c (n/2) log (n/2) 5/14

Substituční metoda - příklad Nyní dosadíme indukční předpoklad do rekurentního vztahu a pokusíme se dokázat jeho platnost vyjádřením přímého (nerekurentního) původně odhadnutého vztahu pro n. T(n) 2(c (n/2) log(n/2)) + n cn log(n/2) + n = cn log (n) cn log (2) + n = cn log (n) cn + n cn log (n) kde poslední krok platí pro c 1. Počáteční krok indukce platí triviálně. Díky asymptotické notaci stačí ukázat, že odhad platí pro nějaké n 0 a c > 0. V našem příkladě tedy platí pro n 0 =3 a c 2). Tím je důkaz hotov. 6/14

Metoda rekurzívn vního stromu - příklad Příklad: T (n) = 3T (n/4) + cn 2 Iterativně rozkládáme do rekurzivních stromů: Pro každý strom platí, že součet všech uzlů dá složitost T (n) podle původního rekurentního vztahu. Rekurzivní stromy jsou pouze grafická vizualizace rozvoje rekurentního vztahu. 7/14

Metoda rekurzívn vního stromu - příklad Výsledný strom má následující tvar: Vyjádříme součty jednotlivých pater stromu. Všechna patra sečteme a dostaneme výslednou složitost: O (n 2 ) 8/14

Metoda rekurzívn vního stromu - příklad Součet pater lze spočítat následovně: podle vzorce pro x < 1 9/14

Použit ití kuchařky Použití kuchařky nebo tzv. mistrovské věty (master theorem) řeší rekurentní složitost, která má následující tvar: T (n) = a T (n/b) + f (n) Kde a 1a b > 1 jsou konstanty a f (n) je asymptoticky kladná funkce. Zaokrouhlení u členu T (n/b) na T ( n/b ) nebo T ( n/b ) neovlivní v tomto případě výslednou složitost. 10 / 14

Použit ití kuchařky Master theorem (mistrovská nebo také kuchařková věta) Nechť jsou a 1a b > 1 konstanty, nechť je f (n) funkce a nechť T (n) je definováno pro nezáporná celá čísla rekurencí T (n) = a T (n/b) + f (n) kde n/b má význam buď n/b nebo n/b. Potom lze asymptoticky vyjádřit následovně: 1. Pokud f (n) O(n log b(a) ε ) pro nějakou konstantu ε > 0, potom T (n) Θ(n log b(a) ). 2. Pokud f (n) Θ(n log b(a) ), potom T (n) Θ(n log b(a) log(n)). 3. Pokud f (n) Ω(n log b(a)+ε ) pro nějakou konstantu ε >0a pokud a f (n/b) c f (n) pro nějakou konstantu c < 1 a všechna dostatečně velké n, potom T (n) Θ(f(n)). 11 / 14

Použit ití kuchařky příklad 1 Příklad 1: T (n) = 9T(n/3) + n Z toho dostáváme, že a = 9, b = 3, f (n) = n O(n log 3(9) 1 ). Jedná se tedy o případ číslo 1. Dostáváme tedy složitost: T (n) Θ(n log 3(9) ) = Θ(n 2 ) 12 / 14

Použit ití kuchařky příklad 2 Příklad 2: T (n) = T(2n/3) + 1 Z toho dostáváme, že a = 1, b = 3/2, f (n) = 1 = n log 3/2(1) Θ(n log 3/2(1) ). Jedná se tedy o případ číslo 2. Dostáváme tedy složitost: T (n) Θ(n log 3/2(1) log(n)) = Θ(log(n)) 13 / 14

Příklad 3: Použit ití kuchařky příklad 3 T (n) = 3T(n/4) + n log(n) Z toho dostáváme, že a = 3, b = 4, f (n) = n log(n) a víme, že n log4(3) = O(n 0.793 ). Platí tedy, že f (n) Ω(n log 4(3)+0.2 ). Pokud by se mělo jednat o případ 3 musí ještě platit pro c < 1 a všechna dostatečně velká n, že a f (n/b) cf(n) tedy a f (n/b) = 3(n/4)log(n/4) (3/4)n log(n) = cf(n) pro c = ¾. Dostáváme tedy složitost: T (n) Θ(n log(n)) 14 / 14