Problémy a algoritmy

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

Download "Problémy a algoritmy"

Transkript

1 Problémy a algoritmy Algoritmus. Vlastnosti algoritmů. Dělení algoritmů. Složitost algoritmů. Tomáš Bayer Katedra aplikované geoinformatiky a kartografie. Přírodovědecká fakulta UK. 1 / 68

2 Obsah přednášky 1 Úvodní informace o předmětu 2 Problém a algoritmus 3 Algoritmus 4 Analýza efektivity algoritmu Složitost algoritmu Asymptotická složitost 5 Složitost problému 6 Základní techniky návrhu algoritmu 7 Volba algoritmu a problém 2 / 68

3 Úvodní informace o předmětu 1. Plán přednášek Tematické celky: (1,2) Problémy a algoritmy. (3) Úvod do výpočetní geometrie. (4) Geometrické vyhledávání. (5) Konvexní obálky. (6,7) 2D triangulace. (8) Voroného diagramy. (9) Topologická kostra. (10, 11) Kartografická generalizace. (12) Operace s uzavřenými oblastmi v GIS. Cvičení: Implementace algoritmů v jazyce C++ pod GNU/Linux. Literatura: [1] Rourke O. J.: Computational Geometry in C, 2005, Cambridge University Press. [2] de Berg, van Kreveld, Overmars M., Schwarzkopf O.: Computational Geometry, 2000, Springer. [3] Bayer T.: Algoritmy v digitální kartografii, 2008, UK v Praze. [4] Žára J. & kol.: Moderní počítačová grafika, 2004, Computer Press. 3 / 68

4 Problém a algoritmus 2. Problém Termín mající více významů. Definice 1 (Slovník spisovného jazyka českého) Věc k řešení, nerozřešená sporná otázka, otázka k rozhodnutí, nesnadná věc Definice 2 (Wikipedia). Podmínky nebo situace nebo stav, který je nevyřešený, nebo nechtěný, nebo nežádoucí. Problém vyžaduje řešení. Pro nalezení řešení nutné pochopit nejdůležitější aspekty problému. Ne všechny problémy jsme v současné době schopni úspěšně a efektivně vyřešit!!! 4 / 68

5 Problém a algoritmus 3. Problém & počítačová kartografie Zajímají nás problémy, které lze přesně formulovat s využitím matematického aparátu, jejichž řešení lze mechanizovat (např. s využitím počítače). Kartografie je věda a současně umění, u řady problémů neexistuje exaktní řešení: barevnost mapy, čitelnost mapy, kartografická generalizace. Řešení problémů v počítačové kartografii (Digital Cartography) založeno na kombinaci exaktních a subjektivních postupů. Snaha nalézt exaktní postupy řešení a omezovat vliv lidského faktoru při zpracování geodat. V každém okamžiku přibývá mnohem více dat, než lze ručně zpracovat. 5 / 68

6 Problém a algoritmus 4. Popis problému Problém v geoinformatice/počítačové kartografii lze formálně zapsat takto: NÁZEV PROBLÉMU: Slovní popis problému VSTUP: Popis přípustného vstupu (množina vstupních dat). VÝSTUP: Popis výstupu, tj. výsledku, který je pro daný vstup očekáván. Musí existovat funkce f přiřazující vstupním datům požadovaný výstup. Nalezení řešení problému nalezení příslušné funkce f. Definice: Každý problém P je určen uspořádanou trojicí (IN, OUT, f), kde IN představuje množinu přípustných vstupů, OUT množinu očekávaných výstupů a f : IN OUT funkci přiřazující každému vstupu očekávaný výstup. VSTUP/VÝSTUP: Kombinace znaků, celých čísel či přirozených čísel představující kódování. 6 / 68

7 Algoritmus 5. Algoritmizace problémů Dynamický rozvoj přírodních/technických věd přináší řadu nových problémů. Poptávka po odbornících: kteří se orientují v současné problematice a jsou schopni problémy efektivně řešit, kteří jsou schopni hledat řešení nových problémů. Většina současných problémů z oblasti přírodních/technických věd je nějak řešitelná s využitím knihoven či specializovaného software. Vždy lze nalézt nějakou variantu problému, která ještě nebyla zpracována, či problém drobně modifikovat. Jak postupovat dále? Čekat, až problém někdo někdy vyřeší? Řešení problému hledáno ve formě obecného předpisu zahrnujícího posloupnost jednotlivých kroků, tzv. algoritmus řešení. Algoritmizace problémů rozvíjí logické myšlení, zejména schopnost abstraktního uvažování. 7 / 68

8 Algoritmus 6. Algoritmus Pojem cca 1000 let starý, poprvé použit významným perským matematikem Abú Abdallahem Muhammadem ibn Musa al-khwarizmim. 1 Algoritmus je obecný předpis sloužící pro řešení zadaného problému. Představuje posloupnost kroků doplněných jednoznačnými pravidly. Setkáváme se s ním i v běžném životě: kuchyňský recept, lékařský předpis. Algoritmicky řešitelné problémy Algoritmus A řeší problém P, pokud libovolnému vstupu x, x IN, přiřazuje v konečném počtu kroků (alespoň jeden) výstup y, y OUT, tak, že platí: y = f(x). Poznámky: Předpokládáme, že algoritmus A rozumí vstupnímu kódování a je schopen uložit data ve výstupním kódování. Pro zadaný vstup x může existovat více než jedno řešení y, algoritmus A by měl nalézt alespoň jedno. 1 Fibonacci jeho příjmení zkomolil na Algorizmi a začal tento termín používat. 8 / 68

9 Algoritmus 7. Vlastnosti algoritmu A) Determinovanost Algoritmus musí být jednoznačný jako celek i v každém svém kroku. Tohoto stavu nelze dosáhnout přirozenými jazyky, proto jsou pro zápis algoritmu používány formální jazyky. Algoritmus je invariantní vůči formálnímu jazyku!!! B) Rezultativnost Algoritmus vede vždy ke správnému výsledku v konečném počtu kroků. C) Hromadnost Algoritmus lze použít pro řešení stejné třídy problémů s různými vstupními hodnotami. Pro jejich libovolnou kombinaci obdržíme jednoznačné řešení. D) Opakovatelnost Při opakovaném použití stejných vstupních dat vždy obdržíme tentýž výsledek. Pozor na heuristiky! E) Efektivnost Každý krok algoritmu by měl být efektivní. Krok využívá elementární operace, které lze provádět v konečném čase. 9 / 68

10 Algoritmus 8. Řešitelnost problému Řešitelnost problému nelze posuzovat obecně, je nutné stanovit určitá omezení. Omezení problému na speciální typ problému, tzv. ANO/NE problém Problém musí být řešitelný v konečném čase. ANO/NE problém (tzv. rozhodovací problém): Vstupní množina IN = {0, 1} a výstupní množina OUT = {0, 1} jsou dvouprvkové, algoritmus A, problém P. VSTUP: x 1, x 2 VÝSTUP: f(x 1 ) = f(x 2 )? (tj. ANO/NE) Pokud algoritmus A řeší rozhodovací problém problém P (přiřadí správně odpovědi a skončí v konečném čase), problém P označujeme jako algoritmicky rozhodnutelný. Pokud algoritmus A vstupu, na který je odpověd 1, přiřadí správnou odpověd 1 a skončí a pro vstup, na který je odpověd 0, přiřadí odpověd 0 nebo je jeho běh nekonečný, problém P označujeme jako algoritmicky částečně rozhodnutelný. V jiném případě označujeme problém jako algoritmicky nerozhodnutelný. 10 / 68

11 Algoritmus 9. Doplňkový problém P Doplňkový problém P k rozhodovacímu problému P. Představuje takový problém, který má stejné vstupy jako P, ale výstupy jsou prohozeny. Vztahy mezi P a P: Definice1: Je -li P rozhodnutelný problém, pak je P také částečně rozhodnutelný. Definice 2: Je -li P rozhodnutelný, pak je i P rozhodnutelný. Definice 3, negace (2): Je -li P nerozhodnutelný, pak je i P nerozhodnutelný. Postova věta: Je -li P částečně rozhodnutelný a P částečně rozhodnutelný, pak je P rozhodnutelný. 11 / 68

12 Analýza efektivity algoritmu 10. Efektivita algoritmu Efektivita algoritmu je důležitou výkonnostní charakteristikou. Výkonnostní charakteristiky algoritmů nelze ignorovat: časové a materiální úspory. Každý algoritmus má kritické místo (tzv. bottleneck ), které spotřebuje většinu výkonu optimalizace. Efektivní algoritmus řeší problém s minimálními nároky na hardware v co nejrychlejším čase, cílem je co neoptimálnější využití existujících prostředků Time Is Money. Rychlost běhu algoritmu ovlivňuje rychlost běhu jeho nejpomalejší komponenty, pozor na zdánlivě nepodstatné detaily. Nejrychlejší vs. optimální řešení: Nejjednodušší řešení zpravidla nejdéle trvá, ale je jednoduché na implementaci (nenáročné aplikace). Nejrychlejší řešení bývá zpravidla velmi náročné na implementaci (časově kritické aplikace), nemusí však být stabilní. Optimální řešení bývá řádově pomalejší než nejrychlejší varianta, avšak spolehlivé. Průmyslová implementace V průmyslové implementaci nejčastěji používáno optimální řešení aneb v jednoduchosti je síla. 12 / 68

13 Analýza efektivity algoritmu 11. Analýza efektivity algoritmu Efektivita algoritmu stanovena na základě jeho analýzy. Analýzu algoritmu je možné provádět: Empiricky: srovnáním doby běhu různých algoritmů. Provádí se nad 3 množinami dat: náhodná data (ověřují funkcionalitu algoritmu), data s nevhodnou vstupní konfigurací (ověřují schopnost zpracovat libovolná data), skutečná data. Exaktně: s využitím matematické analýzy. Analýza řad, hledání asymptotických funkcí. Cíle analýzy algoritmů: Porovnání různých algoritmů řešící stejný problém: výběr nejvhodnějšího algoritmu (optimalizace volbou algoritmu). Odhad výkonnosti algoritmu: lze tento algoritmus použít pro zadaný problém a vstup? Nastavení parametrů algoritmu: jak nastavit vstupní parametry, aby algoritmus běžel co nejefektivněji? Výběr vhodných datových struktur (optimalizace volbou datové struktury) Častou chybou je pouhé sledování výkonnostních charakteristik algoritmů. Implementace a odladění výkonově efektivnějšího algoritmu pro libovolný vstupní množinu může být značně složité vhodnější je použít pomalejší, ale univerzálnější algoritmus. 13 / 68

