高速スパースブール行列チェーン積


13

したがって、辺の長さが数十個の非常にまばらな正方ブール行列が約100から200個あり、それらの積を計算する必要があります。連続してそれらを乗算すると、通常、各ステップで製品がまばらにとどまることがわかります。

この場合に特に高速に動作するマトリックスチェーン製品アルゴリズムはありますか?

より高いレベルでは、問題は、ほとんどの要素が0〜3にしかマッピングされない、かなり小さいグラフ(NFAの遷移関数)で一連の1対多マッピングの構成を計算することです。

(すべてのマトリックスは同じサイズであり、最適な括弧付けを選択する必要がないため、これは通常の「マトリックスチェーン積」問題ではないことに注意してください)


5
実際、それらを乗算する順序は中間結果のスパース性に影響する可能性があるため、このような高速アルゴリズムでは依然として重要な問題になる可能性があります。
ジョシュアグロチョウ

あなたの他の質問から、あなたは0/1 半環 AND / OR演算を使用しているようですが、加算/乗算ではありません(問題が述べているようです)、質問でこれを明確にしてください
-vzn

回答:


10

これは長すぎてコメントすることができませんでした-それらの行列は、ランダム行列とは異なる振る舞いをさせる構造を持っているのでしょうか。ランダムなスパース行列の積はゼロになるか、すぐに非スパースになります。

簡単な実験を次に示します。200個のランダムな50x50バイナリマトリックスを使用し、非ゼロの数をマトリックス数の関数としてプロットします。以下のプロットは、2000回の実行における標準偏差を示しています。最初のプロットは2%のスパース性、2番目のプロットは3%の


(ソース:yaroslavvb.com(ソース:yaroslavvb.com

これは、標準の行列乗算を使用してラップトップで3分かかりました

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