TGH08 - Optimální kostry

Podobne dokumenty
Edita Pelantová, katedra matematiky / 16

Kristýna Kuncová. Matematika B3

TGH01 - Algoritmizace

Katedra kybernetiky skupina Inteligentní Datové Analýzy (IDA) Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

TGH01 - Algoritmizace

Elementární funkce. Edita Pelantová. únor FJFI, ČVUT v Praze. katedra matematiky, FJFI, ČVUT v Praze

(13) Fourierovy řady

Numerické metody minimalizace

Numerické metody 8. května FJFI ČVUT v Praze

MATEMATIKA 3. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

Necht je funkce f spojitá v intervalu a, b a má derivaci v (a, b). Pak existuje bod ξ (a, b) tak, že f(b) f(a) b a. Geometricky

Aproximace funkcí 1,00 0,841 1,10 0,864 1,20 0,885. Body proložíme lomenou čarou.


Kristýna Kuncová. Matematika B2 18/19

Úvodní informace. 18. února 2019

5. a 12. prosince 2018

Co nám prozradí derivace? 21. listopadu 2018

Komplexní analýza. Martin Bohata. Katedra matematiky FEL ČVUT v Praze Martin Bohata Komplexní analýza Mocninné řady 1 / 18

Inverzní Z-transformace

1 Soustava lineárních rovnic

Obsah. Zobrazení na osmistěn. 1 Zobrazení sféry po částech - obecné vlastnosti 2 Zobrazení na pravidelný konvexní mnohostěn

Ústav teorie informace a automatizace RESEARCH REPORT. Pavel Boček, Karel Vrbenský: Implementace algoritmu MIDIA v prostředí Google Spreadsheets

Funkce zadané implicitně. 4. března 2019

Petr Křemen FEL ČVUT. Petr Křemen (FEL ČVUT) Vysvětlování modelovacích chyb 133 / 156

podle přednášky doc. Eduarda Fuchse 16. prosince 2010

Tabulky, součin tabulek

Geometrická nelinearita: úvod

x2 + 2x 15 x 2 + 4x ) f(x) = x 2 + 2x 15 x2 + x 12 3) f(x) = x 3 + 3x 2 10x. x 3 + 3x 2 10x x 2 + x 12 10) f(x) = log 2.

Kristýna Kuncová. Matematika B2

(2) Funkce. Kristýna Kuncová. Matematika B2. Kristýna Kuncová (2) Funkce 1 / 25

Linea rnı (ne)za vislost

NDMI002 Diskrétní matematika

Tvarová optimalizace pro 3D kontaktní problém

Operace s funkcemi [MA1-18:P2.1] funkční hodnota... y = f(x) (x argument)

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Paralelní implementace a optimalizace metody BDDC

Univerzita Palackého v Olomouci

(1) Derivace. Kristýna Kuncová. Matematika B2 17/18. Kristýna Kuncová (1) Derivace 1 / 35

Powyższe reguły to tylko jedna z wersji gry. Istnieje wiele innych wariantów, można też ustalać własne zasady. Miłej zabawy!

Anna Kratochvílová Anna Kratochvílová (FJFI ČVUT) PDR ve zpracování obrazu / 17

Univerzita Karlova v Praze Matematicko-fyzikální fakulta. algoritmu. Katedra algebry

Vybrané kapitoly z matematiky

3. Problémy s omezujícími podmínkami (CSP Constraint Satisfaction Problems)

Definice Řekneme, že PDA M = (Q,Σ,Γ,δ,q 0,Z 0,F) je. 1. pro všechna q Q a Z Γ platí: kdykoliv δ(q,ε,z), pak δ(q,a,z) = pro všechna a Σ;

1 Dedekindovy řezy (30 bodů)

Kapitola 4: Soustavy diferenciálních rovnic 1. řádu

Algoritmy a datové struktury 2. Sylabus: Vyhledávání vzorků v textu: alg. Aho-Corasicková

Matematika 2, vzorová písemka 1

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Určitý (Riemannův) integrál a aplikace. Nevlastní integrál. 19. prosince 2018

Euklidovský prostor. Funkce dvou proměnných: základní pojmy, limita a spojitost.

Západočeská univerzita v Plzni Fakulta aplikovaných věd. Katedra matematiky. Semestrální práce - matematika a byznys

ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA PEDAGOGICKÁ Katedra matematiky. Dudek Martin. obor Matematická studia

