2012-11-21 68 views
7

Tôi có thể tìm thấy việc triển khai C/C++ nối tiếp của thuật toán lân cận gần nhất ở đâu?
Bạn có biết thư viện nào có thư viện này không?
Tôi đã tìm thấy openCV nhưng việc triển khai đã song song.
Tôi muốn bắt đầu từ việc triển khai nối tiếp và song song với pthreads openMP và MPI.

Thực hiện C/C++ lân cận lân cận nhất

Cảm ơn,
Alex

+1

Đối với những vấn đề sẽ áp dụng thuật toán này? KNN thực sự đơn giản và bạn có thể thử thực hiện cách tiếp cận của riêng bạn. –

Trả lời

4

Còn ANN thì sao? http://www.cs.umd.edu/~mount/ANN/. Tôi đã từng sử dụng cài đặt kdtree, nhưng có các tùy chọn khác.

Trích dẫn từ trang web: "ANN là thư viện được viết bằng C++, hỗ trợ cấu trúc dữ liệu và thuật toán cho cả tìm kiếm lân cận chính xác và gần đúng theo thứ nguyên cao tùy ý".

+0

Cảm ơn, ANN là điểm khởi đầu tốt. – alexsardan

1

Cách đơn giản nhất để thực hiện điều này là để lặp qua tất cả các yếu tố và lưu trữ K gần nhất. (chỉ so sánh). Độ phức tạp của điều này là O(n) không tốt lắm nhưng không cần xử lý trước. Vì vậy, bây giờ thực sự phụ thuộc vào ứng dụng của bạn. Bạn nên sử dụng một số chỉ mục không gian cho vùng phân vùng nơi bạn tìm kiếm knn. Đối với một số cấu trúc không gian dựa trên lưới ứng dụng là tốt (chỉ cần chia thế giới của bạn thành khối cố định và chỉ tìm kiếm trong các khối đóng trước). Điều này là tốt khi các thực thể của bạn được phân phối đồng đều. Cách tốt hơn là sử dụng một số cấu trúc phân cấp như kd-cây ... Nó thực sự tất cả phụ thuộc vào những gì bạn cần

để biết thêm thông tin bao gồm giả cái nhìn trong các bài thuyết trình:

http://www.ulozto.net/xCTidts/dpg06-pdf

http://www.ulozto.net/xoh6TSD/dpg07-pdf

+0

Cảm ơn bạn đã trả lời. Thực ra tôi phải bắt đầu từ một phiên bản đã được triển khai. – alexsardan

2

Tôi đã viết một C++ implementation for a KD-tree với tìm kiếm lân cận gần nhất. Bạn có thể dễ dàng mở rộng nó cho những người hàng xóm gần nhất bằng cách thêm hàng đợi ưu tiên.

Cập nhật: tôi thêm hỗ trợ cho k-khu vực gần tìm kiếm người hàng xóm ở kích thước N

+0

Xin cảm ơn, nhưng không có thông tin giấy phép nào được nhìn thấy. –

Các vấn đề liên quan