From: Martin Mares Date: Sun, 24 Jan 2010 12:19:57 +0000 (+0100) Subject: Toky: Opravy preklepu X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=55d630e783aae18768e173f24a469171619b71eb;p=ads2.git Toky: Opravy preklepu --- diff --git a/1-toky/1-toky.tex b/1-toky/1-toky.tex index da0df3d..b179aec 100644 --- a/1-toky/1-toky.tex +++ b/1-toky/1-toky.tex @@ -57,7 +57,7 @@ Pak m \s{Poznámka:} Pro~na¹e pøípady pøedpokládejme, ¾e~kapacity jsou racionální. Pomìrnì nám to zjednodu¹í práci a~pøíli¹ nám to neublí¾í, nebo» práce s~reálnými èísly je stejnì pro~informatika pomìrnì zapeklitá. -\s{První øe¹ení:} Hledejme cestu $P$ ze~$z$ do~$s$ takovou, ¾e~$\forall e \in P: f(e) < c(e)$ (po~v¹ech jejích hranách teèe ostøe ménì, ne¾ jim dovolují jejich kapacity). Pak zjevnì mù¾eme tok upravit tak, aby se~jeho velikost zvìt¹ila. Zvolme $$\varepsilon := \min_{e \in P} (c(e) - f(e)).$$ Nový tok $f'$ pak definujme jako $f'(e):=f(e) + \epsilon$. Kapacity nepøekroèíme ($\epsilon$ je nejvìt¹í mo¾ná hodnota, abychom tok zvìt¹ili, ale nepøekroèili kapaicitu ani jedné z~hran cesty $P$) a~Kirchhoffovy zákony zùstanou neporu¹eny, nebo» zdroj a~stok nezahrnují a~ka¾dému jinému vrcholu na~cestì $P$ se~pøítok $f^+(v)$ i~odtok $f^-(v)$ zvìt¹í pøesnì o~$\epsilon$. +\s{První øe¹ení:} Hledejme cestu $P$ ze~$z$ do~$s$ takovou, ¾e~$\forall e \in P: f(e) < c(e)$ (po~v¹ech jejích hranách teèe ostøe ménì, ne¾ jim dovolují jejich kapacity). Pak zjevnì mù¾eme tok upravit tak, aby se~jeho velikost zvìt¹ila. Zvolme $$\varepsilon := \min_{e \in P} (c(e) - f(e)).$$ Nový tok $f'$ pak definujme jako $f'(e):=f(e) + \epsilon$. Kapacity nepøekroèíme ($\epsilon$ je nejvìt¹í mo¾ná hodnota, abychom tok zvìt¹ili, ale nepøekroèili kapacitu ani jedné z~hran cesty $P$) a~Kirchhoffovy zákony zùstanou neporu¹eny, nebo» zdroj a~stok nezahrnují a~ka¾dému jinému vrcholu na~cestì $P$ se~pøítok $f^+(v)$ i~odtok $f^-(v)$ zvìt¹í pøesnì o~$\epsilon$. \s{Otázka:} Najdeme takto ov¹em opravdu maximální tok? @@ -99,7 +99,7 @@ Uka \s{Odpovìï:} Vydá. Abychom si~to dokázali, zaveïme si~øezy a~pou¾ijme je jako certifikát maximality nalezeného toku. -\s{Definice:} {\I Øez} je uspoøádaná dvojice mno¾in vrcholù ($A,B$) taková, ¾e $A$ a $B$ jsou disjunktní, pokrývají v¹echny vrcholy, $A$ obsahuje zdroj a $B$ obsahuje tok. Neboli $A \cap B = \emptyset$, $A \cup B = V$, $z \in A$, $s \notin B$. +\s{Definice:} {\I Øez} je uspoøádaná dvojice mno¾in vrcholù ($A,B$) taková, ¾e $A$ a $B$ jsou disjunktní, pokrývají v¹echny vrcholy, $A$ obsahuje zdroj a $B$ obsahuje stok. Neboli $A \cap B = \emptyset$, $A \cup B = V$, $z \in A$, $s \in B$. \s{Definice:} {\I Hrany øezu} $E(A,B) := E \cap A \times B$. @@ -149,7 +149,7 @@ Nicm Nech» se~Fordùv-Fulkersonùv algoritmus zastaví. Definujme $A = \{v \in V ; \exists$~cesta ze~$z$ do~$v$ jdoucí po~hranách s~$r > 0\}$ a~$B = V \setminus A$. -Uvìdomme si, ¾e~($A,B$) je øez, nebo» $z \in A$ (ze~$z$ do~$z$ existuje cesta délky 0) a~$s \notin B$ (kdyby $s \in B$, tak by musela existovat cesta ze~$z$ do~$s$ s~kladnou rezervou, tudí¾ by algoritmus neskonèil, nýbr¾ tuto cestu vzal a~stávající tok vylep¹il). +Uvìdomme si, ¾e~($A,B$) je øez, nebo» $z \in A$ (ze~$z$ do~$z$ existuje cesta délky 0) a~$s \in B$ (kdyby $s \not\in B$, tak by musela existovat cesta ze~$z$ do~$s$ s~kladnou rezervou, tudí¾ by algoritmus neskonèil, nýbr¾ tuto cestu vzal a~stávající tok vylep¹il). Dále víme, ¾e~v¹echny hrany øezu mají nulovou rezervu, neboli $\forall uv \in E(A,B) : r(uv) = 0$ (kdyby mìla hrana $uv$ rezervu nenulovou, tedy kladnou, tak by vrchol $v$ patøil do~$A$). Proto po~v¹ech hranách øezu vedoucích z~$A$ do~$B$ teèe tolik, kolik jsou kapacity tìchto hran, a~po~hranách vedoucích z~$B$ do~$A$ neteèe nic, tedy $f(uv) = c(uv)$ a $f(vu) = 0$. Máme øez $(A,B)$ takový, ¾e~$f(A,B) = c(A,B)$. To znamená, ¾e~jsme na¹li maximální tok a~minimální øez. \qed