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



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

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

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

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

1. Toky v sítích (zapsala Markéta Popelová)

Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů?

PQ-stromy a rozpoznávání intervalových grafů v lineárním čase

Úvod do teorie her

PLANARITA A TOKY V SÍTÍCH

Toky v sítích. Ruský petrobaron vlastní ropná naleziště na Sibiři a trubky vedoucí do Evropy. Trubky vedou mezi nalezišti, uzlovými

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

1 Nenulové toky. 1.1 Úvod. 1.2 Definice

2.Tokyvsítích. Čajovod

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

FIT ČVUT MI-LOM Lineární optimalizace a metody. Dualita. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

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

TGH10 - Maximální toky

Vrcholová barevnost grafu

Barevnost grafů MFF UK

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

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

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

8 Přednáška z

10 Přednáška ze

Důkaz Heineho Borelovy věty. Bez újmy na obecnosti vezmeme celý prostor A = M (proč? úloha 1). Implikace. Nechť je (M, d) kompaktní a nechť.

f(c) = 0. cn pro f(c n ) > 0 b n pro f(c n ) < 0

1 Linearní prostory nad komplexními čísly

Dijkstrův algoritmus

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

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

07 Základní pojmy teorie grafů

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

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

3. přednáška 15. října 2007

Průvodce studiem. do bodu B se snažíme najít nejkratší cestu. Ve firmách je snaha minimalizovat

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

Kreslení grafů na plochy Tomáš Novotný

67. ročník matematické olympiády III. kolo kategorie A. Přerov, března 2018

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

9. přednáška 26. listopadu f(a)h < 0 a pro h (0, δ) máme f(a 1 + h, a 2,..., a m ) f(a) > 1 2 x 1

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

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

TOPOLOGIE A TEORIE KATEGORIÍ (2017/2018) 4. PREDNÁŠKA - SOUČIN PROSTORŮ A TICHONOVOVA VĚTA.

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

TEORIE GRAFŮ TEORIE GRAFŮ 1

Definice 5.1 Graf G = (V, E) je tvořen množinou vrcholů V a množinou hran, kde

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

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

Úvod do teorie grafů

Jan Březina. 7. března 2017

Přednáška 11, 12. prosince Část 5: derivace funkce

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

Doporučené příklady k Teorii množin, LS 2018/2019

PŘEDNÁŠKA 2 POSLOUPNOSTI

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

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

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

Přednáška 6, 7. listopadu 2014

Matematická logika. Rostislav Horčík. horcik

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

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

p 2 q , tj. 2q 2 = p 2. Tedy p 2 je sudé číslo, což ale znamená, že

Další NP-úplné problémy

3. ANTAGONISTICKÉ HRY

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 jara 2016

Extrémy funkce dvou proměnných

12. Lineární programování

Pomocný text. Polynomy

HL Academy - Chata Lopata Emu (Brkos 2012) Řetězové zlomky / 27

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

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

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

Hlavolamy a teorie grafů

8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice

Vybíravost grafů, Nullstellensatz, jádra

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 jara 2017

4 Pojem grafu, ve zkratce

V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2

PRIMITIVNÍ FUNKCE. Primitivní funkce primitivní funkce. geometrický popis integrály 1 integrály 2 spojité funkce konstrukce prim.

Algoritmizace prostorových úloh

Přijímací zkouška - matematika

13. přednáška 13. ledna k B(z k) = lim. A(z) = M(z) m 1. z m.

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

Vzdálenost uzlů v neorientovaném grafu

IB112 Základy matematiky

Těleso racionálních funkcí

Učební texty k státní bakalářské zkoušce Matematika Vlastní čísla a vlastní hodnoty. študenti MFF 15. augusta 2008

5. Lokální, vázané a globální extrémy

ANTAGONISTICKE HRY 172

Řešení 1b Máme najít body, v nichž má funkce (, ) vázané extrémy, případně vázané lokální extrémy s podmínkou (, )=0, je-li: (, )= +,

