Základy algoritmizace

Podobné dokumenty
Základy algoritmizace

Základy algoritmizace

11MAMY LS 2017/2018. Úvod do Matlabu. 21. února Skupina 01. reseni2.m a tak dále + M souborem zadané funkce z příkladu 3 + souborem skupina.

Základní grafové algoritmy

Základy algoritmizace

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

Modelování systémů a procesů (11MSP) Bohumil Kovář, Jan Přikryl, Miroslav Vlček. 8. přednáška 11MSP pondělí 20. dubna 2015

Rekurentní rovnice, strukturální indukce

Algoritmizace- úvod. Ing. Tomáš Otáhal

Bonn, Rheinischen Friedrich-Wilhelms-Universität

Jarníkův algoritmus. Obsah. Popis

Matematické algoritmy Skriptum k předmětu 11MAG

Rekurentní rovnice, strukturální indukce

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

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

10. Složitost a výkon

Algoritmus. Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu.

Úvod do optimalizace Matematické metody pro ITS (11MAMY)

Algoritmy a algoritmizace

MATLAB Úvod. Úvod do Matlabu. Miloslav Čapek

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

Numerická stabilita algoritmů

ekologie Pavel Fibich rovnice rovnice Pavel Fibich Shrnutí Literatura

DISKRÉTNÍ PROCESY V ELEKTROTECHNICE

Algoritmizace prostorových úloh

Simulace (nejen) fyzikálních jevů na počítači

aneb jiný úhel pohledu na prvák

Collatzova hypotéza. David Brebera XIV. seminář z historie matematiky pro vyučující na středních školách

Zpráva o průběhu přijímacího řízení na vysokých školách dle Vyhlášky MŠMT č. 343/2002 a její změně 276/2004 Sb.

Nelineární systémy a teorie chaosu

Kombinatorická minimalizace

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

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

Elektronické obvody analýza a simulace

České vysoké učení technické v Praze Fakulta jaderná a fyzikálně inženýrská OKRUHY. ke státním závěrečným zkouškám BAKALÁŘSKÉ STUDIUM

Propojení matematiky, fyziky a počítačů

Lineární a adaptivní zpracování dat. 2. SYSTÉMY a jejich popis v časové doméně

OSA. maximalizace minimalizace 1/22

Pojem algoritmus a jeho základní vlastnosti

BAKALÁŘSKÁ PRÁCE. Metody pro výpočet kořenů polynomů

Úvod do informatiky. Miroslav Kolařík

3 Co je algoritmus? Trocha historie Definice algoritmu Vlastnosti algoritmu... 3

Numerické metody 6. května FJFI ČVUT v Praze

OPTIMALIZACE A MULTIKRITERIÁLNÍ HODNOCENÍ FUNKČNÍ ZPŮSOBILOSTI POZEMNÍCH STAVEB D24FZS

Speciální numerické metody 4. ročník bakalářského studia. Cvičení: Ing. Petr Lehner Přednášky: doc. Ing. Martin Krejsa, Ph.D.

Odpřednesenou látku naleznete v kapitole 3.3 skript Diskrétní matematika.

VYUŽITÍ MATLABU PRO VÝUKU NUMERICKÉ MATEMATIKY Josef Daněk Centrum aplikované matematiky, Západočeská univerzita v Plzni. Abstrakt

Hledání kořenů rovnic jedné reálné proměnné metoda půlení intervalů Michal Čihák 23. října 2012

Ing. Tomáš MAUDER prof. Ing. František KAVIČKA, CSc. doc. Ing. Josef ŠTĚTINA, Ph.D.

4EK311 Operační výzkum. 1. Úvod do operačního výzkumu

Numerická matematika 1

APROXIMACE KŘIVEK V MATLABU NEWTONŮV INTERPOLAČNÍ POLYNOM CURVE FITTING IN MATLAB NEWTON INTERPOLATION POLYNOMIAL

Lineární a adaptivní zpracování dat. 1. ÚVOD: SIGNÁLY a SYSTÉMY

Seminář z Informatiky a výpočetní techniky. Slovanské gymnázium Olomouc 4. září 2014 Tomáš Kühr

Diskretizace. 29. dubna 2015

FP - SEMINÁŘ Z NUMERICKÉ MATEMATIKY. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

Numerické řešení nelineárních rovnic

Řešení 1D vedení tepla metodou sítí a metodou

KTE / PPEL Počítačová podpora v elektrotechnice

Maturitní témata. IKT, školní rok 2017/18. 1 Struktura osobního počítače. 2 Operační systém. 3 Uživatelský software.

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

Informační a komunikační technologie

Praktické využití Mathematica CalcCenter. Ing. Petr Kubín, Ph.D. Katedra elektroenergetiky, ČVUT v Praze, FEL

