Algoritmy a výpočetní složitost

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

Download "Algoritmy a výpočetní složitost"

Transkript

1 Algoritmy a výpočetní složitost Zdeněk Sawa Katedra informatiky, FEI Vysoká škola báňská Technická universita Ostrava 17. listopadu 15, Ostrava-Poruba Česká republika 12. prosince 2005 Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

2 Co je to algoritmus? Algoritmus Algoritmus je mechanický postup skládající se z nějakých jednoduchých elementárních kroků, který pro nějaký zadaný vstup vyprodukuje nějaký výstup. Algoritmus může být zadán: slovním popisem v přirozeném jazyce jako počítačový program v nějakém programovacím jazyce(c, C++, Java,Pascal,...) jako hardwarový obvod... Algoritmy slouží k řešení různých problémů. Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

3 Problémy Problém V zadání problému musí být určeno: co je množinou možných vstupů co je množinou možných výstupů jakýjevztahmezivstupyavýstupy vstupy výstupy Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

4 Příklad problému Problém Vstup: Seznam měst a silnic spojujících tato města. Ukaždésilnicejeuvedeno,zkteréhoměstadokteréhovede, ajakájejejídélka(vkm). Dálepakdvěměstazeseznamuměst označmejeměstoa aměstob. Výstup:NejkratšícestazměstaAdoměstaB A B Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

5 Další příklady problémů Vyhledávání výskytů slova v textu Vstup:TextTaslovoS. Výstup: Seznam všech pozic, na kterých se v textu T vyskytuje slovo S. Prvočíselnost Vstup: Přirozené číslo n. Výstup: Ano pokudjenprvočíslo, Ne vopačnémpřípadě. Pozn.:Přirozenáčísla N = {0,1,2,3,4,5,...} Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

6 Rozhodovací a optimalizační problémy Situace,kdymnožinavýstupůje { Ano, Ne }jepoměrněčastá. Takovým problémům se říká rozhodovací problémy. Prvočíselnost Vstup: Přirozené číslo n. Otázka: Je n prvočíslo? Problémům, kde je úkolem najít mezi mnoha potenciálními řešeními takové, které je podle nějakého zadaného kritéria nejlepší, se nazývají optimalizační problémy. Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

7 Instance problému Instance problému Konkrétní vstup z množiny možných vstupů problému se nazývá instance problému. Příklad1:Text aslovo je instancí problému Vyhledávání slova v textu. Příklad 2: Číslo 1729 je instancí problému Prvočíselnost. Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

8 Řešení problémů Řešení problému Algoritmus řeší daný problém, když: 1 Se pro libovolný vstup daného problému(libovolnou instanci) po konečném počtu kroků zastaví. 2 Vyprodukuje výstup z množiny možných výstupů, který vyhovuje podmínkám uvedeným v zadání problému. Algoritmus, který řeší daný problém, je korektní. Jeden problém může mít více různých korektních řešení. Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

9 Doba výpočtu Počítače pracují rychle(řádově miliardy operací za sekundu), ovšem ne nekonečně rychle provedení jedné operace trvá nějakou nenulovou dobu. Výpočet pro tentýž vstup může u různých algoritmů(nebo u různých implementací téhož algoritmu) trvat různou dobu. Tatodobazávisímimojinéna: konkrétní implementaci algoritmu konkrétním použitém programovacím jazyce konkrétním použitém překladači nebo interpretru konkrétním použitém hardwaru(zejména na taktovací frekvenci procesoru)... Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

10 Posuzování efektivnosti algoritmů Přirozené otázky: Jak závisí doba běhu programu na použitém algoritmu? Kterýzalgoritmů,kteréřešídanýproblém,je lepší? Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

11 Velikost vstupu Pokud známe všechny potřebné detaily můžeme dobu běhu programu pro daný konkrétní vstup vypočítat, případně změřit. Doba běhu programu je obecně pro různé vstupy různá. Zavádíme pojem velikost vstupu např. počet měst a silnic, počet znaků vtextuaveslově,početbitůvbinárníreprezentacičíslaapod. Nejčastěji je velikost vstupu definována jako počet bitů(resp. bytů) vstupu. Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

12 Efektivnost algoritmů U daného algoritmu zkoumáme, jak závisí doba běhu programu na velikosti vstupu, tj. jak dlouho běží program pro vstup velikosti n. Časová složitost Funkce, která vyjadřuje závislost doby běhu programu na velikosti vstupu se nazývá časová složitost algoritmu. Zkoumáme buď: dobu běhu v nejhorším případě, nebo dobu běhu v průměrném případě. Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

13 Příklad: třídění Problém: Třídění Vstup:Posloupnostnprvkůa 1,a 2,...,a n. Výstup:Prvkya 1,a 2,...,a n seřazenéodnejmenšíhoponejvětší. Příklad: Vstup:31,41,59,26,41,58 Výstup:26,31,41,41,58,59 Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

14 Algoritmus 1 třídění přímým vkládáním nesetříděné prvky setříděné prvky právě zpracovávaný prvek Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

15 Algoritmus 1 třídění přímým vkládáním nesetříděné prvky setříděné prvky právě zpracovávaný prvek Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

16 Algoritmus 1 třídění přímým vkládáním nesetříděné prvky setříděné prvky právě zpracovávaný prvek Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

17 Algoritmus 1 třídění přímým vkládáním nesetříděné prvky setříděné prvky právě zpracovávaný prvek Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

18 Algoritmus 1 třídění přímým vkládáním nesetříděné prvky setříděné prvky právě zpracovávaný prvek Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

19 Algoritmus 1 třídění přímým vkládáním nesetříděné prvky setříděné prvky právě zpracovávaný prvek Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

20 Algoritmus 1 třídění přímým vkládáním nesetříděné prvky setříděné prvky právě zpracovávaný prvek Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

21 Algoritmus 1 třídění přímým vkládáním nesetříděné prvky setříděné prvky právě zpracovávaný prvek Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

