Strassen algoritmada, iki matris çarpımını hesaplamak için ve B , matrisler bir ve B ayrılır 2 × 2 blok matrisler ve algoritma yinelemeli işlem oluşan gelirler 7 naif karşı blok matris-matris ürünleri 8 blok matris matris ürünleri, yani C = A B istiyorsak , burada
A = [ A 1 , 1 A 1 , 2 A 2 , 1 A 2 , 2ABAB2 × 278C = A B
o zaman var
Cı 1 , 1 = A 1 , 1 B 1 , 1 + A 1
A=[A1,1A2,1A1,2A2,2] , B=[B1,1B2,1B1,2B2,2] , C=[C1,1C2,1C1,2C2,2]
gerektirir
8çarpma. Bunun yerine Strassen'de
M 1 hesaplıyoruz
:=( A 1 , 1 + A 2 , 2 )( B 1 , 1 + B 2 , 2 )C1,1=A1,1B1,1+A1,2B2,1C1,2=A1,1B1,2+A1,2B2,2C2,1=A2,1B1,1+A2,2B2,1C2,2=A2,1B1,2+A2,2B2,2
8M1:=(A1,1+A2,2)(B1,1+B2,2)M2:=(A2,1+A2,2)B1,1M3:=A1,1(B1,2−B2,2)M4:=A2,2(B2,1−B1,1)M5:=(A1,1+A1,2)B2,2M6:=(A2,1−A1,1)(B1,1+B1,2)M7:=(A1,2−A2,2)(B2,1+B2,2)
and obtain
Ci,j's using
Mk's as
C1,1=M1+M4−M5+M7C1,2=M3+M5C2,1=M2+M4C2,2=M1−M2+M3+M6
However, the choice of the matrices
Mk's seem arbitrary to me. Is there a bigger picture as to why we choose these specific products of sub-matrices of
A and
B? Also, I would expect
Mk's to involve
Ai,j's and
Bi,j's in a symmetric fashion, which does not seem to be the case here. For instance, we have
M2:=(A2,1+A2,2)B1,1. I would expect its counterpart say
A1,1(B1,2+B2,2) also to be computed. However, it is not since it can be obtained from other
Mk's.
I would appreciate if someone could throw some light on this.