Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 1 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce 10 1 / 35 TOKY V.

Slides:



Advertisements
Podobné prezentace
Grafové algoritmy.
Advertisements

LOGISTICKÉ SYSTÉMY 14/15.
NEJKRATŠÍ CESTY MEZI VŠEMI UZLY
PLANARITA A TOKY V SÍTÍCH
Dopravní úloha Literatura Kosková I.: Distribuční úlohy I.
Stavový prostor. • Existují úlohy, pro které není k dispozici univerzální algoritmus řešení • různé hry • problém batohu, problém obchodního cestujícího.
Dualita úloh lineárního programování a analýza citlivosti
Diskrétní matematika Opakování - příklady.
Aplikace teorie grafů Základní pojmy teorie grafů
Medians and Order Statistics Nechť A je množina obsahující n různých prvků: Definice: Statistika i-tého řádu je i-tý nejmenší prvek, tj., minimum = statistika.
FORMALIZACE PROJEKTU DO SÍŤOVÉHO GRAFU
Lineární programování Simplexový algoritmus
LOGISTICKÉ SYSTÉMY 7/14.
LOGISTICKÉ SYSTÉMY 8/14.
SÍŤOVÁ ANALÝZA.
5. Přednáška funkce BRVKA Johann P.G.L. Dirichlet (1805 – 1859)
TI 6.1 STROMY A KOSTRY Stromy a kostry. TI 6.2 Stromy a kostry Seznámíme se s následujícími pojmy: kostra grafu, cyklomatické číslo grafu, hodnost grafu.
REDUKCE DAT Díváme-li se na soubory jako na text, pak je tento text redundantní. Redundance vyplývá z:  některé fráze nebo slova se opakují  existuje.
TI 7.1 NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6. TI 7.2 Nejkratší cesty z jednoho uzlu Seznámíme se s následujícími pojmy: w-vzdálenost (vzdálenost na.
ORIENTOVANÉ GRAFY V této části se seznámíme s následujícími pojmy:
Formulace a vlastnosti úloh lineárního programování
Stromy.
Fakulta životního prostředí Katedra informatiky a geoinformatiky
Funkce více proměnných.
TEORIE HER.
VLASTNOSTI GRAFŮ Vlastnosti grafů - kap. 3.
Matematické metody optimalizace Tomáš Vaníček Katedra inženýrské informatiky Stavební fakulta ČVUT Thákurova 7, Praha 6 Dejvice, b407
Gradientní metody Metoda největšího spádu (volný extrém)
hledání zlepšující cesty
Vektorové prostory.
Dostupné z Metodického portálu ISSN: , financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze.
Teorie portfolia Kvantifikace množiny efektivních portfolií.
Simplexová metoda pro známé počáteční řešení úlohy LP
Lineární programování - charakteristika krajních bodů
Lineární rovnice s absolutní hodnotou II.
Mechanika tuhého tělesa
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 1 / 15Doc. Josef Kolář (ČVUT)Prohledávání stavového prostoruGRA, LS 2013/14, Lekce 11.
Sylabus V rámci PNV budeme řešit konkrétní úlohy a to z následujících oblastí: Nelineární úlohy Řešení nelineárních rovnic Numerická integrace Lineární.
Planarita a toky v sítích
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 1 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce 12 1 / 21 TURINGOVY.
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 1 / 15Doc. Josef Kolář (ČVUT)NP-úplné problémyGRA, LS 2012/13, Lekce 13 1 / 14 NP-ÚPLNÉ.
VLASTNOSTI GRAFŮ Doc. RNDr. Josef Kolář, CSc
STROMY A KOSTRY Doc. RNDr. Josef Kolář, CSc
(řešení pomocí diskriminantu)
Kvadratické nerovnice
Operace s vektory Autor: RNDr. Jiří Kocourek.
Jak je to s izomorfismem
17.
MME41 Ekonomicko-matematické metody 4 Prof. RNDr. Jaroslav Ramík, CSc.
EMM21 Ekonomicko-matematické metody 2 Prof. RNDr. Jaroslav Ramík,CSc.
Soustavy lineárních rovnic Matematika 9. ročník Creation IP&RK.
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Řešení rozvozních úloh Předmět: Teorie dopravy - cvičení Ing. František Lachnit, Ph.D.
TI 3.1 UPOZORNĚNÍ Reprezentace grafů, odst. 4.1 dne (za týden) bude X36TIN dvakrát dne (za 5 týdnů) bude X36OSY dvakrát skripta.
NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6.
Simplexová metoda.
Definiční obor a obor hodnot
STROMY A KOSTRY Stromy a kostry - odst. 3.2.
Znázornění dopravní sítě grafem a kostra grafu Předmět: Teorie dopravy - cvičení Ing. František Lachnit, Ph.D.
Operační výzkum Lineární programování Dopravní úloha nevyrovnaná.
Maximální propustnost rovinné dopravní sítě
MINIMÁLNÍ KOSTRA V GRAFU
1 Lineární (vektorová) algebra
PLANARITA A TOKY V SÍTÍCH
Množina bodů dané vlastnosti
Toky v sítích.
Výuka matematiky v 21. století na středních školách technického směru
Konstruktivní úlohy na rotačních plochách
Množina bodů dané vlastnosti
Soustavy lineárních rovnic
Soustava dvou lineárních rovnic se dvěma neznámými
Transkript prezentace:

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 1 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce 10 1 / 35 TOKY V SÍTÍCH Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2013/2014, Lekce 10 Doc. Josef Kolář (ČVUT)Toky v sítích II

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 2 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce 10 2 / 35 Výsledky midtermu Po + UT 1 x 4b + 1 x 7b + 1 x x 14b

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 3 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce 10 3 / 35 Toky v sítích Seznámíme se s následujícími pojmy: síť, kapacita hran, tok v síti, velikost toku maximální tok, řez sítě, kapacita řezu, zlepšující cesta algoritmus Forda-Fulkersona, sítě s omezeným tokem párování, maximální párování, přiřazovací úloha Skripta kap. 8, str. 148 – 155

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 4 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce 10 4 / 35 Síť S =  G,q,s,t  G =  H, U  je orientovaný graf q: H  N je kapacita hran, q(u,v) = q uv s  U je zdroj sítě S, t  U je spotřebič sítě S Definice sítě (Přípustným) tokem v síti S je přiřazení f: H  Z splňující podmínky: 0  f(u,v)  q(u,v) pro všechny hrany (u,v)  H  (u,v)  H f(u,v) -  (v,u)  H f(v,u) = 0 pro všechny uzly u  U, u  s,t Velikost |f| toku f je rozdíl  (s,v)  H f(s,v) -  (v,s)  H f(v,s) =  (v,t)  H f(v,t) -  (t,v)  H f(t,v)  0 t

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 5 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce 10 5 / 35 Jaká je maximální velikost s  t toku v síti? Jak se maximální velikost toku určí? Jak je maximální tok rozložen do jednotlivých hran? zdroje spotřebiče st Variantní zadání: sítě s více zdroji a spotřebiči sítě s omezenou kapacitou uzlů sítě s omezeným minimálním tokem (ukážeme později) 0  r(u,v)  f(u,v)  q(u,v) sítě s oceněným tokem c(f) =  f(u,v). c(u,v) (  (u,v)  H) cena toku hledá se (přípustná) cirkulace s minimální cenou Základní úlohy na síti

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 6 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce 10 6 / 35 Řez sítě - hranový řez, který odděluje zdroj s od spotřebiče t {U s, U t } - odpovídající rozklad množiny uzlů H(U s  U t ) - hranový řez určený rozkladem uzlů V: Pro libovolný tok f a řez sítě H(U s  U t ) platí |f|  q(U s  U t ) Kapacita řezu sítě: q(U s  U t ) =  q(u,v) přes hrany (u,v), u  U s, v  U t UsUs UtUt Maximální tok a řezy sítě

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 7 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce 10 7 / 35 Velikost toku tedy nepřekročí kapacitu (žádného) řezu sítě. Jak poznáme, že daný tok je maximální? ++ ++ -- -- ++ V: Tok f je maximálním tokem v síti S=G, q, s, t  neexistuje (neorientovaná) cesta (tzv. zlepšující cesta) P=u 0,u 1,...,u n , u 0 =s, u n =t taková, že platí: f(u i, u i+1 ) < q(u i, u i+1 ) pro hrany (u i, u i+1 )H (s  t) f(u i+1, u i ) > 0 pro hrany (u i+1, u i )H (s  t) Zvýšení toku podél zlepšující cesty:  a = min(q(u i, u i+1 ) - f(u i, u i+1 )) b = min(f(u i+1, u i ))  = min ( a,  b ) Řešení základní úlohy

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 8 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce 10 8 / 35 Algoritmus Forda-Fulkersona V: (max flow - min cut) Velikost maximálního toku sítě je rovna kapacitě jejího minimálního řezu. Ford-Fulkerson (S) 1for ( Edge (u,v) in H(G) ) f(u,v) = 0; 2while ( NajdiCestu(S) ) ZvyšTok(S); 3 return f;

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 9 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce 10 9 / 35 boolean NajdiCestu (Node s) { 1 for ( Node u in U(G) ) stav[u]=FRESH; 2 p[s] = +s; d[s] =  ; stav[s] = OPEN; 3 do { u = "libovolný otevřený uzel"; 4 stav[u] = CLOSED; 5 for ( Node v in  (u) ) { 6 if ( (stav[v]==FRESH) && (f(u,v)<q(u,v)) ) { 7 stav[v]=OPEN; p[v]=+u; d[v]=min(d[u],q(u,v)-f(u,v)); 8 } } 9 for ( Node v in  -1 (u) ) { 10 if (stav[v]==FRESH) && (f(v,u)>0) ) { 11 stav[v]=OPEN; p[v]=-u; d[v]=min(d[u],f(v,u)); 12 } } 11 } while ( ( "neexistuje otevřený uzel" ) || (u == t) ); 12 return (u == t); 13 } NajdiCestu hledá zlepšující cestu prohledáváním sítě d[u] průběžně počítané , stav[u], p[u] (+ pro , - pro ) Algoritmus Forda-Fulkersona

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 10 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 void ZvyšTok (Node s) { 1 x = t;  = d[t]; 2 do { v = x; sgn = p[v]; u = abs(sgn); 3 if (sgn>0) f(u,v) +=  ; 4 else f(v,u) -=  ; 5 x = u; 6 } while ( v==s ); } ? Složitost ? NajdiCestu... O(|U|+|H|)ZvyšTok... O(|U|) ? Celý algoritmus ? O(|U|. |H|**2), O(|U|**2. |H|), O(|U|**3) Další zrychlení pro speciální případy (planární sítě) O(|U| 2 )... až na O(|U|. lg|U|) Algoritmus Forda-Fulkersona ts x=vu ++ u -- u ++

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 11 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 Příklad 3 z kontrolní otázky s2 t1 t2 s1 s t 9

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 12 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 4/4 8/4 6/ /4 s2 t1 t2 s1 s t Příklad 3 z kontrolní otázky 10.1

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 13 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 Příklad 3 z kontrolní otázky /4 8/4 6/ /68/66/6 9/6 10/4 s2 t1 t2 s1 s t

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 14 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 4/4 8/7 6/4 2 5 / / /68/66/6 9/9 10/7 s2 t1 t2 s1 s t Příklad 3 z kontrolní otázky 10.1

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 15 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 4/4 8/8 6/5 2 5 / / /68/66/6 9/9 10/8 s2 t1 t2 s1 s t Příklad 3 z kontrolní otázky 10.1

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 16 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 4/4 8/8 6/5 2 5 / / /68/66/6 9/9 10/8 s2 t1 t2 s1 s t Příklad 3 z kontrolní otázky 10.1

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 17 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 4/4 8/8 6/5 2 5 /5 4 3/1 4 / /68/66/6 9/9 10/8 s2 t1 t2 s1 s t Příklad 3 z kontrolní otázky 10.1

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 18 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 4/4 8/8 6/5 2 5 /5 4 3/3 4 / /3 10/68/86/6 9/9 10/8 s2/ 13 t1/ 8 t2/ 9 s1/ 4 s t q(H s x H t )=17 Příklad 3 z kontrolní otázky 10.1

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 19 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 Přípustný tok hranou (u,v) musí splňovat podmínku 0 ≤ r(u,v) ≤ f(u,v) ≤ q(u,v) Metoda řešení: převod na základní úlohu s t  r1/q1 r2/q2 r3/q3 r4/q4 r1 r4 r1 r3 r2 q1-r1 q2-r2 q3-r3 q4-r4 r4 r3 s's't't' Sítě s omezeným minimálním tokem

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 20 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 ? Co dál ? Nalezneme maximální tok s'  t'. ?Nasycuje nově přidané hrany? ANO – vrátíme se do původní sítě, kde už máme přípustný tok a zlepšujeme jej standardně podél zlepšujících cest (ale nesmí klesnout pod hodnotu omezení ve hranách, kde to je požadováno!!!) NE - úloha nemá řešení Sítě s omezeným minimálním tokem Max flow – min cut teorém platí, pokud upravíme definici kapacity hranového řezu (odečítají se minima toku ve směru t  s) q(U s  U t ) =  q(u,v) -  r(x,y), kde (u,v)  U s  U t, (x,y)  U t  U s

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 21 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 Sítě se zápornými toky: r(u,v)<0 nebo i q(u,v)<0 pro r(u,v)  q(u,v)  0 obrátíme orientaci hrany (u,v) na (v,u) a určíme meze 0  -q(v,u)  -r(v,u) pro r(u,v) < 0 < q(u,v) přidáme opačně orientovanou hranu (v,u) s kapacitou q(v,u) = -r(u,v), minimum v obou hranách bude 0 Tok v neorientované síti: předp. nulový minimální tok neorientovanou hranu nahradíme dvojicí opačně orientovaných hran se stejnou kapacitou q(u,v) = q(v,u) výsledný tok je rozdílem toků a má směr většího ze dvou Další varianty sítě -3 / -11 / 3-3 /

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 22 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 Cirkulace splňuje podmínku  (u,v)  H f(u,v) -  (v,u)  H f(v,u) = 0 pro všechny uzly u  U (předpokládáme síť s omezením 0  r(u,v)  f(u,v)  q(u,v) ) Cirkulace v síti Základní otázka – KDY existuje přípustná cirkulace? Právě tehdy, když každý hranový řez má nezápornou kapacitu q(U1  U2) =  (u,v)  U1  U2 q(u,v) -  (x,y)  U2  U1 r(x,y)  0, Interpretace: "může odtéct aspoň tolik, kolik musí přitéct" pro konkrétní tok (cirkulaci) je pochopitelně  f(u,v) -  f(x,y) = 0 u

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 23 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 Algoritmus určení přípustné cirkulace Vstup: síť S s omezeními r (minimální tok) a q (kapacita), f je libovolná cirkulace v síti (např. nulová) 1.Najdeme hranu (u,v) s nepřípustným tokem, pokud neexistuje, cirkulace je přípustná - STOP. 2.a) je-li f(u,v) < r(u,v), položíme  =r(u,v)-f(u,v) b) hledáme zlepšující cestu C(v  u), pokud neexistuje, pak přípustná cirkulace neexistuje - STOP c) zvýšíme cirkulaci kružnicí C  (u,v) pro (u,v) uvažujeme kapacitu , pokračujeme krokem 1. 3.a) je-li f(u,v) > q(u,v), položíme  =f(u,v)-q(u,v) b) hledáme zlepšující cestu C(u  v), pokud neexistuje, pak přípustná cirkulace neexistuje - STOP c) zvýšíme cirkulaci kružnicí C  (v,u) pro (v,u) uvažujeme kapacitu , pokračujeme krokem 1. Určení nějaké přípustné cirkulace

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 24 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 Hledání přípustné cirkulace - ilustrace Situace podle bodu 2: tok f(u,v) pod dolní mezí r(u,v), f(u,v) < r(u,v) tok hranou (u,v) zvyšujeme o hodnotu  =r(u,v)-f(u,v) >0 u v Situace podle bodu 3: tok f(u,v) nad kapacitou q(u,v) f(u,v) > q(u,v) tok hranou (u,v) snižujeme o hodnotu  =f(u,v)-q(u,v) > 0 u v orientace zvýšení cirkulace

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 25 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 Opět: převodem na základní úlohu Variantní určení přípustné cirkulace 1/5 3/5 4/6 2/6 4/6 2/6 1/4 2/4 (4+2)-(1+3)= 2 > 0 (1+2)-(4+2)= -3 < 0 s t 2 3 Spočteme rozdíly dolních mezí toku vystupující minus vstupující hrany Kladné uzly napojíme na t, do záporných vedeme z s

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 26 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 Opět: převodem na základní úlohu Variantní určení přípustné cirkulace 1/5 3/5 4/6 2/6 4/6 2/6 1/4 2/4 s t 2 3 Určíme nové kapacity q’(u,v) = q(u,v)-r(u,v) Opakujeme pro všechny uzly i hrany Nalezneme maximální s  t tok

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 27 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 Variantní určení přípustné cirkulace 1/5 3/5 4/6 2/6 4/6 2/6 1/4 2/4 s t 2 3 Dostali jsme maximální tok, který saturuje přidané hrany? Nalezneme maximální s  t tok

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 28 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 Variantní určení přípustné cirkulace 1/5 3/5 4/6 2/6 4/6 2/6 1/4 2/4 s t 2 3 Určíme nový tok přičtením dolní meze toku f’(u,v) = f(u,v)+r(u,v) Provedeme pro všechny hrany Odstraníme s, t a všechny přidané hrany

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 29 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 Variantní určení přípustné cirkulace 1/5 3/5 4/6 2/6 4/6 2/6 1/4 2/ Získali jsme přípustnou cirkulaci

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 30 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 Nejlevnější cirkulace S – síť s kapacitou q, dolní mezí toku r a jednotkovou cenou toku c: H  Z (cena může být i záporná) Cena cirkulace f:C(f) =  (u,v)  H f(u,v).c(u,v) Zlepšující kružnice – definuje se analogicky jako zlepšující cesta: má jednu ze dvou možných orientací hrany ve směru (vpřed) musí mít rezervu q(u,v) – f(u,v) > 0 hrany proti směru (vzad) musí mít rezervu f(u,v) – r(u,v) > 0 hrana vpřed hrana vzad

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 31 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 Nejlevnější cirkulace Cena zlepšující kružnice – je rovna součtu jednotkových cen hran vpřed minus součet jednotkových cen hran vzad. Je-li cena zlepšující kružnice p a změníme-li tok podle ní o hodnotu , pak celková cena cirkulace vzroste o hodnotu .p. Věta Přípustná cirkulace f je nejlevnější cirkulací v síti S právě tehdy, když v síti S neexistuje vzhledem k cirkulaci f žádná zlepšující kružnice se zápornou cenou. Přírůstková síť S f vzhledem k toku f má stejné uzly jako S a hrany H' pro (u,v)  H: f(u,v) < q(u,v) je (u,v)  H' a má kapacitu q’(u,v) = q(u,v) - f(u,v) pro (u,v)  H: f(u,v) > r(u,v) je (v,u)  H' a má kapacitu q’(v,u) = f(u,v) - r(u,v) Zlepšující cesta (kružnice) v S = orientovaná cesta (cylus) v S'

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 32 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 Algoritmus nalezení nejlevnější cirkulace 1.Nalezneme přípustnou cirkulaci f v síti S, pokud neexistuje, končíme. 2.Sestrojíme přírůstkovou síť S f vzhledem k cirkulaci f. 3.Jednotkové ceny považujeme za délky hran v síti S f a najdeme zde cyklus se zápornou délkou. Pokud neexistuje, f je nejlevnější cirkulace. 4.V síti S sestrojíme zlepšující kružnici odpovídající nalezenému cyklu, provedeme úpravu cirkulace podél této kružnice a pokračujeme krokem 2.

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 33 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 Aplikace toků - maximální párování Párování v grafu - "nezávislá" podmnožina hran (žádné dvě nemají společný uzel). Perfektní párování pokrývá všechny uzly. Maximální párování pokrývá co nejvíce uzlů. Při ohodnocených hranách můžeme hledat nejlevnější maximální párování. Nejdražší párování má největší součet cen.

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 34 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 Přiřazovací úloha - určit nejlevnější perfektní párování v úplném bipartitním grafu K n,n. Příklad na maximální párování v neorientovaném bipartitním grafu G s rozkladem uzlů U = X  Y X Y původní graf Nalezneme maximální tok pomocí algoritmu Ford-Fulkerson – získáme maximální párování (hrany s nenulovým tokem). s t Úlohy na párování

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 35 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 Kontrolní otázky 10.1Určete maximální tok ze zdrojů do spotřebičů v sítích G 1 až G 3. Dvojitě vytažené uzly v síti G 3 mají kapacitu omezenu uvedenou hodnotou.

Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 36 / 15Doc. Josef Kolář (ČVUT)Toky v sítích IIGRA, LS 2013/14, Lekce / 35 Kontrolní otázky 10.2Předpokládejte, že síť má tvar kořenového stromu, zdroj sítě je umístěn v kořeni s. Navrhněte efektivní algoritmus, který pro každý list u i stromu uvažovaný jako jediný spotřebič určí maximální tok s  u i Předpokládejte, že síť má tvar kořenového stromu, zdroj sítě je umístěn v kořeni s. Navrhněte efektivní algoritmus pro určení takových minimálních kapacit jednotlivých hran, které zajistí, že do všech listů {u i } stromu lze současně dopravit maximální tok velikosti 1.