[发明专利]基于多目标优化的主动‑反应式动态项目调度方法有效

专利信息
申请号: 201410307479.3 申请日: 2014-06-30
公开(公告)号: CN104077634B 公开(公告)日: 2017-02-08
发明(设计)人: 申晓宁;李爱民;张敏 申请(专利权)人: 南京信息工程大学
主分类号: G06Q10/04 分类号: G06Q10/04
代理公司: 南京汇盛专利商标事务所(普通合伙)32238 代理人: 张立荣
地址: 210044 江*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 多目标 优化 主动 反应式 动态 项目 调度 方法
【权利要求书】:

1.一种基于进化多目标优化的主动-反应式动态项目调度方法,包括如下步骤:

(1)初始化:读取项目初始时的输入信息,包括每个任务的工作量、技能要求、任务优先级图,每位软件工程师所掌握的技能、可在本项目中投入的最大工作量、正常月薪、加班月薪;给出优化目标的定义;将项目初始时刻视为初始调度点t0,将紧急动态事件的发生时刻视为重调度点tl(l=1,2,…);在tl(l=0,1,2,…)时刻所处的项目开发环境下,项目工期和成本分别定义为完成当前所有任务剩余的工作量所花费的时间开销和财力;本发明通过对不确定因素进行多次仿真,以比较项目成本或工期的实际值与预估值之间的差值,并将此定义为抗风险能力;稳定性仅在tl(l=1,2,…)有定义,本发明将其定义为软件工程师在新旧方案各个任务中投入的工作量的差别;所设定的约束条件包括任务技能约束,以及软件工程师不能超负荷工作的约束;

(2)在项目初始时刻t0,采用主动调度方式生成一个预测方案;根据项目初始时刻任务和软件工程师的属性,基于静态多目标进化算法,同时优化项目的以下目标:项目成本、工期以及抗风险能力,预先产生一组在多个目标间进行折中的调度方案,供项目管理者进行参考,并从中挑选出一个满意解;

(3)在项目开发过程的每个重调度点tl(l=1,2,…)时刻,采用由紧急事件驱动的基于动态多目标进化算法的反应式重调度方式;依据任务和软件工程师的当前属性,通过捕捉项目中不同类型紧急动态事件(软件工程师请假离开、软件工程师回归、新的紧急任务下达)的特征,并充分利用已有的历史调度方案信息,在多目标进化算法的群体初始化中引入与问题知识相关的启发式动态优化策略,使得算法快速地适应动态变化的环境,在较短的时间内产生一组在项目的成本、工期、抗风险能力及稳定性之间折中的新的调度方案,并由项目管理者从中挑选出一个满意解;该方案在项目中一直执行,直到下一个紧急事件发生,重新启动动态多目标进化算法进行调度。

2.根据权利要求1所述的调度方法,其中步骤(1)所述的tl(l=0,1,2,…)时刻的项目工期定义为:

f1(tl)=durationI=max{j|Tj_ava_set(tl)}(Tjend(tl))-min{j|TjT_ava_set(tl)}(Tjstart(tl))]]>

其中,和分别表示在tl时刻的调度方案中,任务Tj的开始时间和完成时间;T_ava_set(tl)表示tl时刻所有可进行调度的任务的集合;I表示初始景象,它将对不确定属性的估计值作为该属性的值计算项目工期;

步骤(1)所述的tl(l=0,1,2,…)时刻的项目成本定义为:

f2(tl)=costI=ΣttlΣeie_ava_set(tl)e_costit]]>

e_costit=einorm_salary·t·ΣjT_active_set(t)xij(tl)ΣjT_active_set(t)xij(tl)1einorm_salary·t·1+eiover_salary·t·(ΣjT_active_set(t)xij(tl)-1)1<ΣjT_active_set(t)xij(tl)eimaxded]]>

其中,t'表示项目处于开发阶段的某一个月,表示在t'期间付给软件工程师ei的薪酬;T_active_set(t')表示在t'期间正在进行开发的任务集合;xij(tl)表示在tl时刻的重调度方案中,ei在任务Tj中投入的工作量占全日制工作量的百分比;表示ei能够对整个项目投入的最大工作量占全日制工作量的百分比,表示ei能够加班工作;和分别表示ei的正常和加班月薪;e_ava_set(tl)表示在tl时刻所有参与该项目的软件工程师的集合;

步骤(1)所述的tl(l=0,1,2,…)时刻调度方案的抗风险能力定义为:

f3(tl)=robustness=1NΣq=1N(max(0,durationq(tl)-durationI(tl)durationI(tl)))2+λ1NΣq=1N(max(0,costq(tl)-costI(tl)costI(tl)))2]]>

抗风险能力采用基于景象的方法定义,将一个调度方案在不确定属性的多种采样值{θq|q=1,2,…,N}下进行仿真,以比较项目成本或工期的实际值与预估值之间的差值;其中,θq是不确定属性的第q个采样值,N是样本个数(在本发明中,设置N=30);durationq和costq分别是采样值θq下相应的项目工期和成本目标值;λ为权系数,在本发明中,令λ=1;

步骤(1)所述的tl(l=1,2,…)时刻的稳定性定义为:

f4(tl)=stability=Σ{i|eie_ava_set(tl-1)e_ava_set(tl)}Σ{j|TjT_ava_set(tl-1)T_ava_set(tl)}ωij|xij(tl)-xij(tl-1)|]]>

稳定性的公式只针对在tl和tl-1时刻均需调度的任务进行计算,权值ωij设置如下:

ωij=2ifxij(tl-1)=0andxij(tl)>01.5ifxij(tl-1)>0andxij(tl)=01else]]>

如果在tl-1时刻的方案中,软件工程师ei未被分配到任务Tj中,而在tl时刻的新方案中,安排ei去做Tj,则施加一个较大的惩罚因子ωij=2;如果在原方案中,ei被分配到任务Tj中,但在新方案中,未安排ei参加Tj,则施加一个中等的惩罚因子ωij=1.5;如果新旧方案都安排ei参加Tj,但工作量的投入不同,则施加一个小的惩罚因子ωij=1;

步骤(1)所述的任务技能约束指参与某项任务的所有软件工程师必须具备该任务要求的所有技能,即

TjT_ava_set(t;),s.t.reqjeie_ava_set(tl){skilli|xij(tt)>0}]]>

其中,reqj表示任务Tj所需求的技能的集合,skilli表示软件工程师ei所掌握的所有技能的集合;

步骤(1)所述的软件工程师不能超负荷工作的约束指在任一时期t'≥tl,一个软件工程师为正在进行开发的任务同时投入的工作量之和不超过他对整个项目投入的最大允许工作量,即,

eie_ava_set(tl),ttl,s.t.e_workit=ΣjT_active_set(t)xij(tl),]]>e_workiteimaxded]]>

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京信息工程大学,未经南京信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201410307479.3/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top