]> mj.ucw.cz Git - ga.git/blob - 4-ght/4-ght.tex
5e988e66a897abbb50dc8fbb239ff12e099dadf8
[ga.git] / 4-ght / 4-ght.tex
1 \def\li{\discretionary{-}{-}{-}li}
2 \def\d{\delta}
3 \def\st{$st$}
4 \def\rr{$r_1r_2$}
5 \def\GHT{GHT}
6 \def\PGHT{ÈGHT}
7
8 \input ../sgr.tex
9
10 \prednaska{4}{Gomory-Hu Trees}{}
11
12 Cílem této kapitoly je popsat datovou strukturu, která velice kompaktnì
13 popisuje minimální $st$-øezy pro v¹echny dvojice vrcholù $s,t$ v~daném
14 neorientovaném grafu. Tuto strukturu poprvé popsali Gomory a Hu v~èlánku \cite{gomoryhu}.
15
16 Zatím umíme nalézt minimální \st-øez pro zadanou dvojici vrcholù v~neorientovaném
17 grafu v~èase $\tau=\O(n^{2/3}m)$ pro~jednotkové kapacity, $\O(n^2m)$ pro obecné.
18 Nalézt minimální \st-øez pro ka¾dou dvojici vrcholù
19 bychom tedy dokázali v~èase $\O(n^2\tau)$. Tento výsledek budeme
20 chtít zlep¹it.
21
22 \s{Znaèení:} Máme\li{} graf $(V,E)$ a $U\subseteq V$, $\d(U)$ znaèí hrany vedoucí
23 mezi $U$ a $\overline U$, formálnì tedy $\d(U)=E \cap ((U \times \overline U) \cup (\overline U \times U))$.
24 Kapacitu øezu $\d(W)$ budeme znaèit $d(W)$ a $r(s,t)$ bude kapacita nejmen¹ího \st-øezu.
25
26 \s{Pozorování:} Minimální øez rozdìluje graf jen na~dvì komponenty (v¹imnìte si, ¾e pro
27 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)$
28 pro nìjakou mno¾inu $W\subset V$.
29
30 \h{Gomory-Hu Tree}
31
32 \s{Definice:} {\I Gomory-Hu Tree} (dále jen \GHT) pro neorientovaný nezápornì ohodnocený graf $G=(V,E)$
33 je strom $T=(V,F)$ takový, ¾e pro ka¾dou hranu $st\in F$ platí: Oznaèíme-li $K_1$ a $K_2$
34 komponenty lesa $T\setminus st$, je $\d(K_1)=\d(K_2)$ minimální \st-øez.
35 [Pozor, $F$ nemusí být podmno¾ina pùvodních hran $E$.]
36
37 \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.
38
39 \>K~èemu takový \GHT{} je (existuje-li)? To nám poví následující vìta:
40
41 \s{Vìta (o~vyu¾ití \GHT):} Buï $T$ libovolný \GHT{} pro graf~$G$ a mìjme dva vrcholy $s$ a $t$. Dále
42 nech» $P$ je cesta v~$T$ mezi vrcholy $s$ a $t$ a $e$ je hrana na cestì $P$ s~minimálním $r(e)$.
43 Pak $\d(e)$ je minimální \st-øez v~$G$.
44
45 \proof Nejprve si doká¾eme jedno drobné lemmátko:
46
47 {\advance\leftskip by 2em\advance\rightskip by 2em
48 \s{Lemmátko:} Pro ka¾dou trojici vrcholù $x,y,z$ platí, ¾e:
49 $$r(x,z) \ge \min(r(x,y),r(y,z)).$$
50
51 \proof Buï $W$ minimální $xz$-øez.
52
53 \fig{4-ght-rez.eps}{\epsfxsize}
54
55 \noindent Vrchol $y$ musí být v~jedné z~komponent, Pokud je v~komponentì s~$x$, pak $r(y,z) \le d(W)$,
56 proto¾e $\d(W)$ je také $yz$-øez. Pokud v~té druhé, analogicky platí $r(x,y) \le d(W)$.
57 \qed
58 }
59
60 \noindent Zpìt k~dùkazu vìty:
61 Chceme dokázat, ¾e $\d(e)$ je minimální \st-øez. To, ¾e je to nìjaký øez, plyne z~definice \GHT.
62 Minimalitu doká¾eme indukcí podle délky cesty $P$:
63 \itemize\ibull
64 \:$\vert\,P\,\vert = 1$: Hrana $e$ je v~tomto pøípadì pøímo $st$, tak¾e i minimalita plyne z~definice \GHT.
65 \:$\vert\,P\,\vert > 1$: Cesta $P$ spojuje vrcholy $s$ a $t$, její první hranu oznaème $sx$.
66 Na¹e právì dokázané lemmátko øíká, ¾e $r(s,t) \ge \min (r(s,x),r(x,t))$.
67 Urèitì je pravda, ¾e $r(s,x) \ge r(e)$, proto¾e $e$ byla hrana cesty $P$ s~nejmen¹ím $r(e)$.
68 To, ¾e $r(x,t) \ge r(e)$, plyne z~indukèního pøedpokladu, proto¾e cesta mezi $x$ a $t$
69 je krat¹í ne¾ cesta $P$. Dostáváme tak, ¾e $r(s,t) \ge \min(r(s,x),r(x,t)) \ge r(e)$.
70 \qeditem
71 \endlist
72
73 Pokud doká¾eme \GHT{} sestrojit, nalézt minimální \st-øez pro libovolnou dvojici vrcholù
74 doká¾eme stejnì rychle jako nalézt hranu s~nejmen¹í kapacitou na cestì mezi $s$ a $t$ v~\GHT.
75 K~tomu mù¾eme pou¾ít napøíklad Sleator-Tarjanovy stromy, které tuto operaci
76 doká¾ou provést v~amortizovaném èase $\O(\log n)$, nebo mù¾eme vyu¾ít toho,
77 ¾e máme spoustu èasu na~pøedvýpoèet, a minimální hrany si pro ka¾dou dvojici
78 prostì pøichystat pøedem. Také lze vymyslet redukci na problém nalezení spoleèného
79 pøedchùdce vrcholù ve stromì (nebude to \GHT) a pou¾ít jedno z~øe¹ení tohoto problému.
80
81 \h{Konstrukce GHT}
82
83 Nyní se nauèíme \GHT{} konstruovat, èím¾ také rozptýlíme obavy o~jejich existenci.
84 Nejprve v¹ak budeme potøebovat jedno u¾iteèné lemma s~hnusnì technickým dùkazem:
85
86 \s{Hnusnì technické lemma (HTL):} Buïte¾ $s,t$ vrcholy grafu $(V,E)$, $\d(U)$ minimální \st-øez a $u\ne v$ dva rùzné
87 vrcholy z~$U$. Pak existuje mno¾ina vrcholù $W \subseteq U$ taková, ¾e $\d(W)$ je minimální $uv$-øez.
88 \foot{To dùle¾ité a netriviální je, ¾e celá $W$ le¾í v~$U$.}
89
90 \fig{4-ght-htl.eps}{\epsfxsize}
91
92 \proof Nech» je $\d(X)$ minimální $uv$-øez.
93 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$.
94 Pokud by tomu tak nebylo, mù¾eme vrcholy pøeznaèit nebo nìkterou z~mno¾in nahradit jejím doplòkem.
95
96 \checkroom{40pt}
97
98 Nyní mohou nastat následující dva pøípady:\numlist\nalpha
99 \vbox to 0pt{\vskip 10pt\rightline{\epsfysize=2.5cm\epsfbox{4-ght-htl-a.eps}}\vss}\vskip-\baselineskip
100 \:$t\not\in X$. Tehdy si v¹imneme, ¾e platí:
101 \hangindent=-14em\hangafter=-100
102 $$\eqalignno{
103 d(U \cup X) &\ge d(U),&(1) \cr
104 d(U \cap X) + d(U \cup X) &\le d(U) + d(X)&(2)}$$
105 První nerovnost plyne z toho, ¾e $\d(U \cup X)$ je nìjaký \st-øez, zatímco $\d(U)$ je minimální \st-øez.
106 Druhou doká¾eme rozborem pøípadù.
107
108 Mno¾inu vrcholù si disjunktnì rozdìlíme na $X\setminus U$, $X \cap U$, $U \setminus X$ a $\<ostatní>$.
109 Ka¾dý z~øezù vystupujících v~nerovnosti $(2)$ mù¾eme zapsat jako sjednocení hran mezi nìkterými
110 z~tìchto skupin vrcholù.
111 Vytvoøíme tedy tabulku hran mezi ètyømi oznaèenými skupinami vrcholù a ka¾dému
112 øezu z~$(2)$ oznaèíme jemu odpovídající hrany. Proto¾e je graf neorientovaný,
113 staèí nám jen horní trojúhelník tabulky.
114 Pro pøehlednosti si oznaèíme $L_1=\d(U \cap X), L_2=\d(U \cup X), P_1=\d(U)$ a $P_2=\d(X)$.
115 $$\matrix{&X\setminus U&X \cap U&U \setminus X&\<ostatní>\cr\noalign{\smallskip}
116 X\setminus U&\hbox{---}&L_1,P_1&P_1,P_2&L_2,P_2\cr
117 X \cap U&&\hbox{---}&L_1,P_2&L_1,L_2,P_1,P_2\cr
118 U \setminus X&&&\hbox{---}&L_2,P_1\cr
119 \<ostatní>&&&&\hbox{---}\cr
120 }$$
121
122 Vidíme, ¾e ke ka¾dé hranì øezu na levé stranì nerovnosti máme vpravo její protìj¹ek
123 a navíc hrany mezi $U\setminus X$ a $X \setminus U$ poèítáme jenom vpravo. Nerovnost
124 $(2)$ tedy platí.
125
126 Nyní staèí nerovnosti $(2)$ a $(1)$ odeèíst, èím¾ získáme: $$d(U \cap X) \le d(X),$$
127 co¾ spolu s~obrázkem dokazuje, ¾e $\d(U \cap X)$ je také minimální $uv$-øez.
128
129 \vbox to 0pt{\vskip 20pt\rightline{\epsfysize=2.5cm\epsfbox{4-ght-htl-b.eps}}\vss}\vskip-\baselineskip
130 \:$t\in X$. Postupovat budeme obdobnì jako v~pøedchozím pøípadì. Tentokrát se budou
131 hodit tyto nerovnosti:
132 \hangindent=-14em\hangafter=-100
133 $$\eqalignno{d(X \setminus U) &\ge d(U)&(3)\cr
134 d(U \setminus X) + d(X \setminus U) &\le d(U) + d(X)&(4)}$$
135 První platí proto, ¾e $\d(X \setminus U)$ je nìjaký \st-øez, zatímco $\d(U)$ je minimální \st-øez, druhou
136 doká¾eme opìt dùkladným rozborem pøípadù.
137
138 Oznaème $L_1=\d(U \setminus X), L_2=\d(X \setminus U), P_1=\d(U)$ a $P_2=\d(X)$ a vytvoøme tabulku:
139 $$\matrix{&X\setminus U&X \cap U&U \setminus X&\<ostatní>\cr\noalign{\smallskip}
140 X\setminus U&\hbox{---}&L_2,P_1&L_1,L_2,P_1,P_2&L_2,P_2\cr
141 X \cap U&&\hbox{---}&L_1,P_2&P_1,P_2\cr
142 U \setminus X&&&\hbox{---}&L_1,P_1\cr
143 \<ostatní>&&&&\hbox{---}\cr
144 }$$
145
146 Stejnì jako v~pøedchozím pøípadì nerovnost $(4)$ platí. Odeètením $(4)$ a $(3)$ získáme:
147 $$d(U \setminus X) \le d(X),$$
148 z~èeho¾ opìt dostaneme, ¾e $\d(U \setminus X)$ je také minimální $uv$-øez.
149 \qeditem
150 \endlist
151
152 \bigskip
153 \>Nyní se koneènì dostáváme ke konstrukci \GHT{}. Abychom mohli pou¾ívat
154 indukci, zavedeme si trochu obecnìj¹í \GHT{}.
155
156 \s{Definice:} Mìjme neorientovaný graf $(V,E)$. {\I Èásteèný Gomory-Hu Tree} (alias \PGHT{}) pro podmno¾inu vrcholù $R \subseteq V$ je dvojice $((R,F),C)$,
157 kde $(R,F)$ je strom a mno¾ina $C=\{C(r) \;\vert\; r\in R\}$ je rozklad mno¾iny vrcholù $V$. Tento rozklad
158 nám øíká, k~jakým vrcholùm \PGHT{} máme pøilepit které vrcholy pùvodního grafu.
159 Navíc musí platit, ¾e:\numlist\ndotted
160 \:$\forall r: r\in C(r)$, neboli ka¾dý vrchol \PGHT{} je pøilepen sám k~sobì, a
161 \:$\forall st \in F: \d\left(\bigcup_{r\in K_1} C(r)\right)=\d\left(\bigcup_{r\in K_2} C(r)\right)$
162 je minimální \st-øez, kde $K_1$ a $K_2$ jsou komponenty $(R,F) \setminus st$.
163 \endlist
164
165
166 \s{Vìta (o~existenci \PGHT{}):} Buï $(V,E)$ neorientovaný nezápornì ohodnocený graf. Pro ka¾dou podmno¾inu vrcholù $R$
167 existuje \PGHT{}.
168
169 \proof Doká¾eme indukcí podle velikosti mno¾iny $R$.\itemize\ibull
170 \:$\vert R \vert = 1$: \PGHT{} má jediný vrchol $r\in R$ a $C(r)=V$.
171 \:$\vert R \vert > 1$: Najdeme dvojici vrcholù $s,t\in R$ takovou, ¾e jejich minimální \st-øez $\d(W)$
172 je nejmen¹í mo¾ný. Nyní vytvoøíme graf $G_1$ z~grafu $G$ kontrahováním
173 v¹ech vrcholù mno¾iny~$W$ do~jednoho vrcholu, který oznaèíme~$v_1$, a vytvoøíme graf $G_2$ z~$G$ kontrahováním
174 v¹ech vrcholù z~$\overline W$ do jednoho vrcholu $v_2$.\foot{
175 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ì.
176 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ù
177 $W$, \<hrany> tìchto øezù celé v~podgrafu indukovaném~$W$ le¾et nemusí. K~tìmto øezùm toti¾ patøí i hrany, které
178 mají ve $W$ jenom jeden konec. Proto jsme do $G_1$ pøidali $v_1$ -- do~nìj vedou v¹echny zajímavé
179 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
180 do $v_1$ \<nejlevnìj¹í> hrana, která z~nìj vedla do mno¾iny $V\setminus W$, pøípadnì ¾ádná, pokud
181 do této mno¾iny ¾ádná hrana nevedla.}
182
183 \fig{4-ght-g1g2-before.eps}{0.45\hsize}
184 \fig{4-ght-g1g2-after.eps}{0.9\hsize}
185 \finalfix{\bigskip}
186
187 Dále vytvoøíme mno¾iny vrcholù $R_1=R \cap \overline W$ a $R_2=R \cap W$. Dle indukèního
188 pøedpokladu ($R_1$ i $R_2$ jsou men¹í ne¾ $R$) existuje \PGHT{} $T_1=((R_1,F_1),C_1)$
189 pro $R_1$ na $G_1$ a $T_2=((R_2,F_2),C_2)$ pro $R_2$ na $G_2$.
190
191 Nyní vytvoøíme \PGHT{} pro pùvodní graf. Oznaème $r_1$ ten vrchol $R_1$, pro který je $v_1 \in C_1(r_1)$,
192 a~obdobnì $r_2$. Oba \PGHT{} $T_1$ a $T_2$ spojíme hranou $r_1r_2$, tak¾e \PGHT{} pro $G$
193 bude $T=((R_1 \cup R_2,F_1 \cup F_2 \cup {r_1r_2}),C)$. Tøídy rozkladu~$C$ zvolíme tak, ¾e pro $r\in R_1$ bude $C(r)=C_1(r)\setminus\{v_1\}$
194 a pro $r\in R_2$ bude $C(r)=C_2(r)\setminus\{v_2\}$ [odebrali jsme vrcholy $v_1$ a $v_2$ z~rozkladu~$C$].
195
196 Chceme ukázat, ¾e tento $T$ je opravdu \PGHT. $C$ je urèitì rozklad v¹ech vrcholù a ka¾dé
197 $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:
198 \itemize\ibull
199 \:pro hranu \rr\ je $\d(W)$ urèitì minimální \rr-øez, proto¾e øez mezi $s$ a $t$ je souèasnì
200 i \rr-øezem a je ze v¹ech mo¾ných minimálních øezù na $R$ nejmen¹í,
201 \:pro hranu $e\ne r_1r_2$ je $\d(e)$ z~indukce minimální øez na jednom z~grafù $G_1$, $G_2$.
202 Tento øez také pøesnì odpovídá øezu v~grafu~$G$, proto¾e v~$G_1$ i v~$G_2$ jsme poèítali
203 s~hranami vedoucími do~$v_1$, $v_2$ a proto¾e jsme \PGHT{} napojili pøes vrcholy,
204 k~nim¾ byly $v_1$ a $v_2$ pøilepeny.
205
206 HTL nám navíc øíká, ¾e existuje minimální øez, který ¾ije pouze v~pøíslu¹ném z~grafù $G_1$, $G_2$,
207 tak¾e nalezený øez je minimální pro celý graf $G$.
208 \qeditem
209 \endlist
210 \endlist
211
212 Nyní víme, ¾e \GHT{} existují, a také víme, jak by se daly konstruovat. Nicménì nalezení
213 vrcholù $s,t$ tak, aby byl minimální \st-øez nejmen¹í mo¾ný, je èasovì nároèné.
214 Proto si poslední vìtu je¹tì o~nìco vylep¹íme.
215
216 \s{Vylep¹ení vìty o~existenci \PGHT{}:} Na zaèátku dùkazu není nutné hledat vrcholy $s$~a~$t$
217 takové, aby byl minimální \st-øez nejmen¹í mo¾ný. Staèí zvolit \<libovolné> vrcholy $s,t\in R$
218 a zvolit $\d(W)$ jako minimální \st-øez.
219
220 \proof Nejprve si uvìdomme, proè jsme v~pøedchozím dùkazu potøebovali, aby byl $\d(W)$ nejmen¹í ze v¹ech
221 mo¾ných \st-øezù. Bylo to jenom proto, ¾e jsme jím v~\PGHT{} nakonec separovali vrcholy $r_1$ a $r_2$
222 a potøebovali jsme záruku, aby byl $\d(W)$ opravdu minimální \rr-øez. Nyní musíme ukázat,
223 ¾e námi nalezený \st-øez $\d(W)$ je také minimálním \rr-øezem.
224
225 Pro spor tedy pøedpokládejme, ¾e nìjaký \rr-øez $\d(X)$ má men¹í kapacitu ne¾ $\d(W)$.
226 Navíc vezmìme ten pøípad, kdy se to stalo \uv{poprvé}, tak¾e pro ka¾dé men¹í $R$ je
227 v¹echno v~poøádku (to mù¾eme, proto¾e pro $\vert R \vert=1$ v¹echno v~poøádku bylo).
228
229 Proto¾e $\d(W)$ je minimální \st-øez a $\d(X)$ má men¹í kapacitu, $\d(X)$ nemù¾e separovat
230 $s$ a $t$. Pøitom ale separuje $r_1$ a $r_2$, tak¾e musí separovat buï $s$ a $r_1$, nebo $t$ a $r_2$.
231 BÚNO nech» $X$ separuje $s$ a $r_1$.
232
233 \fig{4-ght-rezx.eps}{12cm}
234
235 Podívejme se nyní na \PGHT{} $T_1$ (víme, ¾e ten je korektní) a naleznìme v~nìm nejlevnìj¹í hranu $e$ na cestì spojující $s$ a $r_1$.
236 Tato hrana definuje øez $\d(U)$, co¾ je minimální $sr_1$-øez, podle HTL i v~celém~$G$. Proto¾e $\d(X)$ je $sr_1$-øez,
237 je $d(U) \le d(X) < d(W)$. Teï si staèí uvìdomit, ¾e $v_1\in C(r_1)$, tak¾e $\d(U)$
238 separuje nejenom $s$ a $r_1$, ale také $s$ a $v_1$. Tím pádem ale separuje také $s$ a $t$.
239 To je spor, proto¾e $d(U) < d(W)$, a pøitom $\d(W)$ mìl být minimální.
240 \qed
241
242 Teï u¾ doká¾eme \GHT{} konstruovat efektivnì -- v~ka¾dém kroku vybereme dva vrcholy $s$ a $t$,
243 nalezneme v~èase $\O(\tau)$ minimální \st-øez a výsledné komponenty s~pøidanými $v_1,v_2$
244 zpracujeme rekurzivnì. Celou výstavbu tedy zvládneme v~èase $\O(n\tau)$, èili $\O(n^{5/3}m)$
245 pro neohodnocené grafy.
246
247 \references
248 \bye