matlab 关键路径函数,关键路径算法详解

本文详细介绍了在工程管理中如何使用MATLAB寻找关键路径。关键路径是所有活动中持续时间最长的路径,影响工程的最终完成时间。文章通过AOV网和数据结构讲解了如何计算事件的最早开始时间和最晚开始时间,并提供了计算关键路径的算法,包括拓扑排序、事件时间计算以及关键活动的判断和输出。以一个具体的活动数据为例,展示了算法的应用,得出的关键路径为P1-P3-P4-P6。
摘要由CSDN通过智能技术生成

对于工程管理,人们最关注的两个问题分别是工程是否能顺利进行,以及估算整个工程完成所需要的最短时间和影响工程时间的关键活动。前一个问题可用拓扑排序解决,后一个问题则需要找出工程进行的

关键路径通常是所有工程活动中最长的路径,关键路径上的活动如果延期将直接导致工程延期。

利用 AOV 网表示有向typedef struct tagEdgeNode {

int vertexlndex; //活动边终点顶点索引 std::string name; //活动边的名称

int duty; //活动边的时间(权重)

}EDGE_NODE;

typedef struct tagVertexNode {

int sTime; //事件最早开始时间

int eTime; //事件最晚开始时间

int inCount; //活动的前驱节点个数

std::vector edges; //相邻边表

}VERTEX_NODE;

算法开始之前,每个顶点的 sTime 被初始化为 0,eTime 被初始化为一个有效范围之外的最大值(0x7FFFFFFF),算法结束之后,sTime 和 eTime 会被计算为实际的时间值。

什么是关键路径

开始讨论关键路径之前,先来介绍一下活动的最早开始时间和最晚开始时间。

工程中一个活动何时开始依赖于其前驱活动何时结束,只有所有的前驱活动都结束后这个活动才可以开始,前驱活动都结束的时间就是这个活动的最早开始时间。与此同时,在不影响工程完工时间的前提下,有些活动的开始时间存在一些余量,在时间余量允许的范围之内推迟一段时间开始活动也不会影响工程的最终完成时间,活动的最早开始时间加上这个时间余量就是活动的最晚开始时间。活动不能在最早开始时间之前开始,当然,也不能在最晚开始时间之后开始,否则会导致工期延误。

如果一个活动的时间余量为 0,即该活动的最早开始时间和最晚开始时间相同,则这个活动就是关键活动,由这些关键活动

计算关键路径的算法

计算关键路径的基础是先找出工程中的所有关键活动,确定一个活动是否是关键活动的依据就是活动的最早开始时间和最晚开始时间,因此需要先介绍如何计算活动的最早开始时间和最晚开始时间。

在 AOE 网中,事件 ei 必须在指向 ei 的所有活动都结束后才能发生,只有 ei 发生之后,从 ei 发出的活动才能开始&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值