4

我想了解什么是链式矩阵乘法以及它如何与常规乘法不同。我已经检查了几位来源,但似乎都在学术上解释了我的理解。什么是链式矩阵乘法?

我想这是一种动态规划算法的一种形式,以优化的方式实现操作,但我没有更进一步。

谢谢

回答

6

链式乘法只是一系列乘法运算。 A B C D 。最初它对编程和动态编程没有任何帮助。但是有一个很好的规则(结合规律)A *(B * C)=(A * B)* C,但是这些表达式的计算代价是不同的。所以有一个最佳括号分配的任务。它是介绍。现在阅读维基。

+1

它是关于动态规划,这是何等的动态编程工作的一个简单的解释。你可以看看CLRS了解更多细节。 – DarthVader 2010-05-19 17:57:38

+0

@安德雷那个好规则被称为联想法。 – Geek 2012-09-04 09:29:00

+1

@Geek这是很久以前,我忘了我为什么没有提到它,要么我忘了名字或只是添加一些幽默。 – Andrey 2012-09-04 10:01:41

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)) 

首先一个只需要3600 + 5400 = 乘法。
第二种解决方案需要9,000 + 7,200 = 16,200次乘法。
这里我们将首先选择第二,因为它需要更少的乘法次数。
你的程序必须能够告诉用户如何圆括号矩阵,这样它最大限度地减少乘法(优化问题