Paralelní grafové algoritmy

Podobné dokumenty
Grafové algoritmy. Programovací techniky

Grafové algoritmy. Programovací techniky

Jarníkův algoritmus. Obsah. Popis

TGH06 - Hledání nejkratší cesty

Použití dalších heuristik

TGH06 - Hledání nejkratší cesty

TGH08 - Optimální kostry

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

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

Vzdálenost uzlů v neorientovaném grafu

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

Algoritmy na ohodnoceném grafu

Úvod do teorie grafů

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

Teorie grafů. Kostra grafu. Obsah. Radim Farana Podklady pro výuku pro akademický rok 2013/2014

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

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

Dynamické programování

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

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

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

Kostry. 9. týden. Grafy. Marie Demlová (úpravy Matěj Dostál) 16. dubna 2019

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

Dijkstrův algoritmus (připomenutí)

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í

TEORIE GRAFŮ TEORIE GRAFŮ 1

Drsná matematika III 10. demonstrovaná cvičení Kostry grafů

Dijkstrův algoritmus

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.

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

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

STROMY. v 7 v 8. v 5. v 2. v 3. Základní pojmy. Řešené příklady 1. příklad. Stromy

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

Dynamické programování

Grafové algoritmy. Programovací techniky

Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest

4 Stromy a les. Definice a základní vlastnosti stromů. Kostry grafů a jejich počet.

Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní. stromový rozklad. Poznamenejme, že je-li k součástí vstupu, pak rozhodnout

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

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

Cvičení MI-PRC I. Šimeček

Dynamické programování

07 Základní pojmy teorie grafů

Úvod do informatiky. Miroslav Kolařík

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

Programování. s omezujícími podmínkami. Roman Barták. rová hranová konzistence

Metody síťové analýzy

TGH04 - procházky po grafech

Graf. Uzly Lokality, servery Osoby fyzické i právní Informatické objekty... atd. Hrany Cesty, propojení Vztahy Informatické závislosti... atd.

Teorie grafů. zadání úloh. letní semestr 2008/2009. Poslední aktualizace: 19. května First Prev Next Last Go Back Full Screen Close Quit

opakování reprezentace grafů, dijkstra, bellman-ford, johnson

dag a dp v něm, bellman-ford, floyd-warshall

TGH09 - Barvení grafů

PRÉCIS STRUKTUROVANÁ DATABÁZE JAKO ODPOVĚĎ NA NESTRUKTUROVANÝ DOTAZ. Dominik Fišer, Jiří Schejbal

Aproximace funkcí. x je systém m 1 jednoduchých, LN a dostatečně hladkých funkcí. x c m. g 1. g m. a 1. x a 2. x 2 a k. x k b 1. x b 2.

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

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

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

STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta

14. Transitivní uzávěry

6. Tahy / Kostry / Nejkratší cesty

Paralelní LU rozklad

HEURISTICKÉ ALGORITMY PRO ŘEŠENÍ ÚLOH OBCHODNÍHO CESTUJÍCÍHO

Základy informatiky. Teorie grafů. Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová

Metody analýzy dat II

Static Load Balancing Applied to Time Dependent Mechanical Problems

Přijímací zkouška - matematika

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

Diskrétní matematika. DiM /01, zimní semestr 2015/2016

Návrh Designu: Radek Mařík

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

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

VYUŽITÍ FLOYDOVA ALGORITMU NA SITÍCH USE OF FLOYD ALGORITHM IN NETWORKS

Jan Březina. Technical University of Liberec. 21. dubna 2015

ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ

Cílem seminární práce je aplikace teoretických znalostí z přednášky na konkrétní úlohy. Podstatu algoritmu totiž

PLANARITA A TOKY V SÍTÍCH

= 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

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

Implementace LL(1) překladů

Algoritmizace prostorových úloh

Stromy, haldy, prioritní fronty

1 0 0 u 22 u 23 l 31. l u11

Hledání správné cesty

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

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

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

Dynamické datové struktury III.

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

Časová a prostorová složitost algoritmů

Jan Březina. Technical University of Liberec. 30. dubna 2013

TGH02 - teorie grafů, základní pojmy

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

MATEMATIKA A 3 Metodický list č. 1

Ohodnocené orientované grafy

DRN: Soustavy linárních rovnic numericky, norma

Digitální učební materiál

Rekurzivní algoritmy

Operační výzkum. Síťová analýza. Metoda CPM.

Prioritní fronta, halda

Transkript:

Paralelní grafové algoritmy Značení Minimální kostra grafu Nejkratší cesta z jednoho uzlu Nejkratší cesta mezi všemi dvojicemi uzlů

Použité značení Definition Bud G = (V, E) graf. Pro libovolný uzel u V budeme značit: N V (u) množinu všech sousedních uzlů k uzlu u, tj. N V (u) {v V (u, v) E}, N E (u) množinu všech přilehlých hran k uzlu u, tj. N E (u) {(u, v) v V (u, v) E}.

Minimální kostra grafu Definition Mějme souvislý graf G(V, E). Kostrou grafu G nazveme podgraf G (V, E ), který obsahuje všechny vrholy grafu G a je stromem. Má-li navíc graf G vážené hrany (jejich váhy budeme značit w(e) pro každé e E), pak minimální kostra je taková kostra, pro kterou je suma w(e ) = e E w(e), minimální.

