一种基于遗传文化基因算法的项目调度方法

文档序号:6635517阅读:1197来源:国知局
一种基于遗传文化基因算法的项目调度方法
【专利摘要】本发明公开了一种基于遗传文化基因算法的项目调度方法,(1)读取项目信息,包括任务和软件工程师的属性;(2)初始化算法参数;(3)产生初始父代种群,并进行局部搜索;(4)对父代种群执行选择、交叉和变异操作,构成子代种群;(5)对子代种群进行局部搜索;(6)合并父代和经局部搜索后的子代种群,从中选取适应度最优的一半个体构成下一代父代种群并进行迭代;(7)判断迭代代数是否达到最大值,若达到,则终止迭代,输出适应度最优的个体,该个体即为项目中每位软件工程师在每项任务中投入的工作量分配结果。本发明具有搜索能力强,生成的调度方案效率高的优点。
【专利说明】一种基于遗传文化基因算法的项目调度方法

【技术领域】
[0001] 本发明属于项目管理领域,特别涉及了一种基于遗传文化基因算法的项目调度方 法。

【背景技术】
[0002] 项目调度问题是指建立项目调度的模型,通过某种算法确定软件工程师在各项任 务中的工作量,即确定任务分配列表,以在满足各种约束条件的前提下,实现项目的工期最 短、成本最低等优化目标。项目调度问题研究得到的任务分配列表可以为项目管理者进行 实际任务分配提供重要参考。
[0003] 文化基因算法(memetic algorithm)是Pablo Moscato在1989年首次提出的。 文化基因算法模拟文化进化过程,用局部启发式搜索来模拟由大量专业知识支撑的变异过 程。文化基因算法将基于种群的全局搜索和基于个体的局部启发式搜索相结合,该机制使 得它的搜索效率在某些问题领域中比传统遗传算法提高几个数量级,可广泛应用于各类优 化问题中。遗传文化基因算法是一种将遗传算法作为全局搜索策略的文化基因算法,它的 基本步骤如下:将解空间中的向量编码为遗传空间中的基因串,常用的编码方式有二进制 编码、实数编码等;在解空间中随机生成n个个体构成初始种群;适应度计算,适应度反应 种群中个体的适应能力,通过适应度评价种群中个体的优劣;对初始种群中的每个个体进 行局部搜索;对种群实施遗传算子操作,主要有选择、交叉和变异三种算子组成,选择的目 的是从种群中选择优良的父代个体进入交配池,交叉的目的是对父代个体的染色体编码进 行重组以产生子代个体,变异的目的是提供基因突变,以产生新的染色体;对生成的子代种 群评价适应度并进行局部搜索;构成新一代的父代种群。
[0004]目前已有的项目调度方法存在的不足之处是:局部搜索能力较弱,易于陷入局部 最优,调度效率低下。


【发明内容】

