永发信息网

《数据结构》关键路径问题【高手进】

答案:2  悬赏:80  手机版
解决时间 2021-01-21 21:50
《数据结构》关键路径问题【高手进】
最佳答案
AOE网(Activity On Edge)即边表示活动的网,是一个带权的有向无环图,其中顶点表示事件(Event),每个事件表示在它之前的活动已经完成,在它之后的活动可以开始,弧表示活动,权表示活动持续的时间。AOE网可用来估算工程的完成时间。由于整个工程只有一个开始点和一个完成点,故在正常的情况(无环)下,网中只有一个入度为零的点(源点)和一个出度为零的点(汇点)。

由于在AOE网中有些活动可以并行地进行,所以完成工程的最短时间是从开始点到完成点的最长路径的长度(路径上各活动持续时间之和)。路径长度最长的路径叫做关键路径。假设开始点是v1,从v1到vi的最长路径长度叫做事件vi的最早发生时间,这个时间决定了所有以vi为尾的弧所表示的活动的最早开始时间。用e(i)表示活动ai的最早开始时间,l(i)为一个活动的最迟开始时间,这是在不推迟整个工程完成的前提下,活动ai最迟必须开始进行的时间。两者之差l(i)-e(i)意味着完成活动ai的时间余量。l(i)=e(i)的活动叫做关键活动。关键路径上的所有活动都是关键活动,提前完成非关键活动(不在关键路径的活动)并不能加快工程的进度。为了求得AOE网中活动的e(i)和l(i),首先应求得事件的最早发生时间ve(j)和最迟发生时间vl(j)。如果活动ai由弧表示,其持续时间记为dut(),则有:e(i) = ve(j), l(i) = vl(k) - dut()。求ve(j)和vl(j)需分两步进行:

从ve(0)=0开始向前递推,其中T是所有以第j个顶点为头的弧的集合。

从vl(n-1)=ve(n-1)起向后递推,其中S是所有以第i个顶点为尾的弧的集合。

活动ai的最早开始时间e[i]

若活动ai是由弧表示,根据AOE网的性质,只有事件vi发生了,活动ai才能开始。也就是说,活动ai的最早开始时间应等于事件vi的最早发生时间。因此,有:e[i]=ve[i]
活动ai的最晚开始时间l[i]

活动ai的最晚开始时间指,在不推迟整个工程完成日期的前提下,必须开始的最晚时间。若 由弧< vi,vj>>表示,则ai的最晚开始时间要保证事件vj的最迟发生时间不拖后。因此,应该有:l[i]=vl[j]-dut()
由此得到求关键路径的算法:

输入e条弧,建立AOE网的存储结构;
从源点出发,令ve[0]=0,按拓扑顺序求其余各顶点的最早发生时间ve[i](1<=i<=n-1)。如果得到的拓扑有序序列中顶点个数小于网中顶点数n,则说明网中存在环,不能求关键路径,算法终止,否则转到步骤(3);
从汇点vn出发,令vl[n-1]=ve[n-1],按逆拓扑顺序求其余各顶点的最迟发生时间vl[i](n-2>=i>=0);
根据各顶点的ve和vl值,求每条弧s的最早开始时间e(s)和最迟开始时间l(s)。若某弧满足条件e(s)=l(s),则为关键活动。
全部回答
《数据结构实用教程(第二版)》清华大学出版社
第296页开始有介绍。
“最早发生时间应等于从源点到该顶点的所有路径上的最长路径之和”
“每个事件的最迟发生时间应等于汇点的最迟发生时间减去从该事件的顶点到汇点的最长路径长度”
主要还是依赖于拓扑排序。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
他画画 比你好很多 翻译
什么是润滑油的极性
--I hear Mr. Black is ill in hospital agai
中国银行的信用卡金卡额度是多少
买200送100和200当作300花是一回事吗?
炉灶要烧开一锅水很慢,请问是什么问题?
想给孩子买一款学习桌,哪个品牌的学习桌比较
这是什么意思急,就是数字。54.3什么?
下列事例中为了增大压强的是A.书包的背带做得
广州铁一学校国庆放多少天
从水步怎样去开平赤坎葵园
乐安县哪里有姓伍氏
有个老女人,每天给我发她生活动态!
webqq停止,难道要逼我用客户端?我才不用
女儿胸部,是不是不太正常
推荐资讯
我是一女大学生,小腹为什么会变大
车家庄村地址在哪,我要去那里办事,
中文集团投资控股股份有限公司怎么样?
怎么知道自己和佛有缘,是啊前几个月我去佛山
苦爪能排毒吗
有哪些S级神作的动漫
只有QQ账号能破了密码吗?老公失踪了只有破了
重庆的豆筋和开江的棠花豆笋有区别吗?不知道
浦发银行24h自助银行地址在哪,我要去那里办
求师徒恋小说 男师女徒 的小说最好打包发给我
红豆窗帘地址在什么地方,想过去办事,
浏阳市长沙天娇阁在什么地方啊,我要过去处理
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?