]> mj.ucw.cz Git - ads2.git/commitdiff
Dalsi hrst preklepu (diky Honzovi Volcovi).
authorMartin Mares <mj@ucw.cz>
Mon, 7 Jan 2008 10:00:52 +0000 (11:00 +0100)
committerMartin Mares <mj@ucw.cz>
Mon, 7 Jan 2008 10:00:52 +0000 (11:00 +0100)
2-toky/2-toky.tex
4-goldberg/4-goldberg.tex
5-sortnet/5-sortnet.tex
7-ac/7-ac.tex

index b360913c4f603f1581da0fc237d5dd54d4e34208..31a572119f3298d40e1db917514502a9a967ae2b 100644 (file)
@@ -64,7 +64,7 @@ $S(A,B)$ pak bude tvo
 
 Nyní si v¹imneme, ¾e velikost toku mù¾eme mìøit pøes libovolný separátor: je to mno¾ství
 tekutiny, které teèe pøes separátor z~$A$ do~$B$ minus to, které se vrací zpátky
-(zatím jsme velikost mìøili u~zdroje, vlastnì na~triviálním separátoru $A=\{v\}$, $B=\overline A).$
+(zatím jsme velikost mìøili u~zdroje, vlastnì na~triviálním separátoru $A=\{z\}$, $B=\overline A).$
 
 \s{Lemma:} Nech» $A\subseteq V(G),z\in A,s\not\in A$ a $f$ je libovolný tok. Potom platí,
 ¾e: $$\vert f\vert=f(A,\overline A)-f(\overline A,A).$$
index 6d22bba17d03144a695e50d4184a1d0a0b5dff20..56f39ca79669a48a87d7952d36f29539018b57ff 100644 (file)
@@ -1,4 +1,4 @@
-%version 1.6
+%version 1.8
 
 \input lecnotes.tex
 
@@ -29,7 +29,7 @@ D
 Pokud platí, ¾e:
 \numlist \ndotted
        \:ve~vrcholu~$u$ je nenulový pøebytek, tj. $f^{\Delta}(u) > 0$,
-       \:vrchol~$u$ je vý¹ ne¾ vrchol~$v$, tj. $h(u) > h(v)$ a
+       \:vrchol~$u$ je vý¹ ne¾ vrchol~$v$, tj. $h(u) > h(v)$, a
        \:hrana $uv$ má nenulovou rezervu, tj. $r(uv)>0$,
 \endlist
 \noindent pøevedeme tok o~velikosti $\delta:=\min(f^{\Delta}(u),r(uv))$ z~$u$ do~$v$ tímto zpùsobem:
@@ -53,7 +53,7 @@ Pokud b
 \:$\forall e \in E: f(e)\leftarrow 0$ (po~hranách na~poèátku nenecháme protékat nic).
 \:$\forall zu \in E : f(zu)\leftarrow c(zu)$ (ze~zdroje pustíme maximální mo¾nou vlnu).
 \:Dokud $\exists u \in V \setminus \{z,s\}, f^{\Delta}(u)>0$: 
-\::Pokud $\exists uv \in E, r(uv)>0$ a $h(u)>h(v)$, pøevedeme pøebytek po~hranì $uv$.
+\::Pokud $\exists uv \in E, r(uv)>0$ a $h(u)>h(v)$: pøevedeme pøebytek po~hranì $uv$.
 \::V~opaèném pøípadì zvedneme $u$.
 \:Vrátíme tok $f$ jako výsledek.
 \endalgo
@@ -78,7 +78,7 @@ Pod
 \proof
 Nejprve uká¾eme, ¾e $f$ je tok, a pak jeho maximalitu. Vyjdìme z~toho, ¾e $f$ je vlna a algoritmus se mù¾e zastavit, jen pokud nastanou oba následující pøípady souèasnì:
 \itemize\ibull
