【发布时间】:2010-12-30 19:54:36
【问题描述】:
在更大、更密集的矩阵中计算子矩阵的好算法是什么?如果我有单行数据,我可以使用后缀树,但我不确定将后缀树推广到更高的维度是否非常简单或最好的方法。
想法?
我对密集矩阵的第一个元素进行索引并消除全矩阵搜索的幼稚解决方案仅比全矩阵扫描提供了适度的改进。
解决这个问题的最佳方法是什么?
Example:
Input:
Full matrix:
123
212
421
Search matrix:
12
21
Output:
2
这个子矩阵在完整矩阵中出现 两次,因此输出为 2。完整矩阵可以是 1000x1000,但是,搜索矩阵最大为 100x100(可变大小),并且我需要连续处理多个搜索矩阵。因此,这个问题的蛮力太低效了,无法满足我对几个矩阵的亚秒级搜索时间。
【问题讨论】:
-
你的意思是计算唯一个子矩阵吗?
-
我第二点,你的问题陈述不清楚。 Mebbe,您可以提供一个具有预期输出的小示例。
-
你想要 all 子矩阵还是只想要那些固定大小的子矩阵,例如在你的例子中是正方形?这是前者的上限:math.ucdavis.edu/~sonya/submatrix.pdf
-
这完全符合我的输出吗?不,我正在计算一个更大的密集矩阵的唯一子矩阵。
-
我认为他不是在计算唯一的子矩阵,而是计算给定矩阵作为子矩阵出现在较大矩阵中的实例数 --- 这就是示例的工作原理
标签: java algorithm performance matrix