PARALELNÍ PROCESY A PROGRAMOVÁNÍ

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

Download "PARALELNÍ PROCESY A PROGRAMOVÁNÍ"

Transkript

1 PARALELNÍ PROCESY A PROGRAMOVÁNÍ 12 Paralelní algoritmy - paralelní prefixové součty Ing Michal Bližňák, PhD Zlín 2013 Tento studijní materiál vznikl za finanční podpory Evropského sociálního fondu (ESF) a rozpočtu české republiky v rámci řešení projektu: CZ 107/2200/150463, MOD- ERNIZACE VÝUKOVÝCH MATERIÁLŮ A DIDAKTICKÝCH METOD

2 OBSAH 1 Obsah 1 Motivace pro paralelizaci redukce 3 2 Sekvenční a paralelní redukce 3 3 Sekvenční a paralelní prefixová redukce 3 31 Sekvenční prefixový součet 4 32 Paralelní prefixový součet na CdT n 5 33 Paralelní prefixový součet na Q n 6 34 Paralelní prefixový součet na EREW PRAM Neškálovaný paralelní prefixový součet na EREW PRAM Škálovaný paralelní prefixový součet na EREW PRAM 6 35 Segmentový paralelní prefixový součet 9 4 Aplikace paralelní prefixové redukce 9 41 Zhušt ovací problém a paralelní PrefixSort 9 42 Binární sčítačka Paralelní QuickSort 11 5 Kontrolní otázky 13

3 OBSAH 2 STRUČNÝ OBSAH PŘEDNÁŠKY Motivace pro paralelizaci redukce Sekvenční a paralelní redukce Sekvenční a paralelní prefixová redukce Aplikace paralelní prefixové redukce MOTIVACE Redukce a prefixové redukce jsou jedněmi z nejčastěji používaných (a implementovaných) paralelních algoritmů sloužících jako základ dalších, složitějších algoritmů V této přednášce se seznámíme se základními vlastnostmi a implementacemi redukčních algoritmů na různých paralelních systémech CÍL Seznámit se se základními vlastnostmi a implementačními aspekty některých paralelních redukčních algoritmů

4 Motivace pro paralelizaci redukce 3 1 Motivace pro paralelizaci redukce Obecná redukce prvků množiny/pole je velmi častým algoritmickým problémem Operátorem redukce můžeme chápat téměř jakoukoliv (matematickou) operaci schopnou zredukovat 2 operandy do jedné výsledkové hodnoty Typicky se může jednat o součet nebo násobení, obecně však lze redukční operátor nadefinovat libovolným způsobem (např sloučení bitmap, součet prvků vícerozměrných polí, atd) Je zřejmé že časová složitost redukce se bude úzce odvíjet o od časové složitosti samotného redukčního operátoru Je-li časová složitost redukčního operátoru dostatečně vysoká, bývá výhodné redukci více prvků paralelizovat, čímž lze dosáhnout zajímavého (ideálně lineárního) zrychlení Samozřejmě je nutné brát v úvahu vhodnou granularitu a škálovatelnost problému 2 Sekvenční a paralelní redukce Obecnou redukci více operandů lze definovat následovně: Necht je dáno vstupní pole X = {x 0, x 1,, x n 1 } prvků množiny D a binární operace nad D Pak cílem redukce je vypočítat hodnotu například tak, je je uvedeno v algoritmu 1 Algoritmus 1 Triviální sekvenční redukce S 0 for i = 0 to n 1 do S = S X[i] S = x 0 x 1 x n 1 (1) Dolní i horní mez tohoto problému je SL(n) = SU(n) = Θ(n), je-li problém řešen sekvenčně Vhodnou paralelizací redukce však lze celou operaci provést v čase O(log n) při zachování cenové optimality, jak bylo diskutováno v kapitole zabývající se analýzou časové složitosti paralelních algoritmů Příklady implementace paralelní redukce na různých paralelních systémech jsou uvedeny na obrázku 1 Jak je patrné, všechny systémy byly schopny z redukovat 8 hodnot, ve 3 krocích, čili v logaritmickém čase Pseudokód paralelní redukce implementované na EREW PRAM je uveden v algoritmu 2 Algoritmus 2 Triviální paralelní redukce for j = 1,, log n do sequentially for all i = 0 to n 1 step 2 j do in parallel P i : X[i] = X[i] X[i + 2 j 1 ] S X[0] 3 Sekvenční a paralelní prefixová redukce Prefixová redukce (prefixový součet) je zobecněním redukce diskutované v kapitole 2 a má stejné časové charakteristiky Zatímco u klasické redukce je výsledkem operace pouze jedna hodnota, u prefixové redukce n hodnot dostaneme po ukončení výpočtu n výsledků

5 Sekvenční a paralelní prefixová redukce 4 Obrázek 1: Implementace paralelní redukce na různých typech paralelních systémů [1] Mějme vstupní pole X = x 0, x 1,, x n 1 z množiny D a asociativní binární operaci nad D Výstupem výpočtu je stejně velké pole Y, kde y i je rovno redukci počátečních i hodnot z X Čili úkolem je vypočítat pole Y = y 0, y 1,, y n 1 všech prefixů pole X tak, že y i = x 0 x 1 x i, jak je naznačeno no obrázku 2 Obrázek 2: Vstup a výstup prefixové redukce [1] Pro jednoduchost budeme v dalších kapitolách jako redukční operátor uvažovat součet, nebude-li řečeno jinak 31 Sekvenční prefixový součet Sekvenční prefixový součet je velmi triviálním algoritmem a nepotřebuje bližšího zkoumání Časová složitost je opět Θ(n) a jeho pseudokód je uveden v algoritmu 3 Algoritmus 3 Sekvenční prefixová redukce Require: i: int; sum, X[n], Y[n] : D sum X[0]; Y [0] sum for i = 1 to n 1 do sum = sum X[i] Y [i] sum

