使用分层自适应智能算法的多模资源受限项目调度方法技术

技术编号:24094480 阅读:54 留言:0更新日期:2020-05-09 09:37
本发明专利技术公开了一种使用分层自适应智能算法的多模资源受限项目调度方法,包括以下步骤:获取调度优化所需信息;判断是否存在可行方案;进行预处理;计算任务的层次值;初始化当代种群;改进当代种群计算个体适应度值;选择一组遗传操作对当代种群进行交叉变异操作形成新种群;改进新种群计算个体适应度值,更新遗传操作的适应度值;由当代和新种群形成新的当代种群;直到满足迭代终止条件输出调度优化结果。本发明专利技术采用分层、自适应、拓扑排序、插入式串行解码、FBI&D等技术方法,提高了算法的寻优能力和搜索效率,适用于大规模问题求解。

Multi-mode resource constrained project scheduling using hierarchical adaptive intelligent algorithm

【技术实现步骤摘要】
使用分层自适应智能算法的多模资源受限项目调度方法
本专利技术涉及计算机技术、信息技术和系统工程领域,具体涉及一种资源受限项目调度优化方法,更具体的说,尤其涉及一种使用分层自适应智能算法的多模资源受限项目调度方法。
技术介绍
资源受限项目调度问题RCPSP(Resource-ConstrainedProjectSchedulingProblem)是指在满足资源及任务时序关系约束下,如何科学合理地分配资源、安排任务执行顺序确定其开始和完成时间,以实现既定目标如:工期、费用等的最优化。RCPSP涉及诸多工业和生活领域,例如化工、半导体生产、物流、钢铁制造、工程管理、芯片制造、软件开发、铁路调度、港口调度以及飞机航线制定和大型运动会比赛安排等,具有很强的应用背景。RCPSP可进一步分为单模式资源受限项目调度问题SRCPSP和多模式资源受限项目调度问题MRCPSP,其中SRCPSP中每个任务只有一种执行模式,资源为可更新资源,任务的工期和资源需求量是确定的;而MRCPSP中任务有多种执行模式,资源包括可更新资源和不可更新资源,且任务的各种执行模式对应的工期和资源需求量均不相同。因此SRCPSP可以认为是MRCPSP的一个特例,相比于SRCPSP,MRCPSP是一个更复杂的问题,但其更具有实际意义。在现阶段求解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是可更新资源种类数量;获取不可更新资源l在整个项目工期中的可使用量Nl,l=1,…,L,L是不可更新资源种类数量;获取任务j在模式m下执行时需要的时间即工期dj,m和占用的可更新资源k的数量rj,m,k、不可更新资源l的数量nj,m,l;j=1,…,J,m=1,…,Mj,k=1,…,K,l=1,…,L,其中Mj是可供任务j选择采用的模式数量;步骤2:如果存在不可更新资源l满足或存在一个任务j和可更新资源k满足那么该问题不存在可行的调度方案,求解结束,否则转到步骤3;步骤3:进行预处理:对模式和资源进行冗余和无效检查,去除冗余模式、无效模式和冗余资源;步骤3.1:令模式标记值mflg=0、资源标记值rflg=0;如果存在rj,m,k>Rk或nj,m,l>Nl,那么对于任务j模式m是无效的,在任务j中去除模式m:令其中:k=1,…,K,l=1,…,L;令Mj=Mj-1;步骤3.2:如果mflg=0,那么令mflg=1,转到步骤3.3;否则转到步骤3.4;步骤3.3:如果存在任务j,模式m和m′满足:dj,m′≤dj,m,rj,m′,k≤rj,m,k,nj,m′,l≤nj,m,l,m′≠m,k=1,…,K,l=1,…,L;那么对于任务j模式m是冗余的,在任务j中去除模式m:令其中:k=1,…,K,l=1,…,L;令Mj=Mj-1,rflg=0;步骤3.4:如果rflg=0,那么令rflg=1,转到步骤3.5;否则转到步骤3.7;步骤3.5:如果可更新资源k满足:那么该可更新资源是冗余的,去除可更新资源k:令其中:j=1,…,J,令K=K-1,mflg=0;步骤3.6:如果不可更新资源l满足:那么该不可更新资源是冗余的,去除不可更新资源l:令其中:j=1,…,J,令L=L-1,mflg=0;步骤3.7:如果mflg=1∧rflg=1,那么转到步骤3.8,否则转到步骤3.2;步骤3.8:预处理结束;步骤4:计算任务的层次值对于没有父任务的开始任务0,其层次值为:lvl0=0(1)其它任务的层次值采用如下递归公式进行计算:步骤5:初始化当代种群;采用基于层次的个体随机生成方法生成N个不同的个体形成当代种群,N为种群规模,且为正偶数;所述个体采用2J位整数编码,其方法如下:ch={g1,…,gJ,gJ+1,…,g2J},基因gj是一个正整数,其中,{g1,…,gJ}是执行模式列表,gj表示任务j采用的模式,j=1,…,J,gj=1,…,Mj,例如:g1=2表示任务1采用模式2;{gJ+1,…,g2J}是调度顺序列表,gJ+1,…,g2J是1,…,J的一个排列,且满足任务的时序约束,即任何任务都不能排在其父任务的前面,gJ+j表示第j个被调度的任务,即任务gJ+j是第j个被调度,例如gJ+1=3,表示第1个调度的任务是3号任务;所述基于层次的个体随机生成方法包括如下步骤:步骤A1:生成执行模式列表:对每一个任务j随机选择一个其可以执行的模式,不妨设为m,则gj=m,j=1,…,J;步骤A2:生成调度顺序列表:除第一层即0层和最后一层外,对每个层次随机排列层内任务;然后根据任务层次值从小到大把每层内随机排列的任务连接起来,形成个体的调度顺序列表部分基因{gJ+1,…,g2J};步骤6:采用FBI&D方法改进初始当代种群中的所有个体并计算其适应度值;所述FBI&D方法包括如下步骤:步骤B1:令计次变量θ=1;对个体ch进行基于插入模式的串行个体解码获得所有任务的完成时间fj,j=1,…,J,及其适应度值fit;步骤B2:把任务0变成任务J+1,任务J+1变成任务0,颠倒任务间的时序关系,根据任务完成时间fj从大到小重新排列个体ch中的调度顺序列表,即把个体中的基因gJ+j设置为倒数第j个完成的任务,j=1,…,J,形成个体ch;步骤B本文档来自技高网
...

