Rzné algoritmy mají rznou složitost

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

Download "Rzné algoritmy mají rznou složitost"

Transkript

1 X36DSA 25 / 3 DSA Rzné algoritmy mají rznou složitost

2 X36DSA 25 2 / 3 DSA The complexity of different algorithms varies

3 X36DSA 25 3 / 3 Abeceda Jazyk Abeceda konená (neprázdná) množina symbol A mohutnost abecedy A Píklady: A = { A, D, G, O, U }, A = 5 A = {,}, A = 2 A = {,, }, A = 3 Slovo Slovo (nad abecedou A) konená (píp. prázdná) také etzec posloupnost symbol abecedy (A) w délka slova w Píklady: w = OUAGADOUGOU, w = w =, w = 4 w =, w = 5

4 X36DSA 25 4 / 3 Jazyk Jazyk Jazyk množina slov (=etzc) (ne nutn konená, mže být prázdná) L mohutnost jazyka L Specifikace jazyka -- Výtem všech slov jazyka (jen pro konený jazyk) Píklady: A = { A, D, G, O, U } L = {ADA, DOG, GOUDA, D, GAG}, L = 5 A 2 = {,} L 2 = {,,,,, }, L 2 = 6 A 3 = {,, } L 3 = {,, }, L 2 = 3

5 X36DSA 25 5 / 3 Jazyk 2 Specifikace jazyka -- Volný (ale jednoznaný) popis v pirozeném jazyce (obvykle pro nekonený jazyk) Píklady: A = { A, D, G, O, U } L : Množina všech slov nad A, která zaínají na DA, koní na G a neobsahují podposloupnost AA. L = {DAG, DADG, DAGG, DAOG, DAUG, DADAG, DADDG } L = A 2 = {,} L 2 : Množina všech slov nad A 2, která obsahují více než a za každou jsou alespo dv. L 2 = {,,,,,,,,, } L 2 =

6 X36DSA 25 6 / 3 Konený automat 3 Specifikace jazyka -- koneným automatem Konený automat (finite automaton) je ptice (A, Q,, S, Q F ), kde: A Q S Q F abeceda konená množina symbol A... mohutnost abecedy... množina stav (mnohdy oíslovaných) (co je to stav?)... pechodová funkce... : Q A Q... poátení stav S Q neprázdná množina koncových stav Q F Q

7 X36DSA 25 7 / 3 Konený automat Automat FA: A Q S Q F abeceda {,}, A = 2... množina stav {S, A, B, C, D }... pechodová funkce... : Q A Q : { (S,) = S, (A,) = B, (B,) = C, (C,) = C, (D,) = D, (S,) = A, (A,) = D, (B,) = D, (C,) = A, (D,) = D }... poátení stav S Q neprázdná množina koncových stav { C } Q Pechodový diagram automatu FA S A B C FA D,

8 X36DSA 25 8 / 3 Konený automat FA S A B C D, FA S A B C D,

9 X36DSA 25 9 / 3 Konený automat FA S A B C D, FA S A B C D,

10 X36DSA 25 / 3 Konený automat FA S A B C D, FA S A B C D,

11 X36DSA 25 / 3 Konený automat FA S A B C D, Po petení posledního symbolu je automat FA v koncovém stavu Slovo je pijímáno automatem FA

12 X36DSA 25 2 / 3 Konený automat FA S A B C D, FA S A B C D,

13 X36DSA 25 3 / 3 Konený automat FA S A B C D, FA S A B C D,

14 X36DSA 25 4 / 3 Konený automat FA S A B C D, FA S A B C FA D,

15 X36DSA 25 5 / 3 Konený automat FA S A B C D, Po petení posledního symbolu je automat FA ve stavu, který není koncový Slovo není pijímáno automatem FA

16 X36DSA 25 6 / 3 Konený automat FA... S A B C D, FA... S A B C D,

17 X36DSA 25 7 / 3 Konený automat FA... S A B C D, FA... S A B C D,

18 X36DSA 25 8 / 3 Konený automat FA... S A B C D, Žádné slovo zaínající Žádné slovo obsahující Žádné slovo obsahující není pijímáno automatem FA není pijímáno automatem FA není pijímáno automatem FA Automat FA pijímá pouze slova -- obsahující alespo jednu jedniku -- obsahující za každou jednikou alespo dv nuly Jazyk píjímaný automatem = množina všech slov pijímaných automatem

19 X36DSA 25 9 / 3 Konený automat innost automatu: Na zaátku je automat ve startovním stavu. Pak te zadané slovo znak po znaku a pechází do dalších stav podle pechodové funkce. Když dote slovo, nachází se opt v nkterém ze svých stav. Pokud je v koncovém stavu, ekneme, že dané slovo pijímá, pokud není v koncovém stavu, ekneme, že dané slovo nepijímá. Všechna slova pijímaná automatem tvoí dohromady jazyk pijímaný (rozpoznávaný) automatem

20 X36DSA 25 2 / 3 Konený automat Jazyk nad abecedou {,} : Pokud slovo zaíná, koní, pokud slovo zaíná, koní. S A C B D Automat FA2 Ukázka analýzy slov automatem FA2: : (S), (A), (B), (A), (B), (A) (A) není koncový stav, slovo automat FA2 nepijímá. : (S),(C),(D),(C), (C), (D) (D) je koncový stav, slovo automat FA2 pijímá.

21 X36DSA 25 2 / 3 Konený automat Jazyk: {,,,,,... } S A B D,, C Automat FA3 Ukázka analýzy slov automatem FA3 : (S), (A), (B), (C), (D), (D) (D) není koncový stav, slovo automat FA3 nepijímá. : (S), (A), (B),(B), (B), (C) (C) je koncový stav, slovo automat FA3 pijímá.

22 X36DSA / 3 Konený automat, S A B C Automat FA4 Automat FA4 píjme každé slovo nad abecedou {,} obsahující podposloupnost Ukázka analýzy slov automatem FA4 : (S), (A),(A),(B),(C),(C) (C) je koncový stav, slovo automat FA4 pijímá. : (S), (A), (B),(S), (S), (A) (A) není koncový stav, slovo automat FA4 nepijímá.