Minimální kostra grafu Aplikace: návrh komunikačních sítí LDPC kódy pro korekce chyb zpracování obrazu (registrace obrazu pomocí Renyiho entropie) generování náhodného bludiště Úlohu lze řešit pomocí Dijkstrova algoritmu se složitostí O(n 2 ).

Jarníkův (Primův) algoritmus 1: procedure JARNÍK( V, E, w, r)) 2: V F := {r} 3: E T = 4: 5: for all v V \ V F takové, že (r, v) E do E T := E T {(r, v)} 6: end for 7: while V F V do 8: 9: najdi hranu (u, v) E T s minimálni váhou a u V F V F := V F {v} 10: E T := E T \ (u, v) 11: for all u V \ V F takové, že (u, v) E do 12: E T := E T \ (u, v) 13: end for 14: end while 15: return V F 16: end procedure

Paralelní Jarníkův algoritmus paralelizovat lze pouze hledání minimální hrany na řádku 8 a přidávání hran přílehlých množině V F do E T na řádku 11 zbytek algoritmu je čistě sekvenční v případě řídkého grafu je to velmi málo paralelismu množina E T na řádku 8 je malá for cyklus na řádku 11 je krátký Bader A.B., Cong G., Fast shared-memory algorithms for computing the minimum spanning forest of sparse graphs, Journal of Parallel and Distributed Computing, 66, 2006, pp. 1366 1378.

Nejkratší cesta z jednoho uzlu Definition Mějme souvislý graf G(V, E) a zvolme v něm jeden vrchol jako startovní. Chceme najít nejkratší cestu do všech ostatních uzlů. Aplikace: navigace, jizdní řády zpracování obrazu řešení PDR - eikonální a Hamiltonovy-Jacobiho rovnice (fast-marching method) dynamické programování porovnávání řetězců v bioinformatice program diff

Dijkstrův algoritmus 1: procedure DIJKSTRA( V, E, w, s)) 2: V F := {s}, V T :=, l[s] 3: for all v V \ V F do 4: if existuje hrana (s, v) then 5: l[v] := w(s, v), V T := V T {v} 6: else 7: l[v] := + 8: end if 9: end for 10: while V F V do 11: 12: najdi u V T, že l[u] = min v VT l[v] V F := V F {u} 13: for all v N V (u) \ V F do 14: l[v] := min{l[v], l[u] + w(u, v)} 15: V T := V T {v} 16: end for 17: end while 18: return l 19: end procedure

Paralelní Dijkstrův algoritmus paralelizace Dijkstrova algoritmu je obdobná paralelizaci Jarníkova algoritmu paralelizovat lze pouze řádky 11 a cyklus na řádku 13 je-li graf V řídký, je to opět problém množina V T na řádku 11 malá for cyklus na řádku 13 je krátký Jasika N., Aslisphaic N., Elma. A, Ilvana K., Elma L., Nosovic N., Dijkstra s shortest path algorithm serial and parallel execution performance analysis, MIPRO, 2012 Proceedings of the 35th International Convention, 2012.

Nejkratší cesta mezi všemi dvojicemi uzlů Místo pole l[u] udávající délku nejkratší cesty z určitého uzlu nyní budeme hledat matici D, pro niž platí, že D u,v je délka nejkratší cesty z uzlu u do uzlu v.

Dijkstrův algoritmus Úlohu lze řešit pomocí n-krát aplikovaného Dijkstrova algoritmu, tj. se složitostí O(n 3 ). Paralelizaci lze provést dvěma způsoby: paralelizace přes zdrojové vrcholy pro každý vrchol grafu G spustíme paralelně sekvenční verzi Dijkstrova algoritmu paralelizace dekompozicí grafu postupně (sekvenčně) řešíme úlohu pro jeden uzel za druhým a použijeme paralelní verzi Dijkstrova algoritmu kombinujeme oba přístupy

Floydův algoritmus Floydův algoritmus je založen na následující myšlence: bud d uv doposud nejkratší známá cesta mezi uzly u a v jinou kratší cestu můžeme najít tak, že objevíme uzel w, pro který platí d u,w + d w,v < d u,v pak položíme d uv = d u,w + d w,v začneme s adjacenční maticí A grafu G ta obsahuje první odhad nejkratších cest mezi libovolnou dvojicí uzlů uzly, mezi kterými nevede hrana, mají délku nejkratší cesty + bereme jeden uzel po druhém a zkoušime, které cesty v grafu lze s jeho pomocí zkrátit

Floydův algoritmus 1: procedure FLOYD( V, E)) 2: D 0 := A G(V,E) 3: for k := 1 to n do 4: for i := 1 to n do 5: for j := 1 to n{ do 6: di,j k := min 7: end for 8: end for 9: end for 10: return D n 11: end procedure d k 1 i,j, d k 1 i,k } + d k 1 k,j

Floydův algoritmus. * f "' :'). " "

Floydův algoritmus * Ei * th :p :b # ; t.fm?:a:ol.eistkokm fine :*; 3 3 KEI! It..EE?iIEIt.E!IIIH

Floydův algoritmus paralelně paralelizovat lze for cykly na řádcích 4 a 5

Tranzitivní uzávěr Definition Graf je tranzitvní pokud platí (u, v) E (v, w) E (u, w) E. Definition Tranzitivní uzávěr grafu G je nejmenší tranzitvní graf, který obsahuje G jako podgraf. Tranzitivní uzávěr lze sestrojit tak, že doplníme hrany mezi každou dvojici uzlů u a v, právě když v grafu G existuje cesta z u do v. To lze udělat pomocí Floydova algoritmu.