一种求解多目标资源受限项目调度的有效方法

文档序号:6625997阅读:273来源:国知局
一种求解多目标资源受限项目调度的有效方法
【专利摘要】本发明公开了一种求解多目标资源受限项目调度的有效方法,步骤包括:1)建立基于工期-成本优化的多目标资源受限项目调度数学模型;2)产生初始的可行调度序列;3)对调度序列进行评价;4)对调度序列进行更新;5)构造非支配解集操作;6)对外部归档集进行维护;7)更新迭代直至输出最优解集,即成。本发明的方法,每个智能体对应调度问题中的一个链表序列,对任务链表的调度序列和与其相对应的执行模式序列分别进行编码,采用串行方法进行解码操作,各链表序列之间通过竞争、交叉、自学习实现进化和更新;通过调整项目的调度计划,在满足时序约束和资源约束等的条件下,使得该控制周期内的工期和成本达到综合最优。
【专利说明】-种求解多目标资源受限项目调度的有效方法

【技术领域】
[0001] 本发明属于系统调度及控制【技术领域】,涉及一种求解多目标资源受限项目调度的 有效方法。

【背景技术】
[0002] 资源受限项目调度问题广泛应用于建筑工程、交通运输、软件开发、产品生产、电 力系统等调度领域,其难点是在满足时序约束和资源约束的前提下,按照某种规则合理安 排项目的任务,而在项目的执行过程中又包含有多个模式,要求在成本资源最优利用的同 时在多个相互冲突的目标之间进行权衡,找到各个目标之间的最佳平衡点,得到满足项目 要求的一组最优解集。因此综合考虑项目工期和项目成本的多目标资源受限项目调度的研 究,不仅具有重要的理论意义,而且是调度问题的最现实的选择,因此制定合理的调度计划 是目前研究的重点。
[0003] 多智能体进化算法作为智能优化算法的一个分支,它是从智能体系统的角度出 发,把进化算法中的个体当作一个有局部感知、竞争协作和自学习能力的智能体,通过智能 体自身以及智能体之间的相互作用达到优化全局的目的。由于多智能体的自主性、分布性、 协调性及自组织能力、学习能力和推理能力,使得它在解决实际问题时具有较强的可靠性 和较高的求解效率,但目前多智能体进化算法大多用于单目标方面。


【发明内容】

[0004] 本发明的目的是提供一种求解多目标资源受限项目调度的有效方法,解决了现有 调度方法在调度中工期与成本之间难以调节,不易取得最佳效益的问题。
[0005] 本发明所采用的技术方案是:一种求解多目标资源受限项目调度的有效方法,按 照以下步骤实施:
[0006] 步骤1、建立基于工期-成本优化的多目标资源受限项目调度数学模型
[0007] 假设项目中的工作数为J,每个工作j之间有着前后的时序约束,则有j = 1,2, ...,J,记%是紧接着工作j之前的集合,&是紧接着工作j之后的集合;设定最大迭 代次数H,迭代次数初值h = 1,工作1是最早开始的唯一一个工作,工作J是最晚完成的唯 一一个工作;项目中可更新资源种类数为K,不可更新资源种类数为N,k = 1,2, ... Κ,η = 1,2, . . . Ν,第k种可更新资源在各阶段的总供给量为

