動態規劃 《2》矩陣鏈乘法

2021-08-07 02:27:10 字數 1014 閱讀 4744

問題描述:

給定n個矩陣構成乙個鏈其中i = 1,2,3,...,n矩陣ai的緯數字pi-1 * pi,對乘積a1,a2,... ,an以一種最小化標量乘法次數的方式進行加全部括號。

**:《juzhen.h》

#pragma once

#include"stdafx.h"

#define maxvalue 1000000

#define n 6

void matrix_chain_order(int *p, int len, int m[n + 1][n + 1], int s[n + 1][n + 1])

}} }

}//s中存放著括號當前的位置

void print_optimal_parents(int s[n + 1][n + 1], int i, int j)

}

《main.cpp》

#include "stdafx.h"

#include"juzhen_list.h"

int main()

; int m[n + 1][n + 1] = ;

int s[n + 1][n + 1] = ;

int i, j;

matrix_chain_order(p, n + 1, m, s);

cout << "m value is: " << endl;

for (i = 1; i <= n; ++i)

cout << "s value is: " << endl;

for (i = 1; i <= n; ++i)

cout << "the result is:" << endl;

print_optimal_parents(s, 1, n);

return 0;

}

演示結果:

動態規劃 矩陣鏈乘法

矩陣鏈乘法問題 給定n個矩陣的鏈,矩陣ai的規模為p i 1 p i 求完全括號化方案,使得計算乘積a1a2 an所需標量乘法次數最少。m i j 表示矩陣鏈ai j所需標量乘法次數的最小值。m i j 0 i j m i j m i k m k 1 j p i 1 p k p j i k s 1....

動態規劃 矩陣鏈乘法

兩個矩陣相乘的計算量,對於一般的矩陣乘法來說,如矩陣a m,n 與矩陣b n,p 相乘需要進行的加法次數為m n p次乘法 由於矩陣乘法滿足結合律,因此矩陣相乘的結合性,會影響整個計算表示式的乘法執行次數 如下面的例子,a b c三個矩陣相乘,其中a 10,5 b 5,20 c 20,3 1 ab ...

動態規劃 矩陣鏈乘法

def matrix multipy a,b 乘法得到的是乙個 a.rows,b.cols 的矩陣,相當於a.rows個向量的b.cols次的向量線性加權 ifnot a.shape 1 b.shape 0 a組中向量的維度與b組中向量的維度一致 print error else 將每乙個元素都初始...