Apa struktur paling umum di mana verifikasi produk matriks dapat dilakukan dalam waktu

18

Pada tahun 1979, Freivalds menunjukkan bahwa memverifikasi produk matriks atas bidang apa pun dapat dilakukan dalam waktu secara acak . Lebih formal, diberikan tiga matriks A, B, dan C, dengan entri dari bidang F, masalah memeriksa apakah AB = C memiliki algoritma waktu O ( n 2 ) acak .O(n2)O(n2)

Ini menarik karena algoritma yang paling cepat diketahui untuk mengalikan matriks lebih lambat daripada ini, jadi memeriksa apakah AB = C lebih cepat daripada komputasi C.

Saya ingin tahu apa struktur aljabar paling umum di mana verifikasi produk matriks masih memiliki algoritma waktu (acak). Karena algoritme asli berfungsi di semua bidang, saya kira itu berfungsi di semua domain integral juga.O(n2)

Jawaban terbaik yang dapat saya temukan untuk pertanyaan ini adalah dalam Subkubis Kesetaraan Antara Jalur, Matriks, dan Masalah Segitiga , di mana mereka mengatakan "verifikasi produk matriks atas cincin dapat dilakukan dalam waktu acak [BK95]." ([BK95]: M. Blum dan S. Kannan. Merancang program yang memeriksa pekerjaan mereka. J. ACM, 42 (1): 269–291, 1995.)O(n2)

Pertama, apakah cincin merupakan struktur paling umum di mana masalah ini memiliki algoritma acak ? Kedua, saya tidak bisa melihat bagaimana hasil [BK95] menunjukkan algoritma waktu O ( n 2 ) di semua dering. Adakah yang bisa menjelaskan cara kerjanya?O(n2)O(n2)

Robin Kothari
sumber
Pertanyaan bodoh: apakah sudah jelas bahwa verifikasi deterministik sama sulitnya dengan perkalian? Bagaimana jika Anda tidak hanya diberikan A, B, dan C tetapi juga sertifikat yang kompak; apakah itu membantu sesuatu?
Jukka Suomela
@ Jukka: Saya percaya algoritma deterministik terbaik untuk masalah ini tidak lebih cepat dari perkalian matriks, tapi saya tidak tahu apakah ada alasan mengapa ini harus terjadi. Tentang pertanyaan kedua, jika AB tidak sama dengan C, maka ada sertifikat pendek yang berfungsi: entri C yang salah, dan baris A dan kolom B.
Robin Kothari

Jawaban:

14

Berikut ini argumen singkat mengapa ia bekerja di atas dering. Diberikan matriks , B , C , kami memverifikasi A B = C dengan memilih vektor bit acak v , lalu memeriksa apakah A B v = C v . Ini jelas melewati jika A B = C .ABCAB=CvABv=CvAB=C

Misalkan dan A B v = C v . Biarkan D = A B - C . D adalah matriks nol untuk yang D v = 0 . Berapa probabilitas hal ini terjadi? Biarkan D [ i , j ] menjadi entri yang bukan nol. Dengan asumsi, j D [ i , j ] v [ j ] = 0ABCABv=CvD=ABCDDv=0D[i,j]jD[i,j]v[j]=0. Dengan probabilitas , v [ j ' ] = 1 , jadi kita harus1/2v[j]=1

.D[i,j]+jjD[i,j]v[j]=0

Setiap cincin di bawah operasi Selain adalah kelompok aditif, sehingga ada terbalik unik , yaitu, - D [ i ' , j ' ] . Sekarang, probabilitas dari peristiwa buruk - D [ i ' , j ' ] = Σ j j ' D [ i ' , j ] v [ j ] adalah paling 1 / 2D[i,j]D[i,j]D[i,j]=jjD[i,j]v[j]1/2. (Salah satu cara untuk melihat ini adalah "prinsip keputusan yang ditangguhkan": agar penjumlahannya sama , setidaknya satu D lainnya [ i , j ] harus nol, jadi pertimbangkan v [ j ] sesuai dengan entri bukan nol lainnya ini. Bahkan jika kita mengatur semua v [ j ] ini kecuali untuk salah satu dari mereka secara optimal , masih ada probabilitas yang sama untuk yang terakhir adalah 0 atau 1D[i,j]D[i,j]v[j]v[j]01, Tapi masih hanya satu dari nilai-nilai ini bisa membuat jumlah akhir sama untuk .) Jadi dengan probabilitas setidaknya 1 / 4 , kami berhasil menemukan bahwa D v 0 , ketika D adalah nol. (Catatan v [ j ] dan v [ j ] dipilih secara independen untuk j j .)D[i,j]1/4Dv0Dv[j]v[j]jj

Seperti yang Anda lihat, argumen di atas tergantung pada pengurangan. Jadi itu tidak akan berfungsi (misalnya) pada semut komutatif yang sewenang-wenang. Mungkin Anda bisa mengendurkan sifat multiplikasi struktur aljabar, dan masih mendapatkan hasilnya?

Ryan Williams
sumber
Terima kasih banyak. Saya melihat poin Anda tentang kemungkinan mengurangi kendala pada struktur multiplikasi. Sekadar informasi saya, bukankah ini algoritma yang sama dengan yang ada di makalah asli Freivalds?
Robin Kothari
1/2