6 Sekvenční a paralelní prefixová redukce 5 32 Paralelní prefixový součet na CdT n Implementace paralelního prefixového součtu (PPS) na topologii d-árního stromu CdT n je již daleko zajímavější Předpokládejme ICNW nepřímého stromu kde koncové listové uzly obsahují hodnoty, z nichž má být spočten PPS Pak PPS N vstupních hodnot v listech binárního stromu CBT výšky h(cbt ) lze vypočítat ve 2h(CBT ) krocích Je-li CBT úplný, pak PPS potřebuje O(log N) kroků Celá operace PPS se na CBT rozloží do několika vzestupných a sestupných vln Každá vzestupná vlna vygeneruje další vzestupnou vlnu (pokud jsme již nedosáhli kořene stromu) a h(cbt ) sestupných vln Obrázek 3: Vzestupné a sestupné vlny na CdT [1] Při vzestupné vlně se rodičovskému listu odesílá součet hodnot přicházejících od synů Zároveň je generována sestupná vlna tak, jak je patrné z obrázku 3 Hodnoty, které v rámci sestupných vln dorazí až ke konečným listům jsou přičteny k jejich aktuální hodnotě Po doznění všech vln obsahují koncové listové uzly kompletní PPS Celý algoritmus je ilustrován na obrázku 4 Obrázek 4: Paralelní prefixový součet na CBT [1]

7 Sekvenční a paralelní prefixová redukce 6 33 Paralelní prefixový součet na Q n Paralelní prefixový součet na hyperkrychli je implementován jako jednoduché rozšíření algoritmu vysílání všichni-ke-všem Předpokládejme že PPS bude sčítat N hodnot Dále předpokládejme binární hyperkrychli Q n kde n = log N PPS pak bude pomocí algoritmu 4 spočítán v čase O(log N) Princip výpočtu je jednoduchý Každý procesor P i bude obsahovat dva pomocné registry: zelený a žlutý Nejprve budou oba registry v daném procesoru inicializovány stejnou vstupní hodnotou Poté následuje n paralelních fází, ve kterých si procesory vzájemně vymění obsahy zelených registrů a přičtou je k obsahům svých vlastních zelených registrů Procesor, který má v rámci dimenze, po které data putovala, vyšší adresu, přičte příchozí hodnotu také ke svému žlutému registru Po vykonání všech n fází, při kterých byla data zasílána postupně přes všechny dimenze, budou žluté registry procesorů obsahovat kompletní hodnoty PPS Adresy konkrétních procesorů představují indexy výsledků v pomyslném výstupním poli Algoritmus 4 Paralelní prefixový součet na Q n Require: i: int; zeleny, zluty, X[N] : D for all P i, i = 0,, 2 n 1 do in parallel zeleny zluty X[i] for j = 0 to n 1 do sequentially send zeleny i P i XOR 2 j receive novyzeleny P i XOR 2 j zeleny i = zeleny i + novyzeleny if i XOR 2 j < i then zluty i = zluty i + novyzeleny end if Celý postup je ilustrován na obrázku 5 34 Paralelní prefixový součet na EREW PRAM V případě paralelního prefixového součtu na EREW PRAM si budeme demonstrovat dva typy vhodných algoritmů V prvním případě se bude jednat o neškálovaný PPS kde předpokládáme, že paralelní systém disponuje stejným množstvím procesorů, jako je počet sčítaných hodnot Je zřejmé, že takový algoritmus bude cenově neoptimální a tudíž neefektivní a proto si zde uvedeme také optimální škálovaný PPS 341 Neškálovaný paralelní prefixový součet na EREW PRAM Mějme n procesorů P 0,, P n 1 a pole X = x 0,, x n 1 uložené ve sdílené paměti M[0],, M[n 1] Každý P i má pomocný registr y i Neškálovaný výpočet PPS na EREW PRAM s časovou složitostí O(log n) je uveden v algoritmu 5 a jeho průběh je ilustrován na obrázku Škálovaný paralelní prefixový součet na EREW PRAM Jak je patrné z obrázku 6, velké množství procesorů nemá v průběhu neškálovaného EREW PRAM PPS dostatek užitečné práce, čímž za předpokladu malé časové složitosti redukční operace narůstá podíl paralelní režie ve výpočtu a tím i paralelní cena Abychom dosáhli efektivní paralelizace, bude zapotřebí zvolit lepší granularitu a tím zajistit dostatek práce pro všechny procesory v průběhu celého výpočtu O to se snaží škálovaná varianta EREW PRAM PPS

8 Sekvenční a paralelní prefixová redukce 7 Obrázek 5: Paralelní prefixový součet na Q n [1] Obrázek 6: Neškálovaný paralelní prefixový součet na EREW P RAM [1] Uvažujme vstupní pole X = {x 0, x 1,, x n 1 } a p procesorů P 0,, P p 1 Necht q = n p Rozdělíme X do p subpolí X 0,, X p 1 po q prvcích a přidělíme každé X i příslušnému P i V první fázi každý P i vypočte prefixový součet nad X i sekvenčně Tato fáze zabere O( n p ) kroků Ve druhé fázi bude vypočten prefixový součet nad pravými krajními hodnotami všech p subpolí X i Jelikož je počet subpolí stejný jako počet procesorů, lze tuto fázi implementovat pomocí neškálovaného EREW PRAM PPS a provést ji v O(log p) krocích V závěrečné třetí fázi bude ke všem hodnotám subpolí X i, i = 1,, p 1 s výjimkou nejpravějšího prvku přičtena hodnota nejpravějšího prvku subpole X i 1 Tato operace bude trvat opět O( n p ) kroků Po této operaci bude pole X obsahoval kompletní PPS všech vstupních hodnot Celková časová složitost výpočtu bude T (n, p) = O( n p + log p), což za předpokladu n p zaručuje cenovou opti-

