時間で行列積検証を実行できる最も一般的な構造は何ですか?


18

1979年、Freivaldsは、任意のフィールドでの行列積の検証がランダム化された時間で行えることを示しました。より正式には、フィールドFからのエントリを持つ3つの行列A、B、およびCが与えられた場合、AB = Cがランダム化されたO n 2時間アルゴリズムを持つかどうかをチェックする問題。O(n2)O(n2)

行列を乗算するための最速の既知のアルゴリズムはこれよりも遅いため、これは興味深いです。したがって、AB = CであるかどうかのチェックはCの計算よりも速いです。

行列積の検証がまだ時間(ランダム化)アルゴリズムを持っている最も一般的な代数構造は何かを知りたいです。元のアルゴリズムはすべてのフィールドで機能するため、すべての積分ドメインでも機能すると思います。O(n2)

この質問に対する最良の答えは、「パス、マトリックス、および三角形の問題間のサブキュービック等価性」で、「リング上のマトリックス製品検証はランダム化時間[BK95]で実行できます」でした。([BK95]:M. BlumおよびS. Kannan。 彼らの仕事をチェックするプログラムの設計。J。ACM、42(1):269–291、1995.)O(n2)

まず、リングは、この問題がランダム化アルゴリズムを持つ最も一般的な構造ですか?第二に、[BK95]の結果がすべてのリングでO n 2時間アルゴリズムをどのように示すかを見ることができませんでした。誰かがその仕組みを説明できますか?O(n2)O(n2)


愚かな質問:決定論的検証が乗算と同じくらい難しいことは明らかですか?A、B、Cだけでなく、コンパクトな証明書も与えられた場合はどうでしょうか。それは何かに役立ちますか?
ユッカスオメラ

@Jukka:この問題に最適な決定論的アルゴリズムは行列の乗算よりも高速ではないと考えていますが、これが当てはまる理由があるかどうかはわかりません。ABはCと等しくない場合は2番目の質問については、後の作品その短い証明書がある。間違っているCのエントリ、およびBの対応するAの行と列が
ロビンコタリ

回答:


14

リング上で動作する理由を簡単に説明します。行列BCが与えられた場合、ランダムビットベクトルvを選択しA B v = C vかどうかをチェックすることにより、A B = Cを検証します。A B = Cの場合、これは明らかに合格です。ABCAB=CvABv=CvAB=C

仮定A のB V = CのVを。LET D = A B - CDは、D v = 0の非ゼロ行列です。これが発生する確率はどのくらいですか?してみましょうD [ I "jは" ]ゼロ以外のエントリです。仮定により、j D [ i j ] v [ j ] = 0ABCABv=CvD=ABCDDv=0D[i,j]jD[i,j]v[j]=0。確率でV [ J " ] = 1、私たちは持っています1/2v[j]=1

D[i,j]+jjD[i,j]v[j]=0

D[i,j]D[i,j]D[i,j]=jjD[i,j]v[j]1/2D[i,j]D[i,j]v[j]v[j]01D[i,j]1/4Dv0Dv[j]v[j]jj

ご覧のとおり、上記の引数は減算に依存しています。したがって、(たとえば)任意の可換半環では機能しません。おそらく、代数構造の乗法特性を緩和しても、結果が得られるでしょうか?


よかった、ありがとう。乗法構造の制約を緩和する可能性があるということについて、あなたの意見を理解しています。私の情報だけでは、これはFreivaldsの元の論文のアルゴリズムと同じではありませんか?
ロビンコタリ

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