Strassenアルゴリズムでは、2つの行列とBの積を計算するために、行列AとBは2 × 2ブロック行列に分割され、アルゴリズムは単純な8ブロック行列ではなく、7ブロック行列-行列積を再帰的に計算します。行列積、すなわち、我々は場合はC = A B、
A = [ 1 、1 A 1 、2 A 2 、1 A 2 、2ABAB2 × 278C = A B
次に、我々は
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]
必要
8個の乗算します。代わりシュトラッセに、我々は、計算
M 1:=( 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
8
及び得る
CをI 、Jの使用
M 、Kのような
C 1 、1 = M 1 + M 4 − M 5 + M 7M1:=(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)
C私、jMk
しかし、の選択は、行列
Mの K「sは私に任意見えます。
Aと
Bの部分行列のこれらの特定の積を選択する理由について、より大きな画像がありますか?また、
M kには
A i 、j、
B i 、jが対称的に関係していると思われますが、ここではそうではないようです。たとえば、
M 2があります:=C1 、1= M1+ M4− M5+ M7C1 、2= M3+ M5C2 、1= M2+ M4C2 、2= M1− M2+ M3+ M6
MkABMkA私、jB私、j。私は、その相手と言う期待
1 、1(B 1 、2 + B 2 、2)も計算します。ただし、他の
M kから取得できるためです。
M2:=(A2 、1+ A2 、2)B1 、1A1 、1(B1 、2+ B2 、2)Mk
誰かがこれに何らかの光を当てることができれば幸いです。