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



Podobné dokumenty
Dijkstrův algoritmus

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

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

Grafové algoritmy. Programovací techniky

Grafové algoritmy. Programovací techniky

Stromy, haldy, prioritní fronty

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA

Usuzování za neurčitosti

Paralelní grafové algoritmy

Dynamické datové struktury III.

TGH05 - aplikace DFS, průchod do šířky

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

Složitost 1.1 Opera ní a pam ová složitost 1.2 Opera ní složitost v pr rném, nejhorším a nejlepším p ípad 1.3 Asymptotická složitost

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

TGH05 - aplikace DFS, průchod do šířky

Řešení: PŘENESVĚŽ (N, A, B, C) = přenes N disků z A na B pomocí C

Řízení projektů. Konstrukce síťového grafu pro řízení projektů Metoda CPM Metoda PERT

Internet a zdroje. (ARP, routing) Mgr. Petr Jakubec. Katedra fyzikální chemie Univerzita Palackého v Olomouci Tř. 17. listopadu

Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A

Dynamické programování

Základy algoritmizace. Pattern matching

Směrování- OSPF. Směrování podle stavu linek (LSA) Spolehlivé záplavové doručování

Použití dalších heuristik

Algoritmy na ohodnoceném grafu

TGH06 - Hledání nejkratší cesty

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

Stromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy

= 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

bfs, dfs, fronta, zásobník, prioritní fronta, halda

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

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

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

Matice sousednosti NG

Pravděpodobnostní algoritmy

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

bfs, dfs, fronta, zásobník, prioritní fronta, halda

Komprese dat. Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI. přednášky

63. ročník Matematické olympiády 2013/2014

Vzdálenost uzlů v neorientovaném grafu

Předmět: Algoritmizace praktické aplikace

13. cvičení z PSI ledna 2017

5. Směrování v počítačových sítích a směrovací protokoly

Distribuované algoritmy - přehled. Přednášky z Distribuovaných systémů Ing. Jiří Ledvina, CSc.

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

Dynamické programování

Vzdálenost jednoznačnosti a absolutně

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

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

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

5. Náhodná veličina. 2. Házíme hrací kostkou dokud nepadne šestka. Náhodná veličina nabývá hodnot z posloupnosti {1, 2, 3,...}.

Úloha - rozpoznávání číslic

Pravděpodobnost a statistika

Algoritmizace prostorových úloh

Teoretická informatika Tomáš Foltýnek Barvení grafů Platónská tělesa

Hledáme efektivní řešení úloh na grafu

Přednáška 3: Limita a spojitost

Vrcholová barevnost grafu

6. Tahy / Kostry / Nejkratší cesty

Metody analýzy dat I (Data Analysis I) Rozsáhlé struktury a vlastnosti sítí (Large-scale Structures and Properties of Networks) - pokračování

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Modely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT

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

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

11. Tabu prohledávání

1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) b)

NEJKRATŠÍ CESTY I. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

PODOBÁ SE JAZYKU C S NĚKTERÝMI OMEZENÍMI GLOBÁLNÍ PROMĚNNÉ. NSWI162: Sémantika programů 2

Úvod do teorie informace

Markovské metody pro modelování pravděpodobnosti

GRAFY A GRAFOVÉ ALGORITMY

Výpočet globálního stavu

State Space Search Step Run Editace úloh Task1 Task2 Init Clear Node Goal Add Shift Remove Add Node Goal Node Shift Remove, Add Node

jednoduchá heuristika asymetrické okolí stavový prostor, kde nelze zabloudit připustit zhoršují cí tahy Pokročilé heuristiky

Datové struktury 2: Rozptylovací tabulky

Matematika I 2a Konečná pravděpodobnost

TGH09 - Barvení grafů

Algoritmizace složitost rekurzivních algoritmů. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

H {{u, v} : u,v U u v }

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

1 Topologie roviny a prostoru

ADT prioritní fronta. Haldy. Další operace nad haldou. Binární halda. Binomické stromy. Časová složitost jednotlivých operací.

Hranová konzistence. Arc consistency AC. Nejprve se zabýváme binárními CSP. podmínka odpovídá hraně v grafu podmínek

Odhad parametrů N(µ, σ 2 )

14. cvičení z PSI. 9. ledna Pro každý stav platí, že všechny hrany z něj vycházející mají stejnou pravděpodobnost.