【技术保护点】
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是可更新资源种类数量;获取不可更新资源l在整个项目工期中的可使用量Nl,l=1,…,L,L是不可更新资源种类数量;
获取任务j在模式m下执行时需要的时间即工期dj,m和占用的可更新资源k的数量rj,m,k、不可更新资源l的数量nj,m,l;j=1,…,J,m=1,…,Mj,k=1,…,K,l=1,…,L,其中Mj是可供任务j选择采用的模式数量;
步骤2:如果存在不可更新资源l满足或存在一个任务j和可更新资源k满足那么该问题不存在可行的调度方案,求解结束,否则转到步骤3;
步骤3:进行预处理:对模式和资源进行冗余和无效检查,去除冗余模式、无效模式和冗余资源;
步骤3.1:令模式标记值mflg=0、资源标记值rflg=0;如果存在rj,m,k>Rk或nj,m,l>Nl,那么对于任务j模式m是无效的,在任务j中去除模式m:令其中:k=1,…,K,l=1,…,L;令Mj=Mj-1;
步骤3.2:如果mflg=0,那么令mflg=1,转到步骤3.3;否则转到步骤3.4;
步骤3.3:如果存在任务j,模式m和m′满足:dj,m′≤dj,m,rj,m′,k≤rj,m,k,nj,m′,l≤nj,m,l,m′≠m,k=1,…,K,l=1,…,L;那么对于任务j模式m是冗余的,在任务j中去除模式m:令其中:k=1,…,K,l=1,…,L;令Mj=Mj-1,rflg=0;
步骤3.4:如果rflg=0,那么令rflg=1,转到步骤3.5;否则转到步骤3.7;
步骤3.5:如果可更新资源k满足:那么该可更新资源是冗余的,去除可更新资源k:令其中:j=1,…,J,令K=K-1,mflg=0;
步骤3.6:如果不可更新资源l满足:那么该不可更新资源是冗余的,去除不可更新资源l:令其中:j=1,…,J,令L=L-1,mflg=0;
步骤3.7:如果mflg=1∧rflg=1,那么转到步骤3.8,否则转到步骤3.2;
步骤3.8:预处理结束;
步骤4:计算任务的层次值
对于没有父任务的开始任务0,其层次值为:
lvl0=0(1)
其它任务的层次值采用如下递归公式进行计算:



