Distribuované systémy poznámky k přednášce (založeno na Tel G., Introduction to distributed algorithms.)
|
|
- Oldřich Dostál
- před 6 lety
- Počet zobrazení:
Transkript
1 Distribuované systémy poznámky k přednášce (založeno na Tel G., Introduction to distributed algorithms.) KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI
2 Distribuovaný systém Neformálně Množina procesů, které nesdílí paměť (a mohou běžet na různých počítačích, které jsou na různém místě) Procesy jsou spojeny komunikačním systémem (například sítí), mohou si posílat zprávy. Posílání zpráv je realizováno pomocí procedur send a receive. O odesílání zpráv budeme předpokládat, že je asynchronní, tj. že odesilatel nečeká na přijetí zprávy, ale pokračuje dál. Operace přijetí je naopak blokující, proces čeká až nějaká zpráva přijde. Odlišnosti v komunikačním systému: topologie, kterým procesům lze posílat zprávu, procesy nemusí znát kompletní topologii, chybovost apod. Pro zavedení pojmů a ověřování vlastností si zavedeme formální definici distribuovaného algoritmu a souvisejících pojmů. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
3 Definition (Přechodový systém) Přechodový systém je trojice S = (C,, I), kde C je množina konfigurací, je binární relace na C, a I C je množina počátečních konfigurací. (γ, δ) značíme jako γ δ. Definition Nechť S = (C,, I) je přechodový systém. Exekuce S je maximální sekvence E = (γ 0, γ 1, γ 2... ), kde γ 0 I a γ i γ i+1 pro všechna i 0. Pokud je sekvence E maximální, pak je buď nekonečná, nebo končí terminální konfigurací, tj. konfigurací γ pro kterou neexistuje δ s γ δ. Definition Konfigurace δ je dosažitelná z konfigurace γ, označeno γ δ, pokud existuje sekvence γ = γ 0, γ 1..., γ k = δ taková, že γ i γ i+1 pro 0 i < k. Konfigurace δ je dosažitelná, pokud je dosažitelná z některé počáteční konfigurace. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
4 Distribuovaný systém kolekce procesů a komunikační systém v procesu probíhají události, pomocí kterých přechází ze stavu do stavu. Mimo vnitřních událostí může proces posílat zprávy (send událost) a přijímat zprávy (receive událost). Předpokládáme asynchronní zasílání zpráv. send událost vytvoří novou zprávu, receive událost konzumuje jednu zprávu. Množinu všech možných zpráv v systému budeme označovat jako M. Typ zprávy kóduje i příjemce. Definition (lokální algoritmus) Lokální algoritmus je čtveřice (Z, I, i, s, r ) kde Z je množina stavů, I Z je množina počátečních stavů, i Z Z odpovídá vnitřním událostem, s Z M Z událostem send, a r Z M Z událostem receive. Binární relaci na Z zavedeme jako c d p.k. (c, d) i nebo existuje m M tak, že (c, m, d) s r. Exekuce lokálního algoritmu je exekuce přechodového systému (Z,, I). (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
5 Definition (Distribuovaný algoritmus) Distribuovaný algoritmus pro procesy P = {p 1, p 2,..., p N } je kolekce lokálních algoritmů, jeden pro každý proces. Definition Přechodový systém S = (C,, I) indukovaný distribuovaným algoritmem {(Z j, I j, i j, s j, r j ) j = 1,..., N} je dán následovně: 1 C = {(c 1, c 2,... c N, M) c j z j pro j = 1... N, M je multimnožina zpráv } 2 = ( N j=1 j ), kde j je množina dvojic ( ) (c 1,..., c j,..., c N, M 1 ), (c 1,..., c j,..., c N, M 2 ) takových, že platí jedna z následujících podmínek: (c j, c j ) i j, pro m M, (c j, m, c j ) s j a M 2 = M 1 {m}, pro m M, (c j, m, c j ) r j a M 1 = M 2 {m}, 3 I = {(c 1,..., c N, M) c j I j pro j = 1... N a M = } (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
6 Proveditelnost události Událost v procesu p je proveditelná z dané konfigurace distribuovaného systému, pokud je proveditelný příslušný přechod v přechodovém systému v předchozí definici. To znamená, že lokální proces musí být v odpovídajícím stavu a pokud je událost receive, odpovídající zpráva musí být v množině odeslaných (a ještě nepřijatých) zpráv. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
7 Kauzální uspořádání událostí Diagram exekuce K exekuci E = γ 0, γ 1... můžeme přiřadit sekvenci událostí E = e 0, e 1,..., které E odpovídají, tj. e i je událost, která vedla k přechodu z γ i na γ i+1. Konfiguraci γ i+1 pak značíme e i (γ i ). (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
8 Theorem (Nezávislost událostí) Pro konfiguraci γ a události e 1 a e 2 různých procesů takové, že jsou obě proveditelné z konfigurace γ platí, že 1 e 1 je proveditelná z konfigurace e 2 (γ), e 2 je proveditelná z konfigurace e 1 (γ), 2 e 1 (e 2 (γ)) = e 2 (e 1 (γ)). Idea důkazu. Protože události mění stavy různých procesů, jediný způsob jakým by e 1 mohla interferovat s provedením e 2 je, že přijme zprávu, kterou chce přijímat i e 2. Ale to není možné, protože typ zprávy kóduje i příjemce. Odtud (a ze symetrického argumentu) plyne bod 1. Pokud jsou obě události receive, přijímají různé zprávy a na jejich pořadí tedy nezáleží. Stejně tak pokud jsou obě události send. Pokud je první událost send a druhá receive, buď pracují s různými zprávami (pak tvrzení platí), nebo pracují se stejnou zprávou. Pak ale tvrzení plyne z toho, že obě události jsou proveditelné z γ, počet zpráv daného typu v M se nezmění, jedna přibude a poté jedna ubude. Tedy platí i bod 2. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
9 Definition (Kauzální uspořádání) Kauzální uspořádání exekuce E je nejmenší binární relace na událostech splňující: 1 Pokud jsou e a f různé události stejného procesu a e nastala dříve než f, pak e f. 2 Pokud s je send událost a r je odpovídající receive událost (tj. událost přijetí fyzicky stejné zprávy), pak s r 3 je tranzitivní. Poznámky Píšeme a b pokud a b nebo a = b. je částečné uspořádání, mohou existovat neporovnatelné prvky. Takovým dvojicím říkáme, že jsou konkurentní a značíme a b. a b implikuje existenci kauzálního řetězu, tj. sekvence a = e 0, e 1,..., e k = b takové, že po sobě jdoucí události odpovídají bodu 1 nebo bodu 2 definice. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
10 Výpočet distribuovaného algoritmu Implikovaná exekuce Viděli jsme, že exekuce distribuovaného algoritmu F = γ 0, γ 1... jednoznačně indukuje sekvenci událostí f = e 0, e 1,... (tak, že e i (γ i ) = γ i+1 ). Uvažujme sekvenci událostí f = e 0, e 1,.... Pokud existuje exekuce F = γ 0, γ 1... tak, že e i (γ i ) = γ i+1, říkáme jí implikovaná exekuce. Nemusí být unikátní, ale pokud f obsahuje alespoň jednu událost z každého procesu, tak uníkátní je. Konzistentní uspořádání Uvažme exekuci E a jí odpovídající sekvenci událostí f = e 0, e 1,.... Uvažme sekvenci událostí f = e 0, e 1,..., která vznikne permutací f. Řekneme, že f je konzistentní s kauzalním uspořádáním exekuce E, pokud e i e j implikuje i j. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
11 Theorem Nechť f = f 0, f 1... je permutace událostí exekuce E, která je s E konzistentní. Potom f implikuje unikátní exekuci F se stejnou počáteční konfigurací jako E. Pokud je E konečná, poslední konfigurace F je stejná, jako poslední konfigurace E. Důkaz. Značení: E = γ 0, γ 1... ; E je odpovídající sekvence událostí. Konstrujeme F = δ 0, δ 1..., začneme od δ 0 = γ 0. Musíme ukázat, že f i je aplikovatelná v konfiguraci δ i, pak stačí vzít δ i+1 = f i (δ i ). Předpokládejme, že to platí pro j < i. Označme f i = (c, x, y, d) (poč. stav, přijatá, odeslaná, konc. stav) a předpokládejme, že nastala v procesu p; dále označme δ i = (c 1,..., c N, M). f i je aplikovatelná, pokud c p = c a x M. Dokážeme, že c p = c. Máme dva případy: f i je první událost v p, pak je ale i první událost v p vzhledem k E (kvůli kauzalnímu uspořádání), c = c p je tedy počáteční stav procesu p. těsně před f i je v p event f i (f i pokrývá f i v uspořádání ), kauzální uspořádání ale implikuje, že f i je těsně před f i i vzhledem k E. Tudíž stav ve kterém je p je v obou případech stejný, a tedy c p = c. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
12 pokračování. Ukážeme, že x M. Pokud f i není receive událost, tvrzení je triviální. Pokud je f i receive událost, musí existovat korespondující send událost f j, a protože f j f i, máme j < i, a tedy x M. Pokud jsou E a F konečné, stavy procesů se v terminálních konfiguracích se rovnají, protože jsou to buď počáteční stavy v daných procesech (pokud neproběhla v procesu žádná událost), nebo je ekvivalence stavů způsobena kauzálním uspořádáním událostí v rámci jednoho procesu (které musí být v obou případech stejné). Množina zpráv je u obou konfigurací stejná, protože f a E obsahují stejné send a receive události. Pokud mají exekuce F a E stejnou množinu událostí a kauzální uspořádání těchto událostí je stejné, opravňuje nás předchozí věta k tomu, abychom prohlásili E a F za ekvivalentní. (Z pohledu jednotlivých procesů, nikoliv z pohledu zvenku.) (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
13 Definition Výpočet distribuovaného algoritmu je ekvivalenční třída exekucí daného algoritmu. Z předchozí diskuze je zřejmé, pro popis výpočtu algoritmu stačí znát jeho události a jejich kauzální uspořádání. Lemma Nechť (X, <) je částečně uspořádaná množina a b a. Potom existuje lineární rozšíření < l uspořádání < takové, že a < l b. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
14 Ekvivalentní exekuce (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
15 Logické hodiny Definition (Logické hodiny) Logické hodiny jsou funkce Θ zobrazující události na prvky uspořádané množiny (X, <) tak, že jestliže a b pak Θ(a) < Θ(b) Jednoduché hodiny Pro exekuci E implikovanou sekvencí událostí e 0, e 1,... můžeme definovat Θ(e i ) = i. Tento čas je pozorovatelný z vnějšku distribuavaného systému, ale nikoliv zevnitř (viz předchozí slajdy.) (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
16 Lamportovy logické hodiny Θ L Události a přiřadíme délku k nejdelší posloupnosti událostí takové, že e 1 e 2 e 3 e k = a. Pak zcela jistě platí, že pokud a b, pak Θ L (a) < Θ L (b). Θ L lze spočítat distribuovaným algoritmem založeným na následujím 1 V každém procesu zavedeme iniciální událost a a řekneme, že Θ L (a) = 0. 2 Pokud je a vnitřní událost nebo send událost a a je předchozí událost ve stejném procesu, pak Θ L (a) = Θ L (a ) Pokud je a receive událost, a je předchozí událost ve stejném procesu a b je send událost odpovídající a, pak Θ L (a) = max(θ L (b), Θ L (a )) + 1. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
17 # lokalni kopie casu var theta_p : i n t = 0 # vnitrni event theta_ p := theta_ p + 1; change_state (); # send event theta_ p := theta_ p + 1 send ( messg, theta_p ); change_state (); # receive event r e c e i v e ( messg, theta ); theta_ p = max ( theta_p, theta ) + 1; change_state (); (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
18 Vektorové hodiny Chceme aby čas zachycoval i paralelismus a paralelní události měly neporovnatelný čas, tj. a b p.k. Θ(a) < Θ(b) Uvažujeme usp. množinu (N N, v ), přičemž v je definováno jako porovnání po souřadnicích, tj. (a 1, a 2,..., a N ) v (b 1, b 2,..., b N ) p.k. a i b i pro všechna i. Definice hodin je Θ v (a) = (a 1, a 2,..., a N ), kde a i je počet událostí e v procesu i, pro které e a. Hodiny lze počítat úpravou algoritmu, který počítá Lamportovy hodiny (viz následující slajd). Důkaz zachycení paralelismu vektorovými hodinami je ponecháno jako cvičení. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
19 # aktualni proces je p var theta : i n t [1: N] = ([N] 0); # vnitrni event theta [p] := theta [p] + 1 change_ state () # send event theta [p] := theta [p] + 1 send ( messg, theta ) change_ state () # receive event r e c e i v e ( messg, theta_received ); theta [p] := theta [p] + 1 f o r i := 1 to N such t h a t i!= p theta [i] = max ( theta [i], theta_received [i]) change_ state () (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
20 Vlnové a průchodové algoritmy událost decide je speciální typ vnitřní události procesu Definition Vlnový algoritmus je distribuovaný algoritmus, který splňuje tři podmínky 1 Každý výpočet je konečný. 2 Každý výpočet obsahuje alespoň jednu decide událost. 3 Pro každý výpočet systému platí, že pro každou decide událost existuje v každém procesu událost, která decide událost kauzálně předchází. Poznámky Jednomu výpočtu vlnového algoritmu říkáme vlna Proces je iniciátor vlnového algoritmu, pokud jej začne provádět z vnitřního popudu (tedy ne jako reakci na zprávu). Ostatní procesy jsou následovníci (jejich první událost je tedy receive). (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
21 Různé algoritmy pro různé systémy Centralizované (1 iniciátor) vs. necentralizované (více iniciátorů) Mohou být určeny pro speciální topologii komunikační sítě. Počáteční znalosti: identita procesu, identita sousedů procesu Počet decide událostí (např. 1 celkem vs. 1 v každém procesu apod.) Složitost: počet odeslaných zpráv, počet odeslaných bitů, čas jednoho výpočtu (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
22 Základní vlastnosti vlnových algoritmů Lemma Pro každou událost e ve výpočtu vlnového algoritmu existuje iniciátor p a událost f v p taková, že f e. Důkaz. f vybereme jako jeden z minimimálních prvků, které jsou v kauzální uspořádání pod e. Takový prvek určitě existuje, protože každá událost má konečnou historii (= sekvenci událostí, které jsou kauzálně před ní). Předpokládejme, že f je v procesu p. Musí to být první událost v p, protože jinak by nebyla minimální. Ze stejného důvodu nemůže být f receive událost, odpovídající send událost by totiž byla kauzálně menší. Proces p tedy musí být iniciátor. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
23 Lemma Uvažme vlnu s jedním iniciátorem p. Pro každý následnický proces r označme jako father(r) ten proces, který poslal zprávu, která v r vlnu zahájila. Potom je graf definovaný T = (P, E T ) s hranami orientovaná kostra směřující k p. E T = {(q, r) q p r = father(q)} Důkaz. Počet uzlů v grafu je o 1 vyšší než počet hran (každý proces mimo p obdrží právě jednu zahajovací zprávu). Pokud je e q první událost v procesu q a (q, r) E T, pak pro e r (první událost v procesu r) určitě platí e r e q. Protože je částečné uspořádání (= je bez cyklů), neobsahuje ani T cykly. Nejmenší prvek je určitě v procesu p, graf je tedy orientovaný k p. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
24 Lemma Uvažme vlnu a decide event d p v procesu p. Potom v každém procesu q různém od p existuje událost e q taková, že e q d p a e q je send událost. Důkaz. Z definice vlnového algoritmu existuje v procesu q událost e q tak, že e q d p. Můžeme předpokládat, že e q je poslední (= kauzálně největší) událost v procesu q, pro kterou to platí. Uvážíme-li pak kauzální řetěz e q = f 0, f 1... f k = d p, vidíme, že f 1 je událost v jiném procesu než je q, a tudíž e q musí být send událost. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
25 Theorem Nechť C je vlna s jedním iniciátorem p taková, že decide událost d p nastane také v procesu p. Potom v algoritmu dojde k výměně alespoň N zpráv (= jsou odeslány a přijaty). Důkaz. Z předchozích lemmat plyne: každá událost v C je kauzálně předejita událostí v p, z kauzálního řetezu (viz předchozí důkaz) vidíme, že jedna taková událost je send. decide událost d p je předejita send událostí ve všech procesech mimo p To celkem dává N vyměněných zpráv. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
26 Theorem Nechť A je vlnový algoritmus pro systém s libovolnou topologií, v němž procesy na začátku neznají identitu svých sousedů. Potom v každém výpočtu A dojde k nejméně E výměnám zpráv, kde E je počet hran v topologii systému. Důkaz. Sporem. Předp. že existuje výpočet C systému A, kde dojde k poslání méně než E zpráv. Potom existuje hrana, po které nejde žádná zpráva, označme ji (p, q). Nyní bychom mohli rozšířit systém o nový proces r, který umístíme tak, že zmizí hrana (p, q) a přibudou hrany (p, r) a (r, q) (procesy na začátku neznají identity svých sousedů). Pokud nyní spustíme C (počáteční stavy všech procesů jsou stejné před a po rozšíření), nastave decide událost, která není kauzálně predejita událostí v procesu r. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
27 Šíření informací s potvrzováním Broadcast s potvrzením Podmnožina procesů má zprávu m. Všechny procesy musí obdržet m. Některé procesy musí být notifikovány o tom, že všechny procesy obdrželi m. To znamená, že existuje speciální událost notify, kterou dané procesy provedou, až poté (při pohledu zvenku), co všechny procesy obdrží m. Událost notify budeme považovat za událost decide. Potom Theorem Každý algoritmus pro broadcast s potvrzením je vlnovým algoritmem. Důkaz. Nechť P je algoritmus pro broadcast s potvrzením. Každý výpočet P je konečný (končí po událostech notify) a obsahuje notify událost. Pokud by existovala notify událost v procesu p, před kterou (kauzálně) nenastala žádná událost v procesu q, potom existuje exekuce P, ve které nastane událost notify předtím, než q dostane jakoukoliv zprávu. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
28 Theorem Každý vlnový algoritmus lze využít jako algoritmus pro broadcast s potvrzením. Důkaz. Uvažme vlnový algoritmus A. K broadcastu jej můžeme využít následovně: iniciátoři jsou právě procesy, které mají zprávu m m posíláme s každou zprávou, kterou A posílá; toto lze provést, protože iniciátoři m znají a první událost následovníků je přijetí zprávy obsahující m decide událost v A interpretujeme jako notify, z definice vlnového algoritmu potom plyne, že tato událost nastane až po přijetí m všemi procesy. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
29 Synchronizace Problém synchronizace v každém procesu q musí nastat událost a q v některých procesech p nastane událost b p události b p nastanou až poté, co nastanou všechny události a q k synchronizaci musí být využito konečné množství zpráv Theorem Každý synchronizační algoritmus je vlnovým algoritmem. Důkaz. Nechť S je synchronizační algoritmus. Každý výpočet S musí být konečný (konečné množství zpráv, nastanou události b p ). Pokud by existovala událost b p, která není kauzálně předejita událostí a q (pro nějaká p a q), pak existuje exekuce S, ve které nastane b p před a q. Události b p jsou pro nás decide událostmi. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
30 Theorem Každý vlnový algoritmus lze využít jako algoritmus pro synchronizaci. Důkaz. Nechť A je vlnový algoritmus. Abychom ho využili pro synchronizaci: Každý proces q musí vykonat a q předtím, než pošle jakoukoliv zprávu Procesy vykonávající b p ji vykonají, až poté, co vykonají decide událost. Z předchozích tvrzení plyne, že každá událost b p je kauzálně předejita všemi událostmi a q. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
31 Výpočet infima Problém výpočtu infima každý proces obsahuje prvek částečně uspořádané množiny (X, ), ve které existuje infimum pro všechny dvojice prvků (tj. (X, ) je průsekový polosvaz). chceme spočítat infimum těchto prvků tak, aby bylo známo ve vybrané množině procesů. Tyto procesy musí umět poznat, že výpočet infima je již u konce, a zpracovat jej (například vypsat). Theorem Každý algoritmus pro problém výpočtu infima je vlnový algoritmus. Důkaz. Za decide událost budeme považovat událost vypsání infima. Uvažme výpočet C algoritmu pro výpočet infima. Předp. (pro účely odvození sporu), že v výpočtu C provede vypsání infima (událost w) proces p, a že v procesu q neexistuje kauzálně menší událost. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
32 pokračování. Uvažme situaci, ve které změníme počáteční konfiguraci výpočtu C tak, že proces q obsahuje jinou počáteční hodnotu (ozn. k), která bude menší než infimum spočtené v C (ozn inf C ). Protože žádná událost v q kauzálně nepředchází vypsání decide události, všechny události v p, které předchází w, lze provést ve stejném pořadí jako v C. To znamená, že proces p vypíše inf C, ale novým infimem je k. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
33 Theorem Každý vlnový algoritmus lze použít pro výpočet infima. Důkaz. Předpokládejme, že každý proces q má proměnnou i q obsahující potřebnou hodnotu j q, a že máme k dispozici vlnový algoritmus A. Infimum je potom J = inf q j q. Procesy, které mají J vypsat jsou ty, které provedou decide událost. Pokud proces p během výpočtu A pošle zprávu, tak s ní pošle i kopii aktuální hodnoty i p, přijme zprávu od q, která obsahuje i q, nastaví i p na inf(i p, i q ). Označme jako v a hodnotu příslušné proměnné i po události a. Očividně platí, že j q v a, pokud a nastala v procesu q. Z předchozího odstavce plyne, že pokud a b pak v a v b (a, b mohou být v různých procesech) a navíc J v a. Protože A je vlnový algoritmus a v každém procesu existuje událost kauzálně menší než decide událost d, musí být j q v d pro každé q, a tedy nutně v d = J. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
34 Příklady operace infimum Theorem Pokud je binární operace na množině X, která je komutativní, asociativní, a idempotentní, pak existuje částečné uspořádání na X takové, že je infimum na X. Příklady konjunkce, disjunkce maximum, minimum gcd, lcm průnik, sjednocení (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
35 Algoritmus pro kruhovou topologii Kruhová topologie: každý proces má jednoho souseda, kterému může posílat zprávy, procesy s orientovanými hranami odpovídajícími směru posílání zpráv tvoří kružnici. (Lze získat například po výpočtu Hamiltonovské kružnice.) Centralizovaný algoritmus s jedním iniciátorem, a jednou decide událostí, princip posílání spec. zprávy tokenu. # ALGORITMUS RING # soused je v promenne next # iniciator send ( token ) to next r e c e i v e ( token ) decide # ostatni procesy r e c e i v e ( token ) send ( token ) to next (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
36 Theorem Algoritmus RING je vlnový algoritmus. Důkaz. Označme iniciátora jako p 0. Algoritmus je konečný, skončí v momentě, kdy p 0 přijme zprávu s tokenem (žádný proces ho nedrží). Z toho, že topologie je kruhová plyne, že každý proces mimo p 0 přijal a odeslal token, který se poté dostal do p 0. Tyto události tedy tvoří kauzální řetěz a decide události kauzálně předchází událost v každém procesu. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
37 Stromový algoritmus Topologie je strom pokrývající všechny procesy (např. kostra v obecné topologii). Iniciátoři: listy = procesy s jedním sousedem, decide ve všech procesech # ALGORITMUS STROM # proces ma S sousedu v mnozine NEIGH var rec [S] := ([S] false ) w h i l e {q: rec [q] == false } > 1 do q := r e c e i v e ( tok ) rec [q] := true send ( tok ) to q_0 with rec [q] == false r e c e i v e ( tok ) from q_0 decide () f o r a l l q i n NEIGH s.t. q!= q_0 do send ( tok ) to q (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
38 Theorem Algoritmus STROM je vlnový algoritmus. Důkaz. Označme jako e p q událost odeslání tokenu procesu q procesem p, a f p q událost přijetí tohoto tokenu. Jako T pq označíme množinu procesů dosažitelných z p pomocí cesty, která neobsahuje hranu (p, q). Potom indukcí přes pořadí receive událostí dokážeme pro každé r T pq existuje událost e procesu r tak, že e f p q. Odtud vyplyne, že před každou decide událostí se stala v každém procesu alespon jedna kauzálně menší událost (viz obrázek na dalším slajdu). Vidíme, že e p q f p q, v procesu p pro všechny r NEIGH takové, že r q, platí f r p e p q, podle indukční hypotézy aplikované na hranu (r, p) pro sousedy r q procesu p dostaneme, že pro každé s T r p existuje událost e (tohoto procesu) a e f r p, a tedy e f p q. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
39 (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
40 pokračování. Pokud bychom z algoritmu vynechali posledni cyklus, zjistíme, že algoritmus terminuje v konfiguraci, kdy dva procesy provedou decide ( dokázat to lze sporem: předp. ze takové procesy neexistují, vybrat si jeden list a jit cestou sousedu, od kterých daný proces neobdržel token, jednou bychom museli narazit na situaci, kdy lze provést událost send ). Ostatní procesy pak čekají na své poslední události receive. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
41 Echo algoritmus # ALGORITMUS ECHO v a r rec := 0, father := undef # iniciator f o r a l l q i n NEIGH do send ( tok ) to q w h i l e rec < NEIGH do r e c e i v e ( tok ); rec := rec + 1 decide () # ostatni procesy r e c e i v e ( tok ) from q i n NEIGH ; father := q; rec := rec + 1 f o r a l l q i n NEIGH s.t. q!= father do send ( tok ) to q w h i l e rec < NEIGH do r e c e i v e ( tok ); rec := rec + 1 send ( tok ) to father (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
42 Centralizovaný algoritmus pro libovolnou topologii. Theorem ECHO je vlnový algoritmus Důkaz. Každý proces posílá pouze konečný počet zpráv, takže se algoritmus dostane po konečném počtu kroků do koncové konfigurace. Označme iniciátora jako p 0. Pro každý výpočet algoritmu můžeme definovat graf G = (P, E) pomocí (p, q) E p.k. father p = q. Je vidět, že G je kostra. Každý uzel mimo p 0 má jednoho rodiče (proměnná father), tedy E = P 1. Spojitost G plyne z povahy algoritmu: proces, který má určeného rodiče, posle zprávu všem ostatním sousedům a tedy, každý proces mimo p 0 má proměnnou father definovánu. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
43 pokračování. G má kořen v p 0. Označme jako T p podstrom G s kořenem p; jako e p událost, kdy p pošle token svému rodiči; jako f p událost, kdy rodič p přijme token od p. Indukcí přes podstromy v G ukážeme, že 1 výpočet obsahuje e p pro každé p p 0 2 pro všechny s T p existuje událost e v procesu s taková, že e f p. Máme dva případy: p je list v G. Potom p dostal token od všech svých sousedů a provedl e p, e p f p plyne z definice. p není list v G. Z indukčního předpokladu pro každého přímého potomka p (tedy na T p ) víme, že určitě nastalo e p a tedy p obdržel token od všech sousedů mimo předka, a akce e p je proveditelná. Z toho, že f p e p a indukčního předpokladu plyne 2. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
44 Fázový algoritmus Decentralizovaný Libovolná topologie Orientovaná topologie: po hrane lze posílat zprávy jenom jedním směrem, IN a OUT množiny sousedu Je potřeba znát poloměr grafu D (maximum z nejkratších vzdáleností mezi uzly v grafu), nebo alespoň její horní odhad D D. každému OUT sousedovi pošleme D zpráv, i-tou správu pošleme až máme přijatou i 1 zprávu od každého IN souseda. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
45 # algoritmus PHASE, # OUT odchozi sousede, # IN prichozi sousede const D var rec [D] := ([ IN ] 0), sent := 0 i f i_ am_ initiator then f o r a l l r i n OUT do send ( token ) to r; sent := sent + 1 w h i l e min ( rec ) < D do q_0 := r e c e i v e ( token ) rec [ q_0 ] := rec [ q_0 ] + 1 i f min ( rec ) > sent and sent < D then f o r a l l r i n OUT do send ( token ) to r; sent := sent + 1 decide () (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
46 Theorem PHASE je vlnový algoritmus kostra. Každý proces pošle svému OUT sousedu max D zpráv, algoritmus tedy končí. Každý proces q pošle alespoň jednu zprávu: existuje cesta od iniciátora ke q. Po této cestě se šíří jeden token, který procesy posílají, když jsou (a) iniciátoři nebo (b) dostali aspoň jeden token od svého IN souseda (v tomto momentě je sent rovno 0). Každý proces provedl decide řekněmě, že ve finální konfiguraci má proces p minimální hodnotu proměnné sent, tedy že sent p sent q pro všechna q P. speciálně pro každého IN souseda q platí, že rec[q] p = sent q a tedy min rec p sent p. To implikuje, že sent p = D, protože jinak by p posílal zprávy (a algoritmus by nebyl u konce). Odtud plyne, že všechny procesy provedli decide. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
47 pokračování. Před decide v procesu p proběhla v každém procesu kauzálně menší událost po 1. vlně posílání zpráv proběhla víme, že proběhla kauzálně menší událost v IN sousedech p. po 2. vlně víme, že proběhla kauzálně menší událost v IN sousedech IN sousedů p (IN vzdálenost 2). po D-té vlně víme, že proběhla kauzálně menší událost ve všech procesech v IN vzdálenosti D. maximální IN vzdálenost je omezena právě D. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
48 Průchodové algoritmy Definition Průchodový algoritmus je vlnový algoritmus, který splňuje následující: 1 Existuje pouze jeden iniciátor, který zahájí algoritmus posláním jedné zprávy. 2 Proces, který přijme zprávu, buď odešle jednu zprávu nebo provede decide. 3 Algoritmus skončí v iniciátorovi, který provede decide. Když se to stane, každý proces poslal zprávu alespoň jednou. Definition Algoritmus je f-průchodový algoritmus (pro třídu topologií) pokud 1 je to průchodový algoritmus 2 v každém výpočtu bylo po zaslání f(x) zpráv navštíveno nejméně min N, x + 1 procesů. (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
49 Algoritmy Vlnový algoritmus RING je x-průchodový algoritmus Algoritmus POLL pro klikovou topologii je x-průchodový algoritmus (detaily na tabuly) Tarryho algoritmus pro obecnou topologii se řídí pravidly Proces nikdy nepošle dvě zprávy stejným kanálem Proces pošle token svému rodiči (= prvnímu procesu, od kterého dostal token) pouze když nemá jinou možnost (viz předchozí pravidlo). (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
50 var used [] := ([N] false ), father := udef ; i f i_ am_ initiator then father := my_ id choose q from NEIGH ; used [q] := true ; send ( tok ) to q # reakce procesu pri prijeti zpravy od procesu q0 i f father == udef then father := q0 i f foreach q i n NEIGH : used [ q] then decide e l s e i f there is q i n NEIGH : q!= father and not used [ q] then choose q from NEIGH \ { father } s.t. not used [q] used [q] := true send ( tok ) to q e l s e used [ father ] := true send ( tok ) to father (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
51 # klasicky algoritmus pro pruchod do sirky var used [] := ([N] false ), father := udef ; i f i_ am_ initiator then father := my_ id choose q from NEIGH ; used [q] := true ; send ( tok ) to q # reakce procesu pri prijeti zpravy od procesu q0 i f father == udef then father := q0 i f foreach q i n NEIGH : used [ q] then decide e l s e i f there is q i n NEIGH : q!= father and not used [ q] then i f father!= q0 and not used [ q0] then q := q0 e l s e choose q from NEIGH \ { father } s.t. not used [q] used [q] := true send ( tok ) to q e l s e used [ father ] := true send ( tok ) to father (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
52 # DFS se znalosti identit sousedu var father := udef i f i_ am_ initiator then father := p; choose q from NEIGH send ({p}) to q # po prijeti zpravy od q0 obsahujici mnozinu L i f father = udef then father := q0 i f there is q i n NEIGH \ L then choose q from NEIGH \ L send (L { my_id }) to q e l s e i f i_am_initiator then decide e l s e send (L { my_id }) to father (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
53 # volba lidra ve stromu v a r ws := false, wr := 0 v a r rec [] := ([ NEIGH ] false ), v := my_id, state := sleep # wakeup faze i f i_ am_ initiator then ws := true f o r a l l q i n NEIGH do send ( wakeup ) to q w h i l e wr < NEIGH do q := r e c e i v e ( wakeup ); wr := wr + 1 i f not ws then ws := true ; f o r a l l q i n NEIGH do send ( wakeup ) to q # vypocet minimalniho id, volba lidra w h i l e {q : not rec [q ]} > 1 do q,r := r e c e i v e ( tok ) rec [q] := true v := min (v, r) send (tok,v) to q_0 s.t. not rec [ q_0 ] r := r e c e i v e ( tok ) from q_0 v := min (v, r) i f v == my_id then state := leader e l s e state := lost f o r a l l q i n NEIGH st. q!= q0 do send (tok, v) to q (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
54 # extintion echo algoritmus v a r caw := udef, rec := 0, father := udef ; lrec := 0, win := udef # iniciator zacne vlnu se svym id i f i_am_initiator then caw := my_id ; f o r a l l q \ i n NEIGH do send (tok, my_id ) to q; w h i l e lrec < NEIGH do (tag, r) := r e c e i v e () from q; # ( prvni ) obdrzena zprava o leaderovi i f tag = ldr i f lrec = 0 f o r a l l q \ i n NEIGH do send (ldr,r) to q; lrec += 1; win := r; e l s e # prejdu na zacatek algoritmu procesu r i f r < caw then caw := r; rec := 0; father := q; f o r a l l s i n NEIGH, s!= q do send (tok,r) to s # pokracuju ve vlnovem algoritmu procesu r i f caw == r then rec := rec + 1; # vlnovy algoritmus procesu r dokoncen pro my_id i f rec == NEIGH then i f caw == my_id then f o r a l l s \ i n NEIGH do send (ldr, my_id ) to s e l s e send (tok, caw ) to father i f win = my_id then state := leader lese state := lost (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
55 # the basic distributed algorithm var state # S { state = active } send (<mes >) # R { A message <mes > has arrived } r e c e i v e (<mes >) state := active # I { state = active } state := passive (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
56 # Announce algorithm v a r sent_stop := false var rec_stop := 0 Procedure Announce : i f not sent_stop then sent_stop := true f o r a l l q i n OUTNEIGH do send ( stop ) to q # a stop message has arrived r e c e i v e ( stop ); rec_stop := rec_stop + 1 Announce () i f rec_stop == INNEIGH then halt (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
57 # Dijkstra - Scholten algoritmus for termination detection state := i f my_id == p_0 then active e l s e pasive sc := 0 father := i f my_id == p_0 then my_id e l s e udef # S { state == active } send ( mes, p); sc := sc + 1 # R { a message ( mes, q) arrived } r e c e i v e (mes, q); state := active i f father = udef then father := q e l s e send ( sig, q) to q # I { state == active } state := passive i f sc == 0 then i f father == my_id then Announce () e l s e send (sig, father ) to father father := udef # A { a signal ( sig, my_id ) arrives } r e c e i v e (sig, my_id ); sc := sc - 1 i f sc == 0 and state == passive then i f father == my_id then Announce () e l s e send (sig, father ) to ( father ) father = udef (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
58 # Safra s algorithm for termination detection # RING_NEIGHBOUR je soused v kruhove subtopologii pro vlnovy algoritmus # iniciatori basic algoritmu maji nastaveno state := active, color := white # ostatni passive a white v a r state v a r color v a r mc := 0 # S { state == active } send ( mes ); mc := mc + 1; # R { a message mes has arrived } r e c e i v e ( mes ); state := active mc := mc - 1 color := black # I { state == active } state := passive # T { state == passive, zpracuje token ( tok, col, sum ) } i f i_am_wave_initiator then i f col == white and color == white and mc + sum == 0 then Announce () e l s e send ( tok, white, 0) to RING_NEIGHBOUR e l s e i f ( color == white ) then send ( tok, col, sum + mc) to RING_NEIGHBOUR e l s e send ( tok, black, sum + mc) to RING_NEIGHBOUR color := white (Univerzita Palackého v Olomouci) PDS-II LS 2016/ / 57
Stromové rozklady. Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom,
Stromové rozklady Zdeněk Dvořák 25. října 2017 Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom, β je funkce přiřazující každému vrcholu T podmnožinu vrcholů v G, pro každé
PŘEDNÁŠKA 7 Kongruence svazů
PŘEDNÁŠKA 7 Kongruence svazů PAVEL RŮŽIČKA Abstrakt. Definujeme svazové kongruence a ukážeme jak pro vhodné binární relace svazu ověřit, že se jedná o svazové kongruence. Popíšeme svaz Con(A) kongruencí
Matematická analýza 1
Matematická analýza 1 ZS 2019-20 Miroslav Zelený 1. Logika, množiny a základní číselné obory 2. Limita posloupnosti 3. Limita a spojitost funkce 4. Elementární funkce 5. Derivace 6. Taylorův polynom Návod
Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,
[161014-1204 ] 11 2.1.35 Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i, kde i = 0, 1,..., takto: p 0 q právě tehdy, když bud p, q F nebo p, q F. Dokud i+1 i konstruujeme p
Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace
RELACE Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace slouží k vyjádření vztahů mezi prvky nějakých množin. Vztahy mohou být různé povahy. Patří sem vztah býti potomkem,
PŘEDNÁŠKA 5 Konjuktivně disjunktivní termy, konečné distributivní svazy
PŘEDNÁŠKA 5 Konjuktivně disjunktivní termy, konečné distributivní svazy PAVEL RŮŽIČKA Abstrakt. Ukážeme, že každý prvek distributivního svazu odpovídá termu v konjuktivně-disjunktivním (resp. disjunktivně-konjunktivním)
Kapitola 1. Úvod. 1.1 Značení. 1.2 Výroky - opakování. N... přirozená čísla (1, 2, 3,...). Q... racionální čísla ( p, kde p Z a q N) R...
Kapitola 1 Úvod 1.1 Značení N... přirozená čísla (1, 2, 3,...). Z... celá čísla ( 3, 2, 1, 0, 1, 2,...). Q... racionální čísla ( p, kde p Z a q N) q R... reálná čísla C... komplexní čísla 1.2 Výroky -
Dijkstrův algoritmus
Dijkstrův algoritmus Hledání nejkratší cesty v nezáporně hranově ohodnoceném grafu Necht je dán orientovaný graf G = (V, H) a funkce, která každé hraně h = (u, v) H přiřadí nezáporné reálné číslo označované
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ň
Distribuované algoritmy - přehled. Přednášky z Distribuovaných systémů Ing. Jiří Ledvina, CSc.
Distribuované algoritmy - přehled Přednášky z Distribuovaných systémů Ing. Jiří Ledvina, CSc. Distribuované vzájemné vyloučení Základní rozdělení Centralizované metody (sequencer) Decentralizované metody
Jan Březina. 7. března 2017
TGH03 - stromy, ukládání grafů Jan Březina Technical University of Liberec 7. března 2017 Kružnice - C n V = {1, 2,..., n} E = {{1, 2}, {2, 3},..., {i, i + 1},..., {n 1, n}, {n, 1}} Cesta - P n V = {1,
Pro každé formule α, β, γ, δ platí: Pro každé formule α, β, γ platí: Poznámka: Platí právě tehdy, když je tautologie.
Zpracoval: hypspave@fel.cvut.cz 5. Výroková logika, formule výrokové logiky a jejich pravdivostní ohodnocení, splnitelné formule, tautologie, kontradikce, sémantický důsledek, tautologicky ekvivalentní
Výpočet globálního stavu
PDV 09 2017/2018 Výpočet globálního stavu Michal Jakob michal.jakob@fel.cvut.cz Centrum umělé inteligence, katedra počítačů, FEL ČVUT Globální Stav Globální stav: množina lokální stavů procesů v DS a stavů
Vlastnosti regulárních jazyků
Vlastnosti regulárních jazyků Podobně jako u dalších tříd jazyků budeme nyní zkoumat následující vlastnosti regulárních jazyků: vlastnosti strukturální, vlastnosti uzávěrové a rozhodnutelné problémy pro
10 Přednáška ze
10 Přednáška ze 17. 12. 2003 Věta: G = (V, E) lze nakreslit jedním uzavřeným tahem G je souvislý a má všechny stupně sudé. Důkaz G je souvislý. Necht v je libovolný vrchol v G. A mějme uzavřený eurelovský
Množiny, relace, zobrazení
Množiny, relace, zobrazení Množiny Množinou rozumíme každý soubor určitých objektů shrnutých v jeden celek. Zmíněné objekty pak nazýváme prvky dané množiny. Pojem množina je tedy synonymem pojmů typu soubor,
Pumping lemma - podstata problému. Automaty a gramatiky(bi-aag) Pumping lemma - problem resolution. Pumping lemma - podstata problému
BI-AAG (2011/2012) J. Holub: 10. Vlastnosti regulárních jazyků p. 2/22 Pumping lemma - podstata problému BI-AAG (2011/2012) J. Holub: 10. Vlastnosti regulárních jazyků p. 4/22 Automaty a gramatiky(bi-aag)
8 Přednáška z
8 Přednáška z 3 12 2003 Problém minimální kostry: Dostaneme souvislý graf G = (V, E), w : E R + Našim úkolem je nalézt strom (V, E ) tak, aby výraz e E w(e) nabýval minimální hodnoty Řešení - Hladový (greedy)
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
H {{u, v} : u,v U u v }
Obyčejný graf Obyčejný graf je dvojice G= U, H, kde U je konečná množina uzlů (vrcholů) a H {{u, v} : u,v U u v } je (konečná) množina hran. O hraně h={u, v} říkáme, že je incidentní s uzly u a v nebo
Modely Herbrandovské interpretace
Modely Herbrandovské interpretace Petr Štěpánek S využitím materialu Krysztofa R. Apta 2006 Logické programování 8 1 Uvedli jsme termové interpretace a termové modely pro logické programy a také nejmenší
2. přednáška 8. října 2007
2. přednáška 8. října 2007 Konvergence v metrických prostorech. Posloupnost bodů (a n ) M v metrickém prostoru (M, d) konverguje (je konvergentní), když v M existuje takový bod a, že lim n d(a n, a) =
Matematika I. Přednášky: Mgr. Radek Výrut, Zkouška:
Přednášky: Mgr. Radek Výrut, Matematika I katedra matematiky, UL-605, rvyrut@kma.zcu.cz tel.: 377 63 2658 Zkouška: Písemná část zkoušky - příklady v rozsahu zápočtových prací Ústní část zkoušky - základní
= je prostý orientovaný graf., formálně c ( u, v) 0. dva speciální uzly: zdrojový uzel s a cílový uzel t. Dále budeme bez
Síť Síť je čtveřice N = ( G, s, t, c) kde G ( V, A) = je prostý orientovaný graf a každé orientované hraně ( u, v) je přiřazeno nezáporné číslo, které se nazývá kapacita hrany ( u, v), formálně c ( u,
TOPOLOGIE A TEORIE KATEGORIÍ (2017/2018) 4. PREDNÁŠKA - SOUČIN PROSTORŮ A TICHONOVOVA VĚTA.
TOPOLOGIE A TEORIE KATEGORIÍ (2017/2018) 4. PREDNÁŠKA - SOUČIN PROSTORŮ A TICHONOVOVA VĚTA. PAVEL RŮŽIČKA 4.1. (Kvazi)kompaktnost a sub-báze. Buď (Q, ) uspořádaná množina. Řetězcem v Q budeme rozumět lineárně
doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je
28 [181105-1236 ] 2.7 Další uzávěrové vlastnosti třídy regulárních jazyků Z předchozích přednášek víme, že třída regulárních jazyků je uzavřena na sjednocení, průnik, doplněk, zřetězení, Kleeneho operaci
Matematická logika. Miroslav Kolařík
Matematická logika přednáška třetí Miroslav Kolařík Zpracováno dle textu R. Bělohlávka: Matematická logika poznámky k přednáškám, 2004. a dle učebního textu R. Bělohlávka a V. Vychodila: Diskrétní matematika
Výroková a predikátová logika - IV
Výroková a predikátová logika - IV Petr Gregor KTIML MFF UK ZS 2018/2019 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - IV ZS 2018/2019 1 / 17 Tablo metoda Tablo Tablo - příklady F (((p q)
Kongruence na množině celých čísel
121 Kapitola 4 Kongruence na množině celých čísel 4.1 Relace kongruence na množině celých čísel Vraťme se k úvahám o dělení se zbytkem. Na základní škole jsme se naučili, že když podělíme číslo 11 číslem
Výroková a predikátová logika - V
Výroková a predikátová logika - V Petr Gregor KTIML MFF UK ZS 2015/2016 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - V ZS 2015/2016 1 / 21 Dokazovací systémy VL Hilbertovský kalkul Hilbertovský
Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2014
Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 204 Zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia
1 Báze a dimenze vektorového prostoru 1
1 Báze a dimenze vektorového prostoru 1 Báze a dimenze vektorového prostoru 1 2 Aritmetické vektorové prostory 7 3 Eukleidovské vektorové prostory 9 Levá vnější operace Definice 5.1 Necht A B. Levou vnější
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
TGH05 - aplikace DFS, průchod do šířky
TGH05 - aplikace DFS, průchod do šířky Jan Březina Technical University of Liberec 31. března 2015 Grafová formulace CPM (critical path method) Orientovaný acyklický graf (DAG) je orientovaný graf neobsahující
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
Limita a spojitost funkce a zobrazení jedné reálné proměnné
Přednáška 4 Limita a spojitost funkce a zobrazení jedné reálné proměnné V několika následujících přednáškách budeme studovat zobrazení jedné reálné proměnné f : X Y, kde X R a Y R k. Protože pro každé
Výroková a predikátová logika - III
Výroková a predikátová logika - III Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - III ZS 2017/2018 1 / 16 2-SAT 2-SAT Výrok je v k-cnf, je-li v CNF a
Těleso racionálních funkcí
Těleso racionálních funkcí Poznámka. V minulém semestru jsme libovolnému oboru integrity sestrojili podílové těleso. Pro libovolné těleso R je okruh polynomů R[x] oborem integrity, máme tedy podílové těleso
Čas a kauzalita v DS
PDV 09 2017/2018 Čas a kauzalita v DS Michal Jakob michal.jakob@fel.cvut.cz Centrum umělé inteligence, katedra počítačů, FEL ČVUT Příklad: Letecký rezervační systém 1. Server A obdrží klientský požadavek
Distribuované systémy a výpočty
Distribuované systémy a výpočty 9 Jan Janeček Czech Technical University in Prague c Jan Janeček, 2011 MI-DSV, SS 2011/12 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Jan Janeček
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
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
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
Vrcholová barevnost grafu
Vrcholová barevnost grafu Definice: Necht G = (V, E) je obyčejný graf a k N. Zobrazení φ : V {1, 2,..., k} nazýváme k-vrcholovým obarvením grafu G. Pokud φ(u) φ(v) pro každou hranu {u, v} E, nazveme k-vrcholové
Lineární algebra Kapitola 1 - Základní matematické pojmy
Lineární algebra Kapitola 1 - Základní matematické pojmy 1.1 Relace a funkce V celém textu budeme používat následující označení pro číselné množiny: N množina všech přirozených čísel bez nuly, N={1, 2,
Oproti definici ekvivalence jsme tedy pouze zaměnili symetričnost za antisymetričnost.
Kapitola 3 Uspořádání a svazy Pojem uspořádání, který je tématem této kapitoly, představuje (vedle zobrazení a ekvivalence) další zajímavý a důležitý speciální případ pojmu relace. 3.1 Uspořádání Definice
TGH05 - aplikace DFS, průchod do šířky
TGH05 - aplikace DFS, průchod do šířky Jan Březina Technical University of Liberec 28. března 2017 Grafová formulace CPM (critical path method) Orientovaný acyklický graf (DAG) je orientovaný graf neobsahující
Základy logiky a teorie množin
Pracovní text k přednášce Logika a teorie množin (I/2007) 1 1 Struktura přednášky Matematická logika 2 Výroková logika Základy logiky a teorie množin Petr Pajas pajas@matfyz.cz Predikátová logika 1. řádu
zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.
Kapitola Ohodnocené grafy V praktických aplikacích teorie grafů zpravidla graf slouží jako nástroj k popisu nějaké struktury. Jednotlivé prvky této struktury mají často přiřazeny nějaké hodnoty (může jít
1 Kardinální čísla. množin. Tvrzení: Necht X Cn. Pak: 1. X Cn a je to nejmenší prvek třídy X v uspořádání (Cn, ),
Pracovní text k přednášce Logika a teorie množin 4.1.2007 1 1 Kardinální čísla 2 Ukázali jsme, že ordinální čísla reprezentují typy dobrých uspořádání Základy teorie množin Z minula: 1. Věta o ordinálních
Definice 1 eulerovský Definice 2 poloeulerovský
Dále budeme předpokládat, že každý graf je obyčejný a má aspoň tři uzly. Definice 1 Graf G se nazývá eulerovský, existuje-li v něm uzavřený tah, který obsahuje každou hranu v G. Definice 2 Graf G se nazývá
Lineární algebra : Báze a dimenze
Lineární algebra : Báze a dimenze (5. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 9. dubna 2014, 13:33 1 2 5.1 Báze lineárního prostoru Definice 1. O množině vektorů M z LP V řekneme,
Základy matematiky pro FEK
Základy matematiky pro FEK 4. přednáška Blanka Šedivá KMA zimní semestr 2016/2017 Blanka Šedivá (KMA) Základy matematiky pro FEK zimní semestr 2016/2017 1 / 27 Množiny Zavedení pojmu množina je velice
Substituce. Petr Štěpánek. S využitím materialu Krysztofa R. Apta. Logické programování 2 1
Substituce Petr Štěpánek S využitím materialu Krysztofa R. Apta 2006 Logické programování 2 1 Algebra termů Předpokládáme, že je dán jazyk termů. L, definovali jsme množinu jeho Zavedeme některé užitečné
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)
Matematická analýza pro informatiky I.
Matematická analýza pro informatiky I. 1. přednáška Jan Tomeček tomecek@inf.upol.cz http://aix-slx.upol.cz/ tomecek/index Univerzita Palackého v Olomouci 14. února 2011 Jan Tomeček, tomecek@inf.upol.cz
Důkaz Heineho Borelovy věty. Bez újmy na obecnosti vezmeme celý prostor A = M (proč? úloha 1). Implikace. Nechť je (M, d) kompaktní a nechť.
Přednáška 3, 19. října 2015 Důkaz Heineho Borelovy věty. Bez újmy na obecnosti vezmeme celý prostor A = M (proč? úloha 1). Implikace. Nechť je (M, d) kompaktní a nechť X i = M i I je jeho pokrytí otevřenými
Výroková a predikátová logika - II
Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2017/2018 1 / 17 Předběžnosti Základní pojmy n-ární relace a funkce
Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů
BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 2/29 Hodnocení předmětu BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 4/29 Automaty a gramatiky(bi-aag) 1. Základní pojmy Jan Holub Katedra teoretické
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)
Základy teoretické informatiky Formální jazyky a automaty
Základy teoretické informatiky Formální jazyky a automaty Petr Osička KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI Outline Literatura Obsah J.E. Hopcroft, R. Motwani, J.D. Ullman Introduction to
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
3. Podmíněná pravděpodobnost a Bayesův vzorec
3. Podmíněná pravděpodobnost a Bayesův vzorec Poznámka: V některých úlohách řešíme situaci, kdy zkoumáme pravděpodobnost náhodného jevu za dalších omezujících podmínek. Nejčastěji má omezující podmínka
Každé formuli výrokového počtu přiřadíme hodnotu 0, půjde-li o formuli nepravdivou, a hodnotu 1, půjde-li. α neplatí. β je nutná podmínka pro α
1. JAZYK ATEATIKY 1.1 nožiny nožina je souhrn objektů určitých vlastností, které chápeme jako celek. ZNAČENÍ. x A x A θ A = { { a, b a A = B A B 0, 1 2 a, a,..., a n x patří do množiny A x nepatří do množiny
p 2 q , tj. 2q 2 = p 2. Tedy p 2 je sudé číslo, což ale znamená, že
KAPITOLA 1: Reálná čísla [MA1-18:P1.1] 1.1. Číselné množiny Přirozená čísla... N = {1,, 3,...} nula... 0, N 0 = {0, 1,, 3,...} = N {0} Celá čísla... Z = {0, 1, 1,,, 3,...} Racionální čísla... { p } Q =
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í
Doporučené příklady k Teorii množin, LS 2018/2019
Doporučené příklady k Teorii množin, LS 2018/2019 1. přednáška, 21. 2. 2019 1. Napište množina x je prázdná (přesněji množina x nemá žádné prvky ) formulí základního jazyka teorie množin. 2. Dokažte ((x
označme j = (0, 1) a nazvěme tuto dvojici imaginární jednotkou. Potom libovolnou (x, y) = (x, 0) + (0, y) = (x, 0) + (0, 1)(y, 0) = x + jy,
Komplexní čísla Množinu všech uspořádaných dvojic (x, y) reálných čísel x, y nazýváme množinou komplexních čísel C, jestliže pro každé dvě takové dvojice (x, y ), (x 2, y 2 ) je definována rovnost, sčítání
4 Pojem grafu, ve zkratce
Petr Hliněný, FI MU Brno, 2014 1 / 24 FI: IB000: Pojem grafu 4 Pojem grafu, ve zkratce Třebaže grafy jsou jen jednou z mnoha struktur v matematice a vlastně pouze speciálním případem binárních relací,
Limita a spojitost funkce
Přednáška 5 Limita a spojitost funkce V této přednášce se konečně dostaneme k diferenciálnímu počtu funkce jedné reálné proměnné. Diferenciální počet se v podstatě zabývá lokálním chováním funkce v daném
Třídy složitosti P a NP, NP-úplnost
Třídy složitosti P a NP, NP-úplnost Cíle přednášky: 1. Definovat, za jakých okolností můžeme problém považovat za efektivně algoritmicky řešitelný. 2. Charakterizovat určitou skupinu úloh, pro které není
Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2015
Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 05 Zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia
Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2016
Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2016 Zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia
Texty k přednáškám z MMAN3: 4. Funkce a zobrazení v euklidovských prostorech
Texty k přednáškám z MMAN3: 4. Funkce a zobrazení v euklidovských prostorech 1. července 2008 1 Funkce v R n Definice 1 Necht n N a D R n. Reálnou funkcí v R n (reálnou funkcí n proměnných) rozumíme zobrazení
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)
Kapitola 11. Vzdálenost v grafech. 11.1 Matice sousednosti a počty sledů
Kapitola 11 Vzdálenost v grafech V každém grafu lze přirozeným způsobem definovat vzdálenost libovolné dvojice vrcholů. Hlavním výsledkem této kapitoly je překvapivé tvrzení, podle kterého lze vzdálenosti
Úlohy k procvičování textu o svazech
Úlohy k procvičování textu o svazech Číslo za pomlčkou v označení úlohy je číslo kapitoly textu, která je úlohou procvičovaná. Každá úloha je vyřešena o několik stránek později. Kontrolní otázky - zadání
RELACE, OPERACE. Relace
RELACE, OPERACE Relace Užití: 1. K popisu (evidenci) nějaké množiny objektů či jevů, které lze charakterizovat pomocí jejich vlastnostmi. Entita je popsána pomocí atributů. Ty se vybírají z domén. Různé
Množinu všech slov nad abecedou Σ značíme Σ * Množinu všech neprázdných slov Σ + Jazyk nad abecedou Σ je libovolná množina slov nad Σ
Abecedou se rozumí libovolná konečná množina Σ. Prvky abecedy nazýváme znaky (symboly) Slovo (řetězec) v nad abecedou Σ je libovolná konečná posloupnost znaků této abecedy. Prázdné posloupnosti znaků odpovídá
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 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
1.3. Číselné množiny. Cíle. Průvodce studiem. Výklad
1.3. Cíle Cílem kapitoly je seznámení čtenáře s axiomy číselných oborů a jejich podmnožin (intervalů) a zavedení nových pojmů, které nejsou náplní středoškolských osnov. Průvodce studiem Vývoj matematiky
Minimalizace KA - Úvod
Minimalizace KA - Úvod Tyto dva KA A,A2 jsou jazykově ekvivalentní, tzn. že rozpoznávají tentýž jazyk. L(A) = L(A2) Názorně lze vidět, že automat A2 má menší počet stavů než A, tudíž našim cílem bude ukázat
Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2017
Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 207 Zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia
Úvod do informatiky. Miroslav Kolařík
Úvod do informatiky přednáška pátá Miroslav Kolařík Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008 a dle učebního textu R. Bělohlávka a V. Vychodila: Diskrétní
SLD-derivace. Petr Štěpánek. S využitím materiálu Krysztofa R. Apta
SLD-derivace Petr Štěpánek S využitím materiálu Krysztofa R. Apta 2006 Logické programování 5 1 Při systematickém studiu SLD-derivací je užitečné využít rezultanty a přiřadit je k SLD-derivačním krokům
Přijímací zkouška - matematika
Přijímací zkouška - matematika Jméno a příjmení pište do okénka Číslo přihlášky Číslo zadání 1 Grafy 1 Pro který z následujících problémů není znám žádný algoritmus s polynomiální časovou složitostí? Problém,
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
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
4 Stromy a les. Definice a základní vlastnosti stromů. Kostry grafů a jejich počet.
4 Stromy a les Jedním ze základních, a patrně nejjednodušším, typem grafů jsou takzvané stromy. Jedná se o souvislé grafy bez kružnic. Přes svou (zdánlivou) jednoduchost mají stromy bohatou strukturu a
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
Vzdálenost uzlů v neorientovaném grafu
Vzdálenosti a grafy Vzdálenost uzlů v neorientovaném grafu Je dán neorientovaný neohodnocený graf G = (V,E,I) vzdálenost uzlů u a v v neorientovaném souvislém grafu G je délka nejkratší cesty spojující
Lineární algebra : Metrická geometrie
Lineární algebra : Metrická geometrie (16. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 6. května 2014, 10:42 1 2 Úvod Zatím jsme se lineární geometrii věnovali v kapitole o lineárních
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),
Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2016
Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 206 Zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia
PQ-stromy a rozpoznávání intervalových grafů v lineárním čase
-stromy a rozpoznávání intervalových grafů v lineárním čase ermutace s předepsanými intervaly Označme [n] množinu {1, 2,..., n}. Mějme permutaci π = π 1, π 2,..., π n množiny [n]. Řekneme, že množina S
Základy teorie množin
1 Základy teorie množin Z minula: 1. zavedení pojmů relace, zobrazení (funkce); prostá zobrazení, zobrazení na, bijekce 2. rozklady, relace ekvivalence, kongruence, faktorizace 3. uspořádání a některé
Vztah jazyků Chomskeho hierarchie a jazyků TS
Vztah jazyků Chomskeho hierarchie a jazyků TS Jan Konečný; (přednáší Lukáš Havrlant) 15. října 2013 Jan Konečný; (přednáší Lukáš Havrlant) Chomskeho hierarchie a jazyky TS 15. října 2013 1 / 23 Rychlé
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
i=1 Přímka a úsečka. Body, které leží na přímce procházející body a a b můžeme zapsat pomocí parametrické rovnice
I. Funkce dvou a více reálných proměnných 1. Úvod Značení: V textu budeme používat označení: N pro množinu všech přirozených čísel; R pro množinu všech reálných čísel; R n pro množinu všech uspořádaných