Struktur data untuk kueri titik produk minimum


19

Rn,mv1,v2,,vmxRnminix,viO(nm)O ( log 2 m )n=2O(log2m)

Satu-satunya hal yang bisa saya pikirkan adalah sebagai berikut. Ini adalah konsekuensi langsung dari lemma Johnson-Lindenstrauss bahwa untuk setiap dan distribusi pada ada pemetaan linear (yang dapat dievaluasi dalam waktu ) sehingga . Jadi, dalam waktu O ((n + m) \ log m) kita dapat menghitungD R n f : R nR O ( log m )ε>0DRnf:RnRO(logm)O(nlogm)PrxD[ix,viε(x+vi)2f(x),f(vi)x,vi+ε(x+vi)2]1εO((n+m)logm)sesuatu yang dalam arti dekat dengan minix,vi untuk sebagian besar x '(setidaknya jika norma-norma x dan vi kecil).

UPD Batas yang disebutkan di atas dapat agak dipertajam ke waktu kueri O(n+m) jika kita menggunakan hashing yang sensitif terhadap lokalitas. Lebih tepatnya, kita memilih k:=O(1ε2) vektor Gaussian independen r1,r2,,rk . Kemudian kami memetakan Rn ke {0,1}k sebagai berikut: v(r1,v0,r2,v0,,rk,v0) . Kemudian kita dapat memperkirakan sudut antara dua vektor dalam kesalahan aditif ε dengan menghitung 1 jarak dalam gambar pemetaan ini. Dengan demikian, kami dapat memperkirakan produk titik dalam kesalahan aditifεxvidalam waktu O(1ε2) .



Saya tidak yakin apakah ini berfungsi atau membantu, tetapi masalah Anda (setelah mengganti tanda v_i untuk dikonversi ke maksimalisasi) terlihat terkait dengan diagram Voronoi. Dimungkinkan untuk memodifikasi algoritma untuk diagram Voronoi untuk masalah ini, tetapi bahkan jika mungkin, itu mungkin akan berguna hanya untuk n kecil.
Tsuyoshi Ito

Saya tidak tahu apakah ini adalah observasi yang sama ... Semua dapat dinormalisasi menjadi vektor satuan dan tidak mengubah hasilnya, kita dapat melakukan semuanya di unit n-cube yang berpusat pada asal. Temukan wilayah kubus yang meminimalkan produk titik dengan untuk setiap (masing-masing wilayah haruslah sebuah polytope). Saya tidak memiliki batasan jumlah poltop. Jika kurang dari eksponensial dalam , Anda memiliki sesuatu yang lebih baik daripada dengan melakukan kueri lokasi titik n-dimensi. xviinmO(nm)
Chao Xu

parameter mana yang lebih Anda pedulikan? biasanya, jika Anda ingin mendapatkan sublinear dalam m, Anda akan mulai mendapatkan eksponensial dalam n.
Suresh Venkat

@ Suresh Nah, alangkah baiknya untuk memahami berbagai kemungkinan trade-off. Versi perkiraan juga menarik.
ilyaraz

Catatan cepat: untuk kasus n = 2, pencarian biner pada convex hull memberi waktu permintaan. O(logn)
Geoffrey Irving

Jawaban:


16

Pertimbangkan kasus khusus di mana Anda hanya ingin menentukan apakah vektor kueri Anda ortogonal terhadap beberapa vektor dalam koleksi praproses Anda. (Yaitu, Anda ingin menentukan apakah , di mana vektor yang didiskusikan memiliki koefisien non-negatif.) Kasus ini sudah sangat menarik.minix,vi=0

Misalkan Anda dapat menjawab pertanyaan dalam waktu untuk beberapa , dengan preprocessing (the derajat polinomial seharusnya tidak bergantung pada atau atau ).nO(1)m1δδ>0mO(1)nO(1)mnδ