14 Analýza efektivity algoritmu Složitost algoritmu 12. Složitost algoritmu Jeden problém může být řešen sadou různých algoritmů. Kdyby počítač pracoval s nekonečnou rychlostí, nezáleželo by na volbě algoritmu. V praxi vykonání instrukce trvá určitou dobu, nejrychlejší je přiřazení, nejpomalejší násobení/dělení. Vyhýbat se mocninám a odmocninám, velmi pomalý výpočet. Různé algoritmy se budou lišit dobou běhu, a to mnohdy velmi významně. Jak exaktně určit, rychlost algoritmu a množství spotřebované paměti? Dvě kritéria: Časová složitost algoritmu (Time Complexity) Popisuje dobu zpracování vstupních dat D algoritmem A v čase T, vyjádřena časovou funkcí t T = t(a(d)) Pamět ová složitost algoritmu (Space Complexity) Popisuje pamět ovou náročnost algoritmu. 14 / 68

15 Analýza efektivity algoritmu Složitost algoritmu 13. Posuzování složitosti algoritmu Doba běhu algoritmu i pamět ová náročnost se mění, existují dva přístupy vyjadřující dobu běhu: A) V závislosti na velikosti vstupní množiny Složitost lze definovat jako funkcí velikosti vstupu n. Závislost doby běhu na n lze hledat v exaktním tvaru (např. 4n 3 9n n + 27), což není časté, nebo běžně ve formě odhadu (např. O(n 3 )). B) V závislosti na vstupní množině dat Pro vstupní množinu se stejnou velikostí n se doba běhu může výrazně měnit (např. třídící algoritmus se chová výrazně jinak, pokud má na vstupu náhodnou, částečně setříděnou nebo reverzně setříděnou posloupnost dat). Složitost lze posuzovat: dle nejhoršího možného případu (Worst Case). dle průměrné doby běhu (Average Case). dle nejlepšího možného případu (Best Case). 15 / 68

16 Analýza efektivity algoritmu Složitost algoritmu 14. Worst/Average Case Nejhorší možný případ (Worst Case): Pro dané n je výsledkem maximum z dob běhu algoritmu pro všechny vstupy velikosti n. T WORST = max(t 1 (n), T 2 (n),..., T n (n)) Zachycuje nejdelší možnou dobu běhu algoritmu (např. nevhodná konfigurace vstupních dat), může být o několik řádů vyšší než Average Case. Algoritmus se bude ve všech případech chovat lépe než pesimistický odhad. V praxi k takové situaci nemusí dojít (nebo jen ve velmi řídkých případech), vlastnosti algoritmu mohou být tímto odhadem zkresleny. Průměrná doby běhu (Average Case): Průměrná doba výpočtu na (běžných) datech velikosti n. Může být o několik řádů lepší než Worst Case. Problematické určení, nejčastěji medián. T AVERAGE = t(t1 (n), T 2 (n),..., T n (n)) Nemusí reprezentovat skutečná data, pouhý matematický konstrukt. 16 / 68

17 Analýza efektivity algoritmu Složitost algoritmu 15. Best Case Nejlepší možný případ (Best Case) Pro dané n je výsledkem minimum z dob běhu algoritmu pro všechny vstupy velikosti n. T BEST = min(t 1(n), T 2(n),..., T n(n)) Zachycuje nejkratší možnou dobu běhu algoritmu (pro ideální konfiguraci vstupních dat). Abychom se abstrahovali od závislosti na hardware, vytváříme model tzv. abstraktního počítače, jehož parametry jsou odvozeny od skutečného počítače. Příkladem abstraktního matematického počítače může být tzv. Turingův stroj nebo tzv. RAM (Random Acces Machine). U dobře navržených algoritmů rozdíl mezi Best Case a Worst Case malý. Optimalizace algoritmu: snížení rozpětí mezi Best Case a Worst Case. Pokud Best Case = Worst Case, nelze dále optimalizovat. Některé algoritmy nejsou z důvodu vysokého Worst Case používány pro časově kritické aplikace, např. QuickSort: Average Case T AVER = n log n, ale Worst Case: T WORST = n 2!!!. Nahrazován HeapSortem, kde AC WC:T AVER = T WORST = n log n. 17 / 68

18 Analýza efektivity algoritmu Složitost algoritmu 16. Ukázka 18 / 68

19 Analýza efektivity algoritmu Asymptotická složitost 17. Asymptotická složitost Pro složitější algoritmy je přesné (algebraické) vyjádření složitosti algoritmu matematicky náročné. Ve většině případů postačí nahrazení přesného vyjádření časové složitosti jeho vhodným odhadem. Asymptotická složitost se pro n limitně blíží k algebraické hodnotě složitosti. Zásady: 1) V matematických výrazech ignorujeme členy malých hodnot (ignorujeme aditivní a multiplikativní konstanty). 2) Do testování nezahrnujeme části algoritmů, které přispívají k analyzovanému výkonu nepatrně (tj. zanedbáme rychlé části algoritmu). 5 asymptotických odhadů složitosti: 1) Asymptotický horní odhad časové složitosti: ostrý O(g(N)), neostrý o(g(n)). 2) Asymptotický dolní odhad časové složitosti: ostrý Ω(g(N)), neostrý ω(g(n)). 3) Asymptotický oboustranný odhad časové složitosti: Θ(g(N)). 19 / 68

20 Analýza efektivity algoritmu Asymptotická složitost 18. Asymptotický horní odhad složitosti O(g(N)) Ilustruje nejhorší možný případ doby běhu algoritmu. Předpoklad 1: Zanedbání multiplikativní konstanty c Necht f(n) je libovolná funkce a c libovolná konstanta, c > 0. Pak funkce f(n) a c f(n) jsou označovány jako (asymptoticky) stejně rychle rostoucí. Předpoklad 2: Zanedbání aditivní konstanty d Necht f(n) je libovolná funkce a d libovolná konstanta, d > 0. Pak funkce f(n) a f(n) + d jsou označovány jako (asymptoticky) stejně rychle rostoucí. Důsledky obou předpokladů: funkce f(n) a c f(n) + d jsou stejně rychle rostoucí. Např. funkce 0.001n 2, 0.5n 2 50, 100n , n patří do stejné třídy (kvadratické funkce). 20 / 68

21 Analýza efektivity algoritmu Asymptotická složitost 19. Definice O(g(N)) Pro libovolné funkce f, g: N N platí: f(n) O(g(n)) ( k N)( n 0 N)( n > n 0 ): f(n) k g(n). Komentář k definici: Z definice plyne, že funkce f(n) roste řádově nejvýše rychle jako g(n), g(n) je horním odhadem f(n). Z definice nevyplývá, že f(n) g(n). Jedná se o řádový růst, zanedbáváme aditivní a multiplikativní konstanty. Z definice nevyplývá, že n : f(n) g(n). Existuje nějaké (n 0 N)(n 0 > N) od kterého vztah asymptoticky platí. Z definice vyplývá, že f(n) O(g(n) tehdy, pokud pro dostatečně velkou konstantu k platí f(n) k g(n), tj. existuje pouze konečné množství výjimek. 21 / 68

22 Analýza efektivity algoritmu Asymptotická složitost 20. Ukázka asymptotického horního odhadu O(g(N)) Příklad: Platí, že 20n 2 O(0.001n 2 )?. Řešení: 20n 2 k 0.001n 2. k 20 = Platí / 68

23 Analýza efektivity algoritmu Asymptotická složitost 21. Pravidla pro práci s O-notací 1) O(O(f(n)) O(f(n)) 2) O(f(n)) + O(f(n)) O(f(n)) 3) c O(g(n)) O(g(n)) 4) O(c g(n)) O(g(n)) 5) f(n) g(n) = O(h(n)) f(n) = g(n) + O(h(n)) 6) O(f(n)) O(g(n)) O(f(n) g(n)) 7) O(f(n)) O(g(n) O( f(n) g(n) ) 8) n k O(f(n)) O(f(n) n k ) 9) O(f(n) + g(n)) O(max(f(n), g(n))) 23 / 68

24 Analýza efektivity algoritmu Asymptotická složitost 22. Příklady Příklad 1, zjednodušení výrazu: (O(n) + n)(n + O(lg(n)) + O(n) + 1) + O(50) (O(n) + n)(n + O(lg(n)) + O(n)) = O(n 2 ) + n 2 + O(n lg(n)) + O(n 2 ) + O(n 2 ) + O(n 2 ) + O(n) + n + O(50). O(n 2 ) + n 2 + O(n lg(n)) + O(n 2 ) + O(n 2 ) + O(n 2 ) + O(n) + n + O(50) = O(n 2 ) + n 2. Příklad 2, zjednodušení výrazu:. (10 lg(n) + O(n) + 4n) n n lg n + O(n) (10 lg(n) + O(n) + 4n) 10 lg(n) + O(n) + 4n n = n lg n + O(n) lg n + O(1) = 10 + O( n logn ) + 4n = O(n) + n. log n 24 / 68

25 Analýza efektivity algoritmu Asymptotická složitost 23. Další asymptotické odhady (1/2) Asymptotický horní odhad složitosti O(g(n)) (ostrý): Pro libovolné funkce f, g: N N platí: f(n) O(g(n)) ( k N)( n 0 N)( n > n 0 ): f(n) k g(n). Interpretace: f roste nejvýše tak rychle jako g. Asymptotický dolní odhad složitosti Ω(g(n)) (ostrý): Pro libovolné funkce f, g: N N platí: f(n) Ω(g(n)) ( k N)( n 0 N)( n > n 0 ): k f(n) g(n). Interpretace: f roste nejméně tak rychle jako g. Asymptotický horní odhad složitosti o(g(n)) (neostrý): Pro libovolné funkce f, g: N N platí: f(n) o(g(n)) ( k N)( n 0 N)( n > n 0 ): f(n) < k g(n). Interpretace: f roste pomaleji než g. 25 / 68

