首页 / 专利库 / 软件 / 虚拟层 / 基于分布式估计算法的云工作流调度优化方法

基于分布式估计算法工作流调度优化方法

阅读:187发布:2020-05-08

专利汇可以提供基于分布式估计算法工作流调度优化方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于分布式估计 算法 的 云 工作流调度优化方法,包括以下步骤:获取调度优化所需信息;计算任务的排序值和层次值;初始化当代种群、进行最优个体保存;进行进化:构建精英种群、更新概率模型, 采样 概率模型生成新的当代种群,当代种群改进与最优个体保存,直到满足终止条件;输出调度优化方案。本发明采用拓扑排序的整数编码方法,可以实现全域搜索,在初始种群中播入了一个基于HEFT_lbt的个体,使用采样方式来生成新个体,采用了最优个体保存策略、向前向后解码和负载均衡的个体改进方法,提高了算法寻优能 力 和搜索效率。,下面是基于分布式估计算法工作流调度优化方法专利的具体信息内容。

1.一种基于分布式估计算法工作流调度优化方法,其特征在于:包括以下步骤:
步骤1:形式化调度问题,获取调度优化所需的信息;
获取任务集T={t1,t2,…,tI},其中I是任务的数量,ti表示任务i,即编号为i的任务;
获取任务间的时序关系:任务i的父任务集PRi,任务i的子任务集SCi,其中i=1,2…,I;
获取任务相关参数:任务i的长度ti.length,即任务i被虚拟机处理时需要耗费的指令数量,处理任务i时需要的输入文件列表ti.IFL,任务i被处理后产生的输出文件列表ti.OFL,及文件列表中文件file的大小file.size,其中i=1,2…,I;任务i是任务i+的父任务的充要条件为:存在一个文件file,file是任务i的输出文件同时又是任务i+的输入文件,即:
获取云计算环境下的虚拟机集VM={vm1,vm2,…,vmJ},其中J是虚拟机的数量,vmj表示虚拟机j,即编号为j的虚拟机;
获取虚拟机相关参数:虚拟机j的计算能vmj.ps,虚拟机j的带宽vmj.bw,其中j=1,
2…,J;
获取任务与虚拟机之间的支持关系:虚拟机j可以处理的任务集Tj,其中j=1,2…,J;可以处理任务i的虚拟机集VMi,其中i=1,2…,I;
步骤2:计算任务的rank;
先计算ti执行时的平均处理时间 需要从共享数据库获得输入文件的平均传输时间需要从其它虚拟机获得输入文件的平均传输时间
ti执行时的平均处理时间计算如下:
ti执行时需要从共享数据库获得输入文件的平均传输时间为:
ti执行时需要从其它虚拟机获得输入文件的平均传输时间为:
其中 为 和ti间的文件平均传输时间,其计算如下:
然后,计算任务i的 其计算过程如下:
对于没有子任务的结束任务i:
其它任务的自下而上排序值 采用如下递归公式进行计算:
接着,计算任务i的 其计算过程如下:
对于没有父任务的开始任务i:
其它任务的自上而下排序值 采用如下递归公式进行计算:
最后,计算任务i的排序值ranki:
其中,i=1,2…,I;
步骤3:计算任务的层次值;
对于没有父任务的开始任务i,其层次值为:
leveli=1      (10)
其它任务的层次值采用如下递归公式进行计算:
步骤4:初始化当代种群,进行最优个体保存;
基于HEFT_lbt生成1个个体、对初始概率模型进行N-1次采样生成N-1个个体,形成初始当代种群,同时把初始当代种群中的最优个体保存于BestChrom中,即令BestChrom为初始当代种群中的最优个体;其中N是种群规模;
所述个体采用2I位整数编码,I为任务数量,其方法如下:ch={g1,…,gI,gI+1,…,g2I},基因gi是一个非负整数;其中,{g1,…,gI}是虚拟机分配列表,gi表示给任务i分配的虚拟机编号,即把任务i分配给虚拟机gi,gi∈VMi;{gI+1,…,g2I}是任务调度顺序列表,是1,…,I的一个排列,且满足任务的时序约束,即任何任务都不能排在其父任务的前面,gI+i表示第i个被调度的任务的编号,即任务gI+i是第i个被调度的;
所述基于HEFT_lbt生成1个个体包括如下步骤:
步骤A1:令所有虚拟机可得时间段列表vatlj={[0,M]},j=1,…,J,M为一个接近无穷大的数;令所有任务的就绪时间rti=0,i=1,…,I;令变量q=1;令任务集UT=T;
步骤A2:从UT中找出层次值最小的任务,然后从中取出一个rank最大的任务,不妨设为ti,gI+q=i;
步骤A3:令ti的可得虚拟机集AVMi=VMi,计算把ti分别分配给AVMi中的每个虚拟机后ti的完成时间:
步骤A3.1:从AVMi中取出一个虚拟机,不妨设为vmj;
步骤A3.2:计算ti分配给vmj处理后的执行时间
步骤A3.3:在vatlj中从早到晚找出一个空闲时段[νj,υj],满足υj-νj≥eti,j和υj-eti,j≥rti;
步骤A3.4:计算ti分配给vmj处理后的开始时间si,j=max{νj,rti},完成时间fi,j=si,j+eti,j;
步骤A3.5:若AVMi不为空则转到步骤A3.1,否则转到步骤A4;
步骤A4:按虚拟机顺序找出能最早完成ti的虚拟机,不妨设为vmj,gi=j,把ti分配给vmj:
步骤A4.1:令ti的开始时间si=si,j,ti的完成时间fi=fi,j;
步骤A4.2:更新ti的子任务的就绪时间
步骤A4.3:在虚拟机可得时间段列表vatlj中删除[νj,υj],插入区间长度大于0的[νj,si]和[fi,υj];
步骤A5:令q=q+1,若任务集UT不为空则转到步骤A2,否则转到步骤A6;
步骤A6:获得一个基于HEFT_lbt的个体ch={g1,…,gI;gI+1,…,g2I},计算其适应度值,操作结束;
其中:
ωi,j:是vmj处理ti的时间,
是把ti分配给vmj处理时需要从其它的虚拟机获得输入文件的文件传输时间,是处理 的虚拟机;
τi,j:是把ti分配给vmj处理时需要从共享数据库获得输入文件的文件传输时间,所述概率模型包括虚拟机分配概率模型PMVM(k)和任务调度顺序概率模型PMS(k);
其中αi,j(k)表示在第k代任务ti分配给虚拟机vmj的概率,
其中βi,i′(k)表示在第k代第i′个调度的任务是ti的概率,
初始虚拟机分配概率模型为:
其中:标记值
初始任务调度顺序概率模型为:
其中:STSρ={ti|ξi<ρ≤I-ζi}是可以安排在第ρ个调度的任务集ζi是任务i的子孙任务的数量,ξi是任务i的祖先任务的数量;
标记值
所述子孙任务和祖先任务的定义描述如下:如果存在一个任务序列 满足
是 的父任务,其中1≤k对概率模型PMVM(k)和PMS(k)进行1次采样生成1个个体包括如下步骤:
步骤B1:系统状态初始化:
步骤B1.1:令所有虚拟机可得时间段列表vatlj={[0,M]};M为一个接近无穷大的数;
步骤B1.2:令任务就绪时间rti=0、任务集P(ti)=PRi,i=1,…,I;令任务集 UT=T;令变量q=0;
步骤B1.3:把UT中 的ti移到RT中;
步骤B2:令q=q+1;根据[β1,q(k)…βI,q(k)]T采用轮盘赌法从RT中随机选择一个任务,不妨设为ti,令gI+q=i;
步骤B3:根据[αi,1(k)…αi,J(k)]采用轮盘赌法随机选择一个虚拟机,不妨设为vmj,令gi=j;
步骤B4:把ti分配给vmj:
步骤B4.1:计算ti的执行时间
步骤B4.2:在vatlj中从早到晚找出一个空闲时段[νj,υj],满足υj-νj≥eti和υj-eti≥rti;
步骤B4.3:ti的开始时间si=max{νj,rti},ti的结束时间fi=si+eti;
步骤B4.4:更新ti的子任务的就绪时间
步骤B4.5:在虚拟机可得时间段列表vatlj中删除[νj,υj],插入区间长度大于0的[νj,si]和[fi,υj];
步骤B4.6:在所有 中删除ti,在RT中删除ti;
步骤B4.7:把UT中 的ti移到RT中;
步骤B5:如果RT不为空,则转到步骤B2,否则转到步骤B6;
步骤B6:获得一个个体ch={g1,…,g2I}及其所有任务的执行时间和完成时间:eti,fi,i=1,2…,I,计算其适应度值,操作结束;
步骤5:构建精英种群,更新概率模型;
根据适应度值从优到劣选取当代种群中的前 个个体作为当代精英种群
POPe,Ne为精英种群规模,re∈(0,1)为精英率,由当代精英种群根据公式(16)和(17)更新虚拟机分配概率模型和任务调度顺序概率模型;
虚拟机分配概率模型的更新:
其中:标记值
θ1∈(0,1)是虚拟机分配概率模型的更新速率;
任务调度顺序概率模型的更新:
其中:标记值
θ2∈(0,1)是任务调度顺序概率模型的更新速率;
步骤6:采样概率模型生成新种群,令新种群为当代种群;
对当前概率模型PMVM(k)和PMS(k)进行N次采样生成N个个体,形成的新种群,令新种群当代种群;
步骤7:当代种群改进与最优个体保存;
采用FBI&D和LDI对当代种群进行改进,如果改进后的当代种群中的最优个体优于BestChrom中保存的个体,则用最优个体替换保存在BestChrom中的个体;
所述FBI&D方法包括如下步骤:
步骤C1:把个体ch中的任务调度顺序列表根据任务完成时间fi从大到小重新排列,即把ch中的基因gI+i设置为倒数第i个完成的任务,i=1,…,I,形成反向个体
步骤C2:对 采用基于插入模式的串行反向个体解码方法进行解码获得所有任务反向完成时间 及其反向工作流响应时间 若 小于rs,则转到步骤C3,否则,转到步骤C5;
步骤C3:把反向个体 中的任务调度顺序列表根据任务反向完成时间 从大到小重新排列,即把 中的基因gI+i设置为倒数第i个完成的任务,i=1,…,I,形成个体ch;
步骤C4:采用基于插入模式的串行个体解码方法对个体ch进行解码,获得所有任务的完成时间f1,…,fI及其工作流响应时间rs;如果rs小于 则转到步骤C1,否则,转到步骤C5;
步骤C5:输出个体ch及其适应度值即工作流响应时间rs,操作结束;
所述LDI方法包括如下步骤:
步骤D1:计算各虚拟机负载
步骤D2:找出负载最小的虚拟机j′;如果ldj′>0,转到步骤D3,否则转到步骤D4;
步骤D3:令任务集 转到步骤D5;
步骤D4:令任务集STj′=Tj′,转到步骤D5;
步骤D5:如果STj′不为空,则从STj′中按顺序取出一个其所在虚拟机的负载是最高的任务i′,转到步骤D6;否则转到步骤D7;
步骤D6:令gi′=j′,形成新的个体 采用FBI&D方法对 进行解码与改进,如果相对于原个体有改进,则用此改进的个体替换原个体,转到步骤D7;否则转到步骤D5;
步骤D7:LDI操作结束;
步骤8:判断是否满足终止条件,如果不满足,转到步骤5;否则输出BestChrom中保存的个体,其对应的调度方案作为优化方案;
所述终止条件为迭代指定的代数TG或连续迭代GG代最优个体没有改进。
2.根据权利要求1所述的一种基于分布式估计算法的云工作流调度优化方法,其特征在于:所述适应度值为工作流响应时间rs,其计算方法如下:
其中:rfi是任务i的响应时间, SFLi是任务i
输出给共享数据库的输出文件集,即
适应度值越小,个体越优。
3.根据权利要求1所述的一种基于分布式估计算法的云工作流调度优化方法,其特征在于:所述步骤B2中根据[β1,q(k)…βI,q(k)]T采用轮盘赌法从RT中随机选择一个任务的具体步骤如下:
步骤B2.1:计算RT中每个ti被选中的概率
步骤B2.2:计算累计概率: ti∈RT;
步骤B2.3:产生一个随机数λ∈[0,1),如果 那么选择ti,操作结束。
4.根据权利要求1所述的一种基于分布式估计算法的云工作流调度优化方法,其特征在于:所述步骤B3中根据[αi,1(k)…αi,J(k)]采用轮盘赌法随机选择一个虚拟机的具体步骤如下:
步骤B3.1:计算vmj被选中的概率Aj=αi,j(k),j=1,…,J;
步骤B3.2:计算累计概率:
步骤B3.3:产生一个随机数λ∈[0,1),如果 那么选择vmj,操作结束。
5.根据权利要求1所述的一种基于分布式估计算法的云工作流调度优化方法,其特征在于:所述步骤C2中对 采用基于插入模式的串行反向个体解码方法进行解码的具体步骤如下:
步骤E1:令所有任务的反向就绪时间
令变量ε=1;令所有虚拟机可得时间段列表vatlj={[0,M]},j=1,…,J,其中M为一个接近无穷大的数;
步骤E2:选取编号为i=gI+ε的任务;
步骤E3:基于插入模式把任务i分配给虚拟机gi,不妨设j=gi;
步骤E3.1:在vatlj中从早到晚找出一个空闲时段[νj,υj],满足υj-νj≥eti和步骤E3.2:计算任务i的反向开始时间 反向完成时间 更新
任务i的父任务的就绪时间
步骤E3.3:在虚拟机可得时间段列表vatlj中删除[νj,υj],插入区间长度大于0的和
步骤E4:令ε=ε+1,如果ε≤I,则转到步骤E2,否则步骤E5;
步骤E5:获得所有任务的反向完成时间 计算反向工作流响应时间
操作结束。
6.根据权利要求1所述的一种基于分布式估计算法的云工作流调度优化方法,其特征在于:所述步骤C4中基于插入模式的串行个体解码方法对个体ch进行解码的具体步骤如下:
步骤F1:令所有任务的就绪时间rti=0,i=1,…,I;令所有虚拟机可得时间段列表vatlj={[0,M]},j=1,…,J,M为一个接近无穷大的数;令变量ε=1;
步骤F2:选取编号为i=gI+ε的任务;
步骤F3:基于插入模式把任务i分配给虚拟机gi,不妨设j=gi;
步骤F3.1:在vatlj中从早到晚找出一个空闲时段[νj,υj],满足υj-νj≥eti和υj-eti≥rti;
步骤F3.2:计算任务i的开始时间和完成时间:si=max{νj,rti},fi=si+eti;更新任务i的子任务的就绪时间
步骤F3.3:在虚拟机可得时间段列表vatlj中删除[νj,υj],插入区间长度大于0的[νj,si]和[fi,υj];
步骤F4:令ε=ε+1,如果ε≤I则转到步骤F2,否则步骤F5;
步骤F5:获得所有任务的完成时间fi,计算其适应度值即工作流响应时间rs,操作结束。

