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: