CN111008745A - 混合启发式与智能算法的多模资源受限项目调度优化方法 - Google Patents

混合启发式与智能算法的多模资源受限项目调度优化方法 Download PDF

Info

Publication number
CN111008745A
CN111008745A CN201911261523.0A CN201911261523A CN111008745A CN 111008745 A CN111008745 A CN 111008745A CN 201911261523 A CN201911261523 A CN 201911261523A CN 111008745 A CN111008745 A CN 111008745A
Authority
CN
China
Prior art keywords
task
individual
genes
resource
population
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.)
Withdrawn
Application number
CN201911261523.0A
Other languages
English (en)
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.)
Zhejiang Gongshang University
Original Assignee
Zhejiang Gongshang University
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 Zhejiang Gongshang University filed Critical Zhejiang Gongshang University
Priority to CN201911261523.0A priority Critical patent/CN111008745A/zh
Publication of CN111008745A publication Critical patent/CN111008745A/zh
Withdrawn legal-status Critical Current

Links

Images

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/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • 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
    • 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/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06312Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling

Landscapes

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

Abstract

本发明公开了一种混合启发式与智能算法的多模资源受限项目调度优化方法,包括以下步骤:获取调度所需信息;判断是否存在可行的调度方案;进行预处理;初始化当代种群并解码获得适应度值;计算适应度值的平均偏差,进行加强型混合单双点交叉操作形成新种群;对新种群进行加强型混合单双点变异操作;从当代和新种群中选出N个不同的个体形成新的当代种群;直到满足进化终止条件输出调度优化结果。本发明采用了混合动态关键任务优先调度的启发式方法和遗传算法、动态的个体选择操作及加强型混合单双点遗传操作等方法,提高了搜索效率和质量。

Description

