TGH10 - Maximální toky

Podobné dokumenty
= 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

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

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

Jan Březina. 7. března 2017

TGH06 - Hledání nejkratší cesty

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

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

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

TGH06 - Hledání nejkratší cesty

TGH12 - Problém za milion dolarů

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

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

07 Základní pojmy teorie grafů

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

Úvod do teorie grafů

Algoritmizace prostorových úloh

Vzdálenost uzlů v neorientovaném grafu

Matice sousednosti NG

TGH08 - Optimální kostry

Grafové algoritmy. Programovací techniky

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

Algoritmy na ohodnoceném grafu

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

TGH04 - procházky po grafech

PROHLEDÁVÁNÍ GRAFŮ. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Dijkstrův algoritmus

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

Grafové algoritmy. Programovací techniky

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

PLANARITA A TOKY V SÍTÍCH

Přijímací zkouška - matematika

TEORIE GRAFŮ TEORIE GRAFŮ 1

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

TGH09 - Barvení grafů

TGH02 - teorie grafů, základní pojmy

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

Stromy, haldy, prioritní fronty

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

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

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

III přednáška Toky v sítích

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

TGH02 - teorie grafů, základní pojmy

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

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.

Poznámka. V některých literaturách se pro označení vektoru také používá symbolu u.

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

TGH02 - teorie grafů, základní pojmy

Vybrané kapitoly z matematiky

(ne)závislost. α 1 x 1 + α 2 x α n x n. x + ( 1) x Vektoru y = ( 1) y říkáme opačný vektor k vektoru y. x x = 1. x = x = 0.

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

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

Algoritmy a datové struktury

Moderní algoritmy pro hledání maximálního toku v síti

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

Jarníkův algoritmus. Obsah. Popis

Použití dalších heuristik

Matematika I 12a Euklidovská geometrie

Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:

Umělá inteligence. UI (AI) - součást informatiky s průniky mimo obor Stručná historie UI. Letošní cena nadace Vize Joseph Weizenbaum

TGH05 - Problém za milion dolarů.

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

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

Micro:bit lekce 4. Cyklus s určeným počtem opakování cyklus Repeat. Cyklus s počtem opakování daným řídicí proměnnou cyklus For from to

8 Přednáška z

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

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

Časová a prostorová složitost algoritmů

TGH07 - Chytré stromové datové struktury

Lineární algebra : Lineární prostor

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

Rovinné grafy Kostra grafu Minimální kostra Toky v sítích Problém maximálního toku v síti. Stromy a kostry. Michal Bulant

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

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

Vektorový prostor. d) Ke každému prvku u V n existuje tzv. opačný prvek u, pro který platí, že u + u = o (vektor u nazýváme opačný vektor k vektoru u)

3. Prohledávání grafů

ANALYTICKÁ GEOMETRIE V ROVINĚ

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

1 Linearní prostory nad komplexními čísly

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

[1] Determinant. det A = 0 pro singulární matici, det A 0 pro regulární matici

2. RBF neuronové sítě

Metody síťové analýzy

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

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

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Vektorový prostor. Př.1. R 2 ; R 3 ; R n Dvě operace v R n : u + v = (u 1 + v 1,...u n + v n ), V (E 3 )...množina vektorů v E 3,

Matematická analýza pro informatiky I. Limita funkce

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

Vrcholová barevnost grafu

Documentace knihovny flows

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

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 2015

Úvod do lineární algebry

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

Přiřazovací problém. Přednáška č. 7

2. úkol MI-PAA. Jan Jůna (junajan)

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

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

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

Transkript:

TGH10 - Maximální toky Jan Březina Technical University of Liberec 23. dubna 2013

- motivace Elektrická sít : Elektrická sít, jednotlivé vodiče mají různou kapacitu (max. proud). Jaký maximální proud může téci z místa A do místa B. Počítačová sít : Jednotlivé switche jsou propojeny linkami s různou reálnou propustností. Kolik bajtů za sekundu můžeme maximálně protlačit ze switche A do switche B? Optimalizace letů: Mezi městy létají letadla s různou kapacitou, kolik lidí jsem schopen maximálně přepravit z města A do města B? Sít je uspořádaná čtveřice G = ((V, E), c, s, t), kde (V, E) je orientovaný graf, c : V V R + jsou kapacity hran (c(u, v) = 0 pokud (u, v) / E), s V je vstupní a t V je výstupní vrchol.

Grafová úloha Tok sítí je zobrazení f : V V R splňující: 1. omezenost toku kapacitou, f(u, v) c(u, v) 2. bilance hran(antisymetrie) f(u, v) = f(v, u) (kvůli zápisu bilance vrcholů) 3. bilance vrcholů f(v, u) = 0, v V Velikost toku je celkový výtok ze vstupního uzlu: f = v V f(s, v) pro u s, t Úloha: Najdi tok sítí s maximální velikostí.

Tok sítí - zápis (a) Sít, t.j. graf s kapacitami hran. (b) Tok sítí, zapisujeme pouze kladné hranové toky spolu s kapacitami hrany: tok/kapacita.

Multi source/sink flow network Poznámka: Pokud by vstupních a výstupních vrcholů bylo více (obr. a), přidáme jeden super vstupní a jeden super výstupní vrchol a připojíme je hranami s nekonečnou kapacitou (obr. b).

