动态规划法解决矩阵连乘问题
一、实验目的及要求:
实验目的:本实验主要清楚动态规划法的主要思想,如何利用动态规划算法解决实际问题,通过动态规划法求解矩阵连乘问题,利用测试数据对矩阵连乘问题进行求解,得出最终结果,清楚动态规划算法解决问题的主要思路。
实验要求:利用Dev C++编程环境,采用若干个测试数据进行求解,输出矩阵连乘最小乘的次数结果值。
二、实验原理(图):
动态规划是一种在数学、计算机科学和经济学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题,用时往往少于朴素解法。思路基本上为:解其不同部分(即子问题),再合并子问题的解以得出原问题的解。通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,从而减少计算量。把动态规划中的状态抽象成一个点,在有直接关联的状态间连一条有向边,状态转移的代价就是边上的权。这样就形成了一个有向无环图AOE网。对这个图进行拓扑排序,删除一个边后同时出现入度为0的状态在同一阶段。这样对图求最优路径就是动态规划问题的求解。
三、实验设备(环境):
硬件windows 10 ,软件:DEV。
四、实验内容(算法、程序、步骤和方法):
#include
using namespace std;
#define SIZE 100
void MatrixFun ()
{
int