步骤5:初始化当代种群;
采用基于层次的个体随机生成方法生成N个不同的个体形成当代种群,N为种群规模,且为正偶数;
所述个体采用2J位整数编码,其方法如下:ch={g1,…,gJ,gJ+1,…,g2J},基因gj是一个正整数,其中,{g1,…,gJ}是执行模式列表,gj表示任务j采用的模式,j=1,…,J,gj=1,...,Mj;{gJ+1,…,g2J}是调度顺序列表,gJ+1,…,g2J是1,…,J的一个排列,且满足任务的时序约束,即任何任务都不能排在其父任务的前面,gJ+j表示第j个被调度的任务,即任务gJ+j是第j个被调度;
所述基于层次的个体随机生成方法包括如下步骤:
步骤A1:生成执行模式列表:对每一个任务j随机选择一个其可以执行的模式,不妨设为m,则gj=m,j=1,…,J;
步骤A2:生成调度顺序列表:除第一层即0层和最后一层外,对每个层次随机排列层内任务;然后根据任务层次值从小到大把每层内随机排列的任务连接起来,形成个体的调度顺序列表部分基因{gJ+1,…,g2J};
步骤6:采用FBI&D方法改进初始当代种群中的所有个体并计算其适应度值;
所述FBI&D方法包括如下步骤:
步骤B1:令计次变量θ=1;对个体ch进行基于插入模式的串行个体解码获得所有任务的完成时间fj,j=1,…,J,及其适应度值fit;
步骤B2:把任务0变成任务J+1,任务J+1变成任务0,颠倒任务间的时序关系,根据任务完成时间fj从大到小重新排列个体ch中的调度顺序列表,即把个体中的基因gJ+j设置为倒数第j个完成的任务,j=1,…,J,形成个体
步骤B3:令θ=θ+1,对个体进行基于插入模式的串行个体解码获得所有任务的完成时间及其适应度值
步骤B4:若那么令转到步骤B2,否则转到步骤B5;
步骤B5:如果θ为偶数那么输出个体ch=ch,否则输出个体其适应度值为fit,操作结束;
所述基于插入模式的串行个体解码包括如下步骤:
步骤C1:系统状态初始化:令任务0的完成时间f0=0、任务完成时间集F={f0,lf},lf表示项目的最晚完成时间:F中的元素从小到大排列;令对应于F中各完成时间可更新资源的剩余可用量:令循环控制变量δ=1;
步骤C2:取出任务j=gJ+δ,及其采用的模式m=gj;
步骤C3:计算任务j的完成时间

即:
步骤C3.1:令任务j的开始时间sj=rtj,令标记值flag=1;
步骤C3.2:在F中找出大于等于rtj的元素,并组成集合TF,即TF={f∈F|f≥rtj};
步骤C3.3:从TF中取出一个值最小的元素,不妨设为fj′;
步骤C3.4:如果flag=1并且fj′-sj≥dj,m,那么转到步骤C3.7;否则转到步骤C3.5;
步骤C3.5:如果flag=0,那么令sj=fj′,flag=1;
步骤C3.6:判断fj′时刻所有可更新资源的剩余可用量是否满足任务j的需求,即:如果有不满足则令flag=0;转到步骤C3.3;
步骤C3.7:令fj=sj+dj,m;
步骤C4:如果fj在F中不存在,则F=F∪{fj},增加fj时刻可更新资源的剩余可用量:其中:fj″是fj的前一个时刻;
步骤C5:更新[sj,fj)时段内可更新资源的剩余可用量:



步骤C6:令δ=δ+1,如果δ≤J,则转到步骤C2,否则转到步骤C7;
步骤C7:获得所有任务完成时间fj,j=1,…,J;如果个体为不可行个体,即存在一个不可更新资源l满足那么令个体的适应度值fit=lf+ms,否则令个体适应度值fit=ms,操作结束;
其中:表示任务j的就绪时间;表示τ时刻可更新资源k的剩余可用量;ms=fJ+1=max{fj|tj∈PRJ+1}为项目工期,即项目执行时间;
所述个体适应度值越小,个体越优;
步骤7:判断是否满足进化终止条件,如满足,则转到步骤13,否则转到步骤8;
所述终止条件为迭代到指定的代数TG或连续迭代GG代最优个体没有改进;
步骤8:基于值的轮赌法选择一组遗传操作;
一组遗传操作包括交叉操作...

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

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

1