-\:Ve~vrcholech grafu nejsou ¾ádné pøebytky (mimo $z$ a $s$), proto¾e jinak by se algoritmus nezastavil a pokraèoval dále ve~výpoètu. Tudí¾ $f$ je tok. %todo check ? mimo~ ?
+\:Ve~vrcholech grafu nejsou ¾ádné pøebytky (mimo $z$ a~$s$), proto¾e jinak by se algoritmus nezastavil a pokraèoval dále ve~výpoètu. Tudí¾ $f$ je tok.
 \:Neexistuje nenasycená cesta ze~zdroje do~stoku, èím¾ z~{\I Ford-Fulkersonovy vìty} okam¾itì vyplývá, ¾e $f$ je tok maximální. A jak tuto neexistenci nahlédneme? Pro~spor pøedpokládejme, ¾e nìjaká nenasycená cesta~$P$ ze~$z$ do~$s$ existuje. Tato cesta mù¾e mít maximálnì $N-1$ hran. O~nich víme, ¾e v¹echny mají kladnou rezervu, a dále víme, ¾e po~celou dobu výpoètu je vý¹ka zdroje $N$ a vý¹ka stoku $0$. Tak¾e celkový spád cesty $P$ je $N$, co¾ ale znamená, ¾e na cestì $P$ existuje hrana s~kladnou rezervou, která má spád alespoò $2$. To je v¹ak v~rozporu s~invariantem~S.
 \qeditem
 \endlist
index 01bf212d80dde126955580347e312e9928246176..19b3489e63bf836abe75b9894ecfc74b15851316 100644 (file)
@@ -121,7 +121,7 @@ $x_k,x_{k+1 \bmod n},\dots, x_{k+n-1 \bmod n}$ je 
 \s{Definice:} {\I Separátor $S_n$}
 je sí», ve které jsou v¾dy~$i$-tý a~$(i+{n/2})$-tý prvek vstupu
 (pro $i=0,\dots, {n/2}-1$) propojeny komparátorem, minimum bude~$i$-tým,
-maximum  $(i+1)$-ním prvkem výstupu.
+maximum  $(i+{n/2})$-ním prvkem výstupu.
 \figure{sortnet.3} 
 {$(y_i, y_{i+{n/2}}) = CMP(x_i, x_{i+{n/2}})$} {300pt}
 
@@ -139,7 +139,7 @@ posloupnost -- najdeme nejmen
 se prohodí. Pokud ho nenajdeme, separátor neudìlá vùbec nic a~obì
 tvrzení lemmatu zøejmì tedy platí. Øeknìme, ¾e $x_m$ je maximum
 vstupní posloupnosti. Pak~$k$ bude jistì men¹í ne¾~$m$
-a~$x_{k+{n/2}}$ bude vìt¹í ne¾~$m$, mezi~$k$ a~$m$ je tedy vstupní
+a~$k+{n/2}$ bude vìt¹í ne¾~$m$, mezi~$k$ a~$m$ je tedy vstupní
 posloupnost neklesající, mezi $k+{n/2}$ a~$n-1$ nerostoucí.
 Uvìdomíme si, ¾e pro ka¾dé~$i$, $k\leq i\leq {n/2}-1$ se prvky
 $x_i$ a~$x_{i+{n/2}}$ prohodí. Úsek mezi~$k$ a~${n/2}-1$ tedy
index 5030f062011959209be540243fe568a0078b4810..aae6d77f6bd08357c0cb9b49df1ed56220744997 100644 (file)
@@ -30,8 +30,8 @@ Te
 \itemize\ibull
 \:Projdeme v¹echy zpìtné hrany a vypí¹eme slova, jen¾ v daných stavech konèí. Toto øe¹ení funguje, ale je pomalé, proto¾e procházíme v¹echny zpìtné hrany.
 \:Pøedpoèítání mno¾in. Najdeme mno¾inu slov tak, aby celková velikost slov byla vìt¹í ne¾ lineární. Funkèní, ale konstrukce je pomalá.
-\:$\<slovo>(s) =$ index slova $\iota$, které konèí ve stavu $s$, nebo 0, \par
-$\<out>(s) =$ nejbli¾¹í vrchol, do kterého se lze z $s$ dostat po zpìtných hranách a $\<slovo>(v) \ne 0$ (konèí tam slovo).
+\:$\<slovo>(s)$ je index slova $\iota$, které konèí ve stavu $s$ nebo 0. \par
+$\<out>(s)$ je nejbli¾¹í vrchol, do kterého se lze z $s$ dostat po zpìtných hranách a $\<slovo>(v) \ne 0$ (konèí tam slovo).
 \figure{Graphic2.eps}{Vyhledávací automat -- se zpìtnými hranami}{1.3in}
 \endlist
 
@@ -40,7 +40,7 @@ $\<out>(s) =$ nejbli
 \:$s \leftarrow \<koøen>$ ($s$ je aktuální stav vyhledávacího automatu).
 \:Procházíme v¹echny písmena $c$ v senì $\sigma$:
 \::$s \leftarrow krok(s,c)$.
