Binární vyhledávací stromy pokročilé partie
|
|
- Antonín Bařtipán
- před 7 lety
- Počet zobrazení:
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
Dynamické programování Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Rozděl a panuj (divide-and-conquer) Rozděl (Divide): Rozděl problém na několik podproblémů tak, aby tyto podproblémy odpovídaly původnímu
VíceZákladní datové struktury III: Stromy, haldy
Základní datové struktury III: Stromy, haldy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní
VíceAlgoritmy 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íceStromy, haldy, prioritní fronty
Stromy, haldy, prioritní fronty prof. Ing. Pavel Tvrdík CSc. Katedra počítačů FEL České vysoké učení technické DSA, ZS 2008/9, Přednáška 6 http://service.felk.cvut.cz/courses/x36dsa/ prof. Pavel Tvrdík
VíceUkáž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ů 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ícek-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íceAdresní 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íceDynamické 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íceLineární algebra : Násobení matic a inverzní matice
Lineární algebra : Násobení matic a inverzní matice (8. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 17. března 2014, 12:42 1 2 0.1 Násobení matic Definice 1. Buďte m, n, p N, A
VíceGrafové algoritmy. Programovací techniky
Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být
VíceGrafové algoritmy. Programovací techniky
Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být
VíceSelect 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ícebin 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íceLineární algebra : Násobení matic a inverzní matice
Lineární algebra : Násobení matic a inverzní matice (8. přednáška) František Štampach, Karel Klouda frantisek.stampach@fit.cvut.cz, karel.klouda@fit.cvut.cz Katedra aplikované matematiky Fakulta informačních
VíceStromy. 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íceLineá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íce4 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íceLineá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íceZá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íceRekurentní 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íceDatové 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íceStromy. 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íceNecht 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íceVektorové 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íceAplikovaná 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íceBiná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íceAlgoritmy I, složitost
A0B36PRI - PROGRAMOVÁNÍ Algoritmy I, složitost České vysoké učení technické Fakulta elektrotechnická v 1.01 Rychlost... Jeden algoritmus (program, postup, metoda ) je rychlejší než druhý. Co ta věta znamená??
VíceVolné 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ícePQ-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íceTGH06 - 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íceRekurzivní algoritmy
Rekurzivní algoritmy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA) ZS
VíceUč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íceProgramová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íceReprezentace 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ícekteré 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íce10. 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íceStromové 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íceDijkstrův algoritmus
Dijkstrův algoritmus Hledání nejkratší cesty v nezáporně hranově ohodnoceném grafu Necht je dán orientovaný graf G = (V, H) a funkce, která každé hraně h = (u, v) H přiřadí nezáporné reálné číslo označované
VíceDynamické 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íceMatematika 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íceV 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íceVyvaž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íceZadá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ícePř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íceR 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íce5 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íceIB108 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íce1 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íceDynamické datové struktury III.
Dynamické datové struktury III. Halda. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované
VíceTGH07 - 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ícePrioritní 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íceRiemannů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íce10 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íceTGH06 - 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íceDMA 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íce1. 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íceModely 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ícePŘEDNÁŠKA 2 POSLOUPNOSTI
PŘEDNÁŠKA 2 POSLOUPNOSTI 2.1 Zobrazení 2 Definice 1. Uvažujme libovolné neprázdné množiny A, B. Zobrazení množiny A do množiny B je definováno jako množina F uspořádaných dvojic (x, y A B, kde ke každému
VíceRed 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íceTeorie 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íceDynamické 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íceAlgoritmizace 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ícePokročilé haldy. prof. Ing. Pavel Tvrdík CSc. Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010
Pokročilé haldy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (I-EFA) ZS 2010/11,
VíceValue 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íceParalelní grafové algoritmy
Paralelní grafové algoritmy Značení Minimální kostra grafu Nejkratší cesta z jednoho uzlu Nejkratší cesta mezi všemi dvojicemi uzlů Použité značení Definition Bud G = (V, E) graf. Pro libovolný uzel u
Více6 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íceKomprese dat. Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI. přednášky
Komprese dat Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI přednášky Statistické metody Jan Outrata (Univerzita Palackého v Olomouci) Komprese dat Olomouc, únor březen 2016 1 / 23 Tunstallův
VíceFaculty 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íceKapitola 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íceInformatika 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íceZáklady matematické analýzy
Základy matematické analýzy Spojitost funkce Ing. Tomáš Kalvoda, Ph.D. 1, Ing. Daniel Vašata 2 1 tomas.kalvoda@fit.cvut.cz 2 daniel.vasata@fit.cvut.cz Katedra aplikované matematiky Fakulta informačních
VícePří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ícefakulty 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íceJarní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íceGrafy. 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íce8 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ícep 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íceAVL 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íceVyhledá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íceNávrh Designu: Radek Mařík
1. 7. Najděte nejdelší rostoucí podposloupnost dané posloupnosti. Použijte metodu dynamického programování, napište tabulku průběžných délek částečných výsledků a tabulku předchůdců. a) 5 8 11 13 9 4 1
Více7. 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íceDynamické programování
ALG 11 Dynamické programování Úloha batohu neomezená Úloha batohu /1 Úloha batohu / Knapsack problem Máme N předmětů, každý s váhou Vi a cenou Ci (i = 1, 2,..., N) a batoh s kapacitou váhy K. Máme naložit
VíceALS1 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íceNPRG030 Programování I, 2018/19 1 / :03:07
NPRG030 Programování I, 2018/19 1 / 20 3. 12. 2018 09:03:07 Vnitřní třídění Zadání: Uspořádejte pole délky N podle hodnot prvků Měřítko efektivity: * počet porovnání * počet přesunů NPRG030 Programování
Více1 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íce8.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íceLDF 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íceTGH05 - 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íceNEJKRATŠÍ CESTY I. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze
NEJKRATŠÍ CESTY I Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2010/2011, Lekce 7 Evropský sociální fond Praha & EU: Investujeme do vaší
VíceStromy. 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íceTo 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íceGreenova 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íceAnotace. 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íceVě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íceAlgoritmy 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íceMatematika 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íceAlgoritmická 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íceDynamicky 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íceKapitola 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