混合启发式与智能算法的多模资源受限项目调度优化方法
技术领域
本发明涉及计算机技术、信息技术和系统工程领域,具体涉及一种多模资源受限项目调度优化方法,更具体的说,尤其涉及一种混合启发式与智能算法的多模资源受限项目调度优化方法。
背景技术
资源受限项目调度问题RCPSP(Resource-Constrained Project SchedulingProblem)是指在满足资源及任务时序关系的约束下,如何科学合理地分配资源、安排任务执行顺序确定其开始和完成时间,以实现既定目标如:工期、费用等的最优化。随着越来越多的现代企业采用趋于面向项目的组织结构和管理模式,RCPSP广泛存在于建筑工程、软件开发、飞机及轮船制造等单件或小批量生产方式的企业中,具有很强的工程应用背景。RCPSP可进一步分为单模式资源受限项目调度问题SRCPSP和多模式资源受限项目调度问题MRCPSP,其中SRCPSP中每个任务只有一种执行模式,资源为可更新资源,任务的工期和资源需求量是确定的;而MRCPSP中任务有多种执行模式,资源包括可更新资源和不可更新资源,且任务的各种执行模式对应的活动工期和资源需求量均不相同。因此SRCPSP可以认为是MRCPSP的一个特例,相比于SRCPSP,MRCPSP是一个更复杂的问题,但其更具有实际意义。
在现阶段求解RCPSP的方法主要分为:1)精确算法,如:0-1整数规划和分支定界法;2)启发式算法,如:基于优先规则的启发式算法、分离弧法和局部搜索计算等;3)智能算法,如:遗传算法、粒子群优化算法、蚁群算法等。其中精确算法尽管在理论上能够得到最优解,但计算时间通常无法接受,一般只适用于小规模问题,启发式算法基于一定的启发式规则可以快速得到问题的解,但通常不能保证解的质量,智能算法基于计算智能,采用改进的启发式规则和搜索方式在合理的时间内找到近优解或满意解,但其效率通常依赖于算法本身的设计及问题的类型。
发明内容
为了克服精确算法无法适用于大规模问题、传统启发式算法不能保证解的质量及传统智能计算方法存在搜索空间过大,其效率依赖于编码与解码、进化迭代策略的设计及控制参数的选择等方面的不足,本发明提供了一种混合启发式与智能算法的多模资源受限项目调度优化方法,有效减少了求解时间,提高了求解质量。
本发明解决其技术问题所采用的技术方案如下:一种混合启发式与智能算法的多模资源受限项目调度优化方法,包括以下步骤:
步骤1:形式化多模资源受限项目调度问题,获取调度优化所需的信息;
获取项目任务集T={t0,t1,…,tJ,tJ+1};其中tj表示任务j,即编号为j的任务,t0与tJ+1是人为增加的虚拟任务,即不占用项目工期也不占用资源,J是需要调度的实际任务数量;
获取任务间的时序关系,即任务j的父任务集PRj和子任务集SCj,任务j在其父任务j-∈PRj全部完工之前不能开始执行,j=0,1,…,J+1,t0没有父任务即
Figure BDA0002311728010000021
tJ+1没有子任务即
Figure BDA0002311728010000022
获取可更新资源k在任意时刻的可使用量Rk,k=1,…,K,K是可更新资源种类数量;获取不可更新资源l在整个项目工期中的可使用量Nl,l=1,…,L,L是不可更新资源种类数量;
获取任务j在模式m下执行时需要的时间即工期dj,m和占用的可更新资源k的数量rj,m,k、不可更新资源l的数量nj,m,l;j=1,…,J,m=1,…,Mj,k=1,…,K,l=1,…,L,其中Mj是可供任务j选择采用的模式数量;
步骤2:如果存在不可更新资源l满足
Figure BDA0002311728010000023
或存在一个任务j和可更新资源k满足
Figure BDA0002311728010000024
那么该问题不存在可行的调度方案,求解结束,否则转到步骤3;
步骤3:进行预处理:对模式和资源进行冗余和无效检查,去除冗余模式、无效模式和冗余资源;
步骤3.1:令模式标记值mflg=0、资源标记值rflg=0;如果存在rj,m,k>Rk或nj,m,l>Nl,那么对于任务j模式m是无效的,在任务j中去除模式m:令
Figure BDA0002311728010000025
Figure BDA0002311728010000026
其中:
Figure BDA0002311728010000027
k=1,…,K,l=1,…,L;令Mj=Mj-1;
步骤3.2:如果mflg=0,那么令mflg=1,转到步骤3.3;否则转到步骤3.4;
步骤3.3:如果存在任务j,模式m和m′满足:dj,m′≤dj,m,rj,m′,k≤rj,m,k,nj,m′,l≤nj,m,l,m′≠m,k=1,…,K,l=1,…,L;那么对于任务j模式m是冗余的,在任务j中去除模式m:令
Figure BDA0002311728010000028
其中:
Figure BDA0002311728010000029
k=1,…,K,l=1,…,L;令Mj=Mj-1,rflg=0;
步骤3.4:如果rflg=0,那么令rflg=1,转到步骤3.5;否则转到步骤3.7;
步骤3.5:如果可更新资源k满足:
Figure BDA0002311728010000031
那么该可更新资源是冗余的,去除可更新资源k:令
Figure BDA0002311728010000032
其中:j=1,…,J,
Figure BDA0002311728010000033
令K=K-1,mflg=0;
步骤3.6:如果不可更新资源l满足:
Figure BDA0002311728010000034
那么该不可更新资源是冗余的,去除不可更新资源l:令
Figure BDA0002311728010000035
其中:j=1,…,J,
Figure BDA0002311728010000036
令L=L-1,mflg=0;
步骤3.7:如果mflg=1∧rflg=1,那么转到步骤3.8,否则转到步骤3.2;
步骤3.8:预处理结束;
步骤4:基于个体随机生成操作生成N个不同的个体,形成初始当代种群,并对当代种群中的每个个体进行个体解码,获得个体的适应度值;
其中N是种群规模;
所述个体采用J位整数编码,其方法如下:ch={g1,…,gJ},基因gj表示任务j执行时采用的模式,gj=1,…,Mj,例如:g1=2表示任务1执行时采用模式2;
所述个体随机生成操作描述如下:对于每一个任务j,j=1,…,J,从可以执行该任务的模式中随机选择一个模式m,即gj=m;
所述个体解码采用基于动态关键任务优先调度的启发解码方法,包括如下步骤:
步骤A1:计算任务的排序值rank:对于没有子任务的任务J+1,rankJ+1=0;其它任务的rank采用如下递归公式进行计算:
Figure BDA0002311728010000037
步骤A2:系统状态初始化:令任务0的完成时间f0=0、完成时间集F={f0,lf},F中的元素从小到大排列;对应于F中各完成时间可更新资源k的剩余可用量为:
Figure BDA0002311728010000038
k=1,…,K;令就绪任务集
Figure BDA0002311728010000039
令要调度的任务集UT={t1,t2,…,tJ};令要调度任务的父任务中还没有完成调度的任务集P(tj)=PRj-{t0},j=1,…,J;把UT中
Figure BDA0002311728010000041
Figure BDA0002311728010000042
移到RT中;
步骤A3:从RT中取出关键任务,即任务就绪时间与rank之和最大的任务,不妨设为任务j,取出任务j采用的模式m=gj
步骤A4:计算任务j的完成时间
Figure BDA0002311728010000043
即:
步骤A4.1:对rj,m,k>0的每种可更新资源k找出其剩余可用量满足任务j的且开始时间点大于rtj的时间段AUj,k,不妨设
Figure BDA0002311728010000044
步骤A4.2:找出所有可更新资源的剩余可用量都满足任务j的公共时间段:
Figure BDA0002311728010000045
不妨设
Figure BDA0002311728010000046
步骤A4.3:在AUj中找出满足υjj≥dj,m的最早时间段[νjj];
步骤A4.4:令任务j的开始时间sj=vj,结束时间fj=sj+dj,m
步骤A5:如果fj在F中不存在,则F=F∪{fj},增加fj时刻可更新资源的剩余可用量:
Figure BDA0002311728010000047
k=1,…,K;其中:fj″是fj的前一个时刻;
步骤A6:更新[sj,fj)时段内可更新资源的剩余可用量:
Figure BDA0002311728010000048
步骤A7:在所有
Figure BDA0002311728010000049
中删除tj
Figure BDA00023117280100000410
把UT中
Figure BDA00023117280100000411
Figure BDA00023117280100000412
移到RT中;
步骤A8:如果RT不为空则转到步骤A3,否则转到步骤A9;
步骤A9:如果个体为不可行个体,即存在一个不可更新资源l满足
Figure BDA00023117280100000413
那么令个体的适应度值fit=lf+ms,否则令个体适应度值fit=ms,操作结束;
其中:fj表示任务j的完成时间;
Figure BDA00023117280100000414
表示τ时刻可更新资源k的剩余可用量;lf表示项目的最晚完成时间,
Figure BDA00023117280100000415
ms表示项目的执行时间,
Figure BDA00023117280100000416
所述个体适应度值越小,个体越优;
所述任务就绪时间计算如下:
Figure BDA00023117280100000417
j=1,…,J;rtj表示任务j的就绪时间;
步骤5:判断是否满足进化终止条件,如满足,则转到步骤10,否则转到步骤6;
所述终止条件为迭代到指定的代数TG或连续迭代GG代最优个体没有改进;
步骤6:计算当代种群中个体适应度值的平均偏差
Figure BDA0002311728010000051
进行N次加强型混合单双点交叉操作形成新种群;
所述加强型混合单双点交叉操作包括如下步骤:
步骤B1:如果dv≤ε,那么采用基于排序的轮赌法从当代种群中随机选择两个不同的个体作为父体1和父体2,否则采用基于值的轮赌法从当代种群中随机选择两个不同的个体作为父体1和父体2;不妨设父体1和父体2为:
Figure BDA0002311728010000052
生成的4个子体分别为:
Figure BDA0002311728010000053
Figure BDA0002311728010000054
步骤B2:从前向后找出chp1和chp2的第1个不同基因的位置n,从后开始向前找出chp1和chp2的第1个不同基因的位置m;如果n≠m那么转到步骤B3,否则转到步骤B1;
步骤B3:随机产生1个n到m-1的正整数α;
步骤B4:chc1的前α个基因来自于chp1的前α个基因,即
Figure BDA0002311728010000055
1≤j≤α;后J-α个基因来自于chp2的后J-α个基因,即
Figure BDA0002311728010000056
α+1≤j≤J;
步骤B5:chc2的前α个基因来自于chp2的前α个基因,即
Figure BDA0002311728010000057
1≤j≤α;后J-α个基因来自于chp1的后J-α个基因,即
Figure BDA0002311728010000058
α+1≤j≤J;
步骤B6:随机产生2个n到m-1的正整数α、β,不妨设α≤β;
步骤B7:chc3的前α个基因和后J-β个基因来自于chp1的前α个基因和后J-β个基因,即
Figure BDA0002311728010000059
1≤j≤α∨β+1≤j≤J;中间的β-α个基因来自于chp2的中间的β-α个基因,即
Figure BDA00023117280100000510
α+1≤j≤β;
步骤B8:chc4的前α个基因和后J-β个基因来自于chp2的前α个基因和后J-β个基因,即
Figure BDA00023117280100000511
1≤j≤α∨β+1≤j≤J;中间的β-α个基因来自于chp1的中间的β-α个基因,即
Figure BDA00023117280100000512
α+1≤j≤β;
步骤B9:对chc1、chc2、chc3、chc4进行个体解码,按顺序把其中的一个最优个体放到新种群中;
其中:ε为偏差阈值;
步骤7:对新种群中的每个个体进行加强型混合单双点变异操作;
所述加强型混合单双点变异操作描述如下:
步骤C1:随机生成一个随机数λ∈[0,1);如果λ≤pi,那么转到步骤C2,否则转到步骤C5;
步骤C2:从可供选择的模式数量大于1的任务中随机选择一个任务;为该任务重新随机选择一个与当前所用模式不同的模式,形成变异后的新个体chm1
步骤C3:从可供选择的模式数量大于1的任务中随机选择两个任务;为这两个任务重新随机选择一个与当前所用模式不同的模式,形成变异后的新个体chm2
步骤C4:对变异后的新个体chm1、chm2进行个体解码,按顺序用其中的一个最优个体替换原个体ch;
步骤C5:变异操作结束;
其中:pi∈(0,1)是变异率;
步骤8:从当代种群和新种群中从优到劣选出N个不同的个体形成下一代种群;
步骤9:令下一代种群为当代种群,转到步骤5;
步骤10:如果当代种群中的最优个体为可行个体,那么输出最优个体对应的调度方案,及其项目执行时间
Figure BDA0002311728010000061
否则该问题无可行调度方案。
进一步的,所述步骤B1中基于排序的轮赌法从当代种群中随机选择两个不同个体作为父体1和父体2的具体步骤如下:
步骤D1:对当代种群中的个体从优到劣进行排序,获得个体n的排序值rkn,n=1,…,N,其中排第一的其取1,排第二的其取2,以此类推,排最后一名的其取N;
步骤D2:计算个体n被选中的概率
Figure BDA0002311728010000062
n=1,…,N,R>1为区分度系数;
步骤D3:计算累计概率:A0=0,
Figure BDA0002311728010000063
步骤D4:产生一个随机数λ1∈[0,1),如果An-1≤λ1<An,那么选择个体n作为父体1;
步骤D5:产生一个随机数λ2∈[0,1),如果An′-1≤λ2<An′,并且n′≠n,那么选择个体n′作为父体2,转到步骤D6,否则转到步骤D5;
步骤D6:个体选择操作结束。
进一步的,所述步骤B1中基于值的轮赌法从当代种群中随机选择两个不同个体作为父体1和父体2的具体步骤如下:
步骤E1:计算个体n被选中的概率
Figure BDA0002311728010000071
步骤E2:计算累计概率:A0=0,
Figure BDA0002311728010000072
步骤E3:产生一个随机数λ1∈[0,1),如果An-1≤λ1<An,那么选择个体n作为父体1;
步骤E4:产生一个随机数λ2∈[0,1),如果An′-1≤λ2<An′并且n′≠n,那么选择个体n′作为父体2,转到步骤E5,否则转到步骤E4;
步骤E5:个体选择操作结束。
本发明的有益效果在于:
(1)相对传统的启发式调度方法和智能计算方法,本发明设计采用了混合动态关键任务优先调度的启发式方法和遗传算法,提高了搜索效率和质量。
(2)相对于传统的单双点交叉变异操作,设计采用了加强型混合单双点交叉变异操作,有效提高了形成新个体的质量。
(3)相对于传统的个体选择操作,根据种群中个体适应度值的平均偏差来选择合适的个体选择操作,有利于从种群中选出更合适的个体作为父体,提高了算法的效率。
(4)采用由当代种群和新种群合并产生下一代种群的策略,可以保证最优个体被遗传到下一代,使算法单调收敛。
附图说明
图1是本发明一种混合启发式与智能算法的多模资源受限项目调度优化方法的流程示意图。
图2是本发明实施例中任务间的时序关系图。
具体实施方式
下面结合图1、图2及实施例对本发明做进一步详细说明,但本发明并不仅限于以下的实施例。
一个项目由编号为0至19的20个任务组成,其任务结构即时序关系如图2所示,其中t0和t19是人为增加的虚拟任务,即不占用项目工期也不占用资源,t1到t18的可执行模式,以及该模式下执行时需要的时间、占用可更新资源和不可更新资源的数量如表1所示;在该项目中可更新资源1在任意时刻的可使用量为12、可更新资源2在任意时刻的可使用量为13、不可更新资源1在整个项目工期中的可使用量为70、不可更新资源2在整个项目工期中的可使用量为85。
Figure BDA0002311728010000081
表1
针对上述案例,如图1所示,一种混合启发式与智能算法的多模资源受限项目调度优化方法,包括以下实施步骤:
执行步骤1:形式化多模资源受限项目调度问题,获取调度优化所需的信息;
获取项目的任务集T={t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19},其中任务0和任务19,即t0和t19是虚拟任务,任务1到任务18,即t1,…,t18是实际需要调度的任务;
获取任务间的时序关系,即任务j的父任务集PRj和子任务集SCj
Figure BDA0002311728010000082
SC0={t1,t2,t3};PR1={t0},SC1={t4,t6,t14};PR2={t0},SC2={t8};PR3={t0},SC3={t4,t5,t6};
PR4={t1,t3},SC4={t10,t11,t13};PR5={t3},SC5={t7,t12,t13};PR6={t1,t3},SC6={t10,t18};
PR7={t5},SC7={t8};PR8={t2,t7},SC8={t9,t14,t15};PR9={t8},SC9={t11,t16};
PR10={t4,t6},SC10={t12,t16};PR11={t4,t9},SC11={t18};PR12={t5,t10},SC12={t17};
PR13={t4,t5},SC13={t15,t17};PR14={t1,t8},SC14={t17};PR15={t8,t13},SC15={t16,t18};
PR16={t9,t10,t15},SC16={t19};PR17={t12,t13,t14},SC17={t19};PR18={t6,t11,t15},SC18={t19};
PR19={t16,t17,t18},
Figure BDA0002311728010000091
获取项目中可更新资源k在任意时刻的可使用量Rk:R1=12,R2=13,不可更新资源l在整个项目工期中的可使用量Nl:N1=70,N2=85;
获取任务j在模式m下执行时需要的时间即工期dj,m和占用的可更新资源数量rj,m,k、不可更新资源数量nj,m,l:d1,1=2,r1,1,1=6,r1,1,2=9,n1,1,1=0,n1,1,2=8;d1,2=3,r1,2,1=5,r1,2,2=7,n1,2,1=4,n1,2,2=0;d1,3=5,r1,3,1=5,r1,3,2=6,n1,3,1=0,n1,3,2=6;……;d18,1=2,r18,1,1=6,r18,1,2=6,n18,1,1=0,n18,1,2=10;d18,2=4,r18,2,1=3,r18,2,2=4,n18,2,1=8,n18,2,2=0;d18,3=5,r18,3,1=3,r18,3,2=1,n18,3,1=2,n18,3,2=0。
执行步骤2:如果存在不可更新资源l满足
Figure BDA0002311728010000092
或存在一个任务j和可更新资源k满足
Figure BDA0002311728010000093
那么该问题不存在可行的调度方案,求解结束,否则转到步骤3;
对于不可更新资源1,
Figure BDA0002311728010000094
对于不可更新资源2,
Figure BDA0002311728010000095
对于可更新资源1,所有的任务j都满足
Figure BDA0002311728010000096
对于可更新资源2,所有的任务j都满足
Figure BDA0002311728010000097
因此,该问题可能存在可行的调度方案,转到步骤3。执行步骤3:进行预处理:对模式和资源进行冗余和无效检查,去除冗余模式、无效模式和冗余资源;
执行步骤3.1:mflg=0,rflg=0;由于不存在rj,m,k>Rk及nj,m,l>Nl,j=1,…,18,m=1,…,Mj,k=1,2,l=1,2,因此本项目不存在无效模式;
执行步骤3.2:由于mflg=0,因此令mflg=1,转到步骤3.3;
执行步骤3.3;由于存在任务12及其模式2和模式3满足:d12,2=8<d12,3=9,r12,2,1=6≤r12,3,1=6,r12,2,2=1≤r12,3,2=1,n12,2,1=3<n12,3,1=6,n12,2,2=2<n12,3,2=4,因此对于任务12来说,模式3是冗余的,从任务12中去除模式3:令M12=3-1=2,rflg=0;
执行步骤3.4:由于rflg=0,因此令rflg=1,转到步骤3.5;
执行步骤3.5:对于可更新资源1:
Figure BDA0002311728010000101
对于可更新资源2:
Figure BDA0002311728010000102
因此不存在可更新资源k满足:
Figure BDA0002311728010000103
本项目不存在冗余的可更新资源;
执行步骤3.6:对于不可更新资源1:
Figure BDA0002311728010000104
对于不可更新资源2:
Figure BDA0002311728010000105
因此不存在不可更新资源l满足:
Figure BDA0002311728010000106
本项目不存在冗余的不可更新资源;
执行步骤3.7:由于mflg=1∧rflg=1,因此转到步骤3.8;
执行步骤3.8:预处理结束。
执行步骤4:基于个体随机生成操作生成N个不同的个体,形成初始当代种群,并对当代种群中的每个个体进行个体解码,获得个体的适应度值;
设种群规模N=10;
基于个体随机生成操作生成一个个体的具体实施过程如下:
从可以执行任务1的模式中随机选择一个模式,其为模式1,即g1=1;从可以执行任务2的模式中随机选择一个模式,其为模式1,即g2=1;……,不断重复以上操作,直至所有基因位都确定,生成个体ch1={1,1,1,2,1,2,2,2,1,3,1,1,3,1,3,2,2,1};
同理,可以生成当代种群的剩余9个不同个体如下:
ch2={1,1,2,1,3,2,3,1,2,3,3,1,2,3,1,1,3,2};ch3={2,2,1,1,2,3,1,3,3,3,3,2,1,1,3,2,2,1};
ch4={3,1,3,1,1,1,1,3,3,1,3,1,2,3,3,3,1,3};ch5={2,3,2,3,2,3,3,3,2,1,1,1,3,1,1,1,3,1};
ch6={1,1,3,3,1,3,3,1,3,3,3,2,3,2,1,1,2,3};ch7={1,1,3,3,3,3,2,2,1,2,3,1,3,2,1,2,2,3};
ch8={3,1,2,1,2,1,1,1,2,2,3,2,3,2,2,2,1,1};ch9={3,1,2,3,3,1,3,3,2,3,1,1,3,1,3,2,1,2};
ch10={1,1,1,2,3,3,2,1,3,1,3,1,2,1,2,1,2,1};
这样最终形成的初始当代种群为CP={ch1,ch2,ch3,ch4,ch5,ch6,ch7,ch8,ch9,ch10}。
以个体ch1={1,1,1,2,1,2,2,2,1,3,1,1,3,1,3,2,2,1}为例,个体解码的具体实施步骤如下:
执行步骤A1:计算任务的rank值:对于没有子任务的任务19,其rank19=0,其它任务的rank递归计算如下:rank18=d18,1+max{rank19}=2+0=2,rank17=d17,2+max{rank19}=8,同理,rank16=4,rank15=9,rank14=12,rank13=16,rank12=15,rank11=8,rank10=19,rank9=11,rank8=20,rank7=29,rank6=22,rank5=32,rank4=21,rank3=40,rank2=26,rank1=24;
执行步骤A2:系统状态初始化:f0=0,
Figure BDA0002311728010000111
任务完成时间集F={f0,lf}={0,122};对应于F中各完成时间可更新资源k的剩余可用量为:
Figure BDA0002311728010000112
Figure BDA0002311728010000113
Figure BDA0002311728010000114
P(t4)={t1,t3},P(t5)={t3},P(t6)={t1,t3},P(t7)={t5},P(t8)={t2,t7},P(t9)={t8},P(t10)={t4,t6},P(t11)={t4,t9},P(t12)={t5,t10},P(t13)={t4,t5},P(t14)={t1,t8},P(t15)={t8,t13},P(t16)={t9,t10,t15},P(t17)={t12,t13,t14},P(t18)={t6,t11,t15};
Figure BDA0002311728010000115
UT={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18};把UT中
Figure BDA0002311728010000116
的任务,即t1,t2,t3,移动到RT中,则UT={t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18},RT={t1,t2,t3};
执行步骤A3:由于rt1+rank1=0+24=24、rt2+rank2=26、rt3+rank3=40,rt3+rank3最大,因此任务3为关键任务,从RT={t1,t2,t3}中取出任务3,任务3采用的模式为m=g3=1;
执行步骤A4:计算任务3的完成时间;即执行步骤A4.1:任务3的就绪时间
Figure BDA0002311728010000121
由于r3,1,1=5>0,在F={f0,lf}={0,122}中,
Figure BDA0002311728010000122
因此可更新资源1的剩余可用量满足任务3且开始时间点大于rt3=0的时间段为[0,122],即
Figure BDA0002311728010000123
由于r3,1,2=5>0,在F={f0,lf}={0,122}中,
Figure BDA0002311728010000124
因此可更新资源2的剩余可用量满足任务3且开始时间点大于rt3=0的时间段为[0,122],即
Figure BDA0002311728010000125
执行步骤A4.2:找出所有可更新资源的剩余可用量都满足任务3的公共时间段AU3=AU3,1∩AU3,2=[0,122]∩[0,122]=[0,122];执行步骤A4.3:在AU3中找出可以执行任务3的最早时间段[0,122],满足122-0=122>d3,1=8;执行步骤A4.4:令任务3的开始时间s3=0,结束时间f3=s3+d3,1=0+8=8;
执行步骤A5:由于
Figure BDA0002311728010000126
F=F∪{f3}={f0,lf}∪f3={f0,f3,lf}={0,8,122},增加f3=8时刻可更新资源的剩余可用量:
Figure BDA0002311728010000127
执行步骤A6:更新[s3,f3)=[0,8)时段内可更新资源的剩余可用量:
Figure BDA0002311728010000128
执行步骤A7:在P(t4)、P(t5)、P(t6)中删除t3,则P(t4)={t1}、
Figure BDA0002311728010000129
P(t6)={t1},由于
Figure BDA00023117280100001210
故把UT中的t5移到RT中,则UT={t4,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18},RT={t1,t2,t5};
执行步骤A8:由于RT={t1,t2,t5}不为空,故转到步骤A3;
执行步骤A3:由于rt1+rank1=24,rt2+rank2=26,rt5+rank5=8+32=40,rt5+rank5最大,因此任务5为关键任务,从RT={t1,t2,t5}中取出t5,任务5采用的模式为m=g5=1;
执行步骤A4:计算任务5的完成时间;即执行步骤A4.1:任务5的就绪时间rt5=f3=8,由于r5,1,1=6>0,在F={f0,f3,lf}={0,8,122}中,
Figure BDA0002311728010000131
因此资源1的剩余可用量满足任务5且开始时间点大于rt5=8的时间段为[8,122],即
Figure BDA00023117280100001310
由于r5,1,2=9>0,在F={f0,f3,lf}={0,8,122}中,
Figure BDA0002311728010000132
因此可更新资源2的剩余可用量满足任务5且开始时间点大于rt5=8的时间段为[8,122],即
Figure BDA0002311728010000133
执行步骤A4.2:找出所有可更新资源的剩余可用量都满足任务5的公共时间段AU5=AU5,1∩AU5,2=[8,122]∩[8,122]=[8,122];执行步骤A4.3:在AU5中找出可以执行任务5的最早时间段[8,122],满足122-8=114>d5,1=3;执行步骤A4.4:令任务5的开始时间s5=8,结束时间f5=s5+d5,1=8+3=11;
执行步骤A5:由于
Figure BDA0002311728010000139
则F={f0,f3,f5,lf}={0,8,11,122},增加f5=11时刻可更新资源的剩余可用量:
Figure BDA0002311728010000134
执行步骤A6:更新[s5,f5)=[8,11)时段内可更新资源的剩余可用量:
Figure BDA0002311728010000135
执行步骤A7:在P(t7)、P(t12)、P(t13)中删除t5,则
Figure BDA0002311728010000136
P(t12)={t10},P(t13)={t4},由于
Figure BDA0002311728010000137
故把UT中的t7移到RT中,则UT={t4,t6,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18},RT={t1,t2,t7};
执行步骤A8:由于RT={t1,t2,t7}不为空,故转到步骤A3;
……
这样不断复执行步骤A3至步骤A8,直至
Figure BDA0002311728010000138
获得所有任务的完成时间:f1=13,f2=26,f3=8,f4=18,f5=11,f6=16,f7=20,f8=34,f9=37,f10=30,f11=47,f12=54,f13=61,f14=41,f15=66,f16=70,f17=69,f18=71,转到步骤A9;
执行步骤A9:由于
Figure BDA0002311728010000141
Figure BDA0002311728010000142
因此该个体是可行个体;故令个体的适应度值为项目执行时间
Figure BDA0002311728010000143
个体解码结束;
对个体ch2={1,1,2,1,3,2,3,1,2,3,3,1,2,3,1,1,3,2}进行个体解码的具体过程如下:
执行步骤A1到A8获得所有任务的完成时间:f1=16,f2=30,f3=9,f4=20,f5=14,f6=19,f7=24,f8=37,f9=41,f10=24,f11=50,f12=57,f13=63,f14=43,f15=64,f16=75,f17=72,f18=68;
执行步骤A9:由于
Figure BDA0002311728010000144
该个体是不可行个体,因此fit2=lf+ms2=122+max{f16,f17,f18}=122+75=197,个体解码结束;
同理,经个体解码可得当代种群中其它剩余个体的适应度值:fit3=66,fit4=78,fit5=62,fit6=76,fit7=77,fit8=190,fit9=75,fit10=74。
执行步骤5:判断是否满足进化终止条件,如满足,则转到步骤10,否则转到步骤6;
终止条件设为连续GG=20代最优个体没有改进;
当前种群是初始种群,迭代进化了1代,没有满足进化终止条件,因此转到步骤6。
执行步骤6:计算当代种群中个体适应度值的平均偏差
Figure BDA0002311728010000145
进行N次加强型混合单双点交叉操作形成新种群;
取偏差阈值ε=0.15;
Figure BDA0002311728010000146
Figure BDA0002311728010000147
个体适应度值的平均偏差
Figure BDA0002311728010000148
对当代种群进行N次加强型混合单双点交叉操作形成新种群的具体实施过程如下:
执行步骤B1:由于dv=0.401>ε=0.15,因此采用基于值的轮赌法从当代种群中随机选择两个不同的个体作为父体1和父体2,即执行步骤E1:计算个体被选中的概率:
Figure BDA0002311728010000151
同理A2=0.032,A3=0.121,A4=0.113,A5=0.123,A6=0.114,A7=0.113,A8=0.037,A9=0.115,A10=0.115;执行步骤E2:计算累计概率:A0=0,
Figure BDA0002311728010000152
A3=0.270,A4=0.383,A5=0.506,A6=0.620,A7=0.733,A8=0.770,A9=0.885,A10=1.000;执行步骤E3:产生一个[0,1)的随机数,其为0.954,由于A9=0.885≤0.954<1.000=A10,因此选择ch10={1,1,1,2,3,3,2,1,3,1,3,1,2,1,2,1,2,1}作为父体1,即chp1=ch10;执行步骤E4:产生一个[0,1)的随机数,其为0.438,由于A4=0.383≤0.438<0.506=A5,且5≠10,因此选择ch5={2,3,2,3,2,3,3,3,2,1,1,1,3,1,1,1,3,1}作为父体2,即chp2=ch5;执行步骤E5:个体选择操作结束;
执行步骤B2:从前向后找出父体1和父体2的第一个不同基因的位置,其为1,从后向前找出父体1和父体2的第一个不同基因的位置,其为17;由于1<17,故转到步骤B3;
执行步骤B3:随机产生一个1到16之间的正整数,其为6;
执行步骤B4:如表2所示,子体1的前6个基因来自于父体1的前6个基因,后12个基因来自于父体2的后12个基因;
执行步骤B5:如表2所示,子体2的前6个基因来自于父体2的前6个基因,后12个基因来自于父体1的后12个基因;
基因 g<sub>1</sub> g<sub>2</sub> g<sub>3</sub> g<sub>4</sub> g<sub>5</sub> g<sub>6</sub> g<sub>7</sub> g<sub>8</sub> g<sub>9</sub> g<sub>10</sub> g<sub>11</sub> g<sub>12</sub> g<sub>13</sub> g<sub>14</sub> g<sub>15</sub> g<sub>16</sub> g<sub>17</sub> g<sub>18</sub>
父体1 1 1 1 2 3 3 2 1 3 1 3 1 2 1 2 1 2 1
父体2 2 3 2 3 2 3 3 3 2 1 1 1 3 1 1 1 3 1
子体1 1 1 1 2 3 3 3 3 2 1 1 1 3 1 1 1 3 1
子体2 2 3 2 3 2 3 2 1 3 1 3 1 2 1 2 1 2 1
表2
执行步骤B6:随机产生2个1到16之间的正整数,其为6和11;
执行步骤B7:如表3所示,子体3的前6个基因和后7个基因来自于父体1的前6个基因和后7个基因,中间的5个基因来自于父体2的中间的5个基因;
执行步骤B8:如表3所示,子体4的前6个基因和后7个基因来自于父体2的前6个基因和后7个基因,中间的5个基因来自于父体1的中间的5个基因;
执行步骤B9:对子体1、子体2、子体3、子体4进行个体解码,其适应度值分别为68、68、73、70,因此将子体1放到新种群中,即ch′1={1,1,1,2,3,3,3,3,2,1,1,1,3,1,1,1,3,1};
Figure BDA0002311728010000161
表3
同理,经交叉后生成新种群中的剩余个体为:
ch′2={2,2,1,1,2,2,3,1,2,3,3,1,2,3,1,1,3,2};ch′3={2,1,2,1,2,1,3,3,2,1,1,1,3,1,1,1,3,1};
ch′4={1,1,1,2,3,1,3,3,2,3,1,1,3,1,3,2,1,1};ch′5={1,1,2,1,3,2,3,1,2,3,3,1,3,2,1,2,2,3};
ch′6={1,1,2,3,3,1,3,3,2,3,1,1,3,1,3,2,1,2};ch′7={1,1,3,3,1,3,3,1,3,3,1,1,3,2,1,1,2,3};
ch′8={1,1,2,1,3,2,3,1,2,3,3,1,2,2,1,1,2,3};ch′9={1,1,2,1,3,2,3,1,2,3,1,1,3,1,3,2,1,2};
ch′10={3,1,2,1,2,1,1,1,2,2,3,2,3,1,3,2,2,1};
这样最终生成的新种群为NP={ch′1,ch′2,ch′3,ch′4,ch′5,ch′6,ch′7,ch′8,ch′9,ch′10};
其中的个体适应度值分别为:fit′1=68,fit′2=67,fit′3=65,fit′4=71,fit′5=73,fit′6=70,fit′7=72,fit′8=75,fit′9=77,fit′10=60。
执行步骤7:对新种群中的每个个体进行加强型混合单双点变异操作;
对新种群进行变异操作的具体实施过程如下:
取变异率pi=0.2;
对于ch′1={1,1,1,2,3,3,3,3,2,1,1,1,3,1,1,1,3,1};
执行步骤C1:随机产生一个[0,1)的随机数λ,其为0.36,由于0.36>0.2,转到步骤C5;
执行步骤C5:变异操作结束;
……
对于ch′7={1,1,3,3,1,3,3,1,3,3,1,1,3,2,1,1,2,3};
执行步骤C1:随机产生一个[0,1)的随机数λ,其为0.01,转到步骤C2;
执行步骤C2:从可供选择的模式数量大于1的任务中随机选择一个任务,其为任务4,从任务4的可执行模式1,2,3中重新随机选择一个与当前所用模式m=g4=3不同的模式,其为模式2,即g4=2,形成变异后的新个体chm1={1,1,3,2,1,3,3,1,3,3,1,1,3,2,1,1,2,3};
执行步骤C3:从可供选择的模式数量大于1的任务中随机选择两个任务,其为任务7和任务15,从任务7的可执行模式1,2,3中重新随机选择一个与当前所用模式m=g7=3不同的模式,其为模式1,即g7=1,从任务15的可执行模式1,2,3中重新随机选择一个与当前所用模式m=g15=1不同的模式,其为模式3,即g15=3,形成变异后的新个体chm2={1,1,3,3,1,3,1,1,3,3,1,1,3,2,3,1,2,3};
执行步骤C4:对变异后的新个体chm1、chm2进行个体解码,其适应度值分别为72、69,则用个体chm2替换原个体ch′7,即ch′7={1,1,3,3,1,3,1,1,3,3,1,1,3,2,3,1,2,3},fit′7=69;
执行步骤C5:变异操作结束;
……
这样,经变异后新种群中的个体变为:
ch′1={1,1,1,2,3,3,3,3,2,1,1,1,3,1,1,1,3,1};ch′2={2,2,1,1,2,2,3,1,2,3,3,1,2,3,1,1,3,2};
ch′3={2,1,2,1,2,1,3,3,2,1,1,1,3,1,1,1,3,1};ch′4={1,1,1,2,3,1,3,3,2,3,1,1,3,1,3,2,1,1};
ch′5={1,1,2,1,3,2,3,1,2,3,3,1,3,2,1,2,2,3};ch′6={1,1,2,3,3,1,3,3,2,3,1,1,3,1,3,2,1,2};
ch′7={1,1,3,3,1,3,1,1,3,3,1,1,3,2,3,1,2,3};ch′8={1,1,2,1,3,2,3,1,2,3,3,1,2,2,1,1,2,3};
ch′9={1,2,2,1,3,2,3,1,2,3,1,1,3,1,3,2,1,2};ch′10={3,1,2,1,2,1,1,1,2,2,3,2,3,1,3,1,2,1};
其适应度值分别为:fit′1=68,fit′2=67,fit′3=65,fit′4=71,fit′5=73,fit′6=70,fit′7=69,fit′8=75,fit′9=71,fit′10=60。
执行步骤8:从当代种群和新种群中从优到劣选出N个不同的个体形成下一代种群;
根据适应度值,选择当代种群的ch1、ch3、ch5和新种群的ch′1、ch′2、ch′3、ch′4、ch′6、ch′7、ch′10形成下一代种群,即GP={ch1,ch3,ch5,ch′1,ch′2,ch′3,ch′4,ch′6,ch′7,ch′10}。
执行步骤9:令下一代种群为当代种群,转到步骤5;
令CP=GP,则当代种群的所有个体为:
ch1={1,1,1,2,1,2,2,2,1,3,1,1,3,1,3,2,2,1};ch2={2,2,1,1,2,3,1,3,3,3,3,2,1,1,3,2,2,1};
ch3={2,3,2,3,2,3,3,3,2,1,1,1,3,1,1,1,3,1};ch4={1,1,1,2,3,3,3,3,2,1,1,1,3,1,1,1,3,1};
ch5={2,2,1,1,2,2,3,1,2,3,3,1,2,3,1,1,3,2};ch6={2,1,2,1,2,1,3,3,2,1,1,1,3,1,1,1,3,1};
ch7={1,1,1,2,3,1,3,3,2,3,1,1,3,1,3,2,1,1};ch8={1,1,2,3,3,1,3,3,2,3,1,1,3,1,3,2,1,2};
ch9={1,1,3,3,1,3,1,1,3,3,1,1,3,2,3,1,2,3};ch10={3,1,2,1,2,1,1,1,2,2,3,2,3,1,3,1,2,1};
其适应度值分别为:fit1=71,fit2=66,fit3=62,fit4=68,fit5=67,fit6=65,fit7=71,fit8=70,fit9=69,fit10=60;
转到步骤5。
执行步骤5:判断是否满足进化终止条件,如满足,则转到步骤10,否则转到步骤6;
由于种群只迭代进化了2代,没有满足进化终止条件,因此转到步骤6。
执行步骤6:计算当代种群中个体适应度值的平均偏差
Figure BDA0002311728010000181
进行N次加强型混合单双点交叉操作形成新种群;
对当代种群进行交叉操作的过程如下:
执行步骤B1:由于
Figure BDA0002311728010000182
由于dv=0.046≤ε=0.15,因此采用基于排序的轮赌法当代种群中随机选择两个不同的个体作为父体1和父体2,即执行步骤D1:对当代种群中的个体从优到劣进行排序,获得每个个体对应的排序值:rk1=9,rk2=4,rk3=2,rk4=6,rk5=5,rk6=3,rk7=10,rk8=8,rk9=7,rk10=1;执行步骤D2:令R=1+1/N=1.1,计算个体被选中的概率:
Figure BDA0002311728010000184
同理A2=0.111,A3=0.135,A4=0.092,A5=0.101,A6=0.122,A7=0.063,A8=0.076,A9=0.083,A10=0.148;执行步骤D3:计算累计概率:A0=0,
Figure BDA0002311728010000183
A3=0.315,A4=0.407,A5=0.508,A6=0.630,A7=0.693,A8=0.769,A9=0.852,A10=1.000;执行步骤D4:产生一个[0,1)的随机数,其为0.318,由于A3=0.315≤0.318<0.407=A4,因此选择ch4作为父体1,即chp1=ch4;执行步骤D5:产生一个[0,1)的随机数,其为0.572,由于A5=0.508≤0.572<0.630=A6,且6≠4,因此选择ch6作为父体2,即chp2=ch6;执行步骤D6:个体选择操作结束。
执行步骤B2至步骤B9,生成新个体ch′1={1,1,2,1,2,3,3,3,2,1,1,1,3,1,1,1,3,1},其适应度值为fit′1=68;
同理,经交叉后生成新种群中的剩余个体:
ch′2={3,1,2,1,2,1,1,1,2,2,3,2,3,1,1,1,3,1};ch′3={1,1,1,2,1,1,3,3,2,3,1,1,3,1,3,2,2,1};
ch′4={2,2,1,1,2,3,1,3,2,3,1,1,3,1,3,2,2,1};ch′5={2,3,3,3,1,3,3,3,2,1,1,1,3,1,1,1,3,1};
ch′6={2,1,2,1,2,1,3,3,2,1,1,1,3,1,3,1,3,1};ch′7={3,1,2,1,2,1,1,1,2,2,3,2,3,1,3,1,2,1};
ch′8={1,1,3,3,1,3,1,1,3,3,1,1,3,1,3,2,2,3};ch′9={2,2,1,1,2,3,1,3,3,3,1,1,1,1,3,2,2,1};
ch′10={2,2,1,1,2,1,1,1,2,2,3,2,1,1,3,2,2,1};
这样最终生成的新种群为NP={ch′1,ch′2,ch′3,ch′4,ch′5,ch′6,ch′7,ch′8,ch′9,ch′10};
其适应度值分别为:fit′1=68;fit′2=60,fit′3=68,fit′4=63,fit′5=62,fit′6=65,fit′7=60,fit′8=68,fit′9=62,fit′10=66。
执行步骤7:对新种群中的每个个体进行加强型混合单双点变异操作;
新种群中的所有个体经变异后变为:
ch′1={1,1,2,1,2,3,3,3,2,1,1,1,3,1,1,1,3,2};ch′2={3,1,2,1,2,1,1,1,2,1,3,2,3,1,1,1,3,1};
ch′3={1,1,1,2,1,1,3,3,1,2,1,1,3,1,3,2,2,1};ch′4={2,2,1,1,2,3,1,3,2,3,1,1,3,1,3,2,2,1};
ch′5={2,3,3,3,1,3,3,3,2,1,1,1,3,1,1,1,3,1};ch′6={2,1,2,1,2,1,3,3,2,1,1,1,3,1,3,1,3,1};
ch′7={3,1,2,1,2,1,1,1,2,2,3,2,3,1,3,1,2,1};ch′8={1,1,3,3,1,3,1,1,3,3,1,1,3,1,3,2,2,3};
ch′9={2,2,1,1,2,3,1,3,3,3,1,1,1,1,1,2,2,1};ch′10={2,2,1,1,2,1,1,1,2,2,3,2,1,1,3,2,2,1};
其适应度值分别为:fit′1=68,fit′2=63,fit′3=69,fit′4=63,fit′5=62,fit′6=65,fit′7=60,fit′8=68,fit′9=60,fit′10=66。
执行步骤8:从当代种群和新种群中从优到劣选出N个不同的个体形成下一代种群;
根据适应度值,选择当代种群的ch2、ch3、ch6、ch10和新种群的ch′2、ch′4、ch′5、ch′6、ch′9、ch′10形成下一代种群,即GP={ch2,ch3,ch6,ch10,ch′2,ch′4,ch′5,ch′6,ch′9,ch′10}。
执行步骤9:令下一代种群为当代种群,转到步骤5;
令CP=GP,则当代种群的所有个体为:
ch1={2,2,1,1,2,3,1,3,3,3,3,2,1,1,3,2,2,1};ch2={2,3,2,3,2,3,3,3,2,1,1,1,3,1,1,1,3,1};
ch3={2,1,2,1,2,1,3,3,2,1,1,1,3,1,1,1,3,1};ch4={3,1,2,1,2,1,1,1,2,2,3,2,3,1,3,1,2,1};
ch5={3,1,2,1,2,1,1,1,2,1,3,2,3,1,1,1,3,1};ch6={2,2,1,1,2,3,1,3,2,3,1,1,3,1,3,2,2,1};
ch7={2,3,3,3,1,3,3,3,2,1,1,1,3,1,1,1,3,1};ch8={2,1,2,1,2,1,3,3,2,1,1,1,3,1,3,1,3,1};
ch9={2,2,1,1,2,3,1,3,3,3,1,1,1,1,1,2,2,1};ch10={2,2,1,1,2,1,1,1,2,2,3,2,1,1,3,2,2,1};
其适应度值分别为:fit1=66,fit2=62,fit3=65,fit4=60,fit5=63,fit6=63,fit7=62,fit8=65,fit9=60,fit10=66;
转到步骤5。
……
这样不断重复执行步骤5至步骤9,直至进化终止条件满足,即连续迭代GG=20代最优个体没改进,当代种群变为:
ch1={1,3,2,3,2,2,1,3,2,1,1,2,1,1,1,3,2,1};ch2={1,3,2,3,1,2,1,3,2,1,1,2,1,1,1,3,2,1};
ch3={1,3,2,3,1,2,1,3,2,1,1,2,1,1,1,2,2,1};ch4={1,2,3,3,1,2,2,3,2,1,2,2,3,1,1,2,2,1};
ch5={1,2,3,1,1,2,2,3,2,1,1,2,3,1,1,3,2,1};ch6={1,3,3,1,1,2,1,3,2,3,1,1,3,1,3,3,2,1};
ch7={1,3,3,1,1,2,1,3,2,3,1,2,3,1,3,2,1,1};ch8={1,2,3,1,1,2,2,3,2,1,1,2,3,1,1,2,3,3};
ch9={1,2,3,1,1,2,2,3,2,1,1,2,3,1,1,2,2,1};ch10={1,3,3,1,1,2,1,3,2,1,1,2,3,1,1,3,2,1};
其适应度值分别为:fit1=54,fit2=53,fit3=52,fit4=49,fit5=51,fit6=55,fit7=57,fit8=48,fit9=50,fit10=56;
转到步骤10。
执行步骤10:如果当代种群中的最优个体为可行个体,那么输出最优个体对应的调度方案,及其项目执行时间
Figure BDA0002311728010000201
否则该问题无可行调度方案;
ch8={1,2,3,1,1,2,2,3,2,1,1,2,3,1,1,2,3,3}为当代种群中最优的个体,由于该个体是可行个体,故输出对应的调度方案如表4所示,其项目执行时间为ms=48。
Figure BDA0002311728010000211
表4
上述实施例只是本发明的较佳实施例,并不是对本发明技术方案的限制,只要是不经过创造性劳动即可在上述实施例的基础上实现的技术方案,均应视为落入本发明专利的权利保护范围内。

Claims (3)

1.一种混合启发式与智能算法的多模资源受限项目调度优化方法,其特征在于:包括以下步骤:
步骤1:形式化多模资源受限项目调度问题,获取调度优化所需的信息;
获取项目任务集T={t0,t1,...,tJ,tJ+1};其中tj表示任务j,即编号为j的任务,t0与tJ+1是人为增加的虚拟任务,即不占用项目工期也不占用资源,J是需要调度的实际任务数量;
获取任务间的时序关系,即任务j的父任务集PRj和子任务集SCj,任务j在其父任务j-∈PRj全部完工之前不能开始执行,j=0,1,…,J+1,t0没有父任务即
Figure FDA0002311728000000011
tJ+1没有子任务即
Figure FDA0002311728000000012
获取可更新资源k在任意时刻的可使用量Rk,k=1,…,K,K是可更新资源种类数量;获取不可更新资源l在整个项目工期中的可使用量Nl,l=1,…,L,L是不可更新资源种类数量;
获取任务j在模式m下执行时需要的时间即工期dj,m和占用的可更新资源k的数量rj,m,k、不可更新资源l的数量nj,m,l;j=1,…,J,m=1,…,Mj,k=1,…,K,l=1,…,L,其中Mj是可供任务j选择采用的模式数量;
步骤2:如果存在不可更新资源l满足
Figure FDA0002311728000000013
或存在一个任务j和可更新资源k满足
Figure FDA0002311728000000014
那么该问题不存在可行的调度方案,求解结束,否则转到步骤3;
步骤3:进行预处理:对模式和资源进行冗余和无效检查,去除冗余模式、无效模式和冗余资源;
步骤3.1:令模式标记值mflg=0、资源标记值rflg=0;如果存在rj,m,k>Rk或nj,m,l>Nl,那么对于任务j模式m是无效的,在任务j中去除模式m:令
Figure FDA0002311728000000015
Figure FDA0002311728000000016
其中:
Figure FDA0002311728000000017
k=1,…,K,l=1,…,L;令Mj=Mj-1;
步骤3.2:如果mflg=0,那么令mflg=1,转到步骤3.3;否则转到步骤3.4;
步骤3.3:如果存在任务j,模式m和m′满足:dj,m′≤dj,m,rj,m′,k≤rj,m,k,nj,m′,l≤nj,m,l,m′≠m,k=1,…,K,l=1,…,L;那么对于任务j模式m是冗余的,在任务j中去除模式m:令
Figure FDA0002311728000000021
其中:
Figure FDA0002311728000000022
k=1,…,K,l=1,…,L;令Mj=Mj-1,rflg=0;
步骤3.4:如果rflg=0,那么令rflg=1,转到步骤3.5;否则转到步骤3.7;
步骤3.5:如果可更新资源k满足:
Figure FDA0002311728000000023
那么该可更新资源是冗余的,去除可更新资源k:令
Figure FDA0002311728000000024
其中:j=1,…,J,
Figure FDA0002311728000000025
令K=K-1,mflg=0;
步骤3.6:如果不可更新资源l满足:
Figure FDA0002311728000000026
那么该不可更新资源是冗余的,去除不可更新资源l:令
Figure FDA0002311728000000027
其中:j=1,…,J,
Figure FDA0002311728000000028
令L=L-1,mflg=0;
步骤3.7:如果mflg=1∧rflg=1,那么转到步骤3.8,否则转到步骤3.2;
步骤3.8:预处理结束;
步骤4:基于个体随机生成操作生成N个不同的个体,形成初始当代种群,并对当代种群中的每个个体进行个体解码,获得个体的适应度值;
其中N是种群规模;
所述个体采用J位整数编码,其方法如下:ch={g1,…,gJ},基因gj表示任务j执行时采用的模式,gj=1,…,Mj
所述个体随机生成操作描述如下:对于每一个任务j,j=1,…,J,从可以执行该任务的模式中随机选择一个模式m,即gj=m;
所述个体解码采用基于动态关键任务优先调度的启发解码方法,包括如下步骤:
步骤A1:计算任务的排序值rank:对于没有子任务的任务J+1,rankJ+1=0;其它任务的rank采用如下递归公式进行计算:
Figure FDA0002311728000000029
步骤A2:系统状态初始化:令任务0的完成时间f0=0、完成时间集F={f0,lf},F中的元素从小到大排列;对应于F中各完成时间可更新资源k的剩余可用量为:
Figure FDA00023117280000000210
令就绪任务集
Figure FDA00023117280000000211
令要调度的任务集UT={t1,t2,…,tJ};令要调度任务的父任务中还没有完成调度的任务集P(tj)=PRj-{t0},j=1,…,J;把UT中
Figure FDA0002311728000000031
Figure FDA0002311728000000032
移到RT中;
步骤A3:从RT中取出关键任务,即任务就绪时间与rank之和最大的任务,不妨设为任务j,取出任务j采用的模式m=gj
步骤A4:计算任务j的完成时间
Figure FDA0002311728000000033
即:
步骤A4.1:对rj,m,k>0的每种可更新资源k找出其剩余可用量满足任务j的且开始时间点大于rtj的时间段AUj,k,不妨设
Figure FDA0002311728000000034
步骤A4.2:找出所有可更新资源的剩余可用量都满足任务j的公共时间段:
Figure FDA0002311728000000035
不妨设
Figure FDA0002311728000000036
步骤A4.3:在AUj中找出满足υjj≥dj,m的最早时间段[νjj];
步骤A4.4:令任务j的开始时间sj=vj,结束时间fj=sj+dj,m
步骤A5:如果fj在F中不存在,则F=F∪{fj},增加fj时刻可更新资源的剩余可用量:
Figure FDA0002311728000000037
其中:fj″是fj的前一个时刻;
步骤A6:更新[sj,fj)时段内可更新资源的剩余可用量:
Figure FDA0002311728000000038
步骤A7:在所有
Figure FDA0002311728000000039
中删除tj
Figure FDA00023117280000000310
把UT中
Figure FDA00023117280000000311
Figure FDA00023117280000000312
移到RT中;
步骤A8:如果RT不为空则转到步骤A3,否则转到步骤A9;
步骤A9:如果个体为不可行个体,即存在一个不可更新资源l满足
Figure FDA00023117280000000313
那么令个体的适应度值fit=lf+ms,否则令个体适应度值fit=ms,操作结束;
其中:fj表示任务j的完成时间;
Figure FDA00023117280000000314
表示τ时刻可更新资源k的剩余可用量;lf表示项目的最晚完成时间,
Figure FDA00023117280000000315
ms表示项目的执行时间,
Figure FDA00023117280000000316
所述个体适应度值越小,个体越优;
所述任务就绪时间计算如下:
Figure FDA0002311728000000041
rtj表示任务j的就绪时间;
步骤5:判断是否满足进化终止条件,如满足,则转到步骤10,否则转到步骤6;
所述终止条件为迭代到指定的代数TG或连续迭代GG代最优个体没有改进;
步骤6:计算当代种群中个体适应度值的平均偏差
Figure FDA0002311728000000042
进行N次加强型混合单双点交叉操作形成新种群;
所述加强型混合单双点交叉操作包括如下步骤:
步骤B1:如果dv≤ε,那么采用基于排序的轮赌法从当代种群中随机选择两个不同的个体作为父体1和父体2,否则采用基于值的轮赌法从当代种群中随机选择两个不同的个体作为父体1和父体2;不妨设父体1和父体2为:
Figure FDA0002311728000000043
生成的4个子体分别为:
Figure FDA0002311728000000044
Figure FDA0002311728000000045
步骤B2:从前向后找出chp1和chp2的第1个不同基因的位置n,从后开始向前找出chp1和chp2的第1个不同基因的位置m;如果n≠m那么转到步骤B3,否则转到步骤B1;
步骤B3:随机产生1个n到m-1的正整数α;
步骤B4:chc1的前α个基因来自于chp1的前α个基因,即
Figure FDA0002311728000000046
后J-α个基因来自于chp2的后J-α个基因,即
Figure FDA0002311728000000047
步骤B5:chc2的前α个基因来自于chp2的前α个基因,即
Figure FDA0002311728000000048
后J-α个基因来自于chp1的后J-α个基因,即
Figure FDA0002311728000000049
步骤B6:随机产生2个n到m-1的正整数α、β,不妨设α≤β;
步骤B7:chc3的前α个基因和后J-β个基因来自于chp1的前α个基因和后J-β个基因,即
Figure FDA00023117280000000410
中间的β-α个基因来自于chp2的中间的β-α个基因,即
Figure FDA00023117280000000411
步骤B8:chc4的前α个基因和后J-β个基因来自于chp2的前α个基因和后J-β个基因,即
Figure FDA00023117280000000412
中间的β-α个基因来自于chp1的中间的β-α个基因,即
Figure FDA0002311728000000051
α+1≤j≤β;
步骤B9:对chc1、chc2、chc3、chc4进行个体解码,按顺序把其中的一个最优个体放到新种群中;
其中:ε为偏差阈值;
步骤7:对新种群中的每个个体进行加强型混合单双点变异操作;
所述加强型混合单双点变异操作描述如下:
步骤C1:随机生成一个随机数λ∈[0,1);如果λ≤pi,那么转到步骤C2,否则转到步骤C5;
步骤C2:从可供选择的模式数量大于1的任务中随机选择一个任务;为该任务重新随机选择一个与当前所用模式不同的模式,形成变异后的新个体chm1
步骤C3:从可供选择的模式数量大于1的任务中随机选择两个任务;为这两个任务重新随机选择一个与当前所用模式不同的模式,形成变异后的新个体chm2
步骤C4:对变异后的新个体chm1、chm2进行个体解码,按顺序用其中的一个最优个体替换原个体ch;
步骤C5:变异操作结束;
其中:pi∈(0,1)是变异率;
步骤8:从当代种群和新种群中从优到劣选出N个不同的个体形成下一代种群;
步骤9:令下一代种群为当代种群,转到步骤5;
步骤10:如果当代种群中的最优个体为可行个体,那么输出最优个体对应的调度方案,及其项目执行时间
Figure FDA0002311728000000052
否则该问题无可行调度方案。
2.根据权利要求1所述的一种混合启发式与智能算法的多模资源受限项目调度优化方法,其特征在于:所述步骤B1中基于排序的轮赌法从当代种群中随机选择两个不同个体作为父体1和父体2的具体步骤如下:
步骤D1:对当代种群中的个体从优到劣进行排序,获得个体n的排序值rkn,n=1,…,N,其中排第一的其取1,排第二的其取2,以此类推,排最后一名的其取N;
步骤D2:计算个体n被选中的概率
Figure FDA0002311728000000053
R>1为区分度系数;
步骤D3:计算累计概率:
Figure FDA0002311728000000061
步骤D4:产生一个随机数λ1∈[0,1),如果
Figure FDA0002311728000000062
那么选择个体n作为父体1;
步骤D5:产生一个随机数λ2∈[0,1),如果
Figure FDA0002311728000000063
并且n′≠n,那么选择个体n′作为父体2,转到步骤D6,否则转到步骤D5;
步骤D6:个体选择操作结束。
3.根据权利要求1所述的一种混合启发式与智能算法的多模资源受限项目调度优化方法,其特征在于:所述步骤B1中基于值的轮赌法从当代种群中随机选择两个不同个体作为父体1和父体2的具体步骤如下:
步骤E1:计算个体n被选中的概率
Figure FDA0002311728000000064
步骤E2:计算累计概率:
Figure FDA0002311728000000065
步骤E3:产生一个随机数λ1∈[0,1),如果
Figure FDA0002311728000000066
那么选择个体n作为父体1;
步骤E4:产生一个随机数λ2∈[0,1),如果
Figure FDA0002311728000000067
并且n′≠n,那么选择个体n′作为父体2,转到步骤E5,否则转到步骤E4;
步骤E5:个体选择操作结束。
CN201911261523.0A 2019-12-10 2019-12-10 混合启发式与智能算法的多模资源受限项目调度优化方法 Withdrawn CN111008745A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911261523.0A CN111008745A (zh) 2019-12-10 2019-12-10 混合启发式与智能算法的多模资源受限项目调度优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911261523.0A CN111008745A (zh) 2019-12-10 2019-12-10 混合启发式与智能算法的多模资源受限项目调度优化方法

Publications (1)

Publication Number Publication Date
CN111008745A true CN111008745A (zh) 2020-04-14

Family

ID=70114323

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911261523.0A Withdrawn CN111008745A (zh) 2019-12-10 2019-12-10 混合启发式与智能算法的多模资源受限项目调度优化方法

Country Status (1)

Country Link
CN (1) CN111008745A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113434996A (zh) * 2021-01-21 2021-09-24 北京建筑大学 装配式混凝土结构塔机吊装服务调度方法
CN113723937A (zh) * 2021-11-02 2021-11-30 南京理工大学 一种基于启发式规则遗传算法的测发项目双层排期方法
CN113721545A (zh) * 2021-09-02 2021-11-30 内蒙古第一机械集团股份有限公司 一种含批处理机的混合流水车间排产方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113434996A (zh) * 2021-01-21 2021-09-24 北京建筑大学 装配式混凝土结构塔机吊装服务调度方法
CN113434996B (zh) * 2021-01-21 2023-04-25 北京建筑大学 装配式混凝土结构塔机吊装服务调度方法
CN113721545A (zh) * 2021-09-02 2021-11-30 内蒙古第一机械集团股份有限公司 一种含批处理机的混合流水车间排产方法
CN113721545B (zh) * 2021-09-02 2024-02-23 内蒙古第一机械集团股份有限公司 一种含批处理机的混合流水车间排产方法
CN113723937A (zh) * 2021-11-02 2021-11-30 南京理工大学 一种基于启发式规则遗传算法的测发项目双层排期方法
CN113723937B (zh) * 2021-11-02 2022-04-01 南京理工大学 一种基于启发式规则遗传算法的测发项目双层排期方法

Similar Documents

Publication Publication Date Title
CN111008745A (zh) 混合启发式与智能算法的多模资源受限项目调度优化方法
CN114186749B (zh) 基于强化学习及遗传算法的柔性车间调度方法及模型
CN111126800B (zh) 使用分层自适应智能算法的多模资源受限项目调度方法
CN107656799B (zh) 一种多云环境下考虑通信和计算代价的工作流调度方法
CN110991917B (zh) 采用两阶段遗传算法的多模资源受限项目调度优化方法
CN116027753A (zh) 一种多目标混合流水车间调度方法及系统
CN110928648B (zh) 融合启发式和智能计算的云工作流分段在线调度优化方法
CN116985146B (zh) 退役电子产品的机器人并行拆解规划方法
CN111090510A (zh) 混合启发式和遗传算法的两阶段云工作流调度优化方法
CN111026534B (zh) 云计算环境下基于多种群遗传算法的工作流执行优化方法
CN113467399A (zh) 一种知识驱动的柔性离散制造生产调度优化方法
CN110928670B (zh) 云计算环境下基于偏序自适应遗传算法的工作流优化方法
CN111027856B (zh) 基于二维多种群遗传算法的多模资源受限项目调度方法
CN110968428B (zh) 云工作流虚拟机配置和任务调度协同优化方法
CN111047183A (zh) 基于分层自适应智能计算算法的云工作流调度优化方法
CN110942209B (zh) 基于分层两阶段智能算法的资源受限项目调度优化方法
CN115545406A (zh) 异址机器的生产配送协同调度方法和系统
CN111078361A (zh) 基于分布式估计算法的云工作流调度优化方法
CN117610867A (zh) 一种无人集群多传感器任务分配调度优化方法与装置
CN110928669B (zh) 基于多种群遗传算法的能耗感知云工作流调度优化方法
CN111062528A (zh) 基于多解码智能算法的多模资源受限项目调度优化方法
LU501439B1 (en) A Hybrid Genetic Algorithm with Heuristics for Optimizing Multimodal Resource-Constrained Project Scheduling
CN111026506A (zh) 采用多种群协同进化遗传算法的云工作流调度优化方法
CN111026533A (zh) 云计算环境下基于分布式估计算法的工作流执行优化方法
CN110941487B (zh) 云计算环境下基于多阶段遗传算法的工作流调度优化方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20200414