对于大小为k x k的矩阵,Strassen算法有多少个浮点运算?

时间:2009-10-14 18:04:31

标签: algorithm matrix multiplication strassen

我试图理解this analysis of Strassen's algorithm乘法k x k矩阵。但我仍然不太确定有多少操作被调用。有人可以帮忙解释一下吗?

2 个答案:

答案 0 :(得分:2)

执行的操作次数确定如下。首先,我们将矩阵分成四个大小为k / 2的子力,然后对这些矩阵进行七次递归乘法。然后,我们对这些产品进行不断增加,以获得我们想要的结果。这给了我们一个定义如下的递归关系:

T(1)= 1

T(k)= 7T(k / 2)+ ck 2

注意,lg 7> 2,因为lg 7> lg 4 = 2.(这里,lg是二进制对数)。因此,通过Master theorem中的一个,算法的渐近复杂度为O(k lg 7 )≈O(k 2.807 )。

希望这有帮助!

答案 1 :(得分:0)

鉴于该页面大约是O(N ^ 2.807 ......),我猜这将是浮点运算数量的一个很好的近似值。所有循环/迭代都将使用整数运算。