Введение
Математическое программное обеспечение
SnapPea – это бесплатное программное обеспечение, разработанное для помощи математикам, особенно топологам, работающим с многообразиями низкой размерности, в изучении гиперболических 3-многообразий. Основным разработчиком является Джеффри Уикс, который создал первую версию в рамках своей докторской диссертации под руководством Уильяма Тёрстона. Его не следует путать с не связанным вредоносным программным обеспечением для Android с тем же названием. Последняя версия – 3.0d3. Марк Каллер, Натан Данфилд и их коллеги расширили ядро SnapPea и написали модули расширения на Python, позволяющие использовать ядро в программе на Python или в интерпретаторе. Они также предоставляют графический пользовательский интерфейс, написанный на Python, который работает в большинстве операционных систем (см. внешние ссылки ниже). В списке благодарностей SnapPea 2.5.3 указаны следующие люди: Колин Адамс, Билл Арвесон, Пэт Каллахан, Джо Кристи, Дэйв Габай, Чарли Ганн, Мартин Хильдебранд, Крейг Ходжсон, Дайан Хоффосс, А. С. Манохаран, Ал Марден, Дик МакГи, Роб Мейерхофф, Ли Мошер, Уолтер Нейман, Карло Петронио, Марк Филлипс, Алан Рид и Макото Сакума. Исходный код на C широко комментирован Джеффри Уиксом и содержит полезные описания математических принципов, лежащих в основе программы, со ссылками на соответствующие источники. SnapPeaKernel распространяется под лицензией GNU GPL 2+, как и SnapPy.
Алгоритмы и функции
В основе SnapPea лежат два основных алгоритма. Первый стремится найти минимальную идеальную триангуляцию дополнения данной ссылки. Второй вычисляет каноническое разложение куспедного гиперболического 3-многообразия. Почти все остальные функции SnapPea в той или иной степени опираются на одно из этих разложений.
Минимальная идеальная треугольница
SnapPea вводит данные в различных форматах. При наличии диаграммы связей SnapPea может идеально триангулировать дополнение к связям. Затем выполняется последовательность упрощений для нахождения локально минимальной идеальной триангуляции. После того, как подходящая идеальная триангуляция найдена, SnapPea может попытаться найти гиперболическую структуру. В своих лекциях в Принстоне Турстон описал метод описания геометрической формы каждого гиперболического тетраэдра с помощью комплексного числа и набора нелинейных уравнений с комплексными переменными, решение которых дало бы полную гиперболическую метрику на 3-м многообразии. Эти уравнения состоят из уравнений рёбер и уравнений полноты (cusp equations). SnapPea использует итеративный метод, основанный на методе Ньютона, для поиска решений. Если решение не найдено, об этом сообщается пользователю. Локальная минимальность триангуляции призвана повысить вероятность существования решения, поскольку эвристически можно предположить, что такая триангуляция будет "выпрямлена" без возникновения вырождений или перекрытия тетраэдров. На основе этого описания гиперболической структуры дополнения к связям, SnapPea может выполнять гиперболическое заполнение Дена на куспидах, чтобы получить больше гиперболических 3-многообразий. SnapPea делает это, используя любые заданные наклоны, которые определяют определённые уравнения заполнения Дена (также описанные в лекциях Турстона), и затем корректируя формы идеальных тетраэдров для получения решений этих уравнений и уравнений рёбер. Для почти всех наклонов это даёт неполную гиперболическую структуру на дополнении к связям, завершение которой даёт гиперболическую структуру на многообразии, заполненном по Дену. Его объём равен сумме объёмов скорректированных тетраэдров.