多任务资源冲突分段检测方法

文档序号:6379174阅读:261来源:国知局
专利名称:多任务资源冲突分段检测方法
技术领域
本发明涉及一种多任务资源冲突分段检测方法。
背景技术
在工程项目中,诸如工程设备、仪器、场地等资源,可以轮流分配给多个项目使用,且在使用中其负荷能力是一定的。这类资源不像劳动カ资源一样可以通过增加劳动强度等方式来增大负荷能力,从而压缩エ期;也不像材料等消耗性资源ー经使用就不可再用于其他项目,可以称之为可重复使用的“刚性资源”。在ー些大型项目执行过程中,由于项目的动态性,多个任务同时竞争某些刚性资源的情况经常发生,当资源的需求数量超出资源现有总量吋,即产生资源冲突,影响项目中的实际进展,因此需要对项目执行中的资源冲突进行检測。 资源冲突检测属于冲突检测的研究范围,在冲突检测领域已有较为深入的研究。经典的冲突检测方法有以下4类基于Petri网一致性的冲突检测;基于真值的冲突检测;基于约束不可满足的冲突检测;基于启发式分类的冲突检测。在实际应用中,冲突检测的方法常是基于真值的检测与基于约束的检测的结合,但是针对项目资源尤其是可重用的刚性资源的冲突检测,相关研究还较少,也没有成熟的理论和算法作为支持。对于ー些周期较长,任务较多,控制粒度较细的项目,可能出现冲突的资源种类和冲突位置较多,存在冲突检测方法效率不高,定位不够精确的问题。

发明内容
为解决上述问题,本发明提出一种检测多任务执行过程中已分配项目资源是否存在冲突的方法,它用于动态的检测项目资源的冲突情况,可以快速精确定位项目资源冲突,并针对存在冲突的时间段对管理者进行提示,此检测方法主要针对可重复使用的刚性资源进行检測。为实现上述目的,本发明采用的技术方案如下一种多任务资源冲突分段检测方法,其包括以下步骤I)给定以下数据资源名称及其总量;各项任务占用资源的开始时间、结束时间、
数量;2)根据各项任务占用资源的时间构建资源使用的时间区间,形成各项任务占用资源的时间点的集合{M1},{M1}的数据结构模型为=Mi1ItiSThRl^typeI ;其中ti表示时间点,Tk表示第k个任务,Rk表示任务k占用的资源数量,type表示时间点ti对应的任务Tk占用资源的时间类型,该时间类型为开始时间或结束时间;3)将{M1}中重合的时间点合并,并按时间的先后顺序排列,形成新的时间点序列的集合{M2},集合{Μ2}数据结构模型为=Mi2 Ui27Ma1, Mb1, Mc1,……};其中ti表示排序并去除重复节点后的时间点,Mk1表示ti时刻集合{M1}的模型;此时,{M2}中每两个相邻的时间点都构成一个资源使用时间区间;4)记录{M2}中的各节点的类型是某项任务占用资源的开始时间还是结束时间;5)计算{M2}中每个资源使用时间区间内的占用资源量;在以上分析的基础上,得到以下数据各个时间区间的资源使用量;最大资源使用量以及使用量最大的区间;最少资源使用量以及使用量最少的区间;是否存在资源冲突,以及存在冲突的时间区间。本发明的有益效果是1.算法复杂度较低,是线性复杂度,可支持较大数据量的应用。2.算法实现简单,根据应用可删减过程。比如如果只需要知道分析区间内是否有冲突,则检测到冲突即可中断。3.可获得资源冲突区间的全面检测数据。4.对每个资源实现分别分析,因此支持并行处理技术同时对多个资源进行分析。


