TGH08 - Optimální kostry

Podobné dokumenty
TGH06 - Hledání nejkratší cesty

TGH06 - Hledání nejkratší cesty

Algoritmy na ohodnoceném grafu

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

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

Grafové algoritmy. Programovací techniky

TGH12 - Problém za milion dolarů

Grafové algoritmy. Programovací techniky

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

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

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

TGH09 - Barvení grafů

Vzdálenost uzlů v neorientovaném grafu

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

Použití dalších heuristik

Jan Březina. 7. března 2017

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

TGH02 - teorie grafů, základní pojmy

TGH04 - procházky po grafech

TGH02 - teorie grafů, základní pojmy

Stromy, haldy, prioritní fronty

TGH02 - teorie grafů, základní pojmy

Metody síťové analýzy

Jarníkův algoritmus. Obsah. Popis

TGH07 - Chytré stromové datové struktury

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

Paralelní grafové algoritmy

TGH07 - Chytré stromové datové struktury

Stromové rozklady. Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom,

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

TGH05 - Problém za milion dolarů.

Problém obchodního cestujícího(tsp) Vstup: Množina n měst a vzdálenosti mezi nimi. Výstup: Nejkratší okružní cesta procházející všemi městy.

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

Úvod do teorie grafů

Prioritní fronta, halda

TGH10 - Maximální toky

07 Základní pojmy teorie grafů

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

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

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

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

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

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

8 Přednáška z

Diskrétní matematika. DiM /01, zimní semestr 2018/2019

Grafy. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta.

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

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.

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

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

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

Minimální kostra. Kapitola 1

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

Dynamické datové struktury III.

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

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

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

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

Základní pojmy teorie grafů [Graph theory]

1. Minimální kostry Od mìsteèka ke kostøe

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

Aproximativní algoritmy UIN009 Efektivní algoritmy 1

TEORIE GRAFŮ TEORIE GRAFŮ 1

OPTIMALIZAČNÍ ÚLOHY. Modelový příklad problém obchodního cestujícího:

Algoritmizace prostorových úloh

10 Podgrafy, isomorfismus grafů

Základy informatiky. 07 Teorie grafů. Kačmařík/Szturcová/Děrgel/Rapant

AVDAT Mnohorozměrné metody, metody klasifikace Shluková analýza

Minimální kostry. Teorie. Štěpán Šimsa

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

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

Teorie grafů Jirka Fink

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

6. Tahy / Kostry / Nejkratší cesty

ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ

Dynamické datové struktury IV.

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

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

Grafové algoritmy III.

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

VLASTNOSTI GRAFŮ. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze. BI-GRA, LS 2010/2011, Lekce 5

Grafové algoritmy. Aktualizováno: 29. listopadu / 228

Teorie grafů. Teoretická informatika Tomáš Foltýnek

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

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

Matice sousednosti NG

Vrcholová barevnost grafu

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

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

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

Kapitola 11. Vzdálenost v grafech Matice sousednosti a počty sledů

Teorie grafů BR Solutions - Orličky Píta (Orličky 2010) Teorie grafů / 66

Úvod do informatiky. Miroslav Kolařík

Vztah teorie vyčíslitelnosti a teorie složitosti. IB102 Automaty, gramatiky a složitost, /31

Učební texty k státní bakalářské zkoušce Matematika Teorie grafů. študenti MFF 15. augusta 2008

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

TOKY V SÍTÍCH II. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Optimalizace. Obsah přednášky. DÚ LP - Okružní problém. Lineární optimalizace. DÚ LP - Okružní problém. DÚ LP - Okružní problém

Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,

Transkript:

TGH08 - Optimální kostry Jan Březina Technical University of Liberec 14. dubna 2015

Problém profesora Borůvky řešil elektrifikaci Moravy Jak propojit N obcí vedením s minimální celkovou délkou. Vedení semůže větvit jen v obcích. 1926 - článek: O jistém problému minimálním První publikovaný algoritmus na hlednání minimální kostry