23 X36DSA 25 Konený automat 23 / 3 Jazyk nad abecedou { +, -,.,,,, 8, 9, } jehož slova pedstavují zápis desetinného ísla v desítkové soustav,,...,9,,...,9 +,-,,...,9.,,..., ,,...,9 jinak jinak jinak jinak jinak 5 jakýkoli symbol Automat FA5 Ukázka analýzy slov +87.9: (),+ (),8 (2),7 (2),. (3), (4),9 (4) (4) je koncový stav, slovo automat pijímá. 76+2: (),7 (2),6 (2),+ (5),2 (5) (5) není koncový stav, slovo 76+2 automat nepijímá.

24 X36DSA / 3 Implementace koneného automatu +,-. 2 jinak,,...,9,,...,9,,...,9,,...,9 jinak jinak jinak 5 3 jakýkoli symbol jinak 4,,...,9 FA5 Kód koneného automatu (tená posloupnost znak je uložena v poli arr[ ]): int isdecimal(int arr[], int length) { int i; int state = ; for(i = ; i < length; i++) { // check each symbol switch (state) {...

25 X36DSA / 3 Implementace koneného automatu +,-. 2 jinak,,...,9,,...,9,,...,9,,...,9 jinak jinak jinak 5 3 jakýkoli symbol jinak 4,,...,9 FA5 case : if ((arr[i] == '+') (arr[i] == '-')) state = ; else if ((arr[i] >= '') && (arr[i] <= '9')) state = 2; else state = 5; break;

26 X36DSA / 3 Implementace koneného automatu +,-. 2 jinak,,...,9,,...,9,,...,9,,...,9 jinak jinak jinak 5 3 jakýkoli symbol jinak 4,,...,9 FA5 case : if ((arr[i] >= '') && (arr[i] <= '9')) state = 2; else state = 5; break;

27 X36DSA / 3 Implementace koneného automatu +,-. 2 jinak,,...,9,,...,9,,...,9,,...,9 jinak jinak jinak 5 3 jakýkoli symbol jinak 4,,...,9 FA5 case 2: if ((arr[i] >= '') && (arr[i] <= '9')) state = 2; else if (arr[i] == '.') state = 3; else state = 5; break;

28 X36DSA / 3 Implementace koneného automatu,,...,9,,...,9,,...,9,,...,9 +,-. 2 jinak jinak jinak jinak 5 3 jakýkoli symbol jinak 4,,...,9 FA5 3 case 3: if ((arr[i] >= '') && (arr[i] <= '9')) state = 4; else state = 5; break; 4 case 4: if ((arr[i] >= '') && (arr[i] <= '9')) state = 4; else state = 5; break; 5 case 5: break; // no need to react anyhow default : break; } // end of switch

29 X36DSA / 3 Implementace koneného automatu +,-. 2 jinak,,...,9,,...,9,,...,9,,...,9 jinak jinak jinak 5 3 jakýkoli symbol jinak 4,,...,9 FA5 } // end of for loop -- word has been read 2 4 if ((state == 2) (state == 4)) // final states!! return ; // success - decimal OK else return ; // not a decimal } // end of function isdecimal()

30 X36DSA 25 3 / 3 Složitost rekurzivních algoritm Metoda stromu rekurze substituní mistrovská

31 X36DSA 25 3 / 3 Složitost rekurzivních algoritm T(n) -- asymptotická složitost algoritmu pi vstupu o velikosti n P.: Merge sort Asymptotická složitost vyešení triviální úlohy T(n) = Θ() pro n = 2T(n/2) + Θ(n) pro n > Jak asymptotická složitost pi vstupu o velikosti n závisí na asymptotické složitosti pi vstupu o velikosti n/2 Složitost rozdlení problému a spojení dílích ešení (polovin pole v Merge sortu)

32 X36DSA / 3 Složitost rekurzivních algoritm Co lze zanedbat! typickou hodnotu n si vhodn zvolíme (v Merge sortu mocninu 2)! konkrétní konstanta neovlivní výslednou asymptotickou složitost T(n) = Θ() pro n = 2T(n/2) + Θ(n) pro n >! n/2 a obecn n/konst není celé íslo, mysleme si však, že (vícemén) je, a použijme jej místo správného n/2i n/2 apod.

33 X36DSA / 3 Pro algoritmus A platí Složitost rekurzivních algoritm Píklad T(n) = Θ() pro n = 3T(n/4) + Θ(n 2 ) pro n > Rozdlí data na tvrtiny. Vyešení tvrtinové úlohy trvá T(n/4). Jedna tvrtina se nezpracovává 3 se zpracují v ase 3T(n/4). as potebný na rozdlení na tvrtiny a na spojení tvrtinových úloh je Θ(n 2 ).

34 X36DSA / 3 Složitost rekurzivních algoritm Píklad T(n) = Θ() pro n = 3T(n/4) + Θ(n 2 ) pro n > Vztah pro výpoet T(n) = 3T(n/4) + c n 2

35 X36DSA / 3 Strom rekurze T(n) = 3T(n/4) + c n 2 c n 2 as na dlení problému na dílí problémy a pak spojení dílích ešení T (n/4) T (n/4) T (n/4) as na vyešení jednoho dílího problému Strom rekurze je ale vtší...

36 X36DSA / 3 Strom rekurze T(n) = 3T(n/4) + c n 2 c n 2 Strom rekurze c (n/4) 2 c (n/4) 2 c (n/4) 2 n 6 2 c ( ) n 6 2 c ( ) n 6 2 c ( ) n 6 2 c ( ) n 6 2 c ( 2 ) c ( ) n 6 2 c ( ) n 6 2 c ( ) T() T() T() T() T() T() T()

37 X36DSA / 3 Strom rekurze Prbh výpotu. Nakresli strom rekurze 2. Spoti jeho hloubku 3. Spoti jeho šíku v pate k 4. Spoti cenu uzlu v pate k 5. Seti ceny uzl v pate k 6. Seti ceny všech pater k cena uzlu = asymptotická složitost zpracování podproblému odpovídajícího uzlu ve stromu rekurze. cena stromu = asymptotická složitost zpracování celé úlohy.

38 X36DSA / 3 Strom rekurze Prbh výpotu T(n) = 3T(n/4) + c n 2. Nakresli strom rekurze 2. Spoti jeho hloubku... k V hloubce k je velikost podproblému = n/4 k. Velikost podproblému je tedy =, když n/4 k =, tj k = log 4 (n). Takže strom má log(4) + pater.

39 X36DSA / 3 Strom rekurze T(n) = 3T(n/4) + c n 2 Prbh výpotu Spoti jeho šíku v pate k... k. patro uzel. patro 3 uzly 2. patro 3 3 = 9 uzl 3. patro = 27 uzl... k. patro = 3 k uzl

40 X36DSA 25 4 / 3 Strom rekurze T(n) = 3T(n/4) + c n 2 Prbh výpotu Spoti cenu uzlu v pate k... k. patro c n 2. patro c (n/4) 2 2. patro c (n/6) 2 3. patro c (n/64) 2... k. patro c (n/4 k ) 2

41 X36DSA 25 4 / 3 Strom rekurze T(n) = 3T(n/4) + c n 2 Prbh výpotu Seti ceny uzl v pate k... V pate k je 3 k uzl, každý má cenu c (n/4 k ) 2. k Celková cena patra k je 3 k c (n/4 k ) 2 = (3/6) k c n 2 Pozor na poslední patro:

42 X36DSA / 3 Strom rekurze T(n) = 3T(n/4) + c n 2 Prbh výpotu Seti ceny uzl v pate k... Poslední patro je v hloubce log 4 (n) a má tedy k 3 log (n) = n log (3) uzl. 4 4 Každý pispívá konstantní cenou, takže cena posledního patra je n log (3) konst = Θ(n log (3) ) 4 4

43 X36DSA / 3 Strom rekurze Prbh výpotu Seti ceny všech pater T(n) = 3T(n/4) + c n 2 Celková cena = cn 2 + 3/6 cn 2 + (3/6) 2 cn (3/6) log (n ) cn 2 + Θ (n log (3) 4 ) 4 = ( + 3/6 + (3/6) (3/6) log (n ) ) cn 2 + Θ (n log (3) ) 4 4 = Geometrickou posloupnost nahradíme pibližn geometrickou adou (zbytek ady je zanedbatelný). Získáváme horní odhad soutu. ( + 3/6 + (3/6) 2 + (3/6) ad inf. ) cn 2 + Θ (n log 4(3) ) = ( / ( 3/6) ) cn 2 + Θ (n log 4(3) ) = 6/3 cn 2 + Θ (n log 4 (3) ) =

44 X36DSA / 3 Strom rekurze Prbh výpotu Seti ceny všech pater T(n) = 3T(n/4) + c n 2 k 2 > log 4 (3) 6/3 cn 2 + Θ (n log 4 (3) ) = Θ (n 2 ) Asymptotická složitost celého algoritmu A.

45 X36DSA / 3 Substituní metoda Píklad Rekurentní vztah popisující asymptotickou složitost algoritmu B Náš odhad složitosti T(n) = 2T(n/2) + n T(n) = O(n log 2 (n)) Zdroj odhadu: zkušenost, podobnost s jinými úlohami úvaha, intuice... :-) Chceme dokázat: Náš odhad platí Metoda: Bžná matematická indukce, do níž dosadíme (substituujeme) daný rekurentní vztah