22 Algoritmus 1 třídění přímým vkládáním nesetříděné prvky setříděné prvky právě zpracovávaný prvek Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

23 Algoritmus 1 třídění přímým vkládáním nesetříděné prvky setříděné prvky právě zpracovávaný prvek Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

24 Algoritmus 1 třídění přímým vkládáním nesetříděné prvky setříděné prvky právě zpracovávaný prvek Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

25 Algoritmus 1 třídění přímým vkládáním nesetříděné prvky setříděné prvky právě zpracovávaný prvek Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

26 Algoritmus 1 třídění přímým vkládáním nesetříděné prvky setříděné prvky právě zpracovávaný prvek Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

27 Algoritmus 1 třídění přímým vkládáním nesetříděné prvky setříděné prvky právě zpracovávaný prvek Celkový počet operací v nejhorším případě: (n 2) + (n 1) = n (n 1) 2 = 1 2 n2 1 2 n Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

28 Algoritmus 2 Merge Sort Hlavní myšlenka: Dvě setříděné posloupnosti snadno spojíme do jediné setříděné posloupnosti. Pokud mají obě posloupnosti dohromady n prvků, vyžaduje tato operace nkroků = Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

29 Algoritmus 2 Merge Sort Hlavní myšlenka: Dvě setříděné posloupnosti snadno spojíme do jediné setříděné posloupnosti. Pokud mají obě posloupnosti dohromady n prvků, vyžaduje tato operace nkroků = 10 Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

30 Algoritmus 2 Merge Sort Hlavní myšlenka: Dvě setříděné posloupnosti snadno spojíme do jediné setříděné posloupnosti. Pokud mají obě posloupnosti dohromady n prvků, vyžaduje tato operace nkroků = Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

31 Algoritmus 2 Merge Sort Hlavní myšlenka: Dvě setříděné posloupnosti snadno spojíme do jediné setříděné posloupnosti. Pokud mají obě posloupnosti dohromady n prvků, vyžaduje tato operace nkroků = Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

32 Algoritmus 2 Merge Sort Hlavní myšlenka: Dvě setříděné posloupnosti snadno spojíme do jediné setříděné posloupnosti. Pokud mají obě posloupnosti dohromady n prvků, vyžaduje tato operace nkroků = Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

33 Algoritmus 2 Merge Sort Hlavní myšlenka: Dvě setříděné posloupnosti snadno spojíme do jediné setříděné posloupnosti. Pokud mají obě posloupnosti dohromady n prvků, vyžaduje tato operace nkroků = Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

34 Algoritmus 2 Merge Sort Hlavní myšlenka: Dvě setříděné posloupnosti snadno spojíme do jediné setříděné posloupnosti. Pokud mají obě posloupnosti dohromady n prvků, vyžaduje tato operace nkroků = Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

35 Algoritmus 2 Merge Sort Hlavní myšlenka: Dvě setříděné posloupnosti snadno spojíme do jediné setříděné posloupnosti. Pokud mají obě posloupnosti dohromady n prvků, vyžaduje tato operace nkroků. 67 = Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

36 Algoritmus 2 Merge Sort Hlavní myšlenka: Dvě setříděné posloupnosti snadno spojíme do jediné setříděné posloupnosti. Pokud mají obě posloupnosti dohromady n prvků, vyžaduje tato operace nkroků. = Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

37 Algoritmus 2 Merge Sort(pokračování) Vstup:58,42,34,61,67,10,53,11 n log 2 n Celkovýpočetoperací:nlog 2 n Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

38 Porovnání dvou implementací Jetřebasetřídit10 6 prvků. Implementace A: Implementace B: Použito třídění přímým vkládáním Rychlýpočítač:10 9 operacízasekundu Efektivníimplementace:2n 2 operací Použit merge sort Pomalýpočítač:10 7 operacízasekundu Neefektivní implementace: 50n log n operací Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

39 Porovnání dvou implementací(pokračování) Setřídění10 6 prvkůvyžaduje: Implementace A: Implementace B: 2 (10 6 ) 2 instr instr./s 50 (10 6 )log(10 6 )instr instr./s =2000s 100s Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

40 Příklad Program zpracovává vstup velikosti n. Předpokládejme, že pro vstup velikosti n provede f (n) operací, a že provedeníjednéoperacetrvá1 µs(10 6 s). n f (n) n 20µs 40µs 60µs 80µs 0.1ms 0.2ms 0.5ms 1ms nlogn 86µs 0.213ms 0.354ms 0.506ms 0.664ms 1.528ms 4.48ms 9.96ms n 2 0.4ms 1.6ms 3.6ms 6.4ms 10ms 40ms 0.25s 1s n 3 8ms 64ms 0.216s 0.512s 1s 8s 125s 16.7min. n s 2.56s 12.96s 42s 100s 26.6min hod dní 2 n 1.05s 12.75dní 36560let let let n! let let Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

41 Asymptotická notace Při analýze algoritmů většinou není potřeba spočítat počet provedených operací(resp. čas jejich provedení) přesně. Používá se asymptotická notace, která vyjadřuje odhad rychlosti růstu funkce, přičemž jsou zanedbány konkrétní konstanty a méně významné členy: Např.místo35n n +2378pracujemesvýrazemO(n 2 ). Výhoda asymptotické notace: Výrazně zjednodušuje analýzu, výsledek nezávisí na detailech konkrétní implementace. Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

42 Datové struktury Důležitou součástí studia algoritmů je zkoumání různých datových struktur a analýza složitosti jednotlivých operací prováděných na těchto datových strukturách(vkládání, odstraňování, vyhledávání prvků). Pole: Seznam: Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

43 Datové struktury(pokračování) Hashovací tabulka: Strom: Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

44 Efektivní algoritmy Obecně jsou ze efektivní algoritmy považovány ty, jejichž časová složitost jeomezenapolynomem,tj.o(n k ),kdekjekonstanta. O(n),O(n 2 ),O(n 3 ),O(n 4 ),... Takovým algoritmům se říká polynomiální algoritmy. Pokudjesložitostnapř.2 n,2 2n,2 22n,...,pakalgoritmusnenípolynomiální. Algoritmům,kterémajísložitost2 O(nk) seříkáexponenciálníalgoritmy. Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

