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

Podobné dokumenty
Klasická metóda CPM

Microsoft Word - skripta3b.doc

Vypracovane otazky k bakalarskym statnicim

Microsoft Word - Transparencies03.doc

Microsoft Word - Argumentation_presentation.doc

Podpora metód operačného výskumu pri navrhovaní systému liniek doc. RNDr. Štefan PEŠKO, CSc. Katedra matematických metód, Fa

8 Cvičenie 1.1 Dokážte, že pre ľubovoľné body X, Y, Z platí X + Y Z = Z + Y X. 1.2 Dokážte, že pre ľubovoľné body A, B, D, E, F, G afinného priestoru

Metódy dokazovanie v matematike 1 Základné pojmy Matematika exaktná veda vybudovaná DEDUKTÍVNE ZÁKLADNÉ POJMY základy každej matematickej teórie sú in

Operačná analýza 2

Microsoft Word - Zaver.pisomka_januar2010.doc

1

Online fakturácia

Vzorové riešenia úlohy 4.1 Bodovanie Úvod do TI 2010 Dôvod prečo veľa z Vás malo málo bodov bolo to, že ste sa nepokúsili svoje tvrdenia dokázať, prič

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY Katedra informatiky PLATNOSŤ BERGE-FULKERSONOVEJ HYPOTÉZY PRE ŠPECIÁLNE TR

Paralelné algoritmy, cast c. 2

Funkcie viac premenných

Neineárne programovanie zimný semester 2018/19 M. Trnovská, KAMŠ, FMFI UK 1

Zoznamové farbenia grafov

SK MATEMATICKÁOLYMPIÁDA skmo.sk 2009/ ročník MO Riešenia úloh česko-poľsko-slovenského stretnutia 1. Určte všetky trojice (a, b, c) kladných r

Susedov rozli²ujúci index grafu Bakalárska práca pre ²tudijný program Matematika alebo Ekonomická a nan ná matematika v akademickom roku 2019/20 vedúc

Relačné a logické bázy dát

12Prednaska

Pokrocilé spracovanie obrazu - Fourierová transformácia

STRUČNÝ NÁVOD KU IP-COACHU

Kupna_zmluva_o_dielo_2013

BEOSZTÁS KÉSZÍTÉS KÉZIKÖNYV

NÁVRH UČEBNÝCH OSNOV PRE 1