Asociativní sítě (paměti) Asociace známého vstupního vzoru s daným výstupním vzorem. Typická funkce 1 / 44

Rekurzivní algoritmy

Náhodný vektor a jeho charakteristiky

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 2014

Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz

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

Výroková a predikátová logika - III

4EK311 Operační výzkum. 5. Teorie grafů

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

Třída PTIME a třída NPTIME. NP-úplnost.

Pravděpodobnost a statistika (BI-PST) Cvičení č. 4

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008

Úvod do informatiky. Miroslav Kolařík

Zdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2.

Elegantní algoritmus pro konstrukci sufixových polí

TGH06 - Hledání nejkratší cesty

Transkript:

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) Corectnost - správný paket musí být doručen správnému adresátovi b) Složitost - algoritmus musí použí co nejmíň směrovacích tabulek, zpráv, času atd. c) Efektivnost - všechny pakety by měli být posílané po co nejkratších cestách. Pokud je toto splněno, algoritmus se nazývá optimální. d) Robustnost - V případě topologické změny sítě, by měl algoritmus tyto změny zaznamenat a změnit směrování. e) Adoptivnost - Můžeme zkoumat zatíženost cesty(hrany) a požadujeme rovnoměrné zatížení cest(hran). f) Spravedlnost - Úměrné cesty mají zajištěn úměrný čas přenosu. Nemůžeme požadovat, aby po kratší cestě putoval paket déle než po delší cestě. Směrování pomocí směrovacích tabulek Předpokládáme, že máme vrchol u a pole table u, které obsahuje určité informace. Základní algoritmus: receive m, d ; if d = u then OK else s m, d to table u [d];

2 Sestrojení směrovací tabulky: index 1 2 3 4 5 6 7 1-2 3 3* 5 3 5 2 1-3 3 1 3 1 3 1 2-4 1* 4 1* 4 3 3 3-5 6 5* 5 1 1 4* 4-4* 7 6 4* 4 4 4 4* - 7 7 5 5 5* 5* 5 6 - Naše směrovací tabulka má vlastnost nejkratších cest. Pokud požadujeme jinou vlastnost dostaneme i jinou tabulku. - existuje více možností Kolik bitů je potřeba na uchování celé směrovací tabulky? Θ(n 2 log n) pro n vrcholů Celkový počet údajů v tabulce: Θ(n 2 ) Věta : Optimální směrovací schéma pro daný graf vyžaduje Θ(n 2 log n) bitů, které jsou uchovávané ve směrovací tabulce. Náhodný graf - definuje se podle teorie pravděpodobnosti nebo pomocí Kolmogorovské složitosti. Mějme n prázdných vrcholů. Postupně přidáváme hrany. V nějakém okamžiku tento proces zastavíme. Tedy po q - krocích budeme mít q hran. Počet všech vrcholů, které se takto dají vygenerovat je 2 (n 2). Pokud náhodně vybereme z této množiny některé grafy, tyto grafy mají určité vlastnosti. Definice : Říkáme, že téměř všechny grafy mají vlastnost Q, pokud platí, že

3 lim n P [G má vlastnost Q] = 1. G je graf, který je prvkem nějakého pravděpodobnostního prostoru. Příklady vlastností: 1. Témeř všechny grafy jsou souvislé 2. Téměř všechny grafy mají průměr 2 3. Téměř všechny grafy nejsou planární Graf je reprezentován binárním řetězcem, tedy nad abecedou {0,1} délky ( ) n 2. Každý graf je reprezentován binárním řetězcem. Pokud náhodně vygenerujeme náhodný binární řetězec dostaneme i náhodný graf. Kolmogorovský náhodný graf je reprezentován nestlačitelným(málo stlačitelným) řetězcem. Málo stlačitelný řetězec je náhodně generovaný řetězec, tedy řetězec bez často se opakujících stejných podřetězců. Věta : (Horní odhad pro rozsah směrovacích tabulek v Kolmogorovských náhodných grafech) Směrovač pro optimální směrovací schéma na Kolmogorovských O( log n ) - náhodných grafech řádu n, potřebuje uchovávat nanejvýš 6n bitů směrovací informace. maximálně o tolik je řetězec stlačitelný. Celkově směrovací tabulka vyžaduje 6n 2 bitů. Věta : (Dolní odhad) Každý směrovač pro optimální směrovací schéma na Kolmogorovských o(n) - náhodných grafech potřebuje uchovávat alespoň n/2 - o(n) bitů směrovací informace. Celkové pamět ové nároky vyžadují n 2 /2 - o(n 2 ) bitů informace.

