Coppersmith–Winogradアルゴリズムのスペースの複雑さ


24

Coppersmith–Winogradアルゴリズムは、2つの正方行列を乗算するための漸近的に既知のアルゴリズムです。彼らのアルゴリズムの実行時間は であり、これはこれまでで最もよく知られています。このアルゴリズムの空間の複雑さは何ですか?それがである?n×nO(n2.376)Θ(n2)

回答:


30

はい、Strassenの元のアルゴリズムに由来するすべてのアルゴリズム(これには、行列乗算用の最も知られているアルゴリズムが含まれますが、すべてではありません-コメントを参照)は、スペースの複雑さ持っています。空間の複雑さを持つ時間アルゴリズムを見つけることができれば、これは大きな進歩です。1つのアプリケーションは、Subset-Sum問題に対する時間の空間アルゴリズムです。n3εΘ(n2)n3εpoly(logn)2(1ε)npoly(n)

しかし、そのような結果にはいくつかの障害があります。一部の計算モデルでは、行列乗算の時空間積にかなり強い下限があります。YeshaAbrahamsonのような参照は、より多くの情報を提供します。


こんにちはライアン、素晴らしい。Cohn-Umans [FOCS2003]およびCohn-Kleinberg-Szegedy-Umans [FOCS2005]によるグループ理論アルゴリズムはどうですか?
シヴァキンタリ

1
ええ、それらも。私の理解では、彼らは特別な種類の畳み込み(特別なグループのFFT)を行っていますが、畳み込みはサイズオブジェクトに対して行われます。整数上でのベクトルの畳み込みでは、(明らかなアルゴリズムよりも時間の複雑さの良い)小空間アルゴリズムは知られていません。これらのグループ上で小空間畳み込みを取得するのは難しいと思います。Θ(n2)
ライアンウィリアムズ

行列のエントリを保存するのにスペースが必要な場合、どうすればスペースを持つことができますか?poly(logn)2n2
T ....

なぜなら、スペースの複雑さを測定する通常の方法では、入力はスペースの限界にカウントされないからです。入力は「読み取り専用」として扱われ、関数の計算に必要な追加の「読み取り/書き込み」メモリの量を測定します。この場合、入力エントリが制限されている場合(たとえば0または1)、操作を使用する場合、追加スペースのみで十分です。O(logn)O(n3)
ライアンウィリアムズ

1
あなたが何を念頭に置いているのかはわかりませんが、対数係数でn ^ 3時間を破り、n ^ 2よりもはるかに少ないスペースを使用するブール行列multの「組み合わせ」(テーブルルックアップ)アルゴリズムは間違いなくあります...
ライアンウィリアムズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.