Самые быстрые библиотеки триангуляции Делоне для наборов трехмерных точек


26

Какая библиотека является самой быстрой для выполнения триангуляции множеств Делона с миллионами, если 3D-точки? Доступны ли также версии GPU? С другой стороны, наличие вороной тесселяции того же набора точек поможет (с точки зрения производительности) получить триангуляцию Делоне?


Вы пробовали реализации в программах CGAL и TRIANGLE? Оба включают алгоритмы , которые (теоретически) являются самыми быстрыми из доступных (хотя и не параллельными). O(nlog(n))
Павел

Джонатан Шевчук также имеет потоковую версию для 2D, которая может обрабатывать смехотворно большие наборы данных, если вы можете добавить некоторые дополнительные данные в ваш поток. Для чего ты это используешь?
Виктор Лю

Ответы:


13

Для вычисления трехмерных триангуляций Делоне (на самом деле тетраэдризации) TetGen является широко используемой библиотекой.

Для вашего удобства, вот небольшой пример того, как долго вычисляется тереэдризация ряда случайных точек из единичного куба. На 100 000 очков на старом Pentium M уходит 4,5 секунды.

Математическая графика

(Это было сделано с помощью интерфейса Mathematica TetGen. Я не знаю, какие накладные расходы он вносит.)

Что касается вашего другого вопроса: если у вас уже есть тесселяция Вороного, то получение триангуляции Делоне - это относительно простая трансформация .


10

gStar4D - это быстрый и надежный алгоритм Делоне в 3D для графического процессора. Он реализован с использованием CUDA и работает на графических процессорах NVIDIA.

Подобно GPU-DT , этот алгоритм сначала строит трехмерную цифровую диаграмму Вороного. Однако в 3D это не может быть двойственно триангуляции из-за топологических и геометрических проблем. Вместо этого gStar4D использует информацию о соседстве из этой диаграммы для создания звезд, поднятых в 4D, и эффективно выполняет наложение звезд на них на графическом процессоре. Извлекая из этого нижнюю часть корпуса, получается трехмерная триангуляция Делоне.

Самая быстрая реализация 3D Delaunay - это gDel3D , представляющий собой гибридный алгоритм GPU-CPU.

Он выполняет параллельную вставку и переключение на GPU. Результат близок к Делоне. Затем он исправляет этот результат, используя консервативный метод выделения звезд на процессоре.

Оба эти метода являются надежными, поэтому они могут обрабатывать любые вырожденные данные. Они могут обрабатывать миллионы точек, если у вас достаточно большой объем памяти GPU для хранения промежуточных структур данных.

Раскрытие информации: я являюсь автором этих алгоритмов и реализаций :)


Добро пожаловать в SciComp.Se, Эшвин! В целях полного раскрытия информации вам следует добавить, что вы являетесь автором данного программного обеспечения (см. Meta.scicomp.stackexchange.com/a/342/1804 ).
Кристиан Клэйсон,

3

Я бы порекомендовал попробовать CGAL http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Triangulation_3/Chapter_main.html#Section_39.2 , как предложил Пол выше. CGAL - это надежная и хорошо поддерживаемая библиотека, которая существует довольно давно. Я успешно использовал его в прошлом, даже на точечных наборах с коллинеарными и копланарными точками. Я не знаю, будет ли это сегодня самым быстрым, но это, безусловно, хорошее место для начала.

Ссылка выше также включает некоторые показатели производительности: она может набрать миллион очков за 10 секунд и 10 миллионов за 1,5 минуты.


Кроме того, не могли бы вы рассказать о том, почему вы это рекомендуете? У вас есть опыт с этим?
Годрик Провидец

1

Если у вас уже есть диаграмма вороного набора точек, то вычисление триангуляции Делоне займет у вас только O (n). Эквивалентно, учитывая точку вороного, вы можете получить ее треугольник Делоне в O (1). Они двойственны, поэтому старайтесь использовать эту ситуацию, когда это возможно.


1

Вы можете попробовать программное обеспечение для геограмм, которое я разрабатываю: http://alice.loria.fr/software/geogram/doc/html/index.html

Он имеет параллельный алгоритм, который вычисляет DT из 14 миллионов вершин менее чем за 19 секунд на Intel Core I7 (для 1 миллиона вершин это занимает около 0,8 с)


Добро пожаловать в SciComp.SE! В целях полного раскрытия информации (и чтобы показать, что вы знаете, о чем говорите), вам следует упомянуть, что вы являетесь разработчиком этого программного обеспечения.
Кристиан Клэйсон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.