Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 矩阵乘法动态规划_Algorithm - Fatal编程技术网

Algorithm 矩阵乘法动态规划

Algorithm 矩阵乘法动态规划,algorithm,Algorithm,q=成本/标量乘法 q=m[i,k]+m[k+1,j]+p[i-1]*p[k]*p[j] 假设A是一个10×30的矩阵,B是一个30×5的矩阵,C是一个5×60的矩阵。那么 (AB)C=(10×30×5)+(10×5×60)=1500+3000=4500次运算 A(BC)=(30×5×60)+(10×30×60)=9000+18000=27000次运算 为什么需要(p[i-1]*p[k]*p[j])?m[i,k]给出了将[i,k]范围内的所有矩阵相乘的成本m[k+1,j]给出了将[k+1,j]范

q=成本/标量乘法 q=m[i,k]+m[k+1,j]+p[i-1]*p[k]*p[j]

假设A是一个10×30的矩阵,B是一个30×5的矩阵,C是一个5×60的矩阵。那么

(AB)C=(10×30×5)+(10×5×60)=1500+3000=4500次运算 A(BC)=(30×5×60)+(10×30×60)=9000+18000=27000次运算


为什么需要(p[i-1]*p[k]*p[j])?

m[i,k]
给出了将
[i,k]
范围内的所有矩阵相乘的成本
m[k+1,j]
给出了将
[k+1,j]
范围内的所有矩阵相乘的成本。处理完这两个子范围后,我们剩下两个矩阵(一个是第一个范围的乘法结果,另一个是第二个范围的乘法结果)。所以我们需要将它们相乘的成本加到答案中。

在上面的例子中,我只使用了m[i,k]+m[k+1,j]而不是(p[i-1]*p[k]*p[j])kraskevich@chirag您根本没有在那里使用
m[i,k]
m[k+1,j]
。您只需计算将
A
乘以
B
的成本,然后再乘以
(A*B)
C