26 Analýza efektivity algoritmu Asymptotická složitost 24. Další asymptotické odhady (2/2) Asymptotický dolní odhad složitosti ω(g(n)) (neostrý): Pro libovolné funkce f, g: N N platí: f(n) ω(g(n)) ( k N)( n 0 N)( n > n 0 ): k f(n) < g(n). Interpretace: f roste rychleji než g. Asymptotický oboustranný (horní i dolní) odhad Θ(g(n)) : Pro libovolné funkce f, g: N N platí: f(n) Θ(g(n)) ( k 1 N)( k 2 N)( n 0 N)( n > n 0 ): 0 k 1 g(n) f(n) k 2 g(n). Interpretace: Odhad stejné rychlosti růstu, f roste stejně rychle jako g, tj. složitost algoritmu daného f(n) je asymptoticky stejná jako g(n). Popisuje očekávanou složitost (tj. průměrný případ). Vztahy mezi O-notacemi jsou platné i pro ostatní asymptotické odhady Ω(g(n)), o(g(n)), ω(g(n)). V praxi jsou nejčastěji používány asymptotické odhady O(g(n)), Ω(g(n)), Θ(g(n)). 26 / 68

27 Analýza efektivity algoritmu Asymptotická složitost 25. Ukázka asymptotického dolního odhadu Ω(g(N)) 27 / 68

28 Analýza efektivity algoritmu Asymptotická složitost 26. Ukázka asymptotického oboustranného odhadu Θ(g(N)) 28 / 68

29 Analýza efektivity algoritmu Asymptotická složitost 27. Příklady Př. 1: Který kód proběhne rychleji? int n = 100; int sum = 0; for (i = 0; i < n; i++){ for (j = 0; j < i; j++){ sum += i+j; } } int n = 50;int sum = 0; for (i = 0; i < n; i++){ for (j = 0; j < n; j++){ sum += i+j; } } První kód: vnější cyklus 100x, vnitřní 0,1,2,...,99, celkem 50*99=4950x Druhý kód: vnější cyklus 50x, vnitřní cyklus 50, celkem 50*50=2500. Druhý cyklus je rychlejší. 29 / 68

30 Analýza efektivity algoritmu Asymptotická složitost 28. Příklady Př. 2: Problém s dobou řešení k n 2 je na řešen pro n = na PC. Jak je možné zvětšit vstup, aby byla úloha na 10x rychlejším počítači vyřešena ve stejném čase? Staré PC: k ,nové PC 10 k k = k n 2 n = = Poměr se zvětší = Př. 3: Algoritmus A 1 pro řešení úlohy použije 10000n operací, algoritmus A 2 pro řešení úlohy použije 12n operací. Pro jakou množinu dat je výhodnější použít A 2? 12n n n n < 0 n 1 = 4, n 2 = 837. Pro n < 837 je vhodnější algoritmus A / 68

31 Analýza efektivity algoritmu Asymptotická složitost 29. Příklady Př. 4: Která tvrzení jsou pravdivá? 1) 20n O(n) 2) 60n 2 100n O(n 2 ) 3) n 2 O(n log n) 4) log n O(n) 5) n log n O(n 2 ) 6) n log n Ω(n) 7) n log n Ω(n 2 ) 8) n Ω(n log n) Řešení: Ad 1) Patří do stejné skupiny, pravdivé. Ad2) viz 1) Ad 3) n log n roste pomaleji než n 2, nepravdivé. Ad 4) n roste rychleji než log n, pravdivé. Ad 5) n 2 roste rychleji než n log n, pravdivé. Ad 6) n roste pomaleji než n log n, pravdivé. Ad 7) n 2 roste rychleji než n log n, nepravdivé. Ad 8) n log n roste rychleji než n, nepravdivé. 31 / 68

32 Analýza efektivity algoritmu Asymptotická složitost 30. Příklady odhadů složitosti Algoritmus 1: C 1 = 1; pro n > 1 :C n = C n 1 + n: procházení n 1 položek C n = C n 1 + n = C n 2 + (n 1) + n = C n 3 + (n 2) + (n 1) + n = C (n 2) + (n 1) + n = Algoritmus 2: C 1 = 0; pro n > 1 :C n = C n/2 + 1, n = 2 N : půlení vstupu Divide and Conquer. C n = log 2 (N) n(n + 1) 2 Algoritmus 3: C 1 = 0; pro n > 2 :C n = C n/2 + n, n = 2 N : půlení vstupu + kontrola vstupní položky C n = n 32 / 68

33 Analýza efektivity algoritmu Asymptotická složitost 31. Charakteristika algoritmů dle časové složitosti Složitost Vyjádření Charakteristika Konstantní 1 Konstantní doba běhu programu. Nezávisí na vstupních datech. Logaritmická log(n) Doba běhu se mírně zvětšuje v závislosti na N. Řešení hledáno opakovaným dělení vstupní množiny na menší množiny (hledání v binárním stromu). Lineární n Doba běhu programu roste lineárně s N. Zpracováván každý prvek, např.cyklus. n log(n) n log(n) Doba běhu roste téměř lineárně. Opakované dělení vstupního problému na menší problémy, které jsou řešeny nezávisle (Divide and Conquer, např. třídění). Kvadratická n 2 Doba běhu roste kvadraticky, vhodný pro menší množiny dat. Vnořený cyklus. Kubická n 3 Doba běhu roste s třetí mocninou, dvojnásobně vnořený cyklus. V praxi snaha nahrazovat algoritmus předchozími dvěma kategoriemi (Greedy algoritmy) Exponenciální 2 n Exponenciální doba běhu. Použitelné pro množiny do n=30 Aplikace v kryptografii. 33 / 68

34 Analýza efektivity algoritmu Asymptotická složitost 32. Ukázka časové složitosti algoritmů Vstupní množina n = 10, 100, 1000 prvků. Počet operací nutných pro řešení problému. Složitost n = 10 n = 100 n = 1000 Logaritmická složitost Lineární složitost Kvadratická složitost Kubická složitost Bikvadratická složitost Exponenciální složitost Faktoriální složitost / 68

35 Analýza efektivity algoritmu Asymptotická složitost 33. Ukázka doby běhu algoritmů Ukázka doby běhu algoritmu pro n = CPU: Počet operací/s 106, 109, s s s Složitost CPU 106 CPU 109 CPU 1012 s s s Logaritmická složitost hodiny vteřiny okamžitě Lineární složitost hodiny vteřiny okamžitě N log(n) hodiny vteřiny okamžitě Kvadratická složitost nikdy roky týdny Kubická složitost nikdy nikdy měsíce Bikvadratická složitost nikdy nikdy roky Exponenciální složitost nikdy nikdy nikdy Faktoriální složitost nikdy nikdy nikdy Nepostačuje zakoupení výkonnějšího PC. 35 / 68

36 Analýza efektivity algoritmu Asymptotická složitost 34. Grafické znázornění algoritmů dle časové složitosti Vstupní množina: n (0, 20) 36 / 68

37 Složitost problému 35. Složitost problému vs složitost algoritmu Dle výše uvedených postupů lze určit složitost algoritmu. Jak přejít ke složitosti problému? Problém může být řešen řadou algoritmů s různou složitostí: O(n 3 ), O(n 2 ), O(n log n)... Složitost problému odpovídá složitosti efektivního algoritmu, který problém řeší. Věty o vztazích složitosti problému a algoritmu: Věta 1: Problém P má složitost O(g(n)), jestliže pro něj existuje algoritmus řešící ho v O(g(n)). Interpretace: Pokud se podaří nalézt algoritmus se složitostí O(g(n)), pak má problém i složitost O(g(n)). Věta 2: Problém P má složitost Ω(g(n)), jestliže pro něj existuje algoritmus řešící ho v Ω(g(n)). Interpretace: Neexistuje algoritmus, který by problém řešil rychleji. Velmi obtížné matematické důkazy!!! Věta 3: Problém P má složitost Θ(g(n)), jestliže pro něj existuje algoritmus řešící ho v Θ(g(n)). Interpretace: 1)+2) Hledán algoritmus se složitostí O(g(n)) + důkaz, že neexistuje rychlejší algoritmus. Tyto algoritmy v konkrétním případě nemusejí být známy. 37 / 68

38 Složitost problému 36. Třída složitosti algoritmů Zaváděny pro (hierarchickou) kategorizaci problémů dle jejich složitosti. Rozčlenění problémů do tříd téže složitosti umožňuje: 1) Odhalovat vzájemné podobnosti těchto problémů. 2) Řešení jednoho problému převodem na jiný problém, tj. převodu problému s neznámým řešením na podobný problém s již známým řešením. Problém se snažíme zařadit do třídy s co nejnižší složitostí. Většina problémů má limitní hranici složitosti, po jejímž dosažení již algoritmus nelze urychlit. Definice: Pro funkci f : N N označujeme třídou časové složitosti τ(f(n)) množinu problémů P, které lze řešit s časovou složitostí O(f). P τ(n) τ(n log n) τ(n 2 ) τ(n 3 ) τ(2 n ). 38 / 68

