Jaka jest najbardziej ogólna struktura weryfikacji produktu matrycowego w czasie

18

W 1979 r. Freivalds wykazał, że weryfikacja produktów matrycowych w dowolnym polu może być przeprowadzona w losowym czasie . Bardziej formalnie, biorąc pod uwagę trzy macierze A, B i C, z wpisami z pola F, problem sprawdzania, czy AB = C ma losowy algorytm czasowy O ( n 2 ) .O(n2)O(n2)

Jest to interesujące, ponieważ najszybszy znany algorytm mnożenia macierzy jest wolniejszy niż ten, dlatego sprawdzanie, czy AB = C jest szybsze niż obliczanie C.

Chcę wiedzieć, jaka jest najbardziej ogólna struktura algebraiczna, nad którą weryfikacja iloczynu macierzowego nadal ma algorytm czasu (losowego) . Ponieważ oryginalny algorytm działa na wszystkich polach, myślę, że działa również na wszystkich domenach integralnych.O(n2)

Najlepszą odpowiedzią, jaką mogłem znaleźć na to pytanie, były podklubie Równoważności między ścieżkami, macierzą i problemami trójkąta , w których powiedziano: „weryfikacja iloczynu macierzy przez pierścienie może być wykonana w losowym czasie [BK95]”. ([BK95]: M. Blum i S. Kannan. Projektowanie programów, które sprawdzają ich pracę. J. ACM, 42 (1): 269–291, 1995.)O(n2)

Po pierwsze, czy pierścienie są najbardziej ogólną strukturą, na której ten problem ma losowy algorytm ? Po drugie, nie widziałem, jak wyniki [BK95] pokazują algorytm czasowy O ( n 2 ) dla wszystkich pierścieni. Czy ktoś może wyjaśnić, jak to działa?O(n2)O(n2)

Robin Kothari
źródło
Głupie pytanie: czy oczywiste jest, że weryfikacja deterministyczna jest tak trudna jak rozmnażanie? Co jeśli otrzymasz nie tylko A, B i C, ale także certyfikat kompaktowy; czy to coś pomaga?
Jukka Suomela,
@Jukka: Uważam, że najlepszy algorytm deterministyczny dla tego problemu nie jest szybszy niż mnożenie macierzy, ale nie wiem, czy istnieje powód, dla którego powinno tak być. Jeśli chodzi o drugie pytanie, jeśli AB nie jest równe C, to działa krótki certyfikat: wpis C jest niepoprawny oraz odpowiedni wiersz A i kolumna B.
Robin Kothari

Odpowiedzi:

14

Oto szybki argument, dlaczego działa on nad pierścieniami. Podane macierze , B , CABC , weryfikujemy , wybierając losowy wektor bitów v , a następnie sprawdzając, czy A B v = C v . To wyraźnie przechodzi jeżeli A B = C .AB=CvABv=CvAB=C

Załóżmy, że i A B v = C v . Niech D = A B - C . D jest niezerową macierzą, dla której D v = 0 . Jakie jest prawdopodobieństwo, że to nastąpi? Niech D [ i ABCABv=CvD=ABCDDv=0 będzie wartością niezerową. Z założeniaj D [ i , j ] v [ j ] = 0D[i,j]jD[i,j]v[j]=0. Z prawdopodobieństwem , v [ j " ] = 1 , to mamy1/2v[j]=1

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

Każdy pierścień w ramach operacji dodawania jest grupą addytywną, więc istnieje unikalna odwrotność , tj. - D [ i , j ] . Teraz, prawdopodobieństwo złego wydarzenia - D [ I ' , j ' ] = Σ j j ' D [ I ' , j ] v [ j ] jest co najwyżej 1 / 2D[i,j]D[i,j]D[i,j]=jjD[i,j]v[j]1/2. (Jednym ze sposobów na to jest „zasada odroczonych decyzji”: aby suma była równa , przynajmniej jedno inne D [ i , j ] musi być niezerowe. v [ j ] odpowiada tym innym niezerowym wpisom. Nawet jeśli ustawimy wszystkie te v [ j ] z wyjątkiem jednego z nich optymalnie , nadal istnieje równe prawdopodobieństwo dla ostatniego wynoszącego 0 lub 1D[i,j]D[i,j]v[j]v[j]01, Ale tylko jedna z tych wartości może sprawić, że ostateczną kwotę równą ). Tak więc z prawdopodobieństwem co najmniej 1 / 4 , udało nam się dowiedzieć, że D v 0 , gdy D jest niezerowe. (Uwaga v [ j ] i v [ j ] są niezależnie wybrane dla j j .)D[i,j]1/4Dv0Dv[j]v[j]jj

Jak widać, powyższy argument zależy od odejmowania. Więc to nie będzie działać (na przykład) na dowolnych semutycznych przemiennych. Być może mógłbyś rozluźnić multiplikatywne właściwości struktury algebraicznej i nadal uzyskać wynik?

Ryan Williams
źródło
Fajnie dzięki. Widzę twój punkt widzenia, że ​​istnieje możliwość zmniejszenia ograniczeń struktury multiplikatywnej. Dla mojej informacji, czy nie jest to ten sam algorytm, co w oryginalnej pracy Freivalds?
Robin Kothari,
1/2