45 Obtížné problémy Otázka: Existuje pro každý problém efektivní(polynomiální) algoritmus, který ho řeší? Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

46 Obtížné problémy Otázka: Existuje pro každý problém efektivní(polynomiální) algoritmus, který ho řeší? Odpověď: Ne, existují problémy, pro které se dá dokázat, že neexistuje žádný efektivní algoritmus, který by daný problém řešil. Dokonce existují problémy, pro které se dá dokázat, že neexistuje žádný (ani neefektivní) algoritmus, který by daný problém řešil. Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

47 Neexistence algoritmů Námitka: Jak dokázat, že něco neexistuje? Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

48 Neexistence algoritmů Námitka: Jak dokázat, že něco neexistuje? Odpověď: Sporem. Předpokládáme, že to existuje a ukážeme, že z toho vyplývá nějaký závěr, který je ve zjevném rozporu se skutečností(typicky ukážeme, že něco musí být současně pravda i nepravda). Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

49 Příklad obtížného problému Problém Vstup: Uzavřená aritmetická formule vytvořená ze symbolů +, =,,,,,, (, ),proměnnýchaceločíselnýchkonstant. Otázka: Je tato formule pravdivá v oboru přirozených čísel? Příklad vstupu: x y z((x +y =z) (y +5 =x)) Protentoproblémjeznámalgoritmussesložitostí2 22O(n).Současněbylo dokázáno, že jakýkoliv algoritmus řešící tento problém má složitost minimálně2 2cn. Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

50 Příklad algoritmicky neřešitelného problému Problém Vstup: Uzavřená aritmetická formule vytvořená ze symbolů +,, =,,,,,, (, ),proměnnýchaceločíselnýchkonstant. Otázka: Je tato formule pravdivá v oboru přirozených čísel? Příklad vstupu: x y z((x y =z) (y +5 =x)) Tento problém je algoritmicky neřešitelný(u rozhodovacích problémů se používá též pojem algoritmicky nerozhodnutelný). Úzce souvisí s Gödelovou větou o neúplnosti. Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

51 Další příklad nerozhodnutelného problému Problém Vstup: Počítačový program a nějaká jeho vstupní data. Otázka: Zastaví se někdy tento program, když dostane na vstup tato data? Idea důkazu nerozhodnutelnosti: Předpokládejme existenci programu H, který řeší tento problém. Můžeme ho snadno upravit na podprogram H (p,v),kterývrací Ano nebo Ne jakonávratovouhodnotu.... Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

52 Další příklad nerozhodnutelného problému(pokračování)... VytvořímenovýprogramD:VezmesvůjvstupxazavoláH jakoh (x,x). PokudH vrátí Ano,Dskočídonekonečnésmyčky. PokudH vrátí Ne,Dsezastaví. ZastavíseprogramDnebone,kdyžmupředložímejakovstupjehovlastní kód? Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

53 Třídy problémů Některé problémy jsou těžší než jiné. Při posuzování obtížnosti problémů se ukázalo jako užitečné rozdělit problémy do tříd složitosti, např.: PTIME problémy řešitelné v polynomiálním čase PSPACE problémy řešitelné s polynomiálním množstvím paměti EXPTIME problémy řešitelné v exponenciálním čase EXPSPACE problémy řešitelné s exponenciálním množstvím paměti... Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

54 Třída NPTIME Jednou z nejdůležitějších tříd je třída NPTIME. Třída NPTIME: Do třídy NPTIME patří rozhodovací problémy, pro které existuje polynomiální algoritmus, který ověří správnost nalezeného řešení. Přesnějiřečeno,pokudjeodpověď Ano,existujesvědek,který dosvědčuje,žeodpověďje Ano,kteréhojemožnévpolynomiálnímčase otestovat,žetomutakskutečněje.pokudjeodpověď Ne,žádnýtakový svědek neexistuje. Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

55 Příklad problému z NPTIME Problém Vstup: Popis mapy(seznam států a informace který stát sousedí skterým)ačíslok. Otázka:Jemožnéstátyobarvitkbarvamitak,abyžádnédva sousední státy neměly stejnou barvu? Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

56 Příklad problému z NPTIME Problém Vstup: Popis mapy(seznam států a informace který stát sousedí skterým)ačíslok. Otázka:Jemožnéstátyobarvitkbarvamitak,abyžádnédva sousední státy neměly stejnou barvu? Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

57 Pvs.NP Jeden z největších otevřených problémů teoretické informatiky: Otevřený problém: JeP =NP? Pozn.: Třídy PTIME a NPTIME bývají také označovány stručněji P a NP. Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

58 NP-úplné problémy Důležitou podtřídou třídy NPTIME jsou tzv. NP-úplné problémy. Definice Problém P je NP-těžký, jestliže platí, že libovolný problém ze třídy NPTIME je možné v polynomiálním čase redukovat na problém P. Definice Problém P je NP-úplný, jestliže je NP-těžký a současně sám patří do třídy NPTIME. Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

59 NP-úplné problémy(pokračování) NP-úplné problémy jsou důležité, protože: Kdyby alespoň jeden z nich byl řešitelný v polynomiálním čase, všechny problémy z NPTIME by byly řešitelné v polynomiálním čase. Pokud v NPTIME existuje alespoň jeden problém, který není řešitelný v polynomiálním čase, pak žádný z NP-úplných problémů není řešitelný v polynomiálním čase. Velké množství problémů, které se objevují v praxi v různých oblastech informatiky, je NP-úplných nebo NP-těžkých. To, že NP-úplné problémy nelze řešit v polynomiálním čase je podmínkou nutnou(nikoli však postačující) pro to, aby existovaly šifrovací algoritmy, které by nebyly snadno prolomitelné. Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