39 Složitost problému 37. Třída složitosti PTIME Dvě základní třídy složitosti: třída složitosti PTIME (problémy rychle řešitelné), třída složitosti NPTIME (problémy rychle verifikovatelné). Třída složitosti PTIME: Do této třídy patří problémy řešitelné algoritmy s polynomiální složitostí: O(n c ). PTIME = τ(n c ) Problémy, pro něž existuje polynomiální algoritmus, nazýváme výpočetně snadné, představují prakticky zvládnutelné problémy. c=0 V praxi nejčastěji používány algoritmy se složitostí: O(n), O(n log(n), O(n 2 ), O(n 3 ). Nejznámější problémy třídy PTIME: aritmetické operace, třídění, vyhledávání, některé grafové či geometrické algoritmy. 39 / 68

40 Složitost problému 38. Nedeterministické polynomiální algoritmy Nedeterministický algoritmus: při opakovaném stejném vstupu dává různé výsledky (ke každé hodnotě vstupu definována více variant výstupu, algoritmus se rozhoduje náhodně/pseudonáhodně). Deterministický algoritmus: při opakovaném stejném vstupu dává stejné výsledky (ke každé hodnotě vstupu definována hodnota výstupu). Pro každou množinu vstupních dat existuje 2 nc potenciálních řešení, u každého z nich nutné zjistit, zda se jedná o skutečné řešení odpověd ANO/NE, vede opět k rozhodovacímu problému. Definice: Nedeterministický algoritmus A rozhoduje ANO/NE problém P, pokud: Pro problém, na nějž je odpověd ANO alespoň jeden výpočet nedeterministického algoritmu A vydá ANO. Pro problém, na nějž je odpověd NE každý výpočet nedeterministického algoritmu A vydá NE. Převoditelnost lze realizovat v polynomiálním čase. Je -li vstupní formule splnitelná, alespoň jeden opakovaný výpočet tuto skutečnost ověří vydáním ANO. 40 / 68

41 Složitost problému 39. Třída složitosti NPTIME Časová složitost nedeterministického algoritmu: Časovou složitostí nedeterministického algoritmu A představuje funkce T A : N N, kde T A(n) je délkou nejdelšího výpočtu algoritmu A pro vstup velikosti n T A(n) = max(t A). Třída NPTIME je třídou všech problémů, které jsou rozhodovány Nedeterministickými polynomiálními algoritmy v polynomiálním čase O(n c ), c > 0. Existuje pro ně verifikační algoritmus pracující v polynomiálně omezeném čase. Použití u tzv. optimalizačních úloh obslužné algoritmy: Jak optimalizovat počet pokladen, aby fronta byla co nemenší a náklady zaměstnavatele co nejnižší? Jak optimalizovat dopravní značení (semafory), aby se co nejvíce zmenšily fronty v ulicích? Vztah mezi PTIME a NPTIME: PTIME NPTIME nebo PTIME = NPTIME 41 / 68

42 Složitost problému 40. Převoditelnost problému Obtížnost problémů náležejících třídy NP je stejná. Nalezení rychlého algoritmu pro řešení kterékoliv z těchto úloh, by znamenalo nalezení rychlého algoritmu pro všechny úlohy této třídy (Cook, 1970). Pokud umíme efektivně řešit problém P 2, potom lze problém P 1 můžeme efektivně vyřešit tím převedením na P 2. Převedení musí být dostatečně rychlé (tj. polynomiální). Polynomiální ANO/NE problém P 1 je polynomiálně převoditelný na problém P 2, jestliže existuje polynomiální algoritmus A: který pro libovolný vstup v problému P 1 sestrojí vstup A(v) problému P 2. platí, že odpověd na otázku problému P 1 pro vstup v je ANO právě tehdy, když odpověd na otázku problému P 2 pro vstup A(v) je ANO. 42 / 68

43 Složitost problému 41. NP-těžký a NP-úplný problém NP-těžký problém Problém Q nazýváme NP-těžkým, pokud každý problém ve třídě NP lze na problém Q polynomiálně převést. Interpretace: Pokud bychom nalezli nějaký polynomiální algoritmus řešící problém Q, pak takový algoritmus musí existovat pro každý problém v NP: PTIME = NPTIME (zatím žádný takový algoritmus nebyl nalezen). Není znám algoritmus řešící problém v polynomiálním čase, řešení lze ověřit v polynomiálním čase. NP-úplný problém Problém Q nazýváme NP-úplným, pokud je NP-těžký, a náleží do třídy NP. Jedná se o nejtěžší úlohy z třídy NP. Do této skupiny patří řada problémů, u kterých není známo exaktní řešení. Není znám algoritmus řešící problém v polynomiálním čase avšak nelze prokázat, že takové řešení neexistuje. Praktické použití: je číslo x prvočíslo? Existují p, q 1 tak, aby platilo x = pq? Není znám algoritmus provádějící rozklad x na součin prvočísel (faktorizace) (RSA). 43 / 68

44 Složitost problému 42. Vztah mezi P, NP, NP-úplným problémem 44 / 68

45 Složitost problému 43. Příklady NP-úplných problémů V současné době existuje přes 1000 NP-úplných problémů, u kterých není znám polynomiální algoritmus. Jsou často velmi podobné problémům, u kterých existuje polynomiální algoritmus. Příklady NP-úplných problémů: TSP problem (problém obchodního cestujícího): navštívení všech vrcholů grafu právě jednou, délka cesty nejkratší. Problém k barev: obarvení vrcholů grafu tak, aby žádné dva sousední vrcholy nebyly obarveny dvěma stejnými barvami. Problém batohu: Jak naskládat do batohu předměty známého tvaru tak, aby zabíraly co nejméně místa? Loupežnický problém: rozdělení množiny n dvě podmnožiny se stejným součtem. NP-úplné problémy lze řešit přibližně: aproximační algoritmy. 45 / 68

46 Základní techniky návrhu algoritmu 44. Techniky návrhu algoritmů Návrh algoritmu prováděn dvěma technikami: Návrh algoritmu Shora dolů, Návrh algoritmu Zdola nahoru. V praxi obě techniky z důvodů větší efektivity často kombinujeme. Představují analogie postupů používaný při řešení běžných problémů. 46 / 68

47 Základní techniky návrhu algoritmu 45. Návrh algoritmu Shora dolů Návrh algoritmu Shora dolů Odvozen z postupu, jakým člověk řeší složité úkoly v praxi. Problém rozkládáme na jednodušší kroky, tzv. dekompozice problému. Postup směrem od obecného ke konkrétnímu. Postupně tak dospějeme k elementárním krokům, které již zpravidla umíme poměrně snadno vyřešit. Návrh algoritmu metodou shora-dolů je nejpoužívanějším přístupem. Příkladem využití návrhu shora dolů může být metoda Divide&Conquer. Návrh algoritmu Zdola nahoru Opačný přístup než Shora dolů. Elementární kroky se snažíme za použití abstrakce sdružovat do složitějších celků ve snaze nalézt řešení zadaného problému. Postup směrem od konkrétního k obecnému. Používán převážně při implementaci algoritmu: 1) Nejprve vytváříme nejjednodušší komponenty. 2) Jednoduché komponenty spojujeme ve složitější komponenty. 3) Jako poslední vytváříme zpravidla hlavní program. 47 / 68

48 Základní techniky návrhu algoritmu 46. Druhy algoritmů Problémy řešené v běžném životě jsou různorodé. Při návrhu algoritmu neexistuje univerzální technika vedoucí k nalezení řešení. V některých případech požadujeme přesné řešení, někdy postačuje řešení přibližné (přesné nemusí existovat, viz NP-úplné problémy ). Každá z technik je vhodná pro řešení jiných skupin problému. V závislosti na typu problému je nutné zvolit vhodnou techniku k jeho řešení. Přehled technik návrhu algoritmů: Metoda hrubé síly (Brute Force Algorithm). Inkrementální algoritmy (Incremental Algorithms). Rozděl a panuj (Divide and Conquer). Heuristické algoritmy (Heuristic Algorithm). Aproximační algoritmy Randomizované algoritmy 48 / 68

49 Základní techniky návrhu algoritmu 47. Metoda hrubé síly Vyzkoušení všech variant řešení problému, vybráno nejlepší z nich. Počet operací nutných k nalezení řešení roste nepolynomicky (exponenciálně n c, faktoriálně n!). Výhodou je jednoduchost implementace. Lze aplikovat pouze na malé datové soubory, pro rozsáhlé soubory nelze vyzkoušet všechny metody, nalezené řešení nemusí být nejlepší. Postupy založené na hrubé síle bývají nazývány naivními algoritmy, neobsahují žádnou hlubší myšlenku. Využití např. u NP problémů. Lepších výsledků pro tyto problémy dosahují heuristické algoritmy. 49 / 68

50 Základní techniky návrhu algoritmu 48. Inkrementální algoritmy Postupné přidávání resp. výběr jednoho prvku ze vstupní množiny resp. z existujícího řešení, po každém takovém kroku je řešení aktualizováno. Druhy inkrementálních algoritmů: Vlastnosti: Inkrementální vkládání, Inkrementální konstrukce, Inkrementální výběr. Algoritmy implementačně poměrně jednoduché, za předpokladu, že přidání / odebrání jednoho prvku příliš neovlivní výsledné řešení. Vhodné i pro značně složité problémy. Snadno lze analyzovat změny řešení v závislosti na vstupní množině dat. Lze použít jako on-line algoritmy, po přidání vstupu vidíme výsledné řešení nad podmnožinou zpracovaného data setu. Jedny z nejčastěji používaných algoritmů ve výpočetní geometrii: konvexní obálky, Voronoi Diagramy, Delauany triangulace. 50 / 68

51 Základní techniky návrhu algoritmu 49. Inkrementální vkládání = Incremental Insertion Algoritmus inkrementálního vkládání konstruuje řešení nad množinou M = {m i} n i=1 prvků tak, že nalezne řešení pro množinu M = {m i} n 1 i=1 prvků a poté do této množiny přidá prvek m n (tj. updatuje stávající řešení). {m i} n i=1 = {m i} n 1 i=1 m n Celá vstupní množina dat nemusí být k dispozici po dobu běhu algoritmu, data mohou být získávána průběžně (tj. i v době běhu algoritmu). Data mohou být vybírána ze vstupní množiny bud randomizovaně nebo dle určitých pravidel. Jeden z nejčastěji používaných postupů ve výpočetní geometrii. V paměti udržováno většinou pouze výsledné řešení, pro některé situace i průběžná řešení (DT). V takovém případě lze snadno analyzovat vliv dat na řešené, tj. provést krok zpět. Pro první kroky řešení ( malá n) je nutno vstupní množinu doplnit vhodně volenými daty a tato data po zpracování množiny n prvků z řešení dodatečně odstranit. 51 / 68

52 Základní techniky návrhu algoritmu 50. Inkrementální vkládání: konstrukce DT 52 / 68

53 Základní techniky návrhu algoritmu 51. Inkrementální konstrukce = Incremental Construction Algoritmus inkrementálního konstrukce generuje řešení nad podmnožinou N M průběžně, přidání dalšího vstupu zpravidla neovlivní dílčí řešení. Data zpracovávána podle požadavků algoritmu, nemohou být přidávána na vstup randomizovaně. V době běhu algoritmu musí být k dispozici celá vstupní množina dat. Pro urychlení běhu algoritmu je vhodné data předzpracovat, např. vhodně setřídit. Algoritmus inkrementální konstrukce často používán ve výpočetní geometrii: Delaunay triangulace Většinou pomalejší než inkrementální vkládání. 53 / 68

54 Základní techniky návrhu algoritmu 52. Inkrementální konstrukce: DT 54 / 68

