Masalah Vektor Non-Ortogonal


8

Pertimbangkan masalah-masalah berikut:

Masalah Vektor Orthogonal

Input: Satu set dari Boolean vektor masing-masing panjang .S Sn ndd

Pertanyaan: Apakah ada vektor berbeda dan sehingga ?v 1 v1v 2S v2Sv 1v 2 = 0v1v2=0

Masalah Vektor Non-Ortogonal

Input: Satu set dari Boolean vektor masing-masing dengan panjang dan bilangan bulat positif .S Sn nd dkk

Pertanyaan: Apakah ada vektor yang berbeda dan sehingga ?v 1 v1v 2S v2Sv 1v 2kv1v2k

Apa hubungan kedua masalah ini?

Secara khusus, berikut adalah beberapa pertanyaan spesifik yang saya ingin tahu tentang:

(1) Apakah salah satu dari masalah ini tampaknya lebih sulit daripada yang lain?

(2) Saya tidak yakin seperti apa algoritma saat ini untuk OVP, tetapi untuk salah satu dari masalah ini, dapatkah Anda mendapatkan batas atas yang lebih baik daripada waktu ?O ( n 2d )O(n2d)

(3) Apakah memperbaiki membuat perbedaan untuk kompleksitas masalah kedua?kk

Dengan , maksud saya produk dalam dari dan lebih dari .v 1v 2 v 1 v 2 R dv1v2v1v2Rd

Sunting: Sebagian besar tanggapan menawarkan wawasan yang sangat bagus ketika kecil. dd

Apa yang bisa dikatakan ketika lebih besar? Ucapkan atau atau setidaknya untuk beberapa .d d = n d = dd=nn d=nαα>0d=nd=nαα>0


4
Mengenai (2): sejauh yang saya tahu, algoritma yang paling dikenal untuk memecahkan OVP dibuat dalam makalah ini . Ini memiliki kompleksitas Meningkatkan hasil ini menjadi untuk beberapa konstanta adalah masalah terbuka yang terkenal, dan diyakini tidak mungkin, karena akan memalsukan dugaan hipotesis waktu eksponensial yang kuat . O ( n 2 - 1O ( log ( dlog n ))). O(n2-ε)ε
On21O(log(dlogn)).
O ( n2 - ε)ε
Geoffroy Couteau

Masalah kedua juga dapat dipecahkan dalam waktu . Cukup pilih posisi, lalu periksa apakah dua vektor memiliki semua 1 di posisi itu. O ( n k ( dk ) )kO ( n k ( dk) )k
Michael Wehar

1
Catatan tentang batas waktu di atas untuk OVP: batas waktu juga mensyaratkan bahwa d <= 2 ^ (sqrt (log n)), jika tidak, konstruksi menengah polinomial probabilistik membutuhkan waktu terlalu lama.
Ryan Williams

2
Tentang besar d: Algoritma untuk perkalian perkalian matriks segi empat mengalahkan n ^ 2 d dalam menghitung semua produk titik. Ketika d <n ^ 0,3 batas waktu menjadi n ^ (2 + o (1)).
Rasmus Pagh

1
@MichaelWehar: Tepat. Saya pikir hasil terbaik adalah karena François Le Gall, arxiv.org/abs/1204.1111
Rasmus Pagh

Jawaban:


8

Ketika diberikan sebagai bagian dari input, masalah kedua setara dengan masalah Max-IP monokromatik (diberikan , temukan ).k S { 0 , 1 } d maks ( a , b ) S , a b a bkS{ 0 , 1 }dmaks( a , b ) S, a ba b

Baru-baru ini saya dan Ryan Williams memiliki (belum dipublikasikan) karya yang menunjukkan bahwa ketika , OVP dan versi bikromatik Max-IP (diberikan , temukan ), sebenarnya setara: yaitu, jika salah satu dari mereka memiliki algoritma waktu , begitu juga yang lain. (Pengurangan dari OVP ke Max-IP sudah terkenal, pengurangan baru di sini adalah dari Max-IP ke OVP).d = O ( log n ) A , B maks ( a , b ) A × B a b n 2 - εd= O ( logn )A , Bmaks( a , b ) A × Ba bn2 - ε

Karena versi monokromatik Max-IP dapat direduksi menjadi versi bikromatik, hasil di atas juga menyiratkan bahwa ketika , monokromatik Max-IP dapat direduksi menjadi OVP.d = O ( log n )d= O ( logn )

Saya percaya ini adalah pertanyaan terbuka bahwa apakah OVP dapat direduksi menjadi Max-IP monokromatik. Ini juga terkait erat dengan penetapan kekerasan-OV untuk masalah pasangan terdekat (lihat mis. Pada Kompleksitas Pasangan Terdekat melalui Pair-Pasang Point-Sets )

Untuk Max-IP monokromatik, ada algoritma dengan waktu berjalan algoritma waktu oleh Alman, Chan dan Williams ( juga ditunjukkan oleh Rasmus), yang saya yakini canggih. Sedangkan algoritma terbaik untuk OVP berjalan dalam waktu saat , yang secara signifikan lebih cepat.n 2 - 1 / ~ O ( ( d / log n ) 1 / 3 ) n 2 - 1 / O ( log c ) d = c log nn2 - 1 / O˜( ( d/ logn )1 / 3)n2 - 1 / O ( logc )d=clogn

