From: Martin Mares Date: Tue, 1 Apr 2008 16:19:29 +0000 (+0200) Subject: Started with robust contractions. X-Git-Tag: printed~147 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=7410c61b6118068ca55e3be90f0e92e8057d24a3;p=saga.git Started with robust contractions. --- diff --git a/adv.tex b/adv.tex index da6d941..6836d43 100644 --- a/adv.tex +++ b/adv.tex @@ -407,7 +407,7 @@ we conserve the current tree and start with a~different vertex and an~empty heap process runs out of vertices, it has identified a~sub-forest of the MST, so we can contract the graph along the edges of~this forest and iterate. -\algn{Iterated Jarn\'\i{}k; Fredman and Tarjan \cite{ft:fibonacci}} +\algn{Iterated Jarn\'\i{}k; Fredman and Tarjan \cite{ft:fibonacci}}\id{itjar}% \algo \algin A~graph~$G$ with an edge comparison oracle. \:$T\=\emptyset$. \cmt{edges of the MST} diff --git a/mst.tex b/mst.tex index b915272..85c8b45 100644 --- a/mst.tex +++ b/mst.tex @@ -244,7 +244,7 @@ of choosing the rules in this procedure, which justifies the name meta-algorithm We will denote the unique minimum spanning tree of the input graph by~$T_{min}$. We intend to prove that this is also the output of the procedure. -\lemman{Blue lemma}% +\lemman{Blue lemma}\id{bluelemma}% When an edge is colored blue in any step of the procedure, it is contained in the minimum spanning tree. \proof diff --git a/opt.tex b/opt.tex index 7ffcac3..95acd7e 100644 --- a/opt.tex +++ b/opt.tex @@ -509,6 +509,36 @@ by rebuilding the whole data structure completely after $n/2$ deletes. This increases the number of potentially corrupted items, but at worst twice, so it suffices to decrease~$\varepsilon$ twice. +\section{Robust contractions} + +Having the soft heaps at hand, we would like to use them in a~conventional MST +algorithm in place of a~usual heap. The most efficient specimen of a~heap-based +algorithm we have seen so far is the Iterated Jarn\'\i{}k's algorithm (\ref{itjar}). +It is based on a~simple, yet powerful idea: Use the Jarn\'\i{}k's algorithm with +limited heap size, so that it stops when the tree becomes large. Grow multiple +such trees, always starting in vertex not visited yet. All these trees lie in the +MST, so by the Contraction lemma (\ref{contlemma}) we can contract each of them +to a~single vertex and iterate the algorithm on the resulting graph. + +We can try implanting the soft heap in this algorithm (preferably in the original +version without active edges \ref{jarnik} as we the soft heap lacks the \ +operation) and patching the holes by some sort of duct tape. This honest, but somewhat +simple-minded attempt is however doomed to fail. The reason is of course the corruption of +items inside the heap, which leads to increase of weights of a~subset of edges. In presence +of corrupted edges, most of the theory we have so carefully built breaks down. For example, +the Blue lemma (\ref{bluelemma}) now holds only when we consider a~cut with no corrupted +edges, with a~possible exception of the lightest edge of the cut. Similarly, the Red lemma +(\ref{redlemma}) is true only if the heaviest edge on the cycle is not corrupted. + +There is fortunately some light in this darkness. While the basic structural +properties of MST's no longer hold, there is a~weaker form of the Contraction +lemma which takes the corrupted edges into account. Before we prove this lemma, +we will expand our awareness of subgraphs which can be contracted. + +\defn +A~subgraph $C\subset G$ is \df{contractible} iff for every pair of edges $e,f\in\delta(C)$\foot{That is, +with one endpoint in~$C$.} the subset + \endpart