60 NP-úplné problémy(pokračování) Někdydvaproblémymohouvypadatpodobně,apřitomjedenznichje řešitelný v polynomiálním čase, zatímco druhý je NP-úplný. Problém 1 Vstup: Popis měst a silnic. Výstup: Existuje okružní cesta, na které projedeme každou silnici právě jednou? Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

61 NP-úplné problémy(pokračování) Problém 2 Vstup: Popis měst a silnic. Výstup: Existuje okružní cesta, na které projedeme každé město právě jednou? Problém1jevPTIME. Problém 2 je NP-úplný. Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

62 Jak řešit těžké problémy? Pokud pro daný problém neexistuje efektivní algoritmus, máme následující možnosti: 1 Exponenciální algoritmy použitelné jen na malé instance. 2 Aproximační řešení použitelné jen pro optimalizační problémy. Najdeřešení,kteréjeoněcohoršínežoptimum. 3 Pravděpodobnostní(randomizované) algoritmy najde rychle řešení, ale řešení je s určitou pravděpodobností špatně. 4 Speciální případy soutředit se jen na některé speciální případy instancí, neřešit problém v plné obecnosti. 5 Heuristiky postup, který najde řešení rychle ve většině rozumných případů,nenívšakzaručenoževždy. Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

63 Randomizovaný algoritmus Prvočíselnost Vstup: Přirozené číslo p. Otázka: Je p prvočíslo? Teprveodroku2003jeznámpolynomiálníalgoritmus(O(n 12+ε ),později oněcozlepšen). VpraxijepoužívánrandomizovanýalgoritmussesložitostíO(n 3 ): Pokudpjeprvočíslo,vrátívždyodpověď Ano. Pokudpneníprvočíslo,jepravděpodobnostodpovědi Ne minimálně 50%, ale existuje až 50% šance, že program vrátí chybnou odpověď Ano. Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

64 Randomizovaný algoritmus(pokračování) Program můžeme volat opakovaně(k krát): Pokudprogramvrátíalespoňjednouodpověď Ne,vímena100%, že p není prvočíslo. Pokudprogramvrátípokaždé Ano,jepravděpodobnosttoho,žep neníprvočíslo,menšínež2 k. Když k = 100, je pravděpodobnost chyby zanedbatelně malá. Poznámka: Lze například odvodit, že pravděpodobnost toho, že počítač budezasaženběhemdanémikrosekundymeteoritem,jenejméně2 100 za předpokladu,žekaždých1000letjemeteoritemzničenoalespoň100m 2 zemského povrchu. Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

65 Testování prvočíselnosti Pro číslo p hledáme svědka složenosti. Svědka vybíráme náhodně z množiny potenciálních svědků, což je množina Využívá se: {1,2,3,4,...,p 1} Malá Fermatova věta: Pokudpjeprvočíslo,pakprokaždéatakové,že1 a<p,platí (a p 1 modp) =1 Poznámka:Hodnotu (a p 1 modp)jemožnéspočítatvpolynomiálním čase. Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

66 Testování prvočíselnosti(pokračování) Pokudzjistíme,žepronějakéaje (a p 1 modp) 1,ječísloasvědkem složenosti p. Pro velkou většinu složených čísel alespoň jedna polovina všech čísel a vintervalu1,...,p 1splňujenerovnost (a p 1 modp) 1. Poznámka:Existujíivšakisloženáčísla,prokterájetakovýchamálo (jentaa,kdenejvětšíspolečnýdělitelspjevětšínežjedna). Proto se v algoritmu využívá ještě následující tvrzení: Věta: Jestliže p je liché prvočíslo, pak rovnice (x 2 modp) =1 mávintervalu {1,2,...,p 1}právědvěřešení:x =1,x =p 1. Zdeněk Sawa (VŠB-TU Ostrava) Algoritmy a výpočetní složitost 12. prosince / 42

Algoritmy a výpočetní složitost

Algoritmy a výpočetní složitost Algoritmy a výpočetní složitost Zdeněk Sawa Katedra informatiky Fakulta elekrotechniky a informatiky VŠB-TU Ostrava 3. ledna 2005 Co je to algoritmus? Algoritmus Algoritmus je mechanický postup skládající

Více

1 Algoritmus. 1.1 Úvod

1 Algoritmus. 1.1 Úvod 1 Algoritmus Cílem této kapitoly je seznámi studenty se základními pojmy informatiky jako jsou algoritmus, program, složitost. Student získá také přehled o složitostních třídách problémů (algoritmů). O

Více

ALGORITMY A DATOVÉ STRUKTURY

ALGORITMY A DATOVÉ STRUKTURY Název tématického celku: Cíl: ALGORITMY A DATOVÉ STRUKTURY Metodický list č. 1 Časová složitost algoritmů Základním cílem tohoto tematického celku je vysvětlení potřebných pojmů a definic nutných k popisu

Více

Rozhodnutelné a nerozhodnutelné problémy. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 24. dubna / 49

Rozhodnutelné a nerozhodnutelné problémy. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 24. dubna / 49 Rozhodnutelné a nerozhodnutelné problémy M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 24. dubna 2007 1/ 49 Co je to algoritmus? Algoritmus Algoritmus je mechanický postup skládající

Více

Složitost 1.1 Opera ní a pam ová složitost 1.2 Opera ní složitost v pr rném, nejhorším a nejlepším p ípad 1.3 Asymptotická složitost

Složitost 1.1 Opera ní a pam ová složitost 1.2 Opera ní složitost v pr rném, nejhorším a nejlepším p ípad 1.3 Asymptotická složitost 1 Složitost 1.1 Operační a paměťová složitost Nezávislé určení na konkrétní implementaci Několik typů operací = sčítání T+, logické T L, přiřazení T A(assign), porovnání T C(compare), výpočet adresy pole

Více

Třída PTIME a třída NPTIME. NP-úplnost.

Třída PTIME a třída NPTIME. NP-úplnost. VAS - Přednáška 9 Úvod ke kursu. Složitost algoritmu. Model RAM. Odhady složitosti. Metoda rozděl a panuj. Greedy algoritmy. Metoda dynamického programování. Problémy, třídy složitosti problémů, horní

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

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