Grafová formulace problému Kostra (spanning tree) neorientovaného souvislého grafu G je strom obsahující všechny jeho vrcholy. Cena podgrafu F G, kde G má ohodnocené hrany, je součet hodnot hran v F. Minimální kostra (minimal spannig tree - MST) je kostra s minimální cenou. Jelikož minimalita ceny vylučuje existenci cyklů v MST, lze MST definovat také jako: Minimální souvislý indukovaný podgraf. Problém: Najdi minimální kostru grafu. hladové algoritmy - v každém kroku výpočtu voĺı aktuálně nejlepší možnost, časově efektivní. Obecně tato strategie vede k nalezení pouze lokálního, ne globálního minima.

Primův-Jarníkův algoritmus Vstup: graf G(V, E). Výstup: kostra S. Inicializuj strom kostry S jedním vrcholem. while S neobsahuje V do Najdi minimální hranu e z S do V \ S.; Přidej e ke stromu S. Implementační detaily: Kĺıčová je realizace hledání minimální hrany. Použijeme prioritní frontu hran založenou na binární haldě. Fronta obsahuje všechny vrcholy z V \ S sousedící s S. Podobně jako v Dijkstrovi udržujeme předky π[:]. ODEBER MIN se složitostí O(log E) = O(log V ) Přidání e : INSERT O(log E), pro každou hranu max. jednou. Celkem O((E + V ) log V ), jelikož každou hranu musíme projít alespoň jednou.

Minima lnı kostra grafu Pr ı buznı pr ı klad

Minima lnı kostra grafu Pr ı buznı pr ı klad

Primův-Jarníkův algoritmus detailně for u V do d[u] = d[s] = 0; π[s] = s Naplň prioritní frontu Q vrcholy V s prioritami d[ ]. while u = OdeberMin(Q) do d[u] = 0 for e = (u, v) Adj[u] do alt = w(e) if d[v] 0 and alt < d[v] then π[v] = u; d[v] = alt ZmenšiKĺıč(Q,v) modifikace Dijkstrova algoritmu (relaxace, test přítomnosti v ve frontě d[v] 0). d je minimální vzdálenost vrcholu od kostry S.

Kruskalův algoritmus Vstup: graf G(V, E). Výstup: kostra L. vytvoř les L z vrcholů V ; naplň S hranami E; while S a L není strom do odeber z S hranu e s nejmenší váhou; if e spojuje vrcholy různých stromů v lese L then spoj stromy; Implementační detaily: S bude setříděné pole hran. O(E log E) L je strom pokud obsahuje V 1 hran. O(1) volba nejkratší hrany O(1) Test hrany: datová struktura pro disjunktní rozklad množiny. O(α(V )) a lepší Kruskal: O((V + E)α(V )) Celkem O(E log E) = O(E log V )

Borůvkův algoritmus - obecně vytvoř les L z vrcholů V ; while L není strom do for komponenty L i lesu L do Najdi minimální hranu e i z L i ven.; Přidej hrany {e i } do L. V každém kroku se počet komponent zmenší alespoň na polovinu. složitost (redukční implemenace...) min(o(e log V ), O(V 2 )) vhodný pro paralelizaci

Borůvkův algoritmus - detailně vytvoř les L z vrcholů V while L není strom do for u V do add minimal edge e = (u, v) into L, set π[u] = v for u V do π[u] = F indroot(u, π), add to V for e = (u, v) E do add (π[u], π[v]) into E set (V, E) = (V, E ) FindRoot(u, π) kořen komponenty s vrcholem u v lese s hranami π while π[π[u]] u do u = π[u] ; ; return min{u, π[u]}

