Příklady paralelních algoritmů
|
|
- Ilona Macháčková
- před 6 lety
- Počet zobrazení:
Transkript
1 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 než jedním procesorem. Často je možné nějakým způsobem úlohu rozdělit na menší části, každou z těchto částí nechat zpracovat jednomu procesoru a poté z těchto částí poskládat řešení celé úlohy. Mohou-li jednotlivé procesory pracovat nezávisle na sobě, bude celkový čas zpracování úlohy roven maximu z časů, po které počítají jednotlivé procesory, plus čas potřebný na získání výsledku celkové úlohy z výsledků jednotlivých částí. 0.. Příklad. Uvažme počítač, který disponuje n procesory. Nechť jsou dány dva vektory x = (x 1, x,..., x n ) a y = (y 1, y,..., y n ) a naším úkolem je spočítat jejich skalární součin 1 xy T = x 1 y 1 + x y + + x n y n. Všimněme si, že všechny součiny x i y i je možné počítat nezávisle na sobě. Pokud bychom každému z n procesorů přidělili úkol spočítat jeden z těchto součinů, a všechny procesory mohly počítat nezávisle na sobě, bude celkový čas této operace roven max i m i, kde m i je čas potřebný k výpočtu x i y i (1 i n). Kdybychom však počítali stejnou úlohu na počítači s jediným procesorem, byl by potřebný čas m 1 + m + + m n, tedy obecně podstatně větší. Pro jednoduchost nadále předpokládejme, že jedna aritmetická operace (sčítání nebo násobení) trvá jednotkový čas. Pak bychom dostali, že výpočet všech součinů x i y i na paralelním počítači s n procesory trvá čas O(1), zatímco na sekvenčním počítači (tedy počítači s jediným procesorem) bychom potřebovali čas O(n). Předpokládejme pro jednoduchost, že číslo n je mocninou dvojky, a označme a i = x i y i. Abychom dostali číslo xy T, potřebujeme čísla a i posčítat. Na 1 Horní index T značí transposici. 1
2 paralelním počítači můžeme postupovat takto: použijeme n procesorů, které spočtou čísla b 1 = a 1 + a, b = a 3 + a 4,, b n = a n 1 + a n. Těchto n součtů lze spočítat paralelně, tedy v čase O(1). Dále postupujeme obdobně: budeme paralelně po dvou sčítat čísla b i, opět v čase O(1): c 1 = b 1 + b, c = b 3 + b 4,, c n 4 = b n 1 + b n. A tak bychom pokračovali dále, dokud bychom nezískali výslednou hodnotu xy T. Schematicky můžeme celý výpočet pro n = 8 znázornit následující pyramidou: xy T c 1 c b 1 b b 3 b 4 a 1 a a 3 a 4 a 5 a 6 a 7 a 8 Výpočet každého patra pyramidy trvá čas O(1), protože každý součet může být proveden nezávisle na ostatních součtech na patře. Všimněme si, že dokonce nevyužijeme ani všech n procesorů. Celkový čas na výpočet součtu je tedy roven počtu pater této pyramidy. Protože je v každém patře polovina členů oproti patru bezprostředně pod ním, je v našem příkladě počet pater roven log 8 = 3; obecně je výška pyramidy O(log n). Dostáváme tak, že na výpočet skalárního součinu xy T je třeba čas O(1) + O(log n) = O(log n), zatímco na sekvenčním počítači (s jediným procesorem) bychom potřebovali čas O(n) Uvedený příklad ukazuje, že paralelisací problémů můžeme dosáhnout velmi podstatného zrychlení výpočtu (uvědomme si, že funkce log n roste oproti n velmi pomalu). Cena za toto zrychlení je však velká: potřebujeme k tomu velký počet procesorů. Dokonce vidíme, toto zrychlení výpočtu je
3 podmíněno tím, že s růstem velikosti úlohy potřebujeme rostoucí počet procesorů Všimněme si, že pomocí tohoto algoritmu můžeme provést i násobení matic. Máme-li vynásobit dvě matice A a B velikosti n n, můžeme číslo v matici AB na místě i, j spočítat jako skalární součin i-tého řádku matice A a j-tého sloupce matice B. Pokud bychom měli k disposici n 3 procesorů, můžeme všech n skalárních součinů spočítat paralelně a tak v čase O(log n) paralelně spočítat všechna čísla v matici AB. Upozorněme na jeden detail: složitost výpočtu obvykle měříváme jako funkci velikosti vstupního zadání. Uvědomme si, že v této úloze n není velikostí vstupu; velikost vstupu je řádově m = n. Proto náš algoritmus na násobení matic počítá v čase O( log m) (kde jsme předpokládali, že provedení jedné aritmetické operace trvá jednotkový čas) a použije k tomu m 3/ procesorů. Klasický sekvenční algoritmus pro násobení matic podle definice pracuje v čase O(m 3/ ). 1. Hledání maxima posloupnosti v konstantním čase 1.1. Mějme dánu poslounost čísel a 1, a,..., a n. Nalezení maxima na sekvenčním počítači (tj. na počítači s jediným procesorem) trvá čas Θ(n): budeme čísla a 1, a,..., a n postupně procházet a pamatovat si největší dosud nalezené. Není těžké si též při tomto průchodu posloupností označit pole, kde bylo maximum nalezeno (naprogramujte!). Tato procedura zřejmě trvá čas O(n) (předpokládáme-li, že porovnání dvou čísel lze provést v jednotkovém čase). 1.. Uvědomme si též, že kratší čas než O(n) tato procedura trvat nemůže; kdyby nějaký sekvenční program měl hledat maximum v čase o(n), neměl by čas ani přečíst všechna čísla a i. Je zřejmé, že by nemohl počítat správně: mohli bychom mu někam do nepřečteného úseku umístit obrovské číslo, které by program díky tomu, že tento úsek nečetl, nenašel Už v příkladu 0.. jsme viděli, že pro paralelní programy toto dolní omezení neplatí: díky tomu, že máme k disposici více procesorů, může zpracování úlohy trvat i kratší čas než O(n). 3
4 1.4. Ukažme nyní paralelní program, který nalezne maximum posloupnosti v konstantním čase: výpočet bude trvat vždy stejně dlouho, bez ohledu na to, jak dlouhá je vstupní posloupnost Předpokládejme, že máme k disposici počítač s n procesory. Uvažme tento výpočetní model: počítač má paměť s přímým přístupem, každá buňka paměti může obsahovat jedno číslo. Čtení i zápis čísla trvá čas O(1). Z paměti může více procesorů číst najednou. Zapisovat do paměti může též více procesorů najednou, ale pouze tehdy, zapisují-li všechny stejnou hodnotu; pokud by se pokusily dva procesory zároveň do některé buňky paměti zapsat různá čísla, dojde k chybě Předpokládejme, že máme v paměti vyhrazeno pole b ij, 1 i n, 1 j n, a procesory jsou označeny P ij. Výstupem bude pole m i, 1 i n takové, že m i = 1, je-li a i maximum, a m i = 0, není-li a i maximum V prvním kroku každý z procesorů P ij čte z paměti čísla a i a a j a provede instrukci if a i a j then zapiš b ij := 1 else zapiš b ij := 0. Tuto akci provede všech n procesorů paralelně; celkem tedy vyplnění pole b ij bude trvat čas O(1). V dalším kroku vezmeme n procesorů, řekněme P 11 až P 1n, a vyplníme s nimi pole m i jedničkami. Jinými slovy, každý z procesorů P 1i provede paralelně instrukci m i := 1. Tato akce také zřejmě trvá čas O(1) Dále vezmeme opět všech n procesorů a každý procesor P ij provede instrukci if b ij = 0 then zapiš m i := 0. Uvědomme si, že číslo a k je maximum, právě když má matice b ij v k-tém řádku samé jedničky. V tom případě žádný z procesorů P k1, P k,..., P kn při provádění testu if b kj = 0 then... neuspěje, a proto instrukci zapiš m k := 0 ani jeden z nich neprovede. V buňce m k tak zůstane hodnota 1. V případě, kdyby a k maximum nebylo, bude k-tý řádek matice b ij obsahovat aspoň jednu nulu; řekněme, že je v l-tém sloupci. Proto procesor P kl při provádění testu if b kl = 0 then... uspěje a zapíše do m k hodnotu 0. 4
5 Všimněme se, že pokud k-tý řádek matice obsahuje více nul, pokouší se více procesorů zapsat do m k hodnotu 0; nikdy však nedojde k chybě, protože se nikdy dva procesory nepokoušejí do stejné paměťové buňky zapsat různá čísla. Opět je zřejmé, že tento krok trvá čas O(1) Příklad. Uvažme posloupnost a 1 = 1, a = 3, a 3 =, a 4 = 9, a 5 = 0. Matice b ij a pole m i budou vypadat takto: b ij m i Snadno už nyní v jednom kroku zapíšeme hodnotu maximálního prvku na výstup, či řekněme do paměťové buňky M. Použijeme n procesorů, řekněme P 11, P 1,..., P 1n a každý z procesorů P 1i provede instrukci if m i = 1 then zapiš M := a i.. Sčítání.1. V této kapitole ukážeme, že i tak jednoduchou operaci, jakou je sčítání dvou čísel zadaných jako posloupnost bitů (tedy v binárním zápise), je možné paralelisovat a dosáhnout tak velmi příznivého výpočetního času. Budeme k tomu potřebovat lineární počet procesorů; tyto procesory však budou provádět tak jednoduché operace (konjunkci, disjunkci bitů apod.), že je budeme moci nahradit hradly a sestavit logický obvod, který rychlé sčítání realisuje... Nechť jsou dána dvě n-místná čísla a a b jako posloupnost bitů: a = a n 1 n 1 + a n n + + a a 0, b = b n 1 n 1 + b n n + + b b 0 5
6 a máme určit bity s 0, s 1,..., s n, které tvoří jejich součet: a + b = s = s n n + s n 1 n s s 0. (Všimněme si, že obecně může být součet dvou n-místných čísel o jedno místo delší.).3. Přímý algoritmus pro sčítání postupuje zprava doleva : nejprve provede operaci s 0 = a 0 b 0 a jsou-li oba tyto bity 1, zapamatuje si přenos jedničky do vyššího řádu c 0 = 1; jinak bude c 0 = 0. Dále se sčítá s 1 = a 1 b 1 c 0 a jsou-li alespoň dva z těchto sčítanců 1, zapamatuje si přenos jedničky c 1 = 1, jinak bude c 1 = 0. Dále se sčítá s = a b c 1 a jsou-li alespoň dva ze sčítanců 1, zapamatuje se přenos c = 1 atd. Je vidět, že paralelisaci sčítání komplikuje právě přenos jedničky do vyšších řádů. V následujícím textu popíšeme metodu, jak výpočet přenosů c i paralelisovat..4. Zaveďme pomocnou operaci : (g, p) (g, p ) = (g (p & g ), p & p ). Při paralelisaci s výhodou využijete toho, že tato operace je asociativní (viz část.10.):.5. Položme [(g, p) (g, p )] (g, p ) = (g, p) [(g, p ) (g, p )]. g i = a i & b i a p i = a i b i. Čísla g i a p i snadno paralelně spočteme ze zadaných čísel a a b. Zavedeme-li dále (G 0, P 0 ) = (g 0, p 0 ), (G i, P i ) = (g i, p i ) (G i 1, P i 1 ) pro 1 i n 1, platí důležitý vztah (viz část.11.): G i = c i. Operace je sčítání modulo, tedy: = = 1, = = 0. Operace a b je ekvivalentní s (a b); bývá proto také nazývána jako nonekvivalence. Někdy se místo a b používá symbolu a XOR b (zkratka z exclusive OR, vylučující nebo ). 6
7 To jinými slovy znamená, že přenosy bitů c 0, c 1, c atd. lze na základě g i a p i (připomeňme, že g i = a i & b i a p i = a i b i je možné spočítat paralelně) určit pomocí vztahů c 0 = první složka (G 0, P 0 ) = (g 0, p 0 ) = g 0, c 1 = první složka (G 1, P 1 ) = (g 1, p 1 ) (g 0, p 0 ), c = první složka (G, P ) = (g, p ) (g 1, p 1 ) (g 0, p 0 ), c 3 = první složka (G 3, P 3 ) = (g 3, p 3 ) (g, p ) (g 1, p 1 ) (g 0, p 0 ) atd..5. Nyní je již zřejmé, že asociativita operace zaručuje, že můžeme počítat mnoho výrazů současně. Například (G 3, P 3 ) je možné určit ve dvou krocích tak, že jeden procesor spočte (γ, λ) = (g 3, p 3 ) (g, p ), druhý procesor paralelně spočte (γ, λ ) = (g 1, p 1 ) (g 0, p 0 ) a ve druhém kroku se spočte (G 3, P 3 ) = (γ, λ) (γ, λ ). Tím se získá přenos bitů c 3 = G 3 (číslo P 3 již nepotřebujeme)..6. Přistupme nyní k popisu rychlého paralelního algoritmu na sčítání. Předpokládejme, že máme v paměti pole K 0, K 1,..., K n 1 a v každé buňce tohoto pole uchováváme dvojici bitů. Uvažme nejprve příklad, kdy sčítáme dvě osmibitová čísla a 7 a 6 a 0 a b 7 b 6 b 0. V prvním kroku spočteme paralelně všechna g i a p i a uložíme je do paměti: K 0 := (g 0, p 0 ), K 1 := (g 1, p 1 ),..., K 7 := (g 7, p 7 ). V druhém kroku paralelně spočteme K 1 := K 0 K 1, K 3 := K K 3, K 5 := K 4 K 5, K 7 := K 6 K 7. Ve třetím kroku paralelně spočteme K 3 := K 1 K 3, K 7 := K 5 K 7 a ve čtvrtém V této fázi platí: K 7 := K 3 K 7. K 0 = (G 0, P 0 ) = (g 0, p 0 ), K 1 = (G 1, P 1 ) = (g 1, p 1 ) (g 0, p 0 ), K 3 = (G 3, P 3 ) = (g 3, p 3 ) (g, p ) (g 1, p 1 ) (g 0, p 0 ), K 7 = (G 7, P 7 ) = (g 7, p 7 ) (g 6, p 6 ) (g 0, p 0 ), 7
8 a tedy první bit v buňce K 0 je bitový přenos c 0, první bit v buňce K 1 obsahuje bitový přenos c 1, první bit v buňce K 3 je bitový přenos c 3 a první bit v buňce K 7 je bitový přenos c 7. Tuto první fázi algoritmu můžeme zachytit následujícím schematem: symbol ij označuje, že v dané paměťové buňce je uložena informace (g j, p j ) (g j 1, p j 1 ) (g i, p i ), takže například 47 označuje (g 7, p 7 ) (g 6, p 6 ) (g 5, p 5 ) (g 4, p 4 ). Připomeňme, že důležité jsou pro nás informace (G i, P i ), neboť G i je hledaný bitový posun c i. Je-li v některém kroku spočetno (G i, P i ), odpovídá to v našem schematu označení 0i. Šipky označují, na které paměťové buňky se aplikuje operace. Zbývá dopočítat c, c 4, c 5, c 6. Toho docílíme ve druhé fázi výpočtu: v pátém kroku spočteme K 5 := K 3 K 5, čímž získáme c 5, a v šestém kroku paralelně K := K 1 K, K 4 := K 3 K 4, K 6 := K 5 K 6. V tomto okamžiku již buňky K, K 4 a K 6 obsahují požadované hodnoty c, c 4, c 6. Opět zachyťme šestý a sedný krok na obrázku; tučně jsou vyznačena místa, kde se v příslušných paměťových buňkách objeví požadované hodnoty c i. 8
9 Vodorovná čára odděluje první a druhou fázi programu. Nyní již snadno paralelně spočteme s 0 := a 0 b 0, pro 1 i 7 s i := a i b i c i 1, s 8 := c 7. Síla uvedeného algoritmu je v tom, že počet kroků je velmi malý; v tomto konkrétním příkladě jsme potřebovali jeden krok na paralelní výpočet všech (g i, p i ), log 8 = 3 kroky na první fázi výpočtu, log (8) 1 = kroky na druhou fázi výpočtu a jeden krok na spočtení všech s i..7. Postup z minulého paragrafu je možné zobecnit na libovolně dlouhá čísla, přičemž počet kroků, které potřebujeme na výpočet bitových posunů c i, zůstane logaritmický. Předpokládejme, že počet bitů vstupních čísel je mocninou dvojky; pokud ne, snadno je zleva doplníme nulami. Nejprve paralelně spočteme všechna K i := (g i, p i ) První fáze programu bude pracovat podle následujícího schematu: 9
10 s := ; while s n do for all i = s 1, s 1, 3s 1,..., n 1 do paralelně K i end do; s := s; end do; := K i s K i; Tím máme spočteny c 0, c 1, c 3, c 7, c 15, c 31, c 63, c 17 atd., tedy všechny c s indexem tvaru (mocnina dvojky) 1. Všimněme si, že počet opakování těla cyklu while je přesně log n, protože krok s se vždy zdvojnásobí, dokud nedosáhne hodnoty n. Druhá fáze pracuje podle následujícího schematu: s := n; while s do for all i = s 1, s 1, 3s 1,..., n s 1 do paralelně K i+ s end do; s := s ; end do; := K i K i+ s ; Po této fázi již každá z paměťových buněk K i obsahuje (G i, P i ) a tudíž první bit v každé buňce je c i. Druhá fáze trvá čas log (n) 1, protože krok s začíná na hodnotě n, a vždy se zmenší na polovinu, dokud nedosáhne hodnoty. Pak že stačí v jediném kroku paralelně spočítat s 0 := a 0 b 0, pro 1 i n 1 s i := a i b i c i 1, s n := c n Pro názornost ještě ukažme schema výpočtu pro n =
11 .9. Nyní jsme již jen krůček k sestavení efektivního logického obvodu pro sčítání. V našem algoritmu jsme potřebovali n procesorů; každý z procesorů však provádí vždy jen jedinou operaci, a to. Proto bychom mohli schemata, kterými jsme ilustrovali práci algoritmu, považovat přímo za logické obvody pro výpočet c i. Šipky lze chápat jako dvojice vodičů, které přenášejí informaci typu (g, p); tam, kde se šipky stýkají, je umístěno logické hradlo, které počítá operaci (připomeňme, že (g, p) (g, p ) = (g (p & g ), p & p )). Tím máme sestaven logický obvod, který je velmi malý a počítá bitové posuny c i. Pro ilustraci ukažme tento obvod pro n = 8; na vstupy 1 až 8 přivedeme dvojice (g i, p i ) (Obvody pro výpočet g i a p i jsou triviální, protože g i = a i & b i a p i = a i b i ). 11
12 Obvod pro sčítání je pak už velmi jednoduchý, stačí napojit výstupní vodiče nesoucí informaci c i na hradla pro :.10. Dodatek. Zbývá ukázat, že jsme nelhali, když jsme používali dvou důležitých vztahů: (1) operace je asociativní, () G i = c i. Ukažme nejprve asociativitu operace, tedy, že platí: [(g, p) (g, p )] (g, p ) = (g, p) [(g, p ) (g, p )]. 1
13 Využijme toho, že a & (b & c) = (a & b) & c, a (b c) = (a b) c a a (b & c) = (a b) & (a c). [(g, p) (g, p )] (g, p ) = = (g (p & g ), p & p ) (g, p ) = = ((g (p & g ) ((p & p ) & g ), (p & p ) & p ) = = (g ((p & g ) (p & (p & g ))), (p & p ) & p ) = = (g (p & (g (p & g ))), p & (p & p )) = = (g, p) (g (p & g ), p & p ) = = (g, p) [(g, p ) (g, p )]..11. Vztah G i = c i ukážeme indukcí. Pro i = 0 je G 0 = g 0 = a 0 & b 0 = c 0, protože přenos c 0 = 1, právě když obě čísla a 0 i b 0 jsou jedničky. Pro i > 1 je (G i, P i ) = (g i, p i ) (G i 1, P i 1 ) = (g i, p i ) (c i 1, P i 1 ) = = (g i (p i & c i 1 ), p i & P i 1 ) = (c i, p i & P i 1 ); stačí si rozmyslet, že výraz g i (p i & c i 1 ) = (a i & b i ) ((a i b i ) & c i 1 ) je jednička, právě když aspoň dva z výrazů a i, b i, c i 1 jsou jedničky (třeba tak, že se sestaví tabulka pravdivostních hodnot). 3. Maticové operace 3.1. V části 0.4. jsme ukázali paralelní algoritmus, který násobí dvě matice řádu n n v čase O(log n) za použití n 3 procesorů. V praxi má tento algoritmus jednu velkou nevýhodu: vyžaduje, aby se v jednom okamžiku uspokojilo mnoho žádostí o přístup do paměti, protože každý z procesorů čte vstupní matice někde jinde. Tento fakt činí mnoho paralelních algoritmů v praxi těžko použitelnými, protože obvykle není možné zajišťovat velmi rychle mnoho paralelních přístupů do paměti a případně dalších požadavků na komunikaci mezi procesory. Proto je snaha navrhovat paralelní algoritmy tak, aby jednotlivé procesory nepožadovaly mnoho různých přístupů do paměti. Ukažme příklad algoritmu, který bude násobit dvě matice řádu n n v čase O(n). Vstupní matice budou uloženy v jednoduchém typu paměti ve fron- 13
14 tách, ze kterých budou moci procesory číst postupným odebíráním prvků z jejich začátků. 3.. Uvažme nejprve matice : ( ) ( a11 a A = 1 b11 b, B = 1 a 1 a b 1 b Mějme k disposici čtyři procesory, každý má svoji vnitřní paměť, do které je možné uložit jedno číslo s. Každý procesor má dále dva vstupy x, y a dva výstupy ξ, υ: y x s ξ υ Nechť tento procesor počítá podle velmi jednoduchého programu: ). ξ := x; υ := y; s := s + xy; (1) Takové procesory sestavíme do sítě. Na začátku výpočtu budou mít všechny procesory vnitřní paměť s = 0; síť bude pracovat v taktech tak, že v každém taktu odebere z každého vstupního zásobníku jeden údaj a každý procesor provede svoji instrukci (1). Pokud některému procesoru nic nepřichází na vstup, nic nedělá. Když u některého procesoru není zakreslen výstup, není důležitý a je možné jej zapomenout. 0 a a 1 a 1 a b 1 b 11 s 11 s 1 b b 1 0 s 1 s V prvním kroku se ze zásobníků odeberou čísla a 11, b 11, 0, 0 a po provedení instrukcí (1) bude platit s 11 = a 11 b 11, s 1 = 0, s 1 = 0, s = 0. 14
15 V dalších krocích pak s 11 = a 11 b 11 + a 1 b 1, s 1 = a 1 b 11, s 1 = a 11 b 1, s = a 1 b 1 ; s 11 = a 11 b 11 +a 1 b 1, s 1 = a 1 b 11 +a b 1, s 1 = a 11 b 1 +a 1 b, s = a 1 b 1 a s 11 = a 11 b 11 + a 1 b 1, s 1 = a 1 b 11 + a b 1, s 1 = a 11 b 1 + a 1 b, s = a 1 b 1 + a b. Je vidět, že ( s11 s 1 s 1 s ) = (AB) T, takže z vnitřních pamětí procesorů stačí matici AB pouze přečíst Tato úvaha se snadno zobecní i na větší matice než jen :... a 13 a a 31 a 1 a 1 0 a b 31 b 1 b 11 s 11 s 1 s 13 b b 1 0 s 1 s s 3 b s 31 s 3 s Soustavy rovnic. Zastavme se ještě nad otázkou řešení soustavy lineárních rovnic Ax = b. Předpokládejme pro jednoduchost, že matice A je regulární řádu n n. Máme-li k disposici n procesorů, můžeme provést jordanovskou eliminaci v 15...
16 čase O(n). V prvním kroku upravíme matici A ekvivalentními úpravami na tvar, kde v prvním sloupci bude vektor (1, 0,..., 0) T. Všimněme si, že pomocí n procesorů lze v jediném kroku provést prohození dvou řádků či přičtení k- násobku jednoho řádku k jinému řádku. A též konstatujme, že provedení více úprav zároveň je taktéž možné provádět paralelně. Předpokládejme, že a Pak stačí v čase O(1) přenásobit první řádek matice (A b) číselm 1 a 11 a poté paralelně pro i =, 3,..., n provést instrukci if a i1 0 then přičti ( a i1 )-násobek prvního řádku k i-tému řádku; Protože všechny tyto úpravy probíhají paralelně, vyžaduje celá akce čas O(1). Tím máme v prvním sloupci matice jedničku následovanou samými nulami. Kdyby náhodou bylo a 11 = 0, je třeba nejprve najít nějaký řádek, který má na prvním místě nenulové číslo, a tento řádek prohodit s prvním řádkem. To však můžeme učinit např. pomocí algoritmu popsaného v části : v konstantním čase najdeme maximum max a minimum min z čísel a 1, a 31,..., a n1. Alespoň jedno z čísel min a max musí být nenulové. Pokud si zapamatujeme, ve kterém řádku bylo toto nenulové číslo nalezeno, máme tak nalezen řádek, který se prohodí s prvním řádkem. Stále tak máme čas O(1). Je vidět, že na ekvivalentní úpravy, které vynulují jeden sloupec, potřebujeme čas O(1); na převedení matice do jordanovského tvaru (tj. do tvaru (1 b ), kde 1 je jednotková matice) potřebujeme čas O(n), protože musíme nulovat n sloupců Existují však i jiné postupy, jak paralelisovat výpočet soustavy rovnic. Předpokládejme, že matice A je řádu n n, kde n je mocninou dvojky. Můžeme postupovat takto: rozdělíme matici (A b) na horní polovinu (kterou tvoří řádky 1,,..., n) a dolní polovinu (řádky n +1, n +,..., n) a paralelně provedeme v obou částech ekvivalentní úpravy tak, abychom matici (A b) převedli do tvaru ( ) 1 F1 g 1 F 1 g (kde 1 označuje jednotkovou matici řádu n n ). Tím jsme původní soustavu převedli na ekvivalentní soustavu ( 1 F1 F 1 ) ( x1 x 16 ) = ( g1 g ).
17 ( 1 F1 Přenásobme tuto soustavu zleva maticí F 1 ( 1 F1 F 1 ) ( 1 F1 F 1 Dostáváme tak soustavu ( 1 F1 F F F 1 ) ( x1 x ) ( x1 ) = x ) : ( 1 F1 F 1 ) ( g1 F = 1 g g F g 1 ) ( g1 ). g ). Nyní již můžeme rekursivně řešit dvě soustavy rovnic o n proměnných: (1 F 1 F )x 1 = g 1 F 1 g, (1 F F 1 )x 1 = g F g 1. Tyto dvě soustavy jsou nezávislé, a tak je lze samozřejmě počítat paralelně. Tuto metodu lze dále rozpracovat tak, že dosáhneme výpočetního času O(log n), což je nejlepší dosud známý paralelní algoritmus pro řešení soustav lineárních rovnic. 4. Rekurentně zadané poslopnosti 4.1. Mějme dány dva vektory (a 1, a, a 3,..., a n ), (b 1, b,..., b n ), kde o n pro jednoduchost předpokládejme, že je mocninou dvojky, a a 1 = 0. Naším úkolem je spočítat vektor (y 1, y,..., y n ) takový, že y 1 = b 1 a y i = a i y i 1 + b i pro i =, 3,..., n. To je lineární rekurentně zadaná posloupnost. Úlohu můžeme na sekvenčním počítači řešit v čase O(n) přesně podle definice, tedy postupně počítat y 1, y, y 3 atd. podle uvedených vztahů. 4.. Na paralelním počítači však můžeme postupovat efektivněji. Spočteme dva pomocné vektory délky n α i = a i a i 1 i = 1,,..., n, β i = a i b i 1 + b i i = 1,,..., n. () 17
18 Nyní předpokládejme, že dokážeme vyřešit stejnou úlohu, ale o polovinu kratší : spočtěme vektor ω 1, ω,..., ω n splňující ω 1 = β 1, ω i = α i ω i 1 + β i pro i =, 3,..., n. (3) 4.3. Hodnoty y i lze získat na základě vztahů je-li i = 1, pak y 1 = b 1, je-li i sudé, pak y i = ω i, je-li i liché, i 1, pak y i = a i ω i 1 + b i. (4) 4.4. Náš algoritmus pak bude počítat podle následujícího schematu: (a) if n = 1 then y 1 := b 1 ; exit; (b) paralelně spočti (α 1, α,..., α n ) a (β 1, β,..., β n ) podle (); (c) rekursivně spočti (ω 1, ω,..., ω n ) splňující (3); (d) paralelně spočti y i pomocí vztahů (4). Je zřejmé, že máme-li k disposici n procesorů, řádky (a), (b) a (d) budou trvat O(1). Protože se rekurse (c) používá vždy na problém poloviční velikosti (nejprve n, další volání n, n atd.), bude počet rekursivních volání 4 8 O(log n). Dostáváme tak celkový výpočetní čas O(log n) Dodatek. Zbývá ukázat, že vztahy (4) platí: tedy, že náš algoritmus počítá správně. Postupujme indukcí; pro i = 1 je to triviálně pravda. Ukažme, nejprve že pro i sudé platí y i = ω i. Číslo ω i bylo rekursí spočteno tak, aby platilo ω i = α i ω i 1 + β i, tedy podle () ω i = a i a i 1 ω i 1 + a ib i 1 + b i. Z indukčního předpokladu y i = ω i 1 dostáváme ω i = a i a i 1 y i + a i b i 1 + b i = a i (a i 1 y i + b i 1 }{{} =y i 1 ) + b i = a i y i 1 + b i = y i. Pro lichá čísla je situace velmi jednoduchá: je-li pro sudé i y i = ω i, pak pro i + 1 je y i+1 = a i ω i + b i, což je jen jiný zápis pro poslední vztah (4). 18
19 Cvičení Kapitola 1. Nechť je dána posloupnost a 1, a,..., a n. (a) Rozhodněte, jaký je determinant matice b ij definované v 1.7. (b) Rozhodněte, jaká je hodnost matice b ij. (c) Jaký význam mají řádkové a sloupcové součty matice b ij? (d) Použijte algoritmů z částí 0.3 a z kapitoly 1 a sestavte algoritmus na hledání mediánu posloupnosti v čase O(log n). 19
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
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
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í
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...
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 =
Úvod do lineární algebry
Úvod do lineární algebry 1 Aritmetické vektory Definice 11 Mějme n N a utvořme kartézský součin R n R R R Každou uspořádanou n tici x 1 x 2 x, x n budeme nazývat n rozměrným aritmetickým vektorem Prvky
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
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
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
1 Linearní prostory nad komplexními čísly
1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)
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
a počtem sloupců druhé matice. Spočítejme součin A.B. Označme matici A.B = M, pro její prvky platí:
Řešené příklady z lineární algebry - část 1 Typové příklady s řešením Příklady jsou určeny především k zopakování látky před zkouškou, jsou proto řešeny se znalostmi učiva celého semestru. Tento fakt se
Matice. Předpokládejme, že A = (a ij ) je matice typu m n: diagonálou jsou rovny nule.
Matice Definice. Maticí typu m n nazýváme obdélníkové pole, tvořené z m n reálných čísel (tzv. prvků matice), zapsaných v m řádcích a n sloupcích. Značíme např. A = (a ij ), kde i = 1,..., m, j = 1,...,
Lineární algebra : Násobení matic a inverzní matice
Lineární algebra : Násobení matic a inverzní matice (8. přednáška) František Štampach, Karel Klouda frantisek.stampach@fit.cvut.cz, karel.klouda@fit.cvut.cz Katedra aplikované matematiky Fakulta informačních
(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
VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY
VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY Jan Krejčí 31. srpna 2006 jkrejci@physics.ujep.cz http://physics.ujep.cz/~jkrejci Obsah 1 Přímé metody řešení soustav lineárních rovnic 3 1.1 Gaussova eliminace...............................
Lineární algebra : Násobení matic a inverzní matice
Lineární algebra : Násobení matic a inverzní matice (8. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 17. března 2014, 12:42 1 2 0.1 Násobení matic Definice 1. Buďte m, n, p N, A
1 Projekce a projektory
Cvičení 3 - zadání a řešení úloh Základy numerické matematiky - NMNM20 Verze z 5. října 208 Projekce a projektory Opakování ortogonální projekce Definice (Ortogonální projekce). Uvažujme V vektorový prostor
Matematika 1 MA1. 2 Determinant. 3 Adjungovaná matice. 4 Cramerovo pravidlo. 11. přednáška ( ) Matematika 1 1 / 29
Matematika 1 11. přednáška MA1 1 Opakování 2 Determinant 3 Adjungovaná matice 4 Cramerovo pravidlo 5 Vlastní čísla a vlastní vektory matic 6 Zkouška; konzultace; výběrová matematika;... 11. přednáška (15.12.2010
1 Determinanty a inverzní matice
Determinanty a inverzní matice Definice Necht A = (a ij ) je matice typu (n, n), n 2 Subdeterminantem A ij matice A příslušným pozici (i, j) nazýváme determinant matice, která vznikne z A vypuštěním i-tého
Základy maticového počtu Matice, determinant, definitnost
Základy maticového počtu Matice, determinant, definitnost Petr Liška Masarykova univerzita 18.9.2014 Matice a vektory Matice Matice typu m n je pravoúhlé (nebo obdélníkové) schéma, které má m řádků a n
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 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
Aplikovaná numerická matematika - ANM
Aplikovaná numerická matematika - ANM 3 Řešení soustav lineárních rovnic iterační metody doc Ing Róbert Lórencz, CSc České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových
Základy matematiky pro FEK
Základy matematiky pro FEK 2. přednáška Blanka Šedivá KMA zimní semestr 2016/2017 Blanka Šedivá (KMA) Základy matematiky pro FEK zimní semestr 2016/2017 1 / 20 Co nás dneska čeká... Závislé a nezávislé
4. Kombinatorika a matice
4 Kombinatorika a matice 4 Princip inkluze a exkluze Předpokládejme, že chceme znát počet přirozených čísel menších než sto, která jsou dělitelná dvěma nebo třemi Označme N k množinu přirozených čísel
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í
SOUSTAVY LINEÁRNÍCH ALGEBRAICKÝCH ROVNIC
SOUSTAVY LINEÁRNÍCH ALGEBRAICKÝCH ROVNIC Pojm: Algebraická rovnice... rovnice obsahující pouze celé nezáporné mocnin neznámé, tj. a n n + a n 1 n 1 +... + a 2 2 + a 1 + a 0 = 0, kde n je přirozené číslo.
[1] LU rozklad A = L U
[1] LU rozklad A = L U někdy je třeba prohodit sloupce/řádky a) lurozklad, 8, b) P. Olšák, FEL ČVUT, c) P. Olšák 2010, d) BI-LIN, e) L, f) 2009/2010, g)l. Viz p. d. 4/2010 Terminologie BI-LIN, lurozklad,
[1] Determinant. det A = 0 pro singulární matici, det A 0 pro regulární matici
[1] Determinant je číslo jistým způsobem charakterizující čtvercovou matici det A = 0 pro singulární matici, det A 0 pro regulární matici používá se při řešení lineárních soustav... a v mnoha dalších aplikacích
Základy matematické analýzy
Základy matematické analýzy Spojitost funkce Ing. Tomáš Kalvoda, Ph.D. 1, Ing. Daniel Vašata 2 1 tomas.kalvoda@fit.cvut.cz 2 daniel.vasata@fit.cvut.cz Katedra aplikované matematiky Fakulta informačních
Soustavy lineárních rovnic a determinanty
Soustavy lineárních rovnic a determinanty Petr Hasil Přednáška z matematiky Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem na discipĺıny
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)
Soustavy linea rnı ch rovnic
[1] Soustavy lineárních rovnic vlastnosti množin řešení metody hledání řešení nejednoznačnost zápisu řešení a) soustavy, 10, b) P. Olšák, FEL ČVUT, c) P. Olšák 2010, d) BI-LIN, e) L, f) 2009/2010, g)l.
Soustavy. Terminologie. Dva pohledy na soustavu lin. rovnic. Definice: Necht A = (a i,j ) R m,n je matice, b R m,1 je jednosloupcová.
[1] Terminologie [2] Soustavy lineárních rovnic vlastnosti množin řešení metody hledání řešení nejednoznačnost zápisu řešení Definice: Necht A = (a i,j ) R m,n je matice, b R m,1 je jednosloupcová matice.
10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo
0. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo (PEF PaA) Petr Gurka aktualizováno 9. prosince 202 Obsah Základní pojmy. Motivace.................................2 Aritmetický vektorový
4. Trojúhelníkový rozklad p. 1/20
4. Trojúhelníkový rozklad 4. Trojúhelníkový rozklad p. 1/20 4. Trojúhelníkový rozklad p. 2/20 Trojúhelníkový rozklad 1. Permutační matice 2. Trojúhelníkové matice 3. Trojúhelníkový (LU) rozklad 4. Výpočet
maticeteorie 1. Matice A je typu 2 4, matice B je typu 4 3. Jakých rozměrů musí být matice X, aby se dala provést
Úlohy k zamyšlení 1. Zdůvodněte, proč třetí řádek Hornerova schématu pro vyhodnocení polynomu p v bodě c obsahuje koeficienty polynomu r, pro který platí p(x) = (x c) r(x) + p(c). 2. Dokažte, že pokud
Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů?
Kapitola 9 Matice a počet koster Graf (orientovaný i neorientovaný) lze popsat maticí, a to hned několika různými způsoby. Tématem této kapitoly jsou incidenční matice orientovaných grafů a souvislosti
Lineární algebra - I. část (vektory, matice a jejich využití)
Lineární algebra - I. část (vektory, matice a jejich využití) Michal Fusek Ústav matematiky FEKT VUT, fusekmi@feec.vutbr.cz 2. přednáška z ESMAT Michal Fusek (fusekmi@feec.vutbr.cz) 1 / 40 Obsah 1 Vektory
Lingebraické kapitolky - Počítání s maticemi
Lingebraické kapitolky - Počítání s maticemi Jaroslav Horáček KAM MFF UK 20 Rozehřívačka: Definice sčítání dvou matic a násobení matice skalárem, transpozice Řešení: (A + B ij A ij + B ij (αa ij α(a ij
Způsoby realizace této funkce:
KOMBINAČNÍ LOGICKÉ OBVODY U těchto obvodů je výstup určen jen výhradně kombinací vstupních veličin. Hodnoty výstupních veličin nezávisejí na předcházejícím stavu logického obvodu, což znamená, že kombinační
Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru
2. Systémy lineárních rovnic V této kapitole se budeme zabývat soustavami lineárních rovnic s koeficienty z pole reálných případně komplexních čísel. Uvádíme podmínku pro existenci řešení systému lineárních
příkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u.
Několik řešených příkladů do Matematiky Vektory V tomto textu je spočteno několik ukázkových příkladů které vám snad pomohou při řešení příkladů do cvičení. V textu se objeví i pár detailů které jsem nestihl
1 Lineární prostory a podprostory
Lineární prostory a podprostory Přečtěte si: Učebnice AKLA, kapitola první, podkapitoly. až.4 včetně. Cvičení. Které z následujících množin jsou lineárními prostory s přirozenými definicemi operací?. C
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.
IB112 Základy matematiky
IB112 Základy matematiky Řešení soustavy lineárních rovnic, matice, vektory Jan Strejček IB112 Základy matematiky: Řešení soustavy lineárních rovnic, matice, vektory 2/53 Obsah Soustava lineárních rovnic
Aritmetické operace a obvody pro jejich realizaci
Kapitola 4 Aritmetické operace a obvody pro jejich realizaci 4.1 Polyadické číselné soustavy a jejich vlastnosti Polyadické soustavy jsou určeny přirozeným číslem z, kterému se říká základ nebo báze dané
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Lukáš Havrlant Univerzita Palackého 10. ledna 2014 Primární zdroj Jiří Adámek: Foundations of Coding. Strany 137 160. Na webu ke stažení, heslo:
Vektorový prostor. Př.1. R 2 ; R 3 ; R n Dvě operace v R n : u + v = (u 1 + v 1,...u n + v n ), V (E 3 )...množina vektorů v E 3,
Vektorový prostor Příklady: Př.1. R 2 ; R 3 ; R n...aritmetický n-rozměrný prostor Dvě operace v R n : součet vektorů u = (u 1,...u n ) a v = (v 1,...v n ) je vektor u + v = (u 1 + v 1,...u n + v n ),
Číselné vektory, matice, determinanty
Číselné vektory, matice, determinanty Základy vyšší matematiky LDF MENDELU Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem na discipĺıny
Determinant matice řádu 5 budeme počítat opakovaným použitím rozvoje determinantu podle vybraného řádku nebo sloupce. Aby byl náš výpočet
Řešené příklady z lineární algebry - část 2 Příklad 2.: Určete determinant matice A: A = 4 4. Řešení: Determinant matice řádu budeme počítat opakovaným použitím rozvoje determinantu podle vybraného řádku
P 1 = P 1 1 = P 1, P 1 2 =
1 Výpočet inverzní matice Věta 1 Necht P U elementární matice vzniklá el úpravou U Pak je P U regulární Důkaz: Protože elementární úprava U je invertovatelná, existuje el úprava U, která vrací změny U
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
AVDAT Vektory a matice
AVDAT Vektory a matice Josef Tvrdík Katedra informatiky Přírodovědecká fakulta Ostravská univerzita Vektory x = x 1 x 2. x p y = y 1 y 2. y p Řádkový vektor dostaneme transpozicí sloupcového vektoru x
Řešení. Hledaná dimenze je (podle definice) rovna hodnosti matice. a 1 2. 1 + a 2 2 1
Příklad 1. Určete všechna řešení následující soustavy rovnic nad Z 2 : 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 1 Gaussovou eliminací převedeme zadanou soustavu na ekvivalentní soustavu v odstupňovaném
Dosud jsme se zabývali pouze soustavami lineárních rovnic s reálnými koeficienty.
Kapitola 4 Tělesa Dosud jsme se zabývali pouze soustavami lineárních rovnic s reálnými koeficienty. Všechna čísla byla reálná, vektory měly reálné souřadnice, matice měly reálné prvky. Také řešení soustav
VI. Maticový počet. VI.1. Základní operace s maticemi. Definice. Tabulku
VI Maticový počet VI1 Základní operace s maticemi Definice Tabulku a 11 a 12 a 1n a 21 a 22 a 2n, a m1 a m2 a mn kde a ij R, i = 1,, m, j = 1,, n, nazýváme maticí typu m n Zkráceně zapisujeme (a ij i=1m
FIT ČVUT MI-LOM Lineární optimalizace a metody. Dualita. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
FIT ČVUT MI-LOM Lineární optimalizace a metody Dualita Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Michal Černý, 2011 FIT ČVUT, MI-LOM, M. Černý, 2011: Dualita 2/5 Dualita Evropský
Hisab al-džebr val-muqabala ( Věda o redukci a vzájemném rušení ) Muhammada ibn Músá al-chvárizmího (790? - 850?, Chiva, Bagdád),
1 LINEÁRNÍ ALGEBRA 1 Lineární algebra Slovo ALGEBRA pochází z arabského al-jabr, což znamená nahrazení. Toto slovo se objevilo v názvu knihy islámského matematika Hisab al-džebr val-muqabala ( Věda o redukci
Kapitola 11: Vektory a matice:
Kapitola 11: Vektory a matice: Prostor R n R n = {(x 1,, x n ) x i R, i = 1,, n}, n N x = (x 1,, x n ) R n se nazývá vektor x i je i-tá souřadnice vektoru x rovnost vektorů: x = y i = 1,, n : x i = y i
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
Matematika B101MA1, B101MA2
Matematika B101MA1, B101MA2 Zařazení předmětu: povinný předmět 1.ročníku bc studia 2 semestry Rozsah předmětu: prezenční studium 2 + 2 kombinované studium 16 + 0 / semestr Zakončení předmětu: ZS zápočet
8 Matice a determinanty
M Rokyta, MFF UK: Aplikovaná matematika II kap 8: Matice a determinanty 1 8 Matice a determinanty 81 Matice - definice a základní vlastnosti Definice Reálnou resp komplexní maticí A typu m n nazveme obdélníkovou
MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]
MATICE Matice typu m/n nad tělesem T je soubor m n prvků z tělesa T uspořádaných do m řádků a n sloupců: a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij] a m1 a m2 a mn Prvek a i,j je prvek matice A na místě
5. Lokální, vázané a globální extrémy
5 Lokální, vázané a globální extrémy Studijní text Lokální extrémy 5 Lokální, vázané a globální extrémy Definice 51 Řekneme, že f : R n R má v bodě a Df: 1 lokální maximum, když Ka, δ Df tak, že x Ka,
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í)
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é
Lineární algebra : Polynomy
Lineární algebra : Polynomy (2. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 15. dubna 2014, 11:21 1 2 2.1 Značení a těleso komplexních čísel Značení N := {1, 2, 3... }... množina
fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu http://akademie.ldf.mendelu.cz/cz (reg. č. CZ.1.07/2.2.00/28.
Základy lineárního programování Vyšší matematika, Inženýrská matematika LDF MENDELU Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem
Lineární algebra : Lineární prostor
Lineární algebra : Lineární prostor (3. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 17. dubna 2014, 14:43 1 2 3.1 Aximotické zavedení lineárního prostoru Číselné těleso Celou lineární
2. Určete jádro KerL zobrazení L, tj. nalezněte alespoň jednu jeho bázi a určete jeho dimenzi.
Řešené příklady z lineární algebry - část 3 Typové příklady s řešením Příklad 3.1: Zobrazení L: P 3 R 23 je zobrazení z prostoru P 3 všech polynomů do stupně 3 (včetně nulového polynomu) do prostoru R
6 Ordinální informace o kritériích
6 Ordinální informace o kritériích Ordinální informací o kritériích se rozumí jejich uspořádání podle důležitosti. Předpokládejme dále standardní značení jako v předchozích cvičeních. Existují tři základní
Zpracoval: hypspave@fel.cvut.cz 7. Matematická indukce a rekurse. Řešení rekurentních (diferenčních) rovnic s konstantními koeficienty.
Zpracoval: hypspave@fel.cvut.cz 7. Matematická indukce a rekurse. Řešení rekurentních (diferenčních) rovnic s konstantními koeficienty. (A7B01MCS) I. Matematická indukce a rekurse. Indukční principy patří
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
Lineární programování
Lineární programování Petr Tichý 19. prosince 2012 1 Outline 1 Lineární programování 2 Optimalita a dualita 3 Geometrie úlohy 4 Simplexová metoda 2 Lineární programování Lineární program (1) min f(x) za
Cvičení 5 - Inverzní matice
Cvičení 5 - Inverzní matice Pojem Inverzní matice Buď A R n n. A je inverzní maticí k A, pokud platí, AA = A A = I n. Matice A, pokud existuje, je jednoznačná. A stačí nám jen jedna rovnost, aby platilo,
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),
2 Vektorové normy. Základy numerické matematiky - NMNM201. Definice 1 (Norma). Norma je funkcionál splňující pro libovolné vektory x a y a pro
Cvičení 1 Základy numerické matematiky - NMNM201 1 Základní pojmy opakování Definice 1 (Norma). Norma je funkcionál splňující pro libovolné vektory x a y a pro libovolný skalár α C následující podmínky:
Kapitola 11: Vektory a matice 1/19
Kapitola 11: Vektory a matice 1/19 2/19 Prostor R n R n = {(x 1,..., x n ) x i R, i = 1,..., n}, n N x = (x 1,..., x n ) R n se nazývá vektor x i je i-tá souřadnice vektoru x rovnost vektorů: x = y i =
Čí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ží
LDF MENDELU. Simona Fišnarová (MENDELU) Základy lineárního programování VMAT, IMT 1 / 25
Základy lineárního programování Vyšší matematika, Inženýrská matematika LDF MENDELU Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem
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
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á
VEKTORY. Obrázek 1: Jediný vektor. Souřadnice vektoru jsou jeho průměty do souřadných os x a y u dvojrozměrného vektoru, AB = B A
VEKTORY Vektorem se rozumí množina všech orientovaných úseček, které mají stejnou velikost, směr a orientaci, což vidíme na obr. 1. Jedna konkrétní orientovaná úsečka se nazývá umístění vektoru na obr.
f n je n-té Fibonacciho číslo, definováno takto: f 0 = 0, f 1 = 1, f n+2 = f n+1 +f n. f k+1
Pokročilá lineární algebra úlohy pro zimní semestr Matice pro výpočet lineárních rekurencí (0 bodů) Na úvod si ve stručnosti popišme, jak počítat Fibonacciho čísla pomocí umocňování matic; ve větších podrobnostech
Výběr báze. u n. a 1 u 1
Výběr báze Mějme vektorový prostor zadán množinou generátorů. To jest V = M, kde M = {u,..., u n }. Pokud je naším úkolem najít nějakou bázi V, nejpřímočařejším postupem je napsat si vektory jako řádky
Soustavy dvou lineárních rovnic o dvou neznámých I
.3.10 Soustavy dvou lineárních rovnic o dvou neznámých I Předpoklady: 308 Pedagogická poznámka: Hodina má trochu netradiční charakter. U každé metody si studenti opíší postup a pak ho zkusí uplatnit na
Lineární algebra : Změna báze
Lineární algebra : Změna báze (13. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 8. dubna 2014, 10:47 1 2 13.1 Matice přechodu Definice 1. Nechť X = (x 1,..., x n ) a Y = (y 1,...,
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
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
1 Soustavy lineárních rovnic
1 Soustavy lineárních rovnic 1.1 Základní pojmy Budeme uvažovat soustavu m lineárních rovnic o n neznámých s koeficienty z tělesa T (potom hovoříme o soustavě m lineárních rovnic o n neznámých nad tělesem
[1] x (y z) = (x y) z... (asociativní zákon), x y = y x... (komutativní zákon).
Grupy, tělesa grupa: množina s jednou rozumnou operací příklady grup, vlastnosti těleso: množina se dvěma rozumnými operacemi příklady těles, vlastnosti, charakteristika tělesa lineární prostor nad tělesem
Matice přechodu. Pozorování 2. Základní úkol: Určete matici přechodu od báze M k bázi N. Každou bázi napíšeme do sloupců matice, např.
Matice přechodu Základní úkol: Určete matici přechodu od báze M k bázi N. Každou bázi napíšeme do sloupců matice, např. u příkladu 7 (v ) dostaneme: Nyní bychom mohli postupovat jako u matice homomorfismu
[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
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
2.7 Binární sčítačka. 2.7.1 Úkol měření:
2.7 Binární sčítačka 2.7.1 Úkol měření: 1. Navrhněte a realizujte 3-bitovou sčítačku. Pro řešení využijte dílčích kroků: pomocí pravdivostní tabulky navrhněte a realizujte polosčítačku pomocí pravdivostní
Afinita je stručný název pro afinní transformaci prostoru, tj.vzájemně jednoznačné afinní zobrazení bodového prostoru A n na sebe.
4 Afinita Afinita je stručný název pro afinní transformaci prostoru, tj.vzájemně jednoznačné afinní zobrazení bodového prostoru A n na sebe. Poznámka. Vzájemně jednoznačným zobrazením rozumíme zobrazení,
Determinanty. Obsah. Aplikovaná matematika I. Pierre Simon de Laplace. Definice determinantu. Laplaceův rozvoj Vlastnosti determinantu.
Determinanty Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Determinanty Definice determinantu Sarrusovo a křížové pravidlo Laplaceův rozvoj Vlastnosti determinantu Výpočet determinantů 2 Inverzní
pro řešení soustav lineárních rovnic. Gaussova eliminační metoda pro řešení soustavy lineárních rovnic sestává ze dvou kroků:
Kapitola 2 Gaussova eliminace Název druhé kapitoly je současně názvem nejčastěji používané metody (algoritmu) pro řešení soustav lineárních rovnic. Gaussova eliminační metoda pro řešení soustavy lineárních