55 Základní techniky návrhu algoritmu 53. Divide & Conquer Založena na opakovaném rozdělování problému na menší a jednodušší podproblémy, které jsou svým řešením podobné původnímu problému. Důsledek návrhu algoritmu technikou Shora dolů. Hodí se pro dekomponovatelné úlohy, tj. úlohy rozdělitelné na podúlohy stejného nebo podobného typu. Dělení prováděno dokud není řešení podproblému triviální (tj. většinou přímé). Takové řešení umíme zpravidla nalézt bez složitých výpočtů. Podproblémy řešeny nezávisle na sobě a poté jejich řešení spojena v celek, čímž získáme řešení původního problému. Odhad složitosti: Θ(n log n) Techniky řešení: Rekurze, iterace. Příklady: třídící algoritmy (Merge Sort, Quick Sort), významné pro úlohy výpočetní geometrie (Convex Hull, Voronoi Diagram, Delaunay Triangulace...), kartografická generalizace (Douglas Peucker Algorithm) 55 / 68

56 Základní techniky návrhu algoritmu 54. Ukázka Douglas-Peuckerova algoritmu 56 / 68

57 Základní techniky návrhu algoritmu 55. Heuristické algoritmy Charakteristika heuristiky: Technika řešení problémů, vygenerováno velké množství potenciálních řešení (na rozdíl od metody hrubé síly nikoliv všechny varianty), z nich hledáno nejlepší možné řešení. Vygenerovaná množina nemusí obsahovat nejlepší možné řešení. Heuristické algoritmy využívají heuristiku. Nehledají exaktní řešení problému, ale tzv. přípustné řešení, takové řešení není nejlepší možné, ale zároveň není špatné. Řešení nemusí být nalezeno v rychlém čase, některé heuristiky pracují poměrně dlouho. Špatné určování časové složitosti, někdy běží rychle, jindy ne (závislost na vstupních datech). Zvýšením počtu opakování lze dosáhnou přesnějšího řešení, kvalita řešení zpravidla je zpravidla funkcí počtu iterací (odmocnina) nadměrné zvyšování iterací nemá proto smysl. 57 / 68

58 Základní techniky návrhu algoritmu 56. Techniky heuristiky Základní techniky heuristiky: Iterativní algoritmy: Postupné hledání řešení nad zmenšující se množinou možných řešení, kvalita řešení se v každém dalším kroku zlepšuje. Hladové algoritmy: V každém dílčím kroku hledáno optimální řešení. Hledáním lokálního minima chceme nalézt globální minimum. Genetické algoritmy: Založeny na principech evoluční biologie. Do dalšího kroku přežívají pouze perspektivní řešení, která jsou dále zlepšována drobnou modifikací (křížením). Výhody a nevýhoda heuristiky: + Snadná implementace. + Často jediné řešení problémů, u nichž neexistuje exaktní řešení (NP problémy). - Obtížné stanovení časové složitosti, závislost na konfiguraci vstupních dat. - Řešení nelze dokázat. - V mezních situacích nemusí být nalezené řešení vhodné. - Není zaručeno, že takové řešení bude vždy nalezeno. 58 / 68

59 Základní techniky návrhu algoritmu 57. Kvalita řešení Cílem nalezení přípustného řešení, jak je nalezené řešení dobré?. Hodnocení kvality nalezeného řešení: odchylka řešení m A nalezeného algoritmem A od optimálního řešení m opt Často hodnoceno poměrem k, nalezené řešení představuje k% optima (např. 90%). k = m A m opt Jako optimální řešení může být posuzováno dosud nejlepší nalezené řešení. počet kroků vedoucích k nalezení řešení Snaha o co nejrychlejší konvergenci algoritmu. Důležitá volba podmínky ukončující iteraci. 59 / 68

60 Základní techniky návrhu algoritmu 58. Hladový algoritmus = Greedy Algorithm. Hladový algoritmus se snaží z množiny M = {m i } vybrat podmnožinu N M takovou, která má minimální/maximální sumu ohodnocení w(n) = N M w(m i). Hodnotu w(m i ) nazýváme ohodnocením prvku m i, funkci w(n) označujeme jako účelovou funkcí. Hladový algoritmus hledá v každém kroku lokální minimum/maximum účelové funkce ve snaze nalézt globální minimum/maximum účelové funkce. Tímto postupem však globální minimum nemusí být vždy nalezeno. Algoritmus v takovém případě vygeneruje přípustné řešení, které není výrazně horší než optimální řešení. Jako přípustné řešené označíme libovolnou množinu N M, jako optimální řešení množinu N M pro kterou platí w(n) = min resp. w(n) = max. 60 / 68

61 Základní techniky návrhu algoritmu 59. Implementace hladového algoritmu Při implementaci Greedy algoritmů používány dynamické datové struktury, zejména prioritní fronta. Vstupní množina M, množina řešení N. Postup: Všechny prvky m i množiny M setřídíme do posloupnosti vzestupně resp. sestupně dle hodnot w i v závislosti na tom, zda hledáme minimum/maximum. V každém kroku vybereme prvek m j s nejnižším resp. nejvyšším ohodnocením w j, dočasně ho přidáme k existující množině prvků N j 1. Pro novou množinu N j určíme w(n j). Pokud : w(n j) < min resp. w(n j) > max: Přidáním prvku m j se snížilo resp. zvýšilo ohodnocení množiny N j 1. Spočteme nové minimum min = w(n j) resp. maximu max = w(n j) množiny N j. Prvek m j přidáme do N j 1. Pak N j = N j 1 m j. V opačném případně množinu N j 1 ponecháme beze změny: N j = N j 1. Body 2,3 opakujeme pro všechna m. Po prohledání všech m účelová funkce w(n j) splňuje podmínku minimálního resp. maximálního ohodnocení. 61 / 68

62 Základní techniky návrhu algoritmu Tomáš Bayer Ukázka konstrukce (Katedra aplikované nejkratší geoinformatiky Problémy cesty a algoritmy kartografie. metodou Přírodovědecká Nearest fakultaneighbor. UK.) 62 / Heuristika: TSP, Nearest Neighbor

63 Základní techniky návrhu algoritmu 61. Heuristika: TSP, Best Insertion 63 / 68

64 Základní techniky návrhu algoritmu 62. Randomizované algoritmy Algoritmy zavádějí do procesu řešení nedeterministický prvek, tj. prvek náhodnosti. Cílem zjednodušení implementace algoritmu při zachování Worst Case. Máme -li štěstí (jestliže není vybrán nevhodný prvek), běží algoritmus průměrně rychleji. Tímto postupem lze řešit úlohy, které nemusí být běžně řešitelné. Metody randomizace: Náhodný (nedeterministický) výběr prvku ze vstupních dat Zpracování dat ze vstupní množiny v náhodném pořadí, v každém okamžiku vybrán náhodný prvek. Náhodné stanovení prahové veličiny Výběr náhodného prvku u kterého očekáváme požadované statistické parametry (např. medián). Nahrazuje předzpracování ve formě statistické analýzy dat. Výhody a nevýhody: + snadnost implementace, + vylepšení špatných vlastností algoritmů (špatný Worst Case, dobrý Average Case), - nelze použít pro NP problémy, - v obecných případech vede převod deterministického algoritmu na nedeterministický ke zhoršení výkonu. 64 / 68

65 Základní techniky návrhu algoritmu 63. Randomizované algoritmy Dělení randomizovaných algoritmů: Randomizované inkrementální algoritmy: Zpravidla náhodný výběr prvku ze vstupní množiny, použití např. u triangulací. Randomizované Divide & Conquer algoritmy: Náhodný výběr prvku majícího předpokládané statistické parametry. Např. QuickSort, náhodné stanovení mediánu. Vzorkování: Před spuštěním algoritmu obyčejně provedena statistická analýza podmnožiny dat, statistické parametry následně vztaženy na celý vstupní soubor. Výběr vzorku velmi důležitý, požadavky: reprezentativnost (vzorek reprezentuje rozložení dat v celém souboru), přiměřená velikost (krátká doba zpracování). 65 / 68

66 Základní techniky návrhu algoritmu 64. Randomizované algoritmy Typy vzorkování: Jednoduché vzorkování Všechny prvky vstupní množiny mají stejnou pravděpodobnost pro zařazení do vzorku. Položky vybrány náhodně, nemusí být rovnoměrně rozloženy. Systematické vzorkování Výběr každé n-té položky, první položka vybrána náhodně. Výhodou lepší rozložení položek v souboru. Shlukové vzorkování Ze vstupní množiny vybrán náhodný / předem daný počet vzorků. Zpracovány všechny prvky každého vybraného vzorku. Použití: Třídící algoritmy, konvexní obálky, triangulace, hledání průsečíků. 66 / 68

67 Základní techniky návrhu algoritmu 65. Randomizované zpracování bodů: body vybírány ze shluků v náhodném pořadí 67 / 68

Obsah přednášky. Analýza algoritmu Algoritmická složitost Návrhy algoritmů Urychlování algoritmů 1/41

Obsah přednášky. Analýza algoritmu Algoritmická složitost Návrhy algoritmů Urychlování algoritmů 1/41 Obsah přednášky Analýza algoritmu Algoritmická složitost Návrhy algoritmů Urychlování algoritmů 1/41 Analýza algoritmu Proč vůbec dělat analýzu? pro většinu problémů existuje několik různých přístupů aby

Více

Triangulace. Význam triangulace. trojúhelník je základní grafický element aproximace ploch předzpracování pro jiné algoritmy. příklad triangulace

Triangulace. Význam triangulace. trojúhelník je základní grafický element aproximace ploch předzpracování pro jiné algoritmy. příklad triangulace Význam triangulace trojúhelník je základní grafický element aproximace ploch předzpracování pro jiné algoritmy příklad triangulace Definice Triangulace nad množinou bodů v rovině představuje takové planární

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

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem ČVUT FEL X36PAA - Problémy a algoritmy 3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem Jméno: Marek Handl Datum: 1. 1. 2009 Cvičení: Pondělí 9:00 Zadání Naprogramujte

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

Optimalizace obecný úvod. [proč optimalizovat?] Formalizace problému. [existují podobné problémy?]

Optimalizace obecný úvod. [proč optimalizovat?] Formalizace problému. [existují podobné problémy?] Optimalizace obecný úvod 1 Optimalizace obecný úvod Motivace optimalizačních úloh [proč optimalizovat?] Formalizace problému [jak obecně popsat optimalizační úlohu?] Klasifikace optimalizačních problémů

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

Zákony hromadění chyb.