2. přednáška 8. října 2007

Krajinou grafových algoritmů

TOPOLOGIE A TEORIE KATEGORIÍ (2017/2018) 3. PREDNÁŠKA - KOMPAKTNÍ PROSTORY.

Matematická analýza pro informatiky I. Limita funkce

13. Lineární programování

Derivace funkce. prof. RNDr. Čestmír Burdík DrCs. prof. Ing. Edita Pelantová CSc. Katedra matematiky BI-ZMA ZS 2009/2010

TGH08 - Optimální kostry

x + 6 2x 8 0. (6 x 0) & (2x 8 > 0) nebo (6 x 0) & (2x 8 < 0).

Matematika III 10. přednáška Stromy a kostry

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

Transkript:

1. Toky, řezy a Fordův-Fulkersonův algoritmus V této kapitole nadefinujeme toky v sítích, odvodíme základní věty o nich a také Fordův-Fulkersonův algoritmus pro hledání maximálního toku. Také ukážeme, jak na hledání maximálního toku převést problémy týkající se řezů, separátorů a párování v bipartitních grafech. Další tokové algoritmy budou následovat v příštích kapitolách. Toky v sítích Intuitivní pohled: síť je systém propojených potrubí, který přepravuje tekutinu ze zdroje s(source) do spotřebiče t(target), přičemž tekutina se nikde mimo tato dvě místa neztrácí ani nevzniká. Definice: Síťjeuspořádanápětice(V,E,s,t,c),kde: (V,E)jeorientovanýgraf, s V zdroj, t V spotřebičnebolistoka c:e Êfunkceudávajícínezápornékapacityhran. Ohodnoceníhranjelibovolnáfunkce f: E Ê.Prokaždéohodnocení f můžeme definovat: f + (v)= e=(,v) f(e), f (v)= e=(v, ) f(e), f (v)=f + (v) f (v) [codovrcholupřiteče,coodtečeajakýjevněmpřebytek]. Tokjeohodnocení f: E Ê,prokteréplatí: e:0 f(e) c(e), (dodržujekapacity) v s,t:f (v)=0. (Kirchhoffůvzákon) Velikosttoku: f = f (s). Řez(tokový): množinavrcholů C V taková,že s C, t C.Řez můžemetakéztotožnitsmnožinamihran C = E (C C)[těmbudeme říkathranyzlevadoprava]ac + = E (C C)[hranyzpravadoleva]. Kapacitařezu: C = e C c(e)(beremevúvahujenhranyzlevadoprava). Tok přesřez: f + (C) = e C + f(e), f (C) = e C f(e), f (C) = f + (C) f (C). Cirkulacejetoknulovévelikosti,čiliftakové,žef (v)=0provšechnav. Základním problémem, kterým se budeme zabývat, je hledání maximálního toku(tedy toku největší možné velikosti) a minimálního řezu(řezu nejmenší možné kapacity). 1 2013-04-10

