Apakah ada indeks universal?

8

Diberikan tabel data yang mengandung jumlah baris yang sangat besar , dengan setiap baris berisi sejumlah besar k bidang, dengan setiap bidang berisi sejumlah bit yang besar tetapi tetap, ada sejumlah metode untuk membangun struktur "indeks" sehingga bahwa operasi berikut dapat dilakukan pada tabel dan indeks dalam waktu O ( k log N ) (relatif terhadap N dan k ):NkO(klogN)Nk

  1. Masukkan elemen baru ke dalam tabel.

  2. Hapus elemen yang ditentukan dari tabel.

  3. Diberikan seperangkat nilai bidang, dapatkan catatan pertama yang ada di tabel dengan nilai bidang lebih besar dari nilai bidang yang diberikan, saat tabel diurutkan ke dalam urutan leksikografis dengan bidang 1 pertama, bidang 2 detik, dll.

Kami ingin menggeneralisasi konstruksi ini sehingga ketika operasi 3 selesai, semua pemesanan kolom k dapat ditentukan untuk menentukan urutan catatan dalam tabel.k!k

Jelas, ini bisa dilakukan dengan membangun k! indeks, satu untuk setiap pemesanan bidang. Kemudian operasi membutuhkan waktu .O(k!klogN)

Kami menginginkan algoritma yang operasinya jauh lebih cepat (relatif terhadap ), lebih disukai waktu O ( k log k log N ) .kO(klogklogN)

Apakah ada algoritma / struktur data seperti itu? Tampaknya jika itu ada, seseorang akan menerbitkan dan mengimplementasikannya sekarang, tetapi saya tidak menemukan tanda-tanda bahwa ada. Sebaliknya, mungkin dapat dibuktikan bahwa tidak ada algoritma seperti itu. Tetapi saya tidak menemukan tanda-tanda bahwa bukti semacam itu ada.

Lembah
sumber

Jawaban:

2

Seseorang dapat menunjukkan batas bawah untuk struktur data yang Anda minta di bawah hipotesis Waktu Eksponensial Kuat. Secara khusus, jika semua entri memiliki satu bit, maka salah satu dapat menggunakan struktur data untuk melakukan bagian query: yaitu toko struktur data keluarga dari N set, masing-masing ukuran paling k . Kemudian, pengguna dapat membuat "bagian" query - memberikan satu set S dan bertanya apakah ada X F sehingga S X .FNkSXFSX

Kueri semacam itu dapat didukung jika kita memiliki "indeks universal" - jika kita mencari entri leksikografis pertama yang datang setelah , di mana kita mengurutkan pertama dengan kolom di mana S adalah 1 dan kemudian sepanjang yang di mana S adalah 0 maka setiap elemen muncul setelah S menurut urutan ini harus menjadi superset dari S .SS1S0SS

Sekarang, subset kueri setara dengan kueri "dot product = 0" dari jawaban yang luar biasa ini oleh Ryan Williams - bacalah. Saya hanya akan merangkum efek dari jawaban ini pada masalah indeks universal; dengan asumsi Hipotesis Waktu Eksponensial Kuat seseorang tidak dapat mendukung permintaan dengan waktu berjalan , bahkan jika keluarga F diberikan di muka dan kami hanya memiliki pertanyaan tipe 3 (yaitu struktur data statis), dan kami memiliki p o l y ( N , k )HAI(halHaily(k)N0,99)F3halHaily(N,k) waktu pra-pemrosesan.

daniello
sumber
Wow, banting-banting! Terima kasih! (Sebenarnya saya lebih mudah beristirahat karena mengetahui ini memiliki jawaban.)
Dale