From: Martin Mares Date: Fri, 27 Oct 2006 16:20:02 +0000 (+0200) Subject: Nulta revize toku. X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=104d0df1dd095d49e48f8a50db02c6fa19b12185;p=ga.git Nulta revize toku. --- diff --git a/1-toky/1-toky.tex b/1-toky/1-toky.tex index 334827c..159d0fe 100644 --- a/1-toky/1-toky.tex +++ b/1-toky/1-toky.tex @@ -1,170 +1,227 @@ -%%%%%%%%%%%%%%%%%%%%%%% -% Zápisek prvého semináøe z grafových algoritmù - ze dne ? 7.6.2006 ? -% Téma Toky v sítích a zejména Ford-Fulkersonùv algoritmus. -% Zapsal Radovan ©esták - radovan.sestak@gmail.com -%%%%%%%%%%%%%%%%%%%%%% - \input ../sgr.tex -\prednaska{1}{Toky v sítích a FF algoritmus}{zapsal Radovan ©esták} +\prednaska{1}{Toky, øezy a Ford-Fulkersonùv algoritmus}{zapsal Radovan ©esták} -\h{Toky v sítích} +V~této kapitole nadefinujeme toky v~sítích, øezy a související pojmy a uká¾eme +Ford-Fulkersonùv algoritmus na nalezení maximálního toku. Dal¹í algoritmy budou +následovat v~pøí¹tích kapitolách. + +\todo{Tady (nebo nìkde jinde poblí¾) by mìly být zavedeny základní znaèky.} -V následujícím odstavci uká¾eme nìkolik tvrzení o sítích, které je -mo¾né si pøedstavit jako sí» potrubí køí¾ící se v uzlech. Vrchol -z kterého se kapalina ¹íøí nazveme zdroj a vrchol kde odtéká stok. Pro -ostatní vrcholy platí, ¾e objem kapaliny pøitékající se rovná objemu -kapaliny odtékající. Toto pravidlo, které pochází z teorie o elektrických obvodech, -se zvykne nazývat Kirchhoffùv zákon. Hledání maximálního toku je duální úlohou k hledání -minimálního øezu. Ford-Fulkersonùv(FF) algoritmus, který bude popsán ní¾e je základním -algoritmem pro hledání tokù. Na úlohu hledání maximálního toku se dají pøevést mnohé -grafové problémy a i proto existuje mnoho algoritmù a nìkteré z nich jsou pouze modifikace -základního FF algoritmu. V dal¹í pøedná¹ce najdete Dinitzùv algoritmus pro tenhle problém. +\todo{Co je $V$, $E$, $m$, $n$ \dots} +\h{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á. \s{Definice:} \itemize\ibull -\:sí»: $N=(V,E,s,t,w)$ kde $V$ je mno¾ina vrcholù, $E\subseteq V\times V$, -$s\in V$ je zdroj, $t\in V$ je stok, $w:\, E\rightarrow{R}^{+}$ jsou kapacity hran -\:tok: $f:\, E\rightarrow{R}^{+}$kde $\forall e\in E\, f(e)\leq w(e)$ a -$\forall v\in V,\, v\neq s,\, v\neq t\,\,\sum_{uv\in E}f(uv)=\sum_{vw\in E}f(vw)$ -\:velikost toku: $\|f\|=\sum_{sv\in E}f(sv)-\sum_{vs\in E}f(vs)$ kde $s$ je zdroj -\:øez: $st$-øez je mno¾ina hran $C\subseteq E$ taková, ¾e v grafu $(V,\, E\setminus C)$ neexistuje -cesta z s do t -\:separátor: $st$-separátor je mno¾ina vrcholù $S\subseteq V$ taková, ¾e v grafu -$(V\setminus S,\, E\cap(V\setminus S)\times(V\backslash S))$ neexistuje -cesta z s do t -\:velikost øezu: $\|c\|=\sum_{e\in c}w(e)$ je velikost øezu +\:{\I Sí»} je uspoøádaná pìtice $(V,E,s,t,c)$, kde: + \itemize\ibull + \:$(V,E)$ je orientovaný graf, + \:$s\in V$ {\I zdroj,} + \:$t\in V$ {\I stok,} a + \:$c: E\rightarrow {\bb R}^+$ funkce udávající {\I kapacity} jednotlivých hran. + \endlist +\:{\I Ohodnocení} hran je libovolná funkce $f:\, E\rightarrow {\bb R}$. Pro ka¾dé ohodnocení $f$ + mù¾eme definovat: + $$ f^+(v) = \sum_{e=(\cdot,w)} f(e), \quad + f^-(v) = \sum_{e=(w,\cdot)} f(e), \quad + f^\Delta(v) = f^+(v) - f^-(v) + $$ + [intuitivnì: co do~vrcholu pøiteèe, co odteèe a jaký je v~nìm pøebytek]. +\:{\I Tok} je ohodnocení $f:\, E\rightarrow {\bb R}$, pro které platí: + \itemize\ibull + \:$\forall e: 0 \le f(e) \le w(e)$, \quad {\I (dodr¾uje kapacity)} + \:$\forall v\ne s,t: f^\Delta(v)=0$. \quad {\I (Kirchhoffùv zákon)} + \endlist +\:{\I Velikost toku:} $\vert f \vert = -f^\Delta(s)$. +\:{\I Øez (tokový):} mno¾ina vrcholù $C\subset V$ taková, ¾e $s\in C$, $t\not\in C$. Øez mù¾eme také + ztoto¾nit s~mno¾inami hran $E \cap (C \times \overline C)$ [tìm budeme øíkat hrany zleva doprava a budeme + je znaèit $C^-$] a $E \cap (\overline C \times C)$ [hrany zprava doleva, tedy $C^+$]. +\:{\I Kapacita øezu:} $\vert C \vert = \sum_{e \in C^-} c(e)$ (bereme v~úvahu jen hrany zleva doprava). +\:{\I Tok pøes øez:} $f^-(C)=\sum_{e \in C^-} f(e)$, $f^+(C)=\sum_{e\in C^+} f(e)$, $f^\Delta(C)=f^+(C)-f^-(C)$. +\:{\I Cirkulace} je nulový tok, èili $\forall v: f^\Delta(v)=0$. \endlist \figure{graf.eps}{Pøíklad orientovaného grafu ze zvoleným zdrojem a stokem.}{0.4\hsize} -\s{Vìta(Ford-Fulkerson) o souvislosti tokù a øezù} -Nech» $N=(V,E,s,t,w)$ je sí», $F$ je mno¾ina pøípustných tokù pro tuto sí» a $C$ je -mno¾ina øezù oddìlující zdroj od stoku. Pak -$$max_{f\in F}|f|=min_{c\in C}\|c\|$$. -Vìta platí pro v¹echny výbìry zdrojù a stokù $\forall s,t\in V, s\neq t$ nech» $st-F$ je mno¾ina -v¹ech tokù ze zdroje $s$ do stoku $t$ a $st-C$ je mno¾ina v¹ech øezù oddìlujících $s$ od $t$. Pak -$$max_{f\in st-F}\|f\|=min_{c\in st-C}\|c\|$$ -pro graf $G=(V,E,w)$. +Základním problémem, kterým se budeme zabývat, je hledání {\I maximálního toku} (tedy toku nejvìt¹í mo¾né +velikosti) a {\I minimálního øezu} (øezu nejmen¹í mo¾né kapacity). -\s{Dùkaz vìty:} +\s{Vìtièka:} V~ka¾dé síti existuje maximální tok a minimální øez. -\s{$max_{f}\|f\|\leq min_{c}\|c\|$:} Vìznìme libovolný øez oddìlující zdroj od stoku $c$ a uva¾me -graf $G'=(V,E\setminus c)$, který vznikl odebráním hran nacházejících se v øezu. Buï $S$ mno¾ina -vrcholù dosa¾itelných ze zdroje v $G'$. -Pro libovolnej tok $f$ platí: +\s{Dùkaz:} Existence minimálního øezu je triviální, proto¾e øezù v~ka¾dé síti je koneènì mnoho; +pro toky v~sítích s~reálnými kapacitami to ov¹em není samozøejmost a 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 Ford-Fulkersonova algoritmu. -$$\|f\| = \sum_{uv\in E, u\in S, v\notin S}f(uv) - \sum_{uv\in E, u\in S, v\notin S}f(vu)$$ -velikost toku je rovna rozdílu velikostí tokù pøes hrany opou¹tìjící $S$ a pøicházející do $S$. -$$\|f\| = \sum_{u\in V}f(su) - \sum_{u\in V}f(us)$$ -proto¾e se tok zachovává ve v¹ech vrcholech partity $S$ kromì $s$ dostáváme -$$= \sum_{v\in S}(\sum_{u\in V}f(uv)-\sum_{u\in V}f(vu))$$ -$f(uv)$ pro $u,v\in S$ jsme jednou pøièítali a jednou odèítali -$$= \sum_{uv\in E, u\in S, v\notin S}f(uv) - \sum_{uv\in E, u\in S, v\notin S}f(vu)$$ +\s{Pozorování:} Kdybychom velikost toku definovali podle spotøebièe, vy¹lo by toté¾: +$$\eqalign{ +\sum_v f^\Delta(v) &= f^\Delta(s) + f^\Delta(t) \hbox{~~~(podle Kirchhoffova zákona), ale také:} \cr +\sum_v f^\Delta(v) &= \sum_e f(e) - f(e) = 0 \hbox{~~~(ka¾dá hrana pøispìje k~jednomu $f^+(v)$ a k~jednomu $f^-(v)$),} +}$$ +tak¾e $\vert f\vert = -f^\Delta(s) = f^\Delta(t).$ -Teï si u¾ staèí jenom uvìdomit, ¾e -$$\|f\| = \sum_{uv\in E, u\in S, v\notin S}f(uv)- \sum_{uv\in E, u\in S, v\notin S}f(vu) \leq \sum_{uv\in E, u\in S, v\notin S}f(uv) -\leq \sum_{uv\in E, u\in S, v\notin S}w(uv) \leq \|c\|$$ -Poslední nerovnost je dùsledkem toho, ¾e øez obsahuje v¹echny hrany opou¹tìjící $S$. +Stejnì tak mù¾eme velikost toku zmìøit na~libovolném øezu: -$max_{f}|f|\geq min_{c}|c|$: dùkaz plyne z korektnosti -Ford-Fulkersonova algoritmu viz. algoritmus dále +\s{Lemma:} Pro ka¾dý øez $C$ platí, ¾e $\vert f\vert = -f^\Delta(C) \le \vert C \vert$. -\s{Dùsledek:}Pro ka¾dou sí» s celoèíselnými kapacitami je její maximální tok celoèíselný. +\s{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\}$ +[tedy pøesouváním vrcholu zprava doleva], a~to, jak uká¾e jednoduchý rozbor pøípadù, nezmìní $f^\Delta$. +Druhá èást: $-f^\Delta(C) = f^-(C) - f^+(C) \le f^-(c) \le \vert C \vert.$ \qed -\h{Maximální párování v bipartitním grafu} -Maximální párování v bipartitním grafu $(A\cup B,E)$ se dá najít -pomocí maximálního toku v síti $(A\cup B\cup s\cup t,E',s,t,w)$ kde -$w(e)=1$ a $E'=\{ uv\| u\in A, uv\in E\} \cup \{su\| u\in A\} \cup\{ut\| u\in B\}$ a -obdobnì mù¾eme nalézt minimální vrcholové pokrytí. +Velikost ka¾dého toku mù¾eme tedy omezit kapacitou libovolného øezu. Kdybychom na¹li tok a øez stejné +velikosti, mù¾eme si tedy být jisti, ¾e tok je maximální a øez minimální. To není náhoda, platí toti¾ +následující vìta: -\figure{bip-graf.eps}{Bipartitní graf pro který hledáme maximální párování.}{0.2\hsize} -\figure{bip-tok.eps}{Sí» v které najdeme maximální tok.}{0.3\hsize} +\s{Vìta (Ford, Fulkerson):} V~ka¾dé síti je velikost maximálního toku rovna velikosti minimálního øezu. -\s{Definice} -\itemize\ibull -\:neorientovaný graf G je vrcholovì k-souvislý $\Leftrightarrow$ G má alespoò -k+1 vrcholù a neexistuje separátor s ménì ne¾ k vrcholy -\:neorientovaný graf G je hranovì k-souvislý $\Leftrightarrow$ G má alespoò k+1 vrcholù -a neexistuje øez s ménì ne¾ k hranami -\:orientovaný graf je silnì souvislý $\Leftrightarrow$ existuje orientovaná cesta mezi -v¹emi vrcholy v obou smìrech -\:cirkulace je nulový tok t.j. $\forall v\in V, \sum f(uv)=\sum f(vu)$ -\endlist +\s{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-Fulkersonùv algoritmus. -\s{Vìta:}(Menger) o souvislosti existencí disjunktních cest a souvislostí -grafù +\h{Ford-Fulkersonùv algoritmus} + +Nejpøímoèaøej¹í zpùsob, jak hledat toky v~sítích, je zaèít s~nìjakým tokem (nulový je po~ruce v¾dy) +a postupnì ho zlep¹ovat tak, ¾e nalezneme nìjakou nenasycenou cestu a po¹leme po~ní \uv{co pùjde}. +To~bohu¾el nefunguje, ale mù¾eme tento postup trochu zobecnit a být ochotni pou¾ívat nejen hrany, +pro~které je $f(e) < c(e)$, ale také hrany, po~kterých nìco teèe v~protismìru a my mù¾eme tok +v~na¹em smìru simulovat odeètením od~toku v~protismìru. Trochu formálnìji: + +\s{Definice:} -buï $G$ neorientovaný graf, pak: -\itemize\ibull -\:$G$ je vrcholovì k-souvislý $\Leftrightarrow$$\forall v,w\in V\,\exists$ -k vrcholovì disjunktních cest z $v$ do $w$ -\:$G$ je hranovì k-souvislý $\Leftrightarrow$$\forall v,w\in V\,\exists$ -k hranovì disjunktních cest z $v$ do $w$ -\:kdy¾ $u$ a $v$ jsou nesousední vrcholy v $G$ pak maximální poèet vrcholovì disjunktních -cest mezi $u$ a $v$ se rovná minimálnímu poètu vrcholù z $G-{u,v}$ kterých odebrání oddìlí -$u$ od $v$ -\:kdy¾ $u$ a $v$ jsou vrcholy v $G$ pak maximální poèet hranovì disjunktních -cest mezi $u$ a $v$ se rovná minimálnímu poètu hran, kterých odebrání oddìlí $u$ od $v$ -\endlist -buï $G$ orientovaný graf, pak: \itemize\ibull -\:kdy¾ $u$ a $v$ jsou vrcholy $G$, $uv\notin E(G)$ pak maximální poèet vrcholovì disjunktních -cest z $u$ do $v$ je rovný minimálnímu poètu vrcholù z $G-{u,v}$ kterých odebrání oddìlí $u$ od $v$ -\:kdy¾ $u$ a $v$ jsou vrcholy $G$ pak maximální poèet hranovì disjunktních cest z $u$ do $v$ je -rovný minimálnímu poètu hran, kterých odebrání oddìlí $u$ od $v$ +\:{\I Rezerva} hrany $e=(v,w)$ pøi toku~$f$ se definuje jako $r(e) = (c(e) - f(e)) + f(e^\prime)$, kde $e^\prime=(w,v)$. + Pro úèely tohoto algoritmu budeme pøedpokládat, ¾e ke~ka¾dé hranì hrana opaèná existuje; pokud ne, dodefinujeme + si ji s~nulovou kapacitou. +\:{\I Zlep¹ující cesta} je orientovaná cesta taková, ¾e v¹echny její hrany mají nenulovou rezervu. \endlist -Vrcholová i hranová souvislost grafu se dá zjistit pomocí maximálního -toku. Pro hranovou souvislost pøímo zjistíme maximální tok pro ka¾dou -dvojici vrcholù (volba zdroje a stoku). V pøípadì neorientovaného grafu vyrobíme orientovaný graf tak, ¾e ka¾dou -neorientovanou hranu nahradíme orientovanými v obou smìrech. Pro vrcholovou souvislost -navíc musíme ka¾dý vrchol nahradit dvìma novými a spojit je hranou -v obou smìrech (pod-rozdìlení vrcholu). Kapacity hran volíme 1. -Pro nalezení tìchto cest staèí v¾dy v síti odebírat postupnì cestu -z $s$ do $t$. Odebrání jedné cesty sní¾í tok o jedna a tedy cest -musíme nalézt $k$. -\figure{vrchol.eps}{Vrchol který chceme pod-rozdìlit.}{0.1\hsize} -\figure{podrozdeleni.eps}{Výsledek pod-rozdìlení vrcholu.}{0.15\hsize} - - -\s{Ford-Fulkersonùv algoritmus} -Algoritmus nepracuje pøímo s kapacitami a s toky pøes hrany, ale s rezervami -tìchto hran. Funkce rezerv definujeme jako $r(uv)\equiv w(uv)-f(uv)+f(vu)$. -Jestli $uv\notin E(G)$ pak $w(uv)=0$. -Kdy¾ zmen¹ujeme rezervu hrany tak o stejnou hodnotu zvý¹íme hodnotu -rezervy opaèné hrany. Dále pak FF cesta, je cesta pro kterou má ka¾dá hrana kladnou rezervu. +\s{Algoritmus:} \algo -\:nastav rezervy pro nulový tok na v¹ech hranách (rezervy se rovnají kapacitám) -\:while $\exists$FF cesta z $s$ do $t$ -\::buï $p$ FF cesta z $s$ do $t$ -\::zvìt¹i tok zmen¹ením rezerv, o $m=min_{uv\in p}r(uv)$ -\:end while -\:spoèti tok z rezerv +\:$f \leftarrow 0$ +\:while $\exists$ zlep¹ující cesta $P$ z~$s$ do~$t$ +\::$m=\min_{e\in P} r(P)$ +\::zvìt¹i tok $f$ podle~$P$ o~$m$ (ka¾dé hranì $e\in P$ zvìt¹i $f(e)$, pøípadnì zmen¹i $f(e^\prime)$, podle toho, co jde) \endalgo -Pro dùkaz korektnosti algoritmu uva¾ mno¾inu $X=\{ v,\,\exists$FF -cesta z $s$ do $v\}$ po dobìhnutí algoritmu. Proto¾e neexistuje FF cesta z $s$ do $t$, $t\notin X$. -Pak mno¾iny $X$ a $V\setminus X$ urèují øez tvoøený hranami spojujícími -vrcholy z rùzných mno¾in $c=\{uv: uv\in E, u\in X, v\in V\setminus X\}$. V¹echny hrany $uv\in c$ -mají nulovou rezervu, nebo» jinak by se dala prodlou¾it FF cesta do vrcholu z $V\setminus X$. Tak¾e velikost -toku se rovná souètu kapacit hran z $X$ do $V\setminus X$ (tohle tvrzení jsme dokázali pøi dùkazu opaèné implikace -FF vìty). Souèasnì tyhle hrany tvoøí $st$-øez, kterého kapacita je rovna velikosti toku. Na¹li jsme tedy øez, -kterého velikost se rovná velikosti pøípustného toku a tím je dùkaz FF vìty ukonèen. - -Kdy¾ máme celoèíselné kapacity hran tak v ka¾dém kroku se tok zvìt¹í -alespoò o jedna a maximální tok je z hora omezen, napøíklad souètem -v¹ech kapacit hran. Pro racionální kapacity staèí vynásobit kapacity -a dostaneme celoèíselné. Z toho plyne koneènost FF algoritmu pro hrany s racionálními kapacitami. -Táto varianta FF algoritmu není obecnì koneèná pøi reálných kapacitách. Volíme-li ov¹em zlep¹ující cestu, která -má maximální minimum pøes rezervy tak je FF algoritmus koneèný i pro reálné kapacity hran. - -Pro FF algoritmus s jednotkovými kapacitami a vyu¾itím BFS (procházení -do ¹íøky) na hledání FF cest je èasová slo¾itost algoritmu $O(n.m)$. -Edmunds s Karpem dokázali, ¾e pøi volbì nejkrat¹í cesty je èasová -slo¾itost v obecném pøípadì $O(n.m^{2})$. +\s{Analýza:} Nejdøíve si rozmysleme, ¾e pro celoèíselné kapacity algoritmus v¾dy dobìhne: v~ka¾dém kroku +stoupne velikost toku o~$m \ge 1$, co¾ mù¾e nastat pouze koneè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¾ po~zastavení algoritmu vede zlep¹ující cesta ze~zdroje. +Jistì $s\in C$, $t\not\in C$, tak¾e tato mno¾ina je øez. Navíc pro ka¾dou hranu $e\in C^-$ musí +být $f(e)=c(e)$ a pro ka¾dou $e\in C^+$ je $f(e)=0$, proto¾e jinak by rezerva hrany~$e$ nebyla +nulová. Tak¾e $f^-(C) = \vert C \vert$ a $f^+(C) = 0$, èili $\vert f\vert = \vert C \vert$. + +Na¹li jsme tedy k~toku, který algoritmus vydal, øez stejné velikosti, tak¾e jak u¾ víme, +tok je maximání a øez minimální. Tím jsme také dokázali Ford-Fulkersonovu vìtu (dokonce +i pro obecné reálné kapacity, proto¾e mù¾eme algoritmus spustit na maximální tok místo nulového +a on se ihned zastaví a vydá certifikující øez). Navíc algoritmus nikdy nevytváøí z~celých +èísel necelá, èim¾ získáme: + +\s{Dùsledek:} Sí» s~celoèíselnými kapacitami má maximální tok, který je celoèíselný. + +\s{È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^2n)$. Pokud budou +v¹echny kapacity jednotkové, snadno nahlédneme, ¾e staèí $O(nm)$. + +\h{Maximální párování v bipartitním grafu} + +Jedním z~problémù, které lze snadno pøevést na~hledání maximálního toku, je nalezení +maximálního {\I párování} v~bipartitním grafu (to je mno¾ina hran taková, ¾e ¾ádné +dvì nemají spoleèný vrchol). + +Bipartitní graf $(A\cup B, E)$ pøevedeme na sí» obsahující v¹echny pùvodní vrcholy +plus dva nové vrcholy $s$ a~$t$, v¹echny pùvodní hrany orientované z~$A$ do~$B$, +nové hrany z~$s$ do~v¹ech vrcholù partity~$A$ a ze~v¹ech vrcholù partity~$B$ do~$t$. +Kapacity v¹ech hran nastavíme na jednièky. + +Nyní si v¹imneme, ¾e ke~ka¾dému párování existuje celoèíselný tok stejné velikosti a naopak. +Tak¾e najdeme maximální celoèíselný tok (tøeba F-F algoritmem) a do~párování umístíme +právì hrany, po~kterých nìco teèe. + +Podobnì mù¾eme najít souvislost mezi øezy v~této síti a {\I 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: + +\s{Vìta (König):} V~ka¾dém bipartitním grafu je velikost maximálního párování +rovna velikosti minimálního vrcholového pokrytí. + +\figure{bip-graf.eps}{Bipartitní graf pro který hledáme maximální párování.}{0.2\hsize} +\figure{bip-tok.eps}{Sí», ve~které najdeme maximální tok.}{0.3\hsize} + +\h{Øezy, separátory a $k$-souvislost} + +\s{Definice:} Pro ka¾dý neorientovaný graf $G$ a libovolné jeho vrcholy $s,t$ zavedeme: +\itemize\ibull +\:{\I $st$-øez} je mno¾ina hran $F$ taková, ¾e v~grafu $G-F$ budou + vrcholy $s,t$ v~rùzných komponentách souvislosti. +\:{\I $st$-separátor} je mno¾ina vrcholù $W$ taková, ¾e $s,t\not\in W$ a v~grafu $G-W$ + budou vrcholy $s,t$ v~rùzných komponentách souvislosti. +\:{\I Øez} je mno¾ina hran, která je $xy$-øezem pro nìjakou dvojici vrcholù $x,y$. +\:{\I Separátor} je mno¾ina vrcholù, která je $xy$-separátorem pro nìjakou dvojici vrcholù $x,y$. +\:$G$ je {\I hranovì $k$-souvislý,} pokud $\vert V\vert > k$ a v¹echny øezy v~$G$ + mají více ne¾~$k$ hran. +\:$G$ je {\I vrcholovì $k$-souvislý,} pokud $\vert V\vert > k$ a v¹echny separátory v~$G$ +\endlist + +V¹imnìte si, ¾e nesouvislý graf má øez i separátor velikosti~0, 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 {\I mostù,} vrcholovì 2-souvislé jsou ty bez {\I 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ù nemá existovat orientovaná +cesta z~$s$ do~$t$), globální øezy a separátory ani vícenásobná souvislost se obvykle +nedefinují. + +\s{Pozorování:} 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$-øezu stejné +velikosti tvoøenému hranami v~$C^-$; naopak pro~minimální $st$-øez musí 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 øíkat obojímu stejnì. +Podobnì se chovají i neorientované grafy, pokud do~\uv{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ì) +mezi vrcholy~$s$ a~$t$. Analogií F-F~vìty pak budou známé Mengerovy vìty: + +\s{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.\foot{orientovaných +cest z~$s$ do~$t$} + +\s{Dùkaz:} TODO + +\s{Vìta (Mengerova, lokální vrcholová orientovaná):} +Buï $G$ orientovaný graf a $s,t$ nìjaké jeho vrcholy takové, ¾e $st\not\in E$. +Pak je velikost minimálního $st$-separátoru rovna maximálnímu poètu vrcholovì +disjunktních $st$-cest.\foot{Tím myslíme cesty disjunktní a¾ na~krajní vrcholy.} + +\s{Dùkaz:} TODO + +\figure{vrchol.eps}{Vrchol který chceme podrozdìlit.}{0.1\hsize} +\figure{podrozdeleni.eps}{Výsledek podrozdìlení vrcholu.}{0.15\hsize} + +Podobnì dostaneme neorientované lokální vìty a z~nich pak i globální varianty +popisující $k$-souvislost grafù: + +\s{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. + +\s{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. \bye diff --git a/sgr.tex b/sgr.tex index 042aec1..9759e48 100644 --- a/sgr.tex +++ b/sgr.tex @@ -72,3 +72,12 @@ % Vlozeni obrazku {obrazek}{popisek}{sirka} \def\figure#1#2#3{\bigskip\vbox{\centerline{\epsfxsize=#3\epsfbox{#1}}\smallskip\centerline{#2}}\bigskip} + +% Todo +\def\todo#1{\leftline{\bf TODO: \it #1}} + +% Blackboard bold font +\newfam\bbfam +\font\bbten=bbold10 +\textfont\bbfam=\bbten +\def\bb{\bbten\fam\bbfam}