math0604584/algm.tex
1: 
2: \section{Overview of the Census Algorithm} \label{s-algm}
3: 
4: As is usual for a census of closed 3-manifolds, we restrict our attention to
5: manifolds with the following properties:
6: \begin{itemize}
7:     \item {\em Closed:} The 3-manifold is compact, with no boundary and no
8:     cusps.
9:     \item {\em {\ppirr}:} The 3-manifold contains no embedded two-sided
10:     projective planes, and every embedded 2-sphere bounds a ball.
11: \end{itemize}
12: 
13: The additional constraint of {\ppirrty} allows us to focus on the most
14: ``fundamental'' manifolds --- the properties of larger manifolds are often
15: well understood in terms of their {\ppirr} constituents.
16: 
17: Recall that we are not just enumerating 3-manifolds, but also their
18: triangulations.  We therefore focus only on triangulations with the
19: following additional property:
20: \begin{itemize}
21:     \item {\em Minimal:} The triangulation uses as few tetrahedra as
22:     possible.  That is, the underlying 3-manifold cannot be triangulated
23:     using a smaller number of tetrahedra.
24: \end{itemize}
25: 
26: This minimality constraint is natural for a census, and is used
27: throughout the literature.
28: Note that a 3-manifold may have many different minimal triangulations,
29: though of course all of these triangulations must use the same
30: number of tetrahedra.
31: 
32: Minimal triangulations are tightly related to the Matveev complexity
33: of a manifold \cite{matveev-complexity}.  Matveev defines complexity in
34: terms of special spines, and it has been proven by Matveev in the orientable
35: case and Martelli and Petronio in the non-orientable case
36: \cite{italian-decomp} that, with the exceptions of $\sss$, $\rps$ and
37: $L_{3,1}$, the Matveev complexity of a closed {\ppirr} 3-manifold is
38: precisely the number of tetrahedra in its minimal triangulation(s).
39: 
40: \subsection{Stages of the Algorithm}
41: 
42: There are two stages involved in constructing a census of 3-manifold
43: triangulations: the generation of triangulations, and then
44: the analysis of these triangulations.
45: 
46: \begin{enumerate}
47:     \item {\em Generation:}
48:     The generation stage typically involves a long computer search,
49:     in which tetrahedra are pieced together in all possible ways to
50:     form 3-manifold triangulations that might satisfy our census constraints.
51: 
52:     The result of this search is a large set of triangulations,
53:     guaranteed to include all of the triangulations that should be in
54:     the census.  There are often unwanted triangulations also (for instance,
55:     triangulations that are non-minimal, or that represent reducible
56:     manifolds).  This is not a problem; these unwanted triangulations
57:     will be discarded in the analysis stage.
58: 
59:     The generation of triangulations is entirely automated,
60:     but it is also extremely time-consuming --- it may take
61:     seconds or centuries, depending upon the size of the census.
62: 
63:     \item {\em Analysis:}
64:     Once the generation stage has produced a raw set of triangulations,
65:     these must be refined into a final census.  This includes verifying
66:     that each triangulation is minimal and {\ppirr} (and throwing away
67:     those triangulations that are not).  It also involves grouping
68:     triangulations into classes that represent the same 3-manifold, and
69:     identifying these 3-manifolds.
70: 
71:     Analysis is much faster than generation, but it typically requires
72:     a mixture of automation and human involvement.  Techniques include
73:     the analysis of invariants and normal surfaces, combinatorial
74:     analysis of the triangulation structures, and applying elementary
75:     moves that change triangulations without altering their underlying
76:     3-manifolds.
77: \end{enumerate}
78: 
79: The generation stage is the critical bottleneck, due to the vast number
80: of potential triangulations that can be formed from a small number of
81: tetrahedra.  Suppose we are searching for triangulations that can be
82: formed using $n$ tetrahedra.  Even assuming that we know which tetrahedron
83: faces are to be joined with which, each pair of faces can be identified
84: according to one of six possible rotations or reflections, giving rise
85: to $6^{2n}$ possible triangulations in total.  For 10 tetrahedra, this
86: figure is larger than $10^{15}$.  It is clear then why existing census
87: data is limited to the small bounds that have been reached to date.
88: 
89: It should be noted that for an orientable census, the figure
90: $6^{2n}$ becomes closer to $3^n 6^n$.
91: This is because for a little over half the faces only three of the
92: six rotations or reflections will preserve orientation.  It is partly
93: for this reason that the orientable census has consistently been further
94: advanced in the literature than the non-orientable census.
95: Nevertheless, for 10 tetrahedra this figure is
96: still larger than $10^{12}$, a hefty workload indeed.
97: 
98: Fortunately there are ways in which these figures can be reduced.
99: The usual technique is to use topological arguments to derive
100: constraints that must be satisfied by minimal {\ppirr} triangulations,
101: and then to incorporate
102: these constraints into the generation algorithm so that the search space
103: can be reduced.  Such techniques have been used throughout the history
104: of census generation; examples include the edge degree results from the
105: early cusped hyperbolic census of Hildebrand and Weeks \cite{cuspedcensusold},
106: and the properties of minimal spines from Matveev's 6-tetrahedron
107: closed orientable census \cite{matveev6}.
108: 
109: \subsection{Generation of Triangulations} \label{s-algm-gen}
110: 
111: Since generation is the most time-intensive stage of the
112: census algorithm, it is there that we focus our attention.  Before
113: describing the generation process in more detail, it is useful to make
114: the following definition.
115: 
116: \begin{defn}[Face Pairing Graph] \label{d-facegraph}
117:     Let $T$ be a closed 3-manifold triangulation formed from $n$ tetrahedra.
118:     The {\em face pairing graph} of $T$ is a 4-valent multigraph
119:     on $n$ vertices describing
120:     which faces of which tetrahedra in $T$ are identified.
121: 
122:     More specifically, each vertex of the face pairing graph represents
123:     a tetrahedron of $T$, and each edge represents a pair of tetrahedron
124:     faces that are identified.  Note that loops and multiple edges may
125:     (and frequently do) occur.
126: \end{defn}
127: 
128: It is clear that every face pairing graph must be 4-valent, since each
129: tetrahedron has four faces.  Figure~\ref{fig-graphs3} illustrates all
130: possible face pairing graphs for connected triangulations formed from
131: $\leq 3$ tetrahedra.
132: 
133: \begin{figure}[htb]
134:     \centerline{\includegraphics[scale=0.6]{graphs3.eps}}
135:     \caption{All possible face pairing graphs for $\leq 3$ tetrahedra}
136:     \label{fig-graphs3}
137: \end{figure}
138: 
139: We return now to the generation process.
140: Algorithm~\ref{a-generation} outlines this process in more detail.
141: This general scheme has been used by authors throughout the
142: literature; a similar overview can be found in the early cusped
143: hyperbolic census of Hildebrand and Weeks \cite{cuspedcensusold}.
144: 
145: \begin{algorithm}[Generation of Triangulations] \label{a-generation}
146:     Suppose that we wish to generate a set $S$ that includes all closed
147:     minimal {\ppirr} triangulations formed from precisely $n$ tetrahedra
148:     (note that $S$ might also include some additional unwanted triangulations).
149:     The procedure is as follows.
150:     \begin{enumerate}
151:         \item {\em Enumerate face pairing graphs:} \label{e-enumgraphs}
152: 
153:         We enumerate (up to isomorphism) all connected 4-valent multigraphs
154:         on $n$ vertices.  Each of these becomes a candidate face pairing
155:         graph for an eventual triangulation.
156: 
157:         \item {\em Process face pairing graphs:} \label{e-processgraphs}
158: 
159:         Each candidate face pairing graph generated in
160:         step~\ref{e-enumgraphs} is processed as follows.  For each edge
161:         of the graph, we consider all six rotations and reflections
162:         by which the two corresponding tetrahedron faces might be identified.
163:         In this way we obtain $6^{2n}$ possible triangulations.
164: 
165:         In practice, constraints that must be satisfied by minimal
166:         {\ppirr} triangulations are used to prune this search.  As a
167:         result, far fewer than $6^{2n}$ possible triangulations need to
168:         be processed.
169: 
170:         Some of these possible triangulations might not be
171:         triangulations of closed 3-manifolds (e.g., their vertex links
172:         might not be spheres, or they might have edges that are identified
173:         with themselves in reverse).
174:         Each triangulation that is indeed a closed 3-manifold
175:         triangulation is added to the final set $S$.
176:     \end{enumerate}
177: \end{algorithm}
178: 
179: The enumeration of face pairing graphs (step~\ref{e-enumgraphs}) is
180: extremely fast --- for 10 tetrahedra it takes a little over five minutes
181: on a 2.40GHz Pentium~4.  As such, there is no urgency to improve the
182: efficiency of this enumeration at the present time; a full list of
183: candidate face pairing graphs has been obtained for up to 13 tetrahedra,
184: well beyond the current census limits.
185: Table~\ref{tab-graphs} presents the number of connected 4-valent
186: multigraphs in these lists.
187: 
188: \begin{table}[htb]
189:     \caption{The number of connected 4-valent multigraphs for $\leq 13$
190:         tetrahedra}
191:     \label{tab-graphs}
192:     \begin{center}
193:         \begin{tabular}{|c|r|}
194:         \hline
195:         \bf \# Tet. & \bf Graphs \\
196:         \hline
197:         1 & 1 \\ 2 & 2 \\ 3 & 4 \\ 4 & 10 \\ 5 & 28 \\
198:         \hline
199:         \end{tabular}
200:         \qquad
201:         \begin{tabular}{|c|r|}
202:         \hline
203:         \bf \# Tet. & \bf Graphs \\
204:         \hline
205:         6 & 97 \\ 7 & 359 \\ 8 & 1\,635 \\ 9 & 8\,296 \\ 10 & 48\,432 \\
206:         \hline
207:         \end{tabular}
208:         \qquad
209:         \begin{tabular}{|c|r|}
210:         \hline
211:         \bf \# Tet. & {} \hfill \bf Graphs \hfill {} \\
212:         \hline
213:         11 & 316\,520 \\ 12 & 2\,305\,104 \\ 13 & 18\,428\,254 \\
214:         \hline
215:         \multicolumn{2}{c}{~} \\
216:         \multicolumn{2}{c}{~}
217:     \end{tabular} \end{center}
218: \end{table}
219: 
220: On the other hand, the processing of face pairing graphs
221: (step~\ref{e-processgraphs}) is extremely slow, consuming virtually the
222: entire running time of the generation algorithm.  For the 10-tetrahedron
223: non-orientable census this processing required approximately
224: $3 \frac23$ years of CPU time, though this was distributed amongst many
225: machines in parallel with a final cost of only
226: $1 \frac12$ months by the wall clock.
227: 
228: The division of tasks in Algorithm~\ref{a-generation}
229: lends itself to two avenues for improvement, both
230: of which are explored in this paper.
231: \begin{itemize}
232:     \item We can prove constraints that must be satisfied by the face
233:     pairing graph of a closed minimal {\ppirr} 3-manifold triangulation.
234:     Graphs that do not satisfy these constraints can be discarded
235:     after step~\ref{e-enumgraphs}, and do not need to be processed.
236: 
237:     Several results of this type are proven in \cite{burton-facegraphs},
238:     and we prove more in Section~\ref{s-graphs}.  Since the enumeration
239:     of graphs takes negligible time, if we can avoid processing $k\%$ of
240:     potential graphs in this way then we can expect to save
241:     roughly $k\%$ of the overall running time.
242: 
243:     \item We can improve the processing itself, finding ways to prune
244:     the search for possible triangulations in step~\ref{e-processgraphs}
245:     of the algorithm.  In Section~\ref{s-ufind} we accomplish this by
246:     using a modified union-find algorithm that tracks vertex and edge
247:     links.  As a consequence we are able to decrease running times by
248:     orders of magnitude, as seen in the experimental results of
249:     Section~\ref{s-ufind-timing}.
250:     %
251:     % Note that face pairing graphs are useful here also.
252:     % Specifically, we can improve the processing by examining the graphs
253:     % that were not discarded as described above, and using properties of
254:     % these graphs to restrict the possible rotations and reflections that
255:     % must be examined.  (Refer to Theorem~\ref{t-lst-chain}, etc.)
256: \end{itemize}
257: 
258: