我研究了矩阵链乘法问题,我理解算法的作用。最近,我遇到了加泰罗尼亚语数字,在解决parenthesization problem时派上用场了。这个问题在我看来与Matrix Chain Multiplication非常相似。实际上,在CLRS中,他们在Matrix Chain Multiplication章节中提到了加泰罗尼亚语数字。
我很好奇你能用加泰罗尼亚数字算法解决矩阵链乘法吗?我的想法是:不,你不能解决,因为加泰罗尼亚数字描述了用矩阵括起来的方法的数量,而原始的矩阵链问题提出了一个不同的问题 - 特定的方式来排列会产生最小成本的括号。
我的想法是否正确?
答案 0 :(得分:0)
矩阵链乘法和括号问题是彼此的平等形式。一个可以减少到另一个。
链矩阵乘法问题
给定一系列n
矩阵A1, A2, ... An
及其维度p0, p1, p2, ..., pn
,其中i = 1, 2, ..., n
,矩阵Ai
具有维度pi − 1 × pi
,确定最小化标量乘法数的乘法顺序。
等效形式:括号问题
给定n
矩阵,A1, A2, ... An
,1 ≤ i ≤ n
,Ai
是pi − 1 × pi
,矩阵,将产品A1, A2, ... An
括起来,以便假设使用朴素算法将pi − 1× pi
矩阵乘以pi × pi + 1
矩阵的成本为pi − 1× pi × pi + 1
当你试图写出上述问题的循环关系时,结果与加泰罗尼亚数字相同。因此加泰罗尼亚数可用于解决矩阵链乘法问题。