Zákony hromadění chyb. Zákony hromadění chyb. Zákon hromadění skutečných chyb. Zákon hromadění středních chyb. Tomáš Bayer bayertom@natur.cuni.cz Přírodovědecká fakulta Univerzity Karlovy v Praze, Katedra aplikované geoinformatiky

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

3 Co je algoritmus? 2 3.1 Trocha historie... 2 3.2 Definice algoritmu... 3 3.3 Vlastnosti algoritmu... 3

3 Co je algoritmus? 2 3.1 Trocha historie... 2 3.2 Definice algoritmu... 3 3.3 Vlastnosti algoritmu... 3 Obsah Obsah 1 Program přednášek 1 2 Podmínky zápočtu 2 3 Co je algoritmus? 2 3.1 Trocha historie............................ 2 3.2 Definice algoritmu.......................... 3 3.3 Vlastnosti algoritmu.........................

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

MATURITNÍ TÉMATA Z MATEMATIKY

MATURITNÍ TÉMATA Z MATEMATIKY MATURITNÍ TÉMATA Z MATEMATIKY 1. Základní poznatky z logiky a teorie množin Pojem konstanty a proměnné. Obor proměnné. Pojem výroku a jeho pravdivostní hodnota. Operace s výroky, složené výroky, logické

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

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

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh Algoritmizace prostorových úloh Vektorová data Daniela Szturcová Prostorová data Geoobjekt entita definovaná v prostoru. Znalost jeho identifikace, lokalizace umístění v prostoru, vlastností vlastních

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

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

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

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

Základní datové struktury

Základní datové struktury Základní datové struktury Martin Trnečka Katedra informatiky, Přírodovědecká fakulta Univerzita Palackého v Olomouci 4. listopadu 2013 Martin Trnečka (UPOL) Algoritmická matematika 1 4. listopadu 2013

Více

2. úkol MI-PAA. Jan Jůna (junajan) 3.11.2013

2. úkol MI-PAA. Jan Jůna (junajan) 3.11.2013 2. úkol MI-PAA Jan Jůna (junajan) 3.11.2013 Specifikaci úlohy Problém batohu je jedním z nejjednodušších NP-těžkých problémů. V literatuře najdeme množství jeho variant, které mají obecně různé nároky

Více

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: CZ.1.07/1.5.00/34.0410 Číslo šablony: 1 Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek:

Více

Pohled do nitra mikroprocesoru Josef Horálek

Pohled do nitra mikroprocesoru Josef Horálek Pohled do nitra mikroprocesoru Josef Horálek Z čeho vycházíme = Vycházíme z Von Neumannovy architektury = Celý počítač se tak skládá z pěti koncepčních bloků: = Operační paměť = Programový řadič = Aritmeticko-logická

Více

Úvod do mobilní robotiky AIL028

Úvod do mobilní robotiky AIL028 Pravděpodobnostní plánování zbynek.winkler at mff.cuni.cz, md at robotika.cz http://robotika.cz/guide/umor05/cs 12. prosince 2005 1 Co už umíme a co ne? Jak řešit složitější případy? Definice konfiguračního

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

Pravděpodobnost, náhoda, kostky

Pravděpodobnost, náhoda, kostky Pravděpodobnost, náhoda, kostky Radek Pelánek IV122, jaro 2015 Výhled pravděpodobnost náhodná čísla lineární regrese detekce shluků Dnes lehce nesourodá směs úloh souvisejících s pravděpodobností krátké

Více

2. Složitost, grafové algoritmy (zapsal Martin Koutecký)

2. Složitost, grafové algoritmy (zapsal Martin Koutecký) 2. Složitost, grafové algoritmy (zapsal Martin Koutecký) Model Ram Při analýze algoritmu bychom chtěli nějak popsat jeho složitost. Abychom mohli udělat toto, potřebujeme nejprve definovat výpočetní model.

Více

Stromy, haldy, prioritní fronty

Stromy, haldy, prioritní fronty Stromy, haldy, prioritní fronty prof. Ing. Pavel Tvrdík CSc. Katedra počítačů FEL České vysoké učení technické DSA, ZS 2008/9, Přednáška 6 http://service.felk.cvut.cz/courses/x36dsa/ prof. Pavel Tvrdík

Více

Mgr. Ladislav Zemánek Maturitní okruhy Matematika 2013-2014. 1. Obor reálných čísel

Mgr. Ladislav Zemánek Maturitní okruhy Matematika 2013-2014. 1. Obor reálných čísel Mgr. Ladislav Zemánek Maturitní okruhy Matematika 2013-2014 1. Obor reálných čísel - obor přirozených, celých, racionálních a reálných čísel - vlastnosti operací (sčítání, odčítání, násobení, dělení) -

Více

Konvexní obálka množiny bodů.

Konvexní obálka množiny bodů. Konvexní obálka množiny bodů. Graham Scan. Jarvis Scan. Quick Hull. Inkrementální metoda. Divide and Conquer. Rotating Calipers. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie.

Více

Úvod do mobilní robotiky AIL028

Úvod do mobilní robotiky AIL028 md at robotika.cz, zbynek.winkler at mff.cuni.cz http://robotika.cz/guide/umor07/cs 27. listopadu 2007 1 Mapa světa Exaktní plánování 2 3 Plánování s otáčením Mapa světa - příklad Obsah Mapa světa Exaktní

Více

Amortizovaná složitost. Prioritní fronty, haldy (binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost

Amortizovaná složitost. Prioritní fronty, haldy (binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost Amortizovaná složitost. Prioritní fronty, haldy binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost 1. Asymptotické odhady Asymptotická složitost je deklarována na základě

Více

Přijímací zkouška - matematika

Přijímací zkouška - matematika Přijímací zkouška - matematika Jméno a příjmení pište do okénka Číslo přihlášky Číslo zadání 1 Grafy 1 Pro který z následujících problémů není znám žádný algoritmus s polynomiální časovou složitostí? Problém,

Více

Počítačová geometrie I

Počítačová geometrie I 0 I RNDr., Ph.D. Katedra didaktiky matematiky Univerzita Karlova v Praze Matematicko-fyzikální fakulta petra.surynkova@mff.cuni.cz http://surynkova.info Osnova předmětu Pojem výpočetní geometrie, oblasti

Více

Výpočetní geometrie Computational Geometry

Výpočetní geometrie Computational Geometry Datové struktury a algoritmy Část 11 Výpočetní geometrie Computational Geometry Petr Felkel 20.12.2005 Úvod Výpočetní geometrie (CG) Příklady úloh Algoritmické techniky paradigmata řazení - jako předzpracování

Více

Maturitní témata profilová část

Maturitní témata profilová část Seznam témat Výroková logika, úsudky a operace s množinami Základní pojmy výrokové logiky, logické spojky a kvantifikátory, složené výroky (konjunkce, disjunkce, implikace, ekvivalence), pravdivostní tabulky,

Více

Cvičení z matematiky - volitelný předmět

Cvičení z matematiky - volitelný předmět Vyučovací předmět : Období ročník : Učební texty : Cvičení z matematiky - volitelný předmět 3. období 9. ročník Sbírky úloh, Testy k přijímacím zkouškám, Testy Scio, Kalibro aj. Očekávané výstupy předmětu

Více

Učební plán 4. letého studia předmětu matematiky. Učební plán 6. letého studia předmětu matematiky

Učební plán 4. letého studia předmětu matematiky. Učební plán 6. letého studia předmětu matematiky Učební plán 4. letého studia předmětu matematiky Ročník I II III IV Dotace 3 3+1 2+1 2+2 Povinnost povinný povinný povinný povinný Učební plán 6. letého studia předmětu matematiky Ročník 1 2 3 4 5 6 Dotace

Více

2 MATEMATIKA A JEJÍ APLIKACE UČEBNÍ OSNOVY

2 MATEMATIKA A JEJÍ APLIKACE UČEBNÍ OSNOVY 2 MATEMATIKA A JEJÍ APLIKACE UČEBNÍ OSNOVY 2. 2 Cvičení z matematiky Časová dotace 7. ročník 1 hodina 8. ročník 1 hodina 9. ročník 1 hodina Charakteristika: Předmět cvičení z matematiky doplňuje vzdělávací

Více

Cvičení z matematiky jednoletý volitelný předmět

Cvičení z matematiky jednoletý volitelný předmět Název předmětu: Zařazení v učebním plánu: Cvičení z matematiky O8A, C4A, jednoletý volitelný předmět Cíle předmětu Obsah předmětu je zaměřen na přípravu studentů gymnázia na společnou část maturitní zkoušky

Více

Paralelní programování

Paralelní programování Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 14 Atomické akce dále nedělitelná = neproložitelná jiným procesem izolovaná =

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

zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.

zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry. Kapitola Ohodnocené grafy V praktických aplikacích teorie grafů zpravidla graf slouží jako nástroj k popisu nějaké struktury. Jednotlivé prvky této struktury mají často přiřazeny nějaké hodnoty (může jít

Více

METODY DOLOVÁNÍ V DATECH DATOVÉ SKLADY TEREZA HYNČICOVÁ H2IGE1

METODY DOLOVÁNÍ V DATECH DATOVÉ SKLADY TEREZA HYNČICOVÁ H2IGE1 METODY DOLOVÁNÍ V DATECH DATOVÉ SKLADY TEREZA HYNČICOVÁ H2IGE1 DOLOVÁNÍ V DATECH (DATA MINING) OBJEVUJE SE JIŽ OD 60. LET 20. ST. S ROZVOJEM POČÍTAČOVÉ TECHNIKY DEFINICE PROCES VÝBĚRU, PROHLEDÁVÁNÍ A MODELOVÁNÍ

Více

MI-PAA. úkol č.3. Řešení problému batohu dynamickým programováním, metodou větví a hranic a aproximativním algoritmem

MI-PAA. úkol č.3. Řešení problému batohu dynamickým programováním, metodou větví a hranic a aproximativním algoritmem Jakub Holý holyjak1@fit.cvut.cz MI-PAA úkol č.3 Řešení problému batohu dynamickým programováním, metodou větví a hranic a aproximativním algoritmem Zadání Naprogramujte řešení problému batohu: 1. metodou

Více

Požadavky k opravným zkouškám z matematiky školní rok 2013-2014

Požadavky k opravným zkouškám z matematiky školní rok 2013-2014 Požadavky k opravným zkouškám z matematiky školní rok 2013-2014 1. ročník (první pololetí, druhé pololetí) 1) Množiny. Číselné obory N, Z, Q, I, R. 2) Absolutní hodnota reálného čísla, intervaly. 3) Procenta,

