- 6
- 0
- 约9.58千字
- 约 35页
- 2016-12-03 发布于河南
- 举报
数据结构第19讲关键路径与最短路径_C
7.5.2 关键路径 AOE-网 AOE-网(Activity On Edge Network):即边表示活动的网。AOE网是一个带权的有向无环图。其中: 顶点表示事件(Event) 弧表示活动(Activity) 权值表示活动持续的时间 通常可用AOE网来估算工程的完成时间。 依据AOE-网可以研究什么问题? (1)完成整项工程至少需要多少时间? (2)哪些活动是影响工程进度的关键? ve[j]和vl[j]可以采用下面的递推公式计算: (1)向汇点递推 ve(源点) = 0 ; ve(j) = Max{ ve(i) + dut(i, j)} (2) 向源点递推 由上一步的递推,最后总可求出汇点的最早发生时间ve[n]。因汇点就是结束点,最迟发生时间与最早发生时间相同,即vl[n]=ve[n]。从汇点最迟发生现时间vl[n]开始,利用下面公式: vl(汇点) = ve(汇点); vl(i) = Min{ vl(j) – dut(i, j) } 总之,关键路径的求解操作包括: 1)计算 ve[j] 和 vl[j] ① 向汇点递推 ve(源点) = 0 ; ve(j) = Max { ve(i)+ dut(i, j)} ② 向源点递推 vl(汇点) = ve(汇点); vl(i) = Min { vl(j) – dut(i, j)} 求最早发生时间ve的算法 Status TopologicalOrder(ALGraph G,Stack T){ //有向网G采用邻接表,求各顶点事件最早发生时间ve(全局变量) //T为拓扑序列顶点栈,s为零入度顶点栈。 ???? FindInDegree(G,indegree);//对各顶点求入度 ???? InitStack(S); //建零入度顶点栈S for(i=0;iG.vexnum; ++i)? ???? if(!indegree[i])Push(S,i) //入度为0者进栈 ?? count=0; InitStack(T); ve[0..G.vexnum-1]=0; //初始化 ???? while(!StackEmpty(S)){ ???????? Pop(S,j); Push(T,j);++count; ???????? for(p=G.vertices[j].firstarc;p;p=p-nextarc){ ???????????? k=p—adjvex; //对i号顶点的每个邻接点的入度减l ???????????? if(--indegree[k]==0)Push(S,k);//若入度减为0,入栈 ???????????? if(ve[j]+*(p-info)ve[k] ) ve[k]=ve[j]+*(p-info); ???????? } //for *(p-info)=dut(j,k)? ??? } //while ????if(countG.vexnum) return ERROR; //该有向网有回路 ????else return OK;} //TopologicalOrder 求关键路径的算法 Status CriticalPath (ALGraph G){ //G为有向网,输出G的各项关键活动 if(!TopologicalOrder(G,T)) return ERROR; ? vl[0..G.vexnum-1]=ve[G.vexnum-1]; //初始化顶点事件的最迟发生时间 while(!StackEmpty(T)) //按拓扑逆序求各顶点的vl值 for(Pop(T,j),p=G.vertices[j].firstarc;p;p=p-nextarc){ ???????????k=p-adjvex; dut=*(p—info); //dutj,k ??????????if(vl[k]-dutvl[j]) vl[j]=vl[k]-dut; ?} //for for(j=0;jG.vexnum;++j) //求ee,el和关键活动 for(p=G.vertices[j];p;p=p-nextarc){ ????????? k=p-adjvex; dut=*(p—info); ee=ve[j];el=vl[k]-dut;tag = (ee==e1) ? ‘*’:’’; ???????????printf(j,k,dut,ee,el,tag); //输出关键活动 ?} } //CriticalPath 总结: 有向无环图是描述一项工程或系统的进行过程的有效工具。
您可能关注的文档
- Oracle 1G使用数据泵(EXPDP和IMPDP).doc
- Windows网命令行大全.doc
- linux学习笔by lzg.doc
- Matlab求解程和函数极值.doc
- ecTable基用法.doc
- 第六讲 立体几何题型的解题技巧.doc
- smss.exe处理方法.doc
- 键盘快捷键与DO命令大全.doc
- cmd .bat令大全.doc
- PHP环境搭建Wndows 7下安装配置PHP+Apache+Mysql环境教程 PHP网站开发-PHP教程-LeapSoul_CN.doc
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
原创力文档

文档评论(0)