4 NETCHANGE ALGORITMUS Popis algoritmu Tajibnapis Netchange algoritmus je dán jako algoritmus 4.8 a 4.9. Postupy algoritmu budou nejdříve podloženy neformálním popisem operací algoritmu, a následně bude formálně dokázána správnost algoritmu. Výběr souseda, kterému budou doručeny balíky pro určení v, je založen na odhadech vzdálenosti každého uzlu k v. Preferovaný soused je vždy sousedem s nejnižším odhadem této vzdálenosti. var Neigh u : set of nodes ; (* sousedé u *) D u : array of 0..N ; (* D u [v] odhaduje d(u, v) *) Nb u : array of nodes ; (* Nb u [v] je soused preferovaný před v *) ndis u : array of 0..N ; (* ndis u [w, v] odhaduje d(w, v) *) Inicializace: begin forall w Neigh u, v V do ndis u [w, v] := N ; forall v V do begin D u [v] := N ; Nb u [v] := udef ; D u [u] := 0 ; Nb u [u] := local ; forall w Neigh u do s mydist, u, 0 to w Postup náhrady(v): begin if v = u then begin D u [v] := 0 ; Nb u [v] := local else begin (* Odhadnout vzdálenost k v *) d := 1 + min{ndis u [w, v] : w Neigh u } ; if d < N then begin D u [v] := d ; Nb u [v] := w with 1 + ndis u [w, v] = d else begin D u [v] := N ; Nb u [v] := udef ; if D u [v] se změní then forall x Neigh u do s mydist, v, D u [v] to x Algoritmus 4.8 NETCHANGE ALGORITMUS (Část první, pro uzel u). Uzel provádí odhad D u [v] of d(u, v) a odhaduje ndis u [w, v] of d(w, v) pro každého souseda w of u. Odhad D u [v] je vypočítán z odhadů ndis u [w, v], a odhady

5 ndis u [w, v] obdržíme přes komunikaci se sousedy. Výpočet odhadů D u [v] pokračuje následovně. Jestliže u = v potom d(u, v) = 0 takže D u [v] je v tomto případě nastaven na 0. Jestliže u v, nejkratší cesta z u do v (pokud taková cesta existuje ) se skládá z průchodu od u k sousedovi, sloučenému s nejkratší cestou od tohoto souseda k v a tedy d(u, v) = 1 + min w Neigh u d(w, v). Z předcházející rovnice, uzel u v odhaduje d(u, v) aplikováním této definice na odhadované hodnoty d(w, v), nalezených v tabulkách jako ndis u [w, v]. Když existuje N uzlů, minimálně se měnící cesta má délku nejvýše N 1. Uzel může tušit, že neexistuje žádná cesta, pokud je vypočítaná vzdálenost N a víc; hodnota N je užita v tabulce. Algoritmus vyžaduje uzel, aby měl odhad vzdálenosti svých sousedů k v. Ty jsou obdrřeny od těchto uzlů, protože je přenášejí ve zprávách typu mydist,... Pokud uzel u počítá hodnotu d jako odhad své vzdálenosti k v(d u [v] = d), je poslána tato informace všem sousedům ve zprávě mydist, v, d. Po obdržení zprávy mydist, v, d od souseda w, u přiděluje ndis u [w, v] hodnotu d.jako výsledek změny v ndis u [w, v] se odhad d(u, v) může změnit a proto je odhad nahrazen pokaždé, když se tabulka změní. Pokud se odhad opravdu změní k d je samozřejmě přenesen k sousedům, kteří užívají zprávy mydist, v, d. Zpracování zprávy mydist, v, d od souseda w: { mydist, v, d stojí v čele Q wv } begin receive mydist, v, d from w ndis u [w, v] := d ; Recompute(v) Při výpadku průchodu uw: begin receive fail, w ; Neigh u := Neigh u \{w} ; forall v V do Recompute (v) Při oparavě průchodu uw: begin receive repair, w ; Neigh u := Neigh u {w} ; forall v V do begin ndis u [w, v] := N ; s mydist, v, D u [v] to w Algoritmus 4.9 NETCHANGE ALGORITMUS (Část 2, pro uzel u).

