Thư viện tam giác Delaunay nhanh nhất cho các bộ điểm 3D


26

Đó là thư viện nhanh nhất để thực hiện tam giác delaunay của các tập hợp với hàng triệu điểm 3D? Có sẵn phiên bản GPU không? Từ phía bên kia, có một phần tử voronoi của cùng một tập hợp các điểm, sẽ giúp (về mặt hiệu suất) để có được tam giác delaunay?


Bạn đã thử triển khai trong phần mềm CGAL và TRIANGLE chưa? Cả hai đều bao gồm các thuật toán , về mặt lý thuyết là nhanh nhất có sẵn (mặc dù không song song). O(nlog(n))
Paul

Jonathan Shewchuk cũng có phiên bản phát trực tuyến cho 2D có thể xử lý các bộ dữ liệu lớn một cách lố bịch nếu bạn có thể thêm một số dữ liệu bổ sung vào luồng của mình. Bạn đang sử dụng cái này để làm gì?
Victor Liu

Câu trả lời:


13

Để tính toán các tam giác Delaunay ba chiều (tứ diện, thực sự), TetGen là một thư viện thường được sử dụng.

Để thuận tiện cho bạn, đây là một điểm chuẩn nhỏ về thời gian tính toán thời gian sắp xếp lại của một số điểm ngẫu nhiên từ khối đơn vị. Để có 100.000 điểm, phải mất 4,5 giây trên một chiếc Pentium M. cũ.

Đồ họa toán học

(Điều này đã được thực hiện với giao diện TetGen của Mathicala. Tôi không biết nó giới thiệu bao nhiêu chi phí.)

Về câu hỏi khác của bạn: nếu bạn đã có phần thứ ba Voronoi, thì việc lấy tam giác Delaunay là một phép biến đổi tương đối đơn giản .


10

gStar4D là một thuật toán Delaunay 3D nhanh và mạnh mẽ cho GPU. Nó được triển khai bằng CUDA và hoạt động trên GPU NVIDIA.

Tương tự như GPU-DT , thuật toán này xây dựng sơ đồ Voronoi kỹ thuật số 3D trước tiên. Tuy nhiên, trong 3D, điều này không thể được nhân đôi thành một tam giác do các vấn đề hình học và hình học. Thay vào đó, gStar4D sử dụng thông tin lân cận từ sơ đồ này để tạo ra các ngôi sao được nâng lên 4D và thực hiện việc chơi sao trên chúng một cách hiệu quả trên GPU. Bằng cách trích xuất phần thân dưới từ điều này, thu được tam giác 3D Delaunay.

Việc triển khai 3D Delaunay nhanh nhất là gDel3D , đây là thuật toán CPU-CPU lai.

Nó thực hiện chèn song song và lật trên GPU. Kết quả gần với Delaunay. Sau đó, nó sửa kết quả này bằng cách sử dụng phương pháp chơi sao bảo thủ trên CPU.

Cả hai phương pháp này đều mạnh mẽ, vì vậy chúng có thể xử lý bất kỳ loại đầu vào suy biến nào. Chúng có thể xử lý hàng triệu điểm, nếu bạn có bộ nhớ GPU đủ lớn để chứa các cấu trúc dữ liệu trung gian.

Tiết lộ: Tôi là tác giả của các thuật toán và triển khai này :)


Chào mừng đến với SciComp.Se, Ashwin! Để tiết lộ đầy đủ, bạn nên thêm rằng bạn là tác giả của phần mềm này (xem meta.scicomp.stackexchange.com/a/342/1804 ).
Christian Clason

3

Tôi khuyên bạn nên dùng thử CGAL http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Triangulation_3/Ch CHƯƠNG_main.html#Section_39.2 , như Paul đã đề xuất ở trên. CGAL là một thư viện mạnh mẽ và được hỗ trợ tốt đã có từ khá lâu. Tôi đã sử dụng nó một cách vui vẻ trong quá khứ, ngay cả trên các tập hợp điểm với các điểm đồng tuyến tính và đồng phẳng. Tôi không biết hôm nay có nhanh nhất không, nhưng chắc chắn đây là một nơi tốt để bắt đầu.

Liên kết ở trên cũng bao gồm một số số hiệu suất: nó có thể thực hiện một triệu điểm trong khoảng 10 giây và 10 triệu trong khoảng 1,5 phút.


Ngoài ra, bạn có thể mở rộng về lý do tại sao bạn giới thiệu nó? Bạn có kinh nghiệm với nó?
Godric Seer

1

Nếu bạn đã có sơ đồ voronoi của một tập hợp các điểm, thì việc tính toán tam giác Delaunay sẽ chỉ đưa bạn O (n). Tương đương, với một điểm voronoi, bạn có thể thu được tam giác Delaunay của nó trong O (1). Chúng là kép vì vậy hãy thử khai thác tình huống này bất cứ khi nào có thể.


1

Bạn có thể dùng thử phần mềm địa lý mà tôi đang phát triển: http://alice.loria.fr/software/geogram/doc/html/index.html

Nó có một thuật toán song song tính toán DT 14 triệu đỉnh trong chưa đầy 19 giây trên Intel Core I7 (đối với 1 triệu đỉnh thì mất khoảng 0,8 giây)


Chào mừng bạn đến với SciComp.SE! Trong mối quan tâm của việc tiết lộ đầy đủ (và để cho thấy rằng bạn biết những gì bạn đang nói về), bạn nên đề cập rằng bạn là nhà phát triển của phần mềm này.
Christian Clason
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.