具有全列秩的二进制矩阵的所有子矩阵的快速计数

计算科学 线性代数 矩阵 线性求解器
2021-12-22 23:42:16

我有一个大小为的二进制满秩矩阵。我需要计算其列中有多少子集形成具有完整列秩的矩阵,即子集中的所有列都是线性独立的。25×50

直接的方法是遍历大小不超过的列的所有子集,然后检查相应的子矩阵是否具有完整的列秩。这种方式需要测试 矩阵。因此,需要一种非常快速的算法来测试特定子矩阵是否具有完整的列秩。25

(501)+(502)++(5025)=6261552566401876.3×1014

例如,假设我有 500 个核心,我想在 24 小时内计算主题。然后我需要在一个核心上每秒旧好的高斯消除在这项任务中失败了。我可以做一些比它快得多的事情吗?1.4×107

另一种方法可能是一些优化的方法,比如分支和边界,这样就不需要检查所有的子矩阵——而只需要检查其中的一小部分。但是,我目前看不到在这个方向上可以做些什么。

PS所有操作都在伽罗瓦域上。F2

1个回答

有趣的问题。对我来说,这看起来像是一个修改后的列子集选择问题。该问题涉及置换矩阵的确定,因此:P

AP=(A1A2)
用于实数或复数矩阵的列应该是非常线性独立的,而的冗余列存储在中。您可能可以将您的问题分解为多个子集选择问题,例如树搜索(还不知道如何执行此操作)。以下是有关该主题的一些参考资料:AA1AA2

Avron、Haim 和 Christos Boutsidis。“更快地选择矩阵和应用程序的子集。” SIAM 矩阵分析和应用杂志 34.4 (2013): 1464-1499。 http://www.boutsidis.org/Boutsidis_SIMAX_13a.pdf

Civril、Ali 和 Malik Magdon-Ismail。“通过 SVD 的稀疏近似来选择列子集。” 理论计算机科学 421(2012):1-14。 http://www.sciencedirect.com/science/article/pii/S0304397511009388

Arai、Hiromasa、Crystal Maung 和 Haim Schweitzer。“A-Star Search 的最佳列子集选择”。AAAI。2015. https://pdfs.semanticscholar.org/abda/eb770487773d20ee887107569d4e36278972.pdf