15
$\开始组$

计算整数矩阵的秩在输入的大小上是否具有复杂性多项式?

高斯消去算法在基本运算(加法和乘法)的数量上是多项式的,但矩阵项的中间大小可能会以指数形式增加。还有其他复杂度更好的算法吗?谁能提供推荐人?

$\端组$

3个答案

重置为默认值
15
$\开始组$

高斯消去多项式时间算法。虽然乍一看可能不太明显,但可以实现这样的方法,以便中间条目只有多项式大小(位长度),因为它们碰巧等于原始矩阵的某些子矩阵的行列式(或其比值,取决于版本)。参见示例。埃德蒙兹Bareiss公司

$\端组$
1
  • $\开始组$ 没错,根据哈达玛定理,使用Bareiss算法所需的空间最多为0.5 n lg n+O(n)。这意味着每个操作需要花费$O(n(\logn)^{2+\varepsilon})$的时间,因此总体时间复杂性为$O(n^4(\log n)^})$ $\端组$
    – 查尔斯
    2011年4月28日15:36
8
$\开始组$

12年前,我在sci.math.num分析中提出了更多或更少的相同问题,但对于整数项较小的情况。托姆·穆德斯回答说很棒的模块化方法。

编辑:上面的链接似乎已经死了,所以我在这里逐字回复

您可以使用模块化方法。当A是矩阵时,计算N的不同素数p是(A模p)的秩。当你使用素数的乘积足够大,则排名将等于排名的最大值你已经计算过了。具体来说。设A是n by m矩阵(n<=m),并且||A||是当r是A的秩时,A有一个r乘r的子矩阵Bdet(B)<>0。当素数的乘积Q超过det(B)时,必须至少是一个素数p,使得(B模p)的秩为r,因此(A模p)的秩为r。利用Hadamard的界,我们得到数据(B)<=r^{r/2}||A||^r<=n^{n/2}||A ||^n,所以你最多需要n个(logn)/2+log||A||)不同的素数。由于计算(A模p)的秩的复杂性为O(mn^2)(假设素数不太大,例如适合机器词)该算法是(直到一些对数因子)O(mn^3)。这比之前提出的分数自由算法的复杂度(O(mn^4))。您也可以使用上述的概率版本。至少取一组S2n((logn)/2+log||A||)不同素数并计算(A模p)的秩对于来自S的不同随机素数。对于这样的随机素数,概率(A模p)的秩是A的秩至少是1/2。当你发现对于p的N个选择,秩没有增加,那么概率你已经找到了正确的等级至少是1-(1/2)^N。取N=20失效概率不到百万分之一。增加集合S提高成功的概率。
$\端组$
6
$\开始组$

你的问题的答案是肯定的。注意,您可以用长度输入中的整数大小多项式来约束矩阵的行列式(事实上,您需要约束矩阵行跨越的格的大小)。假设$p$是一个素数,且大于这个界限,则整数矩阵的秩将等于矩阵mod$p$的秩。

$\端组$

你的答案

点击“发布您的答案”,即表示您同意我们的服务条款并确认您已阅读我们的隐私政策

不是你想要的答案吗?浏览标记的其他问题问你自己的问题