9 Sekvenční a paralelní prefixová redukce 8 Algoritmus 5 Neškálovaný paralelní prefixový součet na EREW P RAM Require: i, j : int; y i, M[n] : D for all P i, i = 0 to n 1 do in parallel y i M[i] for j = 0 to log n 1 do sequentially for all P i, i = 2 j to n 1 do in parallel y i = y i + M[i 2 j ] for all P i, i = 2 j to n 1 do in parallel M[i] = y i malitu výpočtu i při nízké časové složitosti redukční operace Pseudokód škálovaného PPS na EREW PRAM je uveden v algoritmu 6 Algoritmus 6 Škálovaný paralelní prefixový součet na EREW P RAM Require: i, j : int; S i [q], X[n], Z[p] : D for all P i, i = 0 to p 1 do in parallel P i sekvenčně výpočte pole S i = prefixový součet nad X i Z[i] S i [q 1] všechny P i vypočtou paralelně PPS nad Z pomocí algoritmu 5 for all P i, i = 1 to p 1 do in parallel for j = 0 to j < q 1 do S i [j] = S i [j] + Z[i 1] S i X i Průběh algoritmu 6 je ilustrován na obrázku 7 Obrázek 7: Škálovaný paralelní prefixový součet na EREW P RAM [1]

10 Aplikace paralelní prefixové redukce 9 35 Segmentový paralelní prefixový součet Segmentový paralelní prefixový součet (SPPS) je takovou modifikací základního algoritmu, kdy je vstupní pole o velikosti n rozděleno na s nestejně velkých segmentů S i a prefixové součty jsou spočteny pro segmenty Tabulka 1: Vstupní a výstupní pole segmentového PS Vstup Výstup Znaménko u operandů v tabulce 1 představuje krajní hodnoty u hranic segmentů Řešení tohoto problému je několik Uvažujme p jako počet procesorů P i Je-li s = p pak lze jednotlivé segmenty S i přidělit procesorům P i, které nad nimi spočtou prefixový součet v čase Θ(q i ) kde q i je počet prvků v segmentu S i Jelikož mají segmenty obecně různou velikost (a v extrémním případě budou všechny prvky obsaženy v jednom segmentu), bude celkový čas výpočtu T (n, p) = Θ(max{q i }) = O(n) Je-li n = p pak lze SPPS vypočíst v celkovém čase T (n, p) = O(log n) pomocí algoritmu 5 a modifikovaného operátoru jehož chování je popsáno v tabulce 2 Tabulka 2: Modifikovaný redukční operátor b b a a b b a (a b) b 4 Aplikace paralelní prefixové redukce Význam prefixového součtu (PS) není ani tak v implementaci samotného algoritmu ale v tom, že PS slouží jako základ dalších, složitějších algoritmů V následujících kapitolách si představíme některé z nich 41 Zhušt ovací problém a paralelní RadixSort Jednou z typických aplikací PS je implementace zhušt ovacího problému zmíněného v kapitole pojednávající o směrování v ICNW Uvažujme, že jistá podmnožina z p procesorů připojených ke vstupům nepřímé vícestupňové sítě typu n-rozměrný motýlek obf n má paket, který je nutno dopravit na druhou výstupní stranu sítě tak, aby i-tý paket, počítáno na vstupech odshora, skončil na i-tém výstupním vodiči shora Díky aplikaci PPS lze u zhušt ovacího problému rychle (v čase O(log p)) spočíst indexy cílových uzlů, tak jak je naznačeno na obrázku 8 Každý uzel, který drží paket bude obsahovat také hodnotu 1 ve vstupním poli PPS, uzel bez paketu bude obsahovat hodnotu 0 Z těchto hodnot bude spočten PS (např pomocí PPS implementovaného na stromě vnořeného do motýlka) čímž bude po závěrečné normalizaci indexů každý uzel vědět, kam má poslat svůj paket, aby byly na konci permutace zhuštěny do horní poloviny sítě Samotný zhušt ovací problém je pak základem dalšího algoritmu určeného pro paralelní třídění binárních hodnot nazvaného RadixSort Principem algoritmu je postupné třídění na základě zkoumání hodnot bitů jednotlivých řádů Necht X je posloupnost n k-bitových čísel, nultý bit je vpravo RadixSort je třídicí algoritmus, který není založen na porovnávání dvojice čísel, ale na permutaci, kterou značíme Split(X,i): čísla s

11 Aplikace paralelní prefixové redukce 10 Obrázek 8: Zhušt ovací problém na obf n a) počáteční hodnoty příznaků a jeden možný nepřímý strom, b) pole příznaků po PPS, c) konečné hodnoty indexů cílových řádků [1] nulovým i-tým bitem jsou zhuštěna doleva, čísla s jedničkovým i-tým bitem jsou zhuštěna doprava tak, jak je ilustrováno na obrázku 9 Algoritmus 7 Implementace paralelního třídění RadixSort Require: i: int; X[0,, 2 k 1] : D for i = 0 to k 1 do sequentially Split(X,i) Obrázek 9: Implementace paralelního RadixSortu pomocí zhušt ovacího problému [1] 42 Binární sčítačka Další z možných aplikací PS je rychlá binární sčítačka Mějme 2 n-bitová binární slova která chceme sečíst po bitech a p = n procesorů Díky existenci přenosu mezi vyššími řády při sčítání bitů binárních slov je dolní i horní sekvenční mez tohoto

