Algoritmy a výpočetní složitost
|
|
- Nela Vávrová
- před 7 lety
- Počet zobrazení:
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 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íce1 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íceALGORITMY 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íceRozhodnutelné 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íceSlož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íceTří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íceSlož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íceSlož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íceAlgoritmizace. 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íceSlož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íce10. 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íceTý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íceTří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íceZ. 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 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íceNP-ú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íceSlož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íceSlož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íceDalší 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íceTří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íceVý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íce3. 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íceSlož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íce11 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ícePŘÍ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íceTý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íceZáklady matematické analýzy
Základy matematické analýzy Spojitost funkce Ing. Tomáš Kalvoda, Ph.D. 1, Ing. Daniel Vašata 2 1 tomas.kalvoda@fit.cvut.cz 2 daniel.vasata@fit.cvut.cz Katedra aplikované matematiky Fakulta informačních
VíceVý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íceMichal 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íceAlgoritmus. 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íceTGH12 - 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íceNá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íceDynamické programování
Dynamické programování prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA)
VíceProblé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íceDatové 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íceNMIN101 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 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 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íceTGH05 - 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íceDefinice 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íceTest 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íceVý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íceSlož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íce5.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íceObecná 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íceZá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íceZá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íceDigitá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íceAlgoritmizace 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íceVztah 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 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íceDatabá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íceUsuzová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íceDefinice 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íceNP-Ú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íceAlgoritmy I, složitost
A0B36PRI - PROGRAMOVÁNÍ Algoritmy I, složitost České vysoké učení technické Fakulta elektrotechnická v 1.01 Rychlost... Jeden algoritmus (program, postup, metoda ) je rychlejší než druhý. Co ta věta znamená??
VíceVý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ícePrincipy 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íceMimo 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íceGö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íceYZTI - 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íceDobý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íceNMIN101 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íceOd 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íceRegulá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íceZá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íceAlgoritmizace složitost rekurzivních algoritmů. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
složitost rekurzivních algoritmů Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Vyjádřen ení složitosti rekurzivního algoritmu rekurentním m tvarem Příklad vyjádření složitosti rekurzivního algoritmu rekurencí:
VíceCOMPLEXITY
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 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ícePrvočí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íceNá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íceNP-ú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íceMatematické 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íceZ. 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íceRekurentní rovnice, strukturální indukce
Rekurentní rovnice, strukturální indukce Jiří Velebil: A7B01MCS 26. září 2011: 1/20 Příklad (Parketáž triminy z minulé přednášky) P(n) = počet parket k vyparketování místnosti rozměru n 1 P(1) = 1. 2 P(n
VíceAlgoritmizace. 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íceIB111 Ú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ícePojem 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íceVý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íceZá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íceBiná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ícePredik 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íceNPRG030 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íceSlož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íceObsah. 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íceZá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íceStochastické 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íceSeminář 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íce4. 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íceAlgoritmy 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íceMatematická 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íceSubstituce. 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ícePří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íceAlgoritmizace. 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íceVzdá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ícePQ-stromy a rozpoznávání intervalových grafů v lineárním čase
-stromy a rozpoznávání intervalových grafů v lineárním čase ermutace s předepsanými intervaly Označme [n] množinu {1, 2,..., n}. Mějme permutaci π = π 1, π 2,..., π n množiny [n]. Řekneme, že množina S
VíceMaturitní 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íce4. 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íceNaproti 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íceB3B33ALP - 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