Juga, versi perkiraan Max-IP juga dipelajari oleh makalah ini On The Hardness of Approximate dan Exact (Bichromatic) Maximum Inner Product , yang memberikan karakterisasi untuk kasus bikromatik (yaitu, untuk dimensi dan perkiraan rasio , masalahnya dapat diselesaikan dalam waktu ?). Algoritma dalam makalah itu juga berfungsi untuk kasus monokromatik.d t n 2 - εdtn2ε


Apakah algoritma waktu memerlukan beberapa batasan pada ? n 2 - 1 / ~ O ( ( d / log n ) 1 / 3 ) dn21/O˜((d/logn)1/3)d
Michael Wehar

6

Jika saya percaya teknik Alman, Chan, dan Williams memberikan solusi yang paling dikenal untuk Masalah Vektor Non-Orthogonal. (Mereka mengutarakannya secara berbeda, sebagai masalah pasangan Hamming terdekat, tetapi ini setara dengan faktor poli ( ).)k = O ( log n ) dk=O(logn)d

Tanpa terikat pada , versi bikromatik dari Masalah Vektor Non-Orthogonal setidaknya sekeras Masalah Vektor Orthogonal (OVP) hingga faktor . Pertama, perhatikan bahwa dengan faktor overhead kita dapat mengurangi ke versi bikromatik OVP di mana (memisahkan serikat ke dalam set "warna" yang berbeda) dan kami hanya tertarik pada pasangan ortogonal bikromatik . Kedua, dengan faktor overhead kita dapat mengurangi ke kasus khusus dari bikromatik OVP di mana semua vektor di memiliki berat Hamming yang sama . Akhirnya, dengan membalik semua vektor di untuk mendapatkank d log n log n S = S 1S 2 ( v 1 , v 2 ) S 1 × S 2 d S 1 w S 2 S ' 2 S 1 S 2 S 1 S ' 2 wkdlognlognS=S1S2(v1,v2)S1×S2dS1wS2S2 kita melihat bahwa dan memiliki pasangan ortogonal jika dan hanya jika dan memiliki sepasang vektor dengan dot produk setidaknya . Saya tidak yakin apakah ada pengurangan yang efisien dari Masalah Vektor Non-Ortogonik bikromatik ke versi monokromatik yang Anda jelaskan.S1S2S1S2w

Jika Anda mengizinkan perkiraan ada sejumlah hasil terbaru untuk Masalah Vektor Non-Ortogonik bikromatik (sering disebut masalah Pencarian Produk Dalam Maksimum). Lihat misalnya makalah ini dan rujukannya.


0

Kesetaraan:

Masalah vektor non-ortogonal (sebagaimana didefinisikan di atas) untuk himpunan dari vektor Boolean masing-masing dengan panjang dan bilangan bulat positif adalah sama dengan yang berikut:S Sn nd dkk

  • Menemukan oleh submatrix dari 1 dalam diberikan oleh Boolean matrix.2 2k kn ndd

  • Menemukan subgraph lengkap dalam grafik bipartit yang diberikan di mana himpunan simpul pertama memiliki ukuran dan himpunan simpul kedua memiliki ukuran .K 2 , kK2,k nndd

Algoritma Naif:

Pendekatan naif untuk masalah vektor non-ortogonal berjalan dalam waktu karena butuh waktu untuk secara naif menghitung produk titik dari setiap pasangan vektor.O ( d n 2 ) O(dn2)O ( d n 2 )O(dn2)

Jawab pertanyaan (2) & (3):

Ya, ada beberapa algoritma yang lebih efisien dalam berbagai kasus.

Pendekatan pertama:

Kita dapat memecahkan masalah vektor non-ortogonal dalam waktu .O ( d n + k n 2 )O(dn+kn2)

Catatan: Karena produk titik dari dua panjang vektor Boolean harus dibatasi oleh , masalahnya hanya masuk akal ketika .d dd dk dkd

Bukti. Biarkan satu set dari Boolean vektor masing-masing dengan panjang dan bilangan bulat positif diberikan. Pertimbangkan pencacahan dari unsur .S Sn nd dk k{ s i } i [ n ]{si}i[n] SS

Buat hashmap dari pasangan ke . Awalnya, memetakan setiap input ke nilai 0.m m( a , b ) [ n ] × [ n ] (a,b)[n]×[n]NN mm

Untuk setiap , kami melakukan hal berikut. Menghitung melalui pasangan vektor , sedemikian sehingga , bit dari adalah 1, dan bit dari adalah 1. Untuk setiap dan jika , maka dan adalah non-ortogonal yaitu . Jika tidak, tambahkan dan lanjutkan.i [ d ] i[d]s a sas bsb a < b a<bi is asa i is b sbs a sas bsb m ( a , b ) = k - 1 m(a,b)=k1s a sas b sbs as bk sasbkm ( a , b )m(a,b)