12 Aplikace paralelní prefixové redukce 11 problému SL(n) = SU(n) = Θ(n) Paralelizací jsme schopni tento problém vyřešit v čase T (n, p) = O(1) + O(log n) Princip algoritmu je následující: Mějme dvě binární slova o velikosti n organizovaná jako bitová pole X = {x 0,, x n 1 } a Y = {y 0,, y n 1 } Výstupem bude součet těchto slov uložený v n-bitovém slovu Z = {z 0,, z n 1 } Postup výpočtu bude následující: 1 Všechny procesory P i vypočtou paralelně obsah slova B = {b 0,, b n 1 } tak, že porovnají bity x i a y i pomocí níže uvedeného předpisu: { (g)enerate ifxi = y i = 1 b i =, (s)top if x i = y i = 0, (p)ropagate jinak Doba trvání této operace bude T (n, p) = O(1) 2 Pomocí PPS a operátoru z tabulky 3 nad polem B vypočti pole B v čase T (n, p) = O(log n) Tabulka 3: Modifikovaný redukční operátor pro binární sčítačku s p g s s s s p s p g g g g g 3 Všechny procesory P i vypočtou přenosové slovo C = {c 0,, c n 1 } tak, že c 0 = 0 a c i = 1 b i 1 = g v čase T (n, p) = O(1) 4 Všechny procesory P i vypočtou výsledné slovo Z = {z 0,, z n 1 } tak, že z i = x i y i c i kde operátor představuje binární součet bez přenosu Doba této operace bude T (n, p) = O(1) Celý algoritmus je ilustrován na obrázku 10 Obrázek 10: Implementace paralelní binární sčítačky [1] 43 Paralelní QuickSort Využití SPPS si ukážeme na příkladu jedné z možných implementací paralelního třídicího algoritmu QuickSort Předpokládejme nesetříděné pole A[n] a p = n procesorů Princip činnosti algoritmu je pak následující:

13 Aplikace paralelní prefixové redukce 12 Algoritmus 8 Implementace paralelního třídicího algoritmu QuickSort pomocí SPPS Require: i: int; e: bool; A[n], S n [n], F [n], b s : D start: for all i = 0 to n 2 do in parallel f i = (a + i a i+1 ) Proved paralelní redukci hodnot f i pomocí operace AND a výsledek ulož do e if e = T RUE then EXIT end if for all aktuální segmenty S v A do in parallel vyber pivot b s S i [0] pošli b s všem procesorům uvnitř segmentu for all a i S do in parallel g i = (a i <> b s ), kde g i { <, =, > } /* každý S rozdělíme na 3 podsegmenty S <, S = a S > */ pomocí SPPS vypočti nové indexy prvků a i : g i = < uvnitř všech S pošli hodnoty maximálního indexu (= S < ) uvnitř všech S /* S < je rovno indexu začátku S = */ pomocí SPPS vypočti nové indexy prvků a i : g i = = uvnitř všech S pošli hodnoty maximálního indexu (= S = ) uvnitř všech S /* S < + S = je rovno indexu začátku S > */ pomocí SPPS vypočti nové indexy prvků a i : g i = > uvnitř všech S permutací segmentu S vytvoř 3 nové segmenty S = {S < S = S > } goto start

14 Kontrolní otázky 13 5 Kontrolní otázky Jaký je rozdíl mezi redukcí a prefixovou redukcí? Uved te alespoň 3 příklady implementace paralelní redukce na různých typech paralelních systému Uved te alespoň 3 příklady implementace paralelní prefixové redukce na různých typech paralelních systému Jaký je princip segmentové paralelní prefixové redukce? Uved te některé možné aplikace paralelní prefixové redukce

15 REFERENCE 14 Reference [1] Pavel Tvrdík Paralelní systémy a algoritmy Vydavatelství ČVUT, Praha, 2005

Datové struktury 2: Rozptylovací tabulky

Datové struktury 2: Rozptylovací tabulky Datové struktury 2: Rozptylovací tabulky prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy

Více

Základní datové struktury III: Stromy, haldy

Základní datové struktury III: Stromy, haldy Základní datové struktury III: Stromy, haldy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní

Více

PARALELNÍ PROCESY A PROGRAMOVÁNÍ

PARALELNÍ PROCESY A PROGRAMOVÁNÍ PARALELNÍ PROCESY A PROGRAMOVÁNÍ 8 Paralelní výpočetní modely Ing. Michal Bližňák, Ph.D. Zlín 2013 Tento studijní materiál vznikl za finanční podpory Evropského sociálního fondu (ESF) a rozpočtu české

Více

Operace ALU. INP 2008 FIT VUT v Brně

Operace ALU. INP 2008 FIT VUT v Brně Operace ALU INP 2008 FIT VUT v Brně 1 Princip ALU (FX) Požadavky: Logické operace Sčítání (v doplňkovém kódu) Posuvy/rotace Násobení ělení B A not AN OR XOR + Y 1) Implementace logických operací je zřejmá

Více

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21. Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky

Více

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Dynamické programování Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Rozděl a panuj (divide-and-conquer) Rozděl (Divide): Rozděl problém na několik podproblémů tak, aby tyto podproblémy odpovídaly původnímu

Více

Algoritmizace prostorových úloh

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

Více

IB109 Návrh a implementace paralelních systémů. Analytický model paralelních programů. RNDr. Jiří Barnat, Ph.D.

IB109 Návrh a implementace paralelních systémů. Analytický model paralelních programů. RNDr. Jiří Barnat, Ph.D. IB109 Návrh a implementace paralelních systémů Analytický model paralelních programů RNDr. Jiří Barnat, Ph.D. Analytický model paralelních programů B109 Návrh a implementace paralelních systémů: Analytický

Více

Příklady paralelních algoritmů

Příklady paralelních algoritmů Příklady paralelních algoritmů Studijní materiál Michal Černý, katedra ekonometrie, VŠE Praha 0. Úvod 0.1. Řada problémů může být řešena velmi efektivně, máme-li k disposici počítač, který disponuje více

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

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

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

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

Paralelní a distribuované výpočty (B4B36PDV)

