Większy obraz wyboru matryc w algorytmie Strassena

17

W algorytmie Strassena, aby obliczyć iloczyn dwóch macierzy ZA i , macierze i są podzielone na macierze blokowe i algorytm kontynuuje rekurencyjne obliczanie bloków produkty matryca-matryca w przeciwieństwie do naiwnych blokowych produktów matrycowo-matrycowych, tj. jeśli chcemy , gdzie A B 2 × 2 7 8 C = A B A = [ A 1 , 1 A 1 , 2 A 2 , 1 A 2 , 2 ]  ,  B = [ B 1 , 1 B 1 , 2 B 2 , 1 B 2 , 2 ]  ,  C = [ C 1 , 1bZAb2)×2)78do=ZAb

ZA=[ZA1,1ZA1,2)ZA2),1ZA2),2)] , b=[b1,1b1,2)b2),1b2),2)] , do=[do1,1do1,2)do2),1do2),2)]
mamy więc który wymaga
do1,1=ZA1,1b1,1+ZA1,2)b2),1do1,2)=ZA1,1b1,2)+ZA1,2)b2),2)do2),1=ZA2),1b1,1+ZA2),2)b2),1do2),2)=ZA2),1b1,2)+ZA2),2)b2),2)
8mnożenia. Zamiast tego w Strassen obliczamy i uzyskaj używa jako as
M.1: =(ZA1,1+ZA2),2))(b1,1+b2),2))M.2): =(ZA2),1+ZA2),2))b1,1M.3): =ZA1,1(b1,2)-b2),2))M.4: =ZA2),2)(b2),1-b1,1)M.5: =(ZA1,1+ZA1,2))b2),2)M.6: =(ZA2),1-ZA1,1)(b1,1+b1,2))M.7: =(ZA1,2)-ZA2),2))(b2),1+b2),2))
doja,jotM.k
do1,1=M.1+M.4-M.5+M.7do1,2)=M.3)+M.5do2),1=M.2)+M.4do2),2)=M.1-M.2)+M.3)+M.6
Jednak wybór macierzy wydaje mi się arbitralny. Czy istnieje szerszy obraz tego, dlaczego wybieramy te konkretne produkty z macierzy i \ mathbf {B} ? Spodziewałbym się także, że \ mathbf {M} _k będzie angażował \ mathbf {A} _ {i, j} i \ mathbf {B} _ {i, j} w symetryczny sposób, co nie wydaje się, że tak właśnie jest. Na przykład mamyM.kZAbM.kZAja,jotbja,jotM.2): =(ZA2),1+ZA2),2))b1,1 . Spodziewałbym się, że jego odpowiednik powie, że również zostanie obliczony. Jednak nie jest tak, ponieważ można go uzyskać z innych .ZA1,1(b1,2)+b2),2))M.k

Byłbym wdzięczny, gdyby ktoś mógł rzucić na to trochę światła.

Społeczność
źródło

Odpowiedzi:

15

De Groote (O odmianach optymalnych algorytmów obliczania odwzorowań dwuliniowych. II. Optymalne algorytmy mnożenia macierzy 2x2. Teoria. Obliczanie. Sci. 7: 127-148, 1978) dowodzi, że istnieje tylko jeden algorytm do pomnożenia -macierze z 7 mnożeniami aż do równoważności. Może to być unikalna funkcja mnożenia 2 × 2 . (Uwaga: W literaturze znajdziesz różne warianty algorytmu Strassena. Wszystkie są równoważne z właściwym pojęciem równoważności.)2)×2)2)×2)

Jeśli zaczniesz teraz wykazywać dolną granicę dla mnożenia macierzy - zobacz, jak to zrobić w książce Bürgissera, Clausena i Shokrollahi - algorytm Strassena lub jakiś wariant pokazuje się całkiem naturalnie. Dowiesz się wielu tożsamości, które określają wygląd produktów. Następnie możesz zakończyć zgadywanie. (Dowód De Groote pokazuje, że nawet zgadywanie nie jest konieczne.)2)×2)

Schönhage powiedział mi kiedyś, że Strassen powiedział mu kiedyś, że znalazł swój algorytm w ten sposób, próbując udowodnić dolną granicę.

Markus Bläser
źródło
11

ZA0,ZA1,ZA2),ZA3)b0,b1,b2),b3)2)×2)ZAjabjot{0,ZA0,ZA1,ZA2),ZA3),b0,b1,b2),b3)}ZA0=b0ZAbZA0=b0,ZA1,ZA2),ZA3),b1,b2),b3)M.

Nie wiem, czy Strassen wymyślił taki sposób patrzenia na to. Biorąc pod uwagę inne tożsamości leżące u podstaw algorytmów szybkiego mnożenia macierzy, nie jest jasne, czy dzieje się coś głębszego, niż jakaś wypracowana formuła. Przeszliśmy już to wcześniej - Lagrange wykorzystał tożsamość czterech kwadratów (która była znana wcześniej), aby udowodnić twierdzenie o czterech kwadratach. Na początku musiała to być osobliwa tożsamość algebraiczna, ale teraz wiemy, że określa ona właściwość multiplikatywności normy czwartorzędowej. Biorąc pod uwagę obecny stan wiedzy, trudno powiedzieć, czy powyższa interpretacja jest tak produktywna.

Yuval Filmus
źródło
3
2)×2)