46 X36DSA / 3 Substituní metoda Chceme dokázat : T(n) = O(n log 2 (n)), to jest : T(n) c n log 2 (n), pro vhodné c > Krok II (obecný krok) matematické indukce: Dokážeme, že pokud nerovnost platí pro n/2, platí i pro n. Víme: Pedpokládáme: T(n) = 2T(n/2) + n T(n/2) c n/2 log 2 (n/2) Substituce: úpravy: T(n) 2 c n/2 log 2 (n/2) + n cn log 2 (n/2) + n = cn log 2 (n) cn log 2 (2) +n = cn log 2 (n) cn +n cn log 2 (n), pokud c

47 X36DSA / 3 Substituní metoda Krok I matematické indukce: nerovnost T(n) c n log 2 (n), platí pro njaké konkrétní malé n. Nelze dokazovat pro n =, nebo bychom dokazovali T() c log 2 () =, což neplatí, protože jist je T() >. Pozorování T(n) = 2T(n/2) + n Pokud n > 3, v rekurentním vztahu se T() neobjeví, tedy pokud dokážeme indukní krok I pro n = 2 a n = 3, je dkaz hotov pro všechna n 2. Jde nám ale o asymptotickou složitost, tudíž dkaz pro n 2 staí.

48 X36DSA / 3 Substituní metoda Krok I matematické indukce pro n = 2 a n = 3 A T() = k. T(n) = 2T(n/2) + n Z rekurentního vztahu plyne T(2) = 2k+2 T(3) = 2k+3 Chceme mít: T(2) c 2 log 2 (2) T(3) c 3 log 2 (3) Staí tedy volit c max { (2k+2)/2, (2k+3)/(3 log 2 (3)) }.

49 X36DSA / 3 Mistrovská metoda Pímoará aplikace vty: Nech a a b > jsou konstanty, f(n) je funkce a nech asymptotická složitost daného algoritmu je definována rekurentním vztahem T(n) = at(n/b) + f(n), kde podíl n/b lze libovoln interpretovat jako n/b nebo n/b. Potom platí. Pokud f(n) = O(n log (a) e b ) pro njakou konstantu e >, pak T(n) = Θ(n log (a) ). // // b Podmínka. íká, že f(n) musí rst polynomiáln pomaleji než funkce n log (a). b