Jika kita menyelesaikan enumerasi, maka tidak ada pasangan vektor yang non-ortogonal.

Dibutuhkan waktu untuk memindai setiap bit dari setiap vektor. Kemudian, dibutuhkan waktu tambahan untuk menghitung pasangan vektor. Karena paling banyak vektor dan setiap pasangan dapat muncul paling banyak kali sebelum mereka terbukti non-ortogonal, enumerasi pasangan membutuhkan paling banyak waktu. Oleh karena itu, total runtime adalah .O ( n d ) O(nd)( n2 )(n2) k-1k1O(kn2)O(kn2)O(dn+kn2)O(dn+kn2)

Catatan: Ketika , kita dapat meningkatkan pendekatan ini ke waktu . Ini karena ketika , kita dapat mengurangi menemukan sepasang vektor non-ortogonal di antara vektor Boolean dengan panjang hingga menemukan sepasang vektor non-ortogonal di antara vektor Boolean dengan panjang .k = 2 k=2O ( n d ) O(nd)k = 2 k=2n nd dd dnn

Pendekatan kedua:

Kita dapat memecahkan masalah vektor non-ortogonal dalam waktu .O ( k ( dk )n)O(k(dk)n)

Bukti. Biarkan satu set dari Boolean vektor masing-masing dengan panjang dan bilangan bulat positif diberikan.S Sn nd dkk

melalui set sedemikian sehingga memiliki ukuran . Untuk setiap vektor , memeriksa apakah memiliki semua 1 ini di posisi di . Jika ada dua vektor yang memiliki semua 1 pada posisi di , maka kami telah menemukan dua vektor non-ortogonal.P [ d ] P[d]P Pk kv S vSv vP PPP

Secara total, ada mungkin pilihan untuk . Dan, untuk setiap pilihan, kami memindai melalui bit dari vektor. Oleh karena itu, secara total, runtime adalah .( dk )(dk) PPknknO(k ( dk )n)O(k(dk)n)

Pendekatan ketiga:

Ketika , kita dapat memecahkan masalah vektor non-orthongal di waktu di mana adalah eksponen untuk perkalian matriks integer. Ketika , kita dapat memecahkan masalah vektor non-ortongal dalam waktu .d n dnO ( d ω - 2n 2 ) O(dω2n2)ω ωd > n d>nO ( d n ω - 1 )O(dnω1)

Catatan: Seperti yang ditunjukkan oleh @Rasmus Pagh, kita dapat meningkatkan algoritme ini menjadi saat . Lihat di sini untuk info lebih lanjut: https://arxiv.org/abs/1204.1111O ( n 2 + o ( 1 ) ) O(n2+o(1))d n 0,3dn0.3

Bukti. Biarkan satu set dari Boolean vektor masing-masing dengan panjang dan bilangan bulat positif diberikan.S Sn nd dkk

Pertimbangkan matriks dan . Yang pertama matriks memiliki dimensi oleh mana setiap baris dari adalah vektor dari . Kedua matriks memiliki dimensi oleh di mana setiap kolom dari adalah vektor dari .A AB BA An nd dA AS SB Bd dn nB BSS

Kita dapat menghitung produk titik dari setiap pasangan vektor di dengan menghitung menggunakan algoritma untuk perkalian matriks integer cepat.SSABAB

Ketika , salah satu pendekatannya adalah mengubah perkalian matriks persegi panjang menjadi perkalian kuadrat dengan matriks . Dengan menggunakan perkalian matriks kuadrat cepat, kita dapat menghitung semua perkalian dalam waktu.dndn(nd)2(nd)2ddddO((nd)2dω)=O(dω2n2)O((nd)2dω)=O(dω2n2)

Ketika , salah satu pendekatan adalah untuk mengubah perkalian matriks persegi panjang menjadi perkalian persegi oleh matriks. Dengan menggunakan perkalian matriks kuadrat cepat, kita dapat menghitung semua perkalian dalam waktu.d>nd>ndndnnnnnO((dn )nω)=O(dnω-1)O((dn)nω)=O(dnω1)


Mari kita bandingkan tiga pendekatan ini dalam beberapa kasus berbeda. Kasus 1: Ketika k diperbaiki dan d = O ( log 2 ( n ) ) , pendekatan kedua paling efisien. kd=O(log2(n))
Michael Wehar

Kasus 2: Ketika k = O ( log 2 ( n ) ) dan d = O ( n α ) untuk setiap α ( 0,3 , 1 ) , pendekatan pertama terkadang paling efisien. k=O(log2(n))d=O(nα)α(0.3,1)
Michael Wehar

Kasus 3: Ketika d n 0,3 , kasus ketiga terkadang paling efisien. dn0.3
Michael Wehar

Kasus 4: Ketika d dan k lebih besar dari n , pendekatan ketiga terkadang paling efisien. dkn
Michael Wehar

Catatan: Pendekatan pertama sangat mirip dengan algoritma untuk menemukan empat siklus dalam grafik dalam waktu kuadratik. Lihat di sini: sciencedirect.com/science/article/pii/S0304020808730196
Michael Wehar
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.