Meta algoritmus Řez δ(a) je množina hran mezi A a V \ A. Pokud pro množinu hran M existuje minimální kostra T, M T, řekneme, že M je rozšiřitelná do minimální kostry. Lemma (o existenci řezu) M je rozšiřitelná, ale ještě není kostrou, pak existuje neprázdný řez δa disjunktní s M. (Existuje netriviální řez s hranami mimo M.) 1. Zvoĺıme x M. 2. A bude množina vrcholů dosažitelných z x po hranách z M 3. δ(a) neobsahuje žádnou hranu z M, jinak bychom množinu A mohli zvětšit 4. pokud y / A, existuje cesta x y, která obsahuje hranu z řezu 5. řez je tedy neprázdný

Lemma (o nejlevnější hraně) Pokud M je rozšiřitelná a e je nejlevnější hrana řezu δa disjunktního s M, pak je i množina M {e} rozšiřitelná do minimální kostry.

meta-algoritmus: Postupně rozšiřujeme M s prázdné množiny až do T. V každém kroku najdeme vhodný řez

Shrnutí Kruskal - Začíná pokrývajícím nesouvislým lesem a ten postupně propojuje. Disjunktní rozklad vrcholů. O(E log E). Prim - Začíná souvislým nepokrývajícím stromem a rozšiřuje ho na celý graf. Binární halda. O((E + V ) log E). Borůvka - Začíná jako Kruskal, ale spojuje komponenty vyváženě. Paralelismus. O(E log V ) vylepšení až O(Eα(V )).

Reálné problémy Elektrická sít. Pro N měst najít propojení elektrickou sítí s minimální délkou (problém prof. Borůvky). Návrh obvobů. Pro N el. vývodů najít propojení ( se stejným potenciálem ) s minimální délkou drátu. Segmentace obrazu. Strom taxonomie. N pojmů (Wikipedie) s definovanou obsahovou podobností. Clustering. Rozdělení velké množiny objektů do tříd podobných objektů. Musí být kvantifikována podobnost. Approximace problému obchodního cestujícího.

Kostra s minimální cenou hrdla. Hrdlem kostry nazveme hranu s maximální váhou. Minimum bottleneck spanning tree (MBST) je kostra s minimální cenou hrdla. Řez je rozdělení vrcholů V = S T na disjunktní množiny Theorem Každá minimální kostra grafu G je zároveň kostrou s minimálním hrdlem. Důkaz: 1. Vlastnost řezu. Pro každý řez S, T grafu G platí, že nejmenší hrana e přes řez (u S, v T ) patří do MST. Alespoň jedna hrana f řezu musí náležet do MST. Sporem e f a w(e) w(f). Použitím e najdu menší kostru. 2. Uvažuju řez S, T procházející hrdlem - maximální hranou a z K MST a libovolnou hranou b z G MBST. Pokud má G levnější hrdlo, je w(b) < w(a), a pak podle vlastnosti řezu b K. Tj. K obsahuje minimálně V hran. Spor K nemůže být strom.

clustering I Člověk to dělá běžně... dělá si škatulky, aby uchopil složitou realitu. Úloha: Je dáno n objektů a jejich vzájemné vzdálenosti d(i, j). Najdi jejich rozdělení do k skupin A i tak, aby separace s byla maximální. s := min i,j d(a i, A j ), d(a i, A j ) := min x A i,y A j d(x, y), MSBT po odstranění hrdla dává 2-clustering. Podobně dále. Přímočarý algoritmus: Provádět Kruskala, dokud počet komponent není k.

Problém obchodního cestujícího Úloha: Jak si má naplánovat cestu po N městech, aby strávil na cestách nejméně času. Grafově: Najdi nejkratší Hamiltonovská kružnice v (úplném) ohodnoceném grafu. (NP-hard) Praktický předpoklad. Platí trojúhelníková nerovnost: d(i, j) d(i, k) + d(k, j)... stále NP-úplný problém. Aproximace.

Aproximace pomocí MST 1. Zvol počáteční vrchol v. Najdi z něj MST pomocí Primova algoritmu. 2. Z kořene v procházej kostru pomocí DF S algoritmu. Urči pořadí uzlů podle previzit. Tato aproximace dává kružnici po všech uzlech, která je max. dvakrát delší než optimální řešení.