Více

REGRESNÍ ANALÝZA V PROSTŘEDÍ MATLAB

REGRESNÍ ANALÝZA V PROSTŘEDÍ MATLAB 62 REGRESNÍ ANALÝZA V PROSTŘEDÍ MATLAB BEZOUŠKA VLADISLAV Abstrakt: Text se zabývá jednoduchým řešením metody nejmenších čtverců v prostředí Matlab pro obecné víceparametrové aproximační funkce. Celý postup

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Vyhledávání, vkládání, odstraňování Vyhledání hodnoty v nesetříděném poli Vyhledání hodnoty v setříděném poli Odstranění hodnoty z pole Vkládání hodnoty do pole Verze pro akademický

Více

Posloupnosti a jejich konvergence POSLOUPNOSTI

Posloupnosti a jejich konvergence POSLOUPNOSTI Posloupnosti a jejich konvergence Pojem konvergence je velmi důležitý pro nediskrétní matematiku. Je nezbytný všude, kde je potřeba aproximovat nějaké hodnoty, řešit rovnice přibližně, používat derivace,

Více

Popisná statistika kvantitativní veličiny

Popisná statistika kvantitativní veličiny StatSoft Popisná statistika kvantitativní veličiny Protože nám surová data obvykle žádnou smysluplnou informaci neposkytnou, je žádoucí vyjádřit tyto ve zhuštěnější formě. V předchozím dílu jsme začali

Více

Aplikovaná statistika pro učitele a žáky v hodinách zeměpisu aneb jak využít MS Excel v praxi. Geografický seminář 30. března 2011 Pavel Bednář

Aplikovaná statistika pro učitele a žáky v hodinách zeměpisu aneb jak využít MS Excel v praxi. Geografický seminář 30. března 2011 Pavel Bednář Aplikovaná statistika pro učitele a žáky v hodinách zeměpisu aneb jak využít MS Excel v praxi Geografický seminář 30. března 2011 Pavel Bednář Výchozí stav Sebehodnocení práce s MS Excel studujícími oboru

Více

Maturitní témata z matematiky

Maturitní témata z matematiky Maturitní témata z matematiky G y m n á z i u m J i h l a v a Výroky, množiny jednoduché výroky, pravdivostní hodnoty výroků, negace operace s výroky, složené výroky, tabulky pravdivostních hodnot důkazy

Více

MOCNINY A ODMOCNINY. Standardy: M-9-1-01 M-9-1-02 PYTHAGOROVA VĚTA. Standardy: M-9-3-04 M-9-3-01

MOCNINY A ODMOCNINY. Standardy: M-9-1-01 M-9-1-02 PYTHAGOROVA VĚTA. Standardy: M-9-3-04 M-9-3-01 matematických pojmů a vztahů, k poznávání základě těchto vlastností k určování a zařazování pojmů matematického aparátu Zapisuje a počítá mocniny a odmocniny racionálních čísel Používá pro počítání s mocninami

Více

Kombinatorika, pravděpodobnost a statistika, Posloupnosti a řady

Kombinatorika, pravděpodobnost a statistika, Posloupnosti a řady Předmět: Náplň: Třída: Počet hodin: Pomůcky: Matematika Kombinatorika, pravděpodobnost a statistika, Posloupnosti a řady 4. ročník 3 hodiny týdně PC a dataprojektor Kombinatorika Řeší jednoduché úlohy

Více

Matematika. ochrana životního prostředí analytická chemie chemická technologie Forma vzdělávání:

Matematika. ochrana životního prostředí analytická chemie chemická technologie Forma vzdělávání: Studijní obor: Aplikovaná chemie Učební osnova předmětu Matematika Zaměření: ochrana životního prostředí analytická chemie chemická technologie Forma vzdělávání: denní Celkový počet vyučovacích hodin za

Více

24.11.2009 Václav Jirchář, ZTGB

24.11.2009 Václav Jirchář, ZTGB 24.11.2009 Václav Jirchář, ZTGB Síťová analýza 50.let V souvislosti s potřebou urychlit vývoj a výrobu raket POLARIS v USA při závodech ve zbrojení za studené války se SSSR V roce 1958 se díky aplikaci

Více

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly. Kapitola Reprezentace grafu V kapitole?? jsme se dozvěděli, co to jsou grafy a k čemu jsou dobré. rzo budeme chtít napsat nějaký program, který s grafy pracuje. le jak si takový graf uložit do počítače?

Více

Automatizované řešení úloh s omezeními

Automatizované řešení úloh s omezeními Automatizované řešení úloh s omezeními Martin Kot Katedra informatiky, FEI, Vysoká škola báňská Technická universita Ostrava 17. listopadu 15, Ostrava-Poruba 708 33 Česká republika 25. října 2012 M. Kot

Více

3. Optimalizace pomocí nástroje Řešitel

3. Optimalizace pomocí nástroje Řešitel 3. Optimalizace pomocí nástroje Řešitel Rovnováha mechanické soustavy Uvažujme dvě různé nehmotné lineární pružiny P 1 a P 2 připevněné na pevné horizontální tyči splývající s osou x podle obrázku: (0,0)

Více

Kódováni dat. Kódy používané pro strojové operace

Kódováni dat. Kódy používané pro strojové operace Kódováni dat Před zpracováním dat například v počítači je třeba znaky převést do tvaru, kterému počítač rozumí, tj. přiřadit jim určité kombinace bitů. Tomuto převodu se říká kódování. Kód je předpis pro

Více

Program a životní cyklus programu

Program a životní cyklus programu Program a životní cyklus programu Program algoritmus zapsaný formálně, srozumitelně pro počítač program se skládá z elementárních kroků Elementární kroky mohou být: instrukce operačního kódu počítače příkazy

Více

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

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

Více

Architektura počítačů

Architektura počítačů Architektura počítačů Studijní materiál pro předmět Architektury počítačů Ing. Petr Olivka katedra informatiky FEI VŠB-TU Ostrava email: petr.olivka@vsb.cz Ostrava, 2010 1 1 Architektura počítačů Pojem

Více

NÁHODNÁ ČÍSLA. F(x) = 1 pro x 1. Náhodná čísla lze generovat některým z následujících generátorů náhodných čísel:

NÁHODNÁ ČÍSLA. F(x) = 1 pro x 1. Náhodná čísla lze generovat některým z následujících generátorů náhodných čísel: NÁHODNÁ ČÍSLA TYPY GENERÁTORŮ, LINEÁRNÍ KONGRUENČNÍ GENERÁTORY, TESTY NÁHODNOSTI, VYUŽITÍ HODNOT NÁHODNÝCH VELIČIN V SIMULACI CO JE TO NÁHODNÉ ČÍSLO? Náhodné číslo definujeme jako nezávislé hodnoty z rovnoměrného

Více

Požadavky k opravným zkouškám z matematiky školní rok 2014-2015

Požadavky k opravným zkouškám z matematiky školní rok 2014-2015 Požadavky k opravným zkouškám z matematiky školní rok 2014-2015 1. ročník (první pololetí, druhé pololetí) 1) Množiny. Číselné obory N, Z, Q, I, R. 2) Absolutní hodnota reálného čísla, intervaly. 3) Procenta,

Více

Úloha ve stavovém prostoru SP je , kde s 0 je počáteční stav C je množina požadovaných cílových stavů

Úloha ve stavovém prostoru SP je <s 0, C>, kde s 0 je počáteční stav C je množina požadovaných cílových stavů Stavový prostor a jeho prohledávání SP = formalismus k obecnějšímu uchopení a vymezení problému, který spočívá v nalezení posloupnosti akcí vedoucích od počátečního stavu úlohy (zadání) k požadovanému

Více

Časové a organizační vymezení

Časové a organizační vymezení Vzdělávací oblast Vzdělávací obor Vyučovací předmět Týdenní hodinové dotace Časové a organizační vymezení Matematika a její aplikace Matematika a její aplikace Matematika 1. stupeň 2. stupeň 1. ročník

Více

Ing. Jiří Fejfar, Ph.D. Geo-informační systémy

Ing. Jiří Fejfar, Ph.D. Geo-informační systémy Ing. Jiří Fejfar, Ph.D. Geo-informační systémy Definice, budování a život GIS Kapitola 1: Vztahy strana 2 Data, informace, IS, GIS Kapitola 1: Vztahy strana 3 Rozhodnutí Znalosti Znalostní systémy. Informace

Více

3.2 MATEMATIKA A JEJÍ APLIKACE (M) Charakteristika vzdělávací oblasti

3.2 MATEMATIKA A JEJÍ APLIKACE (M) Charakteristika vzdělávací oblasti 3.2 MATEMATIKA A JEJÍ APLIKACE (M) 51 Charakteristika vzdělávací oblasti Vzdělávací oblast matematika a její aplikace v základním vzdělávání je založena především na aktivních činnostech, které jsou typické

Více

MINISTERSTVO ŠKOLSTVÍ, MLÁDEŽE A TĚLOVÝCHOVY. Učební osnova předmětu MATEMATIKA

MINISTERSTVO ŠKOLSTVÍ, MLÁDEŽE A TĚLOVÝCHOVY. Učební osnova předmětu MATEMATIKA MINISTERSTVO ŠKOLSTVÍ, MLÁDEŽE A TĚLOVÝCHOVY Učební osnova předmětu MATEMATIKA pro střední odborné školy s humanitním zaměřením (6 8 hodin týdně celkem) Schválilo Ministerstvo školství, mládeže a tělovýchovy

Více

Vzdělávací oblast: Matematika a její aplikace Vzdělávací obor: Matematický kroužek pro nadané žáky ročník 9.

Vzdělávací oblast: Matematika a její aplikace Vzdělávací obor: Matematický kroužek pro nadané žáky ročník 9. Vzdělávací oblast: Matematika a její aplikace Vzdělávací obor: Matematický kroužek pro nadané žáky ročník 9. Školní rok 2013/2014 Mgr. Lenka Mateová Kapitola Téma (Učivo) Znalosti a dovednosti (výstup)

Více

MODELY ŘÍZENÍ ZÁSOB nákladově orientované modely poptávka pořizovací lhůta dodávky předstih objednávky deterministické stochastické