DFT. verze:

Shrnutí. Vladimír Brablec

Jednoduchá zobrazení. Podpořeno z projektu FRVŠ 584/2011.

Katedra kybernetiky laboratoř Inteligentní Datové Analýzy (IDA) Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Statistika (KMI/PSTAT)

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu (reg. č. CZ.1.07/2.2.00/28.

Lineární algebra - iterační metody

Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava

Algebra I Cvičení. Podstatná část příkladů je převzata od kolegů, jmenovitě Prof. Kučery, Doc. Poláka a Doc. Kunce, se

Jednoduchá zobrazení. Podpořeno z projektu FRVŠ 584/2011.

Stavový popis Stabilita spojitých systémů (K611MSAP) Katedra aplikované matematiky Fakulta dopravní ČVUT. čtvrtek 20. dubna 2006

Paradoxy geometrické pravděpodobnosti

Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava

Logika V. RNDr. Kateřina Trlifajová PhD. Katedra teoretické informatiky Fakulta informačních technologíı BI-MLO, ZS 2011/12

Anotace. Martin Pergel,

MATEMATIKA 3 NUMERICKÉ METODY. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

Matematika 1 Jiˇr ı Fiˇser 24. z aˇr ı 2013 Jiˇr ı Fiˇser (KMA, PˇrF UP Olomouc) KMA MAT1 24. z aˇr ı / 52

6 Dedekindovy řezy (30 bodů)

v 1 /2 semestru 4. listopadu v rámci přednášky 1 úvod do UI, jazyk Prolog (23.9.) 3 prohledávání stavového prostoru (7.10.)

Obsah: CLP Constraint Logic Programming. Úvod do umělé inteligence 6/12 1 / 17

Rovnice proudění Slapový model

Kybernetika a umělá inteligence. Gerstnerova laboratoř katedra kybernetiky. Daniel Novák

kontaktní modely (Winklerův, Pasternakův)

Obsah. Petr Hasil. (konjunkce) (disjunkce) A B (implikace) A je dostačující podmínka pro B; B je nutná podmínka pro A A B: (A B) (B A) A (negace)

Nekomutativní Gröbnerovy báze

(a). Pak f. (a) pro i j a 2 f

Matematika (KMI/PMATE)

Metody, s nimiž se seznámíme v této kapitole, lze použít pro libovolnou

Komplexní analýza. Martin Bohata. Katedra matematiky FEL ČVUT v Praze Martin Bohata Komplexní analýza Úvod 1 / 32

Register and win!

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Formálne jazyky Automaty. Formálne jazyky. 1 Automaty. IB110 Podzim

Internetová matematická olympiáda 8. ročník, Baví se student Fakulty strojního inženýrství VUT v Brně (FSI) s kamarádem:




ČVUT FEL, K Radek Mařík Strukturované testování 20. října / 52

Obsah. 1 Konstrukce (definice) Riemannova integrálu Výpočet Newtonova Leibnizova věta Aplikace výpočet objemů a obsahů 30

CA CZ, s.r.o. May 21, Radek Mařík Testování řídicích struktur May 21, / 45

Obsah. Limita posloupnosti a funkce. Petr Hasil. Limita posloupnosti. Pro a R definujeme: Je-li a < 0, pak a =, a ( ) =. vlastní body.

Základy obecné algebry

Wykład 9. Znajdowanie najlepszej drogi

z geoinformatických dat

Automatové modely. Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Fakulta biomedic ınsk eho inˇzen yrstv ı Teoretick a elektrotechnika Prof. Ing. Jan Uhl ıˇr, CSc. L eto 2019

Pharo Whirlpool Serie 200

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra matematiky METODA FAST MARCHING PRO

Transkrypt:

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

Problém profesora Borůvky elektrifikace Moravy Jak propojit N obcí vedením s minimální celkovou délkou? Zjednodušující předpoklad: Vedení se můž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 podgraf, který je strom a obsahuje 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í. Pro obecné minimalizační problémy 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 )

Kruskalův algoritmus detailně Vstup: graf jako pole hran E. Výstup: seznam L hran kostry. n = počet vrcholů setřid pole hran E while size(l) < n 1 do odeber z E hranu e s nejmenší váhou (u,v) = e if Find(u) Find(v) then Union(Find(u), Find(v)) přidej e do L

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 obvodů. 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í.