本发明涉及项目管理技术领域,具体是一种基于toc关键链的项目管理方法。
背景技术:
能源互联网可理解是综合运用先进的电力电子技术,信息技术和智能管理技术,将大量由分布式能量采集装置,分布式能量储存装置和各种类型负载构成的新型电力网络、石油网络、天然气网络等能源节点互联起来,以实现能量双向流动的能量对等交换与共享网络。
基于toc关键链的项目管理方法作为能源互联网的骨干设备,具有能源接入、传输、转换、路由等各种重要功能,以及对所辖微网的能源运营和管理功能,是能源互联网中最重要的信息和能源基础设施。其高效运行将为能源互联网能源和信息的对等、分享、开放、互联提供基本保证。
为了提高能源供应的灵活性和开放性,能源互联网运行需要接入不同种类、不同规格的分布式可再生能源生产(或存储)设备,如风电、光伏、储能等。它们具有各自不同的能源生产特性,需要根据其具体运行特点采用合适的驱动程序。如风电将产生交流电,需要根据风速决定其发电功率;而光伏发电将产生直流电,需要根据光照条件决定其发电能力。目前为了适应多种不同种类、不同规格的分布式可再生用户设备接入能源互联网,需要针对不同的用户设备设置专用的接入端口,并且配置专用的驱动程序。
但是,现有的分布式用户设备种类众多,且同一种类的用户设备又具有多种规格,现有的基于toc关键链的项目管理方法中往往需要配置多种接入端口,并为接入端口配备相应的驱动程序,增加了硬件接口设计的复杂程度,也限制了能源路由器的兼容性和可扩展性。
技术实现要素:
本发明的目的在于提供一种基于toc关键链的项目管理方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种基于toc关键链的项目管理方法,包含以下步骤:
a、进度计划数据检查;
b、识别关键路径;计算最早开始时间es和最早完成时间ef;计算最晚完成时间lf、最晚开始时间ls;计算总时差tf;确定关键路径;确定调度优先顺序;
c、建立共享资源链,生成调度计划;
d、识别关键链;
e、识别非关键链;
f、设置项目缓冲;
g、设置汇流缓冲;
h、设置里程碑缓冲;
i、关键链总结。
作为本发明的进一步技术方案:所述步骤a中检测的错误类型包括:1.工期为非零的任务没有资源;2.除最后一个任务外,其他任务都要有后续任务;3.资源名不能重复;4.只能有fs关系;5.任务的资源用量不能超出资源池。
作为本发明的进一步技术方案:所述步骤b具体是:对于给定的进度计划,计算各个任务的总时差,总时差为0的任务即是关键路径上的任务,为方便起见,在项目开始处增加一个虚拟任务s,工期=0,因关键路径与任务时间没有关系,因此计算es、lf时,就用整数表示。
作为本发明的进一步技术方案:所述总时差tf=lf-ef=ls-es。
作为本发明的进一步技术方案:所述关键路径由tf为0的任务组成。
作为本发明的进一步技术方案:建立共享资源链的流程如下:根据任务的不同状态把任务分为四类:done:表示已完成的任务;doing:表示正在执行的任务;todo:表示紧后作业均已完成的任务;donot:表示不具备开工条件的任务。
作为本发明的进一步技术方案:所述关键链是已解决资源冲突的关键路径,故得出调度计划后,再采用“识别关键路径”的方法取工期最长的那条作为关键链。
作为本发明的进一步技术方案:所述步骤e具体是:对于关键链上的任何一个任务i,其前置任务集合pi,除了关键任务外,每个都对应一条非关键链。可以认为非关键链上的任务是以i为结束任务的关键链,因此识别非关键链的算法可以参考查找关键链的算法来完成,所不同的是,非关键链上不能有关键任务,从关键任务开始,往前推,直至所有的非关键任务都被覆盖,说明已识别出所有的非关键链。
作为本发明的进一步技术方案:所述步骤f具体是:计算每一个关键链上的任务的贡献时间,然后再汇总,在项目结束点前,增加一个不占用资源的虚拟任务,其工期=项目缓冲时间。
作为本发明的进一步技术方案:所述步骤f具体是:在非关键链与关键链汇流的地方,增加一个不占用资源的虚拟任务,其工期=项目缓冲时间。
与现有技术相比,本发明的有益效果是:本发明采用toc关键链技术对项目的施工过程进行管理,能够清楚简洁的获得最优施工路径规划,同时还能够预设缓冲时间,降低项目的逾期风险,增加施工效率。
附图说明
图1为项目施工代号图;
图2为建立共享资源链的流程图;
图3为进度计划网络图。
图4为调整后的调度计划代号图。
图5为设置里程碑缓冲的代号图。
图6为项目进度监控流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1-3,实施例1:一种基于toc关键链的项目管理方法,包含以下步骤:
a、进度计划数据检查;其中,错误类型包括:1.工期为非零的任务没有资源;2.除最后一个任务外,其他任务都要有后续任务;3.资源名不能重复;4.只能有fs关系;5.任务的资源用量不能超出资源池。
、识别关键路径;对于给定的进度计划,计算各个任务的总时差,总时差为0的任务即是关键路径上的任务,为方便起见,在项目开始处增加一个虚拟任务s,工期=0,因关键路径与任务时间没有关系,因此计算es、lf时,就用整数表示;以下表和图1为例,资源总量是6,任务基本信息如下表:
任务工期紧前任务资源使用量
s0 0
a2s4
b3s4
c5s4
d4a3
e4a1
f3b2
g6b,c2
h2d2
i3e,f,g,h2
包含以下计算过程:
1、计算最早开始时间es(earlystart)、最早完成时间ef(earlyfinish)
顺推,从第一个任务开始,根据逻辑关系依次计算。
任务s的es=0,ef=0;
任务a的es=0,ef=2;任务b的es=0,ef=3;任务c的es=0,ef=5;
任务d的es=2,ef=6;任务e的es=2,ef=6;
任务f的es=3,ef=6;任务g的es=5,ef=11;
任务h的es=6,ef=8;任务i的es=11,ef=14;
项目总工期=max(ef)-min(es)=14。
2、计算最晚完成时间lf(latefinish)、最晚开始时间ls(latestart);
逆推法,从最后的任务开始,根据逻辑关系往前推。
任务i的lf=14,ls=11;
任务e的lf=11,ls=7;任务f的lf=11,ls=8;任务g的lf=11,ls=5;任务h的lf=11,ls=9;
任务d的lf=9,ls=5;
任务a的lf=5,ls=3;任务c的lf=5,ls=0;任务b的lf=5,ls=2;
任务s的lf=0,ls=0。
3、计算总时差tf(totalfloat):
总时差tf=lf-ef=ls-es
任务a的tf=ls-es=3-0=3;任务b的tf=5-3=2;任务c的tf=0;…
结果如下:
tfs=0,tfa=3,tfb=2,tfc=0,tfd=3,tfe=5,tff=5,
tfg=0,tfh=3,tfi=0。
4、确定关键路径:顺推,依次找出tf为0的任务,直至结束,则得出关键路径:s→c→g→i。
5、确定调度优先顺序:
调度以越晚完工越好的原则,从后往前推算。
第一优先规则:tf(总时差)小的优先;
第二优先规则:开始时间晚的优先;
第三优先规则:所有前置任务中tf小的优先;
得出调度顺序为{i,g,c,s,b,h,d,a,f,e}
c、建立共享资源链,生成调度计划;
1、建立共享资源链的流程:
根据任务的不同状态把任务分为四类:
done:表示已完成的任务;
doing:表示正在执行的任务;
todo:表示紧后作业均已完成的任务;
donot:表示不具备开工条件的任务。
2、算例分析:如图3所示,第一步已经得到调度优先顺序为{i,g,c,s,b,h,d,a,f,e}。{done}={i},紧前任务h、e、f、g均转入{todo}集,按照优先规则,优先调度任务g、h、f,任务g、h、f转入{doing}集,任务e因不具备足够的资源,故不能进入{doing}。待任务h完成后,h有紧前任务d进入{todo}集,此时{todo}集里有e和d,因e满足资源要求,,则e进入{doing}集,并在e和h之前建立一条资源链。f做完后,其紧前任务有b,b的紧后任务没有全部完成,故不能进入{todo},此时{todo}中只有任务d,则任务d的资源要求得到满足,d进入{doing}中,并在d和f之间建立一条资源链。g和e做完后,有前置任务b和a,而a的后置任务没有全部做完,故只有b进入{todo},但因为资源约束,b只能继续等待。待d做完后,则a、c进入{todo},此时{todo}里有a、b、c,根据优先调度规则,c进入{doing},并在c和d之间建立一条资源链。c完成后,根据优先顺序,b进入{doing},并在b和c之间建立一条资源链,随后在b和a之间建立一条资源链。
3、识别关键链;所谓关键链就是已解决资源冲突的关键路径。故得出调度计划后,再采用“识别关键路径”的方法可以确定上图的关键链是:s→a→b→c→d→f→i;(工期=20),取工期最长的那条作为关键链。
4、识别非关键链;对于关键链上的任何一个任务i,其前置任务集合pi(包括逻辑关系和资源约束),除了关键任务外,每个都对应一条非关键链。可以认为非关键链上的任务是以i为结束任务的关键链,因此识别非关键链的算法可以参考查找关键链的算法来完成,所不同的是,非关键链上不能有关键任务,从关键任务开始,往前推,直至所有的非关键任务都被覆盖,说明已识别出所有的非关键链。
5、设置项目缓冲;
定义三个概念:
任务工期缩减系数x%
项目缓冲比率y%
关键链上的任务贡献时间=任务工期*(1-x%)*y%
项目缓冲来源于关键链上的任务的贡献时间总和。
设置项目缓冲分两个步骤:
1.缩减任务工期:任务工期调整为=原定任务工期-贡献时间。
.计算项目缓冲时间pb的计算方法有两种:
a)计算每一个关键链上的任务的贡献时间,然后再汇总
b)项目总工期*(1-任务工期缩减系数)*项目缓冲比率
为减少误差,建议采用第a)种方式。
具体实现方法:在项目结束点前,增加一个虚拟任务(不占用资源),其工期=pb即可。
2、设置汇流缓冲;
定义两个概念:
汇流缓冲比率z%;
汇流缓冲时间
fb=非关键链的总工期x(1-任务工期缩减系数)x汇流缓冲比率
汇流缓冲时间的计算与项目缓冲时间的计算类似,只是把项目缓冲比率y%换成汇流缓冲比率z%。
具体实现方法——在非关键链与关键链汇流的地方,增加一个虚拟任务(不占用资源),工期=fb。
需要注意的是:当加入汇流缓冲时间后,所加的虚拟任务的计划完工时间超出了其后续任务(即关键链上的任务)的计划开始时间时,需要给出提示。
设置里程碑缓冲;里程碑点在做网络计划时就已经确定,经过任务工期缩减后,里程碑依旧保持不变。从里程碑点到前置任务完工时间之间的间隙,即里程碑缓冲时间。
关键链总结:加入缓冲后,可能引起以下几个问题:
1.资源冲突;
2.间隙;
3.日历间隙;
系统无须再做额外处理,只要把这个信息提供给用户即可。加入缓冲后,如果计算出来的项目开始时间超出某个限定时间(这个时间可以用户输入,若不输入则认为是当天),则系统要提供一个预计完工时间,显示给用户。
实施例2,基于上述实施例1,还包括对项目的监控,对项目进度进行监控,设置两项监控指标,一个是任务的完成程度,另一个是缓冲的消耗程度。任务的完成程度以“最长链完成百分比”表示,缓冲消耗的程度以“剩余最长链已消耗的项目缓冲占初始项目缓冲的百分比”表示,两项指标的计算均涉及到剩余最长链,所以进度监控的第一步为识别出剩余最长链。
具体包括:
1、识别剩余最长链(remaininglongestchain)。
剩余最长链:项目启动后,初始关键链是最长链。随着项目实施的进展,关键链上的任务会消耗项目缓冲(projectbuffer),非关键链上的任务消耗汇流缓冲(feedingbuffer)。设置汇流缓冲的目的是为了保护关键链,所以一般情况下关键链是剩余最长链。但如果非关键上的任务消耗完汇流缓冲后开始进一步消耗项目缓冲,非关键链可能会转变为新的剩余最长链。识别剩余最长链的具体步骤如图6所示;
2、计算最长链完成和缓冲消耗;
最长链完成百分比(longestchaincompletionratio):
初始关键链长度(不包括项目缓冲时间)
项目缓冲消耗百分比(bufferconsumptionratio):
剩余最长链已消耗的项目缓冲时间=初始项目缓冲长度-(剩余工期长度-剩余最长链长度)
剩余工期长度=要求几天完成-已经开工几天。
3、项目状态监控图:将最长链完成百分比、项目缓冲消耗百分比组成一个项目状态的平面坐标,其中关键链完成百分比为横坐标,项目缓冲消耗百分比为纵坐标。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。