Lineární a adaptivní zpracování dat. 2. SYSTÉMY a jejich popis v časové doméně a frekvenční doméně

INOVACE ODBORNÉHO VZDĚLÁVÁNÍ NA STŘEDNÍCH ŠKOLÁCH ZAMĚŘENÉ NA VYUŽÍVÁNÍ ENERGETICKÝCH ZDROJŮ PRO 21. STOLETÍ A NA JEJICH DOPAD NA ŽIVOTNÍ PROSTŘEDÍ

Čínská věta o zbytcích RSA

Státní závěrečná zkouška z oboru Matematika a její použití v přírodních vědách

Algoritmizace prostorových úloh

Měření dat Filtrace dat, Kalmanův filtr

VYUŽITÍ MATLABU PRO PODPORU VÝUKY A PŘI ŘEŠENÍ VÝZKUMNÝCH ÚKOLŮ NA KATEDŘE KOMUNIKAČNÍCH A INFORMAČNÍCH SYSTÉMŮ

V t í á t V á V s ČVU V T v v P r P a r ze

Soustavy nelineárních rovnic pomocí systému Maple. Newtonova metoda.

U Úvod do modelování a simulace systémů

Algoritmus pro hledání nejkratší cesty orientovaným grafem

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

Požadavky k písemné přijímací zkoušce z tematického okruhu 1 (Logistika)

Matematika I. dvouletý volitelný předmět

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

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

C2115 Praktický úvod do superpočítání

SIGNÁLY A LINEÁRNÍ SYSTÉMY

Vlastnosti členů regulačních obvodů Osnova kurzu

Výukový materiál zpracován v rámci projektu EU peníze školám

Lineární a adaptivní zpracování dat. 2. SYSTÉMY a jejich popis v časové doméně a frekvenční doméně

Datová věda (Data Science) akademický navazující magisterský program

Student si po a 1. ročníku podle svého osobního zaměření volí kurzy (předměty).

RELATIONAL DATA ANALYSIS

Teorie rozhodování (decision theory)

Rozvoj tepla v betonových konstrukcích

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

1 Přesnost metody konečných prvků

UMÍ POČÍTAČE POČÍTAT?

OPTIMALIZACE. (přehled metod)

Základy algoritmizace, návrh algoritmu

UŽITÍ KOHERENČNÍ FUNKCE PRO DISTRIBUOVANOU

VISUAL BASIC. Přehled témat

Flexibilita jednoduché naprogramování a přeprogramování řídícího systému

2. lekce Algoritmus, cyklus Miroslav Jílek

Úvodní informace. Ústav aplikované matematiky ČVUT v Praze, Fakulta dopravní. verze: :47

STUDIJNÍ OPORY S PŘEVAŽUJÍCÍMI DISTANČNÍMI PRVKY PRO VÝUKU STATISTIKY PRVNÍ ZKUŠENOSTI. Pavel Praks, Zdeněk Boháč

Transkript:

Základy algoritmizace Matematické algoritmy (11MAG) Jan Přikryl 1. přednáška 11MAG pondělí 30. září 2013 verze: 2013-10-22 14:30 Obsah 1 Úvod 1 2 Algoritmy a algoritmizace 2 2.1 Vlastnosti algoritmů.................................. 2 3 Aplikace 3 4 Prerekvizity předmětu 5 1 Úvodní informace Přednáší: Dr. Jan Přikryl prikryl@fd.cvut.cz Přednáška: pondělí, 16:45 18:15, F114 Cvičení: pondělí 18:30 20:00, F311 úterý 16:45 18:15, F311 Dotace: 2+2 Očekávaná týdenní zátěž: 5 7 hodin včetně přednášek Webové stránky předmětu: http://zolotarev.fd.cvut.cz/mag/ O čem si budeme povídat: algoritmy diskrétní matematiky, slasti a strasti výpočtů v plovoucí řádové čárce, numerická matematika. O čem budou cvičení: praktické hrátky s algoritmy, Matlab/Python/C/C++/Java... Co když neumím programovat? To, že jste postoupili až do prvního magisterského ročníku garantuje, že programovat umíte. V případě nouze se urychleně doučíte. Učebnic základů algoritmizace a programování existuje celá řada, můžete zkusit třeba [12, 5] či informace na stránkách 1

