X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=10-decomp%2F10-decomp.tex;h=03d484d44c759ff3ecbcbba2206d7c989c0a28a3;hb=b959c38583c5f82ef4040444f2800f7726ebedf2;hp=1be6170957fd8354faf25e16606c5c877546136f;hpb=35db8769addf022e6d89c2758b6795078ec45874;p=ga.git diff --git a/10-decomp/10-decomp.tex b/10-decomp/10-decomp.tex index 1be6170..03d484d 100644 --- a/10-decomp/10-decomp.tex +++ b/10-decomp/10-decomp.tex @@ -1,6 +1,6 @@ \input ../sgr.tex -\prednaska{10}{Dekompozice stromù}{zapsal Ale¹ ©nupárek} +\prednaska{10}{Dekompozice stromù}{} V~této kapitole uká¾eme nìkolik datových struktur zalo¾ených na~my¹lence dekompozice problému na~dostateènì malé podproblémy, @@ -49,7 +49,7 @@ m bude omezena $\O(\log n)$.% \foot{Mimochodem, Path compression samotná by také na~slo¾itost $\O(\log n)$ amortizovanì staèila.} -\s{Vìta:} (Tarjan et al.) Kombinace Union by rank a Path compression vede k~amortizované +\s{Vìta:} (Tarjan, van Leeuwen \cite{tarjan84setunion}) Kombinace Union by rank a Path compression vede k~amortizované slo¾itosti obou operací $\O(\alpha(n))$, kde $\alpha$ je inverzní Ackermannova funkce.% \foot{Existuje varianta tohoto algoritmu, která dosahuje stejné slo¾itosti i v~nejhor¹ím pøípadì; té¾ je známo, ¾e asymptoticky lep¹í slo¾itosti nelze dosáhnout.} @@ -59,7 +59,8 @@ p Dále nás bude zajímat speciální varianta Union-Find problemu, v~ní¾ dopøedu známe posloupnost unionù, èili strom, který spojováním komponent vznikne. Popí¹eme algoritmus, který po~poèáteèním pøedzpracování v~èase $\O(n)$ zvládne \ i \ v~amortizovanì -konstantním èase. +konstantním èase. Tento algoritmus je kombinací dekompozic popsaných v~\cite{alstrup97optimal} +a \cite{alstrup98marked}. \s{Definice:} {\I (Microtree/Macrotree dekompozice)} Pro zakoøenìný strom $T$ o~$n$ vrcholech definujeme: @@ -157,15 +158,19 @@ zda je p \:Odpovíme podle struktury pro makrostrom. \endalgo -\s{Analýza:} Operace s~mikrostromy, spojovacími hranami a cestami jsou, jak u¾ víme, -amortizovanì konstantní. Operace s~makrostromy také, jeliko¾ trvají $\O(\log n)$, -ale provede se jich pouze $\O(n/\log n)$. Ka¾dou operaci \ nebo \ -rozlo¾íme $\O(1)$ tìchto dílèích operací, tak¾e bude také trvat $\O(1)$ amortizovanì. +\s{Analýza:} Operace \ trvá konstantní èas, proto¾e se rozlo¾í na~$\O(1)$ \ù +v~dílèích strukturách a ka¾dý z~nich trvá konstantnì dlouho. V¹ech $n$ operací \ +trvá $\O(n)$, jeliko¾ zpùsobí $\O(n)$ amortizovanì konstantních operací s~mikrostromy, spojovacími +hranami a cestami a $\O(n/\log n)$ operací s~makrostromy, které trvají $\O(\log n)$ amortizovanì +ka¾dá.% +\foot{To je v~prùmìru $\O(1)$ na~operaci a dokonce i amortizovanì, pokud necháme inicializaci +struktury, která je lineární, naspoøit potenciál $\O(n)$, ze~kterého budeme prùbì¾nì platit +sluèování v~makrostromu.} \h{Fredericksonova clusterizace} Mikro/makro-stromová dekompozice není jediný zpùsob, jak stromy rozkládat. Nìkdy -se hodí napøíklad následující my¹lenka: +se hodí napøíklad následující my¹lenka: \cite{frederickson91ambivalent} \s{Definice:} (Fredericksonova clusterizace) Nech» $G$ je graf s~vrcholy stupòù nejvý¹e~3 a $c\ge 1$. Pak $c$-clusterizací grafu $G$ nazveme libovolný rozklad @@ -205,7 +210,7 @@ spole \:\dots\ co dál? \endlist -Vìrni vtipùm o~matfyzácích pøevedeme radìji tento problém na~jiný: +\>Vìrni vtipùm o~matfyzácích a èlánku \cite{bender00lca} pøevedeme radìji tento problém na~jiný. \s{Problém:} {\I (Range Minimum Query alias RMQ)} Chceme pøedzpracovat posloupnost èísel $a_1,\ldots a_n$ tak, abychom umìli rychle poèítat $\min_{x\le i\le y} a_i$.% @@ -278,4 +283,5 @@ V \s{Vìta:} Problémy LCA i RMQ je mo¾né øe¹it v~konstantním èase na~dotaz po~pøedzpracování v~lineárním èase. +\references \bye