Složitost problémů. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna / 23 Složitost problémů Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna 2012 1/ 23 Složitost problémů Ukazuje se, že různé(algoritmické) problémy jsou různě těžké. Obtížnější jsou ty problémy, k

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

Složitost Filip Hlásek

Složitost Filip Hlásek Složitost Filip Hlásek Abstrakt. Příspěvek popisuje dva základní koncepty teoretické informatiky, Turingovy stroje a složitost. Kromě definic důležitých pojmů uvádí také několik souvisejících tvrzení,

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

Týden 11. Přednáška. Teoretická informatika průběh výuky v semestru 1. Nejprve jsme dokončili témata zapsaná u minulé přednášky.

Týden 11. Přednáška. Teoretická informatika průběh výuky v semestru 1. Nejprve jsme dokončili témata zapsaná u minulé přednášky. Teoretická informatika průběh výuky v semestru 1 Týden 11 Přednáška Nejprve jsme dokončili témata zapsaná u minulé přednášky. PSPACE, NPSPACE, PSPACE-úplnost Uvědomilijsmesi,ženapř.prozjištěnítoho,zdaBílýmánějakoustrategiivehřeŠACHY,

Více

Třída PTIME a třída NPTIME. NP-úplnost.

Třída PTIME a třída NPTIME. NP-úplnost. VAS - Přednáška 9 Úvod ke kursu. Složitost algoritmu. Model RAM. Odhady složitosti. Metoda rozděl a panuj. Greedy algoritmy. Metoda dynamického programování. Problémy, třídy složitosti problémů, horní

Více

Z. Sawa (VŠB-TUO) Teoretická informatika 18. prosince / 67

Z. Sawa (VŠB-TUO) Teoretická informatika 18. prosince / 67 Další třídy složitosti Z. Sawa (VŠB-TUO) Teoretická informatika 18. prosince 018 1/ 67 Další třídy složitosti Pro libovolnou funkci f : N R + definujme následující třídy: DTIME(f(n)) třída všech rozhodovací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

NP-úplnost problému SAT