Paralelní a distribuované výpočty (B4B36PDV) Paralelní a distribuované výpočty (B4B36PDV) Branislav Bošanský, Michal Jakob bosansky@fel.cvut.cz Artificial Intelligence Center Department of Computer Science Faculty of Electrical Engineering Czech

Více

Princip funkce počítače

Princip funkce počítače Princip funkce počítače Princip funkce počítače prvotní úlohou počítačů bylo zrychlit provádění matematických výpočtů první počítače kopírovaly obvyklý postup manuálního provádění výpočtů pokyny pro zpracování

Více

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

DobSort. Úvod do programování. DobSort Implementace 1/3. DobSort Implementace 2/3. DobSort - Příklad. DobSort Implementace 3/3 DobSort Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 V roce 1980 navrhl Dobosiewicz variantu (tzv. DobSort),

Více

Dynamické programování

Dynamické programování Dynamické programování prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA)

Více

Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti.

Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti. Intervalové stromy Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme průběžně provádět tyto dvě operace: 1. Změna jednoho čísla v posloupnosti. 2. Zjištění součtu čísel

Více

Architektura počítačů Logické obvody

Architektura počítačů Logické obvody Architektura počítačů Logické obvody http://d3s.mff.cuni.cz/teaching/computer_architecture/ Lubomír Bulej bulej@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Digitální

Více

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace Vektory a matice Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Vektory Základní pojmy a operace Lineární závislost a nezávislost vektorů 2 Matice Základní pojmy, druhy matic Operace s maticemi

Více

IB109 Návrh a implementace paralelních systémů. Kolektivní komunikační primitava. RNDr. Jiří Barnat, Ph.D.

IB109 Návrh a implementace paralelních systémů. Kolektivní komunikační primitava. RNDr. Jiří Barnat, Ph.D. IB109 Návrh a implementace paralelních systémů Kolektivní komunikační primitava RNDr. Jiří Barnat, Ph.D. Kvantitativní parametry komunikace B109 Návrh a implementace paralelních systémů: Kolektivní komunikační

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

Základní komunikační operace

Základní komunikační operace Základní komunikační operace Úvod Operace send a recieve Blokující a neblokující posílání zpráv Blokující posílání zpráv Neblokující posílání zpráv One-to-all broadcast/all-to-one reduction All-to-all

Více

IB108 Sada 1, Příklad 1 Vypracovali: Tomáš Krajča (255676), Martin Milata (256615)

IB108 Sada 1, Příklad 1 Vypracovali: Tomáš Krajča (255676), Martin Milata (256615) IB108 Sada 1, Příklad 1 ( ) Složitost třídícího algoritmu 1/-Sort je v O n log O (n.71 ). Necht n = j i (velikost pole, které je vstupním parametrem funkce 1/-Sort). Lehce spočítáme, že velikost pole předávaná

Více

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

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

Více

Pokročilé haldy. prof. Ing. Pavel Tvrdík CSc. Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010

Pokročilé haldy. prof. Ing. Pavel Tvrdík CSc. Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Pokročilé haldy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (I-EFA) ZS 2010/11,

Více

NPRG030 Programování I, 2018/19 1 / :03:07

NPRG030 Programování I, 2018/19 1 / :03:07 NPRG030 Programování I, 2018/19 1 / 20 3. 12. 2018 09:03:07 Vnitřní třídění Zadání: Uspořádejte pole délky N podle hodnot prvků Měřítko efektivity: * počet porovnání * počet přesunů NPRG030 Programování

Více

Zavedení a vlastnosti reálných čísel

Zavedení a vlastnosti reálných čísel Zavedení a vlastnosti reálných čísel jsou základním kamenem matematické analýzy. Konstrukce reálných čísel sice není náplní matematické analýzy, ale množina reálných čísel R je pro matematickou analýzu

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

Architektura počítačů Logické obvody

Architektura počítačů Logické obvody Architektura počítačů Logické obvody http://d3s.mff.cuni.cz/teaching/computer_architecture/ Lubomír Bulej bulej@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics 2/36 Digitální

Více

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

Algoritmus pro hledání nejkratší cesty orientovaným grafem 1.1 Úvod Algoritmus pro hledání nejkratší cesty orientovaným grafem Naprogramoval jsem v Matlabu funkci, která dokáže určit nejkratší cestu v orientovaném grafu mezi libovolnými dvěma vrcholy. Nastudoval

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

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech

Více

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Přednáška Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského

Více

Algoritmizace řazení Bubble Sort

Algoritmizace řazení Bubble Sort Algoritmizace řazení Bubble Sort Cílem této kapitoly je seznámit studenta s třídícím algoritmem Bubble Sort, popíšeme zde tuto metodu a porovnáme s jinými algoritmy. Klíčové pojmy: Třídění, Bubble Sort,

Více

Paralelní algoritmy v lineární algebře. Násobení matic

Paralelní algoritmy v lineární algebře. Násobení matic Paralelní algoritmy v lineární algebře Násobení matic Násobení matic mějme matice A, B, C R n,n počítáme součin C = AB mějme p procesu a necht p je mocnina dvou matice rozdělíme blokově na p p bloků pak

Více

Rekurzivní algoritmy

Rekurzivní algoritmy Rekurzivní algoritmy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA) ZS

Více

Časová a prostorová složitost algoritmů

Časová a prostorová složitost algoritmů .. Časová a prostorová složitost algoritmů Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Hodnocení algoritmů Programovací techniky Časová a prostorová

Více

0.1 Úvod do lineární algebry

0.1 Úvod do lineární algebry Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Lineární rovnice o 2 neznámých Definice 011 Lineární rovnice o dvou neznámých x, y je rovnice, která může být vyjádřena ve tvaru ax + by = c, kde

Více

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují 1. u + v = v + u, u, v V 2. (u + v) + w = u + (v + w),

