两个下三角矩阵乘法的复杂性

时间:2016-03-11 09:46:42

标签: matrix-multiplication lower-bound code-complexity

我知道两个完整矩阵乘法的下界是Ω(n ^ 2)。 Matrix multiplication

我一直试图用问题转换方法证明两个下三角矩阵乘法的下界。

我最初的想法是(1)变换下三角矩阵,(2)估计这种变换的时间复杂度。

T(lower_triangular_matrix_multiplication(n))+O(lower_triangular_matrix_transformation(n))>Ω(full_matrix_multiplication(n)) = Ω(n^2)

现在,我只需要证明O(lower_triangular_matrix_transformation(n)),我需要将三角矩阵作为一个完整矩阵,所以为了简单起见,我只是让这个三角矩阵乘以自身的变量,比如转置。

原因是下三角矩阵的平方仍然是下三角矩阵,下三角矩阵乘以其转置变量是“全矩阵”。

所以我只需要分析三角矩阵的复杂性乘以其转置变化。

有人能表明我的想法是否“合理”?

2 个答案:

答案 0 :(得分:3)

我不相信通过构造算法足以证明下限,因为仍然不能排除存在不同复杂度较低的算法。

很明显,下限不会高于O(n ^ 2),因为一般乘法总是适用于lower_triangle_matrices(ltm)。

现在,由于任意矩阵到一个或多个ltm的任何变换本身就是O(n ^ 2)复杂度的运算,我们可能无法推断出任何这样的算法都不存在。

你的推理概述似乎表明,增加复杂性遵循“正常”的算术规则。事实并非如此! 由此产生的复杂性始终是(至少)算法部分复杂性的最大值。

所以你的推理似乎不合理。

您可以尝试以下方法之一:

  1. 构造一个复杂度较低的算法(证明存在)
    当目标是O(ltm)<为O(n ^ 2)
  2. 找到具有复杂性的转换< O(n ^ 2)并且产生 LTM。然后任何具有较低复杂度的ltm乘法算法 将为具有复杂性的任意矩阵提供算法 这与你最初的主张相矛盾 然而,这需要转换足够低的复杂性。 如果这不知道。该论点不可用。
  3. 对我来说,看起来好像是来自T()+ O()>的步骤。 O(n ^ 2)没有良好的基础。 从这一点来看,只需要证明(O(ltm))的结论就会被打破。

答案 1 :(得分:2)

我在想解决方案可能是将A转换为A + A'。 transpose和plus操作的复杂性都是O(n ^ 2)。 因此,O(lower_triangular_matrix_transformation(n))= n ^ 2。 因为A A的下界和(A + A')(A + A')中的下界也是Ω(n ^ 2), T(lower_triangular_matrix_multiplication(n))>Ω(full_matrix_multiplication(n)) - O(lower_triangular_matrix_transformation(n)),这意味着三角矩阵的下界和全矩阵的下界是相同的。

Q.E.D。