基于动态关键任务的启发式资源受限项目调度优化方法技术

技术编号:23705997 阅读:63 留言:0更新日期:2020-04-08 11:23
本发明专利技术公开了一种基于动态关键任务的启发式资源受限项目调度优化方法,包括以下步骤:S1获取调度优化所需信息;S2计算任务的排序值rank;S3系统状态初始化;S4从RT中取出关键任务j;S5计算任务j的完成时间f

Heuristic resource constrained project scheduling optimization method based on dynamic critical tasks

【技术实现步骤摘要】
基于动态关键任务的启发式资源受限项目调度优化方法
本专利技术涉及计算机技术、信息技术和系统工程领域,具体涉及一种资源受限项目调度优化方法,更具体的说,尤其涉及一种基于动态关键任务的启发式资源受限项目调度优化方法。
技术介绍
资源受限项目调度问题RCPSP(Resource-ConstrainedProjectSchedulingProblem)是指在满足资源及任务时序关系的约束下,如何科学合理地分配资源、安排任务执行顺序确定其开始和完成时间,以实现既定目标如:工期、费用等的最优化。随着越来越多的现代企业采用趋于面向项目的组织结构和管理模式,RCPSP广泛存在于建筑工程、软件开发、飞机及轮船制造等单件或小批量生产方式的企业中,具有很强的工程应用背景。在现阶段求解RCPSP的方法主要分为:1)精确算法,如:0-1整数规划和分支定界法;2)启发式算法,如:基于优先规则的启发式算法、分离弧法和局部搜索计算等;3)智能算法,如:遗传算法、粒子群优化算法、蚁群算法等。其中精确算法尽管在理论上能够得到最优解,但计算时间通常无法接受,一般只适用于小规模问题,启发式算法基于一定的启发式规则可以快速得到问题的解,但通常不能保证解的质量,智能算法基于计算智能,采用改进的启发式规则和搜索方式在合理的时间内找到近优解或满意解,但其效率通常依赖于算法本身的设计及问题的类型。
技术实现思路
为了克服精确算法无法适用于大规模问题及传统启发式调度方法任务优先级不能动态地反映当前未调度任务的紧急程度等方面的不足,本专利技术提供了一种基于动态关键任务的启发式资源受限项目调度优化方法,提高了求解的时间效率和解的质量,可以用于大规模问题的在线实时调度优化。本专利技术解决其技术问题所采用的技术方案如下:一种基于动态关键任务的启发式资源受限项目调度优化方法,包括以下步骤:步骤1:形式化资源受限项目调度问题,获取调度优化所需的信息;获取项目任务集T={t0,t1,...,tJ,tJ+1};其中tj表示任务j,即编号为j的任务,t0与tJ+1是人为增加的虚拟任务,即不占用项目工期也不占用资源,J是需要调度的实际任务数量;获取任务间的时序关系,即任务j的父任务集PRj和子任务集SCj,任务j在其父任务j-∈PRj全部完工之前不能开始执行,j=0,1,…,J+1,t0没有父任务即tJ+1没有子任务即获取资源k在任意时刻的可使用量Rk,k=1,…,K,K是资源种类数量;获取任务j执行时需要的时间即工期dj和占用资源k的数量rj,k,rj,k≤Rk,j=1,…,J,k=1,…,K;步骤2:计算任务的排序值rank;对于没有子任务的结束任务J+1:rankJ+1=0(1)其它任务的排序值rank采用如下递归公式进行计算:步骤3:系统状态初始化;步骤3.1:令任务0的完成时间f0=0,任务完成时间集F={f0,lf};其中:是项目的最晚完成时间,F中的元素从小到大排列;步骤3.2:对应于F中各完成时间资源的剩余可用量:步骤3.3:令就绪任务集令要调度的任务集UT={t1,t2,…,tJ};令要调度任务的父任务中还没有完成调度的任务集P(tj)=PRj-{t0},j=1,…,J;步骤3.4:把UT中的移到RT中;其中:fj表示任务j的完成时间,表示τ时刻资源k的剩余可用量;步骤4:从RT中取出关键任务,即任务就绪时间与rank之和最大的任务,不妨设为tj;所述任务就绪时间计算如下:步骤5:计算tj的完成时间:步骤6:如果fj在F中不存在,那么F=F∪{fj},增加fj时刻资源的剩余可用量:其中:fj″是fj的前一个时刻;步骤7:更新[fj-dj,fj)时段内资源的剩余可用量:步骤8:在所有中删除tj,把UT中的移到RT中;步骤9:如果RT不为空则转到步骤4,否则转到步骤10;步骤10:输出优化的调度方案,及项目执行时间进一步的,所述步骤5中计算tj的完成时间包括如下具体步骤:步骤5.1:令tj的开始时间为其就绪时间,即sj=rtj,令标记值flag=1;步骤5.2:在F中找出大于等于rtj的元素,并组成集合TF,即TF={f∈F|f≥rtj};步骤5.3:从TF中取出一个值最小的元素,不妨设为fj′;步骤5.4:如果flag=1并且fj′-sj≥dj,那么转到步骤5.7;否则转到步骤5.5;步骤5.5:如果flag=0,那么令sj=fj′,flag=1;步骤5.6:判断fj′时刻所有资源的剩余可用量是否满足tj的需求,如果不满足则令flag=0,转到步骤5.3;步骤5.7:令fj=sj+dj,计算结束。本专利技术的有益效果在于:1、相对传统的启发式调度方法,本专利技术设计采用的任务优先级会随着调度的进行而不断调整,能更好地反映当前未调度任务的紧急程度,因此通常其找到更好的调度方案。2、相对于传统的智能计算方法如遗传算法、蚁群算法、粒子群优化算法等,本专利技术具有算法简单,效率高,可以用于在线的实时调度优化。附图说明图1是本专利技术一种基于动态关键任务的启发式资源受限项目调度优化方法的流程示意图。图2是本专利技术实施例中任务间的时序关系图。具体实施方式下面结合图1、图2及实施例对本专利技术做进一步详细说明,但本专利技术并不仅限于以下的实施例。一个项目由编号为0至19的20个任务组成,任务间的时序关系如图2所示,其中任务0和任务19是人为增加的虚拟任务,即不占用项目工期也不占用资源,任务1到任务18执行时需要的时间和占用资源的数量如表1所示,在该项目中资源1在任意时刻的可使用量为12,资源2在任意时刻的可使用量为13。任务编号执行时间资源1的需求量资源2的需求量任务编号执行时间资源1的需求量资源2的需求量139810277285711835394312931428813645546914574637815368794216475885317845941本文档来自技高网...

