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

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

Info

Publication number
CN104392317B
CN104392317B CN201410681051.5A CN201410681051A CN104392317B CN 104392317 B CN104392317 B CN 104392317B CN 201410681051 A CN201410681051 A CN 201410681051A CN 104392317 B CN104392317 B CN 104392317B
Authority
CN
China
Prior art keywords
mrow
individual
project
msup
workload
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
Application number
CN201410681051.5A
Other languages
English (en)
Other versions
CN104392317A (zh
Inventor
申晓宁
陈逸菲
张敏
赵丽玲
林屹
王玉芳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Gaohang Intellectual Property Operation Co ltd
Guangzhou Fengshen Network Technology Co ltd
Original Assignee
Nanjing University of Information Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing University of Information Science and Technology filed Critical Nanjing University of Information Science and Technology
Priority to CN201410681051.5A priority Critical patent/CN104392317B/zh
Publication of CN104392317A publication Critical patent/CN104392317A/zh
Application granted granted Critical
Publication of CN104392317B publication Critical patent/CN104392317B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Biology (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Data Mining & Analysis (AREA)
  • Physiology (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Genetics & Genomics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

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

Description

一种基于遗传文化基因算法的项目调度方法
技术领域
本发明属于项目管理领域,特别涉及了一种基于遗传文化基因算法的项目调度方法。
背景技术
项目调度问题是指建立项目调度的模型,通过某种算法确定软件工程师在各项任务中的工作量,即确定任务分配列表,以在满足各种约束条件的前提下,实现项目的工期最短、成本最低等优化目标。项目调度问题研究得到的任务分配列表可以为项目管理者进行实际任务分配提供重要参考。
文化基因算法(memetic algorithm)是Pablo Moscato在1989年首次提出的。文化基因算法模拟文化进化过程,用局部启发式搜索来模拟由大量专业知识支撑的变异过程。文化基因算法将基于种群的全局搜索和基于个体的局部启发式搜索相结合,该机制使得它的搜索效率在某些问题领域中比传统遗传算法提高几个数量级,可广泛应用于各类优化问题中。遗传文化基因算法是一种将遗传算法作为全局搜索策略的文化基因算法,它的基本步骤如下:将解空间中的向量编码为遗传空间中的基因串,常用的编码方式有二进制编码、实数编码等;在解空间中随机生成n个个体构成初始种群;适应度计算,适应度反应种群中个体的适应能力,通过适应度评价种群中个体的优劣;对初始种群中的每个个体进行局部搜索;对种群实施遗传算子操作,主要有选择、交叉和变异三种算子组成,选择的目的是从种群中选择优良的父代个体进入交配池,交叉的目的是对父代个体的染色体编码进行重组以产生子代个体,变异的目的是提供基因突变,以产生新的染色体;对生成的子代种群评价适应度并进行局部搜索;构成新一代的父代种群。
目前已有的项目调度方法存在的不足之处是:局部搜索能力较弱,易于陷入局部最优,调度效率低下。
发明内容
为了解决上述背景技术提出的技术问题,本发明旨在提供一种基于遗传文化基因算法的项目调度方法,提高了局部搜索能力,避免陷入局部最优,实现快速高效的项目调度。
为了实现上述技术目的,本发明的技术方案为:
一种基于遗传文化基因算法的项目调度方法,包括以下步骤:
(1)读取项目的输入信息,定义优化目标,设定约束条件:
项目的输入信息包括每个任务的工作量、技能要求和任务优先级图,每位软件工程师所掌握的技能、可在本项目中投入的最大工作量、正常月薪和加班月薪;优化目标包括项目工期和项目成本;约束条件包括任务技能约束和软件工程师未超负荷工作的约束;
(2)初始化遗传文化基因算法参数:
设置遗传文化基因算法的迭代次数Tmax、种群规模sizepop、联赛选择规模Stour、交叉概率Pc以及局部搜索的迭代次数gmax,设项目中有M名软件工程师,N项任务,则变异概率Pm为1/(MN),设迭代次数计数器t=0;
(3)产生初始父代种群,并进行局部搜索,得到新的父代种群:
随机生成sizepop个个体构成初始父代种群P'(t),每个个体表示一个工作量分配矩阵:
X=(xij)M×N
其中,为第i个工程师ei在第j项任务Tj中投入的工作量占全日制工作量的百分比,i=1,2,…,M,j=1,2,…,N;为第i个工程师ei能够对本项目投入的最大工作量占全日制工作量的百分比;k为解的划分粒度;计算初始种群中每个个体的目标值duration和cost,duration和cost分别表示项目工期和成本,并进行约束处理;按下式计算每个个体的适应度:
f(X)=ω1·duration+ω2·cost
其中,ω1和ω2表示目标duration和cost的相对重要性权重;对每个个体分别进行局部搜索,得到新的父代种群P(t);从P(t)中确定出当前最优个体Xbest,即适应度值最小的个体;
(4)生成子代种群:
对父代种群P(t)执行选择、交叉和变异操作,产生新的个体构成子代种群Q'(t);计算Q'(t)中每个子代个体的目标值和适应度;
(5)对子代种群进行局部搜索:
在子代种群Q'(t)中每个个体Vp的邻域内,分别执行局部搜索操作得到新个体Zp,其中,p=1,2,…,sizepop;将Zp与当前最优个体Xbest进行比较,如果Zp的适应度优于Xbest,即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)。
步骤(1)中所述项目工期表示完成项目所有任务所花费的时间开销,它定义为:
其中,分别表示任务Tj的开始时间和完成时间,且
步骤(1)中所述项目成本表示完成项目所有任务所花费的财力,它定义为:
其中,t'表示项目处于开发阶段的某一个月;表示在t'期间付给软件工程师ei的薪酬;T_active_set(t')表示在t'期间正在进行开发的任务集合;xij表示ei在任务Tj中投入的工作量占全日制工作量的百分比;表示ei能够对整个项目投入的最大工作量占全日制工作量的百分比,当时,表示ei能够加班工作;分别表示ei的正常月薪和加班月薪;
步骤(1)所述任务技能约束指参与某项任务的所有软件工程师必须具备该任务要求的所有技能,即
其中,reqj表示任务Tj所需求的技能的集合;skilli表示软件工程师ei所掌握的所有技能的集合;
步骤(1)所述软件工程师不能超负荷工作的约束指在任一时期t'≥0,一个软件工程师为正在进行开发的任务同时投入的工作量之和不超过他对整个项目投入的最大允许工作量,即
其中,表示第i个软件工程师ei对t'内正在进行开发的任务投入的工作量之和。
在步骤(2)中,交叉概率Pc为0.9。
步骤(3)和步骤(5)中所述局部搜索方法的具体步骤如下:
(a)获取初始个体Vp,令代数计算器g=1,mark=0;
(b)如果mark的值为0,则对个体Vp执行“随机替代”操作,生成新个体Zp;所述“随机替代”操作:从个体Vp的工作量分配矩阵中随机选择一个元素vpij,然后从集合中随机挑选一个与vpij当前取值不同的值替代vpij;如果mark的值不为0,则对个体Vp执行“交换”操作,生成新个体Zp;所述“交换”操作:从个体Vp的工作量分配矩阵中随机选取两行或两列进行交换,然后对生成的新个体Zp执行启发式算子操作,即如果软件工程师ei不具备任务Tj要求的任一技能,则将ei对Tj分配的工作量设为0;
(c)如果新个体Zp的适应度值优于个体Vp,即f(Zp)<f(Vp),则令Vp=Zp,否则,令mark=|mark-1|;
(d)如果g=gmax,则令Zp=Vp,输出Zp,Zp即为对原个体Vp进行局部搜索操作后得到的新个体;否则,令g=g+1,转至步骤(b)。
步骤(4)中所述选择操作是联赛选择,依据联赛选择规模Stour,从父代种群P(t)中随机选取Stour个不同的个体,从中挑选适应度最优的一个个体加入交配池,此过程循环sizepop次;将交配池中的个体随机配对为sizepop/2对;所述交叉操作是依据交叉概率Pc,确定交配池中的每对个体是否需要进行交叉操作;如果某对个体需要进行交叉操作,则对这两个交配个体工作量分配矩阵中的每一行或列,以0.5的概率进行交换;所述变异操作是依据变异概率Pm,将个体矩阵中待变异的元素替换为从集合中随机挑选的另一个值。
采用上述技术方案带来的有益效果:
(1)本发明采用文化基因算法实现项目调度,将全局搜索和基于个体的局部启发式搜索相结合,该机制使得它的搜索效率高于传统遗传算法;
(2)本发明对种群中的父代个体实施“交换随机选取的部分行或列”的交叉操作,从而避免了对父代个体已建立平衡的破坏,即保持对某个软件工程师的工作量分配以及所有软件工程师对某一任务投入的工作量不变;
(3)本发明在采用遗传算法进行全局搜索的基础上,加入了基于“随机替代”操作和“交换”操作的局部搜索机制,能够有效地提高局部搜索能力,避免陷入局部最优,快速高效地实现项目中软件工程师和任务的调度。
附图说明
图1为本实施例中的任务优先级图;
图2为本发明基于遗传文化基因算法的项目调度方法的主体流程图;
图3为本发明采用的局部搜索操作的流程图;
图4为本发明与传统遗传算法的进化曲线比较图;
图5为采用本发明遗传文化基因算法求解实施例得到的最佳项目调度方案对应的甘特图;
图6为采用传统遗传算法求解实施例得到的最佳项目调度方案对应的甘特图。
具体实施方式
以下将结合附图,对本发明的技术方案进行详细说明。
一个实际项目中,有10个软件工程师和12项任务(即i=10,j=12),共有5个技能要求(设为1、2、3、4、5)。任务优先级图如图1所示。每项任务Tj要求的工作量及技能要求集合reqj如表1所示。每个软件工程师ei对整个项目投入的最大允许工作量正常月薪加班月薪以及所掌握的技能集合skilli如表2所示。
表1
表2
使用本发明提出的基于遗传文化基因算法的项目调度方法求解该项目实施例的调度方案,主体流程图如图2所示,具体步骤如下:
(1)初始化。读取项目的输入信息,包括任务属性(见表1)和软件工程师的属性(见表2);给出优化目标的定义,并设定约束条件。
目标“项目工期”表示完成项目所有任务所花费的时间开销,它定义为:
其中,分别表示任务Tj的开始时间和完成时间N为项目中任务的总数,本实例中,N=12。
目标“项目成本”表示完成项目所有任务所花费的财力,定义为:
其中,t'表示项目处于开发阶段的某一个月;表示在t'期间付给软件工程师ei的薪酬;M为项目中软件工程师的总数,本实例中,M=10;T_active_set(t')表示在t'期间正在进行开发的任务集合;xij表示ei在任务Tj中投入的工作量占全日制工作量的百分比;表示ei能够对整个项目投入的最大工作量占全日制工作量的百分比,表示ei能够加班工作;分别表示ei的正常和加班月薪。“项目工期”和“项目成本”的目标值均越小越好。
本发明设定的约束条件包括任务技能约束,以及软件工程师不能超负荷工作的约束。
任务技能约束指参与某项任务的所有软件工程师必须具备该任务要求的所有技能,即
其中,reqj表示任务Tj所需求的技能的集合;skilli表示软件工程师ei所掌握的所有技能的集合。
软件工程师不能超负荷工作的约束指在任一时期t'≥0,一个软件工程师为正在进行开发的任务同时投入的工作量之和不超过他对整个项目投入的最大允许工作量,即,
其中,表示第i个软件工程师ei对t'内正在进行开发的任务投入的工作量之和。
(2)初始化遗传文化基因算法参数;
设置遗传文化基因算法的迭代次数Tmax为50,种群规模sizepop(每个群体中含有若干个体,每个个体表示问题的一个候选解,群体规模sizepop是指群体中含有的候选解个数)为10,联赛选择规模Stour为2,交叉概率Pc为0.9,局部搜索的迭代次数gmax为20,设项目中有M名软件工程师,N项任务,则变异概率Pm为1/(MN),本实例中,Pm=1/120;设迭代次数计数器t=0。
(3)产生初始父代种群,并进行局部搜索;
随机生成sizepop个个体构成初始群体P'(t),每个个体表示一个工作量分配矩阵:
X=(xij)M×N
其中,为第i个工程师ei在第j项任务Tj中投入的工作量占全日制工作量的百分比,i=1,2,…,M,j=1,2,…,N;为第i个工程师ei能够对本项目投入的最大工作量占全日制工作量的百分比;k为解的划分粒度,本发明设k=7。计算初始种群中每个个体的目标值,包括项目工期duration和成本cost,并进行约束处理;对每个个体分别进行局部搜索,得到新的初始种群P(t);从P(t)中确定出当前最优个体Xbest,即适应度值最小的个体。
按下式计算每个个体的适应度:
f(X)=ω1·duration+ω2·cost
其中,ω1和ω2表示目标duration和cost的相对重要性权重,本实施例设置ω1=0.1,ω2=10-5;约束处理的方法如下:
如果某个体违反了任务技能约束,则将它的各个目标值分别设置为一个很高的惩罚值。假设reqsk为该个体中未满足约束的技能总数,则每个目标按如下公式分别惩罚:
如果某个个体违反了软件工程师不能超负荷工作的约束,则采用将工作量归一化的方法。如果分配方案使软件工程师ei在t'时刻超负荷工作,即则将原先为他分配的在每个活动任务(即t'时刻正在开发的任务)中的工作量除以如果则不对工作量进行归一化处理。本发明采用的归一化处理方法能够保证软件工程师不能超负荷工作的约束始终被满足。
对个体进行局部搜索的具体步骤如下:
(i)获取初始个体Vp,令代数计算器g=1,mark=0;
(ii)如果mark的值为0,则对个体Vp执行“随机替代”操作,生成新个体Zp;“随机替代”操作从个体Vp的工作量分配矩阵中随机选择一个元素vpij,然后从集合中随机挑选一个与vpij当前取值不同的值替代vpij;如果mark的值不为0,则对个体Vp执行“交换”操作,生成新个体Zp;“交换”操作从个体Vp的工作量分配矩阵中随机选取两行或两列进行交换,在实施过“交换”操作之后,对生成的个体Zp执行启发式算子操作,即如果软件工程师ei不具备任务Tj要求的任一技能,则将ei对Tj分配的工作量设为0;
(iii)如果新个体Zp的适应度值优于个体Vp,即f(Zp)<f(Vp),则令Vp=Zp,否则,令mark=|mark-1|;
(iv)如果g=gmax,则令Zp=Vp,输出Zp,Zp即为对原个体Vp进行局部搜索操作后得到的新个体;否则,令g=g+1,转至上述步骤(ii)。
上述局部搜索操作的流程图如图3所示。
(4)生成子代种群;
对父代种群P(t)执行选择、交叉和变异操作,产生新的个体构成子代种群Q'(t);计算Q'(t)中每个子代个体的目标值和适应度。
本发明的选择操作为联赛选择,依据联赛选择规模Stour,从父代种群P(t)中随机选取Stour个不同的个体,从中挑选适应度最优的一个个体加入交配池,此过程循环sizepop次;将交配池中的个体随机配对为sizepop/2对;
依据交叉概率Pc,确定交配池中的每对个体是否需要进行交叉操作;如果某对个体需要进行交叉操作,则对这两个交配个体工作量分配矩阵中的每一行(或列),以0.5的概率进行交换;
对于交叉操作后产生的新个体,依据变异概率,确定该个体工作量分配矩阵中的每个元素是否需要进行变异操作;如果需要,则将该元素替换为从集合中随机挑选的另一个值。
(5)对子代种群进行局部搜索;在子代种群Q'(t)中每个个体Vp(p=1,2,…,sizepop)的邻域内,分别执行局部搜索操作,将局部搜索后得到的个体Zp(p=1,2,…,sizepop)与当前最优个体Xbest进行比较,如果Zp的适应度优于Xbest,即f(Zp)<f(Xbest),则令Xbest=Zp;经局部搜索后产生的所有个体Zp构成新的子代种群Q(t)。
(6)生成新一代父代群体;合并父代P(t)和经局部搜索后的子代种群Q(t),从中选取适应度最优的一半个体构成下一代父代种群P(t+1);令t=t+1;
(7)终止准则判断;若t>Tmax,则终止迭代,输出适应度最优的个体,该个体即为项目中每位软件工程师在每项任务中投入的工作量分配结果;否则,转至上述步骤(4)。
本发明的效果可以通过以下仿真实验进一步说明:
1.实验条件:
在CPU为Intel core Duo 2.2GHz、内存4GB、WINDOWS XP系统上使用Matlab 2010进行仿真。
2.实验内容:
本发明针对上述具有10个软件工程师、12个任务、5个技能要求的项目实施例求解项目调度方案。该项目的任务优先级图如图1所示,图1中1到12分别表示任务的编号,有向连线表示任务开发需满足的先后次序。
3.实验结果
采用本发明与现有遗传算法分别对项目调度问题进行求解。图1为实施例的任务优先级图。将两种方法在实施例中分别独立地运行30次。表3分别列出了两种方法在30次运行中求得的调度方案最佳及平均适应度,最佳及平均项目工期,以及最佳及平均项目成本。由表3可见,与现有的遗传算法相比,本发明能够搜索到适应度更优的个体,大幅度降低了项目的工期和成本,显著增强了项目开发的效率。
表3
图4给出了本发明与遗传算法搜索到的最佳个体适应度随着目标评价次数变化的进化曲线图,以比较两种方法的收敛性能。由图4可见,虽然遗传算法在搜索过程的早期阶段能够搜索到优于本发明的个体,但随着进化代数的增加,它搜索到的解陷入局部最优,无法求得全局最优解。相比之下,本发明的遗传文化基因算法将基于种群的全局搜索和基于个体的局部启发式搜索相结合,它既能够在大范围的搜索空间中进行探索,也能够充分挖掘当前解周围的局部信息,因此,本发明能够跳出局部最优区域,从而避免早熟收敛,并搜索到项目调度问题的全局最优调度方案。
图5为采用本发明遗传文化基因算法求解实施例得到的最佳项目调度方案对应的甘特图,图6为采用传统遗传算法求解实施例得到的最佳项目调度方案对应的甘特图。从甘特图中可以获取每项任务的开始时间、结束时间、持续时间,以及任务之间的先后关系。由图5可见,本发明遗传文化基因算法求得的项目调度方案的项目工期为6.1325个月,由图6可见,遗传算法求得的项目调度方案的项目工期为6.7390个月。
综上,本发明提出的基于遗传文化基因算法的项目调度方法,在采用遗传算法进行全局搜索的基础上,加入了基于“随机替代”操作和“交换”操作的局部搜索机制,克服了基于遗传算法的项目调度方法局部搜索能力较弱、易于陷入局部最优、调度效率低下的缺点,能够快速高效地实现项目中软件工程师和任务的调度。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。

Claims (4)

1.一种基于遗传文化基因算法的项目调度方法,其特征在于,包括以下步骤:
(1)读取项目的输入信息,定义优化目标,设定约束条件:
项目的输入信息包括每个任务的工作量、技能要求和任务优先级图,每位软件工程师所掌握的技能、可在本项目中投入的最大工作量、正常月薪和加班月薪;优化目标包括项目工期和项目成本;约束条件包括任务技能约束和软件工程师未超负荷工作的约束;
(2)初始化遗传文化基因算法参数:
设置遗传文化基因算法的迭代次数Tmax、种群规模sizepop、联赛选择规模Stour、交叉概率Pc以及局部搜索的迭代次数gmax,设项目中有M名软件工程师,N项任务,则变异概率Pm为1/(MN),设迭代次数计数器t=0;
(3)产生初始父代种群,并进行局部搜索,得到新的父代种群:
随机生成sizepop个个体构成初始父代种群P'(t),每个个体表示一个工作量分配矩阵:
X=(xij)M×N
其中,为第i个工程师ei在第j项任务Tj中投入的工作量占全日制工作量的百分比,i=1,2,…,M,j=1,2,…,N;为第i个工程师ei能够对本项目投入的最大工作量占全日制工作量的百分比;k为解的划分粒度;计算初始种群中每个个体的目标值duration和cost,duration和cost分别表示项目工期和成本,并进行约束处理;按下式计算每个个体的适应度:
f(X)=ω1·duration+ω2·cost
其中,ω1和ω2表示目标duration和cost的相对重要性权重;对每个个体分别进行局部搜索,得到新的父代种群P(t);从P(t)中确定出当前最优个体Xbest,即适应度值最小的个体;
(4)生成子代种群:
对父代种群P(t)执行选择、交叉和变异操作,产生新的个体构成子代种群Q'(t);计算Q'(t)中每个子代个体的目标值和适应度;
所述选择操作是联赛选择,依据联赛选择规模Stour,从父代种群P(t)中随机选取Stour个不同的个体,从中挑选适应度最优的一个个体加入交配池,此过程循环sizepop次;将交配池中的个体随机配对为sizepop/2对;所述交叉操作是依据交叉概率Pc,确定交配池中的每对个体是否需要进行交叉操作;如果某对个体需要进行交叉操作,则对这两个交配个体工作量分配矩阵中的每一行或列,以0.5的概率进行交换;所述变异操作是依据变异概率Pm,将个体矩阵中待变异的元素替换为从集合中随机挑选的另一个值;
(5)对子代种群进行局部搜索:
在子代种群Q'(t)中每个个体Vp的邻域内,分别执行局部搜索操作得到新个体Zp,其中,p=1,2,…,sizepop;将Zp与当前最优个体Xbest进行比较,如果Zp的适应度优于Xbest,即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)中所述项目工期表示完成项目所有任务所花费的时间开销,它定义为:
<mrow> <mi>d</mi> <mi>u</mi> <mi>r</mi> <mi>a</mi> <mi>t</mi> <mi>i</mi> <mi>o</mi> <mi>n</mi> <mo>=</mo> <munder> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> <mrow> <mi>j</mi> <mo>&amp;Element;</mo> <mo>{</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mo>...</mo> <mo>,</mo> <mi>N</mi> <mo>}</mo> </mrow> </munder> <mrow> <mo>(</mo> <msubsup> <mi>T</mi> <mi>j</mi> <mrow> <mi>e</mi> <mi>n</mi> <mi>d</mi> </mrow> </msubsup> <mo>)</mo> </mrow> <mo>-</mo> <munder> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mrow> <mi>j</mi> <mo>&amp;Element;</mo> <mo>{</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mo>...</mo> <mo>,</mo> <mi>N</mi> <mo>}</mo> </mrow> </munder> <mrow> <mo>(</mo> <msubsup> <mi>T</mi> <mi>j</mi> <mrow> <mi>s</mi> <mi>t</mi> <mi>a</mi> <mi>r</mi> <mi>t</mi> </mrow> </msubsup> <mo>)</mo> </mrow> </mrow>
其中,分别表示任务Tj的开始时间和完成时间,且
步骤(1)中所述项目成本表示完成项目所有任务所花费的财力,它定义为:
<mrow> <mi>cos</mi> <mi>t</mi> <mo>=</mo> <munder> <mo>&amp;Sigma;</mo> <mrow> <msup> <mi>t</mi> <mo>&amp;prime;</mo> </msup> <mo>&amp;GreaterEqual;</mo> <mn>0</mn> </mrow> </munder> <munder> <mo>&amp;Sigma;</mo> <mrow> <mi>i</mi> <mo>&amp;Element;</mo> <mo>{</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mo>...</mo> <mo>,</mo> <mi>M</mi> <mo>}</mo> </mrow> </munder> <mi>e</mi> <mo>_</mo> <msubsup> <mi>cost</mi> <mi>i</mi> <msup> <mi>t</mi> <mo>&amp;prime;</mo> </msup> </msubsup> </mrow>
<mrow> <mi>e</mi> <mo>_</mo> <msubsup> <mi>cost</mi> <mi>i</mi> <msup> <mi>t</mi> <mo>&amp;prime;</mo> </msup> </msubsup> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msubsup> <mi>e</mi> <mi>i</mi> <mrow> <mi>n</mi> <mi>a</mi> <mi>m</mi> <mo>_</mo> <mi>s</mi> <mi>d</mi> <mi>a</mi> <mi>r</mi> <mi>y</mi> </mrow> </msubsup> <mo>&amp;CenterDot;</mo> <msup> <mi>t</mi> <mo>&amp;prime;</mo> </msup> <mo>&amp;CenterDot;</mo> <munder> <mi>&amp;Sigma;</mi> <mrow> <mi>j</mi> <mo>&amp;Element;</mo> <mi>T</mi> <mo>_</mo> <mi>a</mi> <mi>c</mi> <mi>t</mi> <mi>i</mi> <mi>v</mi> <mi>e</mi> <mo>_</mo> <mi>s</mi> <mi>e</mi> <mi>t</mi> <mrow> <mo>(</mo> <msup> <mi>t</mi> <mo>&amp;prime;</mo> </msup> <mo>)</mo> </mrow> </mrow> </munder> <msub> <mi>x</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> </mrow> </mtd> <mtd> <mrow> <munder> <mi>&amp;Sigma;</mi> <mrow> <mi>j</mi> <mo>&amp;Element;</mo> <mi>T</mi> <mo>_</mo> <mi>a</mi> <mi>c</mi> <mi>t</mi> <mi>i</mi> <mi>v</mi> <mi>e</mi> <mo>_</mo> <mi>s</mi> <mi>e</mi> <mi>t</mi> <mrow> <mo>(</mo> <msup> <mi>t</mi> <mo>&amp;prime;</mo> </msup> <mo>)</mo> </mrow> </mrow> </munder> <msub> <mi>x</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>&amp;le;</mo> <mn>1</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msubsup> <mi>e</mi> <mi>i</mi> <mrow> <mi>n</mi> <mi>a</mi> <mi>m</mi> <mo>_</mo> <mi>s</mi> <mi>d</mi> <mi>a</mi> <mi>r</mi> <mi>y</mi> </mrow> </msubsup> <mo>&amp;CenterDot;</mo> <msup> <mi>t</mi> <mo>&amp;prime;</mo> </msup> <mo>&amp;CenterDot;</mo> <mn>1</mn> <mo>+</mo> <msubsup> <mi>e</mi> <mi>i</mi> <mrow> <mi>o</mi> <mi>v</mi> <mi>e</mi> <mi>r</mi> <mo>_</mo> <mi>s</mi> <mi>d</mi> <mi>a</mi> <mi>r</mi> <mi>y</mi> </mrow> </msubsup> <mo>&amp;CenterDot;</mo> <msup> <mi>t</mi> <mo>&amp;prime;</mo> </msup> <mo>&amp;CenterDot;</mo> <mrow> <mo>(</mo> <munder> <mi>&amp;Sigma;</mi> <mrow> <mi>j</mi> <mo>&amp;Element;</mo> <mi>T</mi> <mo>_</mo> <mi>a</mi> <mi>c</mi> <mi>t</mi> <mi>i</mi> <mi>v</mi> <mi>e</mi> <mo>_</mo> <mi>s</mi> <mi>e</mi> <mi>t</mi> <mrow> <mo>(</mo> <msup> <mi>t</mi> <mo>&amp;prime;</mo> </msup> <mo>)</mo> </mrow> </mrow> </munder> <msub> <mi>x</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mn>1</mn> <mo>&lt;</mo> <munder> <mi>&amp;Sigma;</mi> <mrow> <mi>j</mi> <mo>&amp;Element;</mo> <mi>T</mi> <mo>_</mo> <mi>a</mi> <mi>c</mi> <mi>t</mi> <mi>i</mi> <mi>v</mi> <mi>e</mi> <mo>_</mo> <mi>s</mi> <mi>e</mi> <mi>t</mi> <mrow> <mo>(</mo> <msup> <mi>t</mi> <mo>&amp;prime;</mo> </msup> <mo>)</mo> </mrow> </mrow> </munder> <msub> <mi>x</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>&amp;le;</mo> <msubsup> <mi>e</mi> <mi>i</mi> <mrow> <mi>max</mi> <mi>d</mi> <mi>e</mi> <mi>d</mi> </mrow> </msubsup> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow>
其中,t'表示项目处于开发阶段的某一个月;表示在t'期间付给软件工程师ei的薪酬;T_active_set(t')表示在t'期间正在进行开发的任务集合;xij表示ei在任务Tj中投入的工作量占全日制工作量的百分比;表示ei能够对整个项目投入的最大工作量占全日制工作量的百分比,当时,表示ei能够加班工作;分别表示ei的正常月薪和加班月薪;
步骤(1)所述任务技能约束指参与某项任务的所有软件工程师必须具备该任务要求的所有技能,即
<mrow> <mo>&amp;ForAll;</mo> <msub> <mi>T</mi> <mi>j</mi> </msub> <mo>,</mo> <mi>j</mi> <mo>=</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mo>...</mo> <mo>,</mo> <mi>N</mi> <mo>,</mo> <mi>s</mi> <mo>.</mo> <mi>t</mi> <mo>.</mo> <msub> <mi>req</mi> <mi>j</mi> </msub> <mo>&amp;SubsetEqual;</mo> <munder> <mrow> <mi></mi> <mo>&amp;cup;</mo> </mrow> <mrow> <mi>i</mi> <mo>&amp;Element;</mo> <mo>{</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mo>...</mo> <mo>,</mo> <mi>M</mi> <mo>}</mo> </mrow> </munder> <mo>{</mo> <msub> <mi>skill</mi> <mi>i</mi> </msub> <mo>|</mo> <msub> <mi>x</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>&gt;</mo> <mn>0</mn> <mo>}</mo> </mrow>
其中,reqj表示任务Tj所需求的技能的集合;skilli表示软件工程师ei所掌握的所有技能的集合;
步骤(1)所述软件工程师不能超负荷工作的约束指在任一时期t'≥0,一个软件工程师为正在进行开发的任务同时投入的工作量之和不超过他对整个项目投入的最大允许工作量,即
<mrow> <mi>e</mi> <mo>_</mo> <msubsup> <mi>work</mi> <mi>i</mi> <msup> <mi>t</mi> <mo>&amp;prime;</mo> </msup> </msubsup> <mo>&amp;le;</mo> <msubsup> <mi>e</mi> <mi>i</mi> <mrow> <mi>max</mi> <mi>d</mi> <mi>e</mi> <mi>d</mi> </mrow> </msubsup> </mrow>
其中,表示第i个软件工程师ei对t'内正在进行开发的任务投入的工作量之和。
3.根据权利要求1所述一种基于遗传文化基因算法的项目调度方法,其特征在于:在步骤(2)中,交叉概率Pc为0.9。
4.根据权利要求1所述一种基于遗传文化基因算法的项目调度方法,其特征在于:步骤(3)和步骤(5)所述局部搜索方法的具体步骤如下:
(a)获取初始个体Vp,令代数计算器g=1,mark=0;
(b)如果mark的值为0,则对个体Vp执行“随机替代”操作,生成新个体Zp;所述“随机替代”操作:从个体Vp的工作量分配矩阵中随机选择一个元素vpij,然后从集合中随机挑选一个与vpij当前取值不同的值替代vpij;如果mark的值不为0,则对个体Vp执行“交换”操作,生成新个体Zp;所述“交换”操作:从个体Vp的工作量分配矩阵中随机选取两行或两列进行交换,然后对生成的新个体Zp执行启发式算子操作,即如果软件工程师ei不具备任务Tj要求的任一技能,则将ei对Tj分配的工作量设为0;
(c)如果新个体Zp的适应度值优于个体Vp,即f(Zp)<f(Vp),则令Vp=Zp,否则,令mark=|mark-1|;
(d)如果g=gmax,则令Zp=Vp,输出Zp,Zp即为对原个体Vp进行局部搜索操作后得到的新个体;否则,令g=g+1,转至步骤(b)。
CN201410681051.5A 2014-11-24 2014-11-24 一种基于遗传文化基因算法的项目调度方法 Active CN104392317B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410681051.5A CN104392317B (zh) 2014-11-24 2014-11-24 一种基于遗传文化基因算法的项目调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410681051.5A CN104392317B (zh) 2014-11-24 2014-11-24 一种基于遗传文化基因算法的项目调度方法

Publications (2)

Publication Number Publication Date
CN104392317A CN104392317A (zh) 2015-03-04
CN104392317B true CN104392317B (zh) 2017-12-01

Family

ID=52610216

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410681051.5A Active CN104392317B (zh) 2014-11-24 2014-11-24 一种基于遗传文化基因算法的项目调度方法

Country Status (1)

Country Link
CN (1) CN104392317B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104834822A (zh) * 2015-05-15 2015-08-12 无锡职业技术学院 一种基于文化基因算法的传递函数辨识方法
CN106886882A (zh) * 2017-01-12 2017-06-23 中山大学 一种工程供应链中工程调度的处理方法及系统
CN109886540B (zh) * 2019-01-11 2022-06-10 南京航空航天大学 一种飞机运行符合性验证多任务动态调度方法
CN111563393B (zh) * 2019-02-13 2022-07-05 杭州海康威视数字技术股份有限公司 一种基于遗传算法调节读卡器调制深度的方法和装置
CN114139453B (zh) * 2021-11-30 2024-07-23 南京信息工程大学 基于分组学习粒子群优化的众包软件项目调度方法及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101364292A (zh) * 2008-09-18 2009-02-11 浙江工业大学 一种asp模式下企业间生产调度优化方法
CN102413029A (zh) * 2012-01-05 2012-04-11 西安电子科技大学 基于分解的局部搜索多目标复杂动态网络社区划分方法
CN104077634A (zh) * 2014-06-30 2014-10-01 南京信息工程大学 基于多目标优化的主动-反应式动态项目调度方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101364292A (zh) * 2008-09-18 2009-02-11 浙江工业大学 一种asp模式下企业间生产调度优化方法
CN102413029A (zh) * 2012-01-05 2012-04-11 西安电子科技大学 基于分解的局部搜索多目标复杂动态网络社区划分方法
CN104077634A (zh) * 2014-06-30 2014-10-01 南京信息工程大学 基于多目标优化的主动-反应式动态项目调度方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Production scheduling with a memetic algorithm;Peter K. 等;《Int. J. Innovative Computing and Applications》;20100430;第2卷(第4期);全文 *
Time-line based model for software project scheduling with genetic algorithms;Carl K. C.等;《Information and Software Technology》;20080320;第1142-1154页 *
多目标Memetic算法在网格作业调度中的应用研究;龙志翔;《中国优秀硕士学位论文全文数据库 信息科技辑》;20110915(第9期);第30-36页 *

Also Published As

Publication number Publication date
CN104392317A (zh) 2015-03-04

Similar Documents

Publication Publication Date Title
Shao et al. Multi-objective evolutionary algorithm based on multiple neighborhoods local search for multi-objective distributed hybrid flow shop scheduling problem
CN104392317B (zh) 一种基于遗传文化基因算法的项目调度方法
Afshar et al. Optimizing multi-reservoir operation rules: an improved HBMO approach
Gong et al. A non-dominated ensemble fitness ranking algorithm for multi-objective flexible job-shop scheduling problem considering worker flexibility and green factors
CN111932075B (zh) 主动配电网多区域调度方法、系统、设备及可读存储介质
Shim et al. A hybrid estimation of distribution algorithm for solving the multi-objective multiple traveling salesman problem
CN104077634B (zh) 基于多目标优化的主动‑反应式动态项目调度方法
Wei et al. A multi-objective migrating birds optimization algorithm based on game theory for dynamic flexible job shop scheduling problem
CN107644370A (zh) 一种自增强学习的撮合竞价方法及系统
Florez et al. Multi-objective transmission expansion planning considering multiple generation scenarios
Naseri et al. Time-cost trade off to compensate delay of project using genetic algorithm and linear programming
CN110390491A (zh) 一种公路工程多目标施工计划确定方法
Chien et al. An integrated approach for IC design R&D portfolio decision and project scheduling and a case study
Xilin et al. Resource allocation optimization of equipment development task based on MOPSO algorithm
CN118192472A (zh) 一种柔性作业车间调度问题的改进星雀优化方法
Alahdin et al. Multi-reservoir system operation in drought periods with balancing multiple groups of objectives
Dou et al. Dual carbon oriented optimization method for manufacturing industry chain based on BP neural network and clonal selection algorithm
CN114169916A (zh) 一种适应新型电力系统的市场成员报价策略制定方法
Yan et al. An operator pre-selection strategy for multiobjective evolutionary algorithm based on decomposition
Wu et al. Applications of AI techniques to generation planning and investment
CN107180286A (zh) 基于改进型花粉算法的制造服务供应链优化方法及系统
Yu [Retracted] Research on Optimization Strategy of Task Scheduling Software Based on Genetic Algorithm in Cloud Computing Environment
Napalkova et al. Multi-objective stochastic simulation-based optimisation applied to supply chain planning
CN112148446A (zh) 一种用于多技能资源受限项目调度的进化策略算法
CN110689320A (zh) 一种基于协同进化算法的大规模多目标项目调度方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190328

Address after: 510000 Room 3301-3302, No. 1 Jinsui Road, Tianhe District, Guangzhou City, Guangdong Province

Patentee after: GUANGZHOU FENGSHEN NETWORK TECHNOLOGY Co.,Ltd.

Address before: 510000 2414-2416 of the main building 371, five mountain road, Tianhe District, Guangzhou, Guangdong.

Patentee before: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Effective date of registration: 20190328

Address after: 510000 2414-2416 of the main building 371, five mountain road, Tianhe District, Guangzhou, Guangdong.

Patentee after: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Address before: Room 2310, Building 2, Wuzhong Science and Technology Pioneering Park, 70 Zhongshan East Road, Mudu Town, Wuzhong District, Suzhou City, Jiangsu Province

Patentee before: Nanjing University of Information Science and Technology