2.关键路径算法原理和实现
2.1关键路径算法的主要内容
关键路径算法是一种基于数学计算基础上的进行项目计划管理方法,它是一种网络计划方法,关键路径算法就是把整个工程项目经过系统分析后,分解成为多个独立的活动,活动是相互独立的,但是他们之间具有逻辑关系,然后基于这种逻辑关系将整个活动连接,计算整个项目工程所需要的时间,并且算出活动最早和最晚完成时间以及它们的时差等。对一个大规模工程项目来说,在项目中或许存在许多的同步工作,但是关键路径代表着在项目网络中最长且耗时最多的一步完成之后,才表示整个工程项目的完工。
2.2关键路径算法的原理和步骤
2.2.1原理
关键路径算法是我们时间管理中用到的一种合理有效的算术管理方法,通过把全部的工程项目经过系统分析处理后,会被分割成若干个子项目,为每个子项目计算工期。通过绘制网络图,来分析每项活动的最早任务开始时间和最晚任务开始的时间,最早任务结束时间和最晚任务结束时间,算出时间的差额来判断项目工程的关键路经,找出最长的一条就是关键路径。
2.2.2步骤
(1)首先绘制网络图,顶点表示每一个子项目,用由左向右的方向箭头代表其中的流程方向,在有向箭头上写上任务的持续时间,节点表示每项动作,项目就会在图上非常清晰的表示出来。
(2)经过分析计算分别算出每项子项目的最早开始时间ete,最晚的结束时间ltv,和最早结束时间etv,最晚开始时间lte。
(3)最后计算出每个子项目的时差,用每个子项目完成所需要的最迟结束时间与最早结束时间的差额表示,当出现某一个项目没有时差,就可以确定这个路线就是这个工程项目的关键路径。
(4) 最后计算所有路径的时间长度,最大长度是完成项目所需的时间,为项目的关键路径。
关键路径可以有多条,他们所用的时间是一样的。但是关键路径却不是绝对的,如果改变关键路径上某个子项目活动所用的时长,就会导致关键路发生变化。在大规模工程项目管理中可以采取相关的措施使关键路径达到最优化。
2.3关键路径算法的实现
2.3.1主要的数据结构构建
在算法中,操作主要是从有向无循环图中找一条主要路径。数据结构主要是图的构建,对图的构建中先要进行弧边和顶点的构建,首先定义邻接点的编号,再定义弧的信息,最后再定义结构体的名称。数据结构如下所示:
int adjvex; //邻接点编号
int dut; //弧的信息
struct node *next; //下一条弧指针
接下来定义数据结构的顶点域和定点的入度信息,再定义结构体变量边表头指针。 大规模工程项目的关键路径求解+代码(2):http://www.751com.cn/jisuanji/lunwen_34788.html