Metrické konštrukcie elipsy Soňa Kudličková, Alžbeta Mackovová Elipsu, ako regulárnu kužeľosečku, môžeme študovať synteticky (konštrukcie bodov elipsy

Microsoft Word - 5I-PP3-0X - StoryMap - v.2. - doplnene (1)

Informačná a modelová podpora pre kvantifikáciu prvkov daňovej sústavy SR

Prenosový kanál a jeho kapacita

Microsoft Word - FRI”U M 2005 forma B k¾úè.doc

Obsah 1 Úvod Predhovor Sylaby a literatúra Grupy a podgrupy 4 2

Priebeh funkcie

MO_pred1

Poznámky k cvičeniu č. 2

EN 13813: VYHLÁSENIE O PARAMETROCH PODĽA PRÍLOHY III NARIADENIA (EÚ) č. 574/2014 Sikafloor -2 SynTop č JEDINE

MergedFile

GSM alarm s WiFi Návod k obsluhe Kontakt na dodavateľa: Nesluša

MergedFile

SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ Metodika archivácie verzií HW Tímový projekt Stratos FIIT M

2.5. Dotyčnica krivky, dotykový kužeľ. Nech f je krivka a nech P V (f) (t.j. m P (f) 1). Ak m P (f) = r a l je taká priamka, že I P (f, l) > r, potom

Měření rychlosti zvuku ve vzduchu Mária Čarná Dalibor Javůrek Filip Jareš

Vhodnosť lokálneho ohodnocovania grafu v sociálnej sieti obchodného registra SR Peter Vojtek Mária Bieliková Fakulta informatiky a informačných techno

Microsoft Word - Diskusia11.doc

1

Prepis:

Petr Hliněný, FI MU Brno, 2014 1 / 19 FI: IB000: Toky v sítích 6 Orientované grafy, Toky v sítích Nyní se budeme zabývat typem sít ových úloh, ve kterých není podstatná délka hran a spojení, nýbž jejich propustnost (jako potrubní nebo počítačové sítě). Základní úlohou v této oblasti je problém nalezení maximálního toku v síti za podmínky respektování daných kapacit hran.

Petr Hliněný, FI MU Brno, 2014 1 / 19 FI: IB000: Toky v sítích 6 Orientované grafy, Toky v sítích Nyní se budeme zabývat typem sít ových úloh, ve kterých není podstatná délka hran a spojení, nýbž jejich propustnost (jako potrubní nebo počítačové sítě). Základní úlohou v této oblasti je problém nalezení maximálního toku v síti za podmínky respektování daných kapacit hran. Stručný přehled lekce * Definice a některé základní vlastnosti orientovaných grafů, souvislost. * Sítě s kapacitami hran, hledání maximálního toku a dualita. * Důsledky duality toku; vyšší souvislost, bipartitní párování, SRR.

Petr Hliněný, FI MU Brno, 2014 2 / 19 FI: IB000: Toky v sítích 6.1 Základní pojmy orientovaných grafů Požadavek explicitně vyjádřit směr hrany přirozeně vede na následující definici orientovaného grafu, ve kterém hrany jsou uspořádané dvojice vrcholů.

Petr Hliněný, FI MU Brno, 2014 2 / 19 FI: IB000: Toky v sítích 6.1 Základní pojmy orientovaných grafů Požadavek explicitně vyjádřit směr hrany přirozeně vede na následující definici orientovaného grafu, ve kterém hrany jsou uspořádané dvojice vrcholů. Definice 6.1. Orientovaný graf je uspoř. dvojice D = (V, E), kde E V V.

Petr Hliněný, FI MU Brno, 2014 2 / 19 FI: IB000: Toky v sítích 6.1 Základní pojmy orientovaných grafů Požadavek explicitně vyjádřit směr hrany přirozeně vede na následující definici orientovaného grafu, ve kterém hrany jsou uspořádané dvojice vrcholů. Definice 6.1. Orientovaný graf je uspoř. dvojice D = (V, E), kde E V V. Pojmy podgrafu a isomorfismu se přirozeně přenášejí na orientované grafy.

Petr Hliněný, FI MU Brno, 2014 2 / 19 FI: IB000: Toky v sítích 6.1 Základní pojmy orientovaných grafů Požadavek explicitně vyjádřit směr hrany přirozeně vede na následující definici orientovaného grafu, ve kterém hrany jsou uspořádané dvojice vrcholů. Definice 6.1. Orientovaný graf je uspoř. dvojice D = (V, E), kde E V V. Pojmy podgrafu a isomorfismu se přirozeně přenášejí na orientované grafy. Značení: Hrana (u, v) (zvaná také šipka) v orientovaném grafu D začíná ve vrcholu u a končí ve (míří do) vrcholu v. Opačná hrana (v, u) je různá od (u, v). Speciálně hrana tvaru (u, u) se nazývá orientovaná smyčka.

Petr Hliněný, FI MU Brno, 2014 2 / 19 FI: IB000: Toky v sítích 6.1 Základní pojmy orientovaných grafů Požadavek explicitně vyjádřit směr hrany přirozeně vede na následující definici orientovaného grafu, ve kterém hrany jsou uspořádané dvojice vrcholů. Definice 6.1. Orientovaný graf je uspoř. dvojice D = (V, E), kde E V V. Pojmy podgrafu a isomorfismu se přirozeně přenášejí na orientované grafy. Značení: Hrana (u, v) (zvaná také šipka) v orientovaném grafu D začíná ve vrcholu u a končí ve (míří do) vrcholu v. Opačná hrana (v, u) je různá od (u, v). Speciálně hrana tvaru (u, u) se nazývá orientovaná smyčka. Orientované grafy odpovídají relacím, které nemusí být symetrické.

Petr Hliněný, FI MU Brno, 2014 3 / 19 FI: IB000: Toky v sítích Orientovaná cesta délky n 0 je následujícím grafem na n + 1 vrcholech 1 2 3... n n + 1

Petr Hliněný, FI MU Brno, 2014 3 / 19 FI: IB000: Toky v sítích Orientovaná cesta délky n 0 je následujícím grafem na n + 1 vrcholech 1 2 3... n n + 1 a orientovaná kružnice (také cyklus) délky n 1 vypadá takto: 4 3 2 5 1 6 n...

Petr Hliněný, FI MU Brno, 2014 3 / 19 FI: IB000: Toky v sítích Orientovaná cesta délky n 0 je následujícím grafem na n + 1 vrcholech 1 2 3... n n + 1 a orientovaná kružnice (také cyklus) délky n 1 vypadá takto: 4 3 2 5 1 6 n... Definice: Počet hran začínajících ve vrcholu u orientovaného grafu D nazveme výstupním stupněm d + D (u) a počet hran končících v u nazveme vstupním stupněm d D (u). Součet všech výstupních stupňů je přirozeně roven součtu všech vstupních stupňů.

Petr Hliněný, FI MU Brno, 2014 4 / 19 FI: IB000: Toky v sítích Souvislost na orientovaných grafech Uvedeme si odstupňovaně tři základní pohledy: Slabá souvislost. Jedná se o tradiční souvislost na symetrizaci grafu D (tj. po zapomenutí směru šipek).

Petr Hliněný, FI MU Brno, 2014 4 / 19 FI: IB000: Toky v sítích Souvislost na orientovaných grafech Uvedeme si odstupňovaně tři základní pohledy: Slabá souvislost. Jedná se o tradiční souvislost na symetrizaci grafu D (tj. po zapomenutí směru šipek). Dosažitelnost (směrem ven ). Orientovaný graf D je dosažitelný směrem ven, pokud v něm existuje vrchol v V (D) takový, že každý vrchol x V (D) je dosažitelný orientovaným sledem z v. v

Petr Hliněný, FI MU Brno, 2014 5 / 19 FI: IB000: Toky v sítích Podrobným zkoumáním následujícího obrázku zjistíme, že jeho graf není dosažitelný směrem ven, nebot chybí možnost dosáhnout vrchol b úplně vpravo. Na druhou stranu po vypuštění b je zbylý graf dosažitelný ven z vrcholu a vlevo. a b

Petr Hliněný, FI MU Brno, 2014 6 / 19 FI: IB000: Toky v sítích Souvislost na orientovaných grafech, silná Silná souvislost. Necht je binární relace na vrcholové množině V (D) orientovaného grafu D taková, že u v právě když existuje dvojice orientovaných cest jedna z u do v a druhá z v do u v grafu D.

Petr Hliněný, FI MU Brno, 2014 6 / 19 FI: IB000: Toky v sítích Souvislost na orientovaných grafech, silná Silná souvislost. Necht je binární relace na vrcholové množině V (D) orientovaného grafu D taková, že u v právě když existuje dvojice orientovaných cest jedna z u do v a druhá z v do u v grafu D. Pak je relace ekvivalence. u v

Petr Hliněný, FI MU Brno, 2014 6 / 19 FI: IB000: Toky v sítích Souvislost na orientovaných grafech, silná Silná souvislost. Necht je binární relace na vrcholové množině V (D) orientovaného grafu D taková, že u v právě když existuje dvojice orientovaných cest jedna z u do v a druhá z v do u v grafu D. Pak je relace ekvivalence. u v Definice 6.2. Silné komponenty orientovaného grafu D jsou třídy ekvivalence relace uvedené v předchozím.

Petr Hliněný, FI MU Brno, 2014 6 / 19 FI: IB000: Toky v sítích Souvislost na orientovaných grafech, silná Silná souvislost. Necht je binární relace na vrcholové množině V (D) orientovaného grafu D taková, že u v právě když existuje dvojice orientovaných cest jedna z u do v a druhá z v do u v grafu D. Pak je relace ekvivalence. u v Definice 6.2. Silné komponenty orientovaného grafu D jsou třídy ekvivalence relace uvedené v předchozím. Orientovaný graf D je silně souvislý pokud má nejvýše jednu silnou komponentu.

Petr Hliněný, FI MU Brno, 2014 7 / 19 FI: IB000: Toky v sítích Pro ilustraci si mírně upravíme dříve prezentovaný orientovaný graf tak, že bude dosažitelný z nejlevějšího vrcholu. Je výsledek silně souvislý?

Petr Hliněný, FI MU Brno, 2014 7 / 19 FI: IB000: Toky v sítích Pro ilustraci si mírně upravíme dříve prezentovaný orientovaný graf tak, že bude dosažitelný z nejlevějšího vrcholu. Je výsledek silně souvislý? Ne, na obrázku jsou vyznačené jeho 4 silné komponenty. Zároveň uvádíme pro ilustraci obrázek kondenzace silných komponent tohoto grafu, což je acyklický orientovaný graf s vrcholy reprezentujícími zmíněné silné komponenty a směry hran mezi nimi.

Petr Hliněný, FI MU Brno, 2014 8 / 19 FI: IB000: Toky v sítích 6.2 Definice sítě a toku Základní strukturou pro reprezentaci sítí je vážený orientovaný graf (přičemž implicitní směr hran je v tomto kontextu nezbytný).

Petr Hliněný, FI MU Brno, 2014 8 / 19 FI: IB000: Toky v sítích 6.2 Definice sítě a toku Základní strukturou pro reprezentaci sítí je vážený orientovaný graf (přičemž implicitní směr hran je v tomto kontextu nezbytný). Definice 6.3. Sít je čtveřice S = (D, z, s, w), kde D je orientovaný graf, vrcholy z V (D), s V (D) jsou zdroj a stok, w : E(D) R + je kladné ohodnocení hran, zvané kapacita hran. z 1 4 3 3 2 5 5 2 1 2 4 s

Petr Hliněný, FI MU Brno, 2014 8 / 19 FI: IB000: Toky v sítích 6.2 Definice sítě a toku Základní strukturou pro reprezentaci sítí je vážený orientovaný graf (přičemž implicitní směr hran je v tomto kontextu nezbytný). Definice 6.3. Sít je čtveřice S = (D, z, s, w), kde D je orientovaný graf, vrcholy z V (D), s V (D) jsou zdroj a stok, w : E(D) R + je kladné ohodnocení hran, zvané kapacita hran. z 1 4 3 3 2 5 5 2 1 2 4 s Poznámka: V praxi může být zdrojů a stoků více, ale v definici stačí pouze jeden zdroj a stok, z něhož / do nějž vedou hrany do ostatních zdrojů / stoků. (Dokonce pak různé zdroje a stoky mohou mít své kapacity.)

Petr Hliněný, FI MU Brno, 2014 9 / 19 FI: IB000: Toky v sítích Velikost toku v síti Značení: Pro jednoduchost píšeme ve výrazech značku e v pro hranu e končící ve vrcholu v a e v pro hranu e začínající z v.

Petr Hliněný, FI MU Brno, 2014 9 / 19 FI: IB000: Toky v sítích Velikost toku v síti Značení: Pro jednoduchost píšeme ve výrazech značku e v pro hranu e končící ve vrcholu v a e v pro hranu e začínající z v. Definice 6.4. Tok v síti S = (D, z, s, w) je funkce f : E(D) R + 0 e E(D) : 0 f(e) w(e), v V (D), v z, s : f(e) = f(e). e v e v splňující (respektování kapacity) (zachování substance)

Petr Hliněný, FI MU Brno, 2014 9 / 19 FI: IB000: Toky v sítích Velikost toku v síti Značení: Pro jednoduchost píšeme ve výrazech značku e v pro hranu e končící ve vrcholu v a e v pro hranu e začínající z v. Definice 6.4. Tok v síti S = (D, z, s, w) je funkce f : E(D) R + 0 e E(D) : 0 f(e) w(e), v V (D), v z, s : f(e) = f(e). e v e v Velikost toku f je dána výrazem f = f(e) f(e). e z e z splňující (respektování kapacity) (zachování substance)

Velikost toku v síti Značení: Pro jednoduchost píšeme ve výrazech značku e v pro hranu e končící ve vrcholu v a e v pro hranu e začínající z v. Definice 6.4. Tok v síti S = (D, z, s, w) je funkce f : E(D) R + 0 e E(D) : 0 f(e) w(e), v V (D), v z, s : f(e) = f(e). e v splňující (respektování kapacity) Petr Hliněný, FI MU Brno, 2014 9 / 19 FI: IB000: Toky v sítích e v Velikost toku f je dána výrazem f = f(e) f(e). e z e z (zachování substance) Značení: Tok a kapacitu hran v obrázku sítě budeme zjednodušeně zapisovat ve formátu F/C, kde F je hodnota toku na hraně a C je její kapacita. 2/5 2/4 2/2 z 0/1 3/3 0/3 0/2 0/2 3/5 0/1 3/4 s

Petr Hliněný, FI MU Brno, 2014 10 / 19 FI: IB000: Toky v sítích 6.3 Nalezení maximálního toku Naším úkolem je najít co největší přípustný tok v dané síti. Pro jeho nalezení existují jednoduché a velmi rychlé algoritmy. Definice 6.5. Úloha hledání maximálního toku v síti S = (D, z, s, w). Úkolem je v síti S najít tok f ze zdroje z do stoku s podle Definice 9.4 takový, který maximalizuje velikost f.

Petr Hliněný, FI MU Brno, 2014 10 / 19 FI: IB000: Toky v sítích 6.3 Nalezení maximálního toku Naším úkolem je najít co největší přípustný tok v dané síti. Pro jeho nalezení existují jednoduché a velmi rychlé algoritmy. Definice 6.5. Úloha hledání maximálního toku v síti S = (D, z, s, w). Úkolem je v síti S najít tok f ze zdroje z do stoku s podle Definice 9.4 takový, který maximalizuje velikost f. Tok velikosti 5 uvedený v ukázce v předchozí části nebyl optimální, nebot v této síti najdeme i tok velikosti 6: 2/5 2/4 2/2 z 0/1 3/3 0/3 0/2 3/5 0/2 0/1 3/4 s

Petr Hliněný, FI MU Brno, 2014 10 / 19 FI: IB000: Toky v sítích 6.3 Nalezení maximálního toku Naším úkolem je najít co největší přípustný tok v dané síti. Pro jeho nalezení existují jednoduché a velmi rychlé algoritmy. Definice 6.5. Úloha hledání maximálního toku v síti S = (D, z, s, w). Úkolem je v síti S najít tok f ze zdroje z do stoku s podle Definice 9.4 takový, který maximalizuje velikost f. Tok velikosti 5 uvedený v ukázce v předchozí části nebyl optimální, nebot v této síti najdeme i tok velikosti 6: 2/5 3=2/4 2/2 z 0/1 3/3 1=0/3 0/2 0/2 4=3/5 0/1 Jak však poznáme, že větší tok již v dané síti neexistuje? 4=3/4 s

Petr Hliněný, FI MU Brno, 2014 11 / 19 FI: IB000: Toky v sítích Pojem řezu v síti Definice 6.6. Řez v síti S = (D, z, s, w) je podmnožina hran X E(D) taková, že v podgrafu D X (tj. po odebrání hran X z D) nezbude žádná orientovaná cesta ze z do s.

Petr Hliněný, FI MU Brno, 2014 11 / 19 FI: IB000: Toky v sítích Pojem řezu v síti Definice 6.6. Řez v síti S = (D, z, s, w) je podmnožina hran X E(D) taková, že v podgrafu D X (tj. po odebrání hran X z D) nezbude žádná orientovaná cesta ze z do s. Velikostí řezu X rozumíme součet kapacit hran z X, tj. X = e X w(e). 4 1 2 z 3 2 1 4 1 4 s

Petr Hliněný, FI MU Brno, 2014 11 / 19 FI: IB000: Toky v sítích Pojem řezu v síti Definice 6.6. Řez v síti S = (D, z, s, w) je podmnožina hran X E(D) taková, že v podgrafu D X (tj. po odebrání hran X z D) nezbude žádná orientovaná cesta ze z do s. Velikostí řezu X rozumíme součet kapacit hran z X, tj. X = e X w(e). 4 1 2 z 3 2 1 4 1 4 s Věta 6.7. Maximální velikost toku v síti je rovna minimální velikosti řezu.

Petr Hliněný, FI MU Brno, 2014 11 / 19 FI: IB000: Toky v sítích Pojem řezu v síti Definice 6.6. Řez v síti S = (D, z, s, w) je podmnožina hran X E(D) taková, že v podgrafu D X (tj. po odebrání hran X z D) nezbude žádná orientovaná cesta ze z do s. Velikostí řezu X rozumíme součet kapacit hran z X, tj. X = e X w(e). 4 1 2 z 3 2 1 4 1 4 s Věta 6.7. Maximální velikost toku v síti je rovna minimální velikosti řezu. V uvedeném obrázku nalezneme tok velikosti 5. Vyznačený řez má také velikost 5.

Petr Hliněný, FI MU Brno, 2014 12 / 19 FI: IB000: Toky v sítích Nenasycené cesty v síti Definice: Mějme sít S a v ní tok f. Nenasycená cesta P (v S vzhledem k f) je neorientovaná cesta v D mezi určenými vrcholy (obvykle ze z do s), tj. posloupnost navazujících libovolně orientovaných hran e 1, e 2,..., e m,

Petr Hliněný, FI MU Brno, 2014 12 / 19 FI: IB000: Toky v sítích Nenasycené cesty v síti Definice: Mějme sít S a v ní tok f. Nenasycená cesta P (v S vzhledem k f) je neorientovaná cesta v D mezi určenými vrcholy (obvykle ze z do s), tj. posloupnost navazujících libovolně orientovaných hran e 1, e 2,..., e m, kde f(e i ) < w(e i ) pro e i ve směru ze z do s a f(e j ) > 0 pro e j jinak. 3/4 1/2 1/1 2/3 2/4 z s rezerva kapacity: +1 +1 +1 +2 +2 > 0

Petr Hliněný, FI MU Brno, 2014 12 / 19 FI: IB000: Toky v sítích Nenasycené cesty v síti Definice: Mějme sít S a v ní tok f. Nenasycená cesta P (v S vzhledem k f) je neorientovaná cesta v D mezi určenými vrcholy (obvykle ze z do s), tj. posloupnost navazujících libovolně orientovaných hran e 1, e 2,..., e m, kde f(e i ) < w(e i ) pro e i ve směru ze z do s a f(e j ) > 0 pro e j jinak. 3/4 1/2 1/1 2/3 2/4 z s rezerva kapacity: +1 +1 +1 +2 +2 > 0 Hodnotě w(e i ) f(e i ) > 0 pro hrany e i ve směru z u do v a hodnotě f(e j ) > 0 pro hrany e j v opačném směru říkáme rezerva kapacity hran. Nenasycená cesta je tudíž cesta s kladnými rezervami kapacit všech hran.

Petr Hliněný, FI MU Brno, 2014 13 / 19 FI: IB000: Toky v sítích Metoda 6.8. Maximální tok vylepšováním nenasycených cest. Základní myšlenkou této jednoduché metody hledání maximálního toku v dané síti je prostě opakovaně vylepšovat tok podél nalezených nenasycených cest. 3/4 1/2 1/1 2/3 2/4 z s rezerva kapacity: +1 +1 +1 +2 +2 > 0

Petr Hliněný, FI MU Brno, 2014 13 / 19 FI: IB000: Toky v sítích Metoda 6.8. Maximální tok vylepšováním nenasycených cest. Základní myšlenkou této jednoduché metody hledání maximálního toku v dané síti je prostě opakovaně vylepšovat tok podél nalezených nenasycených cest. 3/4 1/2 1/1 2/3 2/4 z s rezerva kapacity: +1 +1 +1 +2 +2 > 0 min. rezerva r = +1 P z 4/4 2/2 0/1 1/3 3/4 s

Petr Hliněný, FI MU Brno, 2014 13 / 19 FI: IB000: Toky v sítích Metoda 6.8. Maximální tok vylepšováním nenasycených cest. Základní myšlenkou této jednoduché metody hledání maximálního toku v dané síti je prostě opakovaně vylepšovat tok podél nalezených nenasycených cest. 3/4 1/2 1/1 2/3 2/4 z s rezerva kapacity: +1 +1 +1 +2 +2 > 0 min. rezerva r = +1 P z 4/4 2/2 0/1 1/3 3/4 s Pro rekapitulaci, náš tok se vylepší následovně; pro hrany e i E(P ) ve směru ze z do s zvýšíme tok na f (e i ) = f(e i ) + r, pro hrany e j E(P ) ve směru ze s do z snížíme tok na f (e j ) = f(e j ) r. Výsledný tok f pak bude opět přípustný.

Petr Hliněný, FI MU Brno, 2014 14 / 19 FI: IB000: Toky v sítích z./4./3./2./1./1./4./1 Algoritmus 6.9. Ford Fulkersonův pro tok v síti. Vstup: Sít S = (D, z, s, w) podle Definice 9.3. Tok f (0, 0,... 0). Dále opakujeme následující: Prohledáváním grafu najdeme množinu U vrcholů D, do kterých se dostaneme ze z po nenasycených cestách. Pokud s U, necht P značí nalezenou nenasycenou cestu v S ze z do s. Zvětšíme tok f o minimální rezervu kapacity hran v P. Opakujeme kroky výše, dokud nenastane s U../2./4 s

z 0/4./4 0/3./3 0/2./2 0/1./1 0/1./1 0/4./4 Petr Hliněný, FI MU Brno, 2014 14 / 19 FI: IB000: Toky v sítích./1 0/1 Algoritmus 6.9. Ford Fulkersonův pro tok v síti. Vstup: Sít S = (D, z, s, w) podle Definice 9.3. Tok f (0, 0,... 0). Dále opakujeme následující:./2 0/2./4 0/4 Prohledáváním grafu najdeme množinu U vrcholů D, do kterých se dostaneme ze z po nenasycených cestách. Pokud s U, necht P značí nalezenou nenasycenou cestu v S ze z do s. Zvětšíme tok f o minimální rezervu kapacity hran v P. Opakujeme kroky výše, dokud nenastane s U. Výstup: Vypíšeme maximální tok f a také minimální řez jako množinu všech hran vedoucích z U do V (D) U. s tok = 0

z 0/4./4 0/3./3 0/2./2 0/1./1 0/1./1 0/4./4 Petr Hliněný, FI MU Brno, 2014 14 / 19 FI: IB000: Toky v sítích./1 0/1 Algoritmus 6.9. Ford Fulkersonův pro tok v síti. Vstup: Sít S = (D, z, s, w) podle Definice 9.3. Tok f (0, 0,... 0). Dále opakujeme následující:./2 0/2./4 0/4 Prohledáváním grafu najdeme množinu U vrcholů D, do kterých se dostaneme ze z po nenasycených cestách. Pokud s U, necht P značí nalezenou nenasycenou cestu v S ze z do s. Zvětšíme tok f o minimální rezervu kapacity hran v P. Opakujeme kroky výše, dokud nenastane s U. Výstup: Vypíšeme maximální tok f a také minimální řez jako množinu všech hran vedoucích z U do V (D) U. s nenasyceno tok = 0

z 0/4 1/4./4 0/3./3 0/2./2 0/1./1 0/1 1/1./1 0/4./4 Petr Hliněný, FI MU Brno, 2014 14 / 19 FI: IB000: Toky v sítích./1 0/1 Algoritmus 6.9. Ford Fulkersonův pro tok v síti. Vstup: Sít S = (D, z, s, w) podle Definice 9.3. Tok f (0, 0,... 0). Dále opakujeme následující:./2 0/2 1/2./4 0/4 Prohledáváním grafu najdeme množinu U vrcholů D, do kterých se dostaneme ze z po nenasycených cestách. Pokud s U, necht P značí nalezenou nenasycenou cestu v S ze z do s. Zvětšíme tok f o minimální rezervu kapacity hran v P. Opakujeme kroky výše, dokud nenastane s U. Výstup: Vypíšeme maximální tok f a také minimální řez jako množinu všech hran vedoucích z U do V (D) U. s nenasyceno tok = 01

z 0/4 1/4./4 0/3./3 0/2./2 0/1./1 0/1 1/1./1 0/4./4 Petr Hliněný, FI MU Brno, 2014 14 / 19 FI: IB000: Toky v sítích./1 0/1 Algoritmus 6.9. Ford Fulkersonův pro tok v síti. Vstup: Sít S = (D, z, s, w) podle Definice 9.3. Tok f (0, 0,... 0). Dále opakujeme následující:./2 0/2 1/2./4 0/4 Prohledáváním grafu najdeme množinu U vrcholů D, do kterých se dostaneme ze z po nenasycených cestách. Pokud s U, necht P značí nalezenou nenasycenou cestu v S ze z do s. Zvětšíme tok f o minimální rezervu kapacity hran v P. Opakujeme kroky výše, dokud nenastane s U. Výstup: Vypíšeme maximální tok f a také minimální řez jako množinu všech hran vedoucích z U do V (D) U. s nenasyceno tok = 01

z 0/4 1/4./4 0/3 3/3./3 0/2./2 0/1./1 0/1 1/1./1 0/4 3/4./4 Petr Hliněný, FI MU Brno, 2014 14 / 19 FI: IB000: Toky v sítích./1 0/1 Algoritmus 6.9. Ford Fulkersonův pro tok v síti. Vstup: Sít S = (D, z, s, w) podle Definice 9.3. Tok f (0, 0,... 0). Dále opakujeme následující:./2 0/2 1/2./4 0/4 3/4 Prohledáváním grafu najdeme množinu U vrcholů D, do kterých se dostaneme ze z po nenasycených cestách. Pokud s U, necht P značí nalezenou nenasycenou cestu v S ze z do s. Zvětšíme tok f o minimální rezervu kapacity hran v P. Opakujeme kroky výše, dokud nenastane s U. Výstup: Vypíšeme maximální tok f a také minimální řez jako množinu všech hran vedoucích z U do V (D) U. s nenasyceno tok = 01 4

z 0/4 1/4./4 0/3 3/3./3 0/2./2 0/1./1 0/1 1/1./1 0/4 3/4./4 Petr Hliněný, FI MU Brno, 2014 14 / 19 FI: IB000: Toky v sítích./1 0/1 Algoritmus 6.9. Ford Fulkersonův pro tok v síti. Vstup: Sít S = (D, z, s, w) podle Definice 9.3. Tok f (0, 0,... 0). Dále opakujeme následující:./2 0/2 1/2./4 0/4 3/4 Prohledáváním grafu najdeme množinu U vrcholů D, do kterých se dostaneme ze z po nenasycených cestách. Pokud s U, necht P značí nalezenou nenasycenou cestu v S ze z do s. Zvětšíme tok f o minimální rezervu kapacity hran v P. Opakujeme kroky výše, dokud nenastane s U. Výstup: Vypíšeme maximální tok f a také minimální řez jako množinu všech hran vedoucích z U do V (D) U. s nenasyceno tok = 01 4

z 0/4 1/4 2/4./4 0/3 3/3./3 0/2 1/2./2 0/1./1 0/1 1/1./1 0/4 3/4 4/4./4 Petr Hliněný, FI MU Brno, 2014 14 / 19 FI: IB000: Toky v sítích./1 0/1 Algoritmus 6.9. Ford Fulkersonův pro tok v síti. Vstup: Sít S = (D, z, s, w) podle Definice 9.3. Tok f (0, 0,... 0). Dále opakujeme následující:./2 0/2 1/2./4 0/4 3/4 4/4 Prohledáváním grafu najdeme množinu U vrcholů D, do kterých se dostaneme ze z po nenasycených cestách. Pokud s U, necht P značí nalezenou nenasycenou cestu v S ze z do s. Zvětšíme tok f o minimální rezervu kapacity hran v P. Opakujeme kroky výše, dokud nenastane s U. Výstup: Vypíšeme maximální tok f a také minimální řez jako množinu všech hran vedoucích z U do V (D) U. s nenasyceno tok = 01 45

z 0/4 1/4 2/4./4 0/3 3/3./3 0/2 1/2./2 0/1./1 U 1/1 0/1./1 0/4 3/4 4/4./4 Petr Hliněný, FI MU Brno, 2014 14 / 19 FI: IB000: Toky v sítích./1 0/1 Algoritmus 6.9. Ford Fulkersonův pro tok v síti. Vstup: Sít S = (D, z, s, w) podle Definice 9.3. Tok f (0, 0,... 0). Dále opakujeme následující:./2 0/2 1/2./4 0/4 3/4 4/4 Prohledáváním grafu najdeme množinu U vrcholů D, do kterých se dostaneme ze z po nenasycených cestách. Pokud s U, necht P značí nalezenou nenasycenou cestu v S ze z do s. Zvětšíme tok f o minimální rezervu kapacity hran v P. Opakujeme kroky výše, dokud nenastane s U. Výstup: Vypíšeme maximální tok f a také minimální řez jako množinu všech hran vedoucích z U do V (D) U. s nenasyceno nasyceno tok = 01 45

z 0/4 1/4 2/4./4 0/3 3/3./3 0/2 1/2./2 0/1./1 U 1/1 0/1./1 0/4 3/4 4/4./4 Petr Hliněný, FI MU Brno, 2014 14 / 19 FI: IB000: Toky v sítích./1 0/1 Algoritmus 6.9. Ford Fulkersonův pro tok v síti. Vstup: Sít S = (D, z, s, w) podle Definice 9.3. Tok f (0, 0,... 0). Dále opakujeme následující:./2 0/2 1/2./4 0/4 3/4 4/4 Prohledáváním grafu najdeme množinu U vrcholů D, do kterých se dostaneme ze z po nenasycených cestách. Pokud s U, necht P značí nalezenou nenasycenou cestu v S ze z do s. Zvětšíme tok f o minimální rezervu kapacity hran v P. Opakujeme kroky výše, dokud nenastane s U. Výstup: Vypíšeme maximální tok f a také minimální řez jako množinu všech hran vedoucích z U do V (D) U. s nenasyceno nasyceno tok = 01 45

Petr Hliněný, FI MU Brno, 2014 15 / 19 FI: IB000: Toky v sítích Důkaz správnosti Algoritmu 9.9: Pro každý tok f a každý řez X v síti S platí f X. Jestliže po zastavení algoritmu s tokem f nalezneme v síti S řez o stejné velikosti X = f, je jasné, že jsme našli maximální možný tok v síti S. (Pozor, zastavení algoritmu jsme zatím nezdůvodnili.)

Petr Hliněný, FI MU Brno, 2014 15 / 19 FI: IB000: Toky v sítích Důkaz správnosti Algoritmu 9.9: Pro každý tok f a každý řez X v síti S platí f X. Jestliže po zastavení algoritmu s tokem f nalezneme v síti S řez o stejné velikosti X = f, je jasné, že jsme našli maximální možný tok v síti S. (Pozor, zastavení algoritmu jsme zatím nezdůvodnili.) Takže dokažme, že po zastavení algoritmu nastane rovnost f = X, kde X je vypsaný řez mezi U a zbytkem grafu D. Vezměme tok f v S bez nenasycené cesty ze z do s. Pak množina U z algoritmu neobsahuje s. U z f(e) = w(e) s f(e) = 0

Důkaz správnosti Algoritmu 9.9: Pro každý tok f a každý řez X v síti S platí f X. Jestliže po zastavení algoritmu s tokem f nalezneme v síti S řez o stejné velikosti X = f, je jasné, že jsme našli maximální možný tok v síti S. (Pozor, zastavení algoritmu jsme zatím nezdůvodnili.) Takže dokažme, že po zastavení algoritmu nastane rovnost f = X, kde X je vypsaný řez mezi U a zbytkem grafu D. Vezměme tok f v S bez nenasycené cesty ze z do s. Pak množina U z algoritmu neobsahuje s. U z f(e) = w(e) s f(e) = 0 Nyní má každá hrana e U (odch. z U) plný tok f(e) = w(e) a každá hrana e U (přich. do U) tok f(e) = 0, takže f = e U f(e) e U f(e) = e U f(e) = e X w(e) = X. Petr Hliněný, FI MU Brno, 2014 15 / 19 FI: IB000: Toky v sítích

Petr Hliněný, FI MU Brno, 2014 16 / 19 FI: IB000: Toky v sítích Důsledky Ford Fulkersonova algoritmu Z důkazu Algoritmu 9.9 pak odvodíme několik zajímavých faktů: Pokud Algoritmus 9.9 vždy skončí, dokážeme tím i platnost Věty 9.7.

Petr Hliněný, FI MU Brno, 2014 16 / 19 FI: IB000: Toky v sítích Důsledky Ford Fulkersonova algoritmu Z důkazu Algoritmu 9.9 pak odvodíme několik zajímavých faktů: Pokud Algoritmus 9.9 vždy skončí, dokážeme tím i platnost Věty 9.7. Pro celočíselné kapacity hran sítě S Algoritmus 9.9 vždy skončí. 3/4 1/2 1/1 2/3 2/4 z s rezerva kapacity: +1 +1 +1 +2 +2 > 0

Petr Hliněný, FI MU Brno, 2014 16 / 19 FI: IB000: Toky v sítích Důsledky Ford Fulkersonova algoritmu Z důkazu Algoritmu 9.9 pak odvodíme několik zajímavých faktů: Pokud Algoritmus 9.9 vždy skončí, dokážeme tím i platnost Věty 9.7. Pro celočíselné kapacity hran sítě S Algoritmus 9.9 vždy skončí. 3/4 1/2 1/1 2/3 2/4 z s rezerva kapacity: +1 +1 +1 +2 +2 > 0 Pokud jsou kapacity hran sítě S celočíselné, opt. tok také vyjde celočíselně.

Petr Hliněný, FI MU Brno, 2014 17 / 19 FI: IB000: Toky v sítích 6.4 Zobecněné použití sítí 6.4 Zobecněné použití sítí Sítě s kapacitami vrcholů: U sítě můžeme zadat kapacity vrcholů, neboli kapacitní váhová funkce je dána jako w : E(D) V (D) R +. 5 4 3 5 2 a b z s 5 4 3 5 2 a b z s

6.4 Zobecněné použití sítí Sítě s kapacitami vrcholů: U sítě můžeme zadat kapacity vrcholů, neboli kapacitní váhová funkce je dána jako w : E(D) V (D) R +. 5 z 3 2 5 b 4 z 3 a 2 b 4 a 5 s 5 s Sítě s dolními kapacitami: Pro hrany sítě lze zadat také jejich minimální kapacity, tedy dolní meze přípustného toku, jako váhovou funkci l : E(D) R + 0. l(e) f(e) w(e) Petr Hliněný, FI MU Brno, 2014 17 / 19 FI: IB000: Toky v sítích

Petr Hliněný, FI MU Brno, 2014 18 / 19 FI: IB000: Toky v sítích Bipartitní párování Definice: Párování v (nyní bipartitním) grafu G je podmnožina hran M E(G) taková, že žádné dvě hrany z M nesdílejí koncový vrchol.

Petr Hliněný, FI MU Brno, 2014 18 / 19 FI: IB000: Toky v sítích Bipartitní párování Definice: Párování v (nyní bipartitním) grafu G je podmnožina hran M E(G) taková, že žádné dvě hrany z M nesdílejí koncový vrchol. Metoda 6.11. Nalezení bipartitního párování Pro daný bipartitní graf G s vrcholy rozdělenými do množin A, B sestrojíme sít S následovně: A B 1 1 z s 1 1

Petr Hliněný, FI MU Brno, 2014 18 / 19 FI: IB000: Toky v sítích Bipartitní párování Definice: Párování v (nyní bipartitním) grafu G je podmnožina hran M E(G) taková, že žádné dvě hrany z M nesdílejí koncový vrchol. Metoda 6.11. Nalezení bipartitního párování Pro daný bipartitní graf G s vrcholy rozdělenými do množin A, B sestrojíme sít S následovně: A B 1 1 z s 1 1 Hrany sítě S orientujeme od zdroje do stoku a přiřadíme jim kapacity 1.

Petr Hliněný, FI MU Brno, 2014 18 / 19 FI: IB000: Toky v sítích Bipartitní párování Definice: Párování v (nyní bipartitním) grafu G je podmnožina hran M E(G) taková, že žádné dvě hrany z M nesdílejí koncový vrchol. Metoda 6.11. Nalezení bipartitního párování Pro daný bipartitní graf G s vrcholy rozdělenými do množin A, B sestrojíme sít S následovně: A B 1 1 z s 1 1 Hrany sítě S orientujeme od zdroje do stoku a přiřadíme jim kapacity 1. Nyní najdeme (celočíselný) maximální tok v S Algoritmem 9.9. Do párování vložíme ty hrany grafu G, které mají nenulový tok.

Petr Hliněný, FI MU Brno, 2014 19 / 19 FI: IB000: Toky v sítích Výběr různých reprezentantů Definice: Necht M 1, M 2,..., M k jsou neprázdné množiny. Systémem různých reprezentantů množin M 1, M 2,..., M k nazýváme takovou posloupnost různých prvků (x 1, x 2,..., x k ), že x i M i pro i = 1, 2,..., k.

Petr Hliněný, FI MU Brno, 2014 19 / 19 FI: IB000: Toky v sítích Výběr různých reprezentantů Definice: Necht M 1, M 2,..., M k jsou neprázdné množiny. Systémem různých reprezentantů množin M 1, M 2,..., M k nazýváme takovou posloupnost různých prvků (x 1, x 2,..., x k ), že x i M i pro i = 1, 2,..., k. Věta 6.12. (Hall) Necht M 1, M 2,..., M k jsou neprázdné množiny. Pro tyto množiny existuje systém různých reprezentantů, právě když platí J {1, 2,..., k} : M j J, j J neboli pokud sjednocení libovolné skupiny z těchto množin má alespoň tolik prvků, kolik množin je sjednoceno. Důkaz lze podat konstrukcí vhodné sítě podobné té v Metodě 9.11:

Petr Hliněný, FI MU Brno, 2014 19 / 19 FI: IB000: Toky v sítích Výběr různých reprezentantů Definice: Necht M 1, M 2,..., M k jsou neprázdné množiny. Systémem různých reprezentantů množin M 1, M 2,..., M k nazýváme takovou posloupnost různých prvků (x 1, x 2,..., x k ), že x i M i pro i = 1, 2,..., k. Věta 6.12. (Hall) Necht M 1, M 2,..., M k jsou neprázdné množiny. Pro tyto množiny existuje systém různých reprezentantů, právě když platí J {1, 2,..., k} : M j J, j J neboli pokud sjednocení libovolné skupiny z těchto množin má alespoň tolik prvků, kolik množin je sjednoceno. Důkaz lze podat konstrukcí vhodné sítě podobné té v Metodě 9.11: Použijí se speciální vrcholy u a v odpovídající zdroji a stoku; další vrcholy reprezentují (zleva) množiny a (vpravo) prvky naší úlohy a

Petr Hliněný, FI MU Brno, 2014 19 / 19 FI: IB000: Toky v sítích Výběr různých reprezentantů Definice: Necht M 1, M 2,..., M k jsou neprázdné množiny. Systémem různých reprezentantů množin M 1, M 2,..., M k nazýváme takovou posloupnost různých prvků (x 1, x 2,..., x k ), že x i M i pro i = 1, 2,..., k. Věta 6.12. (Hall) Necht M 1, M 2,..., M k jsou neprázdné množiny. Pro tyto množiny existuje systém různých reprezentantů, právě když platí J {1, 2,..., k} : M j J, j J neboli pokud sjednocení libovolné skupiny z těchto množin má alespoň tolik prvků, kolik množin je sjednoceno. Důkaz lze podat konstrukcí vhodné sítě podobné té v Metodě 9.11: Použijí se speciální vrcholy u a v odpovídající zdroji a stoku; další vrcholy reprezentují (zleva) množiny a (vpravo) prvky naší úlohy a ostatní hrany mimo zdrojové a stokové (kapacity 1) vždy spojují množinu M j se všemi jejími prvky x i.