Проблема такого рода изучается в области, называемой вычислительной топологией. Чтобы отличить тор (или мульти-тор) от сферы, достаточно определить, существует ли (на языке гомология ) 1-цикл, который не является границей. Предполагая, что у вас есть ориентируемое многообразие, это можно сделать, сравнивая ранг / нуль матриц, соответствующих соответствующим граничным операторам.
Чтобы исправить дыру, моя интуиция заключалась в том, чтобы найти кратчайший цикл, который не является границей, заполнить его и повторить, чтобы получить разумные результаты, но я не знаю, как это сделать алгоритмически .