快速稀疏布尔矩阵链乘积


13

因此,我有大约100-200个非常稀疏的方布尔矩阵,边长约为几十个,我需要计算它们的乘积。我知道,如果我连续乘以它们,乘积通常在每一步都保持稀疏状态。

在这种情况下,是否有任何矩阵链乘积算法工作得特别快?

从更高的角度讲,问题是要在一个相当小的图(NFA的转换函数)上计算一系列一对多映射的组成,其中大多数元素映射到不超过0-3。

(请注意,这不是通常的“矩阵链乘积”问题,因为所有矩阵的大小相同,我不必选择最佳括号)


5
实际上,将它们相乘的顺序可能会影响中间结果的稀疏性,因此在任何这种快速算法中,它仍然可能是重要的问题。
约书亚·格罗肖

从您的其他问题来看,您似乎正在使用0/1 半环 AND / OR运算,而不是加法/乘法(问题似乎已经说明了),请在问题中明确说明
vzn

Answers:


10

这太长了,无法发表评论-我想知道这些矩阵是否具有使其结构与随机矩阵有所不同的结构。随机稀疏矩阵的乘积很快变为零或变为非稀疏。

这是一个简单的实验-取200个随机二进制50x50矩阵,并将非零数绘制为矩阵数相乘的函数。下图显示了2000次运行的标准偏差。第一个情节是稀疏度的2%,第二个情节是稀疏度的3%


(来源:yaroslavvb.com(来源:yaroslavvb.com

使用标准矩阵乘法在笔记本电脑上花费了3分钟

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.