基于多级网络计划的进度计算方法及其算法实现技术

技术编号:9935687 阅读:127 留言:0更新日期:2014-04-18 08:17
一种基于多级网络计划的进度计算方法,其特征在于:所述进度计算通常包含4个步骤,分别是:正向计算、反向计算、最终计算和计算关键路径;(1)、正向计算最早开始时间和最早完成时间是通过一个正向计算得出的;(2)、反向计算最晚开始时间、最晚完成时间是通过一个反向计算得出的;(3)、最终计算开始时间和完成时间是通过最终计算过程计算得出的;(4)、计算关键路径在(1)、(2)、(3)三个步骤中,计算得到了每个任务最早开始、完成时间,最晚开始、完成时间,开始、完成时间,根据关键任务的定义计算得出关键任务,关键任务组成的路径即为关键路径。

【技术实现步骤摘要】
基于多级网络计划的进度计算方法及其算法实现
:本专利技术涉及一种公开了基于多级网络计划模型的进度计算方法和算法实现。
技术介绍
:航天型号工程是一项协作关系十分复杂、风险控制难度很大的群管理工程项目,其项目计划经常达到成千上万条,在这种情况下,如何合理、高效的编写和优化进度计划,使项目周密地控制在计划范围以内,保证项目“更快、更好”地实现目标,显得尤为重要。随着计算机技术的发展,用计算机软件进行进度安排的优势越专利技术显。举个例子,如果要完成一个由100个左右的活动组成的项目的编制,一个人至少需要1个星期的时间,而计算机只需要几秒钟的时间。航天型号项目进度计划一般以研制的产品为中心,按集团公司-研究院-研究所(事业部、厂)层次将研制过程中所应完成的工作自上而下逐级细化分解。通过工作分解结构(WBS)将项目按照其内在结构或实施过程的顺序进行逐层分解,直至相对独立、内容单一、便于核算和检查的工作单元,并建立相互间的逻辑关系,从而形成多级网络计划模型。目前,项目管理软件市场上,使用较多的是OraclePrimavera的P3,P6,微软公司的Project等。但在进度计算方面,P3,P6尚不支持多级网络计划模型(不能在摘要任务之间或摘要任务与作业任务之间设置依赖关系),Project只适合中小型项目管理,并且其进度计算算法尚未公开。因此,在某些方面并不能满足航天工程项目的应用需求。本专利技术基于多级网络计划模型,提出了一种进度计算方法,并给出了算法实现,它在项目管理软件AVPLAN5.0中得到了应用和验证,旨在满足航天工程项目的应用需求。
技术实现思路
为解决现有技术的不足,本专利技术的目的在于提供一种基于多级网络计划模型的进度计算方法和算法实现,包含任务依赖关系和任务限制类型约束的进度计算方法和易于计算机软件实现的算法描述,旨在解决用计算机软件编写进度计划、优化进度安排的技术问题。为了实现上述目标,本专利技术采用如下的技术方案:一种基于多级网络计划的进度计算方法,其特征在于:所述进度计算通常包含4个步骤,分别是:正向计算、反向计算、最终计算和计算关键路径;(1)、正向计算最早开始时间和最早完成时间是通过一个正向计算得出的;(2)、反向计算最晚开始时间、最晚完成时间是通过一个反向计算得出的;(3)、最终计算开始时间和完成时间是通过最终计算过程计算得出的;(4)、计算关键路径在(1)、(2)、(3)三个步骤中,计算得到了每个任务最早开始、完成时间,最晚开始、完成时间,开始、完成时间,根据关键任务的定义计算得出关键任务,关键任务组成的路径即为关键路径。所述正向计算包括四个算法:正向计算算法、calculateTask函数、getTimeByFowardTasks函数和getTimeByParentFowardTasks函数;正向计算算法用于根据项目中任务之间的依赖关系,由前向后正推,计算项目各个任务的最早开始时间和最早完成时间;calculateTask函数用于计算指定任务的最早开始时间;getTimeByFowardTasks函数用于根据指定任务的前置任务计算得出该任务的候选最早开始时间;getTimeByParentFowardTasks函数用于据指定任务的父任务或祖先任务的前置任务计算得出的该任务的候选最早开始时间。所述反向计算包括反向计算算法、calculateLastTime函数、getTimeBySubsequenceTasks函数、getTimeByParentSubsequenceTasks函数;反向计算算法用于根据项目中任务之间的依赖关系,由后向前逆推,计算项目各个任务的最晚开始时间和最晚完成时间;calculateLastTime函数用于计算指定任务的最晚开始时间和最晚完成时间;getTimeBySubsequenceTasks函数用于根据指定任务的后置任务计算得出该任务的候选最晚开始时间;getTimeByParentSubsequenceTasks函数用于根据指定任务的父或祖先的后置任务计算得出的该任务的候选最晚开始时间。所述最终计算包括最终计算算法和calculateExpectTask函数;最终计算算法用于根据项目中任务之间的依赖关系,由前向后正推,利用正向计算和反向计算的结果计算项目各个任务的最终的开始时间和完成时间;calculateExpectTask函数用于计算指定任务的开始时间、完成时间。所述关键路径包括关键路径算法,关键路径算法用于根据项目中任务的最早开始、完成时间,最晚开始、完成时间,开始、完成时间来确定关键任务。在计算过程中,本专利技术抽象出进度计算的规则如下:(1)计算起点和终点的选择:在进度计算过程中寻找计算的起点和终点、对起点进行初始化的策略是非常重要的。在正向计算过程中我们选择没有前置任务的作业节点为起点,用它们的计划开始时间初始化其最早开始时间,用它们的计划完成时间初始化最早完成时间,计算的终点是没有后置任务的节点。在反向计算过程中我们选择没有后置任务的作业节点为起点,用正向计算过程中计算出来的最大的最早完成时间去初始化它们的最晚完成时间,并依据工期不变原则计算相应的最晚开始时间,计算的终点是没有前置任务的节点。在最终计算过程中我们选择没有前置任务的作业节点为起点,用它们的最早开始时间或最晚开始时间初始化其开始时间(受限制类型的影响),计算的终点是没有后置任务的节点。(2)依赖关系的继承和转换:父任务的依赖关系可以转换为其子任务的依赖关系,即如果父任务具有前置任务,则其所有子孙任务都具有相同的前置任务,如果父任务具有后置任务,则其所有子孙任务都具有相同的后置任务,这是一个递归的过程,关系的转换直至作业任务。(3)依赖关系的继承和转换:父任务的依赖关系可以转换为其子任务的依赖关系,即如果父任务具有前置任务,则其所有子孙任务都具有相同的前置任务,如果父任务具有后置任务,则其所有子孙任务都具有相同的后置任务,这是一个递归的过程,关系的转换直至作业任务。(4)摘要任务时间的计算:摘要任务(WBS)时间的计算是对其子任务的时间的汇总。摘要任务的开始时间取其子任务开始时间的最小值,完成时间取其子任务完成时间的最大值;最早开始时间取其子任务最早开始时间的最小值,最早完成时间取其子任务最早完成时间的最大值;最晚开始时间取其子任务最晚开始时间的最小值,最晚完成时间取其子任务最晚完成时间的最大值。(5)作业任务时间的计算进度计算中,对于作业任务来说,在保持作业任务工期不变的前提下,正向计算过程是通过前置任务的最早开始时间计算后置任务的最早开始时间,而反向计算是通过后置任务的最晚开始时间逆推前置任务的最晚开始时间,而最终计算是通过前置任务的开始时间计算后置任务的开始时间。通过总结不难发现,计算包含两种模式,一种是由前置任务的时间顺推后置任务的时间,另一种是通过后置任务的时间逆推前置任务的时间。这两种模式的计算策略在下面给出了说明,假设i是j的前置任务,我们用时间类型的代号加任务标识来表示任务该时间类型的值,比如ESj表示任务j的最早开始时间,时间类型代号参照开篇的术语解释。由前置任务的时间顺推后置任务的开始时间的计算逻辑如表格2所示:表格2顺推计算时间逻辑关系类型计算公式FS(完成-开始)ES本文档来自技高网...
基于多级网络计划的进度计算方法及其算法实现