vstup... u[n] Algoritmus y[n]... výstup Obrázek 1: Formální pohled na algoritmus ze systémového hlediska Katedry počítačů ČVUT FEL [1], například ty o předmětu Algoritmizace [8]. Podle čeho se to učí: Literatura je téměř výhradně anglicky, kompletní seznam i s případnými odkazy naleznete na webových stránkách předmětu a také na konci tohoto textu. 2 Algoritmy a algoritmizace Algoritmus je přesný návod či postup, kterým lze vyřešit daný typ úlohy. efektivní postup pro výpočet hodnoty nějaké funkce vyjádřený konečným počtem instrukcí. Definice 1. Algoritmem rozumíme postup, podle kterého se z dat vstupních x[n] vygenerují data výstupní y[n]. Typy algoritmů Co potřebujete znát? Kam až můžeme dojít? 2.1 Vlastnosti algoritmů Každý algoritmus musí mít následující vlastnosti: 1. Konečnost: výpočet se ukončí v rozumně konečném čase. 2. Hromadnost: není sestrojen pouze na jediné u[n], ale na celou řadu možných vstupů. 3. Jednoznačnost: přechod do následujícího stavu algoritmu je jednoznačně určen výsledkem stavu předchozího. Komentář k vlastnostem algoritmů 1. Konečnost: předpověd počasí na zítra dosažená výpočtem o den později nemá význam. 2. Hromadnost: program pro výpočet odmocniny pracuje nad množinou čísel, není konstruován pro každé číslo zvlášt. 3. Jednoznačnost: každý algoritmus je složen z kroků, které na sebe vzájemně navazují. Každý krok je charakterizován jako přechod z jednoho stavu do jiného. Každý stav algoritmu je určen zpracovávanými daty a na tom, jak data v jednotlivých stavech vypadají. Je tedy pevně určeno, který krok bude následovat. 2

Další variantou je numerický výpočet druhé odmocniny čísla x pomocí nelineární diferenční rovnice y[n + 1] = 1 ( y[n] + u[n] ), 2 y[n] kde vstupní posloupnost u[n] = x [n] a výstupní posloupnost y[n] postupně konverguje k hodnotě odmocniny. Počáteční podmínku můžeme volit v podstatě libovolnou, například y[0] = x nebo y[0] = 1. Odmocnina z čísla 10 je s přesností na 10 desetinných míst rovna 10 = 3,16227766017. Pro u[n] = 10 dostáváme postupně y[0] = 3 y[0] 2 = 9 y[1] = 3,165 y[1] 2 = 10,017225 y[2] = 3,162278 y[2] 2 = 10,0000021493 y[3] = 3,1622776601 y[3] 2 = 9,9999999996. 3 Aplikace algoritmů Internet umožňuje lidem na celém světě rychle vyhledávat a přistupovat k obrovskému množství informací. Aby to fungovalo, musí poskytovatelé internetu a poskytovatelé internetových služeb používat chytré algoritmy, umožňující zpracovávat a spravovat tak velké množství dat. Příklady úloh, na které v této oblasti narazíme, jsou například hledání vhodných cest pro datové pakety, cestující mezi jednotlivými uzly sítě, či vyhledávání stránek s určitým obsahem. Velký objem obchodů je v dnešní době uzavírán elektronicky, a mnoho služeb funguje i na elektronické bázi. Pro celý obor e-komerce je zcela klíčová schopnost uchovat důvěrné údaje (čísla kreditních karet, hesla, či bankovní informace) opravdu v tajnosti. Mezi úlohy z této oblasti, na které narazíme, patří šifrování veřejným klíčem či digitální podpis. Ve oblastech výroby a přepravy řeší firmy často problém optimální alokace zdrojů tak, aby byly na jednu stranu minimalizovány výrobní či režijní náklady, na druhou stranu aby byl co možná nejvyšší užitek. Letecký dopravce se bude snažit přiřazovat posádky na jednotlivé lety způsobem, jenž generuje co nejmenší dodatečné náklady zároveň je jeho manévrovací prostor ovšem omezen nařízeními z oblasti bezpečnosti provozu, všeobecnými právními předpisy a podobně. Poskytovatel internetu při investicích do infrastruktury potřebuje investovat své zdroje cíleně tak, aby výsledek co nejefektivněji sloužil zákazníkům. Obě tyto úlohy řeší algoritmy matematické optimalizační techniky zvané lineární programování. Proč to zkoumat? Numerické řešení algebraických rovnic, diferenciálních rovnic a speciálních funkcí: Metoda konečných prvků řešení složitých parciálních diferenciálních rovnic s praktickými aplikacemi: Jinak těžko řešitelné úlohy: nelineární parciální diferenciální rovnice, například Navierovy- Stokesovy rovnice. Tyto rovnice popisují proudění a počítáme je například při studiu obtékání vzduchu okolo křídel, viz. Obrázek 4. 3

Obrázek 2: Fraktály (vlevo tzv. Juliina množina, vpravo). Obrázek 3: Metoda konečných prvků. Obrázek 4: I tento jev, způsobený prouděním okolo křídla letounu, lze popsat Navierovými-Stoeksovými rovnicemi. 4

Navierovy-Stokesovy rovnice: u t + (u )u = f p + ν u kde u a f jsou vektorové funkce rychlosti a síly, p je tlak a ν je úměrná viskozitě kapaliny. u x t + u u x x x + u u y y y + u u z z z = = f x (x, y, z, t) p [ 2 ] x + ν u x x 2 + 2 u x y 2 + 2 u x z 2 Výše uvedené seznamy nejsou zdaleka vyčerpávající, můžeme z nich ale odvodit dvě základní charakterisitky, společné mnoha zajímavým algoritmům: 1. Pro daný problém existuje většinou velké množství možných řešení, z nichž většina z různých důvodů není to, co potřebujeme. 2. Algoritmy mají praktický užitek. Metoda hledání nejkratší cesty v grafu umožní přepravní společnosti snížit přepravní náklady, nebot sníží náklady na palivo a na práci personálu. Ten samý algoritmus může ve směrovači počítačové sítě hledat způsob, jak co nejrychleji doručit vaši zprávu adresátovi. Algoritmy jsou technologie Výpočetní čas je omezený zdroj, stejně tak, jak je omezená velikost operační paměti počítače. Oba tyto zdroje je třeba využívat rozumně, algoritmy, jež jsou efektivní z hlediska doby výpočtu či nároků na operační pamět, jsou nástrojem k takovému rozumnému využití. Algoritmy, stejně jako počítačový hardware, lze v dnešní době považovat za technologii. Celkový výkon systémů závisí na volbě efektivních algoritmů do stejné míry, jako závisí na volbě dostatečně výkonného hardware. A s tím, jak se vyvíjí počítačové technologie, se ruku v ruce vyvíjí i algoritmy. 4 Prerekvizity předmětu Předpokládáme: základy algebry a matematické analýzy základy numerické matematiky diferenční rovnice a jejich řešení základy strukturovaného programování aktivní znalost alespoň jednoho programovacího jazyka (C, C++, Python, Java, Basic) nebo alespoň prostředí MATLAB Kam až můžeme dojít? 5

Rychlá Fourierova transformace analýza EEG signálu 400 200 0 Casovy prubeh signalu 60 40 20 200 0 200 400 600 800 1000 1200 STFT 10 20 30 10 20 30 100 200 300 400 500 600 700 800 900 1000 1100 DZT 100 200 300 400 500 600 700 800 900 1000 1100 15000 10000 5000 2 1.5 1 0.5 Obrázek 5: Rychlá Fourierova transformace analýza EEG signálu Objevit krásu některých algoritmů. Pochopit třeba numerické základy kryptologie. Nebát se inženýrských úloh, které vyžadují algoritmizaci. Pochopit rychlé algoritmy s aplikacemi v reálném světě Kurs pokrývá standardní algoritmy, jež nabízí pro daný problém a pro daná vstupní data optimální výkon. Dvě nejčastější chyby při výběru algoritmu pro danou úlohu: ignorujeme výkon algoritmu rychlejší algoritmy jsou současně složitější na implementaci příliš zkoumáme výkon algoritmu nepatrně rychlejší algoritmus může být výrazně složitější na implementaci 6

Reference [1] Katedra počítačů ČVUT FEL. [2] Thomas H. Cormen, Charles E. Leiserson, R.L. Ronald L. Rivest, and Clifford Stein. Introduction to algorithms. MIT press / McGraw-Hill, 2 edition, 2002. [3] Johan Håstad. Advanced Algoritms - Course Notes. Royal Institute of Technology, Sweden, 2000. [4] Michael T. Heath. Scientific computing: An introductory Survey. McGraw-Hill, 2 edition, 2002. [5] Bohuslav Hudec. Programovací techniky. Skripta. Česká technika nakladatelství ČVUT, 2001. [6] Malvin H. Kalos and Paula A. Whitlock. Monte Carlo Methods. Wiley-Interscience, 1986. [7] David J.C. Mackay. Information Theory, Inference, and Learning Algorithms. Cambridge University Press, 2003. [8] Jiří Zdeněk Miroslav Balík, Božena Mannová. Algoritmizace (x36alg) podklady k přednáškám. [9] Cleve B. Moler. Numerical computing with MATLAB. Society for Industrial Mathematics (SIAM), 2004. [10] Hans-Görg Roos and Hubert Schwitlick. Numerische Mathematik Das Grundwissen für jedermann. Mathematik für Ingenieure und Naturwissenschaftler. Teubner, Stuttgart/Leipzig, Stuttgart/Leipzig, 1999. [11] Jiří Velebil. Diskrétní matematika. www, 2007. Text k přednášce. [12] Miroslav Virius. Základy algoritmizace. Skripta. 2008. Česká technika nakladatelství ČVUT, 7