【技术保护点】
1.一种基于动态关键任务的启发式资源受限项目调度优化方法,其特征在于:包括以下步骤:/n步骤1:形式化资源受限项目调度问题,获取调度优化所需的信息;/n获取项目任务集T={t

【技术特征摘要】
1.一种基于动态关键任务的启发式资源受限项目调度优化方法,其特征在于:包括以下步骤:
步骤1:形式化资源受限项目调度问题,获取调度优化所需的信息;
获取项目任务集T={t0,t1,…,tJ,tJ+1};其中tj表示任务j,即编号为j的任务,t0与tJ+1是人为增加的虚拟任务,即不占用项目工期也不占用资源,J是需要调度的实际任务数量;
获取任务间的时序关系,即任务j的父任务集PRj和子任务集SCj,任务j在其父任务j-∈PRj全部完工之前不能开始执行,j=0,1,…,J+1,t0没有父任务即tJ+1没有子任务即
获取资源k在任意时刻的可使用量Rk,k=1,…,K,K是资源种类数量;
获取任务j执行时需要的时间即工期dj和占用资源k的数量rj,k,rj,k≤Rk,j=1,…,J,k=1,…,K;
步骤2:计算任务的排序值rank;
对于没有子任务的结束任务J+1:
rankJ+1=0(1)
其它任务的排序值rank采用如下递归公式进行计算:



步骤3:系统状态初始化;
步骤3.1:令任务0的完成时间f0=0,任务完成时间集F={f0,lf};其中:是项目的最晚完成时间,F中的元素从小到大排列;
步骤3.2:对应于F中各完成时间资源的剩余可用量:k=1,…,K;
步骤3.3:令就绪任务集令要调度的任务集UT={t1,t2,…,tJ};令要调度任务的父任务中还没有完成调度的任务集P(tj)=PRj-{t0},j=1,…,J;
步骤3.4:把UT中的移到RT中;<...

【专利技术属性】
技术研发人员:李研彪纪仁全单晓杭叶必卿张利计时鸣谢毅
申请(专利权)人:浙江工业大学
类型:发明
国别省市:浙江;33

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

1