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

Rozměr: px
Začít zobrazení ze stránky:

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

Transkript

1 Binární vyhledávací stromy pokročilé partie KMI/ALS lekce Jan Konečný

2 Literatura Cormen Thomas H., Introduction to Algorithms, 2nd edition MIT Press, 200. ISBN , 3, A Knuth Donald E., The Art of COmputer Programming, Vol. 3 Addison-Wesley, 998. ISBN , 2, A.

3 Binární vyhledávací stromy (binary search tree), (BST) Máme lineárně uspořádanou množinu klíčů. Binární vyhledávací strom je strom, kde uzly jsou označeny klíčem, každý uzel má nejvýše dva potomky (nejvýše jednoho levého a nejvýše jednoho pravého). pokud má uzel s klíčem k levého potomka s klíčem l, platí l < k. pokud má uzel s klíčem k pravého potomka s klíčem p, platí k < p. Hledání v binárním vyhledávacím stromu Vstup : strom T, klíč k Výstup: uzel s klíčem k N root(t ); while key(n) k do if key(n) < k) then N left(n) else N right(n)

4 Co člověka děsí? A proč nás to děsit nemusí? Theorem Průměrný počet porovnání při vyhledávání v BST o N klíčích je asi Degenerované stromy 2 ln N.386 log 2 N. To platí za předpokladu, že: pravděpodobnost, že N klíčů bylo vloženo v každém z N! pořadí je stejná. ze stromu se nemazalo. Definujme náhodně vybudovaný BST (randomly build BST), (RBBST) o n prvcích jako strom, který byl na počátku prázdný, a bylo do něj vloženo n prvků v libovolném z n! pořadí.

5 úspěšné hledání Označme: C n průměrný počet porovnání při úspěšném hledání v BST s N klíči. C n průměrný počet porovnání při neúspěšném hledání v BST s N klíči. C n = + C 0 + C + + C N N () Vysvětlení: počet porovnání při úspěšném hledání klíče k v BST s N klíči je o jedna větší než počet porovnání, který byl potřebný ke vložení klíče k. počet porovnání, který byl potřebný k vložení klíče k do BST s i klíči je roven počtu porovnání při neúspěšném hledání v BST s i klíči. klíč k byl vložen jako i-tý se stejnou pravděpodobností pro všechna i {,..., N}. Proto ten aritmetický průměr.

6 délka cesty velmi důležitý pojem při analýze algoritmů nad stromy, protože tato hodnota je často přímo vztažená k časové složitosti. Rozšířený binární strom přidáme zvláštní uzly tam, kde měl původní strom prázdný podstrom. Example vnitřní uzel vnější uzel

7 délka vnější cesty (E external path length): Součet vzdáleností kořene od všech vnějších uzlů. délka vnitřní cesty (I internal path length): Součet vzdáleností kořene od všech vnitřních uzlů. Example délka vnitřní cesty: I = = délka vnější cesty: E = = 25

8 Theorem Pro BST o N vnitřních uzlech platí, že E = I + 2N Důkaz. Uvažme smazání jednoho vnitřního uzlu V ve vzdálenosti k od kořene, kde jsou oba potomci vnější: E klesne o 2(k + ), protože potomci V jsou odstraněni a současně stoupne, protože V se stane vnějším uzlem. Čistá změna v E je tedy k 2; čistá změna I je k. Tvrzení vyplyne indukcí.

9 Pokud předpokládáme, že každý klíč je vyhledáván se stejnou pravděpodobností a že každý z N + intervalů mezi klíči a vně extrémních hodnot klíčů je stejně pravděpodobný, dostáváme: C n = + I N, C n = E N + Protože E = I + 2N, dostáváme zajímavý vztah mezi C n a C n: ( C n = + ) C n (2) N Dáme dohromady (??) a (??), a dostáváme: (N + )C n = 2N + C 0 + C + + C N. (3)

10 (N + )C n = 2N + C 0 + C + + C N. (4) Rekurence se snadno zbavíme, když od (??) odečteme rovnici NC N = 2(N ) + C 0 + C + + C N 2. Dostaneme Po úpravě... (to je ta samá rovnice pro N ) (N + )C n NC N = 2 + C N. C n = C N + 2 N +

11 Intermezzo: Harmonická čísla Harmonická čísla rekurzivně: 0 pro n = 0, H n = H n + jinak. n Takže C n = 2H N+ 2. Po dosazení do (??) a zjednodušení dostáváme ( C n = 2 + ) H n 3 2 ln N N... odsud pak tvrzení věty

12 Jiná úvaha o tomtéž Víme, že složitost vyhledávání v nejhorším případě BST je O(h), kde h je výška stromu. Ukážeme, že platí následující věta: Theorem Očekávaná výška RBBST o n prvcích je O(log(n)).

13 Důkaz Nadefinujeme si tyto tři náhodné proměnné: výška RBBST o n prvcích X n, exponenciální výška Y n = 2 Xn, klíč v kořeni RBBST R n. Hodnota R n je se stejnou pravděpodobností kterýkoli z prvků {,..., n}. Pokud R n = i, pak levý podstrom je RBBST o i prvcích pravý podstrom je RBBST o n i prvcích Y n = 2 max(y i, Y n i ) Jako krajní případy Y n máme Y =, Y 0 = 0.

14 Dále definujeme náhodné proměnné Z n,, Z n,2,..., Z n,n, kde Z n,i = I{R n = i}. Máme Pr{R n = i} = /n pro i =, 2,..., n, a tedy E[Z n,i ] = /n pro i =, 2,..., n. Protože právě jedna hodnota Z n,i = a všechny ostatní jsou 0, máme taky: Y n = n Z n,i (2 max(y i, Y n i )) i= Ukážeme, že E[Y n ] je polynomická v n, z toho pak vyplyne, že E[X n ] = O(log n).

15 Z n,i je nezávislá na Y i a Y n i : Když vybereme R n = i, levý podstrom (s exp. výškou Y i ) je náhodně vybudován z i klíčů, které jsou menší než i. Tento podstrom je jako jakýkoli jiný podstrom vybudovaný z i prvků: pouze počet prvků v něm je závisly na volbě R n, jeho struktura není nijak závislá na volbě R n. stejně tak pro pravý podstrom. A proto...