【权利要求】
1. 一种求解多目标资源受限项目调度的有效方法,其特点在于,按照以下步骤实施: 步骤1、建立基于工期-成本优化的多目标资源受限项目调度数学模型 假设项目中的工作数为J,每个工作j之间有着前后的时序约束,则有j = 1,2, ...,J, 记%是紧接着工作j之前的集合,&是紧接着工作j之后的集合;设定最大迭代次数H,迭 代次数初值h = 1,工作1是最早开始的唯一一个工作,工作J是最晚完成的唯一一个工作; 项目中可更新资源种类数为K,不可更新资源种类数为N,k = 1,2,. . . Κ,η = 1,2,. . . N,第 k种可更新资源在各阶段的总供给量为
,第η种不可更新资源总量为
;每个工作有多 种模式可供选择,工作j需选择%种模式之一进行操作,且在运行过程中不能中断或更改; 工作j在第m种模式下运行时,m = 1,2,... Μ」,第k种可更新资源的需求量为
,第η种 不可更新资源的需求量为
运行时间为djm,正在运行的工作所用的资源总数不能超过 资源的总供给量,以上各量值取整数, 据此创建模型如下:
(1) 式(1)为目标之一,此目标是最小化项目总工期的表达式,式中[EDT,LDT]为工作J的 最早和最晚完成时间段;t表示t阶段,\1T是工作j在第一种模式下T阶段的完成状态,若 完成则x jlT = 1,否则xjlT = 0 ;
(2) 式(2)为目标之二,此目标是最小化项目成本的表达式,式中%表示的是工作j的执 行模式数;是工作j在模式m下的花费;J是项目的所有工作数;
(3) 式(3)表示每个工作在一种模式下只能实现一次,式中xjmt表示的是工作j在第m种 模式t阶段时执行的状态;[E~ LDJ表示的是工作j的最早和最晚完成时间段;
(4) 式(4)表示项目的紧前约束关系,ximt和x>t分别是工作i和工作j在第m种模式t阶 段时的执行状态;是工作j在第m种模式下的执行时间;
(5) 式(5)是不等式约束,保证了各工作使用的可更新资源量不超过该阶段的总供给量,
为第k种可更新资源的需求量,
为第k种可更新资源在各阶段的总供给量,
为工 期上限;
(6) 式(6)是保证所有工作使用的不可更新资源量不能超过整个项目总的供给量,<,"为 第η种不可更新资源的需求量,K为第η种不可更新资源总量;
(7) 式(7)是模型中相关变量的取值范围,\mt表示工作j在第m种模式下的完成状态,若 完成则有Xjmt = 1,否则Xjmt = 〇 ; 步骤2、产生初始的可行调度序列 项目中的每个工作由两部分组成,即:
(8) 其中,
是第i个任务链表中满足时序约束的调度序列,是项目中各 个工作的执行顺序表枸=mi,m2,. . .,nv Mi是该任务链表中各任务所对应的模式序列,项 目中的模式序列与调度序列是一一对应的,在执行过程中随机生成S所对应的模式M,并保 证生成的模式数不大于该工作的总模式数, 由时序约束确定工作j的紧前工作集h和紧后工作集,用邻接矩阵G = 表 示工作间的紧前紧后关系,其中当i e P」时,gu = 1,否则gi」=〇 ; 初始化项目调度序列S和已执行工作序号Sl = 1,令Job为空向量,k = 1,检索存储 邻接矩阵的sh行,查找入度为1的工作集合,加入Job序列中,从Job中删除具有最高优先 权的一个工作序号u,并将该序号u赋给s h+1,同时邻接矩阵中元素
减1,令k =k+1,若k〈J,则继续计算,否则输出S ; 步骤3、对调度序列进行评价 根据项目生成的调度序列S和模式序列M,通过串行方案进行解码操作,令Tst表示项 目的开始时间,
分别表示经过 编码得到的第i个链表中相对应工作的开始时间和成本,判断工作在其执行模式下是否存 在资源冲突,找到该链表的最早完成时间ti;r = maxltij+djj和所对应的成本
; 步骤4、对调度序列进行更新 采用多智能体进化算法对调度序列进行更新,通过与其邻域中工作的竞争、交叉、自学 习三种操作方式完成更新; 步骤5、构造非支配解集操作; 步骤6、对外部归档集进行维护; 步骤7、更新迭代次数h = h+Ι,如果h < J,则继续重复步骤2到步骤6,否则输出 Pareto最优解集,即成。
2.根据权利要求1所述的求解多目标资源受限项目调度的有效方法,其特点在于,所 述的步骤4中,竞争、交叉、自学习三种操作方式具体过程是: 4. 1)竞争操作 假设第i个链表{SpMi}对应的工期-成本为{tpcj,其邻域内最优的工期-成本为
,则该链表继续存活在网格中,否则将其移除网格,并用产生的新 链表{S' i,M' J代替,h e (〇, 1)是占据概率,具体过程为: St印 1:初始化{S'J,将{SdMJ 赋给{S'J,令k=l; Step2 :随机产生u e (〇, 1),若u彡PQ,贝lj转Step4,否则令k = k+1 ; St印3 :若k < J,则转St印2,否则转St印6 ; St印4:在(1,J)之间随机选择一个不等于k的整数r,交换九和jk得到S' p若S', 满足紧前关系约束,转St印5,否则恢复,令k = k+1,转St印3 ; St印5 :随机改变某一工作j的模式,得到Μ' ρ检查该模式下调度序列是否满足资源 约束,若满足,转Step6,否则恢复; Step6 :更新链表,计算对应的工期-成本,得到新的序列; 4. 2)交叉操作 假设第i个链表序列以,MJ与其邻域内的链表进行交叉操作,1彡i彡Popsize,参与 交叉的是{SF,MF}和{Sm,Mm},交叉之后分别生成{S D,MD}和{Ss,Ms},在(1,J)之间随机产生 两个整数A和r 2,具体操作过程为: 4. 2. 1)对调度序列进行交叉 设交叉点为A,SD的前Γι个序列k = 1,2,. . .,Γι来源于SM,后J-ri个序列k = Γι+1,. . .,J来源于SF,且SD中已有的序列不再考虑,维持其余序列在SF中的相对位置不变, Ss的产生与此相反; 4. 2. 2)对模式序列进行交叉 设交叉点为r2, MD的前r2个序列k = 1,2,. . .,r2来源于Mm,后J-r2个序列k = r2+l,. . .,J来源于MF,Ms的产生与此相反; 4. 3)自学习操作 自学习操作用来实现局部搜索操作,增加种群的多样性,即在符合时序约束的限制下, 对链表中的某些工作进行位置的置换,模式的更改,根据概率PS1进行任务调度序列自学习 操作,根据概率P S2进行任务模式序列自学习操作,具体过程为: Stepl随机产生w e (〇, 1),若《 < PS1,转Step2,对链表中的调度序列进行自学习操 作;若w < PS2,转Step3,对链表中的模式序列进行自学习操作;否则,转Step4 ; Step2在(1,J)之间随机生成调度序列S的某一位置V,找到该位置的所有紧前节点在 调度序列中的最后位置^、以及所有紧后节点在调度序列中的最前位置u2,在最前位置和 最后位置之间随机挑选一个位置u,把v插入到u处,得到新调度序列S'; Step3随机改变任务j的模式,得到Μ',检验该模式下的工作是否符合资源的约束,若 符合,转St印4,否则重新生成一组模式; Step4更新链表序列,计算对应的工期-成本。
3.根据权利要求1所述的求解多目标资源受限项目调度的有效方法,其特点在于,所 述的步骤5中,采用以下方法来构成Pareto解集,具体步骤为: 5. 1)将所有个体序号初始化为rank (a) = 1 ; 5. 2)对任意个体a, b, :
若两者互不支配,个体a,b的序号不变; 5. 3)将序号为1的个体放入非支配解集中,形成当代的Pareto解集。
4.根据权利要求1所述的求解多目标资源受限项目调度的有效方法,其特点在于,所 述的步骤6中,利用对资源调度系统中相关信息的抽取、分析,结合多目标多智能体进化算 法,来实现调度序列的优化;由于目标为项目工期和项目成本同时最优,因此将每一次比较 工期和成本所获得的非劣可行调度解存储在外部归档集中,外部归档集除了对种群中的非 支配调度外的更新外,还结合了现有的拥挤距离法使得到的外部归档集更均匀,具体过程 是:把种群中的非支配可行调度的有功功率逐一放入外部归档集中,如果该可行调度的有 功功率被外部归档集中的可行调度的有功功率支配,则该可行调度的有功功率从归档集中 删除,否则该可行调度的有功功率加入归档集;如果归档集中的可行调度的有功功率个数 小于最大容量,则不进行删除操作,否则计算当前归档集中所有可行调度的有功功率的拥 挤距离,删除拥挤距离最小的那个可行调度的有功功率使归档集中的可行调度始终保持在 小于等于最大容量的数目上。
【文档编号】G06Q10/06GK104217293SQ201410449558
【公开日】2014年12月17日 申请日期:2014年9月4日 优先权日:2014年9月4日
【发明者】吴亚丽, 郭晓平, 薛芬 申请人:西安理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1