6 Algoritmus reaguje na na výpadky a opravy průchodů tím, že pozmění místní tabulky a pošle zprávu mydist,.. pokud se odhady vzdálenosti změní. Předpokládáme, že oznámení o tom, že uzly se dostávají nad průchodem nahoru a dolů, je ve formě zpráv fail,. a repair,.. Průchod mezi uzly u 1 a u 2 je modelován dvěmi řadami Q u1,u 2 pro zprávy od u 1 k u 2 a Q u2,u 1 pro zprávy od u 2 k u 1. Když průchod vypadne, jsou tyto řady přestěhovány z konfigurace a uzly na obou koncích průchodu obdrží zprávu fail,.. Jestliže průchod mezi u 1 a u 2 vypadne, u 1 obdrží zprávu fail, u 2 a u 2 získá zprávu fail, u 1. Když je průchod opravován (nebo je k síti přidán nový) jsou ke konfiguraci přidány dvě prázdné řady a dva uzly spojené průchodem obdrží zprávu fail,.. Jestliže průchod mezi u 1 a u 2 nastane, u 1 obdrží repair, u 2 a u 2 obdrží repair, u 1. Reakce algoritmu na výpadky a opravy je následuící. Když vypadne průchod mezi u a w, w se přemístí z Neigh u a naopak. Odhad vzdálenosti pro každé určení je nahrazen, a samozřejmě, poslán všem zbývajícím sousedům, pokud byl změněn. Je to tento případ, pokud předtím vedla nejlepší cesta přes vypadený průchod a neexistuje žádný jiný soused w s ndis u [w, v] = ndis u [w, v]. Když je průchod opravován (nebo je přidán nový), w se přidá k Neigh u, ale u nemá dosud žádný odhad vzdálenosti d(w, v) (a naopak). Nový soused w je ihned informován o D u [v] pro všechna určení v (posláním zprávy mydist, v, D u [v] ). Dokud u neobdrží podobné zprávy z w, u používá N jako odhad pro d(w, v), tzn., nastavuje ndis u [w, v] na N. Věta : Pokud po končném kroku topologických změn, topologie sítě zůstává konstantní(neměnná) algorimus NETCHANGE dosáhne stabilní konfiguraci po konečném počtu kroků.

7 Problém dohody na nespolehlivých sítích V sítích budeme uvažovat 2 typy chyb: a) CRASH b) BYZANTINE FAILURE (Byzantské chyby) ad a) Budeme uvažovat, že chybný je procesor. Zastaví svou aktivitu a bude se chovat jako nepřítomný v dané síti. ad b) Bude se chovat libovolně. Může se jevit jako protihráč, nepřítel. Je daný jeden generál a několik důstojníků. Všichni si můžou posílat zprávy mezi sebou. Komunikační sítí je kompletní graf. Generál nebo důstojníci můžou být loajální nebo byzantinští (crash nebo posílají zprávy, aby škodili loajálním důstojníkům). Cílem je, aby se v konečném čase loajální shodli na stejné hodnotě. Používají se dva algoritmy podle typu zpráv: a) podepsané zprávy b) anonymní zprávy Mějme kompletní graf K n, p 0 necht je generál p 1,.., p n 1 - jsou důstojníci. Věta : Existuje algoritmus odolný vůči t byzantským chybám, který používá podepsané zprávy a řeší úlohu o shodě. Přičemž musí platit, že t n 2. ALGORITMUS SM(t ) Pozn. V i = i množina zpráv, které si pamatuje i -tý procesor v {0,1} zpráva m : p zpráva m z podpisem p 1. Generál v 0 pošle zprávu v : 0 všen důstojníkům. 2. Pro i if (p i přijme zprávu v : 0) then v i = {v}; s v : 0 : i to ostatním důstojníkům if (p i přijme zprávu v : 0 : j 1..j k ) then v i = {v} V i ; if (k < t) then s v : 0 : j 1 :.. : j k : i to ostatním důstojníkům různým od j 1..j k 3. if (V i obsahuje jedinou hodnotu) then pak tuto hodnotu vrat na výstup else vrat NIL Algoritmus je synchronní a k označuje počet kol. Věta : Algoritmus končí výpočet po t + 1 kolech a používá (n 1)(n 2)..(n t 1) zpráv.