-\::Je-li $\<slovo>(s) \ne 0 \Rightarrow$ vypí¹eme $\<slovo>(s)$.
+\::Pokud $\<slovo>(s) \ne 0$: vypí¹eme $\<slovo>(s)$.
 \::$v \leftarrow out(s)$.
 \::Dokud $v \ne 0 $:
 \:::Vypí¹eme $\<slovo>(v)$.
@@ -68,10 +68,10 @@ Prvn
 \:Postavíme strom dopøedných hran, $r \leftarrow$ koøen stromu.
 \:Spoèteme $\<slovo>(\ast)$ (spoèteme funkci \<slovo> pro v¹chny stavy).
 \:Spoèteme $z(\ast)$: $z(\beta)=\alpha(\beta[1:])$.
-\itemize\ibull
-\:$z(\beta) = \alpha(\beta[1:])$ -- v¹echny zpìtné hrany vedou do vy¹¹ích hladin
-\:$z(v) = \<krok>(z(u),c)$
-\endlist
+    {\parindent=6em \itemize\ibull
+    \:\>\>\>$z(\beta) = \alpha(\beta[1:])$ -- v¹echny zpìtné hrany vedou do vy¹¹ích hladin
+    \:$z(v) = \<krok>(z(u),c)$
+    \endlist}
 \figure{Graphic100.eps}{$\<z>(v) = \<krok>(z(u),c)$}{0.7in}
 \:$z(r) \leftarrow 0$, do fronty $Q$ pøiøadíme v¹echny syny $r$, pro v¹echny $v$ prvky $Q: z(v) \leftarrow r$.
 \:Dokud fronta $Q$ není prázdná:
@@ -87,7 +87,8 @@ Prvn
 \figure{vyhl_automat_full.eps}{Vyhledávací automat -- kompletní}{1in}
 
 \s{Vìta:}
-Algoritmus A-C najde v¹echny výskyty slov $\iota_1, \ldots, \iota_k$ ve slove $\sigma$ v èase: $$\O(\Sigma_i \vert \iota_i \vert + \vert \sigma \vert + \<poèet výskytù>).$$
+Algoritmus Aho-Corasicková najde v¹echny výskyty slov $\iota_1, \ldots, \iota_k$ ve~slovì $\sigma$ v~èase $\O(\sum_i \vert \iota_i \vert + \vert \sigma \vert + \<poèet výskytù>).$
+\qed
 
 \h{Polynomy a násobení}
 \>Mìjme dva polynomy definované jako:
@@ -117,12 +118,10 @@ $$P(x) = (p_0 + p_2 x^2 + \ldots + p_{n-2}x^{n-2}) + x(p_1 + p_3 x^2 + \ldots +
 $$ \vdots $$
 $$P(x) = L(x^2) + xN(x^2),$$
 $$P(-x) = L(x^2) - xN(x^2),$$
-kde $L(x)$ a $N(x)$ jsou polynomy stupnì $n/2$. Umocnìním $x^2$ se nám poru¹í párování $x$ a $-x$, proto musíme poèítat v $\bb{C}$.
-Musíme si ale uvìdomit, ¾e tyto vztahy platí pouze, kdy¾ existuje pár $-x$ a $x$ v tìlese, nad kterým poèítáme. V~tomto pøípadì jsme z~polynomu s~$n$ koeficienty v~$n$ bodech dostali $2$ polynomy s~$n/2$ koeficienty v~$n/2$ bodech. Z~toho vyplývá èasová slo¾itost definována vztahem:
+kde $L(x)$ a $N(x)$ jsou polynomy stupnì $n/2$. Umocnìním $x^2$ se nám poru¹í párování $x$ a $-x$, proto musíme poèítat v~$\bb{C}$ místo~$\bb{R}$.
+V~tomto pøípadì jsme z~polynomu s~$n$ koeficienty v~$n$ bodech dostali $2$ polynomy s~$n/2$ koeficienty v~$n/2$ bodech. Z~toho vyplývá èasová slo¾itost definována vztahem:
 $$T(n) = 2T(n/2) + \O(n).$$
 Ten mù¾eme vyøe¹it s pou¾itím Master Theoremu z~ADS~I a dostaneme:
 $$T(n) = \O(n \log n).$$
 
 \bye
-
-