Větička: V každé síti existuje maximální tok a minimální řez. Důkaz: Existence minimálního řezu je triviální, protože řezů v každé síti je konečněmnoho;protokyvsítíchsreálnýmikapacitamitoovšemnenísamozřejmosta je k tomu potřeba trocha matematické analýzy(v prostoru všech ohodnocení hran tvoří toky kompaktní množinu, velikost toku je lineární funkce, a tedy i spojitá, pročež nabývá maxima). Pro racionální kapacity dostaneme tuto větičku jako důsledek analýzy Fordova-Fulkersonova algoritmu. Pozorování: Kdybychom velikost toku definovali podle spotřebiče, vyšlo by totéž. Platí totiž: f (s)+f (t)= f (v)= f(e) f(e)=0 v e (prvnírovnostplynezkirchhoffovazákona všechnaostatní f (v)jsounulová; druhápakztoho,žekaždáhranapřispějekjednomu f + (v)akjednomu f (v)). Protoje f = f (s)=f (t). Stejně tak můžeme velikost toku změřit na libovolném řezu: Lemma:Prokaždýřez Cplatí,že f = f (C) C. Důkaz: První část indukcí: každý řez můžeme získat postupným přidáváním vrcholů do triviálního řezu {s}[čili přesouváním vrcholů zprava doleva], a to, jak ukáže jednoduchýrozborpřípadů,nezmění f.druháčást: f (C)=f (C) f + (C) f (C) C. Víme tedy, že velikost každého toku lze omezit kapacitou libovolného řezu. Kdybychomnašlitokařezstejnévelikosti,můžemesiprotobýtjisti,žetokje maximální a řez minimální. To se nám opravdu povede, platí totiž následující věta: Věta(Ford, Fulkerson): V každé síti je velikost maximálního toku rovna velikosti minimálního řezu. Důkaz: Jednu nerovnost jsme dokázali v předchozím lemmatu, druhá plyne z duality lineárního programování[max. tok a min. řez jsou navzájem duální úlohy], ale k pěknému kombinatorickému důkazu půjde opět použít Fordův-Fulkersonův algoritmus. Fordův-Fulkersonův algoritmus Nejpřímočařejší způsob, jak bychom mohli hledat toky v sítích, je začít s nějakýmtokem(nulovýjeporucevždy)apostupněhozlepšovattak,ženalezneme nějakounenasycenoucestuapošlemeponí copůjde.tobohuželnefunguje,ale můžeme tento postup trochu zobecnit a být ochotni používat nejen hrany, pro které je f(e) < c(e),aletakéhrany,pokterýchněcotečevprotisměruamymůžemetok v našem směru simulovat odečtením od toku v protisměru. Trochu formálněji: Definice: Rezervahrany e=(v,w)přitoku fsedefinujejako r(e)=(c(e) f(e))+ f(e ),kde e =(w,v).proúčelytohotoalgoritmubudemepředpokládat, žekekaždéhraněexistujehranaopačná;pokudne,dodefinujemesijia dáme jí nulovou kapacitu. 2 2013-04-10

Zlepšující cesta je orientovaná cesta, jejíž všechny hrany mají nenulovou rezervu. Algoritmus: 1. f nulovýtok. 2.Dokudexistujezlepšujícícesta Pz sdo t: 3. ε min e P r(e). 4. Zvětšímetok f podél P o ε(každéhraně e P zvětšíme f(e), případnězmenšíme f(e ),podletoho,cojde). Analýza: Nejdříve si rozmysleme, že pro celočíselné kapacity algoritmus vždy doběhne:vkaždémkrokustoupnevelikosttokuoε 1,cožmůženastatpouzekonečněkrát. Podobně pro racionální kapacity: přenásobíme-li všechny kapacity jejich společným jmenovatelem, dostaneme síť s celočíselnými kapacitami, na které se bude algoritmus chovat identicky a jak již víme, skončí. Pro iracionální kapacity obecně doběhnout nemusí, zkuste vymyslet protipříklad. Uvažme nyní situaci po zastavení algoritmu. Funkce f je určitě tok, protože jím byla po celou dobu běhu algoritmu. Prozkoumejme teď množinu C vrcholů, do nichž pozastaveníalgoritmuvedezlepšujícícestazezdroje.jistě s C, t C,takže tatomnožinajeřez.navícprokaždouhranu e C musíbýt f(e)=c(e)apro každou e C + je f(e )=0,protožejinakbyrezervahrany enebylanulová.takže f (C)= C af + (C)=0,čili f = C. Našli jsme tedy k toku, který algoritmus vydal, řez stejné velikosti, a proto, jakužvíme,jetokmaximálníařezminimální.tímjsmetakédokázalifordovu- Fulkersonovuvětu 1 aexistencimaximálníhotoku.navícalgoritmusnikdynevytváří z celých čísel necelá, čímž získáme: Důsledek: Síť s celočíselnými kapacitami má maximální tok, který je celočíselný. Časová složitost F-F algoritmu může být pro obecné sítě a nešikovnou volbu zlepšujících cest obludná, ale jak dokázali Edmonds s Karpem, pokud budeme hledat cesty prohledáváním do šířky(což je asi nejpřímočařejší implementace), poběží v čase O(m 2 n).pokudbudouvšechnykapacityjednotkové,snadnonahlédneme,žestačí O(nm). Edmondsův a Karpův odhad nebudeme dokazovat, místo toho si v příští kapitole předvedeme efektivnější algoritmus. Řezy, separátory a k-souvislost Teorie toků nám rovněž poslouží ke zkoumání násobné souvislosti grafů. Definice: Pro každý neorientovaný graf G a libovolné jeho vrcholy s, t zavedeme: st-řezjemnožinahran Ftaková,ževgrafu G Fjsouvrcholy s,tvrůzných komponentách souvislosti. 1 Dokoncejsmejidokázaliiproreálnékapacity,protožemůžemealgoritmusspustitrovnounamaximálnítokmístonulovéhoaonseihnedzastavíavydácertifikující řez. 3 2013-04-10