【技术保护点】
一种基于多级网络计划的进度计算方法,其特征在于:所述进度计算通常包含4个步骤,分别是:正向计算、反向计算、最终计算和计算关键路径;(1)、正向计算最早开始时间和最早完成时间是通过一个正向计算得出的;(2)、反向计算最晚开始时间、最晚完成时间是通过一个反向计算得出的;(3)、最终计算开始时间和完成时间是通过最终计算过程计算得出的;(4)、计算关键路径在(1)、(2)、(3)三个步骤中,计算得到了每个任务最早开始、完成时间,最晚开始、完成时间,开始、完成时间,根据关键任务的定义计算得出关键任务,关键任务组成的路径即为关键路径。

【技术特征摘要】
1.一种基于多级网络计划的进度计算方法,其特征在于:所述进度计算包含4个步骤,分别是:正向计算、反向计算、最终计算和计算关键路径;(1)、正向计算最早开始时间和最早完成时间是通过一个正向计算得出的;(2)、反向计算最晚开始时间、最晚完成时间是通过一个反向计算得出的;(3)、最终计算开始时间和完成时间是通过最终计算过程计算得出的;(4)、计算关键路径在(1)、(2)、(3)三个步骤中,计算得到了每个任务最早开始、完成时间,最晚开始、完成时间,开始、完成时间,根据关键任务的定义计算得出关键任务,关键任务组成的路径即为关键路径;所述正向计算包括正向计算算法、calculateTask函数、getTimeByFowardTasks函数和getTimeByParentFowardTasks函数;正向计算算法用于根据项目中任务之间的依赖关系,由前向后正推,计算项目各个任务的最早开始时间和最早完成时间;calculateTask函数用于计算指定任务的最早开始、完成时间;getTimeByFowardTasks函数用于根据指定任务的前置任务计算得出该任务的候选最早开始时间;getTimeByParentFowardTasks函数用于据指定任务的父任务或祖先任务的前置任务计算得出的该任务的候选最早开始时间;所述反向计算包括反向计算算法、calculateLastTime函数、getTimeBySubsequenceTasks函数、getTimeByParentSubsequenceTasks函数;反向计算算法用于根据项目中任务之间的依赖关系,由后向前逆推,计算项目各个任务的最晚开始时间和最晚完成时间;calculateLastTime函数用于计算指定任务的最晚开始时间和最晚完成时间;getTimeBySubsequenceTasks函数用于根据指定任务的后置任务计算得出该任务的候选最晚开始时间;getTimeByParentSubsequenceTasks函数用于根据指定任务的父或祖先的后置任务计算得出的该任务的候选最晚开始时间;所述最终计算包括最终计算算法和calculateExpectTask函数,最终计算算法用于根据项目中任务之间的依赖关系,由前向后正推,利用正向计算和反向计算的结果计算项目各个任务的最终的开始时间和完成时间;calculateExpectTask函数用于计算指定任务的开始时间、完成时间;所述关键路径包括关键路径算法,关键路径算法用于根据项目中任务的最早开始、完成时间,最晚开始、完成时间,开始、完成时间来确定关键任务;正向计算算法过程描述:(1)通过项目的唯一标识,提取和收集数据,得到集合fRMap、childMap、parentMap、dataMap;(2)遍历该项目所包含的所有任务...

【专利技术属性】
技术研发人员:王学敏单承方李琳杨鸽
申请(专利权)人:北京神舟航天软件技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1