16 [ n ] E[Y n ] = E Z n,i (2 max(y i, Y n i )) = = i= n E [Z n,i (2 max(y i, Y n i ))] i= n E [Z n,i ] E [2 max(y i, Y n i )] i= n = n E [2 max(y i, Y n i )] i= = 2 n E [max(y i, Y n i )] n 2 n i= n (E [Y i ] + E [Y n i ]) i=

17 Z předchozího slajdu: E[Y n ] 2 n n (E [Y i ] + E [Y n i ]) i= Tam se každý term E[Y 0 ], E[Y ],..., E[Y n ] vyskytuje dvakrát; můžeme zjednodušit na E[Y n ] 4 n E [Y i ] n i=0 Teď ukážeme (substituční metodou), že pro všechna kladná n je toto ekvivalentní s E[Y n ] ( ) n n ( ) ( ) i + 3 n + 3 Přitom použijeme rovnost =. 3 4 (oveříme ji na cvičení) i=0

18 Pro základní případ oveříme, že ohraničení platí: = Y = E [Y ] ( ) + 3 =. 4 Dále E[Y n ] 4 n E[Y i ] = 4 n ( ) i + 3 = n n 4 3 i=0 i=0 = n ( ) i + 3 = ( ) n + 3 = n 3 n 4 i=0 = n (n + 3)! 4!(n )! = (n + 3)! = ( ) n !n! 4 3

19 Platí (ne vždy, ale v tomto případě ano), že A z toho máme, že 2 E[Xn] 4 2 E[Xn] E[2 Xn ] = E[Y n ]. ( ) n = (n + 3)(n + 2)(n + ) 4 6 Zlogaritmováním obou stran dostáváme E[X n ] = O(log n). Odtud tvrzení věty.

20 Optimální stromy Pokud je každý klíč vyhledáván stejně často je samozřejmě nejlepší vyvážený strom. Jak je to, pokud jsou frekvence vyhledávání klíčů různé? Uvažujme pravděpodobnosti p,..., p n pravděpodobnosti q 0, q,... q n, kde p i je pravděpodobnost hledání i-tého vloženého klíče K i, q i je pravděpodobnost hledání klíče, který leží mezi klíči K i a K i+, q 0 je pravděpodobnost hledání klíče, který leží před klíčem K, q n je pravděpodobnost hledání klíče, který leží za klíčem K n, t.ž. p + p p n + q 0 + q + q n =. (toto vlastně nebudeme potřebovat; pravděpodobnostem budeme říkat váhy)

