矩阵乘法的最佳括号

时间:2013-03-21 15:22:08

标签: algorithm dynamic-programming matrix-multiplication

语句是这样的(这种情况发生在选择所有矩阵对中哪一个被括号以进行最佳矩阵乘法时)

对于p(n) = Summation of P(k)P(k-n)Ω(2^n)k = 1

n - 1n> = 2

p(n)是备用括号的组合数。

p(3) = A1(A2*A3)(A1*A2)A3(A1*A2*A3)

k:拆分价值。

n:矩阵数。

我使用递归解决了这个等式。

假设我有四个矩阵A1,A2,A3,A4

让我们说k = 2我们有n = 4

p(4) = p(1)p(3) + p(2)p(2)

递归求解p(3)p(2)得到:

p(4) = p(1)p(3) + p(2)p(2) + p(1)p(1)p(2) + p(1)p(2)p(1) + p(1)p(1)p(1)p(1)

它意味着,我们可以通过以下方式为A1A2A3A4加上括号:

p(4) = A1(A2A3A4)(A1A2)(A3A4)(A1)(A2)(A3A4)(A1)(A2A3)(A4)(A1)(A2)(A3)(A4)

我的问题是:

如果是n = 3 p(n) = 3n = 4 p(n) = 5

那么p(n) = summation of p(k)p(n-k)Ω(2^n)的来源?

1 个答案:

答案 0 :(得分:0)

p(n)加泰罗尼亚数字= (2n choose n)/(n+1),即Theta(4^n/n sqrt(n))(使用斯特林公式),Omega(2^n)也是。

通过仅检查两个值,您无法确定某个函数是否为Omega(2^n)

由于你所寻求的界限与实际的theta值相比是如此之弱,所以可能有一个更简单的证据。