Noch einige Erklärungen zum mathematischen Hintergrund von SnapPy:
SnapPy 1.1 hatten wir
im vorigen Artikel vorgestellt. Hier noch eine kurze Beschreibung, worum es aus mathematischer Sicht eigentlich geht.
Konstruktion 3-dimensionaler Mannigfaltigkeiten
Jede 3-dimensionale Mannigfaltigkeit kann konstruiert werden durch
Dehn-Chirurgie an einem Link in der 3-Sphäre:
Die
3-Sphäre S
3 denkt man sich am besten als
1-Punkt-Kompaktifizierung des R
3, d.h. man fügt zu unserem Anschauungsraum noch einen Punkt im Unendlichen hinzu.
Ein
Knoten ist ein Kreis, der irgendwie (verknotet) im Raum liegt. Ein
Link besteht aus (evtl. mehreren) Knoten, die sich nicht schneiden, wie der Whitehead-Link im Bild unten.

Weil ein Knoten ein Kreis S
1 ist, ist eine kleine Umgebung eines Knotens ein
Volltorus S
1xD
2, der Rand der Umgebung ist ein
Torus S
1xS
1.
Dehn-Chirurgie besteht in der folgenden Prozedur: wähle einen Link, schneide eine kleine Umgebung des Links aus der S
3 aus (man bekommt eine 3-Mannigfaltigkeit, deren Rand aus Tori besteht) und klebe an die Ränder jeweils einen Volltorus an.

Wieviele Möglichkeiten gibt es, einen Volltorus, an einen Torus anzukleben? Auf jedem Torus gibt es Meridian und Longitude, im Bild rot und violett. Zu zwei ganzen Zahlen p und q gibt es eine Kurve l(p,q), die Longitude und Meridian p bzw. q mal schneidet. Dann gibt es Selbst-Abbildungen des Torus, die den Meridian auf l(p,q) abbilden und diese benutzt man, um den Volltorus anzukleben. (Es gibt zwar verschiedene Selbstabbildungen des Torus, die den Meridian auf l(p,q) abbilden, die entstandene 3-Mannigfaltigkeit hängt aber nur von p und q ab.)
Invarianten
Mit Dehn-Chirurgie an Links kann man also 3-Mannigfaltigkeiten konstruieren. Nach dem Satz von Lickorish bekommt man alle kompakten, orientierbaren, zusammenhängenden 3-Mannigfaltigkeiten mit dieser Konstruktion.
Allerdings gibt es viele Dehn-Chirurgien an unterschiedlichen Links, die im Ergebnis zu derselben 3-Mannigfaltigkeit führen. Triviales Beispiel: (0,1)-Chirurgie an jedem Knoten gibt wieder die S
3.
Wenn man eine Katalogisierung aller 3-Mannigfaltigkeiten anstrebt, braucht man also nicht nur eine Konstruktionsmethode, sondern auch Invarianten, mit denen man unterschiedliche 3-Mannigfaltigkeiten unterscheiden kann.
Fundamentalgruppe Eine solche Invariante ist die
Fundamentalgruppe: unterschiedliche hyperbolische 3-Mannigfaltigkeiten müssen unterschiedliche Fundamentalgruppen haben.
Mit SnapPy kann man, im Prinzip, Fundamentalgruppen berechnen.
Man bekommt die Gruppe dargestellt mittels einer
Präsentierung aus Erzeugern und Relationen.
Es ist aber ein
sehr schwieriges Problem zu entscheiden, ob zwei Präsentierungen tatsächlich unterschiedliche Gruppen geben. (Letzteres wäre einfacher für Homologiegruppen, die abelsche Gruppen sind und sich leicht unterscheiden lassen. Die Homologiegruppen werden von SnapPy ebenfalls berechnet, sie lassen sich für 3-Mannigfaltigkeiten, die durch Dehn-Chirurgie gegeben sind, auch leicht von Hand berechnen. Sie sind aber nicht sehr nützlich zur Unterscheidung von 3-Mannigfaltigkeiten: zum Beispiel hat jede 3-Mannigfaltigkeit, die durch (p,q)-Dehnchirurgie an irgendeinem Knoten entsteht, immer die 1.Homologiegruppe Z/pZ.)
Nützlicher sind deshalb geometrisch definierte Invarianten wie das hyperbolische Volumen.
Volumen und Chern-Simons-Invariante Nach Mostow-Starrheit ist die hyperbolische Metrik eindeutig, geometrische Invarianten wie Volumen und Chern-Simons-Invariante sind also topologische Invarianten. Für hyperbolische Mannigfaltigkeiten berechnet SnapPy das Volumen und die Chern-Simons-Invariante. (Das ist leicht, wenn die ideale Triangulierung schon gegeben ist: wenn man eine ideale Triangulierung hat mit Parametern z
1,...,z
n, dann ist das Volumen die Summe D(z
1)+...+D(z
n), wobei D der Bloch-Wigner-Dilogarithmus ist.)
Volumen unterscheidet oft (aber nicht immer) unterschiedliche 3-Mannigfaltigkeiten.
The main class is Manifold, which is an ideal triangulation of the interior of a compact 3-manifold with torus boundary, where each tetrahedron has has been assigned the geometry of an ideal tetrahedron in hyperbolic 3-space. A Dehn-filling can be specified for each boundary component, allowing the description of closed 3-manifolds and some orbifolds. The class Manifold is derived from the simpler Triangulation class which lacks any geometric structure. There are also some additional classes for things like fundamental groups, Dirichlet domains, etc. Snappy comes with a large library of 3-manifolds, some of which are grouped together in censuses.
Algorithmen
Aus Mathematiker-Sicht das Herz des Programms ist ein
Algorithmus, der 3-Mannigfaltigkeiten M in ideale Tetraeder zerlegt.
Um eine hyperbolische Metrik auf M zu finden, muß man dann die Tetraeder so als ideale Tetraeder im hyperbolischen Raum realisieren, daß die Winkel um jede Kante sich zu 360
o aufaddieren (dazu kommt noch eine Vollständigkeitsbedingung). Ideale Tetraeder im hyperbolischen 3-Raum werden durch einen komplexen Parameter
z beschrieben: das
Doppelverhältnis der 4 Ecken (die 4 Ecken liegen ja im idealen Rand des hyperbolischen Raums, also in C U {oo} ) und die Bedingung an die Winkel übersetzt sich in Gleichungen zwischen den komplexen Parametern
z1,...zn der verschiedenen Tetraeder. Das Programm löst diese Gleichungen und findet so die hyperbolische Metrik auf der Mannigfaltigkeit.
Damit kann man dann leicht Volumen und Chern-Simmons-Invariante berechnen.