Více

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit Jednoduché stránkování Operační systémy Přednáška 8: Správa paměti II Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné velikosti

Více

Paralelní programování

Paralelní programování Paralelní programování přednáška 5 Michal Krupka 15. března 2011 Michal Krupka (KI UP) Paralelní programování 15. března 2011 1 / 13 Ještě ke kritickým sekcím Použití v praxi obvykle pomocí zámků (locks)

Více

Zimní semestr akademického roku 2014/ prosince 2014

Zimní semestr akademického roku 2014/ prosince 2014 Cvičení k předmětu BI-ZMA Tomáš Kalvoda Katedra aplikované matematiky FIT ČVUT Matěj Tušek Katedra matematiky FJFI ČVUT Obsah Cvičení Zimní semestr akademického roku 014/015. prosince 014 Předmluva iii

Více

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru: 3 Maticový počet 3.1 Zavedení pojmu matice Maticí typu (m, n, kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru: a 11 a 12... a 1k... a 1n a 21 a 22...

Více

Operace s maticemi. 19. února 2018

Operace s maticemi. 19. února 2018 Operace s maticemi Přednáška druhá 19. února 2018 Obsah 1 Operace s maticemi 2 Hodnost matice (opakování) 3 Regulární matice 4 Inverzní matice 5 Determinant matice Matice Definice (Matice). Reálná matice

Více

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti Kapitola 5 Vektorové prostory V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti operací sčítání a násobení

Více

0.1 Úvod do lineární algebry

0.1 Úvod do lineární algebry Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Vektory Definice 011 Vektorem aritmetického prostorur n budeme rozumět uspořádanou n-tici reálných čísel x 1, x 2,, x n Definice 012 Definice sčítání

Více

Návrh Designu: Radek Mařík

Návrh Designu: Radek Mařík 1. 7. Najděte nejdelší rostoucí podposloupnost dané posloupnosti. Použijte metodu dynamického programování, napište tabulku průběžných délek částečných výsledků a tabulku předchůdců. a) 5 8 11 13 9 4 1

Více

Číselné vyjádření hodnoty. Kolik váží hrouda zlata?

Číselné vyjádření hodnoty. Kolik váží hrouda zlata? Čísla a logika Číselné vyjádření hodnoty Au Kolik váží hrouda zlata? Dekadické vážení Když přidám osmé závaží g, váha se převáží => závaží zase odeberu a začnu přidávat závaží x menší 7 závaží g 2 závaží

Více

Strojový kód. Instrukce počítače

Strojový kód. Instrukce počítače Strojový kód Strojový kód (Machine code) je program vyjádřený v počítači jako posloupnost instrukcí procesoru (posloupnost bajtů, resp. bitů). Z hlediska uživatele je strojový kód nesrozumitelný, z hlediska

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

bin arn ı vyhled av an ı a bst Karel Hor ak, Petr Ryˇsav y 23. bˇrezna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT

bin arn ı vyhled av an ı a bst Karel Hor ak, Petr Ryˇsav y 23. bˇrezna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT binární vyhledávání a bst Karel Horák, Petr Ryšavý 23. března 2016 Katedra počítačů, FEL, ČVUT Příklad 1 Naimplementujte binární vyhledávání. Upravte metodu BinarySearch::binarySearch. 1 Příklad 2 Mysĺım

Více

MĚŘENÍ A ANALÝZA ELEKTROAKUSTICKÝCH SOUSTAV NA MODELECH. Petr Kopecký ČVUT, Fakulta elektrotechnická, Katedra Radioelektroniky

MĚŘENÍ A ANALÝZA ELEKTROAKUSTICKÝCH SOUSTAV NA MODELECH. Petr Kopecký ČVUT, Fakulta elektrotechnická, Katedra Radioelektroniky MĚŘENÍ A ANALÝZA ELEKTROAKUSTICKÝCH SOUSTAV NA MODELECH Petr Kopecký ČVUT, Fakulta elektrotechnická, Katedra Radioelektroniky Při návrhu elektroakustických soustav, ale i jiných systémů, je vhodné nejprve

Více

ALGEBRA. Téma 5: Vektorové prostory

ALGEBRA. Téma 5: Vektorové prostory SLEZSKÁ UNIVERZITA V OPAVĚ Matematický ústav v Opavě Na Rybníčku 1, 746 01 Opava, tel. (553) 684 611 DENNÍ STUDIUM Téma 5: Vektorové prostory Základní pojmy Vektorový prostor nad polem P, reálný (komplexní)

Více

1. Databázové systémy (MP leden 2010)

1. Databázové systémy (MP leden 2010) 1. Databázové systémy (MP leden 2010) Fyzickáimplementace zadáníaněkterářešení 1 1.Zkolikaajakýchčástíseskládáčasprovstupněvýstupníoperaci? Ze tří částí: Seektime ječas,nežsehlavadiskudostanenadsprávnou

Více

SČÍTAČKA, LOGICKÉ OBVODY ÚVOD TEORIE

SČÍTAČKA, LOGICKÉ OBVODY ÚVOD TEORIE SČÍTAČKA, LOGICKÉ OBVODY ÚVOD Konzultanti: Peter Žilavý, Jindra Vypracovali: Petr Koupý, Martin Pokorný Datum: 12.7.2006 Naším úkolem bylo sestrojit pomocí logických obvodů (tzv. hradel) jednoduchou 4

Více

KTE/TEVS - Rychlá Fourierova transformace. Pavel Karban. Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni

KTE/TEVS - Rychlá Fourierova transformace. Pavel Karban. Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni KTE/TEVS - Rychlá Fourierova transformace Pavel Karban Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni 10.11.011 Outline 1 Motivace FT Fourierova transformace

Více

Lineární algebra Operace s vektory a maticemi

Lineární algebra Operace s vektory a maticemi Lineární algebra Operace s vektory a maticemi Robert Mařík 26. září 2008 Obsah Operace s řádkovými vektory..................... 3 Operace se sloupcovými vektory................... 12 Matice..................................

Více

Základní pojmy teorie množin Vektorové prostory

Základní pojmy teorie množin Vektorové prostory Základní pojmy teorie množin Přednáška MATEMATIKA č. 1 Katedra ekonometrie FEM UO Brno kancelář 69a, tel. 973 442029 email:jiri.neubauer@unob.cz 7. 10. 2010 Základní pojmy teorie množin Základní pojmy

Více

4. Úvod do paralelismu, metody paralelizace

4. Úvod do paralelismu, metody paralelizace 4. Úvod do paralelismu, metody paralelizace algoritmů Ing. Michal Bližňák, Ph.D. Ústav informatiky a umělé inteligence Fakulta aplikované informatiky UTB Zĺın Paralelní procesy a programování, Zĺın, 26.

Více

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

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13. Grafy doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB TUO) Grafy 104 / 309 Osnova přednášky Grafy

Více

1 Vektorové prostory.

1 Vektorové prostory. 1 Vektorové prostory DefiniceMnožinu V, jejíž prvky budeme označovat a, b, c, z, budeme nazývat vektorovým prostorem právě tehdy, když budou splněny následující podmínky: 1 Je dáno zobrazení V V V, které

Více

Systém adresace paměti

Systém adresace paměti Systém adresace paměti Základní pojmy Adresa fyzická - adresa, která je přenesena na adresní sběrnici a fyzicky adresuje hlavní paměť logická - adresa, kterou má k dispozici proces k adresaci přiděleného

Více

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

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

Více

[1] samoopravné kódy: terminologie, princip

[1] samoopravné kódy: terminologie, princip [1] Úvod do kódování samoopravné kódy: terminologie, princip blokové lineární kódy Hammingův kód Samoopravné kódy, k čemu to je [2] Data jsou uložena (nebo posílána do linky) kodérem podle určitého pravidla

Více

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D. Digitální obvody Doc. Ing. Lukáš Fujcik, Ph.D. Základní invertor v technologii CMOS dva tranzistory: T1 vodivostní kanál typ N T2 vodivostní kanál typ P při u VST = H nebo L je klidový proud velmi malý

Více

Paralelní a distribuované výpočty (B4B36PDV)

Paralelní a distribuované výpočty (B4B36PDV) Paralelní a distribuované výpočty (B4B36PDV) Branislav Bošanský, Michal Jakob bosansky@fel.cvut.cz Artificial Intelligence Center Department of Computer Science Faculty of Electrical Engineering Czech

Více

Paralení programování pro vícejádrové stroje s použitím OpenMP. B4B36PDV Paralelní a distribuované výpočty

Paralení programování pro vícejádrové stroje s použitím OpenMP. B4B36PDV Paralelní a distribuované výpočty Paralení programování pro vícejádrové stroje s použitím OpenMP B4B36PDV Paralelní a distribuované výpočty Minulé cvičení: Vlákna a jejich synchronizace v C++ 11... 1 Minulé cvičení: Vlákna a jejich synchronizace

Více

Báze a dimenze vektorových prostorů

Báze a dimenze vektorových prostorů Báze a dimenze vektorových prostorů Buď (V, +, ) vektorový prostor nad tělesem (T, +, ). Nechť u 1, u 2,..., u n je konečná posloupnost vektorů z V. Existují-li prvky s 1, s 2,..., s n T, z nichž alespoň

Více

5. Sekvenční logické obvody

5. Sekvenční logické obvody 5. Sekvenční logické obvody 3. Sekvenční logické obvody - úvod Sledujme chování jednoduchého logického obvodu se zpětnou vazbou 3. Sekvenční logické obvody - příklad asynchronního sekvenčního obvodu 3.

Více

Matice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n

Matice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n [1] Základní pojmy [2] Matice mezi sebou sčítáme a násobíme konstantou (lineární prostor) měníme je na jiné matice eliminační metodou násobíme je mezi sebou... Matice je tabulka čísel s konečným počtem

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

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

5 Orientované grafy, Toky v sítích

5 Orientované grafy, Toky v sítích Petr Hliněný, FI MU Brno, 205 / 9 FI: IB000: Toky v sítích 5 Orientované grafy, Toky v sítích Nyní se budeme zabývat typem sít ových úloh, ve kterých není podstatná délka hran a spojení, nýbž jejich propustnost

Více

(Cramerovo pravidlo, determinanty, inverzní matice)

(Cramerovo pravidlo, determinanty, inverzní matice) KMA/MAT1 Přednáška a cvičení, Lineární algebra 2 Řešení soustav lineárních rovnic se čtvercovou maticí soustavy (Cramerovo pravidlo, determinanty, inverzní matice) 16 a 21 října 2014 V dnešní přednášce

Více

Cílem této kapitoly je uvedení pojmu matice a jejich speciálních typů. Čtenář se seznámí se základními vlastnostmi matic a s operacemi s maticemi

Cílem této kapitoly je uvedení pojmu matice a jejich speciálních typů. Čtenář se seznámí se základními vlastnostmi matic a s operacemi s maticemi 2.2. Cíle Cílem této kapitoly je uvedení pojmu matice a jejich speciálních typů. Čtenář se seznámí se základními vlastnostmi matic a s operacemi s maticemi Předpokládané znalosti Předpokladem zvládnutí

Více

Paralelní grafové algoritmy

Paralelní grafové algoritmy Paralelní grafové algoritmy Značení Minimální kostra grafu Nejkratší cesta z jednoho uzlu Nejkratší cesta mezi všemi dvojicemi uzlů Použité značení Definition Bud G = (V, E) graf. Pro libovolný uzel u

Více

