算法导论,动态规划 —— 矩阵链乘法(python代码实现示例)
2018-01-01 00:00
1281 查看
# coding=utf-8 # 算法导论课本 动态规划 矩阵链乘法 # 矩阵链乘法的最优加括号方案 根据伪码 使用 python实现 # 辅助表 m 保存代价 m[i,j] # 辅助表 s 记录最优值 m[i,j]对应的分割点 k def maxChain(p): # n = len(p) - 1 n = len(p) m = [[0 for i in range(n)] for j in range(n)] s = [[0 for i in range(n)] for j in range(n)] # for i in range(n): # m[i][i] = 0 for l in range(2,n): for i in range(1,n-l+1): j = i+l-1; m[i][j] = 9999999999; for k in range(i,j): q = m[i][k] + m[k+1][j] + p[i-1] * p[k] * p[j] if q < m[i][j]: m[i][j] = q; s[i][j] = k return m, s # 输出矩阵链的最优括号化方法 def printOpt(s, i, j): if i == j: print("A", i, end='') else: # print("(", end="") print("(", end='') printOpt(s, i, s[i][j]) printOpt(s, s[i][j]+1, j) print(")", end='') print("start=========") p = [30, 35, 15, 5, 10, 20, 25] m, s = maxChain(p) print(m) print(s) print("最优括号化方案为:") printOpt(s, 1, 6) print("") print("其标量乘法次数为:", m[1][6]) print("Over=========")
相关文章推荐
- python实现稀疏矩阵示例代码
- 【甘道夫】MapReduce实现矩阵乘法--实现代码
- Python实现socket信息发送和监听的简单代码示例
- Python实现生成简单的Makefile文件代码示例
- 用python 实现矩阵乘法
- hadoop/mapreduce-矩阵乘法的实现代码下载
- MapReduce实现大矩阵乘法及代码实现
- 我的第一篇CSDN博客文章,Python代码实现矩阵翻转
- Python极简代码实现杨辉三角示例代码
- python实现矩阵乘法的方法
- Python极简代码实现杨辉三角示例代码
- 用Java的循环实现矩阵乘法代码
- 转置矩阵的分块并行乘法(C语言实现),计算矩阵C[rawn][rawn]=A[rawm][rawn]'*B[rawm][rawn],子块大小为S*T,其算法实现原理参加本代码的附件。
- Python实现冒泡排序、选择排序、插入排序、快速排序、归并排序、二分法查找算法(基于《算法导论》伪代码)
- python实现哈希表示例代码
- C/C++实现矩阵的转置(示例代码)
- Python实现自动添加脚本头信息的示例代码
- MapReduce实现大矩阵乘法及代码实现
- HMM原理介绍 示例 python代码实现
- 【甘道夫】MapReduce实现矩阵乘法--实现代码