50 X36DSA 25 5 / 3 Mistrovská metoda 2. Pokud f(n) = Θ(n log (a) ), pak T(n) = Θ(n log (a) b b ). 3. Pokud f(n) = Ω(n log b (a) +e ) pro njakou konstantu e >, a pokud a f(n/b) c f(n) pro pro njaké c < a pro všechna dostaten velká n, pak T(n) = Θ(f(n)). // // Podmínka 3. íká, že f(n) musí rst polynomiáln rychleji než funkce n log (a). b

51 X36DSA 25 5 / 3 Mistrovská metoda.... Pokud f(n) = O(n log (a) e b ) pro njakou konstantu e >, pak T(n) = Θ(n log (a) b ).... Píklad. T(n) = 9T(n/3) + n a = 9, b = 3, f(n) = n. Platí n log (a) n log (9) b = 3 = Θ(n 2 ) f(n) = O(n log (9) e ), kde e = 3 Celkem tedy T(n)= Θ(n 2 )

52 X36DSA / 3 Mistrovská metoda Pokud f(n) = Ω(n log b (a) +e ) pro njakou konstantu e >, a pokud a f(n/b) c f(n) pro pro njaké c < a pro všechna dostaten velká n, pak T(n) = Θ(f(n)). Píklad. T(n) = 2T(n/2) + n log 2 (n) a = 2, b = 2, f(n) = n log 2 (n). Platí = n n log (a) b f(n) = n log 2 (n) roste asymptoticky rychleji než n log (a) b = n. Pozor, neroste ale polynomiáln rychleji. Pomr n log 2 (n) / n = log 2 (n) roste pomaleji než každá rostoucí polynomiální funkce. n log2(n) Ω(n+e) pro každé kladné e. Pedpoklad 3. není splnn.

53 X36DSA / 3 DSA Rzné algoritmy mají rznou složitost

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

Složitost algoritmů. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol. Složitost algoritmů Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol., 2017 Datové struktury a algoritmy, B6B36DSA 02/2017, Lekce 3

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

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

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

Zdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2.

Zdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2. 1 3 4 5 6 7 8 9 10 11 1 13 14 15 16 17 18 19 0 1 3 4 5 6 7 8 9 30 31 3 Zdůvodněte, proč funkce f(n) = n log(n) 1 n 1/ roste rychleji než funkce g(n) = n. Zdůvodněte, proč funkce f(n) = n 3/ log(n) roste

Více

COMPLEXITY

COMPLEXITY Níže uvedené úlohy představují přehled otázek, které se vyskytly v tomto nebo v minulých semestrech ve cvičení nebo v minulých semestrech u zkoušky. Mezi otázkami semestrovými a zkouškovými není žádný

Více

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

Mimo samotné správnosti výsledku vypočteného zapsaným algoritmem je ještě jedno 12 Délka výpočtu algoritmu Mimo samotné správnosti výsledku vypočteného zapsaným algoritmem je ještě jedno neméně důležité hledisko k posouzení vhodnosti algoritmu k řešení zadané úlohy. Jedná se o čas,

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

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

Doba běhu daného algoritmu/programu. 1. Který fragment programu z následujících dvou proběhne rychleji? 1 Doba běhu daného algoritmu/programu 1. Který fragment programu z následujících dvou proběhne rychleji? int n = 100; int sum = 0; for (i = 0; i < n; i++) for (j = 0; j < i; j++) sum += i+j; int n = 75;

Více

TGH05 - Problém za milion dolarů.

TGH05 - Problém za milion dolarů. TGH05 - Problém za milion dolarů. Jan Březina Technical University of Liberec 20. března 2012 Časová složitost algoritmu Závislost doby běhu programu T na velikosti vstupních dat n. O(n) notace, standardní

Více

Každý datový objekt Pythonu má minimáln ti vlastnosti. Identitu, datový typ a hodnotu.

Každý datový objekt Pythonu má minimáln ti vlastnosti. Identitu, datový typ a hodnotu. Datový objekt [citováno z http://wraith.iglu.cz/python/index.php] Každý datový objekt Pythonu má minimáln ti vlastnosti. Identitu, datový typ a hodnotu. Identita Identita datového objektu je jedinený a

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

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

Různé algoritmy mají různou složitost / 1 Různé algoritmy mají různou složitost 1/ 1 Rychlost... Jeden algoritmus (program, postup, metoda ) je rychlejší než druhý. Co ta věta znamená?? 2/ 1 Asymptotická složitost y y x x Každému algoritmu

Více

Cykly Intermezzo. FOR cyklus

Cykly Intermezzo. FOR cyklus Cykly Intermezzo Rozhodl jsem se zaadit do série nkolika lánk o základech programování v Delphi/Pascalu malou vsuvku, která nám pomže pochopit principy a zásady pi používání tzv. cykl. Mnoho ástí i jednoduchých

Více

Časová složitost / Time complexity

Časová složitost / Time complexity Časová složitost / Time complexity Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2018 1 / 24 Složitost algoritmů Algorithm complexity Časová a paměťová složitost Trvání výpočtu v závislosti

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

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

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

Algoritmizace. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Úvod stránky předmětu: https://cw.felk.cvut.cz/doku.php/courses/a4b33alg/start cíle předmětu Cílem je schopnost samostatné implementace různých variant základních

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

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

Č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

R O V N O B Ž N Í K (2 HODINY)

R O V N O B Ž N Í K (2 HODINY) R O V N O B Ž N Í K (2 HODINY)? Co to vlastn rovnobžník je? Na obrázku je dopravní znaka, která íká, že vzdálenost k železninímu pejezdu je 1 m (dva pruhy, jeden pruh pedstavuje vzdálenost 80 m): Pozorn

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

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

KMI/ALM3 Mgr. Petr Osička, Ph.D. ZS ANO je slovo 1 a kódováním NE je slovo 0, pak je problém popsán pomocí dvojice L, R takové, že: Algoritmická matematika 3 KMI/ALM3 Mgr. Petr Osička, Ph.D. ZS 2014 Algoritmický problém Přednáška 1 Definice 1. Abeceda Σ je konečná neprázdná množina. Prvkům Σ říkáme symboly. Slovo (řetězec) nad abecedou

Více

Příklad 1/23. Pro rostoucí spojité fukce f(x), g(x) platí f(x) Ω(g(x)). Z toho plyne, že: a) f(x) Ο(g(x)) b) f(x) Θ(g(x)) d) g(x) Ω(f(x))

