]> mj.ucw.cz Git - saga.git/commitdiff
First bits of fully dynamic connectivity.
authorMartin Mares <mj@ucw.cz>
Fri, 11 Apr 2008 13:09:55 +0000 (15:09 +0200)
committerMartin Mares <mj@ucw.cz>
Fri, 11 Apr 2008 13:09:55 +0000 (15:09 +0200)
biblio.bib
dyn.tex

index f5d6355554a2999c386580540ac9cb990a34075b..fe0e1df6d167d6b844af75eee3bb30808f238691 100644 (file)
   pages={502--516},
   year={1999}
 }
+
+@article{ holm:polylog,
+  title={{Poly-logarithmic deterministic fully-dynamic algorithms for connectivity, minimum spanning tree, 2-edge, and biconnectivity}},
+  author={Holm, J. and de Lichtenberg, K. and Thorup, M.},
+  journal={Journal of the ACM (JACM)},
+  volume={48},
+  number={4},
+  pages={723--760},
+  year={2001},
+  publisher={ACM Press New York, NY, USA}
+}
+
+@article{ frederickson:dynamic,
+  title={{Data structures for on-line updating of minimum spanning trees, with applications}},
+  author={Frederickson, G. N.},
+  journal={SIAM Journal of Computing},
+  volume={14},
+  pages={781--798},
+  year={1985}
+}
+
+@article{ eppstein:sparsify,
+  title={{Sparsification --- a technique for speeding up dynamic graph algorithms}},
+  author={Eppstein, D. and Galil, Z. and Italiano, G.F. and Nissenzweig, A.},
+  journal={Journal of the ACM},
+  volume={44},
+  number={5},
+  pages={669--696},
+  year={1997},
+  publisher={ACM Press New York, NY, USA}
+}
+
+@article{ henzinger:mst,
+  title={{Maintaining minimum spanning trees in dynamic graphs}},
+  author={Henzinger, M.R. and King, V.},
+  journal={Proceedings of the 24th International Colloquium on Automata, Languages and Programming},
+  pages={594--604},
+  year={1997},
+  publisher={Springer}
+}
+
+@mastersthesis { mares:dga,
+  title={{Dynamick\'e grafov\'e algoritmy}},
+  author={Martin Mare\v{s}},
+  school={Charles University in Prague, Faculty of Math and Physics},
+  year={2000}
+}
+
+
diff --git a/dyn.tex b/dyn.tex
index 9779f73b595d446d37f13e48b6fb5e3361340144..318e7c34186a0f0b4cbdbead7ca0c888bedf59d0 100644 (file)
--- a/dyn.tex
+++ b/dyn.tex
@@ -335,5 +335,36 @@ in the graph. If we keep the spanning forest in ET-trees with $a=\log n$, the up
 data structure cost an~extra $\O(\log^2 n / \log\log n)$, but queries accelerate to $\O(\log
 n/\log\log n)$.
 
+%--------------------------------------------------------------------------------
+
+\section{Dynamic connectivity}
+
+The fully dynamic connectivity problem has a~long and rich history. In the 1980's, Frederickson \cite{frederickson:dynamic}
+has used his topological trees to construct a~dynamic connectivity algorithm of complexity $\O(\sqrt m)$ per update
+$\O(1)$ per query. Eppstein et al.~\cite{eppstein:sparsify} have introduced a~sparsification technique which can bring the
+updates down to $\O(\sqrt n)$. Later, several different algorithms with complexity on the order of $n^\varepsilon$
+were presented by Henzinger and King \cite{henzinger:mst} and also by Mare\v{s} \cite{mares:dga}.
+A~polylogarithmic time bound was first reached by the randomized algorithm of Henzinger and King \cite{henzinger:randdyn}.
+The best result known as of now is the $\O(\log^2 n)$ time deterministic algorithm by Holm,
+de~Lichtenberg and Thorup \cite{holm:polylog}, which will we describe in this section.
+
+The algorithm will maintain a~spanning forest~$F$ of the current graph~$G$, represented by an~ET-tree
+which will be used to answer connectivity queries. The edges of~$G\setminus F$ will be stored as~non-tree
+edges in the ET-tree. Hence, an~insertion of an~edge to~$G$ either adds it to~$F$ or inserts it as non-tree.
+Deletions of non-tree edges are also easy, but when a~tree edge is deleted, we have to search for its
+replacement among the non-tree edges.
+
+To govern the search in an~efficient way, we will associate each edge~$e$ with a~level $\ell(e) \le
+L = \lfloor\log_2 n\rfloor$. For each level~$i$, we will use~$F_i$ to denote the subforest
+of~$F$ containing edges of level at least~$i$. Therefore $F=F_0 \supseteq F_1 \supseteq \ldots \supseteq F_L$.
+We will maintain the following \em{invariants:}
+
+\numlist\ndotted
+\:$F$~is the maximum spanning forest of~$G$ with respect to the levels. In other words,
+       if $uv$ is a~non-tree edge, then $u$ and~$v$ are connected in~$F_{\ell(uw)}$.
+\:For each~$i$, the components of~$F_i$ have at most $\lfloor n/2^i \rfloor$ vertices.
+       This implies that all~$F_i$ for $i>L$ are empty.
+\endlist
+
 
 \endpart