什么是链矩阵乘法?

时间:2010-05-19 17:48:51

标签: java algorithm matrix dynamic-programming matrix-multiplication

我试图理解什么是链矩阵乘法以及它与常规乘法的不同之处。我检查了几个来源,但似乎都在学术上解释了我的理解。

我想这是一种动态编程算法,以优化的方式实现操作,但我没有再深入了。

由于

2 个答案:

答案 0 :(得分:6)

链乘法只是一系列乘法。 A B C D 。最初它没有任何编程和动态编程。但是有一个很好的规则(关联法则)A *(B * C)=(A * B)* C,但这些表达式的计算成本是不同的。因此,有一个最佳括号分布的任务。这是介绍。现在阅读维基。

答案 1 :(得分:0)

矩阵链乘法是一个可以通过动态规划方法解决的问题,它需要正确的带括号的矩阵,以便将给定矩阵乘以最小乘法次数。 实施例

M1 = 12 x 20
M2 = 20 x 15
M3 = 15 x 30

有两种方法可以解决这个问题,取决于你开始繁殖矩阵的位置。

1). ((M1 x M2) x M3)
2). (M1 x (M2 x M3))

第一个只需要3,600 + 5,400 = 9,000 次乘法 第二种解决方案需要9,000 + 7,200 = 16,200次乘法 在这里,我们将首先选择第二个,因为它需要较少的乘法次数。
您的程序必须能够告诉用户如何对矩阵进行括号化,以便最大限度地减少乘法(优化问题