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

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

TGH09 - Barvení grafů

Jan Březina. 7. března 2017

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

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

TGH08 - Optimální kostry

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

TGH10 - Maximální toky

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

Algoritmy na ohodnoceném grafu

TGH07 - Chytré stromové datové struktury

TGH06 - Hledání nejkratší cesty

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

Grafové algoritmy. Programovací techniky

Grafové algoritmy. Programovací techniky

Definice 1 eulerovský Definice 2 poloeulerovský

TGH07 - Chytré stromové datové struktury

TGH06 - Hledání nejkratší cesty

Dijkstrův algoritmus

07 Základní pojmy teorie grafů

Úvod do teorie grafů

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

TGH04 - procházky po grafech

Bipartitní grafy. Karel Klouda c KTI, FIT, ČVUT v Praze 28. března, letní semestr 2010/2011

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

PLANARITA A TOKY V SÍTÍCH

Vybíravost grafů, Nullstellensatz, jádra

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

10 Podgrafy, isomorfismus grafů

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

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

TGH02 - teorie grafů, základní pojmy

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

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

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

8 Přednáška z

Použití dalších heuristik

TGH02 - teorie grafů, základní pojmy

TGH02 - teorie grafů, základní pojmy

Dynamické datové struktury III.

Golayův kód 23,12,7 -kód G 23. rozšířený Golayův kód 24,12,8 -kód G 24. ternární Golayův kód 11,6,5 -kód G 11

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

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

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

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.

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

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

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

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

1. Toky, řezy a Fordův-Fulkersonův algoritmus

Dynamické programování

Barevnost grafů MFF UK

VLASTNOSTI GRAFŮ. Vlastnosti grafů - kap. 3 TI 5 / 1

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

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

Algoritmy a datové struktury

Stromy, haldy, prioritní fronty

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

TEORIE GRAFŮ TEORIE GRAFŮ 1

TGH05 - Problém za milion dolarů.

TGH12 - Problém za milion dolarů

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

Paralelní grafové algoritmy

"Agent Hledač" (3. přednáška)

3. Grafy a matice. Definice 3.2. Čtvercová matice A se nazývá rozložitelná, lze-li ji napsat ve tvaru A =

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

10 Přednáška ze

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

V ypoˇ cetn ı sloˇ zitost v teorii graf u Martin Doucha

Dynamické programování

Úvod do vybíravosti grafů, Nullstellensatz, polynomiální metoda

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

Drsná matematika III 9. přednáška Rovinné grafy: Stromy, konvexní mnohoúhelníky v prostoru a Platónská tělesa

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

6. Tahy / Kostry / Nejkratší cesty

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

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

Algoritmizace prostorových úloh

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

Úloha ve stavovém prostoru SP je <s 0, C>, kde s 0 je počáteční stav C je množina požadovaných cílových stavů

= 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

Drsná matematika III 9. přednáška Rovinné grafy: Stromy, konvexní mnohoúhelníky v prostoru a Platónská tělesa

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

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

bfs, dfs, fronta, zásobník

Vzdálenost uzlů v neorientovaném grafu

Algoritmus Minimax. Tomáš Kühr. Projektový seminář 1

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

Algoritmy výpočetní geometrie

Geometrické vyhledávání

Aproximativní algoritmy UIN009 Efektivní algoritmy 1

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

Jan Březina. Technical University of Liberec. 17. března 2015

Časová a prostorová složitost algoritmů

Vrcholová barevnost grafu

68. ročník Matematické olympiády 2018/2019

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

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.

Analýza Petriho sítí. Analýza Petriho sítí p.1/28

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

Transkript:

TGH11 - Maximální párování a související problémy Jan Březina Technical University of Liberec 21. dubna 2015

Bipartitní grafy Bipartitní graf - je obarvitelný dvěma barvami. Tj. V lze rozělit na disjunktní množiny U a W, tak že pro každou hranu (u, w) je u U a w W. Algoritmus: Určení zda graf je bipartitní. 1. Procházej graf DF S nebo BF S. 2. Do U dávej liché vrstvy do W dávej sudé vrstvy. 3. Pokud dorazíš do již navštíveného vrcholu zkontroluj zda souhlasí parita vrstev, pokud ne cyklus liché délky.

Správnost algoritmu Lemma Graf je bipartitiní právě tehdy, pokud neobsahuje cykly liché délky. Důkaz: : V cyklu se musí střídat dvě barvy vrcholů, takže má sudou délku. : Cyklus liché délky není 2-obarvitelný, tedy ani žádný jeho nad-graf příklady bipartitních stromy cykly sudé délky (netriviální) rovinný graf jehož dualní graf má vrcholy sudého stupně tj. stěny mají sudý počet hran tj. graf má pouze cykly sudé délky

