我想知道完全旋转的算法渐近复杂度。通过部分旋转,已知为。
完全旋转是否相同?
我想知道完全旋转的算法渐近复杂度。通过部分旋转,已知为。
完全旋转是否相同?
是的。在整个尾随子矩阵中搜索下一个枢轴而不是仅在当前列中仅替换从到查找枢轴所花费的时间。虽然总运行时间增加,但整体渐近复杂度仍为。
卡尔的答案是正确的,我也赞成。枢轴搜索从步到步的增长是不幸的,但不会危及整体复杂性。表示法的常见警告应该重复两次,即省略常量会掩盖重要的细节。
这里隐藏的问题是,完全旋转似乎破坏了使用 BLAS3 操作对尾随列进行延迟更新的机会。因为任何列都可能随时持有下一个主元,所以它们总是必须使用 BLAS2 内核保持最新。
相比之下,部分旋转只需要 BLAS2 更新即将到来的列的薄“前导面板”,并且可以在面板完成后使用 BLAS3 更新所有尾随列。
所有这一切的底线是,尽管具有相同的渐近复杂性,但在实际计算机上,完全旋转比部分旋转慢得多。