2022年算法实验动态规划----矩阵连乘文件 .pdf
《2022年算法实验动态规划----矩阵连乘文件 .pdf》由会员分享,可在线阅读,更多相关《2022年算法实验动态规划----矩阵连乘文件 .pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验三:动态规划法【实验目的】深入理解动态规划算法的算法思想,应用动态规划算法解决实际的算法问题。【实验性质】验证性实验。【实验要求】对于下列所描述的问题,给出相应的算法描述,并完成程序实现与时间复杂度的分析。该问题描述为: 一般地,考虑矩阵 A1, A2, , An 的连乘积,它们的维数分别为d0,d1,dn,即 Ai 的维数为di-1di (1in)。确定这n 个矩阵的乘积结合次序,使所需的总乘法次数最少。 对应于乘法次数最少的乘积结合次序为这n 个矩阵的最优连乘积次序。按给定的一组测试数据对根据算法设计的程序进行调试:6 个矩阵连乘积A=A1 A2A3A4A5A6,各矩阵的维数分别为:A
2、1:10 20,A2:20 25,A3:25 15,A4:15 5,A5:5 10,A6:10 25。完成测试。【算法思想及处理过程】Main ( ) 函数: 定义 二维数组 m 用来存放最优解 ; 定义 二维数组 s 用来存放最优解的断开点 ; 定义 一维数组 p 用来存放矩阵维数 . MatrixChain函数: 首先通过for循环, 给二维数组 M 和 S 的对角线赋值为0 (表示只有一个矩阵 , 没有相乘的 ). 然后通过 for循环, 求出最优解 ( 这只是假定的最优解 ) 和 断开点( 这只是假定的最完美的断开点 ), 再通过双重 for 循环在后面找到了一个最优解,判断后一个最优
3、解是不是比前一个最优解小 ( 也就是更优 ,更好), 如果小 , 则将前最优解改为后一个的最优解, 并且将前断开点改为后一个的断开点, 然后重复此操作 .名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - 【程序代码】# include void MatrixChain (int p, int m6, int s6, int n); / 求最优解和断开点void print1 (int m6, int s6,int p); / 打印
4、矩阵 ,最优解 ,断开点void print2(int i, int n, int s6); / 打印加括号的断开矩阵int main () int p7 = 10,20,25,15,5,10,25; int m66, s66; MatrixChain (p, m, s, 6); print1 (m, s, p); printf (nn 矩阵连乘次数的最优值为:n); printf (-n); print2 (0, 6-1, s); printf (n-nn); return 0; void MatrixChain (int p, int m6, int s6, int n) int i, j
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年算法实验动态规划-矩阵连乘文件 2022 算法 实验 动态 规划 矩阵 文件
限制150内