Příklad 1/23. Pro rostoucí spojité fukce f(x), g(x) platí f(x) Ω(g(x)). Z toho plyne, že: a) f(x) Ο(g(x)) b) f(x) Θ(g(x)) d) g(x) Ω(f(x)) Příklad 1/23 Pro rostoucí spojité fukce f(x), g(x) platí f(x) Ω(g(x)). Z toho plyne, že: a) f(x) Ο(g(x)) b) f(x) Θ(g(x)) c) g(x) Θ(f(x)) d) g(x) Ω(f(x)) e) g(x) Ο(f(x)) 1 Příklad 2/23 Pro rostoucí spojité

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

OCR (optical character recognition) - rozpoznávání textu v obraze

OCR (optical character recognition) - rozpoznávání textu v obraze OCR (optical character recognition) - rozpoznávání textu v obraze Martin Koníek, I46 programová dokumentace 1. Úvod Tento projekt vznikl na MFF UK a jeho cílem bylo vytvoit algoritmus schopný rozpoznávat

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

Protože pi každém volání funkce ff se zavolá funkce abc() práv jednou, je poet volání funkce abc() práv 7. Platí varianta d).

Protože pi každém volání funkce ff se zavolá funkce abc() práv jednou, je poet volání funkce abc() práv 7. Platí varianta d). 1. void ff(int x) { if (x > 0) ff(x 1) ; abc(x); if (x > 0) ff(x 1) ; Daná funkce ff je volána s parametrem 2: ff(2);. Funkce abc(x) je tedy celkem volána a) 1 krát b) 3 krát c) 5 krát d) 7 krát e) 8 krát

Více

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

MIDTERM D. Příjmení a jméno: MIDTERM D Příjmení a jméno: 1 2 3 4 5 6 7 8 9 10 11 12 1 Doplňte místo otazníku ten ze symbolů, aby platil vztah (log n) / (log n 2 ) =?(1/ n): A) o B) O (a současně nelze použít ani o ani Θ) C) Θ D) Ω

Více

ˇ razen ı rychlejˇ s ı neˇ z kvadratick e Karel Hor ak, Petr Ryˇsav y 20. dubna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT

ˇ razen ı rychlejˇ s ı neˇ z kvadratick e Karel Hor ak, Petr Ryˇsav y 20. dubna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT řazení rychlejší než kvadratické Karel Horák, Petr Ryšavý 20. dubna 2016 Katedra počítačů, FEL, ČVUT Příklad 1 Která z následujících posloupností představuje haldu uloženou v poli? 1. 9 5 4 6 3 2. 5 4

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

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

Zpracoval: hypspave@fel.cvut.cz 7. Matematická indukce a rekurse. Řešení rekurentních (diferenčních) rovnic s konstantními koeficienty. Zpracoval: hypspave@fel.cvut.cz 7. Matematická indukce a rekurse. Řešení rekurentních (diferenčních) rovnic s konstantními koeficienty. (A7B01MCS) I. Matematická indukce a rekurse. Indukční principy patří

Více

Dynamic programming. Optimal binary search tree

Dynamic programming. Optimal binary search tree The complexity of different algorithms varies: O(n), Ω(n ), Θ(n log (n)), Dynamic programming Optimal binary search tree Různé algoritmy mají různou složitost: O(n), Ω(n ), Θ(n log (n)), The complexity

Více

NPRG030 Programování I, 2018/19 1 / :25:37

NPRG030 Programování I, 2018/19 1 / :25:37 NPRG030 Programování I, 2018/19 1 / 26 24. 9. 2018 10:25:37 Čísla v algoritmech a programech 10 26 Poloměr vesmíru 2651 studujících studentů MFF UK 3.142857... Ludolfovo číslo 10 16 stáří vesmíru v sekundách!!!

Více

10. Složitost a výkon

10. Složitost a výkon Jiří Vokřínek, 2016 B6B36ZAL - Přednáška 10 1 Základy algoritmizace 10. Složitost a výkon doc. Ing. Jiří Vokřínek, Ph.D. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Jiří

Více

IB111 Úvod do programování skrze Python

