From 68b10fb958ebbf4112b5cf3d2a0f1ad58eedc11d Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Fri, 11 Apr 2008 15:09:55 +0200 Subject: [PATCH] First bits of fully dynamic connectivity. --- biblio.bib | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ dyn.tex | 31 +++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) diff --git a/biblio.bib b/biblio.bib index f5d6355..fe0e1df 100644 --- a/biblio.bib +++ b/biblio.bib @@ -1306,3 +1306,52 @@ 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 9779f73..318e7c3 100644 --- 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 -- 2.39.2