图1为资源分析图; 图2为资源分配记录图;图3为分配数据的拆分图;图4为数据按照时间的顺序进行排序图;图5为使用列表和图形共同展示冲突情况图;图6为展示的冲突的时间及任务。
具体实施例方式本发明为一种检测多任务执行过程中已分配项目资源是否存在冲突的方法,用于动态的检测项目资源的冲突情况,可以快速精确定位项目资源冲突,并针对存在冲突的时间段对管理者进行提示,此检测方法主要针对可重复使用的刚性资源进行检测。本发明包括以下步骤I)给定以下数据资源名称及其总量;各项任务占用资源的开始时间、结束时间、
数量;2)根据各项任务占用资源的时间构建资源使用的时间区间,形成各项任务占用资源的时间点的集合{M1},{M1}的数据结构模型为=Mi1ItiST^Rhtypei ;其中ti表示时间点,Tk表示第k个任务,Rk表示任务k占用的资源数量,type表示时间点ti对应的任务Tk占用资源的时间类型,该时间类型为开始时间或结束时间;3)将{M1}中重合的时间点合并,并按时间的先后顺序排列,形成新的时间点序列的集合{M2},集合{M2}数据结构模型为=Mi2 Ui27Ma1, Mb1, Mc1,……};其中ti表示排序并去除重复节点后的时间点,Mk1表示ti时刻集合{M1}的模型;
此时,{Μ2}中每两个相邻的时间点都构成一个资源使用时间区间;4)记录{Μ2}中的各节点的类型是某项任务占用资源的开始时间还是结束时间;5)计算{Μ2}中每个资源使用时间区间内的占用资源量;在以上分析的基础上,得到以下数据各个时间区间的资源使用量;最大资源使用量以及使用量最大的区间;最少资源使用量以及使用量最少的区间; 是否存在资源冲突,以及存在冲突的时间区间。在所述步骤4)中,如果{Μ2}的某个时间点由{Μ1}的多个点组成,则要分别记录这些{Μ1}中的点的类型和资源占用量,在所述步骤5)中,计算{Μ2}中每个资源使用时间区间内的占用资源量的方法是如果{Μ2}中的某个时间点包括{Μ1}中的某个或某几个开始时间点,则{Μ2}中的该时间点之后的那个时间区间内占用资源量为前一区间占用量加上这几个时间点的资源
使用量;如果{Μ2}中的某个时间点包括{Μ1}中的某个或某几个结束时间点,则{Μ2}中的该时间点之后的那个时间区间内占用资源量为前一区间占用量减去这几个时间点的资源
使用量。下面结合附图详细说明。资源冲突检测具体实现过程一.构建数据模型对每种资源分别进行分析,记待分析资源总量为R。如图1所示[ta,tb]为冲突分析的时间区间,数轴节点上方表示任务占用资源的开始节点或结束节点,ta时刻已分配资源总量记为Ra。数轴节点下方表示该时刻任务占用资源的情况,记任务Tk占用资源数量为Rk,任务Tk占用资源的时间区间用[T(k,s),T(k,e)] (k表不任务序号,s表不占用资源开始,e表不占用资源结束)。以图中节点为例,h时刻为任务T1占用资源的开始时间;t2时刻为任务T2占用资源的开始时间;t3时刻为任务T1占用资源的结束时间,同时也是任务T3占用资源的开始时间;其他节点含义可以此类推。二.根据各项任务占用资源的时间构建资源使用的时间区间选取待分析时间段内的所有任务对资源占用的开始时间点和完成时间点,对某个任务Tk,其开始时间点记为T(k,s),结束时间点记为T(k,e)。记这些时间点的集合为{M1},数据结构模型为Mi1 {ti1, Tk, Rk, type} (ti表示时间,Tk表示第k个任务,Rk表示任务k占用的资源数量,type表示时间ti对应任务Tk占用资源的时间类型(开始时间或完成时间))。三.将{M1}中重合的时间点合并,并按时间的先后顺序排列如图1所示,排列后形成新的时间点序列{M2}。此时,{M2}中相邻两个时间点构成一个资源使用时间区间。
四·记录{Μ2}中的各节点的类型是某项任务占用资源的开始时间(S)还是结束时间(e);如果{M2}的某个时间点由{M1}的多个点组成,则要分别记录这些{M1}中的点的类型和资源占用量。集合{M2}数据结构1吴型为Mi2 Ui27Ma1, Mb1, Mc1,……} (ti表示排序并去除重复节点后的时间,Mk1表示ti时刻集合{M1}的模型)。五·计算{M2}中每个时间区间内的占用资源量如果{M2}中的某个时间点包括{M1}中某个或某几个开始时间点,则{M2}中的该时·间点之后的那个时间区间内占用资源量为前一区间占用量加上这几项任务的资源使用量,如果这个时间点包括{M1}中某个或某几个结束时间点,则该时间点之后的那个时间区间内占用资源量需减去这几个时间点的资源使用量。如图1所示tl,t2分别为任务Tl,T2的资源使用开始时间;t3既是任务T3的资源使用开始时间,也是任务Tl的资源使用结束时间;t4是任务T3的资源使用结束时间;t5是任务T2的资源使用结束时间。据此可以计算各个时间区间资源的占用数量。如下所示[ta,tj区间资源使用量为Ra>1 = Ra,Lt1 t2]区间资源使用星为 Rlj2 = Ra,i+Ri,[t2,t3]区间资源使用星为 R2,3 =[t3,t4]区间资源使用里!为 R3,4 = 1^2,3+ - ,[t4,t5]区间资源使用星为 R4,5 = R3,4_R3。六.在以上分析的基础上,可以得到以下的数据1.各个时间区间的资源使用量;2.最大资源使用量以及使用量最大的区间;3.最少资源使用量以及使用量最少的区间;4.是否存在资源冲突,以及存在冲突的时间区间。下面再以一个模拟例子加以说明。I)模拟数据资源名称计算机数量5分配记录如图2所示。2)分配数据的选择与拆分有了模拟数据以后,算法的第一步是根据所要检测的资源,从分配记录中筛选出相关的数据。以上面的模拟数据为例,应根据资源名称计算机选出前面四条分配记录。接下来需要将数据中的开始时间和结束时间进行拆分,把时间段分成独立的时间点,这里的时间点数据除了要记录作业名称和需求数量外,还要记录它的类型,即其属于开始时间还是结束时间,拆分后的数据如图3所示。3)时间点的排序这一步将图3中的数据按照时间的顺序进行排序,结果如图4。
4)新时间段的构成在图4中,相邻的每两个时间点将会构成一个新的时间段,这个时间段实际上代表了冲突检测的每一个区间。不过并不是每两个时间点都能构成我们需要的时间段,比如一条分配记录的结束时间和另一条分配记录的开始时间构成的时间段,如果这个时间段内没有使用资源(数量为O),就不能构成一个有效的时间段,它们构成的只是两条记录之间的时间间隔,是没有必要进行冲突检测的。在图4中,第5条记录和第6条记录之间虽然是结束时间和开始时间构成的时间段,但因为数量不为0,所以还是需要进行分析,因此如上数据可以构成7个冲突检测区间。5)冲突的检测冲突的检测就是看当前时段资源的分配量是否大于资源的总量,是则发生冲突。那么如何获取当前时段资源的分配量呢?首先设置一个变量A记录当前时刻的资源分配量(初值为O),当一个时段的开始节点是某一分配记录的开始节点时,将该节点对应的需求数量加到A上作为新的A值;当一个时段的开始节点是某一分配记录的结束节点时,将该节点对应的需求数量从A中减去作为新的A值,这样就可获得这一时段的资源分配量。以上图数据为例首先设置A = O;第I个冲突检测时段由第1、2条数据构成,其开始节点为start类型,那么A =A+2 = 2,这一时段的资源分配量为2,小于资源总量5,不冲突;第2个冲突检测时段由第2、3条数据构成,其开始节点为start类型,那么A =A+2 = 4,这一时段的资源分配量为4,小于资源总量5,不冲突; 第3个冲突检测时段由第3、4条数据构成,其开始节点为start类型,那么A =A+2 = 6,这一时段的资源分配量为6,大于资源总量5,冲突;第4个冲突检测时段由第4、5条数据构成,其开始节点为end类型,那么A = A_2=4,这一时段的资源分配量为4,小于资源总量5,不冲突;第5个冲突检测时段由第5、6条数据构成,其开始节点为end类型,那么A = A_2=2,这一时段的资源分配量为2,小于资源总量5,不冲突;第6个冲突检测时段由第6、7条数据构成,其开始节点为start类型,那么A =A+4 = 6,这一时段的资源分配量为6,大于资源总量5,冲突;第7个冲突检测时段由第7、8条数据构成,其开始节点为end类型,那么A = A_4=2,这一时段的资源分配量为2,小于资源总量5,不冲突;综上,资源计算机在时段2008-08-01:12:00:00 2008-08-02:09:00:00 和2008-08-02:14:00:00 2008-08-03:12:00:00上发生冲突,相关的作业在检测的过程中
可以进行记录。6)冲突结果展示使用列表和图形共同展示冲突情况,如图5、图6所示,图5中条纹标记处为出现冲突的位置,图6展示了冲突的时间及任务。上述的实施例并不对本发明所要求的保护范围构成任何形式的限制,本发明的权利要求书覆盖了所有的修改和变更,因此,针对上述实施例做出种种修改和变化均属于本发明的保护范围内。
权利要求
1.一种多任务资源冲突分段检测方法,其特征在于包括以下步骤 1)给定以下数据资源名称及其总量;各项任务占用资源的开始时间、结束时间、数量; 2)根据各项任务占用资源的时间构建资源使用的时间区间,形成各项任务占用资源的时间点的集合{M1},{M1}的数据结构模型为=Mi1ItiST^Rhtypei ; 其中ti表示时间点,Tk表示第k个任务,Rk表示任务k占用的资源数量,type表示时间点ti对应的任务Tk占用资源的时间类型,该时间类型为开始时间或结束时间; 3)将{M1}中重合的时间点合并,并按时间的先后顺序排列,形成新的时间点序列的集合{M2},集合{M2}数据结构模型为=Mi2ItAMaSMbSMe1,……}; 其中ti表示排序并去除重复节点后的时间点,Mk1表示ti时刻集合{M1}的模型; 此时,{M2}中每两个相邻的时间点都构成一个资源使用时间区间; 4)记录{M2}中的各节点的类型是某项任务占用资源的开始时间还是结束时间; 5)计算{M2}中每个资源使用时间区间内的占用资源量; 在以上分析的基础上,得到以下数据 各个时间区间的资源使用量; 最大资源使用量以及使用量最大的区间; 最少资源使用量以及使用量最少的区间; 是否存在资源冲突,以及存在冲突的时间区间。
2.如权利要求1所述的多任务资源冲突分段检测方法,其特征在于 在所述步骤4)中,如果{M2}的某个时间点由{M1}的多个点组成,则要分别记录这些{M1}中的点的类型和资源占用量。
3.如权利要求2所述的多任务资源冲突分段检测方法,其特征在于 在所述步骤5)中,计算{M2}中每个资源使用时间区间内的占用资源量的方法是如果{M2}中的某个时间点包括{M1}中的某个或某几个开始时间点,则{M2}中的该时间点之后的那个时间区间内占用资源量为前一区间占用量加上这几个时间点的资源使用量; 如果{M2}中的某个时间点包括{M1}中的某个或某几个结束时间点,则{M2}中的该时间点之后的那个时间区间内占用资源量为前一区间占用量减去这几个时间点的资源使用量。
全文摘要
一种多任务资源冲突分段检测方法,其步骤是根据各项任务占用资源的时间构建各项任务占用资源的时间点的集合{M1};将{M1}中重合的时间点合并后按先后顺序排列成时间点的集合{M2};计算{M2}中每个资源使用时间区间内的占用资源量。得到以下数据各个时间区间的资源使用量;最大资源使用量以及使用量最大的区间;最少资源使用量以及使用量最少的区间;是否存在资源冲突,以及存在冲突的时间区间。本发明用于动态地检测项目资源的冲突情况,可以快速精确定位项目资源冲突,并针对存在冲突的时间段对管理者进行提示。其优点算法复杂度较低;可获得资源冲突区间的全面检测数据;对每个资源实现分别分析,支持并行处理技术同时对多个资源进行分析。
文档编号G06F9/46GK103019811SQ20121040073
公开日2013年4月3日 申请日期2012年10月19日 优先权日2012年10月19日
发明者单承方, 赵鹏飞, 王俊, 陈凡 申请人:北京神舟航天软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1