Reziduální graf toku f Reziduální kapacita hrany c f je kapacita snížená o tok (zůstává kladná) c f (u, v) = c(u, v) f(u, v) Residuální graf/sít G f = (V, E f ) tvoří hrany s kladnou residuální kapacitou: E f = {(u, v) c f (u, v) > 0}

obecná Ford-Fulkerson metoda Schéma algoritmu: inicializuj f(u, v) = 0; while dokud existuje zlepšující cesta p do zvyš tok f podél cesty p Zlepšující cesta je cesta z s do t v residuálním grafu.

Jeden krok Ford-Fulkersona (a) tok sítí (b) residuální graf a zlepšující cesta (c) tok po aplikaci zlepšující cesty (d) nový residuální graf, neexistuje cesta

Řezy Množina vrcholů S V definuje řez δ(s): množina orientovaných hran z S do doplňku S = V \ S. Budeme uvažovat pouze tzv. (s, t)-řezy, kde zdroj s je ve zdrojové části řezu, s S, a stoka t je v cílové části řezu t S. Tok řezem f(s, T ) je součet toků přes hrany řezu: f(s) = f(s, S ) = f(u, v) u S v S sčítáme přes všechny hrany řezu. Díky pravidlu o bilanci hran zároveň odčítáme toky z S do S. kapacita řezu c(s): c(s) = c(s, S ) = c(u, v) u S v S

Lemma Pro tok f sítí G je tok libovolným řezem δ(s) roven velikosti toku f. Důkaz. Rovnosti mezi řádky: f(s, S ) = f(s, V \ S) = = f(s, V ) f(s, S) = = f(s, V ) = f ( {s} (S \ {s}), V ) = = f(s, V ) + f(s \ s, V ) = = f(s, V ) = f 1. Tok f(s, V ) je součet toků všech hran z S, v f(s, S ) jsou jen hrany z S do S, odečteme tedy součet přes hrany z S do S. 2. Tok f(s, S) je díky bilanci hran nulvý. 3. Podobná úvaha jako v 1). 4. f(s \ s, V ) je součet všech hran odchozích z S \ s, díky bilanci na vrcholech je součet nulový. Důsledek: Velikost každého toku je menší/rovna kapacitě každého řezu.

Věta o maximálním toku a minimálním řezu. Theorem Necht f je tok v síti (V, E, c, s, t), pak následující je ekvivalentní: 1. f je maximální tok 2. reziduální graf G f neobsahuje zlepšující cestu z s do t 3. f = c(s, S ) pro nějaký řez δ(s) Důkaz: 1 2: Pokud by existovala zlepšující cesta nebyl by tok maximální, můžeme jí použít ke zvětšení toku. 2 3: S = množina vrcholů, do kterých vede zlepšující cesta v residuálním grafu G f. Pro všechny hrany uv δ(s) je f(u, v) = c(u, v) jinak by i v pařilo do S. Proto f = f(s, S ) = c(s, S ). 3 1: Z Důsledku máme f (S, S ) c(s, S ) = f(s, S ) pro libovolný jiný tok f.

Edmons-Karp verze Ford-Fulkersona 1. nastav tok f na nulu (na všech hranách) 2. pro f vytvoř reziduální graf G f 3. proved BFS na G f ze zdroje s 4. dopředné hrany tvoří čistou sít G f 5. pokud BFS nenalezne cestu do t algoritmus končí 6. jako vylepšující cestu p vezmeme nejkratší cestu z s do t na G f (nalezenou pomocí BFS) 7. vypočteme kapacitu zlepšující cesty c f (p) = min{c f (e) e p} 8. tok všemi hranami v cestě p zvětšíme o kapacitu cesty: for (u, v) p do f(u, v) = f(u, v) + c f (p); f(v, u) = f(u, v); 9. pokračujeme bodem 2)

Jak to funguje? Z reziduálního grafu G f odmazáváme hrany které se nasytily a zvyšujeme kapacitu na opačných hranách. Dokud je délka nejkratší cesty stejná, pouze umazáváme hrany v čisté síti G f. Těchto umazání je max. E. Vzdálenost d(s, v) na grafu G f (jedničkové ohodnocení) v průběhu algoritmu neklesá. Tedy neklesá ani d(s, t). Celkem existuje max. V různých délek zlepšujících cest. Maximálně tedy použijeme V E zlepšujících cest. Nalezení a aplikace zlepšující cesty má složitost O(V + E) Celková složitost O(V E 2 )

Dinicův algoritmus blokující tok v čisté síti G f je čistá sít G f je DAG najdeme maximální tok čistou sítí, tzv. blokující tok algoritmus: 1. nastav nulové toky 2. najdi G f a pak G f pomocí BFS 3. opakovaně prováděj DFS na G f pro nalezení zlepšujících cest v čase O(n) 4. opakuj 2) DFS v bodě 3) proběhne max. E krát až se nasytí všechny hrany čisté sítě Při rekurzivní implementaci DFS můžeme při návratu z rekurze provádět update toku. Složitost: O(V 2 E)

Metoda tří Indů Blokující tok lze také počítat pomocí kapacit čisté sítě ve vrcholech v čase O(V 2 ). Celkový algoritmus se zlepší na O(V 3 ).