NP-úplnost problému SAT Problém SAT je definován následovně: SAT(splnitelnost booleovských formulí) Vstup: Booleovská formule ϕ. Otázka: Je ϕ splnitelná? Příklad: Formule ϕ 1 =x 1 ( x 2 x 3 )jesplnitelná: např.přiohodnocení ν,kde[x

Více

Složitost a moderní kryptografie

Složitost a moderní kryptografie Složitost a moderní kryptografie Radek Pelánek Modulární systém dalšího vzdělávání pedagogických pracovníků JmK v přírodních vědách a informatice CZ.1.07/1.3.10/02.0024 Složitost a moderní kryptografie

Více

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

Složitost algoritmů. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Složitost algoritmů doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 27. prosince 2015 Jiří Dvorský (VŠB TUO) Složitost algoritmů

Více

Další partie teorie složitosti. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května / 51

Další partie teorie složitosti. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května / 51 Další partie teorie složitosti M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 1/ 51 Řešení těžkých problémů Pro mnoho důležitých problémů nejsou známy efektivní algoritmy.

Více

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

Třídy složitosti P a NP, NP-úplnost Třídy složitosti P a NP, NP-úplnost Cíle přednášky: 1. Definovat, za jakých okolností můžeme problém považovat za efektivně algoritmicky řešitelný. 2. Charakterizovat určitou skupinu úloh, pro které není

Více

Výpočetní složitost algoritmů

Výpočetní složitost algoritmů Výpočetní složitost algoritmů Slajdy pro výuku na KS Ondřej Čepek Sylabus 1. Definice časové a prostorové složitosti algoritmů. Příklady na konkrétních algoritmech. Prostředky pro popis výpočetní složitosti

Více

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI

Více

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

Složitost. Teoretická informatika Tomáš Foltýnek Složitost Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz Teoretická informatika 2 Opakování z minulé přednášky Co říká Churchova teze? Jak lze kódovat Turingův stroj? Co je to Univerzální

Více

11 VYPOČITATELNOST A VÝPOČTOVÁ SLOŽITOST

11 VYPOČITATELNOST A VÝPOČTOVÁ SLOŽITOST 11 VYPOČITATELNOST A VÝPOČTOVÁ SLOŽITOST Na první přednášce jsme si neformálně zavedli pojmy problém a algoritmus pro jeho řešení, které jsme na počítači vykonávali pomocí programů. Jako příklad uveďme

Více

PŘÍJMENÍ a JMÉNO: Login studenta: DATUM:

PŘÍJMENÍ a JMÉNO: Login studenta: DATUM: PŘÍJMENÍ a JMÉNO: Login studenta: DATUM: Závěrečný test z předmětu Vyčíslitelnost a složitost Doba trvání: 90 minut Max. zisk: 100 bodů Obecné pokyny: Po obdržení testu ihned do pravého horního rohu napište

Více

Týden 14. Přednáška. Teoretická informatika průběh výuky v semestru 1. PSPACE, NPSPACE, PSPACE-úplnost

Týden 14. Přednáška. Teoretická informatika průběh výuky v semestru 1. PSPACE, NPSPACE, PSPACE-úplnost Teoretická informatika průběh výuky v semestru 1 Týden 14 Přednáška PSPACE, NPSPACE, PSPACE-úplnost Uvědomili jsme si nejprve, že např. pro zjištění toho, zda Bílý má nějakou strategii ve hře ŠACHY, která

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

Výroková a predikátová logika - XIII

Výroková a predikátová logika - XIII Výroková a predikátová logika - XIII Petr Gregor KTIML MFF UK ZS 2013/2014 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - XIII ZS 2013/2014 1 / 13 Úvod Algoritmická (ne)rozhodnutelnost Které

Více

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

Michal Krátký. Úvod do programování. Cíl kurzu. Podmínky získání zápočtu III/III Michal Krátký Ú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 tel.: +420 596 993 239 místnost: A1004 mail: michal.kratky@vsb.cz

Více

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

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem. Algoritmus Algoritmus je schematický postup pro řešení určitého druhu problémů, který je prováděn pomocí konečného množství přesně definovaných kroků. nebo Algoritmus lze definovat jako jednoznačně určenou

Více

TGH12 - Problém za milion dolarů

TGH12 - Problém za milion dolarů TGH12 - Problém za milion dolarů Jan Březina Technical University of Liberec 7. května 2013 Složitost problému Co je to problém? Složitost problému Co je to problém? K daným vstupním datům (velkému binárnímu

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

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

Problém obchodního cestujícího(tsp) Vstup: Množina n měst a vzdálenosti mezi nimi. Výstup: Nejkratší okružní cesta procházející všemi městy.

Problém obchodního cestujícího(tsp) Vstup: Množina n měst a vzdálenosti mezi nimi. Výstup: Nejkratší okružní cesta procházející všemi městy. Problém obchodního cestujícího(tsp) Vstup: Množina n měst a vzdálenosti mezi nimi. Výstup: Nejkratší okružní cesta procházející všemi městy. Poznámka:Slovem okružní myslíme,žecestakončívestejném městě,

Více

Datové struktury 2: Rozptylovací tabulky

Datové struktury 2: Rozptylovací tabulky Datové struktury 2: Rozptylovací tabulky 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

Více

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

NMIN101 Programování 1 2/2 Z --- NMIN102 Programování /2 Z, Zk NMIN101 Programování 1 2/2 Z --- NMIN102 Programování 2 --- 2/2 Z, Zk Pavel Töpfer Katedra software a výuky informatiky MFF UK MFF Malostranské nám., 4. patro, pracovna 404 pavel.topfer@mff.cuni.cz http://ksvi.mff.cuni.cz/~topfer

Více

Úvod do problematiky

Úvod do problematiky Úvod do problematiky Karel Richta a kol. Přednášky byly připraveny i s pomocí materiálů, které vyrobili Marko Berezovský, Petr Felkel, Josef Kolář, Michal Píše a Pavel Tvrdík Katedra počítačů Fakulta elektrotechnická

Více

Úvod do teoretické informatiky

Úvod do teoretické informatiky Úvod do teoretické informatiky Logika a algoritmy (pracovní verze) Zdeněk Sawa Verze: 9. února 2014 VŠB Technická Univerzita Ostrava ii Obsah 1 Úvod 1 I Logika 15 2 Výroková logika úvod 17 2.1 Výroky.....

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

Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování.

Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování. 9.5 Třída NP Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování. Příklad. Uvažujme problém IND a následující

Více

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem Test prvočíselnosti Úkol: otestovat dané číslo N, zda je prvočíslem 1. zkusit všechny dělitele od 2 do N-1 časová složitost O(N) cca N testů 2. stačí zkoušet všechny dělitele od 2 do N/2 (větší dělitel

Více

Výroková a predikátová logika - III

Výroková a predikátová logika - III Výroková a predikátová logika - III Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - III ZS 2017/2018 1 / 16 2-SAT 2-SAT Výrok je v k-cnf, je-li v CNF a

Více

Složitost her. Herní algoritmy. Otakar Trunda

Složitost her. Herní algoritmy. Otakar Trunda Složitost her Herní algoritmy Otakar Trunda Úvod měření složitosti Formální výpočetní model Turingův stroj Složitost algoritmu = závislost spotřebovaných prostředků na velikosti vstupu Časová složitost

Více

5.6.3 Rekursivní indexace složitostních tříd 5.6.4 Uniformní diagonalizace 5.6.5 Konstrukce rekursivních indexací a aplikace uniformní diagonalizace

5.6.3 Rekursivní indexace složitostních tříd 5.6.4 Uniformní diagonalizace 5.6.5 Konstrukce rekursivních indexací a aplikace uniformní diagonalizace Obsah prvního svazku 1 Úvod 1.1 Přehled pojmů a struktur 1.1.1 Množiny, čísla a relace 1.1.2 Funkce 1.1.3 Pravděpodobnost 1.1.4 Grafy 1.2 Algebra 1.2.1 Dělitelnost, prvočíselnost a základní kombinatorické

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

Základy algoritmizace

Základy algoritmizace Algoritmus Toto je sice na první pohled pravdivá, ale při bližším prozkoumání nepřesná definice. Například některé matematické postupy by této definici vyhovovaly, ale nejsou algoritmy. Přesné znění definice

Více

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

Základní informace o předmětu Otázka: Základní informace o předmětu Otázka: Proč vůbec porovnávat algoritmy? Vlastnosti algoritmů přirozenost a stabilita algoritmu časová náročnost algoritmu asymetrická a asymptotická časová náročnost algoritmů

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_148_IVT Autor: Ing. Pavel Bezděk Tematický okruh:

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Třídění, vyhledávání Daniela Szturcová

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

Úvod do teoretické informatiky

Úvod do teoretické informatiky Úvod do teoretické informatiky Zdeněk Sawa Katedra informatiky, FEI, Vysoká škola báňská Technická universita Ostrava 17. listopadu 15, Ostrava-Poruba 708 33 Česká republika 11. února 2018 Z. Sawa (VŠB-TUO)

Více

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

Databáze, sítě a techniky programování X33DSP Databáze, sítě a techniky programování X33DSP Anotace: Náplní předmětu jsou některé techniky a metody používané ve výpočetních systémech zaměřených na biomedicínské inženýrství. Cílem je položit jednotný

Více

Usuzování za neurčitosti

Usuzování za neurčitosti Usuzování za neurčitosti 25.11.2014 8-1 Usuzování za neurčitosti Hypotetické usuzování a zpětná indukce Míry postačitelnosti a nezbytnosti Kombinace důkazů Šíření pravděpodobnosti v inferenčních sítích

Více

Definice 7.2. Nejmenší přirozené číslo k, pro které je graf G k-obarvitelný, se nazývá chromatické číslo (barevnost) grafu G a značí se χ(g).

Definice 7.2. Nejmenší přirozené číslo k, pro které je graf G k-obarvitelný, se nazývá chromatické číslo (barevnost) grafu G a značí se χ(g). 7 Barevnost grafu Definice 71 Graf G se nazývá k-obarvitelný, jestliže každému jeho uzlu lze přiřadit jednu z barev 1 k tak, že žádné dva sousední uzly nemají stejnou barvu Definice 72 Nejmenší přirozené

Více

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

NP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze NP-ÚPLNÉ PROBLÉMY Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2010/2011, Lekce 13 Evropský sociální fond Praha & EU: Investujeme do

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

Výroková a predikátová logika - XII

Výroková a predikátová logika - XII Výroková a predikátová logika - XII Petr Gregor KTIML MFF UK ZS 2015/2016 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - XII ZS 2015/2016 1 / 15 Algebraické teorie Základní algebraické teorie

Více

Principy indukce a rekursivní algoritmy

Principy indukce a rekursivní algoritmy Principy indukce a rekursivní algoritmy Jiří Velebil: A7B01MCS 19. září 2011: Indukce 1/20 Příklad Místností rozměru n budeme rozumět šachovnici rozměru 2 n 2 n, ze které je jedno (libovolné) pole vyjmuto.

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

Gödelovy věty o neúplnosti

Gödelovy věty o neúplnosti Gödelovy věty o neúplnosti Miloš Jakubíček PB016 Úvod do umělé inteligence Fakulta informatiky, Masarykova univerzita 23. listopadu 2007 1 Gödel & historie Kurt Gödel Historický kontext 2 Jazyk a metajazyk

Více

YZTI - poznámky ke složitosti

YZTI - poznámky ke složitosti YZTI - poznámky ke složitosti LS 2018 Abstrakt Poznámky k přednášce YZTI zabývající se složitostí algoritmických problémů a teorií NP-úplnosti. Složitost algoritmu a problému Zabýváme se už pouze rekurzivními

Více

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Dobývání znalostí Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Dobývání znalostí Pravděpodobnost a učení Doc. RNDr. Iveta Mrázová,

Více

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

NMIN101 Programování 1 2/2 Z --- NMIN102 Programování /2 Z, Zk NMIN101 Programování 1 2/2 Z --- NMIN102 Programování 2 --- 2/2 Z, Zk Pavel Töpfer Katedra software a výuky informatiky MFF UK MFF Malostranské nám., 4. patro, pracovna 404 pavel.topfer@mff.cuni.cz http://ksvi.mff.cuni.cz/~topfer

Více

Od Turingových strojů k P=NP

Od Turingových strojů k P=NP Složitost Od Turingových strojů k P=NP Zbyněk Konečný Zimnění 2011 12. 16.2.2011 Kondr (Než vám klesnou víčka 2011) Složitost 12. 16.2.2011 1 / 24 O čem to dnes bude? 1 Co to je složitost 2 Výpočetní modely

Více

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

Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto: IB102 Automaty, gramatiky a složitost, 6. 10. 2014 1/29 Regulární výrazy Definice 2.58. Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto: 1 ε, a a pro každé a

Více

Základy algoritmizace, návrh algoritmu

Základy algoritmizace, návrh algoritmu Základy algoritmizace, návrh algoritmu Algoritmus Předpoklady automatického výpočtu: předem stanovit (rozmyslet) přesný postup během opakovaného provádění postupu již nepřemýšlet a postupovat mechanicky

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

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

Úvod do informatiky. Miroslav Kolařík

Úvod do informatiky. Miroslav Kolařík Úvod do informatiky přednáška jedenáctá Miroslav Kolařík Zpracováno dle P. Martinek: Základy teoretické informatiky, http://phoenix.inf.upol.cz/esf/ucebni/zti.pdf Obsah 1 Složitost algoritmu 2 Třídy složitostí

Více

Prvočíslo a Ulamova spirála

Prvočíslo a Ulamova spirála Gymnázium a SOŠ Cihelní 410, Frýdek Místek 73802 Prvočíslo a Ulamova spirála (Seminární práce z Matematiky) Monika Pistovčáková Matematika 13. listopad 2016 1 1. Úvod 3 2. Teoretická část.4 a. Co to je

Více

Náhodný pokus Náhodným pokusem (stručněji pokusem) rozumíme každé uskutečnění určitého systému podmínek resp. pravidel.

Náhodný pokus Náhodným pokusem (stručněji pokusem) rozumíme každé uskutečnění určitého systému podmínek resp. pravidel. Základy teorie pravděpodobnosti Náhodný pokus Náhodným pokusem (stručněji pokusem) rozumíme každé uskutečnění určitého systému podmínek resp. pravidel. Poznámka: Výsledek pokusu není předem znám (výsledek

Více

NP-úplnost. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 23. května / 32

NP-úplnost. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 23. května / 32 NP-úplnost M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 23. května 2007 1/ 32 Rozhodovací problémy Definice Rozhodovací problém je takový, kde je množina možných výstupů dvouprvková

Více

Matematické důkazy Struktura matematiky a typy důkazů

Matematické důkazy Struktura matematiky a typy důkazů Matematické důkazy Struktura matematiky a typy důkazů Petr Liška Masarykova univerzita 18.9.2014 Motto: Matematika je tvořena z 50 procent formulemi, z 50 procent důkazy a z 50 procent představivostí.

Více

Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63

Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63 Výpočetní modely Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince 2018 1/ 63 Nutnost upřesnění pojmu algoritmus Dosavadní definice pojmu algoritmus byla poněkud vágní. Pokud bychom pro nějaký problém

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

Algoritmizace. Obrázek 1: Přeložení programu překladačem

Algoritmizace. Obrázek 1: Přeložení programu překladačem Algoritmizace V každém okamžiku ví procesor počítače přesně, co má vykonat. Pojmem procesor se v souvislosti s algoritmy označuje objekt (např. stroj i člověk), který vykonává činnost popisovanou algoritmem.

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

Pojem algoritmus. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava

Pojem algoritmus. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Pojem algoritmus 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) Pojem algoritmus 54 / 344

Více

Výroková a predikátová logika - II

Výroková a predikátová logika - II Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2015/2016 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2015/2016 1 / 18 Základní syntax Jazyk Výroková logika je logikou

Více

Základy algoritmizace. Pattern matching

Základy algoritmizace. Pattern matching Základy algoritmizace Pattern matching 1 Pattern matching Úloha nalézt v nějakém textu výskyty zadaných textových vzorků patří v počítačové praxi k nejfrekventovanějším. Algoritmy, které ji řeší se používají

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

Predik atov a logika - pˇredn aˇska () Predik atov a logika - pˇredn aˇska / 16

Predik atov a logika - pˇredn aˇska () Predik atov a logika - pˇredn aˇska / 16 Predikátová logika - přednáška 3 6. 1. 2015 () Predikátová logika - přednáška 3 6. 1. 2015 1 / 16 Věta (o dedukci) Bud L jazyk, T teorie pro L, ϕ L-sentence a ψ L-formule. Pak Věta (o kompaktnosti) T ϕ

Více

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

NPRG030 Programování I 3/2 Z --- NPRG031 Programování II --- 2/2 Z, Zk NPRG030 Programování I 3/2 Z --- NPRG031 Programování II --- 2/2 Z, Zk Pavel Töpfer Katedra softwaru a výuky informatiky MFF UK MFF Malostranské nám., 4. patro, pracovna 404 pavel.topfer@mff.cuni.cz http://ksvi.mff.cuni.cz/~topfer

Více

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

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

Obsah. Euler-Fermatova věta. Reziduální aritmetika. 3. a 4. přednáška z kryptografie Obsah Počítání modulo n a jeho časová složitost 3. a 4. přednáška z kryptografie 1 Počítání modulo n - dokončení Umocňování v Zn 2 Časová složitost výpočtů modulo n Asymptotická notace Základní aritmetické

Více

Základy algoritmizace a programování

Základy algoritmizace a programování Základy algoritmizace a programování Složitost algoritmů. Třídění Přednáška 8 16. listopadu 2009 Který algoritmus je "lepší"? Různé algoritmy, které řeší stejnou úlohu zbytek = p % i; zbytek = p - p/i*i;

Více

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

Stochastické modely Informace k závěrečné zkoušce Stochastické modely Informace k závěrečné zkoušce Jan Zouhar Katedra ekonometrie, FIS VŠE v Praze, zouharj@vse.cz 10. února 2015 Průběh zkoušky. Zkouška je ústní s přípravou na potítku. Každý si vylosuje

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

4. NP-úplné (NPC) a NP-těžké (NPH) problémy

4. NP-úplné (NPC) a NP-těžké (NPH) problémy Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA 4. NP-úplné (NPC) a NP-těžké (NPH) problémy Karpova redukce

Více

Algoritmy a algoritmizace

Algoritmy a algoritmizace Otázka 21 Algoritmy a algoritmizace Počítačové programy (neboli software) umožňují počítačům, aby přestaly být pouhou stavebnicí elektronických a jiných součástek a staly se pomocníkem v mnoha lidských

Více

Matematická indukce, sumy a produkty, matematická logika

Matematická indukce, sumy a produkty, matematická logika Matematická indukce, sumy a produkty, matematická logika 8.9. -.0.009 Matematická indukce Jde o následující vlastnost přirozených čísel: Předpokládejme:. Nějaké tvrzení platí pro.. Platí-li tvrzení pro

Více

Substituce. Petr Štěpánek. S využitím materialu Krysztofa R. Apta. Logické programování 2 1

Substituce. Petr Štěpánek. S využitím materialu Krysztofa R. Apta. Logické programování 2 1 Substituce Petr Štěpánek S využitím materialu Krysztofa R. Apta 2006 Logické programování 2 1 Algebra termů Předpokládáme, že je dán jazyk termů. L, definovali jsme množinu jeho Zavedeme některé užitečné

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

Algoritmizace. 1. Úvod. Algoritmus

Algoritmizace. 1. Úvod. Algoritmus 1. Úvod Algoritmizace V dnešní době již počítače pronikly snad do všech oblastí lidské činnosti, využívají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá

Více

Vzdálenost uzlů v neorientovaném grafu

Vzdálenost uzlů v neorientovaném grafu Vzdálenosti a grafy Vzdálenost uzlů v neorientovaném grafu Je dán neorientovaný neohodnocený graf G = (V,E,I) vzdálenost uzlů u a v v neorientovaném souvislém grafu G je délka nejkratší cesty spojující

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

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

4. Trojúhelníkový rozklad p. 1/20

4. Trojúhelníkový rozklad p. 1/20 4. Trojúhelníkový rozklad 4. Trojúhelníkový rozklad p. 1/20 4. Trojúhelníkový rozklad p. 2/20 Trojúhelníkový rozklad 1. Permutační matice 2. Trojúhelníkové matice 3. Trojúhelníkový (LU) rozklad 4. Výpočet

Více

Naproti tomu gramatika je vlastně soupis pravidel, jak

Naproti tomu gramatika je vlastně soupis pravidel, jak 1 Kapitola 1 Úvod V přednášce se zaměříme hlavně na konečný popis obecně nekonečných množin řetězců symbolů dané množiny A. Prvkům množiny A budeme říkat písmena, řetězcům (konečným posloupnostem) písmen

Více

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11 333LP - lgoritmy a programování - Zkouška z předmětu 333LP Jméno Příjmení Už. jméno Marek oháč bohacm11 Zkouškový test Otázka 1 Jaká je hodnota proměnné count po vykonání následujícího kódu: data=[4,4,5,5,6,6,6,7,7,7,7,8,8]

Více