说明书全文

基于分布式估计算法工作流调度优化方法

技术领域

[0001] 本发明涉及计算机技术、信息技术和系统工程领域,具体涉及一种云工作流调度优化方法,更具体的说,尤其涉及一种基于分布式估计算法的云工作流调度优化方法。

背景技术

[0002] 云计算环境下的工作流,简称“云工作流”,是云计算与工作流相关技术的整合,在需要高效计算性能和大规模存储支撑的跨组织业务协作、科学计算等领域具有广泛的应用
前景。在云工作流中,任务与任务之间存在着时序约束,执行时通常以虚拟机作为计算资源
的最小分配单位负责接收并处理这些任务。云工作流调度是指在满足任务时序和用户需要
约束下如何把云工作流中的任务分配到合适的虚拟机上,以及如何安排被分配到虚拟机上
的任务的执行顺序,即要解决两个方面的问题:任务分配和任务执行顺序。云工作流调度直
接决定了整个云工作流系统的性能,已成为云工作流系统的一个重要研究内容。
[0003] 当前云工作流调度优化方法可以分为三类:
[0004] 1)启发式方法,是指工作流任务分配和执行顺序都用启发式方法生成,如:Heterogeneous Earliest Finish Time即HEFT、Critical Path On a Processors即CPOP、
Levelized Min Time即LMT、Dynamic Level Scheduling即DLS、Dynamic Critical Path即
DCP、Longest Dynamic Critical Path即LDCP等方法;
[0005] 2)智能计算方法,是指工作流任务分配和执行顺序都通过智能计算方法来搜索生成;如:遗传算法GA、粒子群优化算法PSO、模拟退火算法SA等方法;
[0006] 3)结合启发式的半智能计算方法,是指工作流任务分配通过智能计算方法来搜索生成而任务执行顺序则根据智能计算方法搜索生成的任务分配方案采用基于优先级的启
发式方法生成,或工作流任务执行顺序通过智能计算方法来搜索生成而任务分配则根据智
能计算方法搜索生成的任务执行顺序通过基于任务最早完成时间的启发式方法来生成。
[0007] 然而,现有的这些云工作流调度优化方法有着如下缺点:
[0008] 1)启发式方法能在较短的时间获得一个调度优化方案,但其质量通常不是很高而且依赖于工作流的类型;
[0009] 2)智能计算方法的算法效率依赖于编码与解码、进化迭代策略的设计及控制参数的选择等,其中,结合启发式的半智能计算方法搜索的解空间即调度方案是不完整的,因此
其理论上存在搜索不到最优调度方案的可能性,同时在算法中需要不断调用启发式方法,
其时间效率也不是很高;智能计算方法其理论上可以实现全域搜索,但采用全域搜索会导
致搜索效率降低;
[0010] 因此,随着云工作流复杂性及其应用需求的增加,亟需设计一种更高效方法来解决云工作流调度优化问题。

发明内容

[0011] 为了克服启发式方法解的质量通常不是很高而且依赖于工作流的类型,结合启发式的半智能计算方法、基于分层编码的智能计算方法编码搜索空间的不完备性,基于全域
的智能计算方法搜索效率不高等不足,本发明提供了一种基于分布式估计算法的云工作流
调度优化方法,有效提高了求解的效率与质量。
[0012] 本发明解决其技术问题所采用的技术方案如下:一种基于分布式估计算法的云工作流调度优化方法,包括以下步骤:
[0013] 步骤1:形式化调度问题,获取调度优化所需的信息;
[0014] 获取任务集T={t1,t2,...,tI},其中I是任务的数量,ti表示任务i,即编号为i的任务;
[0015] 获取任务间的时序关系:任务i的父任务集PRi,任务i的子任务集SCi,其中i=1,2…,I;
[0016] 获取任务相关参数:任务i的长度ti.length,即任务i被虚拟机处理时需要耗费的指令数量,处理任务i时需要的输入文件列表ti.IFL,任务i被处理后产生的输出文件列表
ti.OFL,及文件列表中文件file的大小file.size,其中i=1,2…,I;任务i是任务i+的父任
务的充要条件为:存在一个文件file,file是任务i的输出文件同时又是任务i+的输入文
件,即:
[0017]
[0018] 获取云计算环境下的虚拟机集VM={vm1,vm2,…,vmJ},其中J是虚拟机的数量,vmj表示虚拟机j,即编号为j的虚拟机;
[0019] 获取虚拟机相关参数:虚拟机j的计算能vmj.ps,虚拟机j的带宽vmj.bw,其中j=1,2…,J;
[0020] 获取任务与虚拟机之间的支持关系:虚拟机j可以处理的任务集Tj,其中j=1,2…,J;可以处理任务i的虚拟机集VMi,其中i=1,2…,I;
[0021] 步骤2:计算任务的排序值rank;
[0022] 先计算ti执行时的平均处理时间 需要从共享数据库获得输入文件的平均传输时间 需要从其它虚拟机获得输入文件的平均传输时间
[0023] ti执行时的平均处理时间计算如下:
[0024]
[0025] ti执行时需要从共享数据库获得输入文件的平均传输时间为:
[0026]
[0027] ti执行时需要从其它虚拟机获得输入文件的平均传输时间为:
[0028]
[0029] 其中 为ti-和ti间的文件平均传输时间,其计算如下:
[0030]
[0031] 然后,计算任务i的自下而上排序值 其计算过程如下:
[0032] 对于没有子任务的结束任务i:
[0033]
[0034] 其它任务的自下而上排序值 采用如下递归公式进行计算:
[0035]
[0036] 接着,计算任务i的自上而下排序值 其计算过程如下:
[0037] 对于没有父任务的开始任务i:
[0038]
[0039] 其它任务的自上而下排序值 采用如下递归公式进行计算:
[0040]
[0041] 最后,计算任务i的排序值ranki:
[0042]
[0043] 其中,i=1,2…,I;
[0044] 步骤3:计算任务的层次值;
[0045] 对于没有父任务的开始任务i,其层次值为:
[0046] leveli=1   (10)
[0047] 其它任务的层次值采用如下递归公式进行计算:
[0048]
[0049] 步骤4:初始化当代种群,进行最优个体保存;
[0050] 基于HEFT_lbt生成1个个体、对初始概率模型进行N-1次采样生成N-1个个体,形成初始当代种群,同时把初始当代种群中的最优个体保存于BestChrom中,即令BestChrom为
初始当代种群中的最优个体;其中N是种群规模;
[0051] 所述个体采用2I位整数编码,I为任务数量,其方法如下:ch={g1,…,gI,gI+1,…,g2I},基因gi是一个非负整数;其中,{g1,…,gI}是虚拟机分配列表,gi表示给任务i分配的虚
拟机编号,即把任务i分配给虚拟机gi,gi∈VMi,例如:g1=2表示1号任务是分配给2号虚拟
机的;{gI+1,…,g2I}是任务调度顺序列表,是1,…,I的一个排列,且满足任务的时序约束,即
任何任务都不能排在其父任务的前面,gI+i表示第i个被调度的任务的编号,即任务gI+i是第
i个被调度的,例如gI+1=3,表示第1个调度的任务是3号任务;
[0052] 所述基于HEFT_lbt生成1个个体包括如下步骤:
[0053] 步骤A1:令所有虚拟机可得时间段列表vatlj={[0,M]},j=1,…,J,M为一个接近无穷大的数;令所有任务的就绪时间rti=0,i=1,…,I;令变量q=1;令任务集UT=T;
[0054] 步骤A2:从UT中找出层次值最小的任务,然后从中取出一个rank最大的任务,不妨设为ti,gI+q=i;
[0055] 步骤A3:令ti的可得虚拟机集AVMi=VMi,计算把ti分别分配给AVMi中的每个虚拟机后ti的完成时间:
[0056] 步骤A3.1:从AVMi中取出一个虚拟机,不妨设为vmj;
[0057] 步骤A3.2:计算ti分配给vmj处理后的执行时间
[0058] 步骤A3.3:在vatlj中从早到晚找出一个空闲时段[νj,υj],满足υj-νj≥eti,j和υj-eti,j≥rti;
[0059] 步骤A3.4:计算ti分配给vmj处理后的开始时间si,j=max{νj,rti},完成时间fi,j=si,j+eti,j;
[0060] 步骤A3.5:若AVMi不为空则转到步骤A3.1,否则转到步骤A4;
[0061] 步骤A4:按虚拟机顺序找出能最早完成ti的虚拟机,不妨设为vmj,gi=j,把ti分配给vmj:
[0062] 步骤A4.1:令ti的开始时间si=si,j,ti的完成时间fi=fi,j;
[0063] 步骤A4.2:更新ti的子任务的就绪时间
[0064] 步骤A4.3:在虚拟机可得时间段列表vatlj中删除[νj,υj],插入区间长度大于0的[νj,si]和[fi,υj];
[0065] 步骤A5:令q=q+1,若UT不为空则转到步骤A2,否则转到步骤A6;
[0066] 步骤A6:获得一个基于HEFT_lbt的个体ch={g1,…,gI;gI+1,…,g2I},计算其适应度值,操作结束;
[0067] 其中:
[0068] ωi,j:是vmj处理ti的时间,
[0069] 是把ti分配给vmj处理时需要从其它的虚拟机获得输入文件的文件传输时间,
[0070] 是处理 的虚拟机;
[0071] τi,j:是把ti分配给vmj处理时需要从共享数据库获得输入文件的文件传输时间,
[0072]
[0073] 所述概率模型包括虚拟机分配概率模型PMVM(k)和任务调度顺序概率模型PMS(k);
[0074]
[0075] 其中αi,j(k)表示在第k代任务ti分配给虚拟机vmj的概率,
[0076]
[0077] 其中βi,i′(k)表示在第k代第i′个调度的任务是ti的概率,
[0078] 初始虚拟机分配概率模型为:
[0079]
[0080] 其中:标记值
[0081] 初始任务调度顺序概率模型为:
[0082]
[0083] 其中:STSρ={ti|ξi<ρ≤I-ζi}是可以安排在第ρ个调度的任务集,ζi是任务i的子孙任务的数量,ξi是任务i的祖先任务的数量;
[0084] 标记值
[0085] 所述子孙任务和祖先任务的定义描述如下:如果存在一个任务序列 满足 是 的父任务,其中1≤k
[0086] 对概率模型PMVM(k)和PMS(k)进行1次采样生成1个个体包括如下步骤:
[0087] 步骤B1:系统状态初始化:
[0088] 步骤B1.1:令所有虚拟机可得时间段列表vatlj={[0,M]};M为一个接近无穷大的数;
[0089] 步骤B1.2:令任务就绪时间rti=0、任务集P(ti)=PRi,i=1,…,I;令任务集UT=T;令变量q=0;
[0090] 步骤B1.3:把UT中 的ti移到RT中;
[0091] 步骤B2:令q=q+1;根据[β1,q(k) … βI,q(k)]T采用轮盘赌法从RT中随机选择一个任务,不妨设为ti,令gI+q=i;
[0092] 步骤B3:根据[αi,1(k) … αi,J(k)]采用轮盘赌法随机选择一个虚拟机,不妨设为vmj,令gi=j;
[0093] 步骤B4:把ti分配给vmj:
[0094] 步骤B4.1:计算ti的执行时间
[0095] 步骤B4.2:在vatlj中从早到晚找出一个空闲时段[νj,υj],满足υj-νj≥eti和υj-eti≥rti;
[0096] 步骤B4.3:ti的开始时间si=max{νj,rti},ti的结束时间fi=si+eti;
[0097] 步骤B4.4:更新ti的子任务的就绪时间
[0098] 步骤B4.5:在虚拟机可得时间段列表vatlj中删除[νj,υj],插入区间长度大于0的[νj,si]和[fi,υj];
[0099] 步骤B4.6:在所有 中删除ti,在RT中删除ti;
[0100] 步骤B4.7:把UT中 的ti移到RT中;
[0101] 步骤B5:如果RT不为空,则转到步骤B2,否则转到步骤B6;
[0102] 步骤B6:获得一个个体ch={g1,…,g2I}及其所有任务的执行时间和完成时间:eti,fi,i=1,2…,I,计算其适应度值,操作结束;
[0103] 步骤5:构建精英种群,更新概率模型;
[0104] 根据适应度值从优到劣选取当代种群中的前 个个体作为当代精英种群POPe,Ne为精英种群规模,re∈(0,1)为精英率,由当代精英种群根据公式(16)和(17)更新
虚拟机分配概率模型和任务调度顺序概率模型;
[0105] 虚拟机分配概率模型的更新:
[0106]
[0107] 其中:标记值θ1∈(0,1)是虚拟机分配概率模型的更新速率;
[0108] 任务调度顺序概率模型的更新:
[0109]
[0110] 其中:标记值θ2∈(0,1)是任务调度顺序概率模型的更新速率;
[0111] 步骤6:采样概率模型生成新种群,令新种群为当代种群;
[0112] 对当前概率模型PMVM(k)和PMS(k)进行N次采样生成N个个体,形成的新种群,令新种群当代种群;
[0113] 步骤7:当代种群改进与最优个体保存;
[0114] 采用FBI&D和LDI对当代种群进行改进,如果改进后的当代种群中的最优个体优于BestChrom中保存的个体,则用最优个体替换保存在BestChrom中的个体;
[0115] 所述FBI&D方法包括如下步骤:
[0116] 步骤C1:把个体ch中的任务调度顺序列表根据任务完成时间fi从大到小重新排列,即把ch中的基因gI+i设置为倒数第i个完成的任务,i=1,…,I,形成反向个体
[0117] 步骤C2:对 采用基于插入模式的串行反向个体解码方法进行解码获得所有任务反向完成时间 及其反向工作流响应时间 若 小于rs,则转到步骤C3,否则,转到
步骤C5;
[0118] 步骤C3:把反向个体 中的任务调度顺序列表根据任务反向完成时间 从大到小重新排列,即把 中的基因gI+i设置为倒数第i个完成的任务,i=1,…,I,形成个体ch;
[0119] 步骤C4:采用基于插入模式的串行个体解码方法对个体ch进行解码,获得所有任务的完成时间f1,…,fI及其工作流响应时间rs;如果rs小于 则转到步骤C1,否则,转到步
骤C5;
[0120] 步骤C5:输出个体ch及其适应度值即工作流响应时间rs,操作结束;
[0121] 所述LDI方法包括如下步骤:
[0122] 步骤D1:计算各虚拟机负载
[0123] 步骤D2:找出负载最小的虚拟机j′;如果ldj′>0,转到步骤D3,否则转到步骤D4;
[0124] 步骤D3:令任务集 转到步骤D5;
[0125] 步骤D4:令任务集STj′=Tj′,转到步骤D5;
[0126] 步骤D5:如果STj′不为空,则从STj′中按顺序取出一个其所在虚拟机的负载是最高的任务i′,转到步骤D6;否则转到步骤D7;
[0127] 步骤D6:令gi′=j′,形成新的个体 采用FBI&D方法对 进行解码与改进,如果相对于原个体有改进,则用此改进的个体替换原个体,转到步骤D7;否则转到步骤D5;
[0128] 步骤D7:LDI操作结束;
[0129] 步骤8:判断是否满足终止条件,如果不满足,转到步骤5;否则输出BestChrom中保存的个体,其对应的调度方案作为优化方案;
[0130] 所述终止条件为迭代到指定的代数TG或连续迭代GG代最优个体没有改进。
[0131] 进一步的,所述适应度值为工作流响应时间rs,其计算方法如下:
[0132] 其中:rfi是任务i的响应时间, SFLi是任务i输出给共享数据库的输出文件集,即
[0133] 适应度值越小,个体越优。
[0134] 进一步的,所述步骤B2中根据[β1,q(k) … βI,q(k)]T采用轮盘赌法从RT中随机选择一个任务的具体步骤如下:
[0135] 步骤B2.1:计算RT中每个ti被选中的概率
[0136] 步骤B2.2:计算累计概率:
[0137] 步骤B2.3:产生一个随机数λ∈[0,1),如果 那么选择ti,操作结束。
[0138] 进一步的,所述步骤B3中根据[αi,1(k) … αi,J(k)]采用轮盘赌法随机选择一个虚拟机的具体步骤如下:
[0139] 步骤B3.1:计算vmj被选中的概率Aj=αi,j(k),j=1,…,J;
[0140] 步骤B3.2:计算累计概率:
[0141] 步骤B3.3:产生一个随机数λ∈[0,1),如果 那么选择vmj,操作结束。
[0142] 进一步的,所述步骤C2中对 采用基于插入模式的串行反向个体解码方法进行解码的具体步骤如下:
[0143] 步骤E1:令所有任务的反向就绪时间令变量ε=1;令所有虚拟机可得时间段列表vatlj={[0,M]},j=1,…,J,其中M为一个接近
无穷大的数;
[0144] 步骤E2:选取编号为i=gI+ε的任务;
[0145] 步骤E3:基于插入模式把任务i分配给虚拟机gi,不妨设j=gi;
[0146] 步骤E3.1:在vatlj中从早到晚找出一个空闲时段[νj,υj],满足υj-νj≥eti和
[0147] 步骤E3.2:计算任务i的反向开始时间 反向完成时间更新任务i的父任务的就绪时间
[0148] 步骤E3.3:在虚拟机可得时间段列表vatlj中删除[νj,υj],插入区间长度大于0的和
[0149] 步骤E4:令ε=ε+1,如果ε≤I,则转到步骤E2,否则步骤E5;
[0150] 步骤E5:获得所有任务的反向完成时间 i=1,…,I;计算反向工作流响应时间操作结束。
[0151] 进一步的,所述步骤C4中基于插入模式的串行个体解码方法对个体ch进行解码的具体步骤如下:
[0152] 步骤F1:令所有任务的就绪时间rti=0,i=1,…,I;令所有虚拟机可得时间段列表vatlj={[0,M]},j=1,…,J,M为一个接近无穷大的数;令变量ε=1;
[0153] 步骤F2:选取编号为i=gI+ε的任务;
[0154] 步骤F3:基于插入模式把任务i分配给虚拟机gi,不妨设j=gi;
[0155] 步骤F3.1:在vatlj中从早到晚找出一个空闲时段[νj,υj],满足υj-νj≥eti和υj-eti≥rti;
[0156] 步骤F3.2:计算任务i的开始时间和完成时间:si=max{νj,rti},fi=si+eti;更新任务i的子任务的就绪时间
[0157] 步骤F3.3:在虚拟机可得时间段列表vatlj中删除[νj,υj],插入区间长度大于0的[νj,si]和[fi,υj];
[0158] 步骤F4:令ε=ε+1,如果ε≤I则转到步骤F2,否则步骤F5;
[0159] 步骤F5:获得所有任务的完成时间fi,计算其适应度值即工作流响应时间rs,操作结束。
[0160] 本发明的有益效果在于:
[0161] (1)相对于启发式方法、结合启发式的半智能计算方法及现有的基于分层编码的智能计算方法,本发明设计采用整数编码方法,任何一个调度方案都可以有一个个体与之
对应,因此其搜索空间是完备的,可以实现全域搜索。
[0162] (2)相对于一般的基于优先级的编码方式,本发明的任务调度顺序采用基于拓扑排序的整数编码方法,考虑了任务之间的时序关系,有效减少了编码的空间,进而提高了算
法的效率。
[0163] (3)相对于普通智能计算方法,本发明设计增加了基于向前向后个体解码的启发式改进方法FBI&D和基于负载均衡的启发式改进方法LDI,从而提高整个算法寻优能力和搜
索效率。
[0164] (4)本发明采用最优个体保存策略,可以保证最优个体不被破坏,使算法单调收敛。
[0165] (5)相对于传统智能计算方法如GA等,本发明设计的算法使用采样替换了遗传操作来生成新的个体,算法更简洁。
[0166] (6)本发明在初始种群中播入了一个基于HEFT_lbt的个体,可以使算法在一个比较高的起点上开始搜索,从而缩短搜索时间。
附图说明
[0167] 图1是本发明一种基于分布式估计算法的云工作流调度优化方法的流程示意图。
[0168] 图2是本发明实施例中Montage工作流任务间的时序关系图。