Párování Dvě hrany sousedí pokud mají společný vrchol. Párování grafu (V, E) - množina nesousedících hran M. Maximální párování (maximal matching) - nelze přidat další hranu. Největší / nejpočetnější párování (maximum matching) - má maximální možný počet hran. Perfektní párování - pokrývá všechny vrcholy. Platí: perfektní největší maximální Pro ohodnocené hrany (zejména pro bipartitní grafy): nejdražší párování (maximum-weight matching), nejdražší nejpočetnější párování (maximum-weight maximum matching, (Hungarian algorithm - pro bipartitiní grafy) nejlevnější nejpočetnější párování (minimum-weight maximum matching)

Příklady jednoduchých párování Maximal matchings: Maximum matchings: perfect near perfect

Příklady úloh Přiřazování úkolů (assignment problem) n výpočetních úloh máte naplánovat na n procesorů, na počátku jsou na procesoru i data velikosti w(i, j) nutná k vyřešení úlohy j. Cílem je přiřadit úlohy procesorům tak, aby se minimalizovalo množství přenesených dat, tj. maximalizoval součet i w(i, i) dat, která zůstávají na procesoru. = najít nejlevnější perfektní párování v bipartitním grafu, Ženitba Každá z množiny žen i Z má množinu M i M potencionálních ženichů. Muž je ochoten se oženit pokud o něj žena stojí. Kolik může být max. sňatků? Můžou mít všichni svatbu? Největší popř. perfektní párování v bipartitním grafu.

Párovací algoritmy Maximální párování : hladový algoritmus. Nenajde největší párování. Největší párování - bipartitní grafy: Převod na problém maximálního toku. Přidání vstupu a výstupu, kapacity hran 1. 1 1 1 1 1 1 1

Párovací algoritmy Největší, obecný graf - Edmondův algoritmus Dán graf G a párování P. Exponovaný vrchol = vrchol nepokrytý párováním P. Alternující cesta = střídá hrany z párování P a jeho doplňku E \ P. Zlepšující cesta = alternující cesta končící v exponovaných vrcholech. 1. Najdi zlepšující cestu. 2. Prohod její hrany mezi P a E \ P. 3. Pokud existuje zlepšující cesta, jdi na 1) 4. Jinak - největší párování

Zlepšení párování pomocí zlepšující cesty

Správnost algoritmu. Theorem Párování je největší pokud neexistuje zlepšující cesta. Důkaz: - pokud by existovala zlepšující, není párování největší. - Necht P není největší, P je největší a pro obě neexistuje zlepšující cesta. Graf s hranami P P má stupeň vrcholů nejvýše 2. Jeho komponenty jsou cesty a cykly. Bud totožné v P a P (délky 1) nebo se střídavými hranami z P a P. Střídavá, sudá délka stejný počet hran P a P. Střídavá, lichá délka zlepšující cesta pro P nebo P, spor.

Hledání zlepšující cesty I. Procházením do šířky vytváříme les s kořeny v exponovaných vrcholech. Každý vrchol v lesa zná předka, tj. i kořen v. Vzdálenost od kořene - lichý/sudý vrchol. Květ je cyklus délky 2k + 1, kde k hran je z P. Kontrahujeme do bodu a pokračujeme hledáním zlepšující cesty na kontrahovaném grafu. Po nalezení ZC na kontrahovaném, expandujeme květ a doplníme cestu projitím květem jednou nebo druhou stranou. Obrázek.

Hledání zlepšující cesty II. function Zlepšující cesta(graf G, párování P ) Z exponovaných vrcholů vytvoř les F ; while v je nezpracovaný sudý vrchol v F do while e = (v, w) je nezpracovaná hrana do if w / F then while (w, x) P do přidej (v, w), (w, x) do F ; (w, x) je zpracovaná; else if w F je lichý then zahod hranu (v, w); ; else if kořen v kořen w then return C =zlepšující cesta: (kořen v,..., v,w,...,kořen w); else kontrahuj květ G, P ; C =Zlepšující cesta(g, P ); return C =expanduj květ(c, G); (v, w) je zpracovaná; v je zpracovaný;

Další úlohy Eulerova cesta na smíšených grafech 1. výpočet in-degree (deg + ) a out-degree (deg ) pro orientovanou část grafu 2. na zbylém grafu hledat maximální tok z vrcholů, kde deg > deg + do vrcholů, kde deg < deg +, podobně jako při hledání max. párování pro bipartitiní graf

Hranové pokrytí

Vrcholové pokrytí