[0005] 为了解决上述【背景技术】提出的技术问题,本发明旨在提供一种基于遗传文化基因 算法的项目调度方法,提高了局部搜索能力,避免陷入局部最优,实现快速高效的项目调 度。
[0006] 为了实现上述技术目的,本发明的技术方案为:
[0007] -种基于遗传文化基因算法的项目调度方法,包括以下步骤:
[0008] (1)读取项目的输入信息,定义优化目标,设定约束条件:
[0009] 项目的输入信息包括每个任务的工作量、技能要求和任务优先级图,每位软件工 程师所掌握的技能、可在本项目中投入的最大工作量、正常月薪和加班月薪;优化目标包括 项目工期和项目成本;约束条件包括任务技能约束和软件工程师未超负荷工作的约束;
[0010] (2)初始化遗传文化基因算法参数:
[0011] 设置遗传文化基因算法的迭代次数T_、种群规模size_、联赛选择规模St_、交 叉概率P。以及局部搜索的迭代次数g_,设项目中有M名软件工程师,N项任务,则变异概 率Pm为1AMN),设迭代次数计数器t = 0;
[0012] (3)产生初始父代种群,并进行局部搜索,得到新的父代种群:
[0013]随机生成size_个个体构成初始父代种群P'(t),每个个体表示一个工作量分配 矩阵:
[0014] X = (xjjOuxn
[0015] 其中,

【权利要求】
1. 一种基于遗传文化基因算法的项目调度方法,其特征在于,包括以下步骤: (1) 读取项目的输入信息,定义优化目标,设定约束条件: 项目的输入信息包括每个任务的工作量、技能要求和任务优先级图,每位软件工程师 所掌握的技能、可在本项目中投入的最大工作量、正常月薪和加班月薪;优化目标包括项目 工期和项目成本;约束条件包括任务技能约束和软件工程师未超负荷工作的约束; (2) 初始化遗传文化基因算法参数: 设置遗传文化基因算法的迭代次数Tmax、种群规模size_、联赛选择规模St_、交叉概 率P。以及局部搜索的迭代次数gmax,设项目中有M名软件工程师,N项任务,则变异概率Pm为 V(MN),设迭代次数计数器t = O ; (3) 产生初始父代种群,并进行局部搜索,得到新的父代种群: 随机生成size_个个体构成初始父代种群P'(t),每个个体表示一个工作量分配矩 阵: X - (Xij) MXN 其中,Xi e {0,e ·?/&,…i/M为第i个工程师ei在第j项任务Tj中投入的 工作量占全日制工作量的百分比,1 = 1,2,?,,」=1,2,?";6_<^为第1个工程师61 能够对本项目投入的最大工作量占全日制工作量的百分比;k为解的划分粒度;计算初始 种群中每个个体的目标值duration和cost,duration和cost分别表示项目工期和成本, 并进行约束处理;按下式计算每个个体的适应度: f (X) = ω1 · duration+ω 2 · cost 其中,ω i和ω 2表示目标duration和cost的相对重要性权重;对每个个体分别进行 局部搜索,得到新的父代种群P (t);从P (t)中确定出当前最优个体Xbest,即适应度值最小 的个体; (4) 生成子代种群: 对父代种群P (t)执行选择、交叉和变异操作,产生新的个体构成子代种群Q'(t);计算 Q'(t)中每个子代个体的目标值和适应度; (5) 对子代种群进行局部搜索: 在子代种群Q'(t)中每个个体Vp的邻域内,分别执行局部搜索操作得到新个体Zp,其 中,P = 1,2,…,Size_ ;将Zp与当前最优个体Xbest进行比较,如果Zp的适应度优于X best,即 f (Zp) <f (Xbest),则令Xbest = Zp;经局部搜索后产生的所有个体Zp构成新的子代种群Q(t); (6) 生成新一代父代种群: 合并父代种群P (t)和子代种群Q(t),从中选取适应度最优的一半个体构成下一代父 代种群 P(t+1);令 t = t+1 ; (7) 终止准则判断: 若t > Tmax,则终止迭代,输出适应度最优个体Xbest,该个体即为项目中每位软件工程师 在每项任务中投入的工作量分配结果;否则,转至步骤(4)。
2. 根据权利要求1所述一种基于遗传文化基因算法的项目调度方法,其特征在于: 步骤(1)中所述项目工期表示完成项目所有任务所花费的时间开销,它定义为:
其中,TT和7Trf分别表示任务L的开始时间和完成时间,且t 0; 步骤(1)中所述项目成本表示完成项目所有任务所花费的财力,它定义为:
其中,t'表示项目处于开发阶段的某一个月;e_c〇<表示在t'期间付给软件工程师 ei的薪酬;T_active_set(t')表示在t'期间正在进行开发的任务集合;Xij表示ei在任务 Tj中投入的工作量占全日制工作量的百分比;表示ei能够对整个项目投入的最大工 作量占全日制工作量的百分比,当>1时,表示ei能够加班工作和《胃--"分 别表示ei的正常月薪和加班月薪; 步骤(1)所述任务技能约束指参与某项任务的所有软件工程师必须具备该任务要求 的所有技能,即
其中,req^表示任务L所需求的技能的集合;Skilli表示软件工程师ei所掌握的所有 技能的集合; 步骤(1)所述软件工程师不能超负荷工作的约束指在任一时期t' >0, 一个软件工程 师为正在进行开发的任务同时投入的工作量之和不超过他对整个项目投入的最大允许工 作量,即
其中,e_.HW式'表示第i个软件工程师ej^t'内正在进行开发的任务投入的工作量之 和。
3. 根据权利要求1所述一种基于遗传文化基因算法的项目调度方法,其特征在于:在 步骤⑵中,交叉概率P。为〇. 9。
4. 根据权利要求1所述一种基于遗传文化基因算法的项目调度方法,其特征在于:步 骤(3)和步骤(5)所述局部搜索方法的具体步骤如下: (a) 获取初始个体Vp,令代数计算器g = 1,mark = 0 ; (b) 如果mark的值为0,则对个体Vp执行"随机替代"操作,生成新个体Zp ;所述 "随机替代"操作:从个体Vp的工作量分配矩阵中随机选择一个元素 vpip然后从集合 {0,· 1作,…,中随机挑选一个与Vpij当前取值不同的值替代Vpij ;如果mark的 值不为0,则对个体Vp执行"交换"操作,生成新个体Zp ;所述"交换"操作:从个体Vp的工 作量分配矩阵中随机选取两行或两列进行交换,然后对生成的新个体Zp执行启发式算子操 作,即如果软件工程师 ei不具备任务L要求的任一技能,则将ei对L分配的工作量设为 〇 ; (C)如果新个体Zp的适应度值优于个体Vp,即f (Zp) < f (Vp),则令Vp = Zp,否则,令 mark = mark-1 ; (d)如果g = gmax,则令Zp = Vp,输出Zp,Zp即为对原个体Vp进行局部搜索操作后得到 的新个体;否则,令g = g+Ι,转至步骤(b)。
5.根据权利要求1所述一种基于遗传文化基因算法的项目调度方法,其特征在于:步 骤(4)中所述选择操作是联赛选择,依据联赛选择规模Stour,从父代种群P (t)中随机选取 St_个不同的个体,从中挑选适应度最优的一个个体加入交配池,此过程循环size_次;将 交配池中的个体随机配对为size_/2对;所述交叉操作是依据交叉概率P。,确定交配池中 的每对个体是否需要进行交叉操作;如果某对个体需要进行交叉操作,则对这两个交配个 体工作量分配矩阵中的每一行或列,以〇. 5的概率进行交换;所述变异操作是依据变异概 率Pm,将个体矩阵中待变异的元素替换为从集合·?〇^_Μ _々作}中随机挑选的 另一个值。
【文档编号】G06N3/12GK104392317SQ201410681051
【公开日】2015年3月4日 申请日期:2014年11月24日 优先权日:2014年11月24日
【发明者】申晓宁, 陈逸菲, 张敏, 赵丽玲, 林屹, 王玉芳 申请人:南京信息工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1