KOMBINAČNÍ LOGICKÉ OBVODY

KOMBINAČNÍ LOGICKÉ OBVODY Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/03.0009 KOMBINAČNÍ LOGICKÉ OBVODY U těchto obvodů je vstup určen jen výhradně kombinací vstupních veličin. Hodnoty

Více

Základy algoritmizace a programování

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

Více

5. Paralelní sčítání, bitonické třídění(zapsal: Petr Jankovský)

5. Paralelní sčítání, bitonické třídění(zapsal: Petr Jankovský) 5. Paralelní sčítání, bitonické třídění(zapsal: Petr Jankovský) Minule jsme si zavedli paralelní výpočetní model, ve kterém si nyní něco naprogramujeme... Sčítání binárních čísel Mějme dvě čísla x a y

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

Časová složitost algoritmů

Časová složitost algoritmů Časová složitost algoritmů Důležitou vlastností algoritmu je časová náročnost výpočtů provedené podle daného algoritmu Ta se nezískává měřením doby výpočtu pro různá data, ale analýzou algoritmu, jejímž

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

Operace s maticemi

Operace s maticemi Operace s maticemi Seminář druhý 17.10. 2018 Obsah 1 Operace s maticemi 2 Hodnost matice 3 Regulární matice 4 Inverzní matice Matice Definice (Matice). Reálná matice typu m n je obdélníkové schema A =

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

13. Třídící algoritmy a násobení matic

13. Třídící algoritmy a násobení matic 13. Třídící algoritmy a násobení matic Minulou přednášku jsme probírali QuickSort, jeden z historicky prvních třídících algoritmů, které překonaly kvadratickou složitost aspoň v průměrném případě. Proč

Více

Matice. a m1 a m2... a mn

Matice. a m1 a m2... a mn Matice Nechť (R, +, ) je okruh a nechť m, n jsou přirozená čísla Matice typu m/n nad okruhem (R, +, ) vznikne, když libovolných m n prvků z R naskládáme do obdélníkového schematu o m řádcích a n sloupcích

Více

Arnoldiho a Lanczosova metoda

Arnoldiho a Lanczosova metoda Arnoldiho a Lanczosova metoda 1 Částečný problém vlastních čísel Ne vždy je potřeba (a někdy to není ani technicky možné) nalézt celé spektrum dané matice (velké řídké matice). Úloze, ve které chceme aproximovat

Více

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic Přednáška třetí (a pravděpodobně i čtvrtá) aneb Úvod do lineární algebry Matice a soustavy rovnic Lineární rovnice o 2 neznámých Lineární rovnice o 2 neznámých Lineární rovnice o dvou neznámých x, y je

Více

Základní operace. Prefix sum. Segmentovaný prefix-sum

Základní operace. Prefix sum. Segmentovaný prefix-sum Základní operace Paralelní redukce Paralelní redukce na architekturách se sdílenou pamětí Paralelní redukce na architekturách s distribuovanou pamětí Paralelní redukce na GPU v CUDA Prefix sum Segmentovaný

Více

V kompletním grafu nenastává problém. Každý uzel je soused se zbytkem vrcholů a může s nimi kdykoliv komunikovat.

V kompletním grafu nenastává problém. Každý uzel je soused se zbytkem vrcholů a může s nimi kdykoliv komunikovat. 1 SMĚROVÁNÍ (ROUTING) V kompletním grafu nenastává problém. Každý uzel je soused se zbytkem vrcholů a může s nimi kdykoliv komunikovat. Problém nastává u ostatních grafů: Kritéria dobrého směrování: a)

Více

IB111 Úvod do programování skrze Python

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

Více

II. Úlohy na vložené cykly a podprogramy

II. Úlohy na vložené cykly a podprogramy II. Úlohy na vložené cykly a podprogramy Společné zadání pro příklady 1. - 10. začíná jednou ze dvou možností popisu vstupních dat. Je dána posloupnost (neboli řada) N reálných (resp. celočíselných) hodnot.

Více

Digitální učební materiál

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

Více

Testování prvočíselnosti

Testování prvočíselnosti Dokumentace zápočtového programu z Programování II (NPRG031) Testování prvočíselnosti David Pěgřímek http://davpe.net Úvodem V různých oborech (například v kryptografii) je potřeba zjistit, zda je číslo

Více

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice Vektorové podprostory K množina reálných nebo komplexních čísel, U vektorový prostor nad K. Lineární kombinace vektorů u 1, u 2,...,u

Více

Zadání semestrálního projektu Algoritmy II. letní semestr 2017/2018

Zadání semestrálního projektu Algoritmy II. letní semestr 2017/2018 Zadání semestrálního projektu Algoritmy II. letní semestr 2017/2018 doc. Mgr. Jiří Dvorský, Ph.D. Verze zadání 6. dubna 2018 První verze Obecné pokyny 1. Celkem jsou k dispozici tři zadání příkladů. 2.

Více

Vyvažování a rotace v BVS, všude se předpokládá AVL strom

Vyvažování a rotace v BVS, všude se předpokládá AVL strom Vyvažování a rotace v BVS, všude se předpokládá AVL strom 1. Jednoduchá levá rotace v uzlu u má operační složitost a) závislou na výšce levého podstromu uzlu u b) mezi O(1) a Θ(n) c) závislou na hloubce

Více

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

Anotace. Informace o praktiku z programování!!! Direktivy překladače Soubory (textové) Quicksort Metoda rozděl a panuj

Anotace. Informace o praktiku z programování!!! Direktivy překladače Soubory (textové) Quicksort Metoda rozděl a panuj Anotace Informace o praktiku z programování!!! Direktivy překladače Soubory (textové) Quicksort Metoda rozděl a panuj Direktivy překladače Překladač kontroluje plno věcí, například: zda nekoukáme za konec

Více

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09 Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Operátory Autor:

Více