]> mj.ucw.cz Git - ga.git/commitdiff
New.
authorMartin Mares <mj@ucw.cz>
Fri, 29 Dec 2006 20:52:35 +0000 (21:52 +0100)
committerMartin Mares <mj@ucw.cz>
Fri, 29 Dec 2006 20:52:35 +0000 (21:52 +0100)
8-qheap/8-qheap.tex

index c56b9457421a597ee908ebd9a6bbffd660acf108..bf7e68be3a511155ecb4ba2502a1d8100228d487 100644 (file)
@@ -1,6 +1,3 @@
-\def\X{{\cal X}}
-\def\B{{\cal B}}
-\def\and{\ \&\ }
 \def\msb{{\rm MSB}}
 \def\rank{{\rm Rank}}
 
@@ -15,7 +12,7 @@
 \prednaska{8}{Q-Heaps}{zapsal Cyril Strejc}
 
 V~minulé pøedná¹ce jsme mimo jiné ukázali výpoèetní model RAM a nahlédli jsme,
-¾e pomocí RAMu mù¾eme celkem snadno (v konstatním èase) simulovat vektorový poèítaè.
+¾e pomocí RAMu mù¾eme celkem snadno (v konstantním èase) simulovat vektorový poèítaè.
 Kdy¾ u¾ máme vektorový poèítaè, pojïme si ukázat, jaké datové struktury s~ním mù¾eme
 vytváøet.
 
@@ -47,7 +44,7 @@ vektory ve
 $Bk=\O(w)$. Jeliko¾ strom má a¾~$B^h$ listù a nejvý¹e tolik vnitøních vrcholù,
 ukazatele zabírají $\O(h\log B)$ bitù, tak¾e pro vektory ukazatelù potøebujeme
 $Bh\log B=\O(w)$. Dobrá volba je napøíklad $B=k=\sqrt w$, $h=\O(1)$, èím¾
-získáme strukturu obsahující $w^{\O(1)}$ prvkù o~$\sqrt w$ bitech pracuji
+získáme strukturu obsahující $w^{\O(1)}$ prvkù o~$\sqrt w$ bitech pracují
 v~konstantním èase.
 
 \h{Q-Heap}
@@ -86,7 +83,7 @@ si pamatovat minimum podstromu a Q-Heap s~hodnotami jeho syn
 ka¾dé vlo¾ení i odebrání prvku pøevést na~konstantnì mnoho operací s~Q-Heapy.
 
 \s{Náèrt} fungování Q-Heapu:
-Nad~prvky $x_1,\ldots,x_r$ sestrojíme komprimovanou trii~$T$ (nevìtvicí se cesty
+Nad~prvky $x_1,\ldots,x_r$ sestrojíme komprimovanou trii~$T$ (nevìtvící se cesty
 nahradíme hranami). Listy trie budou jednotlivá $x_i$, vnitøní vrchol,
 který le¾í mezi $x_i$ a $x_{i+1}$, bude testovat $c_i$-tý bit èísla.
 Pokud budeme hledat nìkteré z~$x_i$, tyto vnitøní vrcholy (budeme jim
@@ -108,7 +105,7 @@ sou
 \:$\msb(x \oplus x_i)$
 \endlist
 
-\s{Dùkaz:} Pokud $x=x_i$, je zjevnì $\rank_\X(x) = i$. Pøedpokládejme tedy $x\ne x_i$.
+\s{Dùkaz:} Pokud $x=x_i$, je zjevnì $\rank_X(x) = i$. Pøedpokládejme tedy $x\ne x_i$.
 Hodnoty znaèek klesají ve~smìru od koøene k~listùm a na cestì od koøene k~$x_i$ se
 v¹echny bity v $x_i$ na~pozicích urèených znaèkami shodují s bity v $x$, pøièem¾
 a¾ do~pozice $c_i$ se shodují i bity znaèkami netestované. Sledujme tuto cestu
@@ -120,9 +117,9 @@ je jedni
 jsou men¹í.
 \qed
 
-\s{Pøíklad:} Vezmìme mno¾inu $\X=\{x_1,x_2,\ldots,x_6\}$ z pøedchozího pøíkladu
-a poèítejme $\rank_\X(011001)$. Místo první neshody je oznaèeno puntíkem.
-Platí $x>x_i$, tedy celý podstrom je men¹í ne¾ $x$, proèe¾ $\rank_\X(011001)=4$.
+\s{Pøíklad:} Vezmìme mno¾inu $X=\{x_1,x_2,\ldots,x_6\}$ z pøedchozího pøíkladu
+a poèítejme $\rank_X(011001)$. Místo první neshody je oznaèeno puntíkem.
+Platí $x>x_i$, tedy celý podstrom je men¹í ne¾ $x$, proèe¾ $\rank_X(011001)=4$.
 
 Rádi bychom pøedchozí lemma vyu¾ili k~sestrojení tabulek, které podle uvedených
 hodnot vrátí rank prvku~$x$. K~tomu potøebujeme pøedev¹ím umìt indexovat tvarem
@@ -142,7 +139,7 @@ ekvivalentn
 \:$C: \{1,\ldots,r\} \to B: B[C(i)]:=c_i$.
 \endlist
 
-\s{Lemma 1':} $\rank_X(x)$ lze spoèítat v~konstatním èase~z:
+\s{Lemma 1':} $\rank_X(x)$ lze spoèítat v~konstantním èase~z:
 \numlist\pnromanap
 \:funkce $C$
 \:$x_1,\ldots,x_r$
@@ -154,7 +151,7 @@ ekvivalentn
 \:Tvar stromu závisí jen na~vzájemných vztazích mezi polohami znaèek,
   tak¾e je jednoznaènì urèený funkcí~$C$.
 \:Z~tvaru stromu a $x[B]$ jednoznaènì plyne list $x_i$ a tyto vstupy
-  jsou dostatenènì krátké na~to, abychom mohli pøedpoèítat tabulku.
+  jsou dostateènì krátké na~to, abychom mohli pøedpoèítat tabulku.
 \:Zjistíme prostým porovnáním.
 \:$x_i$ známe a MSB umíme na~RAMu poèítat v~konstantním èase.
 \endlist
@@ -175,7 +172,7 @@ po
 \:$X=\{x_1,\ldots,x_r\}$ -- hodnoty prvkù v libovolném poøadí (pole èísel)
 \:$\varrho$ -- permutace na~$\{1,\ldots,r\}$ taková, ¾e $x_i=X[\varrho(i)]$
   a $x_1<x_2<\ldots<x_r$ (vektor o~$r\cdot\log r$ bitech)
-\:$B$ -- mno¾ina \uv{zajímavých} bitových pozic (setøidìný vektor o~$r\cdot\log w$ bitech)
+\:$B$ -- mno¾ina \uv{zajímavých} bitových pozic (setøídìný vektor o~$r\cdot\log w$ bitech)
 \:$C$ -- funkce popisující znaèky: $c_i=B[C(i)]$ (vektor o~$r\cdot r$ bitech)
 \endlist
 
@@ -191,7 +188,7 @@ po
 \s{Insert(x)}
 
 \algo
-\:$i := \rank_\X(x)$
+\:$i := \rank_X(x)$
 \:Pokud $x=x_i$, hodnota u¾ je pøítomna.
 \:Ulo¾íme $x$ do~pole~$X$ a vlo¾íme jeho pozici na~$i$-té místo v~permutaci~$\varrho$.
 \:Pøepoèítáme $c_{i-1}$ a $c_i$. Pro ka¾dou zmìnu $c_j$:
@@ -203,7 +200,7 @@ po
 \s{Delete(x)}
 
 \algo
-\:$i := \rank_\X(x)$ (víme, ¾e $x_i=x$).
+\:$i := \rank_X(x)$ (víme, ¾e $x_i=x$).
 \:Sma¾eme $x_i$ z~pole~$X$ (napøíklad prohozením s~posledním prvkem) a pøíslu¹nì upravíme~$\varrho$.
 \:Pøepoèítáme $c_{i-1}$ a $c_i$ a upravíme $B$ a $C$ jako pøi Insertu.
 \endalgo
@@ -213,3 +210,5 @@ po
 \todo{Aplikace na~kostry.}
 
 \bye
+
+% LocalWords:  MSB Vlozeni