Strassenアルゴリズムでのマトリックスの選択の背後にある大きな画像


17

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=AB 次に、我々は C 1 、1 = A 1 、1件のB 1 、1 + A 1

A=[A1、1A1、2A2、1A2、2] 、 B=[B1、1B1、2B2、1B2、2] 、 C=[C1、1C1、2C2、1C2、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 7
M1:=(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

誰かがこれに何らかの光を当てることができれば幸いです。

回答:


15

2×22×2

2×2

Schönhageはかつて、Strassenがアルゴリズムをこの方法で見つけたと下限を証明しようと言ったことを一度言ったと言っていました。


11

A0、A1、A2、A3B0、B1、B2、B32×2A私Bj∈{0、A0、A1、A2、A3、B0、B1、B2、B3}A0=B0ABA0=B0、A1、A2、A3、B1、B2、B3M

Strassenがこの見方を思いついたかどうかはわかりません。高速行列乗算アルゴリズムの基礎となる他のアイデンティティを考慮すると、何らかの式がうまく機能していることよりも、何かが深く進行しているかどうかは明らかではありません。私たちは以前にそれを経験しました-ラグランジュは4平方定理(以前に知られていました)を使用して4平方定理を証明しました。最初は奇妙な代数的アイデンティティであったに違いありませんが、今では、四元数ノルムの乗法性の性質を述べていることがわかりました。現在の知識の状態を考えると、上記の解釈が生産的であるかどうかを見分けるのは困難です。


3
2×2
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.