From: Martin Mares Date: Tue, 22 Apr 2008 18:35:19 +0000 (+0200) Subject: Parts of preface. X-Git-Tag: printed~46 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=3a8404b365f96812761bbf4178c038851967d9c0;p=saga.git Parts of preface. --- diff --git a/adv.tex b/adv.tex index 1e9f874..41095c8 100644 --- a/adv.tex +++ b/adv.tex @@ -539,7 +539,7 @@ A~better algorithm will be shown in Chapter \ref{optchap}. %-------------------------------------------------------------------------------- -\section{Verification of minimality} +\section{Verification of minimality}\id{verifysect}% Now we will turn our attention to a~slightly different problem: given a~spanning tree, how to verify that it is minimum? We will show that this can be achieved diff --git a/dyn.tex b/dyn.tex index 629b2b8..f07103a 100644 --- a/dyn.tex +++ b/dyn.tex @@ -516,7 +516,7 @@ to fit our needs, so we omit the details. %-------------------------------------------------------------------------------- -\section{Dynamic spanning forests} +\section{Dynamic spanning forests}\id{dynmstsect}% Let us turn our attention back to the dynamic MSF now. Most of the early algorithms for dynamic connectivity also imply $\O(n^\varepsilon)$ diff --git a/macros.tex b/macros.tex index 4fcc480..e4011ae 100644 --- a/macros.tex +++ b/macros.tex @@ -420,7 +420,8 @@ \def\example{\proclaim{Example}} \def\label#1{{\sl (#1)\/}\enspace} -\def\labelx#1{\label{#1}\hfil\break\kern 0pt} % Eat spaces +\def\labelx#1{\label{#1}\hfil\break\eatspaces} +\def\eatspaces{\kern0pt} \def\thmn{\thm\labelx} \def\lemman{\lemma\labelx} @@ -432,7 +433,7 @@ \def\problemn{\problem\labelx} \def\remn{\rem\labelx} -\def\paran#1{\para {\sl #1.\/}\enspace\kern 0pt} +\def\paran#1{\para {\sl #1.\/}\enspace\eatspaces} \def\proof{\noindent {\sl Proof.}\enspace} \def\proofsketch{\noindent {\sl Proof sketch.}\enspace} diff --git a/opt.tex b/opt.tex index 86402c6..6d7e742 100644 --- a/opt.tex +++ b/opt.tex @@ -4,7 +4,7 @@ \chapter{Approaching Optimality}\id{optchap}% -\section{Soft heaps} +\section{Soft heaps}\id{shsect}% A~vast majority of MST algorithms that we have encountered so far is based on the Tarjan's Blue rule (Lemma \ref{bluelemma}). The rule serves to identify diff --git a/pref.tex b/pref.tex index 5597cc5..597430f 100644 --- a/pref.tex +++ b/pref.tex @@ -4,4 +4,62 @@ \unchapter{Preface} +This thesis tells the story of two well-established problems of algorithmic +graph theory: the minimum spanning trees and ranks of permutations. At distance, +both problems seem to be simple, boring and already solved, because we have poly\-nom\-ial-time +algorithms for them since ages. But when we come closer and seek algorithms that +are really efficient, the problems twirl and twist and withstand many a~brave +attempt at the optimum solution. They also reveal a~vast and diverse landscape +of a~deep and beautiful theory. Still closer, this landscape turns out to be interwoven +with the intricate details of various models of computation and even of arithmetics +itself. + +I have tried to cover all known important results on both problems and unite them +in a~single coherent theory. At many places, I have tried to contribute my own +little stones to this mosaic: several new results, simplifications of existing +ones, and last, but not least filling in important details where the original +authors have missed some. + +When compared with the earlier surveys on the minimum spanning trees, most +notably Graham and Hell \cite{gh:history} and Eisner \cite{eisner:tutorial}, +this work includes many of the recent advances, the dynamic algorithms and +also the relationship with computational models. No previous work covering +the ranking problems in entirety is known. + +\FIXME{GA booklet} + +\def\ss#1{\medskip\>{\bo #1.}\enspace\eatspaces} + +\ss{My results} + +\itemize\ibull +\:The lower bound in Section \ref{contalg}. Not published yet. +\:The tree isomorphism algorithm in Section \ref{bucketsort}. Not published yet. +\:Both algorithms for minor-closed graph classes in Section \ref{minorclosed}. Published in \cite{mm:mst}. +\:The linear-time verification algorithm in Section \ref{verifysect} is a~simplification + of the algorithm of King \cite{king:verify} and it corrects many omissions + in the original paper. Not published yet. +\:The dynamic MST algorithm for graphs with limited edge weights in Section \ref{dynmstsect}. +\:The ranking algorithms in Sections \ref{ranksect} to \ref{kpranksect} are joint research with Milan Straka, + published in \cite{mm:rank}. +\:The remaining sections of Chapter \ref{rankchap} contain unpublished original research. +\endlist + +\ss{Other minor contributions} + +\itemize\ibull +\:The flattening procedure in Section \ref{bucketsort}. Published in \cite{mm:mst}. +\:The unified view of vector computations in Section \ref{bitsect}. XXXX: MO +\:Several simplifications of the soft heaps in Section \ref{shsect}. +\endlist + +\ss{Acknowledgements} + +\ss{Notation} + +\bigskip + +So, my gentle reader, let us nestle deep in an~ancient wing armchair. The saga of the +graph algorithms begins~\dots + \endpart diff --git a/rank.tex b/rank.tex index aa6379c..014d56d 100644 --- a/rank.tex +++ b/rank.tex @@ -5,7 +5,7 @@ \chapter{Ranking Combinatorial Structures} \id{rankchap} -\section{Ranking and unranking} +\section{Ranking and unranking}\id{ranksect}% The techniques for building efficient data structures on the RAM described in Chapter~\ref{ramchap} can be also used for a~variety of problems related