Hãy xem xét vấn đề sau:
Gọi là hằng số. Chúng tôi được cung cấp một mảng -ary là và 's. Đặt .k Một d 1 × ... × d k 0 1 N = Π k i = 1 d i
Chúng tôi muốn tạo cấu trúc dữ liệu bằng cách tiền xử lý để thực hiện loại hoạt động truy vấn sau:
- Cho tọa độ của hộp -ary , có trong hộp không? D 1
- Cho tọa độ của hộp -ary , trả về vị trí của trong hộp (nếu có).D 1
Các hoạt động phải được thực hiện trong thời gian không đổi . Độ phức tạp thời gian được đo trên máy RAM. Thời gian tiền xử lý và không gian cho cấu trúc dữ liệu không quan trọng đối với chúng tôi.
Câu hỏi đặt ra là chúng ta cần bao nhiêu dung lượng (tính phức tạp bit) để lưu trữ cơ sở hạ tầng cho phép các hoạt động trên?
Giới hạn dưới tầm thường là bit do mảng có thể được xây dựng lại cho các truy vấn này (vì vậy cấu trúc dữ liệu nên có ít nhất cùng một lượng thông tin trong đó).
Giới hạn trên tầm thường là lưu trữ câu trả lời cho tất cả các truy vấn. Điều đó sẽ cần bit. Tuy nhiên chúng tôi nghi ngờ rằng điều này có thể được thực hiện hiệu quả hơn nhiều.
Ví dụ, hãy xem xét trường hợp đặc biệt trong đó . Trong trường hợp này, chúng ta có thể sử dụng cấu trúc dữ liệu RMQ cô đọng để giải quyết vấn đề đầu tiên và cấu trúc dữ liệu cần các bit để lưu trữ.
Cấu trúc dữ liệu hiệu quả cho nhiệm vụ này là gì?
Độ phức tạp không gian (số bit) có thể thấp đến mức nào để hỗ trợ các hoạt động này (hoặc chỉ hoạt động đầu tiên)?
Cập nhật (1/15): Trong trường hợp đặc biệt , sử dụng bit là đủ (thực sự tốt hơn, , trong đó là số Trong ) bằng cách giảm vấn đề thành vấn đề của người tiền nhiệm và sử dụng việc giảm từ vấn đề của người tiền nhiệm sang từ điển có thể lập chỉ mục đầy đủ (FID). Xem " H vội vàng hơn, ít lãng phí hơn: Giảm sự dư thừa trong từ điển hoàn toàn có thể lập chỉ mục " của Grossi, Desserti, Raman và Rao (2009).
Cập nhật (27/11): Một lần nữa bằng cách giảm vấn đề xuống RMQ. Chúng tôi sử dụng một RMQ chiều bởi Yuan và Atallah để có được một trên ràng buộc về số lượng không gian cần thiết khi là cố định.