- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【20140518版】第四讲_动态规划——不可更改
* (2)递归计算 从进厂到第1个装配点的时间: f1[1]=e1+a1[1] f2[1]=e2+a2[1] 如果是从前一个装配点S1[j-1]直接到点 S1[j],则f1[j]=f1[j-1]+a1[j] 如果是从前一个装配点S2[j-1],传送到装 配点S1[j],则f1[j]=f2[j-1]+t2[j-1]+a1[j] * 递归公式 * * (3)构造最优解 为了构造最优解,必须保存最快装配路线经过第j个装配点时,是从前面哪条线上的装配点传送到j的。 令li[j]表示装配点j前面一个装配点所在的装配线1或2,并令l*表示第n个装配点所在的装配线1或2。 利用li[j]和l*的值构造最快装配路线。 * * 本讲作业 利用动态规划算法实现0-1背包问题或装配线调度问题。(二选一) 要求测试数据以文本文件的形式存储,即所有的数据由文本文件读入。 * 算法为语言描述: (1)初始化cost[i] = 最大值,cost[n-1] = 0; path[i]=-1 (2)for ( i=n-2; i=0; i--) 计 cost[i],path[i] (3)根据path计算花费最小的通路,并存放在数组 route中 令i=0; route[0]=0; 重复计算下列公式,直到route[i]=n-1 i++; route[i] = path[route[i-1]]; * * * * * * * * * * * #define VEX_NUM ? 有向连通带权图采用邻接矩阵表示 #define EDGE_NUM ? #define MAX_VALUE 32767 using namespace std; class Graph { private: int vex_num; //顶点数目 int edge_num; // 边数目 int adj[VEX_NUM][VEX_NUM]; //邻接矩阵 public: Graph() { vex_num = VEX_NUM;edge_num = EDGE_NUM; } int getVexNum(){return vex_num;} int getEdgeNum(){return edge_num;} void setVexNum(int num){vex_num = num;} void setEdgeNum(int num){edge_num=num;} int getWeight(int i,int j){return adj[i][j];} void setWeight(int i,int j,int w){adj[i][j] = w;} } 有向连通带权图采用邻接矩阵表示 * void fgraph(Graph G, int cost[], int path[]) { int n = G.getVexNum(); for (int i = 0; i n; i++) { //初始化 cost[i]= MAX_VALUE; path[i] = -1; } cost[n - 1] = 0; for (int i = n-2; i = 0; i--) { //计算cost[],path[] for (int j = i+1; j n; j++) { int p = G.getWeight(i,j); if (p != MAX_VALUE) { //如果有边 if (G.getWeight(i,j) + cost[j] cost[i]) { //判断是否更小 cost[i] = G.getWeight(i,j) + cost[j]; path[i] = j; } } } } } 时间复杂性O(n2) 空间复杂性O(n) * // 根据path[],计算最终结果,并存入数组route[]中 void result(int cost[],int path[],int route[],int n,int minCost) { for (int i = 1; i n; i++){ route[i] = -1; } int i = 0; route[0] = 0; while ((route[i] != n-1)(path[i] != -1)){ i++; route[i] = path[route[i-1]]; } minCost = cost[0]; } * i=8: cost[8]=c89+cost[9]=3+0 path[8]=9 i=7: cos
您可能关注的文档
- 《自觉维护正义》参考课件1.ppt
- 《自觉维护正义》活动探究型课件2.ppt
- 《自觉维护正义》活动探究型课件3.ppt
- 《艺术问题》读书报告.docx
- 《老子》二章.ppt
- 《致青春·原来你还在这里》刘亦菲.ppt
- 《英语语法》串讲笔记.doc
- 《营销管理》(第14版)中文版PPT_05_创造长期顾客忠诚.ppt
- 《落花生》ppt课件讲公开课第二课时.ppt
- 《行政单位财务规则与会计制度操作指南》题库.docx
- 【2015中考复习方案】(外研·全国)2015届九年级英语复习课件:语法互动三 代词(共34张PPT).ppt
- 【2015年银行建设工程 送投标 技术标】.doc
- 【2015中考复习方案】.ppt
- 【2015中考复习方案】准确定位——选择自己最擅长的文体(共10张PPT).ppt
- 【2015中考物理常考易错点】专题三+热现象.doc
- 【2015济宁二模】济宁市2015届高三第二次模拟考试试题(语文).doc
- 【2016初级会计实务救命稻草】第一章资产.doc
- 【2017年最新】新鲜出炉 - 原创婚礼策划案(模板).docx
- 【CSA观察】2013年上市公司年报分析.docx
- 【HR知识】经济补偿金支付大全及计算全解.docx
原创力文档


文档评论(0)