Có một chỉ số phổ quát tồn tại?


8

Cho một bảng dữ liệu chứa một số lượng lớn N hàng, với mỗi hàng chứa một số lượng lớn trường, với mỗi trường chứa một số lượng lớn bit cố định, có một số phương thức để xây dựng cấu trúc "chỉ mục" rằng các hoạt động sau đây có thể được thực hiện trên bảng và chỉ mục trong thời gian (liên quan đến và ):kO(klogN)Nk

  1. Chèn một phần tử mới vào bảng.

  2. Loại bỏ một yếu tố được chỉ định từ bảng.

  3. Cho một tập hợp các giá trị của các trường, lấy bản ghi đầu tiên trong bảng có giá trị trường lớn hơn giá trị trường đã cho, khi bảng được sắp xếp theo thứ tự từ điển với trường 1 trước, trường 2 giây, v.v.

Chúng tôi muốn khái quát công trình này để khi hoạt động 3 được thực hiện, bất kỳ k!thứ tự của các trường k có thể được chỉ định để xác định thứ tự của các bản ghi trong bảng.

Rõ ràng, điều này có thể được thực hiện bằng cách xây dựng k! chỉ mục, một cho mỗi thứ tự của các lĩnh vực. Sau đó, các hoạt động mất thời gian Ôi(k!kđăng nhậpN) .

Chúng tôi muốn một thuật toán có hoạt động nhanh hơn nhiều (liên quan đến k ), tốt nhất là thời gian Ôi(kđăng nhậpkđăng nhậpN) .

Liệu một thuật toán / cấu trúc dữ liệu như vậy tồn tại? Có vẻ như nếu nó tồn tại, có ai đó đã xuất bản và triển khai nó ngay bây giờ, nhưng tôi không tìm thấy dấu hiệu nào cho thấy nó tồn tại. Ngược lại, có lẽ có thể chứng minh rằng không có thuật toán như vậy tồn tại. Nhưng tôi đã không tìm thấy dấu hiệu nào cho thấy một bằng chứng như vậy tồn tại.

Câu trả lời:


2

Người ta có thể hiển thị giới hạn dưới cho cấu trúc dữ liệu mà bạn đang yêu cầu theo giả thuyết Thời gian lũy thừa mạnh. Cụ thể, nếu tất cả các mục nhập có một bit, thì người ta có thể sử dụng cấu trúc dữ liệu để thực hiện các truy vấn tập hợp con: tức là cấu trúc dữ liệu lưu trữ một họ của bộ, mỗi kích thước tối đaFNk . Sau đó, người dùng có thể làm cho "tập hợp con" truy vấn - cung cấp cho một tập và hỏi liệu có một mà .SXFSX

Một truy vấn như vậy có thể được hỗ trợ nếu chúng ta có "chỉ mục chung" - nếu chúng ta tìm mục nhập từ vựng đầu tiên đến sau , trong đó chúng ta sắp xếp đầu tiên theo các cột trong đó là và sau đó dọc theo các cột trong đóSS1S là thì bất kỳ phần tử nào xuất hiện sau khi theo thứ tự này phải là một superset của .0SS

Bây giờ, các truy vấn tập hợp con tương đương với các truy vấn "dot sản phẩm = 0" từ câu trả lời tuyệt vời này của Ryan Williams - hãy đọc nó. Tôi sẽ chỉ tóm tắt những ảnh hưởng của câu trả lời này đối với vấn đề chỉ số phổ quát; Giả sử Giả thuyết Thời gian theo cấp số nhân mạnh mẽ, người ta không thể hỗ trợ các truy vấn với thời gian chạy , ngay cả khi gia đình được đưa ra trước và chúng tôi chỉ có các truy vấn loạiO(poly(k)N0.99)F3 ( tức là cấu trúc dữ liệu là tĩnh) và chúng ta có thời gian tiền xử lý .poly(N,k)


Wow, chết tiệt! Cảm ơn! (Tôi thực sự yên tâm hơn khi biết điều này có câu trả lời.)
Dale
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.