21 Chceme najít binární vyhledávací strom (optimální strom), který minimalizuje počet porovnání během hledaní: n p j (level( j n + ) + q k (level( j= k=0 k )), (5) j kde je j-tý vnitřní uzel v symetrickém uspořádání a (k + )-tý vnější uzel a kde kořen má level 0. k je

22 2p 2 + p 2 + q 0 + 3q + 3q 2 + 2q 3 p 2 + 2p 3 + q 0 + 2q + 3q 2 + 3q 3 Example Mějme klíče,2,3, s vahami p, p 2, p 3 a q 0, q, q 2, q 3. Je 5 možných stromů: p + p 2 + 3q 0 + p + 2p 2 + 2q 0 + p + p 3 + 2q 0 + 3q + 2q 2 + q 3 3q + 3q 2 + q 3 2q + 2q 2 + 2q

23 Pozorování Všechny podstromy optimálního stromu jsou optimální. Example Pokud je tento strom optimální pro váhy 3 (p, p 2, p 3 ; q 0, q, q 3 ), pak jeho levý podstrom musí být optimální pro 3 (p, p 2 ; q 0, q, q 2 ). Jakékoli zlepšení v podstromu vede ke zlepšení celého 0 2 stromu. 2 Tento princip využijeme a budeme konstruovat větší a větší podstromy. pozn.: obecně se tomuto principu říká dynamické programování.

24 Pozorování Všechny podstromy optimálního stromu jsou optimální. Označme (pro 0 i j n): c(i, j) - cena optimálního podstromu s vahami (p i+,..., p j ; q i,..., q j ), w(i, j) - součet těchto vah, tj. p i+ + + p j + q i + + q j. Vyplývá, že c(i, i) = 0 c(i, j) = w(i, j) + min (c(i, k ) + c(k, j)), pro i < j, (6) i<k j protože minimální možná cena stromu s kořenem k je w(i, j) + c(i, k ) + c(k, j).

25 Pro i < j, nechť R(i, j) je množina všech k, pro které je v (??) dosaženo minimum (tj. množina možných kořenů optimálních stromů). Rovnice (??) umožňuje vyhodnotit c(i, j) pro j i =, 2,..., n. Je asi 2 n2 takových hodnot. Minimalizace je prováděna pro 6 n3 hodnot k. To znamená, že můžeme určit optimální strom v čase O(n 3 ) a paměti O(n 2 ). Ve skutečnosti jsme na tom ještě lépe...

26 My totiž nepotřebujeme počítat celou R(i, j) stačí nám jeden reprezentant r(i, j). Pokud vypočítáme r(i, j ) a r(i +, j), můžeme automaticky předpokládat, že r(i, j ) r(i, j) r(i +, j). To omezí hledání minima: místo j i hodnot k stačí prozkoumat r(i +, j) r(i, j ) + hodnot. Celkové množství práce (když j i = d) je omezeno teleskopickými posloupnostmi r(i+, j) r(i, j )+ = r(n d+, n) r(0, d )+n d+ < 2n d j n i=j d Časová složitost je tedy O(n 2 ).

27 Algoritmus hledání optimálního stromu Vstup: 2N + nezáporných vah (p,..., p n ; q 0,..., q n ). Výstup: binární vyhledávací stromy t(i, j), které mají minimální cenu vyhledávání pro váhy (p i+,..., p j ; q i,..., q j ). Budeme počítat 3 pole: c[i, j], pro 0 i j n, cena stromu t(i, j) r[i, j], pro 0 i < j n, kořen stromu t(i, j) w[i, j], pro 0 i j n, celková váha stromu t(i, j) Jak potom číst výsledek: pokud i = j, pak t(i, j) je null. jinak jeho levý podstrom je t(i, r[i, j] ) a pravý podstrom je t(r[i, j], j).

28 Hledání optimálního stromu Vstup : 2n + nezáporných vah (p,..., p n ; q 0,..., q n ) Výstup: binární vyhledávací stromy t(i, j), které mají minimální cenu vyhledávání pro váhy (p i+,..., p j ; q i,..., q j ) Inicializace; Pro 0 i n: c[i, i] 0; w[i, i] q i w[i, j] w[i, j ] + p j + q j pro j = i +,..., N; Pro j n: c[j, j] w[j, j]; r[j, j] j; for d 2 to n do for j d to n do i j d; c[i, j] w[i, j] + min r[i,j ] k r[i+,j] r[i, j] k pro které nastává to minimum; (c[i, k ] + c[k, j]);

29 Vstup: p i = (4,, 2, 2, 6); q i = (,,, 3, 2, ). Inicializace: W C R

30 d = j = i = 2 2 = 0 r[i, j ] = r[0, ] = r[i +, j] = r[, 2] = 2 k = :c[i, k ] + c[k, j] = = c[0, 0] + c[, 2] = 3 k = 2 :c[i, k ] + c[k, j] = = c[0, ] + c[2, 2] = 6 c[i, j] = c[0, 2] w[0, 2] + 3 = r[i, j] = r[0, 2] W = C = R =

31 d = j = i = 3 2 = r[i, j ] = r[, 2] = 2 r[i +, j] = r[2, 3] = 3 k = 2 :c[i, k ] + c[k, j] = = c[, ] + c[2, 3] = 6 k = 3 :c[i, k ] + c[k, j] = = c[, 2] + c[3, 3] = 3 c[i, j] = c[, 3] w[, 3] + 3 = r[i, j] = r[, 3] 3 W = C = R =

32 d = j = i = 4 2 = 2 r[i, j ] = r[2, 3] = 3 r[i +, j] = r[3, 4] = 4 k = 3 :c[i, k ] + c[k, j] = = c[2, 2] + c[3, 4] = 7 k = 4 :c[i, k ] + c[k, j] = = c[2, 3] + c[4, 4] = 6 c[i, j] = c[2, 4] w[2, 4] + 6 = 6 r[i, j] = r[2, 4] 4 W = C = R =

33 d = j = i = 5 2 = 3 r[i, j ] = r[3, 4] = 4 r[i +, j] = r[4, 5] = 5 k = 4 :c[i, k ] + c[k, j] = = c[3, 3] + c[4, 5] = 9 k = 5 :c[i, k ] + c[k, j] = = c[3, 4] + c[5, 5] = 7 c[i, j] = c[3, 5] w[3, 5] + 7 = 2 r[i, j] = r[3, 5] 5 W = C = R =

34 d = j = i = 3 3 = 0 r[i, j ] = r[0, 2] = r[i +, j] = r[, 3] = 3 k = :c[i, k ] + c[k, j] = = c[0, 0] + c[, 3] = k = 2 :c[i, k ] + c[k, j] = = c[0, ] + c[2, 3] = 2 k = 3 :c[i, k ] + c[k, j] = = c[0, 2] + c[3, 3] = W = C = R =

35 d = j = i = 4 3 = r[i, j ] = r[, 3] = 3 r[i +, j] = r[2, 4] = 4 k = 3 :c[i, k ] + c[k, j] = = c[, 2] + c[3, 4] = 0 k = 4 :c[i, k ] + c[k, j] = = c[, 3] + c[4, 4] = c[i, j] = c[, 4] w[, 4] + 0 = 22 r[i, j] = r[, 4] 3 W = C = R =

36 d = j = i = 5 3 = 2 r[i, j ] = r[2, 4] = 4 r[i +, j] = r[3, 5] = 5 k = 4 :c[i, k ] + c[k, j] = = c[2, 3] + c[4, 5] = 5 k = 5 :c[i, k ] + c[k, j] = = c[2, 4] + c[5, 5] = 6 c[i, j] = c[2, 5] w[2, 5] + 5 = 32 r[i, j] = r[2, 5] 4 W = C = R =

37 d = j = 4 5 i = 4 4 = 0 r[i, j ] = r[0, 3] = r[i +, j] = r[, 4] = 3 k = :c[i, k ] + c[k, j] = = c[0, 0] + c[, 4] = 22 k = 2 :c[i, k ] + c[k, j] = = c[0, ] + c[2, 4] = 22 k = 3 :c[i, k ] + c[k, j] = = c[0, 2] + c[3, 4] = 8 W = C = R =

38 d = j = 4 5 i = 5 4 = r[i, j ] = r[, 4] = 3 r[i +, j] = r[2, 5] = 4 k = 3 :c[i, k ] + c[k, j] = = c[, 2] + c[3, 5] = 24 k = 4 :c[i, k ] + c[k, j] = = c[, 3] + c[4, 5] = 20 c[i, j] = c[, 5] w[, 5] + 20 = 39 r[i, j] = r[, 5] 4 W = C = R =

39 d = j = 5 i = 5 5 = 0 r[i, j ] = r[0, 4] = 3 r[i +, j] = r[, 5] = 4 k = 3 :c[i, k ] + c[k, j] = = c[0, 2] + c[3, 5] = 32 k = 4 :c[i, k ] + c[k, j] = = c[0, 3] + c[4, 5] = 33 c[i, j] = c[0, 5] w[0, 5] + 32 = 56 r[i, j] = r[0, 5] 3 W = C = R =

40 p = (, 5, 2, 2, ); q = (3,, 3,, 2, ) Inicializace: W C R

41 d = j = i = 2 2 = 0 r[i, j ] = r[0, ] = r[i +, j] = r[, 2] = 2 k = :c[i, k ] + c[k, j] = = c[0, 0] + c[, 2] = 9 k = 2 :c[i, k ] + c[k, j] = = c[0, ] + c[2, 2] = 5 c[i, j] = c[0, 2] w[0, 2] + 5 = 8 r[i, j] = r[0, 2] 2 W = C = R =

42 d = j = i = 3 2 = r[i, j ] = r[, 2] = 2 r[i +, j] = r[2, 3] = 3 k = 2 :c[i, k ] + c[k, j] = = c[, ] + c[2, 3] = 6 k = 3 :c[i, k ] + c[k, j] = = c[, 2] + c[3, 3] = 9 c[i, j] = c[, 3] w[, 3] + 6 = 8 r[i, j] = r[, 3] 2 W = C = R =

43 d = j = i = 4 2 = 2 r[i, j ] = r[2, 3] = 3 r[i +, j] = r[3, 4] = 4 k = 3 :c[i, k ] + c[k, j] = = c[2, 2] + c[3, 4] = 5 k = 4 :c[i, k ] + c[k, j] = = c[2, 3] + c[4, 4] = 6 c[i, j] = c[2, 4] w[2, 4] + 5 = 5 r[i, j] = r[2, 4] 3 W = C = R =

44 d = j = i = 5 2 = 3 r[i, j ] = r[3, 4] = 4 r[i +, j] = r[4, 5] = 5 k = 4 :c[i, k ] + c[k, j] = = c[3, 3] + c[4, 5] = 4 k = 5 :c[i, k ] + c[k, j] = = c[3, 4] + c[5, 5] = 5 c[i, j] = c[3, 5] w[3, 5] + 4 = r[i, j] = r[3, 5] 4 W = C = R =

45 d = j = i = 3 3 = 0 r[i, j ] = r[0, 2] = 2 r[i +, j] = r[, 3] = 2 k = 2 :c[i, k ] + c[k, j] = = c[0, ] + c[2, 3] = c[i, j] = c[0, 3] w[0, 3] + = 27 r[i, j] = r[0, 3] 2 W = C = R =

46 d = j = i = 4 3 = r[i, j ] = r[, 3] = 2 r[i +, j] = r[2, 4] = 3 k = 2 :c[i, k ] + c[k, j] = = c[, ] + c[2, 4] = 5 k = 3 :c[i, k ] + c[k, j] = = c[, 2] + c[3, 4] = 4 c[i, j] = c[, 4] w[, 4] + 4 = 30 r[i, j] = r[, 4] 3 W = C = R =

47 d = j = i = 5 3 = 2 r[i, j ] = r[2, 4] = 3 r[i +, j] = r[3, 5] = 4 k = 3 :c[i, k ] + c[k, j] = = c[2, 2] + c[3, 5] = k = 4 :c[i, k ] + c[k, j] = = c[2, 3] + c[4, 5] = 0 c[i, j] = c[2, 5] w[2, 5] + 0 = 22 r[i, j] = r[2, 5] 4 W = C = R =

48 d = j = 4 5 i = 4 4 = 0 r[i, j ] = r[0, 3] = 2 r[i +, j] = r[, 4] = 3 k = 2 :c[i, k ] + c[k, j] = = c[0, ] + c[2, 4] = 20 k = 3 :c[i, k ] + c[k, j] = = c[0, 2] + c[3, 4] = 23 c[i, j] = c[0, 4] w[0, 4] + 20 = 40 r[i, j] = r[0, 4] 2 W = C = R =

49 d = j = 4 5 i = 5 4 = r[i, j ] = r[, 4] = 3 r[i +, j] = r[2, 5] = 4 k = 3 :c[i, k ] + c[k, j] = = c[, 2] + c[3, 5] = 20 k = 4 :c[i, k ] + c[k, j] = = c[, 3] + c[4, 5] = 22 c[i, j] = c[, 5] w[, 5] + 20 = 38 r[i, j] = r[, 5] 3 W = C = R =

50 d = j = 5 i = 5 5 = 0 r[i, j ] = r[0, 4] = 2 r[i +, j] = r[, 5] = 3 k = 2 :c[i, k ] + c[k, j] = = c[0, ] + c[2, 5] = 27 k = 3 :c[i, k ] + c[k, j] = = c[0, 2] + c[3, 5] = 29 c[i, j] = c[0, 5] w[0, 5] + 27 = 49 r[i, j] = r[0, 5] 2 W = C = R =

51 Požadavky ke zkoušce A -- vše C -- úspěšné hledání v RBBST (i s důkazem), -- očekávaná výška RBBST (bez důkazu), -- optimální stromy -- algoritmus + idea algoritmu. E -- úspěšné hledání v RBBST (bez důkazu), -- očekávaná výška RBBST (bez důkazu), -- optimální stromy (algoritmus).

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

Algoritmizace 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íce

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

Zá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íce

Algoritmy a datové struktury

Algoritmy a datové struktury Algoritmy a datové struktury Stromy 1 / 32 Obsah přednášky Pole a seznamy Stromy Procházení stromů Binární stromy Procházení BS Binární vyhledávací stromy 2 / 32 Pole Hledání v poli metodou půlení intervalu

Více

Stromy, haldy, prioritní fronty

Stromy, 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íce

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

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 Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní graf má stromovou šířku nejvýše k, a je-li tomu tak, také vrátí příslušný stromový rozklad. Poznamenejme, že je-li k součástí vstupu,

Více

Časová a prostorová složitost algoritmů

Č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íce

k-dimenzionálním prostoru. problém: Zkonstruovat strom, který rozděluje prostor polorovinami

k-dimenzionálním prostoru. problém: Zkonstruovat strom, který rozděluje prostor polorovinami kd-stromy (kd-trees) k čemu to je: ukládání vícerozměrných dat (k-dimenzionální data) vstup: Množina bodů (nebo složitějších geometrických objektů) v k-dimenzionálním prostoru. problém: Zkonstruovat strom,

Více

Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce)

Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce) 13. Metody vyhledávání. Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce). Asociativní vyhledávání (sekvenční, binárním půlením, interpolační, binární vyhledávací

Více

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

Dynamické programování. Optimální binární vyhledávací strom The complexity of different algorithms varies: O(n), Ω(n ), Θ(n log (n)), Dynamické programování Optimální binární vyhledávací strom Různé algoritmy mají různou složitost: O(n), Ω(n ), Θ(n log (n)), The

Více

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

Lineá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íce

Grafové algoritmy. Programovací techniky

Grafové 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íce

Grafové algoritmy. Programovací techniky

Grafové 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íce

Select sort: krok 1: krok 2: krok 3: atd. celkem porovnání. výběr nejmenšího klíče z n prvků vyžaduje 1 porovnání

Select sort: krok 1: krok 2: krok 3: atd. celkem porovnání. výběr nejmenšího klíče z n prvků vyžaduje 1 porovnání Select sort: krok 1: výběr klíče z n prvků vyžaduje 1 porovnání krok 2: výběr klíče z 1 prvků vyžaduje 2 porovnání krok 3: výběr klíče z 2 prvků vyžaduje 3 porovnání atd. celkem porovnání Zlepšení = použít

Více

bin arn ı vyhled av an ı a bst Karel Hor ak, Petr Ryˇsav y 23. bˇrezna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT

bin arn ı vyhled av an ı a bst Karel Hor ak, Petr Ryˇsav y 23. bˇrezna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT binární vyhledávání a bst Karel Horák, Petr Ryšavý 23. března 2016 Katedra počítačů, FEL, ČVUT Příklad 1 Naimplementujte binární vyhledávání. Upravte metodu BinarySearch::binarySearch. 1 Příklad 2 Mysĺım

Více

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

Lineá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íce

Stromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy

Stromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy Stromy úvod Stromy Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy Neorientovaný strom Orientovaný strom Kořenový orientovaný

Více

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

Lineární algebra : Změna báze Lineární algebra : Změna báze (13. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 8. dubna 2014, 10:47 1 2 13.1 Matice přechodu Definice 1. Nechť X = (x 1,..., x n ) a Y = (y 1,...,

Více

4 Stromy a les. Definice a základní vlastnosti stromů. Kostry grafů a jejich počet.

4 Stromy a les. Definice a základní vlastnosti stromů. Kostry grafů a jejich počet. 4 Stromy a les Jedním ze základních, a patrně nejjednodušším, typem grafů jsou takzvané stromy. Jedná se o souvislé grafy bez kružnic. Přes svou (zdánlivou) jednoduchost mají stromy bohatou strukturu a

Více

Lineární programování

Lineární programování Lineární programování Petr Tichý 19. prosince 2012 1 Outline 1 Lineární programování 2 Optimalita a dualita 3 Geometrie úlohy 4 Simplexová metoda 2 Lineární programování Lineární program (1) min f(x) za

Více

Základy algoritmizace c2005, 2007 Michal Krátký, Jiří Dvorský1/39

Základy algoritmizace c2005, 2007 Michal Krátký, Jiří Dvorský1/39 Základy algoritmizace Michal Krátký 1, Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Základy algoritmizace, 2006/2007 Základy algoritmizace c2005, 2007 Michal Krátký, Jiří Dvorský1/39

Více

Rekurentní rovnice, strukturální indukce

Rekurentní rovnice, strukturální indukce Rekurentní rovnice, strukturální indukce Jiří Velebil: A7B01MCS 26. září 2011: 1/20 Příklad (Parketáž triminy z minulé přednášky) P(n) = počet parket k vyparketování místnosti rozměru n 1 P(1) = 1. 2 P(n

Více

Datové struktury Úvod

Datové struktury Úvod Datové struktury Úvod Navrhněte co nejjednodušší datovou strukturu, která podporuje následující operace: 1. Insert a Delete v O(n), Search v O(log n); Datové struktury Úvod Navrhněte co nejjednodušší datovou

Více

Stromy. Jan Hnilica Počítačové modelování 14

Stromy. Jan Hnilica Počítačové modelování 14 Stromy Jan Hnilica Počítačové modelování 14 1 Základní pojmy strom = dynamická datová struktura, složená z vrcholů (uzlů, prvků) propojených hranami hrany chápeme jako orientované, tzn. vedou z uzlu A

Více

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru 2. Systémy lineárních rovnic V této kapitole se budeme zabývat soustavami lineárních rovnic s koeficienty z pole reálných případně komplexních čísel. Uvádíme podmínku pro existenci řešení systému lineárních

Více

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

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice Vektorové podprostory K množina reálných nebo komplexních čísel, U vektorový prostor nad K. Lineární kombinace vektorů u 1, u 2,...,u

Více

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2013/2014 Radim Farana. Obsah. Strom

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2013/2014 Radim Farana. Obsah. Strom 8 Podklady ředmětu ro akademický rok 2013/2014 Radim Farana Obsah 2 Dynamické datové struktury. Strom. Binární stromy. Vyhledávací stromy. Vyvážené stromy. AVL stromy. Strom 3 Název z analogie se stromy.

Více

Binární vyhledávací strom pomocí směrníků Miroslav Hostaša L06620

Binární vyhledávací strom pomocí směrníků Miroslav Hostaša L06620 Binární vyhledávací strom pomocí směrníků Miroslav Hostaša L06620 1. Vymezení pojmů Strom: Strom je takové uspořádání prvků - vrcholů, ve kterém lze rozeznat předchůdce - rodiče a následovníky - syny.

Více

Algoritmy I, složitost

Algoritmy 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íce

Volné stromy. Úvod do programování. Kořenové stromy a seřazené stromy. Volné stromy

Volné stromy. Úvod do programování. Kořenové stromy a seřazené stromy. Volné stromy Volné stromy Úvod do programování Souvislý, acyklický, neorientovaný graf nazýváme volným stromem (free tree). Často vynecháváme adjektivum volný, a říkáme jen, že daný graf je strom. Michal Krátký 1,Jiří

Více

PQ-stromy a rozpoznávání intervalových grafů v lineárním čase

PQ-stromy a rozpoznávání intervalových grafů v lineárním čase -stromy a rozpoznávání intervalových grafů v lineárním čase ermutace s předepsanými intervaly Označme [n] množinu {1, 2,..., n}. Mějme permutaci π = π 1, π 2,..., π n množiny [n]. Řekneme, že množina S

Více

TGH06 - Hledání nejkratší cesty

TGH06 - Hledání nejkratší cesty TGH06 - Hledání nejkratší cesty Jan Březina Technical University of Liberec 31. března 2015 Motivační problémy Silniční sít reprezentovaná grafem. Ohodnocené hrany - délky silnic. Najdi nejkratší/nejrychlejší

Více

Rekurzivní algoritmy

Rekurzivní 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íce

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

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008 Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování študenti MFF 15. augusta 2008 1 15 Základy lineárního programování Požadavky Simplexová metoda Věty o dualitě (bez důkazu)

Více

Programování 3. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015

Programování 3. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Programování 3. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Umíme z minulé hodiny Implementace zásobníku a fronty pomocí

Více

Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz

Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz (2 + 5) * (13-4) * + - 2 5 13 4 - listy stromu obsahují operandy (čísla) - vnitřní uzly obsahují operátory (znaménka)

Více

které je z různých pohledů charakterizují. Několik z nich dokážeme v této kapitole.

které je z různých pohledů charakterizují. Několik z nich dokážeme v této kapitole. Kapitola 7 Stromy Stromy jsou jednou z nejdůležitějších tříd grafů. O tom svědčí i množství vět, které je z různých pohledů charakterizují. Několik z nich dokážeme v této kapitole. Představíme také dvě

Více

10. cvičení z PST. 5. prosince T = (n 1) S2 X. (n 1) s2 x σ 2 q χ 2 (n 1) (1 α 2 ). q χ 2 (n 1) 2. 2 x. (n 1) s. x = 1 6. x i = 457.

10. cvičení z PST. 5. prosince T = (n 1) S2 X. (n 1) s2 x σ 2 q χ 2 (n 1) (1 α 2 ). q χ 2 (n 1) 2. 2 x. (n 1) s. x = 1 6. x i = 457. 0 cvičení z PST 5 prosince 208 0 (intervalový odhad pro rozptyl) Soubor (70, 84, 89, 70, 74, 70) je náhodným výběrem z normálního rozdělení N(µ, σ 2 ) Určete oboustranný symetrický 95% interval spolehlivosti

Více

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

Stromové rozklady. Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom, Stromové rozklady Zdeněk Dvořák 25. října 2017 Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom, β je funkce přiřazující každému vrcholu T podmnožinu vrcholů v G, pro každé

Více

Dijkstrův algoritmus

Dijkstrů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íce

Dynamické datové struktury IV.

Dynamické datové struktury IV. Dynamické datové struktury IV. Prioritní fronta. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra

Více

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

Matematika IV 9. týden Vytvořující funkce Matematika IV 9. týden Vytvořující funkce Jan Slovák Masarykova univerzita Fakulta informatiky jaro 2015 Obsah přednášky 1 Vytvořující funkce a Fibonacciho čísla 2 Vytvořující funkce - připomenutí 3 Řešení

Více

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

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 Euklidův algoritmus Doprovodný materiál pro cvičení Programování I. NPRM044 Autor: Markéta Popelová Datum: 31.10.2010 Euklidův algoritmus verze 1.0 Zadání: Určete největšího společného dělitele dvou zadaných

Více

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

Vyvažování a rotace v BVS, všude se předpokládá AVL strom Vyvažování a rotace v BVS, všude se předpokládá AVL strom 1. Jednoduchá levá rotace v uzlu u má operační složitost a) závislou na výšce levého podstromu uzlu u b) mezi O(1) a Θ(n) c) závislou na hloubce

Více

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2016

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2016 Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 206 Zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia

Více

Přednáška 3: Limita a spojitost

Přednáška 3: Limita a spojitost 3 / 1 / 17, 1:38 Přednáška 3: Limita a spojitost Limita funkce Nejdříve je potřeba upřesnit pojmy, které přesněji popisují (topologickou) strukturu množiny reálných čísel, a to zejména pojem okolí 31 Definice

Více

R zné algoritmy mají r znou složitost

R zné algoritmy mají r znou složitost / / zné algoritmy mají r znou složitost Dynamické programování / / Definice funkce Otázka Program f(x,y) = (x = ) (y = ) f(x, y-) + f(x-,y) (x > ) && (y > ) f(,) =? int f(int x, int y) { if ( (x == ) (y

Více

5 Rekurze a zásobník. Rekurzivní volání metody

5 Rekurze a zásobník. Rekurzivní volání metody 5 Rekurze a zásobník Při volání metody z metody main() se do zásobníku uloží aktivační záznam obsahující - parametry - návratovou adresu, tedy adresu, kde bude program pokračovat v metodě main () po skončení

Více

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

IB108 Sada 1, Příklad 1 Vypracovali: Tomáš Krajča (255676), Martin Milata (256615) IB108 Sada 1, Příklad 1 ( ) Složitost třídícího algoritmu 1/-Sort je v O n log O (n.71 ). Necht n = j i (velikost pole, které je vstupním parametrem funkce 1/-Sort). Lehce spočítáme, že velikost pole předávaná

Více

1 Polynomiální interpolace

1 Polynomiální interpolace Polynomiální interpolace. Metoda neurčitých koeficientů Příklad.. Nalezněte polynom p co nejmenšího stupně, pro který platí p() = 0, p(2) =, p( ) = 6. Řešení. Polynom hledáme metodou neurčitých koeficientů,

Více

Dynamické datové struktury III.

Dynamické 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íce

TGH07 - Chytré stromové datové struktury

TGH07 - Chytré stromové datové struktury TGH07 - Chytré stromové datové struktury Jan Březina Technical University of Liberec 1. dubna 2014 Prioritní fronta Datová struktura s operacemi: Odeber Minum (AccessMin, DeleteMin) - vrat prvek s minimálním

Více

Prioritní fronta, halda

Prioritní fronta, halda Prioritní fronta, halda Priority queue, heap Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2018 1 / 26 Prioritní fronta Halda Heap sort 2 / 26 Prioritní fronta (priority queue) Podporuje

Více

Riemannův určitý integrál

Riemannův určitý integrál Riemannův určitý integrál 1. Motivační příklad Příklad (Motivační příklad pro zavedení Riemannova integrálu). Nechť,. Vypočtěme obsah vybarvené oblasti ohraničené grafem funkce, osou a svislými přímkami

Více

10 Přednáška ze

10 Přednáška ze 10 Přednáška ze 17. 12. 2003 Věta: G = (V, E) lze nakreslit jedním uzavřeným tahem G je souvislý a má všechny stupně sudé. Důkaz G je souvislý. Necht v je libovolný vrchol v G. A mějme uzavřený eurelovský

Více

TGH06 - Hledání nejkratší cesty

TGH06 - Hledání nejkratší cesty TGH06 - Hledání nejkratší cesty Jan Březina Technical University of Liberec 26. března 2013 Motivační problémy Silniční sít reprezentovaná grafem. Najdi nejkratší/nejrychlejší cestu z místa A do místa

Více

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.

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. DMA Přednáška Rekurentní rovnice Rekurentní rovnice či rekurzivní rovnice pro posloupnost {a n } je vztah a n+1 = G(a n, a n 1,..., a n m ), n n 0 + m, kde G je nějaká funkce m + 1 proměnných. Jejím řešením

Více

1. Obyčejné diferenciální rovnice

1. Obyčejné diferenciální rovnice & 8..8 8: Josef Hekrdla obyčejné diferenciální rovnice-separace proměnných. Obyčejné diferenciální rovnice Rovnice, ve které je neznámá funkcí a v rovnici se vyskytuje spolu se svými derivacemi, se nazývá

Více

Modely Herbrandovské interpretace

Modely Herbrandovské interpretace Modely Herbrandovské interpretace Petr Štěpánek S využitím materialu Krysztofa R. Apta 2006 Logické programování 8 1 Uvedli jsme termové interpretace a termové modely pro logické programy a také nejmenší

Více

PŘEDNÁŠKA 2 POSLOUPNOSTI

PŘ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íce

Red Black strom (Red Black Tree) Úvod do programování. Rotace. Red Black strom. Rotace. Rotace

Red Black strom (Red Black Tree) Úvod do programování. Rotace. Red Black strom. Rotace. Rotace Ú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 Red Black strom je binární strom s jedním dvouhodnotovým příznakem

Více

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

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Lukáš Havrlant Univerzita Palackého 10. ledna 2014 Primární zdroj Jiří Adámek: Foundations of Coding. Strany 137 160. Na webu ke stažení, heslo:

Více

Dynamické programování

Dynamické programování 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)

Více

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

Algoritmizace složitost rekurzivních algoritmů. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 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í:

Více

Pokroč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. 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íce

Value at Risk. Karolína Maňáková

Value at Risk. Karolína Maňáková Value at Risk Karolína Maňáková Value at risk Historická metoda Model-Building přístup Lineární model variance a kovariance Metoda Monte Carlo Stress testing a Back testing Potenciální ztráta s danou pravděpodobností

Více

Paralelní grafové algoritmy

Paralelní 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íce

6 Skalární součin. u v = (u 1 v 1 ) 2 +(u 2 v 2 ) 2 +(u 3 v 3 ) 2

6 Skalární součin. u v = (u 1 v 1 ) 2 +(u 2 v 2 ) 2 +(u 3 v 3 ) 2 6 Skalární součin Skalární součin 1 je operace, která dvěma vektorům (je to tedy binární operace) přiřazuje skalár (v našem případě jde o reálné číslo, obecně se jedná o prvek nějakého tělesa T ). Dovoluje

Více

Komprese 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 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íce

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 1 / 40 regula Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague regula 1 2 3 4 5 regula 6 7 8 2 / 40 2 / 40 regula Iterační pro nelineární e Bud f reálná funkce

Více

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

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... Kapitola 1 Úvod 1.1 Značení N... přirozená čísla (1, 2, 3,...). Z... celá čísla ( 3, 2, 1, 0, 1, 2,...). Q... racionální čísla ( p, kde p Z a q N) q R... reálná čísla C... komplexní čísla 1.2 Výroky -

Více

Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A

Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A Každá úloha je hodnocena maximálně 25 body. Všechny své odpovědi zdůvodněte! 1. Postavte na stůl do řady vedle

Více

Základy matematické analýzy

Zá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íce

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

Příklad. Řešte v : takže rovnice v zadání má v tomto případě jedno řešení. Pro má rovnice tvar Řešte v : má rovnice tvar takže rovnice v zadání má v tomto případě jedno řešení. Pro má rovnice tvar takže rovnice v zadání má v tomto případě opět jedno řešení. Sjednocením obou případů dostaneme úplné

Více

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

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu http://akademie.ldf.mendelu.cz/cz (reg. č. CZ.1.07/2.2.00/28. Základy lineárního programování Vyšší matematika, Inženýrská matematika LDF MENDELU Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem

Více

Jarníkův algoritmus. Obsah. Popis

Jarníkův algoritmus. Obsah. Popis 1 z 6 28/05/2015 11:44 Jarníkův algoritmus Z Wikipedie, otevřené encyklopedie Jarníkův algoritmus (v zahraničí známý jako Primův algoritmus) je v teorii grafů algoritmus hledající minimální kostru ohodnoceného

Více

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13. Grafy doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB TUO) Grafy 104 / 309 Osnova přednášky Grafy

Více

8 Kořeny cyklických kódů, BCH-kódy

8 Kořeny cyklických kódů, BCH-kódy 24 8 Kořeny cyklických kódů, BCH-kódy Generující kořeny cyklických kódů Nechť K je cyklický kód délky n nad Z p s generujícím polynomem g(z). Chceme najít rozšíření T tělesa Z p, tedy nějaké těleso GF

Více

p 2 q , tj. 2q 2 = p 2. Tedy p 2 je sudé číslo, což ale znamená, že

p 2 q , tj. 2q 2 = p 2. Tedy p 2 je sudé číslo, což ale znamená, že KAPITOLA 1: Reálná čísla [MA1-18:P1.1] 1.1. Číselné množiny Přirozená čísla... N = {1,, 3,...} nula... 0, N 0 = {0, 1,, 3,...} = N {0} Celá čísla... Z = {0, 1, 1,,, 3,...} Racionální čísla... { p } Q =

Více

AVL stromy. pro každý uzel u stromu platí, že rozdíl mezi výškou jeho levého a pravého podstromu je nejvýše 1 stromy jsou samovyvažující

AVL stromy. pro každý uzel u stromu platí, že rozdíl mezi výškou jeho levého a pravého podstromu je nejvýše 1 stromy jsou samovyvažující Stromy 2 AVL AVL stromy jména tvůrců stromů: dva Rusové Adelson-Velskii, Landis vyvážené binární stromy pro každý uzel u stromu platí, že rozdíl mezi výškou jeho levého a pravého podstromu je nejvýše 1

Více

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

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21. Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky

Více

Návrh Designu: Radek Mařík

Ná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íce

7. Analýza rozptylu.

7. Analýza rozptylu. 7. Analýza rozptylu. Uvedeme obecnou ideu, která je založena na minimalizaci chyby metodou nejmenších čtverců. Nejdříve uvedeme několik základních tvrzení. Uvažujeme náhodný vektor Y = (Y, Y,..., Y n a

Více

Dynamické programování

Dynamické 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íce

ALS1 Přednáška 1. Pravěpodobnost, náhodná proměnná, očekávaná hodnota náhodné proměnné, harmonická čísla

ALS1 Přednáška 1. Pravěpodobnost, náhodná proměnná, očekávaná hodnota náhodné proměnné, harmonická čísla ALS Přednáška Pravěpodobnost, náhodná proměnná, očekávaná hodnota náhodné proměnné, harmonická čísla Prostor elementárních jevů S je množina, jejíž prvky se nazývají elementární jev. Jev je podmnožina

Více

NPRG030 Programování I, 2018/19 1 / :03:07

NPRG030 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íce

1 Linearní prostory nad komplexními čísly

1 Linearní prostory nad komplexními čísly 1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)

Více

8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice

8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice 9. Lineární diferenciální rovnice 2. řádu Cíle Diferenciální rovnice, v nichž hledaná funkce vystupuje ve druhé či vyšší derivaci, nazýváme diferenciálními rovnicemi druhého a vyššího řádu. Analogicky

Více

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

LDF MENDELU. Simona Fišnarová (MENDELU) Základy lineárního programování VMAT, IMT 1 / 25 Základy lineárního programování Vyšší matematika, Inženýrská matematika LDF MENDELU Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem

Více

TGH05 - aplikace DFS, průchod do šířky

TGH05 - aplikace DFS, průchod do šířky TGH05 - aplikace DFS, průchod do šířky Jan Březina Technical University of Liberec 31. března 2015 Grafová formulace CPM (critical path method) Orientovaný acyklický graf (DAG) je orientovaný graf neobsahující

Více

NEJKRATŠÍ 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 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íce

Stromy. Jan Kybic.

Stromy. Jan Kybic. Stromy Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 1 / 44 Stromy Binární vyhledávací stromy Množiny a mapy 2 / 44 Strom (Tree) Strom skládá se s uzlů (nodes) spojených hranami (edges).

Více

To je samozřejmě základní pojem konvergence, ale v mnoha případech je příliš obecný a nestačí na dokazování některých užitečných tvrzení.

To je samozřejmě základní pojem konvergence, ale v mnoha případech je příliš obecný a nestačí na dokazování některých užitečných tvrzení. STEJNOMĚRNÁ KONVERGENCE Zatím nebylo v těchto textech věnováno příliš pozornosti konvergenci funkcí, at jako limita posloupnosti nebo součet řady. Jinak byla posloupnosti funkcí nebo řady brána jako. To

Více

Greenova funkce pro dvoubodové okrajové úlohy pro obyčejné diferenciální rovnice

Greenova funkce pro dvoubodové okrajové úlohy pro obyčejné diferenciální rovnice Greenova funkce pro dvoubodové okrajové úlohy pro obyčejné diferenciální rovnice Jan Tomeček Tento stručný text si klade za cíl co nejrychlejší uvedení do teorie Greenových funkcí pro obyčejné diferenciální

Více

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

Anotace. Informace o praktiku z programování!!! Direktivy překladače Soubory (textové) Quicksort Metoda rozděl a panuj Anotace Informace o praktiku z programování!!! Direktivy překladače Soubory (textové) Quicksort Metoda rozděl a panuj Direktivy překladače Překladač kontroluje plno věcí, například: zda nekoukáme za konec

Více

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)

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) 1. Lineární diferenciální rovnice řádu n [MA1-18:P1.7] rovnice typu y n) + p n 1 )y n 1) +... + p 1 )y + p 0 )y = q) 6) počáteční podmínky: y 0 ) = y 0 y 0 ) = y 1 y n 1) 0 ) = y n 1. 7) Věta 1.3 : Necht