MODELY ŘÍZENÍ ZÁSOB nákladově orientované modely poptávka pořizovací lhůta dodávky předstih objednávky deterministické stochastické MODELY ŘÍZENÍ ZÁSOB Význam zásob spočívá především v tom, že - vyrovnávají časový nebo prostorový nesoulad mezi výrobou a spotřebou - zajišťují plynulou výrobu nebo plynulé dodávky zboží i při nepředvídaných

Více

Moderní systémy pro získávání znalostí z informací a dat

Moderní systémy pro získávání znalostí z informací a dat Moderní systémy pro získávání znalostí z informací a dat Jan Žižka IBA Institut biostatistiky a analýz PřF & LF, Masarykova universita Kamenice 126/3, 625 00 Brno Email: zizka@iba.muni.cz Bioinformatika:

Více

Optimalizace. Obsah přednášky. DÚ LP - Okružní problém. Lineární optimalizace. DÚ LP - Okružní problém. DÚ LP - Okružní problém

Optimalizace. Obsah přednášky. DÚ LP - Okružní problém. Lineární optimalizace. DÚ LP - Okružní problém. DÚ LP - Okružní problém Obsah přednášky Mgr. Květuše Sýkorová Optimalizace Lineární programování Distribuční úlohy Okružní problém KI Př UJEP Ústí nad Labem Nederivační metody Metody 1D optimalizace Derivační metody Optimalizace

Více

UČENÍ BEZ UČITELE. Václav Hlaváč

UČENÍ BEZ UČITELE. Václav Hlaváč UČENÍ BEZ UČITELE Václav Hlaváč Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání hlavac@fel.cvut.cz, http://cmp.felk.cvut.cz/~hlavac 1/22 OBSAH PŘEDNÁŠKY ÚVOD Učení

Více

Profilová část maturitní zkoušky 2013/2014

Profilová část maturitní zkoušky 2013/2014 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2013/2014 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA

Více

Statistika. Regresní a korelační analýza Úvod do problému. Roman Biskup

Statistika. Regresní a korelační analýza Úvod do problému. Roman Biskup Statistika Regresní a korelační analýza Úvod do problému Roman Biskup Jihočeská univerzita v Českých Budějovicích Ekonomická fakulta (Zemědělská fakulta) Katedra aplikované matematiky a informatiky 2008/2009

Více

Požadavky na konkrétní dovednosti a znalosti z jednotlivých tematických celků

Požadavky na konkrétní dovednosti a znalosti z jednotlivých tematických celků Maturitní zkouška z matematiky 2012 požadované znalosti Zkouška z matematiky ověřuje matematické základy formou didaktického testu. Test obsahuje uzavřené i otevřené úlohy. V uzavřených úlohách je vždy

Více

Maturitní otázky z předmětu MATEMATIKA

Maturitní otázky z předmětu MATEMATIKA Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu MATEMATIKA 1. Výrazy a jejich úpravy vzorce (a+b)2,(a+b)3,a2-b2,a3+b3, dělení mnohočlenů, mocniny, odmocniny, vlastnosti

Více

veličin, deskriptivní statistika Ing. Michael Rost, Ph.D.

veličin, deskriptivní statistika Ing. Michael Rost, Ph.D. Vybraná rozdělení spojitých náhodných veličin, deskriptivní statistika Ing. Michael Rost, Ph.D. Třídění Základním zpracováním dat je jejich třídění. Jde o uspořádání získaných dat, kde volba třídícího

Více

Postupy práce se šablonami IS MPP

Postupy práce se šablonami IS MPP Postupy práce se šablonami IS MPP Modul plánování a přezkoumávání, verze 1.20 vypracovala společnost ASD Software, s.r.o. dokument ze dne 27. 3. 2013, verze 1.01 Postupy práce se šablonami IS MPP Modul

Více

ÚVODNÍ ZNALOSTI. datové struktury. správnost programů. analýza algoritmů

ÚVODNÍ ZNALOSTI. datové struktury. správnost programů. analýza algoritmů ÚVODNÍ ZNALOSTI datové struktury správnost programů analýza algoritmů Datové struktury základní, primitivní, jednoduché datové typy: int, char,... hodnoty: celá čísla, znaky, jednoduché proměnné: int i;

Více

V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2

V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2 Euklidův algoritmus Doprovodný materiál pro cvičení Programování I. NPRM044 Autor: Markéta Popelová Datum: 31.10.2010 Euklidův algoritmus verze 1.0 Zadání: Určete největšího společného dělitele dvou zadaných

Více

ČVUT FEL X36PAA - Problémy a algoritmy. 4. úloha - Experimentální hodnocení algoritmů pro řešení problému batohu

ČVUT FEL X36PAA - Problémy a algoritmy. 4. úloha - Experimentální hodnocení algoritmů pro řešení problému batohu ČVUT FEL X36PAA - Problémy a algoritmy 4. úloha - Experimentální hodnocení algoritmů pro řešení problému batohu Jméno: Marek Handl Datum: 3. 2. 29 Cvičení: Pondělí 9: Zadání Prozkoumejte citlivost metod

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

Zadání druhého zápočtového projektu Základy algoritmizace, 2005

Zadání druhého zápočtového projektu Základy algoritmizace, 2005 Zadání druhého zápočtového projektu Základy algoritmizace, 2005 Jiří Dvorský 2 května 2006 Obecné pokyny Celkem je k dispozici 8 zadání příkladů Každý student obdrží jedno zadání Vzhledem k tomu, že odpadly

Více

8. přednáška z předmětu GIS1 Rastrový datový model a mapová algebra

8. přednáška z předmětu GIS1 Rastrový datový model a mapová algebra 8. přednáška z předmětu GIS1 Rastrový datový model a mapová algebra Vyučující: Ing. Jan Pacina, Ph.D. e-mail: jan.pacina@ujep.cz Pro přednášku byly použity texty a obrázky z www.gis.zcu.cz Předmět KMA/UGI,

Více

Ekonomické aspekty statistické regulace pro vysoce způsobilé procesy. Kateřina Brodecká

Ekonomické aspekty statistické regulace pro vysoce způsobilé procesy. Kateřina Brodecká Ekonomické aspekty statistické regulace pro vysoce způsobilé procesy Kateřina Brodecká Vysoce způsobilé procesy s rozvojem technologií a důrazem kladeným na aktivity neustálého zlepšování a zeštíhlování

Více

POŽADAVKY pro přijímací zkoušky z MATEMATIKY

POŽADAVKY pro přijímací zkoušky z MATEMATIKY TU v LIBERCI FAKULTA MECHATRONIKY POŽADAVKY pro přijímací zkoušky z MATEMATIKY Tematické okruhy středoškolské látky: Číselné množiny N, Z, Q, R, C Body a intervaly na číselné ose Absolutní hodnota Úpravy

Více

7. Geografické informační systémy.

7. Geografické informační systémy. 7. Geografické informační systémy. 154GEY2 Geodézie 2 7.1 Definice 7.2 Komponenty GIS 7.3 Možnosti GIS 7.4 Datové modely GIS 7.5 Přístup k prostorovým datům 7.6 Topologie 7.7 Vektorové datové modely 7.8

Více

Učivo obsah. Druhá mocnina a odmocnina Druhá mocnina a odmocnina Třetí mocnina a odmocnina Kružnice a kruh

Učivo obsah. Druhá mocnina a odmocnina Druhá mocnina a odmocnina Třetí mocnina a odmocnina Kružnice a kruh Výstupy žáka ZŠ Chrudim, U Stadionu Je schopen vypočítat druhou mocninu a odmocninu nebo odhadnout přibližný výsledek Určí druhou mocninu a odmocninu pomocí tabulek a kalkulačky Umí řešit úlohy z praxe

Více

vzdělávací oblast vyučovací předmět ročník zodpovídá MATEMATIKA A JEJÍ APLIKACE MATEMATIKA 8. MARKUP Druhá mocnina a odmocnina FY Tabulky, kalkulátor

vzdělávací oblast vyučovací předmět ročník zodpovídá MATEMATIKA A JEJÍ APLIKACE MATEMATIKA 8. MARKUP Druhá mocnina a odmocnina FY Tabulky, kalkulátor Výstupy žáka ZŠ Chrudim, U Stadionu Učivo obsah Mezipředmětové vztahy Metody + formy práce, projekty, pomůcky a učební materiály ad. Učební materiály (využívány průběžně): Poznámky Umí provádět operace

Více

Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto

Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Registrační číslo projektu Šablona Autor Název materiálu CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT Mgr. Jana

Více

65-42-M/01 HOTELNICTVÍ A TURISMUS PLATNÉ OD 1.9.2012. Čj SVPHT09/03

65-42-M/01 HOTELNICTVÍ A TURISMUS PLATNÉ OD 1.9.2012. Čj SVPHT09/03 Školní vzdělávací program: Hotelnictví a turismus Kód a název oboru vzdělávání: 65-42-M/01 Hotelnictví Délka a forma studia: čtyřleté denní studium Stupeň vzdělání: střední vzdělání s maturitní zkouškou

Více

Funkce - pro třídu 1EB

Funkce - pro třídu 1EB Variace 1 Funkce - pro třídu 1EB Autor: Mgr. Jaromír JUŘEK Kopírování a jakékoliv využití výukového materiálu je povoleno pouze s odkazem na www.jarjurek.cz. 1. Funkce Funkce je přiřazení, které každému

Více

Zpracování náhodného výběru. Ing. Michal Dorda, Ph.D.

Zpracování náhodného výběru. Ing. Michal Dorda, Ph.D. Zpracování náhodného výběru popisná statistika Ing. Michal Dorda, Ph.D. Základní pojmy Úkolem statistiky je na základě vlastností výběrového souboru usuzovat o vlastnostech celé populace. Populace(základní

Více

POSLOUPNOSTI A ŘADY INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ

POSLOUPNOSTI A ŘADY INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ POSLOUPNOSTI A ŘADY Gymnázium Jiřího Wolkera v Prostějově Výukové materiály z matematiky pro vyšší gymnázia Autoři projektu Student na prahu 21. století - využití ICT ve vyučování matematiky na gymnáziu

Více

Kapitola 1. Signály a systémy. 1.1 Klasifikace signálů

Kapitola 1. Signály a systémy. 1.1 Klasifikace signálů Kapitola 1 Signály a systémy 1.1 Klasifikace signálů Signál představuje fyzikální vyjádření informace, obvykle ve formě okamžitých hodnot určité fyzikální veličiny, která je funkcí jedné nebo více nezávisle

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

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