矩阵乘法子问题图顶点度

时间:2019-01-29 18:23:04

标签: algorithm dynamic-programming mathematical-optimization

我正在研究动态编程,在Cormen的算法简介的第15.2章中,读为:

  

对于矩阵链乘法,如果我们要绘制子问题图,它将有O(n^2)个顶点,每个顶点最多具有 degree n - 1 ,给出一个共有O(n^3)个顶点和边。

当我绘制n = 4的图形时,我得到:

enter image description here

但是,顶点M[1, 4]的阶数为6> 4-1。我误解了什么?

1 个答案:

答案 0 :(得分:1)

解决子问题应该可以为您解决主要问题,尽管可能不是最好的解决方案。因此,这里的一个子问题是两个乘积而不是一个乘积的计算。对于具有A1 A2 A3 A4的产品n=4,我们有三个子问题,即n-1,子问题:({A1A2 A3 A4),(A1 A2,{{ 1}})和(A3 A4A1 A2 A3)。

编辑。该书还显示:

  

因此,我们可以通过将矩阵问题分解为两个子问题(对A4Ai ... Ak进行最佳括号化)来为矩阵链乘法问题的实例建立最佳解决方案,...

因此,子问题是单个乘积而不是两个乘积的计算。似乎这本书的子问题定义不一致,或者Ak+1 ... Aj装订不正确,应该是n-1