矩阵链乘

Posted 比特飞流

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了矩阵链乘相关的知识,希望对你有一定的参考价值。

一个n*m的矩阵由n行m列共n*m排列而成。两个矩阵A和B可以相乘当且仅当A的列数等于B的行数。一个n*m的矩阵乘m*p的矩阵,运算量为n*m*p。

   矩阵乘法不满足分配律,但满足结合律。因此A*B*C既可以按顺序(A*B)*C也可以按A*(B*C)来进行。假设A、B、C分别是2*3、3*4、4*5的,则(A*B)*C运算量是2*3*4+2*4*5=64,A*(B*C)的运算量是3*4*5*2*3*5=90.显然第一种顺序节省运算量。

   给出n个矩阵组成的序列,设计一种方法把他们依次乘起来,使得总的运算量尽量小。假设第i个矩阵A[i]是P[i-1]*P[i]的。

输入

3

2 3 4 5

输出

64

以上是关于矩阵链乘的主要内容,如果未能解决你的问题,请参考以下文章

矩阵链乘

矩阵链乘问题

矩阵最优链乘及Java实现

矩阵链乘(解析表达式)

矩阵链乘(Matrix Chain Multiplication)

矩阵乘法及矩阵链乘的快速幂优化