From: Martin Mares Date: Fri, 1 Feb 2008 10:43:09 +0000 (+0100) Subject: Named the Active Edge Jarnik's algorithm. X-Git-Tag: printed~259 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=42837849b8cc691427f7b2472a18245858750174;p=saga.git Named the Active Edge Jarnik's algorithm. --- diff --git a/adv.tex b/adv.tex index e8c0fca..155bd98 100644 --- a/adv.tex +++ b/adv.tex @@ -194,7 +194,7 @@ active edge for~$w$ and replace it by~$vw$ if the new edge is lighter. The following algorithm shows how these operations translate to insertions, decreases and deletions on the heap. -\algn{Jarn\'\i{}k with active edges; Fredman and Tarjan \cite{ft:fibonacci}}\id{jarniktwo}% +\algn{Active Edge Jarn\'\i{}k; Fredman and Tarjan \cite{ft:fibonacci}}\id{jarniktwo}% \algo \algin A~graph~$G$ with an edge comparison oracle. \:$v_0\=$ an~arbitrary vertex of~$G$. @@ -279,14 +279,14 @@ for sufficiently dense graphs. In some cases, it is useful to combine it with another MST algorithm, which identifies a~part of the MST edges and contracts the graph to increase its density. For example, we can perform several iterations of the Contractive Bor\o{u}vka's algorithm and find the rest of the -MST by the Jarn\'\i{}k's algorithm. +MST by the Active Edge Jarn\'\i{}k's algorithm. \algn{Mixed Bor\o{u}vka-Jarn\'\i{}k} \algo \algin A~graph~$G$ with an edge comparison oracle. \:Run $\log\log n$ iterations of the Contractive Bor\o{u}vka's algorithm (\ref{contbor}), getting a~MST~$T_1$. -\:Run the Jarn\'\i{}k's algorithm with active edges (\ref{jarniktwo}) on the resulting +\:Run the Active Edge Jarn\'\i{}k's algorithm (\ref{jarniktwo}) on the resulting graph, getting a~MST~$T_2$. \:Combine $T_1$ and~$T_2$ to~$T$ as in the Contraction lemma (\ref{contlemma}). \algout Minimum spanning tree~$T$. @@ -305,7 +305,7 @@ and both trees can be combined in linear time, too. \para Actually, there is a~much better choice of the algorithms to combine: use the -improved Jarn\'\i{}k's algorithm multiple times, each time stopping after a~while. +Active Edge Jarn\'\i{}k's algorithm multiple times, each time stopping after a~while. A~good choice of the stopping condition is to place a~limit on the size of the heap. We start with an~arbitrary vertex, grow the tree as usually and once the heap gets too large, we conserve the current tree and start with a~different vertex and an~empty heap. When this @@ -322,7 +322,7 @@ contract the graph along the edges of~this forest and iterate. \::$F\=\emptyset$. \cmt{forest built in the current phase} \::$t\=2^{\lceil 2m_0/n \rceil}$. \cmt{the limit on heap size} \::While there is a~vertex $v_0\not\in F$: -\:::Run the improved Jarn\'\i{}k's algorithm (\ref{jarniktwo}) from~$v_0$, stop when: +\:::Run the Active Edge Jarn\'\i{}k's algorithm (\ref{jarniktwo}) from~$v_0$, stop when: \::::all vertices have been processed, or \::::a~vertex of~$F$ has been added to the tree, or \::::the heap has grown to more than~$t$ elements.