我试图理解什么是链矩阵乘法以及它与常规乘法的不同之处。我检查了几个来源,但似乎都在学术上解释了我的理解。
我想这是一种动态编程算法,以优化的方式实现操作,但我没有再深入了。
由于
答案 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次乘法
在这里,我们将首先选择第二个,因为它需要较少的乘法次数。
您的程序必须能够告诉用户如何对矩阵进行括号化,以便最大限度地减少乘法(优化问题)