From: Martin Mares Date: Wed, 8 Nov 2006 21:25:59 +0000 (+0100) Subject: Korektury. X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=9ffef82f47a0d474cdccb381a64fd48e9d2dad00;p=ga.git Korektury. --- diff --git a/4-ght/4-ght.tex b/4-ght/4-ght.tex index a95846f..824c09b 100644 --- a/4-ght/4-ght.tex +++ b/4-ght/4-ght.tex @@ -13,25 +13,26 @@ \prednaska{4}{Gomory-Hu Trees}{zapsal Milan Straka} -\h{Gomory-Hu Trees} +Cílem této kapitoly je vytvoøit datovou strukturu, která po urèitém +pøedzpracování doká¾e rychle konstruovat pro libovolnou dvojici vrcholù v~grafu +minimální øez, který ji oddìluje. -Cílem této pøedná¹ky bylo vytvoøit datovou strukturu, která po urèitém -pøedzpracování doká¾e rychle konstruovat minimální øezy pro libovolnou -dvojici vrcholù v~grafu. - -Zatím umíme nalézt minimální \st-øez pro zadanou dvojici vrcholù v~èase -$\tau=\O(n^{2/3}m)$. Nalézt minimální \st-øez pro ka¾dou dvojici vrcholù +Zatím umíme nalézt minimální \st-øez pro zadanou dvojici vrcholù v~neorientovaném +grafu v~èase $\tau=\O(n^{2/3}m)$ pro~jednotkové kapacity, $\O(n^2m)$ pro obecné. +Nalézt minimální \st-øez pro ka¾dou dvojici vrcholù bychom tedy dokázali v~èase $\O(n^2\tau)$. Tento výsledek budeme chtít zlep¹it. \s{Znaèení:} Máme\li{} graf $(V,E)$ a $U\subseteq V$, $\d(U)$ znaèí hrany vedoucí -mezi $U$ a $V\setminus U$. Formálnì tedy $\d(U)=E \cap (U \times (V \setminus U))$. -Kapacitu øezu $W$ budeme znaèit $c(W)$ a $r(s,t)$ budeme znaèit kapacitu nejmen¹ího \st-øezu. +mezi $U$ a $\overline U$, formálnì tedy $\d(U)=E \cap ((U \times \overline U) \cup (\overline U \times U))$. +Kapacitu øezu $\d(W)$ budeme znaèit $c(W)$ a $r(s,t)$ bude kapacita nejmen¹ího \st-øezu. \s{Pozorování:} Minimální øez rozdìluje graf jen na~dvì komponenty (v¹imnìte si, ¾e pro separátory nic takového neplatí) a ka¾dý minimální øez je tím pádem v¾dy mo¾né zapsat jako $\d(W)$ pro nìjakou mno¾inu $W\subset V$. +\h{Gomory-Hu Tree} + \s{Definice:} {\I Gomory-Hu Tree} (dále jen \GHT) pro neorientovaný ohodnocený graf $G=(V,E)$ je strom $T=(V,F)$ takový,\nobreak{}\ \nobreak{}¾e $$\forall st \in F: \d(K_1)=\d(K_2)\hbox{ je minimální \st-øez, kde $K_1$ a $K_2$ jsou komponenty $T\setminus st$}.$$ @@ -39,13 +40,13 @@ Pozor, $F$ nemus \s{Dal¹í znaèení:} Pro $e\in F$ budeme øezem $\d(e)$ oznaèovat øez $\d(K_1)=\d(K_2)$ a $r(e)$ bude jeho kapacita. -K~èemu takový \GHT{} je (existuje-li)? To nám poví následující +\>K~èemu takový \GHT{} je (existuje-li)? To nám poví následující \th{Vìta (o~vyu¾ití \GHT):} Buï $T=(V,F)$ \GHT{} pro graf $G=(V,E)$ a mìjme dva vrcholy $s$ a $t$. Dále nech» $P$ je cesta v~$T$ mezi vrcholy $s$ a $t$ a $e$ je hrana na cestì $P$ s~minimálním $r(e)$. Pak $\d(e)$ je minimální \st-øez. -\proof Nejprve si doká¾eme jedno drobné +\proof Nejprve si doká¾eme jedno drobné {\advance\leftskip by 2em \th{Lemmátko:} Pro ka¾dou trojici vrcholù $x,y,z$ platí, ¾e $r(x,z) \ge \min(r(x,y),r(y,z))$. @@ -55,12 +56,13 @@ Pak $\d(e)$ je minim \centerline{\epsfysize=1.5cm\epsfbox{4-ght-rez.eps}} \noindent Vrchol $y$ musí být v~jedné z~komponent, BÚNO v~komponentì s~$x$. Pak ale $r(y,z) \le c(W)$, -proto¾e $W$ je také $yz$-øez. Tedy $\min(r(x,y),r(y,z)) \le r(x,z)$.\qed +proto¾e $\d(W)$ je také $yz$-øez. Tedy $\min(r(x,y),r(y,z)) \le r(x,z)$.\qed } \noindent Zpìt k~dùkazu vìty: Chceme dokázat, ¾e $\d(e)$ je minimální \st-øez. To, ¾e je to nìjaký øez, plyne z~definice \GHT. -Minimalitu doká¾eme indukcí podle délky cesty $P$.\itemize\ibull +Minimalitu doká¾eme indukcí podle délky cesty $P$: +\itemize\ibull \:$\vert\,P\,\vert = 1$: Hrana $e$ je v~tomto pøípadì pøímo $st$, tak¾e i minimalita plyne z~definice \GHT. \:$\vert\,P\,\vert > 1$: Cesta $P$ spojuje vrcholy $s$ a $t$, její první hrana je $sx$. Na¹e právì dokázané lemmátko øíká, ¾e $r(s,t) \ge \min (r(s,x),r(x,t))$. @@ -90,24 +92,24 @@ vrcholy z~$U$. Pak existuje mno [To dùle¾ité a netriviální je, ¾e celá $W$ le¾í v~$U$.] \proof Nech» je $\d(X)$ minimální $uv$-øez. -BÚNO mù¾eme pøedpokládat, ¾e $s$ je v~$U$ a $t$ není v~$U$, $u$ je v~$X$ a $v$ není v~$X$ a $s$ je v~$X$. -Pokud by tomu tak nebylo, mù¾eme vrcholy pøeznaèit. +BÚNO mù¾eme pøedpokládat, ¾e $s\in U$ a $t\not\in U$, $u\in X$ a $v\not\in X$ a $s\in X$. +Pokud by tomu tak nebylo, mù¾eme vrcholy pøeznaèit nebo nìkterou z~mno¾in nahradit jejím doplòkem. } Nyní mohou nastat dva pøípady:\numlist\nalpha \vbox to 0pt{\vskip -1cm\rightline{\epsfysize=2.5cm\epsfbox{4-ght-htl-a.eps}}\vss}\vskip-\baselineskip {\advance\hsize by -14em -\:$t$ není prvek $X$.\par -Doká¾eme dvì nerovnosti. Nerovnost $$\eqalignno{c(\d(U \cup X)) &\ge c(\d(U))&(1)}$$ +\:$t\not\in X$.\par +Doká¾eme dvì nerovnosti. Nerovnost $$\eqalignno{c(U \cup X) &\ge c(U)&(1)}$$ platí proto, ¾e $U \cup X$ je nìjaký \st-øez, zatímco $U$ je minimální \st-øez. Dal¹í -$$\eqalignno{c(\d(U \cap X)) + c(\d(U \cup X)) &\le c(\d(U)) + c(\d(X))&(2)}$$ +$$\eqalignno{\d(U \cap X) + c(U \cup X) &\le c(U) + c(X)&(2)}$$ doká¾eme \uv{rozborem pøípadù}. } Mno¾inu vrcholù si disjunktnì rozdìlíme na $X\setminus U$, $X \cap U$, $U \setminus X$ a $\$. -Ka¾dý z~øezù v~nerovnosti $(2)$ se skládá z~hran mezi tìmito skupinami vrcholù. +Ka¾dý z~øezù v~nerovnosti $(2)$ se skládá z~hran mezi tìmito skupinami vrcholù. Vytvoøíme tedy tabulku hran mezi ètyømi oznaèenými skupinami vrcholù a ka¾dému øezu z~$(2)$ oznaèíme jemu odpovídající hrany. Proto¾e je graf neorientovaný, staèí nám jen horní trojúhelník tabulky. @@ -123,15 +125,15 @@ Vid a navíc hrany mezi $U\setminus X$ a $X \setminus U$ poèítáme jenom vpravo. Nerovnost $(2)$ tedy platí. -Nyní staèí nerovnosti $(2)$ a $(1)$ odeèíst, èím¾ získáme $$c(\d(U \cap X)) \le c(\d(X)),$$ +Nyní staèí nerovnosti $(2)$ a $(1)$ odeèíst, èím¾ získáme $$c(U \cap X) \le c(X),$$ co¾ spolu s~obrázkem dokazuje, ¾e $\d(U \cap X)$ je také minimální $uv$-øez. \vbox to 0pt{\rightline{\epsfysize=2.5cm\epsfbox{4-ght-htl-b.eps}}\vss}\vskip-\baselineskip {\advance\hsize by -14em\itemcount=1 -\:$t$ je prvek $X$.\par -Postupovat budeme obdobnì jako v~pøedchozím pøípadì. Nerovnost $$\eqalignno{c(\d(X \setminus U)) &\ge c(\d(U))&(3)}$$ +\:$t\in X$.\par +Postupovat budeme obdobnì jako v~pøedchozím pøípadì. Nerovnost $$\eqalignno{c(X \setminus U) &\ge c(U)&(3)}$$ platí proto, ¾e $X \setminus U$ je nìjaký \st-øez, zatímco $U$ je minimální \st-øez. Dal¹í -$$\eqalignno{c(\d(U \setminus X)) + c(\d(X \setminus U)) &\le c(\d(U)) + c(\d(X))&(4)}$$ +$$\eqalignno{c(U \setminus X) + c(X \setminus U) &\le c(U) + c(X)&(4)}$$ doká¾eme opìt \uv{rozborem pøípadù}. } @@ -144,14 +146,14 @@ U \setminus X&&&\hbox{---}&L_1,P_1\cr \&&&&\hbox{---}\cr }$$ -Stejnì jako v~pøedchozím pøípadì nerovnost $(4)$ platí. Odeètením $(4)$ a $(3)$ získáme -$$c(\d(U \setminus X)) \le c(\d(X)),$$ +Stejnì jako v~pøedchozím pøípadì nerovnost $(4)$ platí. Odeètením $(4)$ a $(3)$ získáme +$$c(U \setminus X) \le c(X),$$ z~èeho¾ opìt dostaneme, ¾e $\d(U \setminus X)$ je také minimální $uv$-øez. \endlist \qed \bigskip -Nyní se koneènì dostáváme ke konstrukci \GHT{}. Abychom mohli pou¾ívat +\>Nyní se koneènì dostáváme ke konstrukci \GHT{}. Abychom mohli pou¾ívat indukci, zavedeme si trochu obecnìj¹í \GHT{}. \s{Definice:} Mìjme neorientovaný graf $(V,E)$. {\I Èásteèný Gomory-Hu Tree} (alias \PGHT{}) pro $R \subseteq V$ je $((R,F),C)$, @@ -164,40 +166,39 @@ Nav \endlist -\th{Vìta (o~existenci \PGHT{}):} Buï $(V,E)$ neorientovaný ohodnocený graf. Pro ka¾dou podmno¾inu vrcholù $R$ +\th{Vìta (o~existenci \PGHT{}):} Buï $(V,E)$ neorientovaný ohodnocený graf. Pro ka¾dou podmno¾inu vrcholù $R$ existuje \PGHT{}. \proof Doká¾eme indukcí podle velikosti mno¾iny $R$.\itemize\ibull \:$\vert R \vert = 1$: \PGHT{} má jediný vrchol $r\in R$ a $C(r)=V$. -\:$\vert R \vert > 1$: Najdeme dvojici vrcholù $s,t\in R$ takové, ¾e jejich minimální \st-øez $\d(W)$ -je ze v¹ech mo¾ných minimálních \st-øezù nejmen¹í. Nyní vytvoøíme graf $G_1$ z~grafu $G$ zkontrahováním +\:$\vert R \vert > 1$: Najdeme dvojici vrcholù $s,t\in R$ takovou, ¾e jejich minimální \st-øez $\d(W)$ +je nejmen¹í mo¾ný. Nyní vytvoøíme graf $G_1$ z~grafu $G$ zkontrahováním v¹ech vrcholù $w\in W$ do jednoho vrcholu, který oznaèíme $v_1$, a vytvoøíme graf $G_2$ z~$G$ zkontrahováním -v¹ech vrcholù $w\in V\setminus W$ do jednoho vrcholu $v_2$. - -\medskip -\centerline{\epsfysize=2cm\epsfbox{4-ght-g1g2.eps}} - -[Proè to dìláme \uv{tak slo¾itì} a pøidáváme do $G_1$ vrchol $v_1$? Mì osobnì to dlouho pøi¹lo zbyteèné. +v¹ech vrcholù $w\in \overline W$ do jednoho vrcholu $v_2$.\foot{ +Proè to dìláme \uv{tak slo¾itì} a pøidáváme do $G_1$ vrchol $v_1$? Na první pohled to pøeci vypadá zbyteènì. Problém je v~tom, ¾e i kdy¾ dle HTL le¾í v¹echny minimální øezy oddìlující vrcholy z~$W$ v~mno¾inì vrcholù -$W$, \ tìchto øezù celé ve $W$ le¾et nemusí. K~tìmto øezùm toti¾ patøí i hrany, které +$W$, \ tìchto øezù celé v~podgrafu indukovaném~$W$ le¾et nemusí. K~tìmto øezùm toti¾ patøí i hrany, které mají ve $W$ jenom jeden konec. Proto jsme do $G_1$ pøidali $v_1$, vedou do nìj v¹echny zajímavé hrany, které mají ve $W$ jeden konec. Tím {\I zajímavé} myslíme to, ¾e z~ka¾dého vrcholu $w\in W$ vede -do $v_1$ \ hrana, která z~nìj vedla do mno¾iny $V\setminus W$, pøípadnì ¾ádná, pokud -do této mno¾iny ¾ádná hrana nevedla.] +do $v_1$ \ hrana, která z~nìj vedla do mno¾iny $V\setminus W$, pøípadnì ¾ádná, pokud +do této mno¾iny ¾ádná hrana nevedla.} + +\medskip +\centerline{\epsfysize=2cm\epsfbox{4-ght-g1g2.eps}} -Dále vytvoøíme mno¾iny vrcholù $R_1=R \cap (V\setminus W)$ a $R_2=R \cap W$. Dle indukèního -pøedpokladu ($R_1$ i $R_2$ jsou men¹í ne¾ $R$) existuje \PGHT{} $T_1=((R_1,F_1),C_1)$ -pro $R_1$ na $G_1$ a $T_2=((R_2,F_2),C_2)$ pro $R_2$ na $G_2$. +Dále vytvoøíme mno¾iny vrcholù $R_1=R \cap \overbrace W$ a $R_2=R \cap W$. Dle indukèního +pøedpokladu ($R_1$ i $R_2$ jsou men¹í ne¾ $R$) existuje \PGHT{} $T_1=((R_1,F_1),C_1)$ +pro $R_1$ na $G_1$ a $T_2=((R_2,F_2),C_2)$ pro $R_2$ na $G_2$. -Nyní vytvoøíme \PGHT{} pro pùvodní graf. Oznaème $r_1$ vrchol $R_1$, pro který je $v_1 \in C(r_1)$, +Nyní vytvoøíme \PGHT{} pro pùvodní graf. Oznaème $r_1$ ten vrchol $R_1$, pro který je $v_1 \in C(r_1)$, obdobnì $r_2$. Oba \PGHT{} $T_1$ a $T_2$ spojíme hranou $r_1r_2$, tak¾e \PGHT{} pro $G$ je $T=((R_1 \cup R_2,F_1 \cup F_2 \cup {r_1r_2}),C)$, pøièem¾ pro $r\in R_1$ je $C(r)=C_1(r)\setminus\{v_1\}$ a pro $r\in R_2$ je $C(r)=C_2(r)\setminus\{v_2\}$ [odebrali jsme vrcholy $v_1$ a $v_2$ z~rozkladu $C$]. Chceme ukázat, ¾e tento $T$ je opravdu \PGHT. $C$ je urèitì rozklad v¹ech vrcholù a ka¾dé $r\in C(r)$ z~indukèního pøedpokladu, tak¾e podmínka $1.$ je splnìna. Co se týèe podmínky $2.$, tak\itemize\ibull -\:pro hranu $r1r2$ je $\d(W)$ urèitì minimální $r_2r_2$-øez, proto¾e øez mezi \rr\ to -je a byl ze v¹ech mo¾ných minimálních øezù na $R$ nejmen¹í, +\:pro hranu \rr\ je $\d(W)$ urèitì minimální \rr-øez, proto¾e øez mezi $s$ a $t$ je souèasnì +i \rr-øezem a je ze v¹ech mo¾ných minimálních øezù na $R$ nejmen¹í, \:pro hranu $e\ne r_1r_2$ je $\d(e)$ z~indukce minimální øez na jednom z~grafù $G_1$, $G_2$. Tento øez také pøesnì odpovídá øezu v~grafu $G$, proto¾e v~$G_1$ i v~$G_2$ jsme poèítali s~hranami vedoucími do $v_1$, $v_2$ a proto¾e jsme \PGHT{} napojili pøes vrcholy, @@ -209,7 +210,7 @@ tak \endlist \qed -Nyní víme, ¾e \GHT{} existují, a také víme, jak by se daly konstruovat. Nicménì nalezení +Nyní víme, ¾e \GHT{} existují, a také víme, jak by se daly konstruovat. Nicménì nalezení vrcholù $s,t$ tak, aby byl minimální \st-øez nejmen¹í mo¾ný, je èasovì nároèné. Proto si poslední vìtu je¹tì o~nìco vylep¹íme. @@ -217,7 +218,7 @@ Proto si posledn takové, aby byl minimální \st-øez nejmen¹í mo¾ný. Staèí zvolit \ vrcholy $s,t\in R$ a nalézt minimální øez $\d(W)$. -\proof Nejprve si uvìdomme, proè jsme v~pøedchozím dùkazu potøebovali, aby byl $W$ nejmen¹í ze v¹ech +\proof Nejprve si uvìdomme, proè jsme v~pøedchozím dùkazu potøebovali, aby byl $\d(W)$ nejmen¹í ze v¹ech mo¾ných \st-øezù. Bylo to jenom proto, ¾e jsme jím v~\PGHT{} nakonec separovali vrcholy $r_1$ a $r_2$ a potøebovali jsme záruku, aby byl $\d(W)$ opravdu minimální \rr-øez. Nyní musíme ukázat, ¾e námi nalezený \st-øez $\d(W)$ je také minimálním \rr-øezem. @@ -236,15 +237,14 @@ B Podívejme se nyní na \PGHT{} $T_1$ a naleznìme v~nìm nejlevnìj¹í hranu $e$ na cestì spojující $s$ a $r_1$. Tato hrana definuje øez $\d(U)$, co¾ je minimální $sr_1$-øez. Proto¾e $\d(X)$ je $sr_1$-øez, -$c(\d(U)) \le c(\d(X)) < c(\d(W))$. Teï si staèí uvìdomit, ¾e $v_1\in C(r_1)$, tak¾e $\d(U)$ +je $c(U) \le c(X) < c(W)$. Teï si staèí uvìdomit, ¾e $v_1\in C(r_1)$, tak¾e $\d(U)$ separuje nejenom $s$ a $r_1$, ale také $s$ a $v_1$. Tím pádem ale separuje také $s$ a $t$. -To je spor, proto¾e $c(\d(U)) < c(\d(W))$ a pøitom $\d(W)$ mìl být minimální. +To je spor, proto¾e $c(U) < c(W)$, a pøitom $\d(W)$ mìl být minimální. \qed Teï u¾ doká¾eme \GHT{} konstruovat efektivnì -- v~ka¾dém kroku vybereme dva vrcholy $s$ a $t$, -nalezneme v~èase $\O(\tau)$ minimální \st-øez, a výsledné komponenty s~pøidanými $v_1,v_2$ -zpracujeme rekurzivnì. Celou výstavbu tedy zvládneme v~èase $\O(n\tau)=\O(n^{5/3}m)$. -Nalézt minimální \st-øezy pro v¹echny dvojice pak doká¾eme v~èase $\O(n^2)$, pøípadnì -v~èase $\O(n^2\log n)$ (zále¾í na zpùsobu hledání nejlevnìj¹í hrany v~\GHT). +nalezneme v~èase $\O(\tau)$ minimální \st-øez a výsledné komponenty s~pøidanými $v_1,v_2$ +zpracujeme rekurzivnì. Celou výstavbu tedy zvládneme v~èase $\O(n\tau)$, èili $\O(n^{5/3}m)$ +pro neohodnocené grafy. \bye