Hiểu thuật toán lưu trữ và truy vấn vị trí?


9

Một trong những khía cạnh quan trọng nhất của cơ sở dữ liệu được trang bị GIS là nó cung cấp cho người dùng khả năng truy vấn nhanh tất cả các điểm trong một số khu vực địa lý tùy ý phù hợp với một số tiêu chí bổ sung. (Ví dụ: "Tìm cho tôi 3 nhà hàng gần nhất đến thời điểm này trên bản đồ.")

Bất cứ ai có thể chỉ cho tôi một cuộc thảo luận lý thuyết về các thuật toán liên quan? Tôi muốn tìm hiểu làm thế nào họ làm việc.

Cuối cùng, tôi muốn áp dụng khả năng tương tự cho các tập hợp dữ liệu số tổng quát - một đám mây điểm lớn trong một không gian tùy ý, n chiều, phi euclide. Chẳng hạn, khuôn mặt của một người có thể được mô tả như một vectơ số: [khoảng cách giữa hai mắt, khoảng cách từ mắt đến miệng, chiều rộng của khuôn mặt, chiều dài của khuôn mặt, v.v.]. Tôi muốn quay phim lưu lượng vỉa hè, ước tính các đặc điểm của từng người và sau đó có thể thực hiện truy vấn dữ liệu sau này, chẳng hạn như "đưa ra khuôn mặt của người này, tìm cho tôi 100 khuôn mặt giống nhau nhất".

Hiện tại có phần mềm nào hiện có cung cấp khả năng tìm kiếm trên các không gian tổng quát này không?

Câu trả lời:


4

Các tài khoản tốt về thuật toán ở 2 và 3 chiều xuất hiện trong văn bản cổ điển của Prepata & Shamos . Các thuật toán được sử dụng trong GIS là một đặc sản của Hanan Samet , người đã xuất bản một số cuốn sách về chủ đề này.

Các tìm kiếm chiều cao hơn thường được hỗ trợ hoặc tăng tốc bằng các phương pháp khai thác dữ liệu sơ bộ, phân cụm hoặc các kỹ thuật giảm kích thước. Đây không chỉ là vấn đề phân tích và thống kê dữ liệu, chứ không phải về GIS, mà bản chất của nó tập trung vào các tìm kiếm từ một đến bốn chiều Euclide. Để biết thêm thông tin, tìm kiếm diễn đàn chị em của chúng tôi stats.stackexchange.com với các điều kiện có khả năng như phân nhóm , giảm chiều , và mở rộng quy mô đa chiều và cho những người ít rõ ràng như PCA (thành phần chủ yếu phân tích) và svm (support vector machines). Đó cũng là một nơi tốt để hỏi về phần mềm hiện có.


4

Câu trả lời cổ điển (cổ sinh vật học) là sử dụng cây KD để lưu trữ dữ liệu trong (xem http://en.wikipedia.org/wiki/Kd-tree ). Chúng hoạt động bằng cách giảm một nửa dữ liệu thành hai phân vùng theo từng chiều khi bạn di chuyển xuống cây. Ưu điểm của chúng là khi bạn tìm thấy mặt hàng gần nhất, bạn cũng có thể tạo một danh sách các mặt hàng gần nhất khi bạn đi mà không mất thêm chi phí, vì vậy trả lời ba nhà hàng gần nhất là dễ dàng như tìm thấy gần nhất.

Tôi đã đọc ở đâu đó rằng eHarmony sử dụng cây KD để tìm "kết quả tương thích" trong 14 chiều.


+1 Mô tả rõ ràng ngắn gọn về một phương pháp tìm kiếm hiệu quả được thực hiện độc đáo.
whuber

2

Tôi đã nghe nói rằng Netezza đã thực hiện một số thuật toán xử lý song song không gian sáng tạo . Whitepaper ở đây .

Kiến trúc xử lý song song không đối xứng của Netezza cung cấp sự kết hợp tốt nhất giữa xử lý đa đối xứng (SMP) và xử lý song song ồ ạt (MPP), tạo điều kiện thuận lợi, xử lý truy vấn phức tạp cho cả dữ liệu không gian và không gian phức tạp mà không cần phức tạp, điều chỉnh và tổng hợp.

Cập nhật

Tôi quên đề cập rằng Netezza thúc đẩy mạnh mẽ Định lý Bayes . Đây là một bộ sưu tập các video ở đây .

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.