st-separátorjemnožinavrcholů Wtaková,že s,t Wavgrafu G W jsou vrcholy s, t v různých komponentách souvislosti. Řezjemnožinahran,kteráje xy-řezempronějakoudvojicivrcholů x,y. Separátor je množina vrcholů, která je xy-separátorem pro nějakou dvojici vrcholů x, y. Gjehranově k-souvislý,pokud V > kavšechnyřezyvgmajíalespoň k hran. Gjevrcholově k-souvislý,pokud V > kavšechnyseparátoryvgmají alespoň k vrcholů. Všimněte si, že nesouvislý graf má řez i separátor nulové velikosti, takže vrcholová i hranová 1-souvislost splývají s obyčejnou souvislostí pro všechny grafy o alespoň dvou vrcholech. Hranově 2-souvislé jsou právě(netriviální) grafy bez mostů, vrcholově 2-souvislé jsou ty bez artikulací. Pro orientované grafy můžeme st-řezy a st-separátory definovat analogicky (totiž, že po odstranění příslušné množiny hran či vrcholů neexistuje orientovaná cesta z s do t), globální řezy a separátory ani vícenásobná souvislost se obvykle nedefinují. Poznámka: Minimální orientované st-řezy podle této definice a minimální tokové řezy podle definice ze začátku kapitoly splývají: každý tokový řez C odpovídá střezustejnévelikostitvořenémuhranamivc ;naopakprominimální st-řezmusí být množina vrcholů dosažitelných z s po odebrání řezu z grafu tokovým řezem, opět stejné velikosti.[velikost měříme součtem kapacit hran.] Dává tedy rozumný smysl říkatobojímustejně.podobněsechovajíineorientovanégrafy,pokuddo tokového řezu počítáme hrany v obou směrech. Analogií toků je pak existence nějakého počtu disjunktních cest(vrcholově nebo hranově)mezivrcholy sat.analogiíf-fvětypakbudouznámémengerovyvěty: Věta(Mengerova, lokální hranová orientovaná): Buď G orientovaný graf a s, t nějaké jeho vrcholy. Pak je velikost minimálního st-řezu rovna maximálnímu počtu hranově disjunktních st-cest. 2 Důkaz:Zgrafusestrojímesíťtak,že sbudezdroj, tspotřebičavšemhranámnastavíme kapacitu na jednotku. Řezy v této síti odpovídají řezům v původním grafu. Podobně každý systém hranově disjunktních st-cest odpovídá toku stejné velikosti a naopak ke každému celočíselnému toku dovedeme najít systém disjunktních cest (hladově tok rozkládáme na cesty a průběžně odstraňujeme cirkulace, které objevíme). Pak použijeme F-F větu. Věta(Mengerova, lokální vrcholová orientovaná): Buď G orientovaný graf a s, t nějaké jeho vrcholy takové, že st E. Pak je velikost minimálního st-separátoru rovnamaximálnímupočtuvrcholovědisjunktních st-cest. 3 2 orientovanýchcestzsdo t 3 Tímmyslímecestydisjunktníažnakrajnívrcholy. 4 2013-04-10

