动态编程 - 最佳断点

时间:2016-03-23 16:38:30

标签: algorithm dynamic binary-tree binary-search-tree matrix-multiplication

我了解到使用动态规划,矩阵链乘法问题可以在n ^ 3时间内求解,而对于最优二叉树问题,我们也得到n ^ 3时间,但是我们可以将它优化为n ^ 2 。 为什么是这样?我得到一个声明说这是因为在矩阵乘法问题中,链M(i,n)的最佳断点可能大于链M(i + 1,n)的最佳断点。有人能帮助我理解这个吗?为什么在矩阵乘法问题中这是真的,而不是在最优二叉树问题中呢?

由于

1 个答案:

答案 0 :(得分:1)

假设密钥I1的间隔是I2的子间隔,I1上的最佳二叉树的查询成本不大于I2上的最佳二叉树的查询成本(这应该是相当直观的,但是正式地,为I2采用最优树,并通过标准算法重复删除密钥。这意味着您可以将找到最佳断点的过程视为两半之间的一种平衡过程。

矩阵链不是这样:乘法(100,100),(100,100)的成本远大于(100,100),(100,100),(100,1),因为两个矩阵向量乘法比矩阵矩阵便宜得多

相关问题