CN103679404B - 一种多项目资源平衡优化方法 - Google Patents
一种多项目资源平衡优化方法 Download PDFInfo
- Publication number
- CN103679404B CN103679404B CN201410003565.5A CN201410003565A CN103679404B CN 103679404 B CN103679404 B CN 103679404B CN 201410003565 A CN201410003565 A CN 201410003565A CN 103679404 B CN103679404 B CN 103679404B
- Authority
- CN
- China
- Prior art keywords
- resource
- project
- reservation
- date
- future period
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公布了一种多项目资源平衡优化方法,其特征在于:步骤如下:1)、基于WBS进行共享资源预约及审批;2)、其次各个单项目再基于审批通过的共享资源配额及自有资源限量,采用基于优先规则、并行调度的启发式算法对本项目进行平衡优化。本发明采用简单启发式算法,并且采用并行调度,可以在一定程度上缓解作业优先规则的选取对平衡结果的影响。
Description
技术领域
本发明涉及一种采用两级决策,并基于优先规则的并行调度启发式算法的多项目资源平衡优化方法。
背景技术
随着航天型号任务的增加,项目群研发取代了单一项目研发。在项目群研发中,资源利用冲突严重,而当前航天型号任务研发中,计划编制执行还不能充分统筹资源,研发人员疲于奔命,导致项目延期,质量难以保证。因此在有限资源条件下,对多项目计划进行资源优化调度,提高利用率,避免冲突,保证型号研制任务的按期完成是航天型号研发项目管理的重要课题。
目前,常用的企业级项目管理软件主要有Primevera的P3和P6。其资源平衡技术方案:在平衡时,可以设定需要考虑的其他项目的优先级。在平衡优化计算资源可用量时,从资源限量中扣除优先级高于设定值的项目的资源分配量。即优先满足优先级高的项目对共享资源的需求。在上述基础上,采用基于优先规则、串行调度的启发式算法进行平衡优化。
P3、P6中的资源平衡主要是在平衡优化时才考虑与其他项目中的共享资源冲突问题。如果此时优先级高的项目已经不合理地占用了过多的共享资源,则会对优先级低的项目的平衡优化造成较大影响。此外,各个项目必须按照优先级的高低依次进行平衡优化,否则优先级别低的项目的平衡优化效果必然会被优先级高的项目所破坏。此外,其优化算法采用串行调度,对作业优先规则选择的合理性有较大的依赖。
航天型号项目大多资源紧张,项目间对共享资源需求冲突严重。为最大化综合效益,应尽可能保证全部或者大多数项目的资源需求,实在无法满足时才优先保证级别高的项目的资源需求。此外,航天型号项目繁多,如采用串行方式进行平衡优化,必然会花费较长的时间。而且,航天型号项目的复杂性,对于作业优先规则的选择需要对项目及优化方法都有较深入理解,需降低优先规则选择对平衡结果的影响。
发明内容
为解决背景技术中的问题,本发明提供了一种多项目资源平衡优化方法,从而达到协调资源冲突,使项目计划更具可行性的目的,并支持大规模的企业级应用。
本发明的技术方案是:
一种多项目资源平衡优化方法,其特征在于:步骤如下:
1)、基于WBS进行共享资源预约及审批;
2)、其次各个单项目再基于审批通过的共享资源配额及自有资源限量,采用基于优先规则、并行调度的启发式算法对本项目进行平衡优化。
作为一种改进,所述步骤1)中共享资源预约的范围是:仅在WBS节点进行预约,并且只针对共享资源进行预约。
作为一种改进,所述步骤1)中预约的方式:预约及审批都基于共享资源未来周期的预约可用量进行;预约时预约可用量仅作为参考;审批时预约可用量则作为强制性约束,预约可用量必须大于等于0时才能审批通过。
作为一种改进,步骤2)中采用了简单启发式算法,根据项目的不同情况,选择合适的优先规则,并且求解算法中增加了并行调度。
作为一种改进,步骤2)中采用了准预处理集合Et,减少了重新计算Dt的时间;算法不改变资源分配的数量,仅在其总浮时范围内逐个周期进行调整。
由于采用了上述技术方案,与现有技术相比较,本发明通过基于WBS的共享资源预约与反馈,各个项目以预约通过的资源量作为分配限量具有如下优点:
1)可以消除共享资源在项目间的冲突和超额分配的情况。
2)各个优先级的项目可以并行进行平衡优化,彼此不互相影响。
3)由资源经理在项目间充分的沟通、调整,相比单纯依靠项目优先级能取得更好的综合效益。
4)由于WBS节点、共享资源相比所有作业节点、整个资源库的数量很小,由人工进行调配具有可行性。
本发明采用简单启发式算法,并且采用并行调度,可以在一定程度上缓解作业优先规则的选取对平衡结果的影响。
附图说明
图1为本发明一种实施例的程序流程图。
图2为本发明的资源平衡算法流程图。
图3为本发明平衡过程中作业在各作业集间的转移图。
具体实施方式
实施例
多项目资源平衡可视为一个两级决策优化问题。先由企业将资源分配到各个项目中,项目组再将资源分配到本项目具体的作业中。因此本发明采用两级决策来进行多项目资源平衡:
一、基于WBS进行共享资源预约及审批
在组织范围内,基于各项目的工作分解结构,协调共享资源各个未来周期在各项目间的配额,避免共享资源在WBS上的超额分配及资源冲突。
基于WBS的资源预约和反馈流程,如图1所示:
1)、由项目经理基于项目WBS发起共享资源预约请求;
1.1)、资源预约可预约具体资源,或某一角色的资源;
1.2)、资源预约基于各个未来周期的资源预约可用量进行。首先根据资源日期获取资源限量作为资源预约可用量的初始值;当存在审批通过的同一资源在同一周期的预约请求时,则以资源限量减去所有已审批通过的预约量之和作为资源预约可用量。资源预约可用量即时更新,作为预约时的参考,本次预约量应尽量控制在其范围内,但是允许超过该值。
2)、由资源经理对各单项目的共享资源预约请求统一进行审批处理;
2.1)、资源经理在审批时,如不能满足全部的资源请求,则优先满足优先级高的项目的预约请求;审批通过可满足或调配后可满足的预约请求;驳回满足不了的预约请求,由项目经理对进度计划进行修改后重新进行预约;
2.2)、步骤同1.2),资源预约审批基于各个未来周期的资源预约可用量进行。资源经理应以资源预约可用量大于等于0为目标进行调配,如果该值为负值,则需要增加
3)对于被驳回的预约申请,由项目经理对项目的进度计划、资源计划进行调整后,必要时重新发起预约申请。
4)由项目经理基于预约的共享资源配额和自有资源进行资源平衡。如存在无法平衡的作业,由项目经理根据需要发起补充的预约申请,并返回步骤2。在项目所有补充预约资源得到满足时,再次进行平衡优化,如此反复直至所有的项目都达到平衡或者得到一个可以接受的结果。
二、对各项目进行资源平衡
2.1)、项目作业资源分配
将预约的共享资源、项目自有资源作为项目资源,基于项目资源进行作业资源分配。
2.2)、建立单项目资源平衡优化数学模型
目标函数:minFTN,FTN为项目最后一道作业的完工日期;
约束条件:
a)、满足作业的前后置关系:
FTi+dj≤FTj,j=2,3,…,N
式中:作业i为作业j的前序作业;FTi、FTj分别表示作业i、j的完工日期;dj表示作业j的工期。
b)、各个未来周期项目所有作业对某一资源的需求总量不能超过该资源在选定时段的分配限量:
式中:表示未来周期t作业i对资源k的需求量;表示未来周期t资源k的分配限量;
c)、作业的执行不可中断;
2.3)、资源平衡优化模型求解
对上述模型,采用基于优先规则、并行调度的启发式算法对模型进行求解:
步骤1:进行进度计算,并提取进度计划;
步骤2:设定优先规则。
选择不同的优先规则,即使在相同的调度算法下也会得到不同的优化效果;同时选择相同的优先规则,对不同的项目优化效果也可能不同。因此在平衡优化时,项目管理者要充分考虑各种因素,选择合适的优化规则。
可选的优先规则有:a)、最小总浮时优先;b)、最小自由浮时优先;c)、最小最早开始日期优先;d)、最小最晚开始日期优先;e)、最小最晚完成日期优先;d)、作业工期较长或较短优先;
步骤3:平衡参数配置:
保持进度最早和最晚日期:在平衡过程中保证原先由进度计算得出的作业的最早开始/完成和最晚开始/完成日期的值不发生改变,只改变作业计划开始/完成日期值,仅在总浮时内进行平衡:对作业时间只可延迟到作业的最晚完成日期,选中该选项会自动选中“保持进度最早和最晚日期”。
平衡后浮时不小于X:可以手动输入平衡后作业保留的最小总浮时,即在不完全消耗总浮时前提下进行资源平衡。
资源超额分配最大百分比:允许一定比例的超额分配,假定项目可以提供替代资源。
步骤4:采用并行调度简单启发式算法进行资源平衡
1)、集合定义:
a)、已完成作业集合Ft:在未来周期t已经调度完成的作业;
b)、处理中作业集合At:在未来周期t正在进行、还未完工的作业;
c)、预处理作业集合Dt:在未来周期t其前序作业已经调度完成的作业;
d)、直接后序未处理作业的集合Et:在未来周期t已经完成的作业的直接后序未处理作业;
e)、剩余作业集合Ot:在未来周期t剩余的所有作业;
f)、无法平衡作业集合U:无法平衡的作业;
2)、基于优先规则、并行调度的简单启发式算法
算法计算流程参见图2,计算过程中作业在各作业集间的转移见图3。
2.1)主调度算法:
步骤1:初始化
t=1,DTt=项目开工期,At=φ,Ft=φ,Et=φ
Dt={j|STj=DTt,j=1,2,…,J},
Ot为参加调度的所有作业; 为资源k在未来周期t的可用量,y为设置的资源超额分配最大百分比;
步骤2:调用Dt处理方法;
步骤3:判断Et,Ot是否为空,若都为空则结束;否则转步骤4;
步骤4:t=t+1,找出At中完工最早的作业集合temp,并使DTt=FTj,j∈temp;
从集合At中移除temp中的所有作业,即At=At-1-temp;
并将temp中的作业加入完成作业集Ft中,即Ft=Ft-1∪temp;
修改集合temp中各作业的紧后作业的最早可能开始时间和浮时;
将各紧后作业加入准预处理作业集合Et,即Et=Et-1∪{temp的紧后作业};
重新计算该阶段的资源可用量
●不可更新资源:
●可更新资源:
步骤5:重新计算Dt,其中Pj为作业j的紧前作业集合;
步骤6:判断Dt是否为空,为空转步骤4;否则转步骤7;
步骤7:从Ot中移除所有Dt中的作业,然后转步骤2。
2.2)Dt处理方法、
步骤1:从预处理作业集Dt中基于所选的优先规则确定一条优先级最高的作业,记为Jp,同时将该作业从Dt中移除:Dt=Dt-Jp;
步骤2:判断作业Jp所需资源是否满足:满足转步骤3,不满足转步骤4;
步骤3:作业Jp在未来周期t无法安排,需根据平衡参数设置,选择不同的判断条件:
a)如设置了保持进度最早和最晚日期:
b)如设置了平衡后总浮时不大于X:
作业Jp消耗的总浮时:
判断条件为:并且
若满足上述条件将其放回作业集Et,否则该作业视为无法平衡,将其放入U。然后转步骤5;
步骤4:安排作业Jp,即将作业Jp加入正在处理作业集At,然后转步骤5;
重新计算现阶段资源可用量转步骤5。
步骤5:判断Dt是否为空,为空则结束;否则转步骤1。
2.3)对U中的作业采取相应调整后,重新执行平衡优化,直至所有作业都得到平衡或达成可接受的结果。
本发明不局限于上述的优选实施方式,任何人应该得知在本发明的启示下做出的变化,凡是与本发明具有相同或者相近似的技术方案,均属于本发明的保护范围。
Claims (1)
1.一种多项目资源平衡优化方法,其特征在于:步骤如下:
1)、基于WBS进行共享资源预约及审批;
2)、其次各个单项目再基于审批通过的共享资源配额及自有资源限量,采用基于优先规则、并行调度的启发式算法对本项目进行平衡优化;
所述步骤1)中共享资源预约的范围是:仅在WBS节点进行预约,并且只针对共享资源进行预约;
所述步骤1)中预约的方式:预约及审批都基于共享资源未来周期的预约可用量进行,首先根据资源日期获取资源限量作为资源预约可用量的初始值;当存在审批通过的同一资源在同一周期的预约请求时,则以资源限量减去所有已审批通过的预约量之和作为资源预约可用量;资源预约可用量即时更新;预约时预约可用量仅作为参考;审批时预约可用量则作为强制性约束,预约可用量必须大于等于0时才能审批通过;
步骤2)中采用了简单启发式算法,根据项目的不同情况,选择合适的优先规则,并且求解算法中增加了并行调度;
步骤2)中采用了准预处理集合Et,减少了重新计算Dt的时间;算法不改变资源分配的数量,仅在其总浮时范围内逐个周期进行调整;
步骤2)具体步骤如下:
2.1)项目作业资源分配:将预约的共享资源、项目自有资源作为项目资源,基于项目资源进行作业资源分配;
2.2)建立单项目资源平衡优化数学模型:
目标函数:minFTN,FTN为项目最后一道作业的完工日期;
约束条件:
a)、满足作业的前后置关系:
FTi+dj≤FTj,j=2,3,…,N
式中:作业i为作业j的前序作业;FTi、FTj分别表示作业i、j的完工日期;dj表示作业j的工期;
b)、各个未来周期项目所有作业对某一资源的需求总量不能超过该资源在选定时段的分配限量:
<mrow>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>N</mi>
</munderover>
<msubsup>
<mi>r</mi>
<mrow>
<mi>t</mi>
<mi>i</mi>
</mrow>
<mi>k</mi>
</msubsup>
<mo>&le;</mo>
<msubsup>
<mi>R</mi>
<mi>t</mi>
<mi>k</mi>
</msubsup>
</mrow>
式中,表示未来周期t作业i对资源k的需求量;表示未来周期t资源k的分配限量;
c)、作业的执行不可中断;
2.3)、资源平衡优化模型求解
对上述模型,采用基于优先规则、并行调度的启发式算法对模型进行求解:
2.3.1进行进度计算,并提取进度计划;
2.3.2设定优先规则;优先规则包括:a)、最小总浮时优先;b)、最小自由浮时优先;c)、最小最早开始日期优先;d)、最小最晚开始日期优先;e)、最小最晚完成日期优先;d)、作业工期较长或较短优先;
2.3.3平衡参数配置:保持进度最早和最晚日期:在平衡过程中保证原先由进度计算得出的作业的最早开始/完成日期的值和最晚开始/完成日期的值不发生改变,只改变作业计划开始/完成日期值,仅在总浮时内进行平衡;对作业时间只可延迟到作业的最晚完成日期,选中该选项会自动选中“保持进度最早和最晚日期”;
平衡后浮时不小于X:手动输入平衡后作业保留的最小总浮时,即在不完全消耗总浮时前提下进行资源平衡;
资源超额分配最大百分比:允许一定比例的超额分配,假定项目提供替代资源;
2.3.4采用并行调度简单启发算法进行资源平衡:
1)、集合定义;
a)、已完成作业集合Ft:在未来周期t已经调度完成的作业;
b)、处理中作业集合At:在未来周期t正在进行、还未完工的作业;
c)、预处理作业集合Dt:在未来周期t其前序作业已经调度完成的作业;
d)、直接后序未处理作业的集合Et:在未来周期t已经完成的作业的直接后序未处理作业;
e)、剩余作业集合Ot:在未来周期t剩余的所有作业;
f)、无法平衡作业集合U:无法平衡的作业;
2)、基于优先规则、并行调度的简单启发式算法
2.1)主调度算法:
2.1.1)初始化
t=1,DTt=项目开工期,
Dt={j|ST j=DT t,j=1,2,…,J},
剩余作业集合Ot在初始化时即为参加调度的所有作业; 为资源k在未来周期t的可用量,y为设置的资源超额分配最大百分比;
2.1.2:调用Dt处理方法;
2.1.3:判断Et,Ot是否为空,若都为空则结束;否则转步骤2.1.4;
2.1.4:t=t+1,找出At中完工最早的作业集合temp,并使
DTt=FTj,j∈temp;
从集合At中移除temp中的所有作业,即At=At-1-temp;
并将temp中的作业加入完成作业集Ft中,即Ft=Ft-1∪temp;
修改集合temp中各作业的紧后作业的最早可能开始时间和浮时;
将各紧后作业加入准预处理作业集合Et,即Et=Et-1∪{temp的紧后作业};
重新计算该阶段的资源可用量
不可更新资源:
可更新资源:
2.1.5:重新计算Dt,其中Pj为作业j的紧前作业集合;
2.1.6:判断Dt是否为空,为空转步骤2.1.4;否则转步骤2.1.7;
2.1.7:从Ot中移除所有Dt中的作业,然后转步骤2.1.2;
2.2)Dt处理方法:
2.2.1:从预处理作业集Dt中基于所选的优选规则确定一条优先级最高的作业,记为Jp,同时将该作业从Dt中移除:Dt=Dt-Jp;
2.2.2:判断作业Jp所需资源是否满足:满足转步骤2.2.3,不满足转步骤2.2.4;
2.2.3:作业Jp在未来周期t无法安排,需根据平衡参数设置,选择不同的判断条件;
a)如设置了保持进度最早和最晚日期:
b)如设置了平衡后总浮时不大于X:
作业Jp消耗的总浮时:
判断条件为:并且
若满足上述条件将其放回作业集Et,否则该作业视为无法平衡,将其放入U,然后转入步骤2.2.5;
2.2.4:安排作业Jp,即将作业Jp加入正在处理作业集At,然后转步骤2.2.5;重新计算现阶段资源可用量 转步骤2.2.5;
2.2.5:判断Dt是否为空,为空则结束;否则转步骤2.2.1;
2.3)对U中的作业采取相应的调整后,重新执行平衡优化,直至所有作业都得到平衡或达成可接受的结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410003565.5A CN103679404B (zh) | 2014-01-03 | 2014-01-03 | 一种多项目资源平衡优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410003565.5A CN103679404B (zh) | 2014-01-03 | 2014-01-03 | 一种多项目资源平衡优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103679404A CN103679404A (zh) | 2014-03-26 |
CN103679404B true CN103679404B (zh) | 2017-12-05 |
Family
ID=50316881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410003565.5A Active CN103679404B (zh) | 2014-01-03 | 2014-01-03 | 一种多项目资源平衡优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103679404B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10623481B2 (en) * | 2015-04-27 | 2020-04-14 | Microsoft Technology Licensing, Llc | Balancing resources in distributed computing environments |
CN108881469B (zh) * | 2018-07-06 | 2021-07-02 | 上海财经大学 | 基于预约模式下的资源分配系统 |
CN112506634B (zh) * | 2020-12-08 | 2022-07-12 | 天津津航计算技术研究所 | 一种基于预约机制的公平性作业调度方法 |
-
2014
- 2014-01-03 CN CN201410003565.5A patent/CN103679404B/zh active Active
Non-Patent Citations (1)
Title |
---|
《航空多型号项目计划与协调控制技术研究》;王永超;《中国优秀硕士论文电子期刊网 工程科技II辑》;20070630;正文第C031-169页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103679404A (zh) | 2014-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sharma et al. | Performance analysis of dispatching rules in a stochastic dynamic job shop manufacturing system with sequence-dependent setup times: Simulation approach | |
CN104102544B (zh) | 混合云环境下多QoS约束的并行任务调度成本优化方法 | |
CN104217320B (zh) | 仓库库存流转的处理系统和处理方法 | |
CN106991006B (zh) | 支持依赖和时间平衡的云工作流任务聚类方法 | |
CN103838621B (zh) | 用于调度例行作业的方法和系统、调度节点 | |
CN103729246B (zh) | 一种任务调度方法和装置 | |
CN110362407A (zh) | 计算资源调度方法及装置 | |
CN103838627B (zh) | 一种基于工作流吞吐量最大化的工作流调度方法 | |
Kim et al. | Cross-trained staffing levels with heterogeneous learning/forgetting | |
CN104239154B (zh) | 一种Hadoop集群中的作业调度方法和作业调度器 | |
CN106250218A (zh) | 用于使用滑动时间窗口调度任务的系统和方法 | |
CN104023042B (zh) | 云平台资源调度方法 | |
CN105974891B (zh) | 一种基于动态看板的模具生产过程自适应控制方法 | |
CN109582448A (zh) | 一种面向关键度和时效性的边缘计算任务调度方法 | |
CN103679404B (zh) | 一种多项目资源平衡优化方法 | |
CN108171443A (zh) | 考虑指令上注的多星应急任务规划方法及装置 | |
CN109615188A (zh) | 一种预分配结合匈牙利算法的多机器人任务分配方法 | |
CN109298920A (zh) | 基于准划分思想的混合关键任务调度方法 | |
CN106897136A (zh) | 一种任务调度方法及装置 | |
CN101533490A (zh) | Job-shop离散型生产的车间排产方法 | |
CN106934537A (zh) | 基于反向工作流调度的子期限获取优化方法 | |
CN107193655A (zh) | 一种基于效用函数的面向大数据处理的公平资源调度方法 | |
CN106934539A (zh) | 一种带有期限和费用约束的工作流调度方法 | |
CN115033357A (zh) | 基于动态资源选择策略的微服务工作流调度方法及装置 | |
CN110196773B (zh) | 统一调度计算资源的多时间尺度安全校核系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100094 No. 28, Yongfeng Road, Beijing, Haidian District Patentee after: Beijing Shenzhou Aerospace Software Technology Co.,Ltd. Address before: 100094 No. 28, Yongfeng Road, Beijing, Haidian District Patentee before: BEIJING SHENZHOU AEROSPACE SOFTWARE TECHNOLOGY Co.,Ltd. |