【问题标题】:Calculating matrix chain mutlipication with Catalan numbers用加泰罗尼亚数计算矩阵链乘法
【发布时间】:2017-02-01 08:22:47
【问题描述】:

我研究了矩阵链乘法问题,并且了解算法的作用。最近,我遇到了加泰罗尼亚数字,它在解决parenthesization problem 时派上了用场。在我看来,这个问题与矩阵链乘法非常相似。事实上,在 CLRS 中,他们在矩阵链乘法一章中提到了加泰罗尼亚数字。

我很好奇你能用加泰罗尼亚数字算法解决矩阵链乘法吗?我的想法是:不,你不能解决,因为加泰罗尼亚数字描述了用括号括起来的方法的数量,而原始矩阵链问题提出了一个不同的问题——具体的安排括号的方法会产生最小的成本。

我的想法对吗?

【问题讨论】:

    标签: algorithm dynamic-programming catalan


    【解决方案1】:

    矩阵链乘法和括号问题是彼此的等价形式。一个可以简化为另一个。

    链式矩阵乘法问题

    给定n矩阵A1, A2, ... An的序列,以及它们的维度p0, p1, p2, ..., pn,其中i = 1, 2, ..., n,矩阵Ai的维度pi − 1 × pi,确定最小化标量数量的乘法顺序乘法。

    等价形式:括号问题

    给定n矩阵,A1, A2, ... An,其中对于1 ≤ i ≤ nAi是一个pi − 1 × pi,矩阵,将乘积A1, A2, ... An括起来,以使总成本最小化,假设相乘的成本一个pi − 1× pi矩阵由一个pi × pi + 1矩阵使用朴素算法是pi − 1× pi × pi + 1

    当您尝试编写上述问题的循环关系时,结果与加泰罗尼亚数字的循环关系相同。因此加泰罗尼亚数可以用来解决矩阵链乘法问题。

    Matrix-chain Multiplication Problem

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-05
      • 1970-01-01
      相关资源
      最近更新 更多