【问题标题】:Time complexity for finding largest eigenvalue寻找最大特征值的时间复杂度
【发布时间】:2014-12-04 21:08:49
【问题描述】:

我正在尝试计算在一大堆小矩阵中计算最大特征向量的时间复杂度。

每个矩阵都是加权无向图中节点的 1 步邻域的邻接矩阵。所以所有的值都是正的,矩阵是对称的。 例如

0 2 1 1
2 0 1 0
1 1 0 0
1 0 0 0

我发现 Power iteration 方法应该是 O(n^2) 每次迭代的复杂度。

这是否意味着为图中的每个节点找到 1 步邻域的最大特征向量的复杂度是 O(n * p^2),其中 n 是节点数,p 是平均度数图(即边数/节点数)?

【问题讨论】:

    标签: time-complexity graph-theory eigenvector


    【解决方案1】:

    在我的脑海中,我想说你最好的选择是使用一种称为幂迭代的迭代随机算法。该算法是迭代的,通过几何收敛找到真正的最大特征值,最大特征值与第二大特征值之比。所以,如果你的两个最大特征值相等,不要使用这种方法,否则效果很好。你实际上得到了最大的特征值和各自的特征向量。

    但是,如果您的矩阵非常小,您可能也可以执行 PCA,因为它不会那么昂贵。我不知道何时应该在两者之间切换的任何硬阈值。这也取决于您是否愿意接受小的不准确或绝对真实的价值。

    【讨论】:

    • 问题是询问时间复杂度,而不是询问最快方法的建议。
    • 啊抱歉,我写这个一定很累。据我所知,迭代方法收敛到解决方案,因此没有严格的时间复杂度。虽然我不会假装 100% 肯定这一点。要获得特征值(全部),它是 $O(n^3)$。如果您认为我应该记下答案,请告诉我。
    猜你喜欢
    • 2015-08-29
    • 2019-04-29
    • 2015-11-17
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多