Důkaz: Podobně jako v důkazu předchozí věty zkonstruujeme vhodnou síť. Tentokrát ovšemrozdělímekaždývrcholnavrcholy v + a v,všechnyhrany,kterépůvodně vedlydo v,přepojímedo v +,hranyvedoucízvpovedouzv apřidámenovouhranu z v + do v.všechnyhranybudoumítjednotkovékapacity.tokynyníodpovídají vrcholově disjunktním cestám, řezy v síti separátorům. v v + v Rozdělení vrcholu Podobně dostaneme neorientované lokální věty(neorientovanou hranu nahradíme orientovanými v obou směrech) a z nich pak i globální varianty popisující k-souvislost grafů: Věta(Mengerova, globální hranová neorientovaná): Neorientovaný graf G je hranově k-souvislý právě tehdy, když mezi každými dvěma vrcholy existuje alespoň k hranově disjunktních cest. Věta(Mengerova, globální vrcholová neorientovaná): Neorientovaný graf G je vrcholově k-souvislý právě tehdy, když mezi každými dvěma vrcholy existuje alespoň k vrcholově disjunktních cest. Maximální párování v bipartitním grafu Jiným problémem, který lze snadno převést na hledání maximálního toku, je nalezení maximálního párování v bipartitním grafu, tedy množiny hran takové, že žádné dvě hrany nemají společný vrchol. Maximálním míníme vzhledem k počtu hran, nikoliv vzhledem k inkluzi. Z bipartitního grafu(a B, E) sestrojíme síť obsahující všechny původní vrcholyanavícdvanovévrcholy sat,dálepakvšechnypůvodníhranyorientované z Ado B,novéhranyzsdovšechvrcholůpartity Aazevšechvrcholůpartity B do t. Kapacity všech hran nastavíme na jedničky: Nyní si všimneme, že párování v původním grafu odpovídají celočíselným tokůmvtétosítiaževelikosttokujerovnavelikostipárování.stačítedynalézt maximální celočíselný tok(třeba F-F algoritmem) a do párování umístit ty hrany, po kterých něco teče. Podobně můžeme najít souvislost mezi řezy v této síti a vrcholovými pokrytími zadaného grafu to jsou množiny vrcholů takové, že se dotýkají každé hrany. Tak z F-F věty získáme jinou standardní větu: 5 2013-04-10

Věta(Königova): V každém bipartitním grafu je velikost maximálního párování rovna velikosti minimálního vrcholového pokrytí. Důkaz: Pokud je W vrcholové pokrytí, musí hrany vedoucí mezi vrcholy této množiny a zdrojem a spotřebičem tvořit stejně velký řez, protože každá st-cesta obsahuje alespoň jednu hranu bipartitního grafu a ta je pokryta. Analogicky vezmeme-li libovolný st-řez(ne nutně tokový, stačí hranový), můžeme ho bez zvětšení upravit na st-řez používající pouze hrany ze s a do t, kterému přímočaře odpovídá vrcholové pokrytí stejné velikosti. Některé algoritmy na hledání maximálního párování využívají také volné střídavé cesty: Definice:(Volná) střídavá cesta v grafu G s párováním M je cesta, která začíná i končínespárovanýmvrcholemastřídajísenaníhranyležícívmshranamimimo párování. Všimněte si, že pro bipartitní grafy odpovídají zlepšující cesty v příslušné síti právě volným střídavým cestám a zlepšení toku podél cesty odpovídá přexorováním párování volnou střídavou cestou. Fordův-Fulkersonův algoritmus tedy lze velice snadno formulovat i v řeči střídavých cest. 6 2013-04-10