关键路径与最短路径C.ppt

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关键路径与最短路径C

关键路径;AOE-网;上图AOE-网中: 共有11项活动:a1,a2,a3,…a11; 共有9个事件:v1,v2,v3,…v9,每个事件表示在它之前的活动已经完成,在它之后的活动可以开始。; 由于整个工程只有一个开始点和一个完成点,在正常的情况(无环)下,网中只有一个入度为零的点(称作源点)和一个出度为零的点(称作汇点);依据AOE-网可以研究什么问题?; 假设开始点是v1,从v1到vi的最长路径长度叫做事件vi的最早发生时间。这个时间决定了所有以vi为尾的弧所表示的活动的最早开始时间。 用e(i)表示活动ai的最早开始时间。; l(i)-e(i)两者之差意味着完成活动ai的时间余量。我们把l(i)=e(i)的活动叫做关键活动。 显然,关键路径上的所有活动都是关键活动,因此提前完成非关键活动并不能加快工程的进度。 ; 由此可知:辨别关键活动就是找e(i)=l(i)的活动。为求得AOE网中活动的e(i)和l(i),首先应求得事件的最早发生时间 ve(j)和 最迟发生时间vl(j)。 若活动ai由弧i,j表示,持续时间记为dut(i,j),则有如下关系: 活动i的最早开始时间等于事件j的最早发生时间 e(i)= ve(i) 活动i的最迟开始时间等于事件k的最迟时间减去活动i的持续时间 l(i)= vl(j) - dut(i,j) 求ve(j)和 vl(j)需分两步进行:;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)输入e条弧i,j,建立AOE网的存储结构。 2)从源点v0出发,令ve[0]=0按拓扑有序求其余各顶点的最早发生时ve[i](1≤i≤ n-1)。如果得到的拓扑有序序列中顶点个数小于网中顶点数n,则说明网中存在环,不能求关键路径,算法终止;否则执行步骤(3)。 3)从汇点vn出发,令vl[n-1]= ve[n-1],按逆拓扑有序求其余各顶点的???迟发生时间vl[i] (n-2 ≥i≥ 0); 4)根据各顶点的ve和vl值,求每条弧s的最早开始时间e(s)和最迟开始时间l(s)。若某条弧满足条件e(s)=l(s),则为关键活动。; 如上所述,计算顶点的ve值是在拓扑排序的过程中进行的,需对拓扑排序的算法作如下修改: 1)在拓扑排序之前设初值,令ve(i)=0(0=in-1); 2)在算法中增加一个计算vi的直接后继vj的最早发生时间的操作:若 ve(i)+dut(i,j) ve(j), 则 ve(j) = ve(i)+dut(i,j); 3)为了能按逆拓扑有序序列的顺序计算各顶点的vl值,需记下在拓扑排序的过程中求得的拓扑有序序列,则需要在拓扑排序算法中,增设一个栈以记录拓扑有序序列,则在计算求得各顶点的 ve 值之后,从栈顶至栈底便为逆拓扑有序序列。;总之,关键路径的求解操作包括: 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)}

文档评论(0)

laolingdao1a + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档