首页 理论教育基于Agent交互协议的资源调度方案

基于Agent交互协议的资源调度方案

【摘要】:无论是哪种类型的资源受限项目调度问题,都需要将调度方案转化为有效的调度计划以便安排活动任务。调度计划是满足一系列优先级限制和资源限制的前提下制定的连续方法,主要有并行调度产生方案和串行调度产生方案两种。对于小规模和强资源限制的项目,并行调度计算结果优于串行调度,而大规模和适当资源限制的项目更适合串行调度方案。图3.5广义优先关系串行调度产生方案的目标流程初始化值及参数。

无论是哪种类型的资源受限项目调度问题,都需要将调度方案转化为有效的调度计划以便安排活动任务。调度计划是满足一系列优先级限制和资源限制的前提下制定的连续方法,主要有并行调度产生方案和串行调度产生方案两种。这两种方法本质上均是将阶段性调度扩展为全过程调度。

并行调度产生方案是随着时间的推移而进行扩展的非延迟调度,而串行调度产生方案是随着任务的增加而进行扩展的活动调度。非延迟调度以紧凑排序、尽早使用资源为原则,任务在执行过程中允许被中断,因此,并行调度可能会错过最优解。对于小规模和强资源限制的项目,并行调度计算结果优于串行调度,而大规模和适当资源限制的项目更适合串行调度方案。下文中的施工运输现场基层调度问题更适合使用串行调度方案。

串行调度方案包含n=1,2,…,N个阶段(N为任务总数量),每个阶段只能调用一个任务,每次调用涉及两个集合,一个是所有已经调用的任务集合Sn,一个是未调用所用可行任务的决策集合Dn。在解码过程中,根据优先级编码选择集合Dn中优先级较高的任务进行调用,被选择任务的开始时间需要满足时序约束矩阵G和资源池Rkt中该调用时间段的资源约束。设Rkt为可更新资源k在t时刻的可用总量,那么Rkt=Rk(k=1,2,…,K),其中A(t)为t时刻正在执行的任务集合。若任务k为任务i的前置任务,那么任务i的最早开始时间取其前置任务的最晚完成时间,即T(i)=max{T(k1)+d(k1),T(k2)+d(k2),…},具体流程详如图3.5所示。

图3.5 广义优先关系串行调度产生方案的目标流程

(1)初始化值及参数。

(2)获得未调用任务Dn集合。

(3)根据混合算法的可能解获得优先级编码。

(4)选择Dn集合中具有最高优先级且满足时序约束矩阵G的任务i执行。(www.chuimin.cn)

(5)获得该任务i的持续时间di

(6)从集合Sn中获得任务i所有紧前任务中的最迟完成时间,并将该时间作为任务i最早可能开始时间ESi

(7)扫描资源池该时刻的剩余Rkt是否满足任务i执行的需求,满足则执行,不满足最早开始时间加1。

(8)计算任务i的完成时间,即fi=si+di

(9)将任务i从Dn集合中删除,同时更新Sn集合,使得Sn+1=Sn∪{i}。

(10)设置n=n+1,重复上述步骤。

其中,在判断时序约束的矩阵G前先判断时序类型。如果是开始—开始型和完成—开始类型,紧后任务的已知时间为开始时间,执行时间记为[Si,Si+di];如果是完成—完成型和开始—完成类型,紧后任务的已知时间为完成时间,执行时间记为[Fi,Fi+di]。

通过混合算法和串行调度产生方案,可以获得每个受时序约束和资源约束的任务的最早开始时间和完成时间。因此,可借此逆向反推计算关键路径,用每个阶段最晚完成的任务通过矩阵G找到其前置任务中最晚完成的任务。