PLANARITA A TOKY V SÍTÍCH Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2010/2011, Lekce 9 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 49 1 / 25 15
Separabilita a planarita Seznámíme se s následujícími pojmy: hranový řez artikulace neseparabilní graf planární graf Eulerova formule základní neplanární grafy homeomorfismus Skripta odst. 3.3, str. 58 63 Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 2 / 15 25
Separabilita a planarita Jak rozdělit graf na dvě části odebráním hran? Hranový řez... minimální S H: h(g - S) = h(g) - 1 Artikulace grafu... u U: G - {u} má více komponent než G G S 2 S 3 S 5 S 1 u S 4 G-{S i } Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 3 / 15 25
Vlastnosti hranových řezů a artikulací Množina hran incidujících s uzlem u souvislého grafu je jeho hranovým řezem, právě když u není artikulací. Hranový řez obsahuje alespoň jednu větev každé kostry.? Hranovéřezy stromů, kružnic, E-grafů...? Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 4 / 15 25
Jak hledat hranové řezy? Začneme rozkladem U = U 1 U 2 takovým, že podgrafy indukované množinami uzlů U 1 a U 2 jsou souvislé. H = H(U 1 x U 1 ) H(U 2 x U 2 ) H(U 1 x U 2 ) Fundamentální soustava hranových řezů / kružnic Neseparabilní graf: pro G 1 G (G 1 obsahuje aspoň dva uzly) mají G 1 a G-G 1 alespoň dva uzly společné Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 5 / 15 25
Planární grafy Planární graf... lze nakreslit v rovině bez křížení hran? Je K 4 planární?? a co K 5?? a K 3,3? Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 6 / 15 25
Eulerova formule V: Nechť G = H,U, ρ je (souvislý) planární graf. Potom platí H - U + 2 = r (Eulerova formule) kde r je počet stěn grafu G (včetně vnější). Jinak řečeno: r = µ(g)+1 H = 18 U = 13 r = 8 8 = 18-13 + 2 O 1 O 5 O 2 O 3 O 4 O 6 O 8 O 7 Důkaz: indukcí podle r Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 7 / 15 25
Vlastnosti planárních grafů Důsledek: Je-li každá stěna planárního grafu ohraničena kružnicí o k hranách, pak H = k. ( U -2) / (k-2) D: r= H - U +2, r.k = k. H -k. U +2k = 2. H k.( U -2) = H.(k-2) Takže: H 3. ( U - 2) (pro k=3) H 2. ( U - 2) pokud G neobsahuje K 3 planární grafy jsou řídké! K 5 a K 3,3 jsou neplanární (základní neplanární grafy) Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 8 / 15 25
Kuratowského věta V: (Kuratowski) Graf G je planární neobsahuje podgraf homeomorfní s K 5 a K 3,3. Homeomorfismus G 1 ~ G 2... jsou izomorfní nebo se jimi stanou po provedení půlení hran v jednom nebo obou Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 9 / 15 25
Kontrolní otázky 8.8 Charakterizujte neorientovaný graf, jehož každý uzel stupně většího než 1 je jeho artikulací. 8.9 Charakterizujte neorientovaný graf, jehož každý hranovýřez je tvořen pouze jednou hranou. 8.10 Dokažte, že každý hranový řez má s každou kostrou grafu alespoň jednu společnou hranu. 8.11 Jak se mohou změnit hodnoty charakteristických čísel hodnost h(g), cyklomatické číslo µ(g), nezávislost α(g), dominance β(g) a chromatickéčíslo χ(g) pokud v grafu G provedeme rozpůlení jedné hrany? 8.12 Nalezněte neorientovaný graf s co nejmenším počtem hran, který je neplanární a má průměr roven 4. 8.13 Mějme dvojici homeomorfních grafů G1 a G2. Existuje nějaký vztah mezi jejich hodnostmi h(g1) a h(g2) nebo jejich cyklomatickými čísly µ(g1) a µ(g2)? 8.14 Určete všechny neizomorfní faktory úplného grafu s pěti uzly K 5, které mají tři nebo čtyři hrany a neobsahují žádnou kružnici. Tyto faktory rozdělte do skupin vzájemně homeomorfních grafů. 8.15 Nechť T1 a T2 jsou dva homeomorfní neorientované stromy. Co bude platit pro soubory stupňů těchto dvou stromů? Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 10 / 15 25
TOKY V SÍTÍCH I Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 11 / 15 25
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) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 12 / 15 25
Definice sítě Síť S = G,q,s,t G = H, U je orientovaný graf q: H Z + je kapacita hran, q(u,v) = q uv s U je zdroj sítě S, t U je spotřebič sítě S (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 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 Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 13 / 15 25
Základní úlohy na síti Jaká je maximální velikost s t toku v síti? Jak se maximální tok určí? Jak je maximální tok rozložen do jednotlivých hran? zdroje spotřebiče Variantní zadání: sítě s více zdroji a spotřebiči sítě s omezenou kapacitou uzlů s t sítě s omezeným minimálním tokem (ukážeme později) sítě s oceněným tokem 0 r(u,v) f(u,v) q(u,v) c(f) = f(u,v). c(u,v) ( (u,v) H) - cena toku hledá se (přípustná) cirkulace s minimální cenou Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 14 / 15 25
Maximální tok a řezy sítě Řez sítě - hranový řez, který oddělí zdroj s a spotřebič t {U s, U t } - odpovídající rozklad množiny uzlů H(U s U t ) - hranový řez určený rozkladem uzlů Kapacita řezu sítě: q(u s U t ) = q(u,v) přes hrany (u,v), U t u U s, v U t U s V: Pro libovolný tok f a řez sítě H(U s U t ) platí f q(u s U t ) Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 15 / 15 25
Řešení základní úlohy 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 ) +δ +δ -δ -δ +δ Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 16 / 15 25
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) 1 for ( Edge (u,v) in H(G) ) f(u,v) = 0; 2 while ( NajdiCestu(S) ) ZvyšTok(S); 3 return f; Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 17 / 15 25
Algoritmus Forda-Fulkersona 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 ) 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 } Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 18 / 15 25
Algoritmus Forda-Fulkersona 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 ); } u ux=v x=v u x=v s +δ -δ +δ t? 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 ) Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 19 / 15 25
Sítě s omezeným minimálním tokem Metoda řešení: převod na základní úlohu r1/q1 q1-r1 q4-r4 r4/q4 r4 s q3-r3 r3/q3 t r3 r1 r1 q2-r2 r2/q2 r4 r2 r3 r2 s' t' Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 20 / 15 25
Sítě s omezeným minimálním tokem? Co dál? Nalezneme maximální tok s' t'.?nasycuje nově přidané hrany? ANO - 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í Úprava definice kapacity hranového řezu (odečíst minima ve směru t s) kde (u,v) U s U t, (x,y) U t U s q(u s U t ) = q(u,v) - r(x,y), Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 21 / 15 25
Další varianty sítě 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), minima v obou 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 Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 22 / 15 25
Cirkulace v síti 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) ) Základní otázka KDY existuje přípustná cirkulace? Právě tehdy, když každý hranový řez má nezápornou kapacitu q(u1 U2) = q(u,v) - (u,v) U1 U2 (x,y) U2 U1 r(x,y) 0, "může odtéct aspoň tolik, kolik musí přitéct" pro konkrétní tok je f(u,v) - f(x,y) = 0 Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 23 / 15 25
Hledání přípustné cirkulace 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) ) Základní otázka KDY existuje přípustná cirkulace? Právě tehdy, když každý hranový řez má nezápornou kapacitu q(u1 U2) = q(u,v) - (u,v) U1 U2 (x,y) U2 U1 r(x,y) 0, "může odtéct aspoň tolik, kolik musí přitéct" pro konkrétní tok je f(u,v) - f(x,y) = 0 Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 24 / 15 25
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) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 25 / 15 25
Úlohy na párování 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 původní graf X Y s 1 1 1 1 1 1 1 t 1 1 Nalezneme maximální tok pomocí algoritmu Ford-Fulkerson získáme maximální párování (hrany s nenulovým tokem). Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 26 / 15 25
Kontrolní otázky 9.9 Urč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) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 27 / 15 25
Kontrolní otázky 9.10 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, který pro každý list u i stromu uvažovaný jako jediný spotřebič určí maximální tok s u i. 9.11 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. Doc. Josef Kolář (ČVUT) Planarita Prohledávání a toky grafů v sítích GRA, LS 2010/11, Lekce 94 28 / 15 25