Какая библиотека является самой быстрой для выполнения триангуляции множеств Делона с миллионами, если 3D-точки? Доступны ли также версии GPU? С другой стороны, наличие вороной тесселяции того же набора точек поможет (с точки зрения производительности) получить триангуляцию Делоне?
26
Ответы:
Для вычисления трехмерных триангуляций Делоне (на самом деле тетраэдризации) TetGen является широко используемой библиотекой.
Для вашего удобства, вот небольшой пример того, как долго вычисляется тереэдризация ряда случайных точек из единичного куба. На 100 000 очков на старом Pentium M уходит 4,5 секунды.
(Это было сделано с помощью интерфейса Mathematica TetGen. Я не знаю, какие накладные расходы он вносит.)
Что касается вашего другого вопроса: если у вас уже есть тесселяция Вороного, то получение триангуляции Делоне - это относительно простая трансформация .
источник
gStar4D - это быстрый и надежный алгоритм Делоне в 3D для графического процессора. Он реализован с использованием CUDA и работает на графических процессорах NVIDIA.
Подобно GPU-DT , этот алгоритм сначала строит трехмерную цифровую диаграмму Вороного. Однако в 3D это не может быть двойственно триангуляции из-за топологических и геометрических проблем. Вместо этого gStar4D использует информацию о соседстве из этой диаграммы для создания звезд, поднятых в 4D, и эффективно выполняет наложение звезд на них на графическом процессоре. Извлекая из этого нижнюю часть корпуса, получается трехмерная триангуляция Делоне.
Самая быстрая реализация 3D Delaunay - это gDel3D , представляющий собой гибридный алгоритм GPU-CPU.
Он выполняет параллельную вставку и переключение на GPU. Результат близок к Делоне. Затем он исправляет этот результат, используя консервативный метод выделения звезд на процессоре.
Оба эти метода являются надежными, поэтому они могут обрабатывать любые вырожденные данные. Они могут обрабатывать миллионы точек, если у вас достаточно большой объем памяти GPU для хранения промежуточных структур данных.
Раскрытие информации: я являюсь автором этих алгоритмов и реализаций :)
источник
Я бы порекомендовал попробовать CGAL http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Triangulation_3/Chapter_main.html#Section_39.2 , как предложил Пол выше. CGAL - это надежная и хорошо поддерживаемая библиотека, которая существует довольно давно. Я успешно использовал его в прошлом, даже на точечных наборах с коллинеарными и копланарными точками. Я не знаю, будет ли это сегодня самым быстрым, но это, безусловно, хорошее место для начала.
Ссылка выше также включает некоторые показатели производительности: она может набрать миллион очков за 10 секунд и 10 миллионов за 1,5 минуты.
источник
Если у вас уже есть диаграмма вороного набора точек, то вычисление триангуляции Делоне займет у вас только O (n). Эквивалентно, учитывая точку вороного, вы можете получить ее треугольник Делоне в O (1). Они двойственны, поэтому старайтесь использовать эту ситуацию, когда это возможно.
источник
Вы можете попробовать программное обеспечение для геограмм, которое я разрабатываю: http://alice.loria.fr/software/geogram/doc/html/index.html
Он имеет параллельный алгоритм, который вычисляет DT из 14 миллионов вершин менее чем за 19 секунд на Intel Core I7 (для 1 миллиона вершин это занимает около 0,8 с)
источник