IB111 Úvod do programování skrze Python Vyhledávání, řazení, složitost IB111 Úvod do programování skrze Python 2012 Otrávené studny 8 studen, jedna z nich je otrávená laboratorní rozbor dokáže rozpoznat přítomnost jedu ve vodě je drahý (je časově

Více

Na začátku rozdělíme práci a určíme, které podproblémy je potřeba vyřešit. Tyto

Na začátku rozdělíme práci a určíme, které podproblémy je potřeba vyřešit. Tyto Kapitola 1 Rozděl a panuj Rozděl a panuj je programovací metoda. Často se označuje latinsky Divide et Empera nebo anglicky Divide and Conquer. Vychází z toho, že umíme zadaný problém rozložit na menší

Více

1 Sémantika a její vztah k syntaxi

1 Sémantika a její vztah k syntaxi 1 Sémantika a její vztah k syntaxi Mjme formální jazyk L T nad abecedou T. Tento formální jazyk je vymezen popisem syntaxe, která stanoví množinu všech syntakticky správných etzc jazyka. V dalším textu

Více

STACK

STACK Níže uvedené úlohy představují přehled otázek, které se vyskytly v tomto nebo v minulých semestrech ve cvičení nebo v minulých semestrech u zkoušky. Mezi otázkami semestrovými a zkouškovými není žádný

Více

Rekurentní rovnice, strukturální indukce

Rekurentní rovnice, strukturální indukce , strukturální indukce Jiří Velebil: Y01DMA 23. února 2010: Strukturální indukce 1/19 Backusova-Naurova forma Například syntaxe formuĺı výrokové logiky kde a At. Poznámky 1 Relaxace BNF. ϕ ::= a tt (ϕ

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

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

Číselné posloupnosti

Číselné posloupnosti Číselné posloupnosti Jiří Fišer KMA, PřF UP Olomouc ZS09 Jiří Fišer (KMA, PřF UP Olomouc) KMA MA2AA ZS09 1 / 43 Pojem posloupnosti Každé zobrazení N do R nazýváme číselná posloupnost. 1 a 1, 2 a 2, 3 a

Více

Splajny a metoda nejmenších tverc

Splajny a metoda nejmenších tverc Splajny a metoda nejmenších tverc 1. píklad a) Najdte pirozený kubický splajn pro funkci na intervalu Za uzly zvolte body Na interpolaci pomocí kubického splajnu použijeme píkaz Spline(ydata,, endpts).

Více

( ) ( ) 2 2 B A B A ( ) ( ) ( ) B A B A B A

( ) ( ) 2 2 B A B A ( ) ( ) ( ) B A B A B A Vzdálenost dvou bod, sted úseky Ž Vzdálenost dvou bod Pi vyšetování vzájemné polohy bod, pímek a rovin lze použít libovolnou vhodn zvolenou soustavu souadnic (afinní). však pi vyšetování metrických vlastností

Více

Algoritmus Minimax. Tomáš Kühr. Projektový seminář 1

Algoritmus Minimax. Tomáš Kühr. Projektový seminář 1 Projektový seminář 1 Základní pojmy Tah = přemístění figury hráče na tahu odpovídající pravidlům dané hry. Při tahu může být manipulováno i s figurami soupeře, pokud to odpovídá pravidlům hry (např. odstranění

Více

Promnné. [citováno z

Promnné. [citováno z Promnné [citováno z http://wraith.iglu.cz/python/index.php] Abychom s datovým objektem mohli v programu njak rozumn pracovat, potebujeme se na nj njakým zpsobem odkázat. Potebujeme Pythonu íct, aby napíklad

Více

1. Signatura datového typu

1. Signatura datového typu 1. Signatura datového typu a) popisuje vlastnosti operací datového typu b) popisuje sémantiku datového typu c) popisuje jména druh a operací a druhy argument a výsledku d) je grafickým vyjádením implementace

Více

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

Příklady z Kombinatoriky a grafů I - LS 2015/2016 Příklady z Kombinatoriky a grafů I - LS 2015/2016 zadáno 1.-4. 3. 2016, odevzdat do 8.-11. 3. 2016 1. Zjistěte, které z následujících funkcí definovaných pro n N jsou v relaci Θ(), a vzniklé třídy co nejlépe

Více

Pravdpodobnost výskytu náhodné veliiny na njakém intervalu urujeme na základ tchto vztah: f(x)

Pravdpodobnost výskytu náhodné veliiny na njakém intervalu urujeme na základ tchto vztah: f(x) NÁHODNÁ VELIINA Náhodná veliina je veliina, jejíž hodnota je jednoznan urena výsledkem náhodného pokusu (je-li tento výsledek dán reálným íslem). Jde o reálnou funkci definovanou na základním prostoru

Více

DRUHY ROVNOBŽNÍK A JEJICH VLASTNOSTI 1 HODINA

DRUHY ROVNOBŽNÍK A JEJICH VLASTNOSTI 1 HODINA DRUHY ROVNOBŽNÍK A JEJICH VLASTNOSTI HODINA Podívej se na následující obrázek: Na obrázku je rovnobžník s vyznaeným pravým úhlem. Odpovídej na otázky:? Jaká je velikost vnitního úhlu pi vrcholu C? Je rovna

Více

Rekurze. Pavel Töpfer, 2017 Programování 1-8 1

Rekurze. Pavel Töpfer, 2017 Programování 1-8 1 Rekurze V programování ve dvou hladinách: - rekurzivní algoritmus (řešení úlohy je definováno pomocí řešení podúloh stejného charakteru) - rekurzivní volání procedury nebo funkce (volá sama sebe přímo

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

Programovací jazyky, syntaxe, sémantika, zpsoby popisu

Programovací jazyky, syntaxe, sémantika, zpsoby popisu Sémantika programovacích jazyk: Syntaxe a sémantika Syntaxe a sémantika Programovací jazyky, syntaxe, sémantika, zpsoby popisu Ti hlavní charakteristiky jazyka (sémiotika) jsou: - syntax, sémantika a pragmatika

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

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Programová realizace DKA typedef enum {q0, q1,... qn,

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

přirozený algoritmus seřadí prvky 1,3,2,8,9,7 a prvky 4,5,6 nechává Metody řazení se dělí:

přirozený algoritmus seřadí prvky 1,3,2,8,9,7 a prvky 4,5,6 nechává Metody řazení se dělí: Metody řazení ve vnitřní a vnější paměti. Algoritmy řazení výběrem, vkládáním a zaměňováním. Heapsort, Shell-sort, Radix-sort, Quicksort. Řazení sekvenčních souborů. Řazení souborů s přímým přístupem.

Více

Jednoznačné a nejednoznačné gramatiky

Jednoznačné a nejednoznačné gramatiky BI-AAG (2011/2012) J. Holub: 11. Bezkontextové gramatiky p. 2/36 Jednoznačné a nejednoznačné gramatiky BI-AAG (2011/2012) J. Holub: 11. Bezkontextové gramatiky p. 4/36 Automaty a gramatiky(bi-aag) 11.

Více

LABORATORNÍ CVIENÍ Stední prmyslová škola elektrotechnická

LABORATORNÍ CVIENÍ Stední prmyslová škola elektrotechnická Stední prmyslová škola elektrotechnická a Vyšší odborná škola, Pardubice, Karla IV. 13 LABORATORNÍ CVIENÍ Stední prmyslová škola elektrotechnická Píjmení: Hladna íslo úlohy: 3 Jméno: Jan Datum mení: 10.

Více

Je n O(n 2 )? Je n 2 O(n)? Je 3n 5 +2n Θ(n 5 )? Je n 1000 O(2 n )? Je 2 n O(n 2000 )? Cvičení s kartami aneb jak rychle roste exponenciála.

Je n O(n 2 )? Je n 2 O(n)? Je 3n 5 +2n Θ(n 5 )? Je n 1000 O(2 n )? Je 2 n O(n 2000 )? Cvičení s kartami aneb jak rychle roste exponenciála. Příklady: Je n O(n 2 )? Je n 2 O(n)? Je 3n 5 +2n 3 +1000 Θ(n 5 )? Je n 1000 O(2 n )? Je 2 n O(n 2000 )? Cvičení s kartami aneb jak rychle roste exponenciála. Další pojmy složitosti Složitost v nejlepším

Více

DobSort. Úvod do programování. DobSort Implementace 1/3. DobSort Implementace 2/3. DobSort - Příklad. DobSort Implementace 3/3

DobSort. Úvod do programování. DobSort Implementace 1/3. DobSort Implementace 2/3. DobSort - Příklad. DobSort Implementace 3/3 DobSort Ú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 V roce 1980 navrhl Dobosiewicz variantu (tzv. DobSort),

Více

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

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr Seminář z IVT Algoritmizace Slovanské gymnázium Olomouc Tomáš Kühr Algoritmizace - o čem to je? Zatím jsme se zabývali především tím, jak určitý postup zapsat v konkrétním programovacím jazyce (např. C#)

Více

VYŠŠÍ ODBORNÁ ŠKOLA a STŘEDNÍ PRŮMYSLOVÁ ŠKOLA Mariánská 1100, 407 47 Varnsdorf PROGRAMOVÁNÍ FUNKCE, REKURZE, CYKLY

VYŠŠÍ ODBORNÁ ŠKOLA a STŘEDNÍ PRŮMYSLOVÁ ŠKOLA Mariánská 1100, 407 47 Varnsdorf PROGRAMOVÁNÍ FUNKCE, REKURZE, CYKLY Jméno a příjmení: Školní rok: Třída: VYŠŠÍ ODBORNÁ ŠKOLA a STŘEDNÍ PRŮMYSLOVÁ ŠKOLA Mariánská 1100, 407 47 Varnsdorf 2007/2008 VI2 PROGRAMOVÁNÍ FUNKCE, REKURZE, CYKLY Petr VOPALECKÝ Číslo úlohy: Počet

Více

Tabulkový procesor Excel

Tabulkový procesor Excel Tabulkový procesor Excel Excel 1 SIPVZ-modul-P0 OBSAH OBSAH...2 ZÁKLADNÍ POJMY...4 K EMU JE EXCEL... 4 UKÁZKA TABULKOVÉHO DOKUMENTU... 5 PRACOVNÍ PLOCHA... 6 OPERACE SE SOUBOREM...7 OTEVENÍ EXISTUJÍCÍHO

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

RECURSION

RECURSION Níže uvedené úlohy představují přehled otázek, které se vyskytly v tomto nebo v minulých semestrech ve cvičení nebo v minulých semestrech u zkoušky. Mezi otázkami semestrovými a zkouškovými není žádný

Více

27. asové, kmitotové a kódové dlení (TDM, FDM, CDM). Funkce a poslání úzkopásmových a širokopásmových sítí.

27. asové, kmitotové a kódové dlení (TDM, FDM, CDM). Funkce a poslání úzkopásmových a širokopásmových sítí. Petr Martínek martip2@fel.cvut.cz, ICQ: 303-942-073 27. asové, kmitotové a kódové dlení (TDM, FDM, CDM). Funkce a poslání úzkopásmových a širokopásmových sítí. Multiplexování (sdružování) - jedná se o

Více

Konzistentnost. Pro a proti replikaci. Vztah ke škálovatelnosti (1)

Konzistentnost. Pro a proti replikaci. Vztah ke škálovatelnosti (1) Konzistentnost Pednášky z distribuovaných systém Pro a proti replikaci 1. Zvýšení spolehlivosti. 2. Zvýšení výkonnosti. 3. Nutnost zachování škálovatelnosti systému co do potu komponent i geografické rozlehlosti.

Více

IB002 Algoritmy a datové struktury I

IB002 Algoritmy a datové struktury I IB002 Algoritmy a datové struktury I Ivana Černá Fakulta informatiky, Masarykova univerzita Jaro 2016 IB002 Algoritmy a datové struktury I () Jaro 2016 1 / 88 Informace o předmětu vyučující předmětu Ivana

Více

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

Stromy. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol. Stromy Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol., 2018, B6B36DSA 01/2018, Lekce 9 https://cw.fel.cvut.cz/wiki/courses/b6b36dsa/start

Více

edokumentace: Simulátor investiního rozhodování

edokumentace: Simulátor investiního rozhodování edokumentace: Simulátor investiního rozhodování Umístní hry Hru je možno sehrát na webu http://investice.wz.cz/, kde je k dispozici v php. Na webu je také k dipozici ke stažení tato dokumentace ve formátu

Více

1. Predikátová logika jako prostedek reprezentace znalostí

1. Predikátová logika jako prostedek reprezentace znalostí 1. Predikátová logika jako prostedek reprezentace znalostí 1.1 Historie výrokové logiky Problém explicitních znalostí a údaj, kterých je obrovské množství, vedl ke vzniku výrokové logiky. lovk si obecn

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

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

Dynamické programování

Dynamické programování ALG 0 Dynamické programování zkratka: DP Zdroje, přehledy, ukázky viz https://cw.fel.cvut.cz/wiki/courses/a4balg/literatura_odkazy 0 Dynamické programování Charakteristika Neřeší jeden konkrétní typ úlohy,

Více

1 Píklady popisu typických konstrukcí

1 Píklady popisu typických konstrukcí 1 Píklady popisu typických konstrukcí V tomto odstavci se pokusíme ilustrovat denotaní popis sémantiky ve funkcionálním modelu pro typické píklady jazykových konstrukcí. Popisované konstrukce budou fragmenty

Více

1. Exponenciální rst. 1.1. Spojitý pípad. Rstový zákon je vyjáden diferenciální rovnicí

1. Exponenciální rst. 1.1. Spojitý pípad. Rstový zákon je vyjáden diferenciální rovnicí V tomto lánku na dvou modelech rstu - exponenciálním a logistickém - ukážeme nkteré rozdíly mezi chováním spojitých a diskrétních systém. Exponenciální model lze považovat za základní rstový model v neomezeném

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

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

Složitosti základních operací B + stromu Složitosti základních operací B + stromu Radim Bača VŠB Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky ŠKOMAM 2010-1- 28/1/2010 Složitosti základních operací B +

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

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

Obecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012 Obecná informatika Přednášející Putovních přednášek Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Podzim 2012 Přednášející Putovních přednášek (MFF UK) Obecná informatika Podzim 2012 1 / 18

Více

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

Rekurze. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12. Rekurze doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Rekurze 161 / 344 Osnova přednášky

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

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

Binární vyhledávací stromy pokročilé partie Binární vyhledávací stromy pokročilé partie KMI/ALS lekce Jan Konečný 30.9.204 Literatura Cormen Thomas H., Introduction to Algorithms, 2nd edition MIT Press, 200. ISBN 0-262-5396-8 6, 3, A Knuth Donald

Více

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

NÁVRH ALGORITMŮ. poznámky pro Algoritmickou matematiku 3. Petr Osička NÁVRH ALGORITMŮ poznámky pro Algoritmickou matematiku 3 Petr Osička i Text obsahuje poznámky ke kurzu Algoritmická matematika 3. Petr Osička Olomouc, podzim 2017 Obsah 1 Úvod 1 2 Rozděl a panuj 6 3 Dynamické

Více

Digitální učební materiál

Digitální učební materiál Digitální učební materiál Číslo projektu: CZ.1.07/1.5.00/34.0548 Název školy: Gymnázium, Trutnov, Jiráskovo náměstí 325 Název materiálu: VY_32_INOVACE_146_IVT Autor: Ing. Pavel Bezděk Tematický okruh:

Více

Rozvrhování na více procesorech

Rozvrhování na více procesorech Rozvrhování na více procesorech Rozvrhování na více procesorech je složitjší úloha než na jednom procesoru. Uvažujeme m procesor. Rozlišujeme typy procesor - paralelní nebo dedikované a jejich rychlosti

Více

Anotace. pointery (pars prima). Martin Pergel,

Anotace. pointery (pars prima). Martin Pergel, Anotace Základní třídicí algoritmy, jednotky oddělený překlad, pointery (pars prima). Problém třídění jednoduché třídicí algoritmy Bublinkové třídění (BubbleSort), zatřid ování alias třídění přímým vkládáním

Více

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

Vztah teorie vyčíslitelnosti a teorie složitosti. IB102 Automaty, gramatiky a složitost, /31 Vztah teorie vyčíslitelnosti a teorie složitosti IB102 Automaty, gramatiky a složitost, 2. 12. 2013 1/31 IB102 Automaty, gramatiky a složitost, 2. 12. 2013 2/31 Časová složitost algoritmu počet kroků výpočtu

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

Náplň. v.0.03 16.02.2014. - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění

Náplň. v.0.03 16.02.2014. - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění Náplň v.0.03 16.02.2014 - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění Spojení dvou samostatně setříděných polí void Spoj(double apole1[], int adelka1, double

Více

Lineární algebra Petriho sítí

Lineární algebra Petriho sítí ) Notace Lineární algebra Petriho sítí Definice: Neznaená PN je taková tveice Q = P Pre Post kde P = {P P n } je množina míst (konená nenulová) = { m } je množina pechod (konená nenulová) Pre: P {} vstupní

Více

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

FIT ČVUT MI-LOM Lineární optimalizace a metody. Dualita. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti FIT ČVUT MI-LOM Lineární optimalizace a metody Dualita Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Michal Černý, 2011 FIT ČVUT, MI-LOM, M. Černý, 2011: Dualita 2/5 Dualita Evropský

Více

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

KMI/ALM3 Mgr. Petr Osička, Ph.D. Update: 15. listopadu 2016 Algoritmická matematika 3 KMI/ALM3 Mgr. Petr Osička, Ph.D. Update: 15. listopadu 2016 Algoritmický problém Přednáška 1 Definice 1. Abeceda Σ je konečná neprázdná množina. Prvkům Σ říkáme symboly. Slovo

Více

VYTVÁENÍ VÝBROVÝCH DOTAZ

VYTVÁENÍ VÝBROVÝCH DOTAZ VYTVÁENÍ VÝBROVÝCH DOTAZ V PRODUKTECH YAMACO SOFTWARE PÍRUKA A NÁVODY PRO ÚELY: - VYTVÁENÍ VÝBROVÝCH SESTAV YAMACO SOFTWARE 2003-2004 1. ÚVODEM Standardní souástí všech produkt Yamaco Software jsou prostedky

Více

Definice : Jsou li povrchové pímky kolmé k rovin, vzniká kolmá kruhová válcová plocha a pomocí roviny také kolmý kruhový válec.

Definice : Jsou li povrchové pímky kolmé k rovin, vzniká kolmá kruhová válcová plocha a pomocí roviny také kolmý kruhový válec. 3. EZY NA VÁLCÍCH 3.1. VÁLCOVÁ PLOCHA, VÁLEC Definice : Je dána kružnice k ležící v rovin a pímka a rznobžná s rovinou. Všechny pímky rovnobžné s pímkou a protínající kružnici k tvoí kruhovou válcovou

Více

Dlitel, násobek Znak dlitelnosti Prvoíslo, íslo složené, rozklad na prvoinitele Nejvtší spolený dlitel, nejmenší spolený násobek

Dlitel, násobek Znak dlitelnosti Prvoíslo, íslo složené, rozklad na prvoinitele Nejvtší spolený dlitel, nejmenší spolený násobek 1.1. Základní pojmy V tomto uebním bloku budeme pracovat pouze s pirozenými ísly ( bez nuly ) a budeme studovat vztahy dlitelnosti mezi nimi. Seznámíme se s tmito základními pojmy: Název Dlitel, násobek

Více