具体实施方式

[0169] 下面结合图1、图2及实施例对本发明做进一步详细说明,但本发明并不仅限于以下的实施例。
[0170] 假设一个云计算中心有编号为1至6的6台虚拟机可供使用,vm1、vm2、…、vm6的处理能力和带宽如表1所示;一个Montage工作流任务间的时序关系如图2所示,由编号为1至15
的15个任务组成,t1、t2、…、t15的执行长度,处理所需要的输入文件和处理后的输出文件的
名称、长度以及可以被处理的虚拟机如表2所示。
[0171] 虚拟机 处理能力(MI/s) 带宽(Mbit/s) 虚拟机 处理能力(MI/s) 带宽(Mbit/s)vm1 1000 200 vm4 2000 300
vm2 1000 200 vm5 3000 400
vm3 2000 300 vm6 3000 400
[0172] 表1
[0173]
[0174]
[0175] 表2
[0176] 针对上述案例,如图1所示,一种基于分布式估计算法的云工作流调度优化方法,包括以下实施步骤:
[0177] 执行步骤1:形式化调度问题,获取调度优化所需的信息;
[0178] 获取任务集T={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};
[0179] 获取任务间的时序关系,即任务i的父任务集PRi和子任务集SCi:PR4={t1},PR5={t1,t2},PR6={t1,t3},PR7={t4,t5,t6},PR8
={t7},PR9={t1,t8},PR10={t2,t8},PR11={t3,t8},PR12={t9,t10,t11},PR13={t12},PR14={t13},PR15={t14};SC1={t4,t5,t6,t9},SC2={t5,t10},SC3={t6,t11},SC4={t7},SC5={t7},SC6={t7},SC7={t8},SC8={t9,t10,t11},SC9={t12},SC10={t12},SC11={t12},SC12={t13},SC13={t14},SC14={t15},
[0180] 获取任务的相关参数:t1.length=126000MI,t1.IFL={fd1,fd2},t1.OFL={f1-1,f1-2};t2.length=138000MI,t2.IFL={fd1,fd3},t2.OFL={f2-1,f2-2};t3.length=
132000MI,t3.IFL={fd1,fd4},t3.OFL={f3-1,f3-2};t4.length=102000MI,t4.IFL={fd1,
f1-1,f1-2},t4.OFL={f4-1,f4-2};……;t15.length=7800MI,t15.IFL={f14-1},t15.OFL={f15-1};fd1.size=36MB,fd2.size=4320MB,f1-1.size=3960MB,f1-2.size=3960MB,……,f14-1.size=1560MB,f15-1.size=420MB;
[0181] 获取云计算环境下的虚拟机集:VM={vm1,vm2,vm3,vm4,vm5,vm6};
[0182] 获取虚拟机相关参数:vm1.ps=1000MI/s,vm1.bw=200Mbit/s;vm2.ps=1000MI/s,vm2.bw=200Mbit/s;vm3.ps=2000MI/s,vm3.bw=300Mbit/s;vm4.ps=2000MI/s,vm4.bw
=300Mbit/s;vm5.ps=3000MI/s,vm5.bw=400Mbit/s;vm6.ps=3000MI/s,vm6.bw=
400Mbit/s;
[0183] 获取任务与虚拟机之间的支持关系:T1={t1,t2,t3,t4,t5,t6,t9,t13,t15},T2={t3,t5,t7,t9,t10,t11,t14},T3={t2,t3,t4,t6,t9,t11,t12},T4={t1,t2,t4,t6,t7,t8,t9,t10,t11,t12,t14},T5={t1,t2,t3,t4,t6,t7,t8,t9,t12,t14},T6={t1,t4,t5,t8,t11,t13,t14,t15};VM1={vm1,vm4,vm5,vm6},VM2={vm1,vm3,vm4,vm5},VM3={vm1,vm2,vm3,vm5},VM4={vm1,vm3,vm4,vm5,vm6},VM5={vm1,vm2,vm6},VM6={vm1,vm3,vm4,vm5},VM7={vm2,vm4,vm5},VM8={vm4,
vm5,vm6},VM9={vm1,vm2,vm3,vm4,vm5},VM10={vm2,vm4},VM11={vm2,vm3,vm4,vm6},VM12={vm3,vm4,vm5},VM13={vm1,vm6},VM14={vm2,vm4,vm5,vm6},VM15={vm1,vm6}。
[0184] 执行步骤2:计算任务的排序值rank;
[0185] 首先,计算ti执行时的平均处理时间
[0186]
[0187]
[0188] 同理可得 结果如表3所示:
[0189]
[0190] 表3
[0191] 计算ti执行时需要从共享数据库获得输入文件的平均传输时间
[0192]
[0193]
[0194] 同理可得 结果如表4所示:
[0195]
[0196] 表4
[0197] 计算 和ti间的文件平均传输时间:
[0198]
[0199]
[0200] 同理可得其它任务间的文件平均传输时间,结果如表5所示:
[0201]
[0202] 表5
[0203] 计算ti执行时需要从其它虚拟机获得输入文件的平均传输时间
[0204]
[0205] 同理可得 结果如表6所示:
[0206]
[0207] 表6
[0208] 然后,计算任务i的
[0209]
[0210]
[0211]
[0212] 同理可得其它任务的 结果如表7所示;
[0213] 接着,计算任务i的
[0214]
[0215]
[0216]
[0217] 同理可得其它任务的 结果如表7所示;
[0218] 最后,计算任务i的ranki:
[0219]
[0220] 同理可得其它任务的ranki,结果如表7所示:
[0221]
[0222] 表7
[0223] 执行步骤3:计算任务的层次值;
[0224] 任务1、任务2和任务3均没有父任务,则level1=level2=level3=1;
[0225] 任务4只有一个父任务1,则 同理,可以获得其它任务的层次值:level5=level6=2;level7=3;level8=4;level9=level10=
level11=5;level12=6;level13=7;level14=8;level15=9。
[0226] 执行步骤4:初始化种群,进行最优个体保存;
[0227] 取种群规模N=10;基于HEFT_lbt生成1个个体、对初始概率模型进行9次采样生成9个个体,形成初始当代种群。
[0228] 基于HEFT_lbt生成一个个体的具体实施过程如下:
[0229] 执行步骤A1:初始化所有虚拟机的可得时间段列表vatl1={[0,M]},vatl2={[0,M]},…,vatl6={[0,M]},M为一个接近无穷大的数;初始化所有任务的就绪时间:rt1=0,
rt2=0,…,rt15=0;q=1;UT=T=T={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};
[0230] 执行步骤A2:任务集UT中层次最小的任务为t1,t2,t3,由于rank1=4095.28,rank2=4114.79,rank3=4047.06,从中取出一个rank最大的任务,其为t2,则gI+q=g15+1=g16=2,UT={t1,t3,…,t15};
[0231] 执行步骤A3:令AVM2=VM2={vm1,vm3,vm4,vm5},计算把t2分配给AVM2中的每个虚拟机后t2的完成时间;即执行步骤A3.1:从AVM2中取出vm1;执行步骤A3.2:计算t2分配给vm1处
理后的执行时间:ω2,1=138000/1000=138, 则
执行步骤A3.3:在vatl1中从早到晚找出一
个空闲时间段[0,M],满足M-0≥et2,1=312.24和M-312.24≥rt2=0;执行步骤A3.4:计算t2
分配给vm1处理后的开始时间s2,1=max{v1,rt2}=max{0,0}=0,完成时间f2,1=s2,1+et2,1=
0+312.24=312.24;执行步骤A3.5:由于AVM2={vm3,vm4,vm5}不为空,转到步骤A3.1;……;
这样不断重复执行步骤A3.1至步骤A3.5,直至AVM2为空,得到s2,3=0,s2,4=0,s2,5=0,f2,3=185.16,f2,4=185.16,f2,5=133.12,转至步骤A4;
[0232] 执行步骤A4:按虚拟机顺序找出能最早完成t2的虚拟机,其为vm5,g2=5,把t2分配给vm5;即执行步骤A4.1:令t2的开始时间s2=s2,5=0,完成时间f2=f2,5=133.12;执行步骤
A4.2:更新t2的子任务的就绪时间rt5=max{rt5,f2}=max{0,133.12}=133.12,rt10=
133.12;执行步骤A4.3:在虚拟机可得时间段列表vatl5中删除[0,M],插入区间长度大于0
的[133.12,M],即vatl5={[133.12,M]};
[0233] 执行步骤A5:q=q+1=1+1=2,任务集UT={t1,t3,…,t15}不为空,转到步骤A2;
[0234] 执行步骤A2:任务集UT={t1,t3,…,t15}中层次最小的任务为t1,t3,由于rank1=4095.28,rank3=4047.06,从中取出一个rank最大的任务,其为t1,则g17=1;
[0235] 执行步骤A3:令AVM1=VM1={vm1,vm4,vm5,vm6},计算把t1分配给AVM1中的每个虚拟机后t1的完成时间;即执行步骤A3.1:从AVM1中取出vm1;执行步骤A3.2:计算t1分配给vm1处
理后的执行时间:ω1,1=126, τ1,1=174.24,则et1,1=300.24;执行步骤A3.3:在
vatl1中从早到晚找出一个空闲时间段[0,M],满足M-0≥300.24和M-300.24≥0;执行步骤
A3.4:计算t1分配给vm1处理后的开始时间s1,1=max{0,0}=0,完成时间f1,1=300.24;执行
步骤A3.5:AVM1={vm4,vm5,vm6}不为空,转到步骤A3.1;……;这样不断重复执行步骤A3.1
至步骤A3.5,直至AVM1为空,得到s1,4=0,s1,5=133.12,s1,6=0,f1,4=179.16,f1,5=
262.24,f1,6=129.12,转至步骤A4;
[0236] 执行步骤A4:按虚拟机顺序找出能最早完成t1的虚拟机,其为vm6,g1=6,把t1分配给vm6;即执行步骤A4.1:令t1的开始时间s1=s1,6=0,完成时间f1=f1,6=129.12;执行步骤
A4.2:更新t1的子任务的就绪时间rt4=max{rt4,f1}=max{0,129.12}=129.12,rt5=max
{rt5,f1}=max{133.12,129.12}=133.12,rt6=129.12,rt9=129.12;执行步骤A4.3:在虚
拟机可得时间段列表vatl6中删除[0,M],插入区间长度大于0的[129.12,M],即vatl6=
{[129.12,M]};
[0237] 执行步骤A5:q=2+1=3,任务集UT={t3,…,t15}不为空,转到步骤A2;
[0238] ……
[0239] 这样不断重复执行步骤A2至步骤A5,直至UT为空集,确定所有的基因值,转至步骤A6;
[0240] 执行步骤A6:获得一个基于HEFT_lbt生成的个体
[0241] ch1={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,3,5,6,4,7,8,10,9,11,12,13,14,15},计算其适应度值即工作流响应时间rs1:由于 而SFL15={f15-1},
故 操作结束。
[0242] 初始化虚拟机分配概率模型PMVM(1)的过程如下:
[0243] 由于VM1={vm1,vm4,vm5,vm6},则α1,1(1)=δ1,1/|VM1|=1/4=0.25,α1,2(1)=δ1,2/|VM1|=0/4=0.00,α1,3(1)=0.00,α1,4(1)=0.25,α1,5(1)=0.25,α1,6(1)=0.25,同理,可得其它αi,j(1),最终可以得到:
[0244]
[0245] 初始化任务调度顺序概率模型PMS(1)如下:
[0246] 根据任务间的时序关系可知:t1没有祖先任务,其子孙任务为t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,故有ξ1=0,ζ1=12,同理可得:ξ2=0,ζ2=10,ξ3=0,ζ3=10,ξ4=1,ζ4=9,ξ5=2,ζ5=9,ξ6=2,ζ6=9,ξ7=6,ζ7=8,ξ8=7,ζ8=7,ξ9=8,ζ9=4,ξ10=8,ζ10=4,ξ11=8,ζ11=4,ξ12=11,ζ12=3,ξ13=12,ζ13=2,ξ14=13,ζ14=1,ξ15=14,ζ15=0;
[0247] 由ξi,ζi可得STS1={t1,t2,t3},则β1,1(1)=γ1,1/|STS1|=1/3=0.33,β2,1(1)=γ2,1/|STS1|=1/3=0.33,β3,1(1)=1/3=0.33,β4,1(1)=γ4,1/|STS1|=0/3=0.00,β5,1(1)=0/3,……;
[0248] 由ξi,ζi可得STS2={t1,t2,t3,t4},则β1,2(1)=γ1,2/|STS2|=1/4=0.25,β2,2(1)=γ2,2/|STS2|=1/4=0.25,β3,2(1)=0.25,β4,2(1)=0.25,β5,2(1)=0.00,β6,2(1)=0.00,……;
[0249] 由ξi,ζi可得STS3={t1,t2,t3,t4,t5,t6},则β1,3(1)=γ1,3/|STS3|=1/6=0.17,β2,3(1)=1/6=0.17,β3,3(1)=1/6=0.17,β4,3(1)=0.17,β5,3(1)=0.17,β6,3(1)=0.17,β7,3(1)=0.00,β8,3(1)=0.00,……;
[0250] 同理,可得剩余的βi,i′(1),i=1,…,15,i′=4,…,15,最终可以得到:
[0251]
[0252] 对初始虚拟机分配概率模型PMVM(1)和初始任务调度顺序概率模型PMS(1)进行1次采样生成一个个体的具体实施过程如下:
[0253] 执行步骤B1:系统状态初始化;即执行步骤B1.1:令所有虚拟机的可得时间段列表:vatl1={[0,M]},vatl2={[0,M]},…,vatl6={[0,M]},M为一个接近无穷大的数;执行
步骤B1 .2:令所有任务的就绪时间:rt1=0 ,rt2=0,…,rt15=0;
P(t4)={t1},P(t5)={t1,t2},P(t6)={t1,t3},P
(t7)={t4,t5,t6},P(t8)={t7},P(t9)={t1,t8},P(t10)={t2,t8},P(t11)={t3,t8},P(t12)={t9,t10,t11},P(t13)={t12},P(t14)={t13},P(t15)={t14}; UT=T={t1,t2,t3,
t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};q=0;执行步骤B1.3:把UT中 的任务,
即t1,t2,t3移到RT中,则RT={t1,t2,t3},UT={t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};
[0254] 执行步骤B2:q=q+1=0+1=1;根据[β1,1(1) … β15,1(1)]T采用轮盘赌法从RT={t1,t2,t3}中随机选择一个任务,即:执行步骤B2.1:计算RT={t1,t2,t3}中每个任务被选中
的概率: A2
=0.33,A3=0.33;执行步骤B2.2:计算累计概率:
执行步骤B2.3:产生一个[0,1)之间的随机数,其为0.97,由于
因此选择t3;gI+q=g15+1=g16=3;
[0255] 执行步骤B3:根据[α3,1(1) … α3,6(1)]采用轮盘赌法随机选择一个虚拟机,执行步骤B3.1:计算每个虚拟机被选中的概率:A1=α3,1(1)=0.25,A2=0.25,A3=0.25,A4=
0.00,A5=0.25,A6=0.00;执行步骤B3.2:计算累计概率
执行步骤B3.3:产生一个[0,1)
之间的随机数,其为0.56,由于 因此选择vm3;g3=3;
[0256] 执行步骤B4:把t3分配给vm3;即执行步骤B4.1:计算t3的执行时间,ω3,3=132000/20 0 0 =6 6 , τ3 ,3= 8 × (3 6 +4 3 20 ) / 30 0 =1 1 6 .1 6 ,则
执行步骤B4.2:在vatl3中从早到晚找出一个
空闲时间段[0,M],满足M-0≥et3=182.16和M-182.16≥rt3=0;执行步骤B4.3:计算t3的开
始时间s3=max{v3,rt3}=max{0,0}=0,完成时间f3=s3+et3=0+182.16=182.16;执行步
骤B4.4:更新t3的子任务的就绪时间rt6=max{rt6,f3}=max{0,182.16}=182.16,rt11=
max{0,182.16}=182.16;执行步骤B4.5:在虚拟机可得时间段列表vatl3中删除[0,M],插
入区间长度大于0的[182.16,M],则vatl3={[182.16,M]};执行步骤B4.6:在P(t6)、P(t11)
中删除t3,则P(t6)={t1}、P(t11)={t8},在RT中删除t3,则RT={t1,t2};执行步骤B4.7:由于UT中不存在 则RT,UT均不变;
[0257] 执行步骤B5:由于RT={t1,t2}不为空,转到步骤B2;
[0258] 执行步骤B2:q=1+1=2;根据[β1,2(1) … β15,2(1)]T采用轮盘赌法从RT={t1,t2}中随机选择一个任务,其为t2,g17=2;
[0259] 执行步骤B3:根据[α2,1(1) … α2,6(1)]采用轮盘赌法随机选择一个虚拟机,其为vm1,g2=1;
[0260] 执行步骤B4:把t2分配给vm1;即执行步骤B4.1:计算t2的执行时间:ω2,1=138,τ2,1=174.24,则et2=312.24;执行步骤B4.2:在vatl1中从早到晚找出一个空闲时
间段[0,M],满足M-0≥312.24和M-312.24≥0;执行步骤B4.3:计算t2的开始时间s2=0,完成
时间f2=312.24;执行步骤B4.4:更新t2的子任务的就绪时间rt5=max{rt5,f2}=max{0,
312.24}=312.24,rt10=312.24;执行步骤B4.5:在虚拟机可得时间段列表vatl1中删除[0,
M],插入区间长度大于0的[312.24,M],则vatl1={[312.24,M]};执行步骤B4.6:在P(t5)、P
(t10)中删除t2,则P(t5)={t1}、P(t10)={t8},在RT中删除t2,则RT={t1};执行步骤B4.7:由于UT中不存在 的任务,则RT,UT均不变;
[0261] 执行步骤B5:由于RT={t1}不为空,转到步骤B2;
[0262] ……
[0263] 这样不断重复执行步骤B2至步骤B5,直至RT为空,确定所有的基因值,转至步骤B6;
[0264] 执行步骤B6:获得个体
[0265] ch2={4,1,3,4,6,5,4,6,5,2,4,4,6,4,6;3,2,1,4,6,5,7,8,11,10,9,12,13,14,15},及其所有任务执行时间为:et1=179.16,et2=312.24,et3=182.16,et4=51.96,et5=
574.32,et6=454.72,et7=14.00,et8=4.56,et9=249.68,et10=447.36,et11=259.44,et12=537.68,et13=9.28,et14=1935.00,et15=44.20;所有任务完成时间:f1=179.16,f2=312.24,f3=182.16,f4=231.12,f5=886.56,f6=636.88,f7=900.56,f8=905.12,f9=
1154.80,f10=1352.48,f11=1164.56,f12=1890.16,f13=1899.44,f14=3834.44,f15=
3878.64,计算其适应度值即工作流响应时间rs2:由于 而SFL15=
{f15-1},故 操作结束。
[0266] 同理,通过对初始概率模型进行采样生成种群中的其它个体如下:
[0267] ch3={1,1,3,5,2,5,5,4,3,4,3,3,1,6,1;3,1,4,2,5,6,7,8,9,10,11,12,13,14,15};
[0268] ch4={4,1,2,1,2,4,5,5,4,2,2,5,1,6,1;3,2,1,6,5,4,7,8,9,10,11,12,13,14,15};
[0269] ch5={5,1,3,5,2,1,5,4,4,2,3,5,1,2,6;3,1,6,2,5,4,7,8,10,9,11,12,13,14,15};
[0270] ch6={5,5,2,1,6,4,4,6,4,4,4,5,1,2,1;3,1,6,2,5,4,7,8,9,10,11,12,13,14,15};
[0271] ch7={1,3,3,5,2,4,5,6,2,2,6,5,6,4,1;2,1,3,5,4,6,7,8,10,9,11,12,13,14,15};
[0272] ch8={1,1,1,3,2,5,2,4,1,2,6,3,6,2,6;2,3,1,5,4,6,7,8,10,9,11,12,13,14,15};
[0273] ch9={4,4,2,6,6,4,4,5,2,4,6,5,6,6,1;1,3,2,4,5,6,7,8,9,10,11,12,13,14,15};
[0274] ch10={5,5,3,4,2,4,4,5,3,2,4,5,6,2,1;3,2,1,5,4,6,7,8,11,9,10,12,13,14,15};
[0275] 其适应度值即工作流响应时间分别为:rs3=5045.64,rs4=5489.00,rs5=6199.12,rs6=5461.24,rs7=4763.20,rs8=5976.56,rs9=2118.72,rs10=5217.48;
[0276] 这样最终生成的初始种群为{ch1,ch2,ch3,ch4,ch5,ch6,ch7,ch8,ch9,ch10},并令其为当代种群CP;
[0277] 当代种群CP={ch1,ch2,ch3,ch4,ch5,ch6,ch7,ch8,ch9,ch10}中最好的个体为ch1,把其保存到BestChrom中,则BestChrom={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,3,5,6,
4,7,8,10,9,11,12,13,14,15},rsBestChrom=1174.64。
[0278] 执行步骤5:构建精英种群,更新概率模型;
[0279] 取精英率re=0.2, 根据适应度值从优到劣选取2个个体:
[0280] ch1={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,3,5,6,4,7,8,10,9,11,12,13,14,15}和
[0281] ch9={4,4,2,6,6,4,4,5,2,4,6,5,6,6,1;1,3,2,4,5,6,7,8,9,10,11,12,13,14,15}作为当代精英种群,即
[0282] POPe={ch1,ch9};
[0283] 取虚拟机分配概率模型的更新速率θ1=0.2;
[0284] 虚拟机分配概率模型更新的具体实施过程如下:
[0285] 在当代精英种群POPe中,t1一次也没有被分配给vm1、vm2、vm3、vm5,而分配给vm4、vm6的则各有一次,即则根据公式(16)有:
[0286]
[0287]
[0288]
[0289]
[0290] α1,5(2)=0.20,α1,6(2)=0.30;
[0291] 同理,可以得到其它ti的αi,j(2),i=2,…,15,j=1,…,6,最终得到更新后的虚拟机分配概率模型为:
[0292]
[0293] 取任务调度顺序概率模型的更新速率θ2=0.2;
[0294] 任务调度顺序概率模型更新的具体实施过程如下:
[0295] 在当代精英种群POPe中,第一个调度的任务是t2和t1的各有1次,因此有则根据公式(17)有:
[0296]
[0297]
[0298]
[0299]
[0300] ……
[0301] β15,1(2)=0.00;
[0302] 同理,可以得到其它第i′个调度位置的βi,i′(2),i′=2,…,15,i=1,…,15,最终得到更新后的任务调度顺序概率模型为:
[0303]
[0304] 执行步骤6:采样概率模型生成新种群,令新种群为当代种群;
[0305] 对当前概率模型PMVM(2)和PMS(2)进行10次采样生成10个个体如下:
[0306] ch′1={6,1,2,1,6,1,4,5,1,4,2,5,6,6,1;1,2,3,4,5,6,7,8,10,11,9,12,13,14,15};
[0307] ch′2={4,1,5,6,6,3,5,6,2,4,4,4,1,5,1;3,1,2,6,5,4,7,8,9,10,11,12,13,14,15};
[0308] ch′3={5,4,2,4,1,1,4,5,2,4,6,4,6,6,6;3,1,4,2,5,6,7,8,10,11,9,12,13,14,15};
[0309] ch′4={5,5,1,3,2,4,2,6,1,2,3,4,6,6,1;1,2,5,4,3,6,7,8,10,11,9,12,13,14,15};
[0310] ch′5={1,1,2,4,2,3,5,5,2,2,3,4,6,6,1;1,2,5,4,3,6,7,8,9,11,10,12,13,14,15};
[0311] ch′6={4,5,5,3,6,1,5,6,2,2,3,5,6,6,1;1,2,3,6,4,5,7,8,10,9,11,12,13,14,15};
[0312] ch′7={1,3,3,4,6,5,4,4,1,2,3,5,6,4,6;1,4,3,2,6,5,7,8,9,11,10,12,13,14,15};
[0313] ch′8={5,5,1,6,6,4,5,5,5,2,6,5,6,4,6;3,2,1,4,5,6,7,8,11,10,9,12,13,14,15};
[0314] ch′9={4,1,3,3,6,4,2,5,5,2,6,5,6,2,1;3,1,2,5,4,6,7,8,9,10,11,12,13,14,15};
[0315] ch′10={4,1,3,5,1,4,5,5,3,4,2,3,6,5,1;2,3,1,4,5,6,7,8,10,9,11,12,13,14,15};
[0316] 形成了新种群NP={ch′1,ch′2,ch′3,ch′4,ch′5,ch′6,ch′7,ch′8,ch′9,ch′10};令新种群为当代种群,即CP=NP。
[0317] 执行步骤7:当代种群改进与最优个体保存;
[0318] 首先,采用FBI&D对当代种群中的所有个体进行改进;
[0319] 通过采样概率模型已获得了个体的所有任务执行时间、任务完成时间,及其适应度值即工作流响应时间,例如对于通过采样概率模型获得的当代种群中的个体
[0320] ch3={5,4,2,4,1,1,4,5,2,4,6,4,6,6,6;3,1,4,2,5,6,7,8,10,11,9,12,13,14,15},其所有任务执行时间为:et1=129.12,et2=185.16,et3=306.24,et4=263.16,et5=
752.64,et6=739.44,et7=20.24,et8=4.56,et9=431.76,et10=60.64,et11=343.68,
et12=496.08,et13=9.28,et14=10.00,et15=2.60;所有任务完成时间:f1=129.12,f2=
577.44,f3=306.24,f4=392.28,f5=1330.08,f6=2069.52,f7=2089.76,f8=2094.32,f9=2526.08,f10=2154.96,f11=2438.00,f12=3022.16,f13=3031.44,f14=3041.44,f15=
3044.04,及其工作流响应时间rs3=3052.44,因此对ch3={5,4,2,4,1,1,4,5,2,4,6,4,6,
6,6;3,1,4,2,5,6,7,8,10,11,9,12,13,14,15}采用FBI&D改进的具体实施过程如下:
[0321] 执行步骤C1:把个体ch3中的任务调度顺序列表根据任务完成时间fi从大到小重新排列,即把ch3中的基因gI+i设置为倒数第i个完成的任务,i=1,…,15,形成反向个体
[0322] 执行步骤C2:对 采用基于插入模式的串行反向个体解码方法进行解码获得所有任务反向完成时间:
及其反向工作流响应时间 由于
小于rs3=3052.44,则转到步骤C3;
[0323] 执行步骤C3:把反向个体 中的任务调度顺序列表根据任务反向完成时间 从大到小重新排列,即把 中的基因gI+i设置为倒数第i个完成的任务,i=1,…,15,形成个
体ch3={5,4,2,4,1,1,4,5,2,4,6,4,6,6,6;2,1,5,3,6,4,7,8,9,11,10,12,13,14,15};
[0324] 执行步骤C4:采用基于插入模式的串行个体解码方法对个体ch3进行解码,获得所有任务的完成时间:f1=129.12,f2=185.16,f3=306.24,f4=448.32,f5=937.80,f6=
1677.24,f7=1697.48,f8=1702.04,f9=2133.80,f10=1762.68,f11=2045.72,f12=
2629.88,f13=2639.16,f14=2649.16,f15=2651.76,及其工作流响应时间rs3=2660.16;
由于rs3=2660.16等于 则转到步骤C5;
[0325] 执行步骤C5:输出个体
[0326] ch3={5,4,2,4,1,1,4,5,2,4,6,4,6,6,6;2,1,5,3,6,4,7,8,9,11,10,12,13,14,15},及其适应度值即工作流响应时间rs3=2660.16,操作结束;
[0327] 以上述个体 为例,基于插入模式的串行反向个体解码方法的具体实施过程如下:
[0328] 执行步骤E1:由于 而SFL15={f15-1},故令任务的反向就绪时间: 令ε=1;令虚拟机可得时间段列
表:vatl1={[0,M]},vatl2={[0,M]},……,vatl6={[0,M]},其中M为一个接近无穷大的
数;
[0329] 执行步骤E2:选取编号为i=gI+1=g16的任务,其为任务15;
[0330] 执行步骤E3:基于插入模式把任务15分配给虚拟机j=g15=6;即执行步骤E3.1:在vatl6中从早到晚找出一个空闲时段[0,M],满足M-0≥et15=2.60和
执行步骤E3.2:计算任务15的反向开始时间 反向完
成时间 更新任务15的父任务的就绪时间
执行步骤E3.3:在虚拟机可得时间段列表vatl6中删除[0,M],插入区间长度大于0的[0,
8.40]和[11.00,M],则vatl6={[0,8.40],[11.00,M]};
[0331] 执行步骤E4:ε=1+1=2,由于ε=2≤I=15,则转到步骤E2;
[0332] 执行步骤E2:选取编号为i=gI+2=g17的任务,其为任务14;
[0333] 执行步骤E3:基于插入模式把任务14分配给虚拟机j=g14=6;即执行步骤E3.1:在vatl6中从早到晚找出一个空闲时段[11.00,M],满足M-11.00≥et14=10.00和
执行步骤E3.2:计算任务14的反向开始时间
反向完成时间 更新任务14的父任务的就绪时间
执行步骤E3.3:在虚拟机可得时间段列表vatl6中删除[11.00,M],插入区间长度大于0的
[21.00,M],则vatl6={[0,8.40],[21.00,M]};
[0334] 执行步骤E4:ε=2+1=3,由于ε=3≤I=15,则转到步骤E2;
[0335] ……
[0336] 这样不断重复执行步骤E2至步骤E4,直到ε=16>I=15为空,转到步骤E5;
[0337] 执行步骤E5:获得所有任务的反向完成时间:计算反向
工作流响应时间 操作结束。
[0338] 以上述对个体ch3={5,4,2,4,1,1,4,5,2,4,6,4,6,6,6;3,1,4,2,5,6,7,8,10,11,9,12,13,14,15}进行解码为例,其中基于插入模式的串行个体解码的具体实施过程如
下:
[0339] 执行步骤F1:令所有任务的就绪时间:rt1=0,rt2=0,…,rt15=0,令虚拟机可得时间段列表:vatl1={[0,M]},vatl2={[0,M]},…,vatl6={[0,M]},M为一个接近无穷大的
数;令ε=1;
[0340] 执行步骤F2:选取编号为g15+1=g16的任务,其为任务3;
[0341] 执行步骤F3:基于插入模式把任务3分配给虚拟机g3=2;即执行步骤F3.1:在vatl2中从早到晚找出一个空闲时间段[0,M],满足M-0≥et3=306.24和M-306.24≥rt3=0;执行
步骤F3.2:计算任务3的开始时间s3=max{v2,rt3}=max{0,0}=0,完成时间f3=s3+et3=0+
306.24=306.24,更新任务3的子任务的就绪时间:
[0342] rt6=max{rt6,f3}=max{0,306.24}=306.24,rt11=max{rt11,f3}=max{0,306.24}=306.24;执行步骤F3.3:在虚拟机可得时间段列表vatl2中删除[0,M],插入区间
长度大于0的[306.24,M],则vatl2={[306.24,M]};
[0343] 执行步骤F4:ε=1+1=2,由于ε=2≤I=15,故转至步骤F2;
[0344] 执行步骤F2:选取编号为g17的任务,其为任务1;
[0345] 执行步骤F3:基于插入模式把任务1分配给虚拟机g1=5;即执行步骤F3.1:在vatl5中从早到晚找出一个空闲时间段[0,M],满足M-0≥129.12和M-129.12≥0;执行步骤F3.2:
计算任务1的开始时间s1=max{0,0}=0,完成时间f1=0+129.12=129.12,更新任务1的子
任务的就绪时间:rt4=max{rt4,f1}=max{0,129.12}=129.12,rt5=129.12,rt6=max
{306.24,129.12}=306.24,rt9=129.12;执行步骤F3.3:在虚拟机可得时间段列表vatl5中
删除[0,M],插入区间长度大于0的[129.12,M],vatl5={[129.12,M]};
[0346] 执行步骤F4:ε=2+1=3,由于ε=3≤I=15,故转至步骤F2;
[0347] 执行步骤F2:选取编号为g18的任务,其为任务4;
[0348] 执行步骤F3:基于插入模式把任务4分配给虚拟机g4=4;即执行步骤F3.1:在vatl4中从早到晚找出一个空闲时间段[0,M],满足M-0≥263.16和M-263.16≥129.12;执行步骤
F3.2:计算任务4的开始时间s4=max{0,129.12}=129.12,完成时间f4=129.12+263.16=
392.28,更新任务4的子任务的就绪时间rt7=max{0,392.28}=392.28;执行步骤F3.3:在
虚拟机可得时间段列表vatl4中删除[0,M],插入区间长度大于0的[0,129.12]和[392.28,
M],vatl4={[0,129.12],[392.28,M]};
[0349] 执行步骤F4:ε=3+1=4,由于ε=4≤I=15,故转至步骤F2;
[0350] ……
[0351] 这样不断重复执行步骤F2至步骤F4,直到ε=16>I=15,获得所有任务的开始时间si和完成时间fi,转至步骤F5;
[0352] 执行步骤F5:获得所有任务的完成时间:f1=129.12,f2=577.44,f3=306.24,f4=392.28,f5=1330.08,f6=2069.52,f7=2089.76,f8=2094.32,f9=2526.08,f10=
2154.96,f11=2438.00,f12=3022.16,f13=3031.44,f14=3041.44,f15=3044.04;计算其适应度值即工作流响应时间rs3:由于 而SFL15={f15-1},故
操作结束。
[0353] 同理,种群中的其它个体经FBI&D改进后变为:
[0354] ch1={6,1,2,1,6,1,4,5,1,4,2,5,6,6,1;1,2,3,4,5,6,7,8,10,11,9,12,13,14,15};
[0355] ch2={4,1,5,6,6,3,5,6,2,4,4,4,1,5,1;3,1,2,6,5,4,7,8,9,10,11,12,13,14,15};
[0356] ch4={5,5,1,3,2,4,2,6,1,2,3,4,6,6,1;1,2,5,4,3,6,7,8,10,11,9,12,13,14,15};
[0357] ch5={1,1,2,4,2,3,5,5,2,2,3,4,6,6,1;1,2,5,4,3,6,7,8,9,11,10,12,13,14,15};
[0358] ch6={4,5,5,3,6,1,5,6,2,2,3,5,6,6,1;1,3,6,2,5,4,7,8,10,9,11,12,13,14,15};
[0359] ch7={1,3,3,4,6,5,4,4,1,2,3,5,6,4,6;1,4,3,2,6,5,7,8,9,11,10,12,13,14,15};
[0360] ch8={5,5,1,6,6,4,5,5,5,2,6,5,6,4,6;3,2,1,4,5,6,7,8,11,10,9,12,13,14,15};
[0361] ch9={4,1,3,3,6,4,2,5,5,2,6,5,6,2,1;3,1,2,5,4,6,7,8,9,10,11,12,13,14,15};
[0362] ch10={4,1,3,5,1,4,5,5,3,4,2,3,6,5,1;2,3,1,4,5,6,7,8,10,9,11,12,13,14,15};
[0363] 其适应度值即工作流响应时间分别为:rs1=2862.12,rs2=5100.52,rs4=2432.36,rs4=5024.20,rs5=3212.84,rs6=2761.20,rs7=4229.28,rs8=3839.96,rs9=
4873.24,rs10=3252.20;
[0364] 然后,采用LDI方法对当代种群中的所有个体进行改进;例如对种群中的第10个个体ch10={4,1,3,5,1,4,5,5,3,4,2,3,6,5,1;2,3,1,4,5,6,7,8,10,9,11,12,13,14,15}采
用LDI改进的具体实施过程如下:
[0365] 执行步骤D1:计算各虚拟机的负载,
[0366]同理可求得其它虚拟机的负载ld2=108,ld3=131.4,ld4=180,ld5=46.8,ld6=6;
[0367] 执行步骤D2:找出负载最小的虚拟机,其为vm6,j′=6,由于ld6=6>0,故转到步骤D3;
[0368] 执行步骤D3:令
[0369] 转 到步骤D5;
[0370] 执行步骤D5:ST6={t14}不为空,则按顺序从ST6中找出一个其所在虚拟机负载是最高的任务,其为t14,i′=14,转到步骤D6;
[0371] 执行步骤D6:g14=6,形成新个体
[0372] 用FBI&D方法对新个体 进行改进,新个体变为
[0373] 其工作流响应时间 相对于原方案3252.20有改进,则用此改进的个体替换原个体,转到
步骤D7;
[0374] 执行步骤D7:LDI操作结束;
[0375] 同理,种群中的其它个体经LDI改进后变为:
[0376] ch1={6,3,2,1,6,1,4,5,1,4,2,5,6,6,1;1,2,3,4,5,6,7,8,10,11,9,12,13,14,15};
[0377] ch2={4,1,5,5,6,3,5,6,2,4,4,4,1,5,1;3,1,2,6,5,4,7,8,9,10,11,12,13,14,15};
[0378] ch3={5,4,2,4,1,1,4,5,3,4,6,4,6,6,6;2,1,5,3,6,4,7,8,9,11,10,12,13,14,15};
[0379] ch4={5,5,1,3,2,4,2,6,1,2,3,4,6,6,6;1,2,5,4,3,6,7,8,10,11,9,12,13,14,15};
[0380] ch5={1,1,2,4,2,3,5,5,5,2,3,4,6,6,1;1,2,5,4,3,6,7,8,9,11,10,12,13,14,15};
[0381] ch6={4,5,5,3,6,1,5,6,2,2,3,5,6,6,6;1,3,6,2,5,4,7,8,10,9,11,12,13,14,15};
[0382] ch7={5,3,3,4,6,5,4,4,1,2,3,5,6,4,6;1,4,3,2,6,5,7,8,9,11,10,12,13,14,15};
[0383] ch8={5,5,3,6,6,4,5,5,5,2,6,5,6,4,6;1,3,4,2,6,5,7,8,10,11,9,12,13,14,15};
[0384] ch9={4,1,3,3,6,4,5,5,5,2,6,5,6,2,1;3,1,2,5,4,6,7,8,9,10,11,12,13,14,15};
[0385] 其适应度值即工作流响应时间分别为:rs1=2679.00,rs2=4846.92,rs3=2476.08,rs4=2356.36,rs5=2685.08,rs6=2685.20,rs7=4070.88,rs8=3637.92,rs9=
4855.88;
[0386] 由于改进后的种群中的最优个体并不优于BestChrom中保存的个体,因此无需更新保存在BestChrom中的个体。
[0387] 执行步骤8:判断是否满足终止条件,如果不满足,转到步骤5;否则输出BestChrom中保存的个体,其对应的调度方案作为优化方案;
[0388] 终止条件设为连续迭代20代最优个体没有改进;
[0389] 由于当前迭代进化了两代,不满足终止条件,因此转到步骤5。
[0390] ……
[0391] 这样不断重复执行步骤5至步骤8,直至BestChrom连续迭代20代都没有改进,当代种群变为:
[0392] ch1={6,4,5,5,6,5,4,6,3,4,4,4,6,6,6;2,3,1,5,4,6,7,8,10,9,11,12,13,14,15};
[0393] ch2={6,4,3,6,6,3,4,6,3,4,4,4,6,6,1;2,3,1,5,6,4,7,8,9,11,10,12,13,14,15};
[0394] ch3={6,4,2,5,6,3,4,4,3,4,4,4,6,6,6;2,3,1,4,6,5,7,8,10,9,11,12,13,14,15};
[0395] ch4={6,4,3,6,6,5,4,4,3,4,4,4,6,6,1;2,3,1,5,6,4,7,8,10,9,11,12,13,14,15};
[0396] ch5={6,4,3,6,6,3,4,6,3,4,4,4,6,6,1;2,3,1,4,6,5,7,8,10,9,11,12,13,14,15};
[0397] ch6={6,4,3,6,6,3,4,6,3,4,4,4,6,6,6;2,3,1,5,6,4,7,8,10,11,9,12,13,14,15};
[0398] ch7={6,4,5,6,6,3,4,4,3,4,4,4,6,6,6;2,3,1,5,6,4,7,8,10,9,11,12,13,14,15};
[0399] ch8={6,4,3,6,6,5,4,6,3,4,4,4,6,6,6;2,3,1,5,4,6,7,8,10,11,9,12,13,14,15};
[0400] ch9={6,4,5,5,6,5,4,6,3,4,4,4,6,6,6;2,3,1,5,6,4,7,8,10,11,9,12,13,14,15};
[0401] ch10={6,4,5,6,6,5,4,6,3,4,4,4,6,6,1;2,3,1,5,4,6,7,8,10,9,11,12,13,14,15};
[0402] 其适应度值即工作流响应时间分别为:rs1=1102.20,rs2=1108.16,rs3=1564.28,rs4=1239.36,rs5=1108.16,rs6=1032.16,rs7=1184.36,rs8=1164.92,rs9=
1102.20,rs10=1096.32;
[0403] BestChrom={6,4,3,6,6,3,4,6,3,4,4,4,6,6,6;2,3,1,5,6,4,7,8,10,11,9,12,13,14,15},rsBestChrom=1032.16,其对应的调度方案如表8所示。
[0404]
[0405]
[0406] 表8
[0407] 上述实施例只是本发明的较佳实施例,并不是对本发明技术方案的限制,只要是不经过创造性劳动即可在上述实施例的基础上实现的技术方案,均应视为落入本发明专利
的权利保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