实验三-动态规划法求多段图问题讲课教案.pdfVIP

  • 11
  • 0
  • 约5千字
  • 约 6页
  • 2020-07-24 发布于天津
  • 举报

实验三-动态规划法求多段图问题讲课教案.pdf

实 验 三 - 动 态 规 划 法 求 多 段 图 问 题 精品文档 本科实验报告 课程名称: 算法设计与分析 实验项目:动态规划法求多段图问题 实验地点: 专业班级: 学号: 学生姓名: 指导教师: 收集于网络,如有侵权请联系管理员删除 精品文档 实验三 动态规划法求多段图问题 一、 实验目的 1. 掌握动态规划算法的基本思想 2. 掌握多段图的动态规划算法 3. 选择邻接表或邻接矩阵方式来存储图 4 、分析算法求解的复杂度。 收集于网络,如有侵权请联系管理员删除 精品文档 二、 实验内容 设 G=(V,E) 是一个带权有向图,其顶点的集合 V 被划分成 k2 个不相交的 子集 Vi ,1i=k ,其中 V1 和 Vk 分别只有一个顶点 s (源)和一个顶点 t (汇)。图中所有边的始点和终点都在相邻的两个子集 Vi 和 Vi+1 中。求一条 s 到 t 的最短路线。参考讲义 p136 图 5-24 中的多段图,试选择使用向前递推算法 或向后递推算法求解多段图问题。 三、 实验环境 程序设计语言: c++ 编程工具: microsoft visual studio 2010 四、 算法描述和程序代码 #include stdio.h void fgraph(int cost[],int path[],int d[]) #include stdlib.h // 使用向前递推算法求多段图的最短 #include conio.h 路径 #include iostream.h { int r,j,temp,min; #define MAX 100 for(j=0;j=n;j++) #define n 12 cost[j]=0; #define k 5 for(j=n-1;j=1;j--) int c[n][n]; { temp=0; void init(int cost[]) // 初始化图 min=c[j][temp]+cost[temp]; // 初 { 始化最小值 int i,j; for(r=0;r=n;r++) for(i=0;i13;i++) { { for(j=0;j13;j++) if(c[j][r]!=MAX) { c[i][j]=MAX; { } if((c[j][r]+cost[r])min) // 找到

文档评论(0)

1亿VIP精品文档

相关文档