更新:我最终没有使用 Eigen 并实现了我自己的 GF(2) 矩阵表示,其中每一行是一个整数数组,整数的每一位代表一个条目。然后我使用修改后的高斯消除和位运算来获得所需的向量
我目前有一个(大)矩形稀疏矩阵,我使用 Eigen3 存储它,我想在 GF(2) 上找到(右)空空间。我四处研究并发现了一些可能的方法:
- (修改)高斯消元法
这意味着只需使用某种形式的高斯消除来找到保留零空间的矩阵的简化形式,然后从中提取零空间。虽然我知道我将如何手动执行此操作,但我对如何实际执行此操作一无所知。
- SVD分解
- 二维码分解
我对这些不熟悉,但根据我的理解,零空间的(正交)基向量可以从矩阵的分解形式中提取出来。
现在我的问题是:在我的情况下我应该使用哪种方法(即 GF(2) 上的矩形稀疏矩阵)不涉及转换为密集矩阵?如果有很多方法,在性能和易于实施方面会推荐什么?
我也愿意使用除 Eigen 之外的其他库。
对于上下文,我正在尝试为分解算法找到组合等价关系(例如,在二次筛中)。另外,如果可能的话,我想在未来考虑并行化这些算法,所以如果存在允许这样做的方法,那就太好了!