Více

Algoritmy na ohodnoceném grafu

Algoritmy na ohodnoceném grafu Algoritmy na ohodnoceném grafu Dvě základní optimalizační úlohy: Jak najít nejkratší cestu mezi dvěma vrcholy? Dijkstrův algoritmus s t Jak najít minimální kostru grafu? Jarníkův a Kruskalův algoritmus

Více

Matematika 2 Úvod ZS09. KMA, PřF UP Olomouc. Jiří Fišer (KMA, PřF UP Olomouc) KMA MA2AA ZS09 1 / 25

Matematika 2 Úvod ZS09. KMA, PřF UP Olomouc. Jiří Fišer (KMA, PřF UP Olomouc) KMA MA2AA ZS09 1 / 25 Matematika 2 Úvod Jiří Fišer KMA, PřF UP Olomouc ZS09 Jiří Fišer (KMA, PřF UP Olomouc) KMA MA2AA ZS09 1 / 25 Studijní materiály web předmětu: aix-slx.upol.cz/ fiser St. Trávníček: Matematická analýza kag.upol.cz/travnicek/1-matan.

Více

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

Algoritmická matematika 3 Mgr. Petr Osička, Ph.D. ZS 2014. Rozděl a panuj Algoritmická matematika 3 KMI/ALM3 Mgr. Petr Osička, Ph.D. ZS 2014 1 Základní princip Rozděl a panuj Technika rozděl a panuj je založená na následující myšlence. Z dané vstupní instance I vygenerujeme

Více

Dynamicky vázané metody. Pozdní vazba, virtuální metody

Dynamicky vázané metody. Pozdní vazba, virtuální metody Dynamicky vázané metody Pozdní vazba, virtuální metody Motivace... class TBod protected: float x,y; public: int vrat_pocet_bodu() return 1; ; od třídy TBod odvodíme: class TUsecka: public TBod protected:

Více

Kapitola 11. Vzdálenost v grafech. 11.1 Matice sousednosti a počty sledů

Kapitola 11. Vzdálenost v grafech. 11.1 Matice sousednosti a počty sledů Kapitola 11 Vzdálenost v grafech V každém grafu lze přirozeným způsobem definovat vzdálenost libovolné dvojice vrcholů. Hlavním výsledkem této kapitoly je překvapivé tvrzení, podle kterého lze vzdálenosti

Více