Dalam makalah "Sebuah algoritma baru untuk kepuasan 2-kendala yang optimal dan implikasinya", saya mengamati bahwa struktur data seperti itu akan benar-benar memungkinkan Anda untuk menyelesaikan CNF-SAT dalam waktu untuk beberapa , di mana adalah jumlah variabel. Ini akan membantah "Hipotesis Waktu Eksponensial Kuat" yang k-SAT pada dasarnya membutuhkan kali waktu untuk terikat .2αvα<1v2nk

Untuk melihat alasannya, anggaplah waktu preprocessing dibatasi oleh . Pertimbangkan rumus CNF dengan variabel dan klausa. Kami membagi set variabel menjadi dua bagian dan ukuran dan , masing-masing. Daftar semua tugas yang mungkin untuk variabel di bagian (mendapatkan dan tugas, masing-masing). Kaitkan masing-masing penugasan parsial ini dengan vektor bit mana iff the(nm)cFvnP1P2v(11/(2c))v/(2c)2v(11/(2c))2v/(2c)Ainwiwi[j]=1jklausa tidak dipenuhi oleh . Jadi kami memiliki dua daftar vektor bit yang banyak secara eksponensial.FAi

Perhatikan bahwa memuaskan jika ada vektor dari penugasan pada dan vektor dari penugasan pada sehingga .Fw1P1w2P2w1,w2=0

Sekarang mari , dan preprocess struktur data yang diasumsikan dengan semua vektor dari bagian . Ini membutuhkan waktu , dengan asumsi. Jalankan algoritme kueri pada semua vektor dari penugasan pada bagian . Dengan asumsi ini membutuhkan . Biarkan .m=2v/(2c)P2n2v/2P12v(11/(2c))nO(1)m1δ=nO(1)2vδv/(2c)α=1δ/(2c)

Mungkin dimungkinkan untuk mendapatkan preprocessing yang efisien dan waktu permintaan dengan teknik yang ada. Algoritme CNF-SAT paling terkenal tidak mengesampingkannya. (Mereka mendapatkan sesuatu seperti .) Tetapi untuk menghitung sedikit lebih kuat - dalam pengaturan ini, itu seperti memecahkan MAX CNF-SAT.nO(1)m11/(loglogm)2nn/lognminix,vi


Luar biasa! Tapi itu tidak mengesampingkan struktur data perkiraan serta waktu kueri seperti , yang juga sangat menarik. O(mpoly(logn))
ilyaraz

Ngomong-ngomong, tidak bisakah kita mengatakan sesuatu seperti "jika bahkan ada perkiraan struktur data dengan waktu permintaan yang cepat, maka MAX-SAT akan dapat diperkirakan".
ilyaraz

Mengapa kesetaraan yang dinyatakan dalam paragraf pertama berlaku? Saya pikir produk dalam bisa negatif secara umum.
Tsuyoshi Ito

ilyaraz: Ya, bahkan struktur data perkiraan akan menyiratkan perkiraan MAX-SAT. Tsuyoshi: Terima kasih atas wawasan Anda
Ryan Williams

6

Inilah satu ide untuk jawaban yang tepat, yang saya curigai Chao Xu mungkin singgung. Pertama-tama amati bahwa kita bisa menormalkan , seperti yang ditunjukkan oleh Chao. Sekarang perhatikan hyperplane normal ke arah . Tujuannya adalah untuk menemukan titik terdekat dengan hyperplane ini. Secara dualitas, ini sesuai dengan permintaan pemotretan ray dalam pengaturan hyperplanes untuk menemukan pesawat terdekat "di atas" titik kueri. Karena ini dapat diproses sebelumnya, kompleksitas utama adalah lokasi titik, dan masalah Anda sekarang telah berkurang menjadi kompleksitas melakukan lokasi titik dalam pengaturan hyperplanes. Menggunakan stek, ini dapat dilakukan dalam waktu dalam ruang .xhxO(logn)nd


1
Saya seharusnya menyebutkan bahwa saya juga tertarik pada waktu preprocessing yang masuk akal yang tidak terjadi di sini jika dimensi lebih besar.
ilyaraz
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.