云计算环境下基于随机键遗传算法的工作流调度优化方法与流程

文档序号:20574459发布日期:2020-04-29 01:01阅读:275来源:国知局
云计算环境下基于随机键遗传算法的工作流调度优化方法与流程
本发明涉及计算机技术、信息技术和系统工程领域,具体涉及一种工作流调度优化方法,更具体的说,尤其涉及一种云计算环境下基于随机键遗传算法的工作流调度优化方法。
背景技术
:云计算环境下的工作流,简称“云工作流”,是云计算与工作流相关技术的整合,在需要高效计算性能和大规模存储支撑的科学计算和跨组织业务协作如:电子商务、应急管理、供应链管理和健康医疗等领域具有广泛的应用前景。在云工作流中,任务与任务之间存在着时序约束,执行时通常以虚拟机作为计算资源的最小分配单位负责接收并处理这些任务。云工作流调度是指在满足任务时序和用户需要约束下如何把云工作流中的任务分配到合适的虚拟机上,以及如何安排被分配到虚拟机上的任务的执行顺序,要解决两个方面的问题:任务分配和任务执行顺序。云工作流调度直接决定了整个云工作流系统的性能,随着云计算环境下过程自动化需求、特别是大规模协助和分布式电子商务和科学计算应用需求的快速增长,已成为云工作流系统的一个重要研究内容。当前云工作流调度优化方法可以分为三类:1)启发式方法,是指工作流任务分配和执行顺序都用启发式方法生成,如:heterogeneousearliestfinishtime即heft、criticalpathonaprocessors即cpop、levelizedmintime即lmt、dynamiclevelscheduling即dls、dynamiccriticalpath即dcp、longestdynamiccriticalpath即ldcp等方法;2)智能计算方法,是指工作流任务分配和执行顺序都通过智能计算方法来搜索生成;如:遗传算法ga、粒子群优化算法pso、模拟退火算法sa等方法;3)结合启发式的半智能计算方法,是指工作流任务分配通过智能计算方法来搜索生成而任务执行顺序则根据智能计算方法搜索生成的任务分配方案采用基于优先级的启发式方法生成,或工作流任务执行顺序通过智能计算方法来搜索生成而任务分配则根据智能计算方法搜索生成的任务执行顺序通过基于任务最早完成时间的启发式方法来生成。然而,现有的这些云工作流调度优化方法有着如下缺点:1)启发式方法能在较短的时间获得一个调度优化方案,但其质量通常不是很高而且依赖于工作流的类型;2)智能计算方法的算法效率依赖于编码与解码、进化迭代策略的设计及控制参数的选择等,其中,结合启发式的半智能计算方法搜索的解空间即调度方案是不完整的,因此其理论上存在搜索不到最优调度方案的可能性;智能计算方法其理论上可以实现全域搜索,但采用全域搜索会导致搜索效率降低。因此,随着云工作流复杂性及其应用需求的增加,亟需设计一种更高效方法来解决云工作流调度优化问题。技术实现要素:为了克服启发式方法解的质量通常不是很高而且依赖于工作流的类型,结合启发式的半智能计算方法及现有的基于分层编码的智能计算方法搜索空间的不完备性,基于全域搜索的智能计算方法会导致搜索效率降低等不足,本发明提供了一种云计算环境下基于随机键遗传算法的工作流调度优化方法,有效提高了求解的效率与质量。本发明解决其技术问题所采用的技术方案如下:一种云计算环境下基于随机键遗传算法的工作流调度优化方法,包括以下步骤:步骤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:在所有ranki中值最大的对应的任务称为关键任务;步骤3:计算任务的层次值;对于没有父任务的开始任务i,其层次值为:leveli=1(10)其它任务的层次值采用如下递归公式进行计算:步骤4:初始化当代种群;基于heft_lbt生成1个个体,然后,基于个体随机生成操作生成剩余的n-1个体,形成初始种群;其中n为种群规模;所述个体采用i位实数编码,其方法如下:ch={g1,…,gi},其中i是任务的数量,基因gi是一个正实数,整数部分表示给任务i分配的虚拟机编号,即把任务i分配给虚拟机小数部分表示任务i在调度时的优先级,数值越小优先级越高;所述基于heft_lbt生成1个个体包括如下步骤:步骤a1:令所有虚拟机可得时间段列表vatlj={[0,m]},j=1,…,j,m为一个接近无穷大的数;令所有任务的就绪时间rti=0,i=1,…,i;生成i个[0,1)之间的随机数,不妨设这些随机数从小到大为:α1,α2,…,αi;令计数变量k=1、任务集ut=t;步骤a2:在ut中找出层次值最小的任务,从中取出rank最大的一个任务,不妨设为ti;步骤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+αk,把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:若ut不为空,则k=k+1,转到步骤a2,否则转到步骤a6;步骤a6:获得一个基于heft_lbt的个体ch={g1,…,gi},计算其适应度值,操作结束;其中:ωi,j:是vmj处理ti的时间,是把ti分配给vmj处理时需要从其它的虚拟机获得输入文件的文件传输时间,是处理的虚拟机;τi,j:是把ti分配给vmj处理时需要从共享数据库获得输入文件的文件传输时间,所述个体随机生成操作包括如下步骤:步骤b1:令任务编号变量i=1;步骤b2:从vmi中随机选择一个虚拟机j;步骤b3:生成一个服从[0,1)均匀分布的随机数δ;步骤b4:gi=j+δ;步骤b5:i=i+1,如果i≤i,那么转到步骤b2;否则转到步骤b6;步骤b6:输出一个个体ch={g1,…,gi},操作结束;步骤5:采用fbi&d和ldi方法改进当代种群中新产生的个体并计算其适应度值;所述fbi&d方法包括如下步骤:步骤c1:令反向工作流响应时间m为一个接近无穷大的数;计算所有任务的执行时间i=1,…,i;步骤c2:采用基于插入模式的串行个体解码方法对个体ch进行解码,获得所有任务的完成时间f1,…,fi及其工作流响应时间rs;如果rs小于则转到步骤c3,否则,转到步骤c6;步骤c3:随机生成i个[0,1)之间的随机数,不妨设这些随机数从小到大为:α1,…,αi;根据完成时间从大到小对任务进行排序,获得任务i的排序值qi,i=1,…,i,把个体ch中任务i的优先级即gi的小数部分变为形成反向个体步骤c4:对采用基于插入模式的串行反向个体解码方法进行解码获得所有任务的反向完成时间及其反向工作流响应时间若小于rs,则转到步骤c5,否则,转到步骤c6;步骤c5:随机生成i个[0,1)之间的随机数,不妨设这些随机数从小到大为:α1,…,αi;根据反向完成时间从大到小对任务进行排序,获得任务i的排序值qi,i=1,…,i,把反向个体中任务i的优先级即gi的小数部分变为形成个体ch,转到步骤c2;步骤c6:输出个体ch及其适应度值即工作流响应时间rs,操作结束;所述ldi方法描述如下:步骤d1:计算各虚拟机负载j=1,…,j;步骤d2:找出负载最小的虚拟机j′;如果ldj′>0,转到步骤d3,否则转到步骤d4;步骤d3:令任务集转到步骤d5;步骤d4:令任务集stj′=tj′,转到步骤d5;步骤d5:如果stj′不为空,则从stj′中按顺序取出一个其所在虚拟机的负载是最高的任务i′,转到步骤d6;否则转到步骤d7;步骤d6:形成新的个体采用fbi&d方法对进行解码与改进,如果相对于原个体有改进,则用此改进的个体替换原个体,转到步骤d7;否则转到步骤d5;步骤d7:ldi操作结束;步骤6:判断是否满足终止条件,如满足,则进化结束转到步骤11,否则转到步骤7;所述终止条件可以为迭代到指定的代数tg或连续迭代gg代最优个体没有改进;步骤7:进行精英保留,即根据适应度值从小到大从当代种群中选取前[n×pe]个个体放到新种群;其中pe∈(0,1)为精英率;步骤8:进行个体迁徙,即采用个体随机生成操作生成[n×pim]个个体放到新种群;其中pim∈(0,1)为迁徙率;步骤9:进行参数均匀交叉操作生成n-[n×pe]-[n×pim]个个体放到新种群;所述参数均匀交叉方法描述如下:采用锦标赛法从当代种群中随机选择两个不同个体作为父体,不妨设为:由chp1和chp2生成一个子个体chc,chc中的每个基因gic以β∈(0,1)的概率来自父体chp1,1-β的概率来自父体chp2;采用锦标赛法从当代种群中随机选择1个个体的过程描述如下:首先从当代种群中随机选择两个不同个体,然后比较这两个个体的适应度值,去掉差的个体,保留优的个体;步骤10:令新种群为当代种群,转到步骤5;步骤11:输出当代种群中的最优个体,其对应的调度方案为优化方案。进一步的,所述适应度值为工作流响应时间rs,其计算方法如下:其中:rfi是任务i的响应时间,sfli是任务i输出给共享数据库的输出文件集,即适应度值越小,个体越优。进一步的,所述步骤c2中基于插入模式的串行个体解码方法的具体步骤如下:步骤e1:令所有虚拟机可得时间段列表vatlj={[0,m]},j=1,…,j;其中m为一个接近无穷大的数;令所有任务的就绪时间rti=0,令任务集p(ti)=pri,i=1,…,i;令任务集ut=t;把ut中的ti移到rt中;步骤e2:从rt中取出一个优先级最高即最小的可调度任务,不妨设为ti;步骤e3:把ti分配给不妨设步骤e3.1:在vatlj中从早到晚找出一个空闲时段[νj,υj],满足υj-νj≥eti和υj-eti≥rti;步骤e3.2:ti的开始时间si=max{νj,rti},ti的结束时间fi=si+eti;步骤e3.3:更新ti的子任务的就绪时间步骤e3.4:在虚拟机可得时间段列表vatlj中删除[νj,υj],插入区间长度大于0的[νj,si]和[fi,υj];步骤e3.5:在所有中删除ti;步骤e3.6:把ut中的ti移到rt中;步骤e4:如果rt不为空则转到步骤e2,否则转到步骤e5;步骤e5:获得任务的完成时间fi,计算其适应度值即工作流响应时间,操作结束。进一步的,所述步骤c4中基于插入模式的串行反向个体解码方法的具体步骤如下:步骤f1:令所有虚拟机可得时间段列表vatlj={[0,m]},j=1,…,j;其中m为一个接近无穷大的数;令所有任务的反向就绪时间i=1,…,i;令任务集ut=t;步骤f2:从ut中取出一个优先级最高即最小的可调度任务,不妨设为ti;步骤f3:把ti分配给不妨设步骤f3.1:在vatlj中从早到晚找出一个空闲时段[νj,υj],满足υj-νj≥eti和步骤f3.2:计算ti的反向开始时间和ti的反向结束时间步骤f3.3:更新ti的父任务的反向就绪时间步骤f3.4:在虚拟机可得时间段列表vatlj中删除[νj,υj],插入区间长度大于0的和步骤f4:如果ut不为空则转到步骤f2,否则转到步骤f5;步骤f5:获得所有任务的反向完成时间i=1,…,i,计算反向工作流响应时间操作结束。本发明的有益效果在于:(1)相对于启发式方法、结合启发式的半智能计算方法及现有的基于分层编码的智能计算方法,本发明设计采用的编码方法,任何一个调度方案都可以有一个个体与之对应,因此其搜索空间是完备的,可以实现全域搜索。(2)相对于基于拓扑排序或分层的编码方法,本发明设计采用的基于随机键的实数编码方法在个体编码中无需考虑任务之间的时序关系,这样基于该编码方法的遗传操作更简单有效。(3)相对于传统的非插入模式和并行解码方法,本发明设计采用的基于插入模式的尽可能早地安排任务执行的串行个体解码方法通常能找到更好的对应调度方案。(4)相对于普通的单向解码方法,本发明设计采用的向前向后个体解码与改进策略和考虑了传输时间的负载均衡的策略增强了个体的邻域寻优能力,从而能提高了整个算法的寻优能力和搜索效率。(5)相对于传统的随机初始化方法,本发明在初始化种群中播入了一个对应heft_lbt调度优化方案的个体,这样可以使算法可以在一个比较高的起点上开始搜索,从而缩短算法的收敛时间。(6)相对于传统的遗传操作,本发明设计采用的个体迁徙方法替代了变异操作,能在更大程度上破坏个体,保持种群的多样性,从而更有利于算法避免进入局部最优和早熟。附图说明图1是本发明一种云计算环境下基于随机键遗传算法的工作流调度优化方法的流程示意图。图2是本发明实施例中montage工作流任务间的时序关系图。具体实施方式下面结合图1、图2及实施例对本发明做进一步详细说明,但本发明并不仅限于以下的实施例。假设一个云计算中心有编号为1至6的6台虚拟机可供使用,虚拟机vm1,vm2,…,vm6的处理能力和带宽如表1所示;一个montage工作流任务间的时序关系如图2所示,由编号为1至15的15个任务组成,任务t1,t2,…,t15的执行长度,处理所需要的输入文件和处理后的输出文件的名称、长度以及可以被处理的虚拟机如表2所示。虚拟机处理能力(mi/s)带宽(mbit/s)虚拟机处理能力(mi/s)带宽(mbit/s)vm11000200vm42000300vm21000200vm53000400vm32000300vm63000400表1表2针对上述案例,如图1所示,一种云计算环境下基于随机键遗传算法的工作流调度优化方法,包括以下实施步骤:执行步骤1:形式化调度问题,获取调度优化所需的信息;获取任务集t={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};获取任务间的时序关系,即任务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},获取任务的相关参数: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;获取云计算环境下的虚拟机集:vm={vm1,vm2,vm3,vm4,vm5,vm6};获取虚拟机相关参数: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;获取任务与虚拟机之间的支持关系: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}。执行步骤2:计算任务的排序值rank;首先,计算ti执行时的平均处理时间同理可得结果如表3所示:表3计算ti执行时需要从共享数据库获得输入文件的平均传输时间同理可得结果如表4所示:表4计算和ti间的文件平均传输时间:同理可得其它任务间的文件平均传输时间,结果如表5所示:表5计算ti执行时需要从其它虚拟机获得输入文件的平均传输时间同理可得结果如表6所示表6然后,计算任务i的同理可得结果如表7所示;接着,计算任务i的同理可得结果如表7所示;最后,计算任务i的ranki:rank2=4114.79+0.00=4114.79,同理可得rank3,…,rank15,结果如表7所示:任务rankibrankitranki任务rankibrankitranki任务rankibrankitrankit14095.280.004095.28t63815.62231.444047.06t113232.23830.664062.89t24114.790.004114.79t73316.20798.594114.79t122935.031179.764114.79t34047.060.004047.06t83288.99825.804114.79t132305.721809.064114.79t43572.20184.413756.61t93241.38830.664072.04t142289.551825.244114.79t53910.87203.924114.79t103284.12830.664114.79t1553.304061.494114.79表7执行步骤3:计算任务的层次值;任务1、任务2和任务3均没有父任务,则level1=level2=level3=1;任务4只有一个父任务1,则同理,可以获得其它任务的层次值:level5=level6=2;level7=3;level8=4;level9=level10=level11=5;level12=6;level13=7;level14=8;level15=9。执行步骤4:初始化当代种群;取种群规模n=10;基于heft_lbt生成1个个体,然后,基于个体随机生成操作生成剩余的9个体,形成初始种群;基于heft_lbt生成1个个体的具体实施过程如下:执行步骤a1:初始化各个虚拟机的可得时间段列表:vatl1={[0,m]},vatl2={[0,m]},…,vatl6={[0,m]},m为一个接近无穷大的数;初始化所有任务的就绪时间:rt1=0,rt2=0,…,rt15=0;生成15个[0,1)之间的随机数,从小到大为:α1=0.02,α2=0.03,α3=0.07,α4=0.44,α5=0.48,α6=0.49,α7=0.53,α8=0.55,α9=0.56,α10=0.68,α11=0.70,α12=0.72,α13=0.83,α14=0.84,α15=0.96;令ut=t={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15},k=1;执行步骤a2:在任务集ut={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15}中层次值最小的任务为t1、t2、t3,由于rank1=4095.28,rank2=4114.79,rank3=4047.06,即t2的rank最大,因此从ut中取出t2;执行步骤a3:令avm2=vm2={vm1,vm3,vm4,vm5},计算把t2分配给avm2中的每个虚拟机后t2的完成时间;即:执行步骤a3.1:从avm2中取出vm1;执行步骤a3.2:计算t2分配给vm1处理后的执行时间:ω2,1=138000/1000=138,τ2,1=8×(36+4320)/200=174.24,则执行步骤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;执行步骤a4:按虚拟机顺序找出能最早完成t2的虚拟机,其为vm5,g2=5+α1=5+0.02=5.02,把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]};执行步骤a5:由于ut={t1,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15}不为空,则k=k+1=1+1=2,转到步骤a2;执行步骤a2:在任务集ut={t1,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15}中层次值最小的任务为t1、t3,由于rank1=4095.28,rank3=4047.06,即t1的rank最大,因此从ut中取出t1;执行步骤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;执行步骤a4:按虚拟机顺序找出能最早完成t1的虚拟机,其为vm6,g1=6+α2=6+0.03=6.03,把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]};执行步骤a5:由于ut={t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15}不为空,则k=k+1=2+1=3,转到步骤a2;……这样不断重复执行步骤a2至步骤a5,直至确定所有的基因值和任务的完成时间,转至步骤a6;执行步骤a6:获得1个基于heft_lbt的个体ch1={6.03,5.02,3.07,5.49,6.44,3.48,5.53,5.55,5.68,4.56,3.70,4.72,6.83,6.84,6.96},计算其适应度值即工作流响应时间:由于而sfl15={f15-1},故操作结束;基于个体随机生成操作生成1个个体的具体实施过程如下:执行步骤b1:i=1;执行步骤b2:从vm1={vm1,vm4,vm5,vm6}中随机选择一个虚拟机,其为vm6;执行步骤b3:生成一个服从[0,1)均匀分布的随机数δ,其为0.37;执行步骤b4:g1=6+0.37=6.37;执行步骤b5:i=i+1=1+1=2,由于i=2≤i=15,故转到步骤b2;执行步骤b2:从vm2={vm1,vm3,vm4,vm5}中随机选择一个虚拟机,其为vm4;执行步骤b3:生成一个服从[0,1)均匀分布的随机数δ,其为0.08;执行步骤b4:g2=4+0.08=4.08;执行步骤b5:i=i+1=2+1=3,由于i=3≤i=15,故转到步骤b2;执行步骤b2:从vm3={vm1,vm2,vm3,vm5}中随机选择一个虚拟机,其为vm3;执行步骤b3:生成一个服从[0,1)均匀分布的随机数δ,其为0.99;执行步骤b4:g3=3+0.99=3.99;执行步骤b5:i=i+1=3+1=4,由于i=4≤i=15,故转到步骤b2;……这样不断重复执行步骤b2至步骤b5,直至i=16>i=15,确定所有的基因值,转到步骤b6;执行步骤b6:输出一个个体ch2={6.37,4.08,3.99,5.60,2.95,4.77,5.57,6.79,5.12,4.02,4.25,3.77,6.26,2.07,6.90},操作结束;同理,采用个体随机生成操作生成的其它8个个体如下:ch3={5.71,3.32,2.16,6.68,2.09,5.45,4.39,4.79,2.42,4.22,3.68,4.56,1.62,2.16,6.83};ch4={1.80,4.96,1.60,6.37,2.07,4.60,4.76,6.51,4.29,2.58,6.53,4.31,6.00,4.21,1.48};ch5={1.87,5.49,5.25,6.84,1.71,5.31,5.01,5.83,4.59,2.99,3.38,5.88,6.38,2.82,1.46};ch6={1.15,1.29,2.17,4.62,6.04,3.18,5.44,6.64,1.64,4.73,6.36,5.06,1.48,6.43,1.22};ch7={4.13,5.88,5.54,3.29,2.91,4.30,5.42,6.79,3.37,4.60,2.71,4.17,6.38,6.29,6.21};ch8={1.58,1.50,3.44,1.38,1.21,4.44,2.11,4.39,2.88,2.16,6.50,3.28,1.37,4.26,1.02};ch9={6.55,5.93,2.29,4.34,2.22,1.84,5.05,5.38,5.06,2.82,3.86,3.23,6.52,6.17,6.78};ch10={1.81,3.44,5.09,5.44,6.87,4.62,5.71,6.50,5.18,4.36,4.86,4.87,6.46,2.17,1.67};这样,最终生成的初始当代种群为cp={ch1,ch2,ch3,ch4,ch5,ch6,ch7,ch8,ch9,ch10}。执行步骤5:采用fbi&d和ldi方法改进当代种群中新产生的个体并计算其适应度值;首先,对种群中新产生的个体采用fbi&d方法改进,例如对种群中的ch8={1.58,1.50,3.44,1.38,1.21,4.44,2.11,4.39,2.88,2.16,6.50,3.28,1.37,4.26,1.02}采用fbi&d方法进行改进的具体实施过程如下:执行步骤c1:令反向工作流响应时间m为一个接近无穷大的数;计算所有任务的执行时间:et3=182.16,et4=103.44,et5=109.44,et6=579.56,et7=36.96,et8=6.68,et9=431.76,et10=447.36,et11=241.44,et12=832.08,et13=23.28,et14=2895.00,et15=70.20;执行步骤c2:采用基于插入模式的串行个体解码方法对个体ch8进行解码,获得所有任务的完成时间:f1=612.48,f2=312.24,f3=182.16,f4=825.36,f5=721.92,f6=1192.04,f7=1229.00,f8=1235.68,f9=2114.80,f10=1683.04,f11=1477.12,f12=2946.88,f13=2970.16,f14=5865.16,f15=5935.36,及其工作流响应时间rs8=5952.16;由于rs8=5952.16小于则转到步骤c3;执行步骤c3:随机生成15个[0,1)之间的随机数,从小到大为:α1=0.06,α2=0.13,α3=0.22,α4=0.26,α5=0.29,α6=0.39,α7=0.53,α8=0.56,α9=0.60,α10=0.62,α11=0.64,α12=0.65,α13=0.71,α14=0.89,α15=0.99;根据完成时间从大到小对任务进行排序,获得任务i的排序值:q15=1,q14=2,q13=3,q12=4,q9=5,q10=6,q11=7,q8=8,q7=9,q6=10,q4=11,q5=12,q1=13,q2=14,q3=15,把个体ch8中任务i的优先级即gi的小数部分变为i=1,…,15,形成反向个体执行步骤c4:对采用基于插入模式的串行反向个体解码方法进行解码获得所有任务的反向完成时间:及其反向工作流响应时间由于小于rs8=5952.16,则转到步骤c5;执行步骤c5:随机生成15个[0,1)之间的随机数,从小到大为:α1=0.00,α2=0.01,α3=0.03,α4=0.13,α5=0.23,α6=0.27,α7=0.28,α8=0.37,α9=0.55,α10=0.62,α11=0.77,α12=0.82,α13=0.84,α14=0.87,α15=0.99;根据反向完成时间从大到小对任务进行排序,获得任务i的排序值:q1=1,q3=2,q6=3,q2=4,q5=5,q4=6,q7=7,q8=8,q10=9,q9=10,q11=11,q12=12,q13=13,q14=14,q15=15,把反向个体中任务i的优先级即gi的小数部分变为i=1,…,15,形成个体ch8={1.00,1.13,3.01,1.27,1.23,4.03,2.28,4.37,2.62,2.55,6.77,3.82,1.84,4.87,1.99},转到步骤c2;执行步骤c2:采用基于插入模式的串行个体解码方法对个体ch8进行解码,获得所有任务的完成时间:f1=300.24,f2=612.48,f3=182.16,f4=825.36,f5=721.92,f6=879.80,f7=916.76,f8=923.44,f9=1802.56,f10=1370.80,f11=1164.88,f12=2634.64,f13=2657.92,f14=5552.92,f15=5623.12,及其工作流响应时间rs8=5639.92;由于rs8=5639.92等于则转到步骤c6;执行步骤c6:输出个体ch8={1.00,1.13,3.01,1.27,1.23,4.03,2.28,4.37,2.62,2.55,6.77,3.82,1.84,4.87,1.99},及其适应度值即工作流响应时间rs8=5639.92,操作结束;以上述个体ch8={1.58,1.50,3.44,1.38,1.21,4.44,2.11,4.39,2.88,2.16,6.50,3.28,1.37,4.26,1.02}解码为例,所述基于插入模式的串行个体解码方法的具体实施过程如下:执行步骤e1:令所有虚拟机的可得时间段列表:vatl1={[0,m]},vatl2={[0,m]},…,vatl6={[0,m]},m为一个接近无穷大的数;令所有任务的就绪时间: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};把ut中的任务,即t1、t2、t3移到rt中,则rt={t1,t2,t3},ut={t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};执行步骤e2:在rt={t1,t2,t3}中,即t3为优先级最高的可调度任务,从rt中取出t3,rt={t1,t2};执行步骤e3:基于插入模式把t3分配给即执行步骤e3.1:在vatl3中从早到晚找出一个空闲时间段[0,m],满足m-0≥et3=182.16和m-182.16≥rt3=0;执行步骤e3.2:计算t3分配给vm3处理后的开始时间s3=max{v3,rt3}=max{0,0}=0,完成时间f3=s3+et3=0+182.16=182.16;执行步骤e3.3:更新t3的子任务的就绪时间:rt6=max{rt6,f3}=max{0,182.16}=182.16,rt11=182.16;执行步骤e3.4:在虚拟机可得时间段列表vatl3中删除[0,m],插入区间长度大于0的[182.16,m],即vatl3={[182.16,m]};执行步骤e3.5:在p(t6)、p(t11)中删除t3,则p(t6)={t1}、p(t11)={t8};执行步骤e3.6:由于ut中不存在的任务,则rt,ut均不变;执行步骤e4:由于rt={t1,t2}不为空,则转到步骤e2;执行步骤e2:在rt={t1,t2}中,即t2为优先级最高的可调度任务,从rt中取出t2,rt={t1};执行步骤e3:基于插入模式把t2分配给vm1;即执行步骤e3.1:在vatl1中从早到晚找出一个空闲时间段[0,m],满足m-0≥312.24和m-312.24≥0;执行步骤e3.2:计算t2分配给vm1处理后的开始时间s2=max{v1,rt2}=max{0,0}=0,完成时间f2=s2+et2=0+312.24=312.24;执行步骤e3.3:更新t2子任务的就绪时间rt5=max{rt5,f2}=max{0,312.24}=312.24,rt10=312.24;执行步骤e3.4:在虚拟机可得时间段列表vatl1中删除[0,m],插入区间长度大于0的[312.24,m],即vatl1={[312.24,m]};执行步骤e3.5:在p(t5)、p(t10)中删除t2,则p(t5)={t1}、p(t10)={t8};执行步骤e3.6:由于ut中不存在的任务,则rt,ut均不变;执行步骤e4:由于rt={t1}不为空,则转到步骤e2;执行步骤e2:从rt={t1}中取出t1,则执行步骤e3:基于插入模式把t1分配给vm1;即执行步骤e3.1:在vatl1中从早到晚找出一个空闲时间段[312.24,m],满足m-312.24≥300.24和m-300.24≥0;执行步骤e3.2:计算t1分配给vm1处理后的开始时间s1=max{v1,rt1}=max{312.24,0}=312.24,完成时间f1=s1+et1=312.24+300.24=612.48;执行步骤e3.3:更新t1子任务的就绪时间rt4=max{rt4,f1}=max{0,612.48}=612.48,rt5=max{rt5,f1}=max{312.24,612.48}=612.48,rt6=max{rt6,f1}=max{182.16,612.48}=612.48,rt9=max{rt9,f1}=max{0,612.48}=612.48;执行步骤e3.4:在虚拟机可得时间段列表vatl1中删除[312.24,m],插入区间长度大于0的[612.48,m],即vatl1={[612.48,m]};执行步骤e3.5:在p(t4)、p(t5)、p(t6)、p(t9)中删除t1,则p(t9)={t8};执行步骤e3.6:把ut中的任务,即t4、t5、t6移到rt中,则rt={t4,t5,t6},ut={t7,t8,t9,t10,t11,t12,t13,t14,t15};执行步骤e4:由于rt={t4,t5,t6}不为空,则转到步骤e2;……这样不断重复执行步骤e2至步骤e4,直至rt为空集,获得所有任务的开始与完成时间,转至步骤e5;执行步骤e5:输出所有任务的开始时间:s1=312.24,s2=0.00,s3=0.00,s4=721.92,s5=612.48,s6=612.48,s7=1192.04,s8=1229.00,s9=1683.04,s10=1235.68,s11=1235.68,s12=2114.80,s13=2946.88,s14=2970.16,s15=5865.16,完成时间:f1=612.48,f2=312.24,f3=182.16,f4=825.36,f5=721.92,f6=1192.04,f7=1229.00,f8=1235.68,f9=2114.80,f10=1683.04,f11=1477.12,f12=2946.88,f13=2970.16,f14=5865.16,f15=5935.36,计算其适应度值即工作流响应时间:由于而sfl15={f15-1},故操作结束;以上述个体解码为例,所述基于插入模式的串行反向个体解码方法的具体实施过程如下:执行步骤f1:令所有虚拟机可得时间段列表:vatl1={[0,m]},vatl2={[0,m]},……,vatl6={[0,m]};其中m为一个接近无穷大的数;由于而sfl15={f15-1},故令任务的反向就绪时间:ut=t={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};执行步骤f2::在ut中,即t15为优先级最高的可调度任务,从ut中取出t15,则ut={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14};执行步骤f3:把t15分配给即执行步骤f3.1:在vatl1中从早到晚找出一个空闲时段[0,m],满足m-0≥et15=70.2和执行步骤f3.2:计算t15的反向开始时间和t15的反向结束时间执行步骤f3.3:更新t15的父任务的反向就绪时间执行步骤f3.4:在虚拟机可得时间段列表vatl1中删除[0,m],插入区间长度大于0的[0,16.8]和[87,m];执行步骤f4:由于ut={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14}不为空则转到步骤f2;执行步骤f2::在ut中,即t14为优先级最高的可调度任务,从ut中取出t14,则ut={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13};执行步骤f3:把t14分配给即执行步骤f3.1:在vatl4中从早到晚找出一个空闲时段[0,m],满足m-0≥et15=2895和执行步骤f3.2:计算t14的反向开始时间和t14的反向结束时间执行步骤f3.3:更新t14的父任务的反向就绪时间执行步骤f3.4:在虚拟机可得时间段列表vatl4中删除[0,m],插入区间长度大于0的[0,87]和[2982,m];执行步骤f4:由于ut={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13}不为空则转到步骤f2;……这样不断重复执行步骤f2至步骤f4,直到ut为空,转到步骤f5;执行步骤f5:获得所有任务的反向完成时间:计算反向工作流响应时间操作结束。同理,种群中的其它个体经fbi&d方法改进后变为:ch1={6.03,5.02,3.07,5.49,6.44,3.48,5.53,5.55,5.68,4.56,3.70,4.72,6.83,6.84,6.96};ch2={6.37,4.08,3.99,5.60,2.95,4.77,5.57,6.79,5.12,4.02,4.25,3.77,6.26,2.07,6.90};ch3={5.71,3.32,2.16,6.68,2.09,5.45,4.39,4.79,2.42,4.22,3.68,4.56,1.62,2.16,6.83};ch4={1.80,4.96,1.60,6.37,2.07,4.60,4.76,6.51,4.29,2.58,6.53,4.31,6.00,4.21,1.48};ch5={1.87,5.49,5.25,6.84,1.71,5.31,5.01,5.83,4.59,2.99,3.38,5.88,6.38,2.82,1.46};ch6={1.15,1.29,2.17,4.62,6.04,3.18,5.44,6.64,1.64,4.73,6.36,5.06,1.48,6.43,1.22};ch7={4.11,5.13,5.27,3.51,2.17,4.53,5.55,6.58,3.76,4.73,2.64,4.85,6.92,6.93,6.98};ch9={6.55,5.93,2.29,4.34,2.22,1.84,5.05,5.38,5.06,2.82,3.86,3.23,6.52,6.17,6.78};ch10={1.81,3.44,5.09,5.44,6.87,4.62,5.71,6.50,5.18,4.36,4.86,4.87,6.46,2.17,1.67};其适应度值即工作流响应时间分别为:rs1=1174.64,rs2=4895.84,rs3=5025.44,rs4=4408.72,rs5=4944.28,rs6=5373.24,rs7=1908.96,rs9=2107.16,rs10=4641.36;然后,对种群中新产生的个体采用ldi方法进行改进,例如对种群中的ch5={1.87,5.49,5.25,6.84,1.71,5.31,5.01,5.83,4.59,2.99,3.38,5.88,6.38,2.82,1.46}采用ldi方法进行改进的具体实施过程如下:执行步骤d1:计算各虚拟机的负载:同理,ld2=150,ld3=54,ld4=57,ld5=136.4,ld6=40;执行步骤d2:找出负载最小的虚拟机,其为vm6,由于ld6=40>0,故转到步骤d3;执行步骤d3:转到步骤d5;执行步骤d5:由于st6={t1,t14}不为空,则从st6中按顺序取出一个其所在虚拟机负载是最高的任务,其为t1,转到步骤d6;执行步骤d6:形成新的个体采用fbi&d方法对进行解码改进,个体变为工作流响应时间为由于即个体相较于原个体ch5没有改进,放弃改进,转到步骤d5;执行步骤d5:由于st6={t14}不为空,则从st6中取出一个其所在虚拟机负载是最高的任务,其为t14转到步骤d6;执行步骤d6:形成新的个体采用fbi&d方法对进行解码改进,个体变为工作流响应时间为由于即个体相较于原个体ch5有改进,因此用改进的个体替换原个体ch5,则转到步骤d7;执行步骤d7:ldi操作结束;同理,种群中的其它个体经ldi方法改进后变为:ch1={6.03,5.02,3.07,5.49,6.44,3.48,5.53,5.55,5.68,4.56,3.70,4.72,6.83,6.84,6.96};ch2={6.37,4.08,3.99,5.60,2.95,4.77,5.57,6.79,5.12,4.02,4.25,3.77,6.26,2.07,6.90};ch3={5.71,3.32,2.16,6.68,2.09,5.45,4.39,4.79,2.42,4.22,3.68,4.56,1.62,2.16,6.83};ch4={1.80,4.96,3.60,6.37,2.07,4.60,4.76,6.51,4.29,2.58,6.53,4.31,6.00,4.21,1.48};ch6={1.15,1.29,2.17,4.62,6.04,3.18,5.44,6.64,5.64,4.73,6.36,5.06,1.48,6.43,1.22};ch7={4.11,5.13,5.27,3.51,2.17,4.53,5.55,6.58,3.76,4.73,2.64,4.85,6.92,6.93,6.98};ch8={1.00,1.13,3.01,1.27,1.23,4.03,5.28,4.37,2.62,2.55,6.77,3.82,1.84,4.87,1.99};ch9={6.55,5.93,2.29,4.34,2.22,1.84,4.05,5.38,5.06,2.82,3.86,3.23,6.52,6.17,6.78};ch10={1.81,3.44,5.09,5.44,6.87,4.62,5.71,6.50,5.18,4.36,4.86,4.87,6.46,2.17,1.67};其适应度值即工作流响应时间分别为:rs1=1174.64,rs2=4895.84,rs3=5025.44,rs4=4102.48,rs6=5085.24,rs7=1908.96,rs8=5634.56,rs9=2099.00,rs10=4641.36;执行步骤6:判断是否满足终止条件,如满足,则进化结束转到步骤11,否则转到步骤7;终止条件设为连续迭代gg=20代最优个体没有改进;在上述过程所生成的种群是初始化后改进的种群,当前只迭代进化了一代,不满足终止条件,因此转到步骤7。执行步骤7:进行精英保留,即根据适应度值从小到大从当代种群中选取前[n×pe]个个体放到新种群;设精英率pe=0.1,则[n×pe]=[10×0.1]=1,因此从种群中选择一个适应度值最小的个体ch1={6.03,5.02,3.07,5.49,6.44,3.48,5.53,5.55,5.68,4.56,3.70,4.72,6.83,6.84,6.96}放到新种群,即ch′1=ch1,则np={ch′1}。执行步骤8:进行个体迁徙,即采用个体随机生成操作生成[n×pim]个个体放到新种群;设迁徙率pim=0.1,则[n×pim]=[10×0.1]=1,因此基于个体随机生成操作生成1个新个体ch′2={5.64,3.61,5.93,5.13,6.85,3.17,4.78,4.25,5.06,2.54,3.74,3.39,1.09,5.80,1.78},将新个体放到新种群ch′2,则np={ch′1,ch′2}。执行步骤9:进行参数均匀交叉操作生成n-[n×pe]-[n×pim]个个体放到新种群;设β=0.5;采用参数化均匀交叉生成n-[n×pe]-[n×pim]=10-1-1=8个新个体放到新种群;基于参数化均匀交叉操作生成一个新个体的具体实施过程如下:采用锦标赛法从当代种群中随机选择两个不同的个体作为父体1和父体2:即从当代种群中随机选择两个个体,其为ch9和ch6,由于rs9=2099.00<rs6=5085.24,因此选择ch9作为父体1,即chp1=ch9={6.55,5.93,2.29,4.34,2.22,1.84,4.05,5.38,5.06,2.82,3.86,3.23,6.52,6.17,6.78};再从当代种群中随机选择两个个体,其为ch2和ch4,由于rs2=4895.84>rs4=4102.48,因此选择ch4作为父体2;即chp2=ch4={1.80,4.96,3.60,6.37,2.07,4.60,4.76,6.51,4.29,2.58,6.53,4.31,6.00,4.21,1.48};如表8所示,针对第1个基因:随机生成一个[0,1)的小数,其为0.63,由于0.63大于0.5,因此子体的第1个基因g1来自于父体2,即g1=1.80;针对第2个基因:随机生成一个[0,1)的小数0.87,由于0.87大于0.5,因此子体的第2个基因g2来自于父体2,即g2=4.96;针对第3个基因:随机生成一个[0,1)的小数0.10,由于0.10小于0.5,因此子体的第3个基因g3来自于父体1,即g3=2.29;……;这样不断重复执行以上操作,直至子体的最后一个基因也确定,生成的子体为ch′3={1.80,4.96,2.29,6.37,2.07,1.84,4.05,5.38,5.06,2.58,3.86,4.31,6.00,6.17,6.78};父体16.555.932.294.342.221.844.055.385.062.823.863.236.526.176.78父体21.804.963.606.372.074.604.766.514.292.586.534.316.004.211.48随机数0.630.870.100.890.700.310.440.120.470.520.020.660.780.130.16与β的关系>><>><<<<><>><<子体1.804.962.296.372.071.844.055.385.062.583.864.316.006.176.78表8同理,经参数化均匀交叉操作生成新种群中剩余的7个个体为:ch′4={6.55,5.13,2.29,3.51,1.17,1.84,4.05,5.38,3.76,4.73,3.86,3.23,6.52,6.17,6.98};ch′5={1.81,5.49,5.09,6.84,1.71,4.62,5.71,6.50,4.59,2.99,4.86,4.87,6.46,2.17,1.67};ch′6={6.55,4.96,3.60,4.34,2.22,4.60,4.76,6.51,5.06,2.82,3.86,4.31,6.00,4.21,6.78};ch′7={6.03,5.02,3.07,5.49,1.17,3.48,5.55,6.58,5.68,4.73,3.70,4.72,6.92,6.93,6.98};ch′8={6.55,5.02,2.29,5.49,2.22,1.84,4.05,5.55,5.68,2.82,3.70,3.23,6.52,6.17,6.78};ch′9={4.11,5.02,5.27,5.49,6.44,4.53,5.55,5.55,5.68,4.56,3.70,4.85,6.83,6.84,6.98};ch′10={1.81,3.44,5.09,3.51,6.87,4.62,5.71,6.50,5.18,4.36,2.64,4.85,6.92,2.17,1.67};这样生成的新种群为np={ch′1,ch′2,ch′3,ch′4,ch′5,ch′6,ch′7,ch′8,ch′9,ch′10}。执行步骤10:令新种群为当代种群,转到步骤5;令cp=np,则当代种群中的所有个体为:ch1={6.03,5.02,3.07,5.49,6.44,3.48,5.53,5.55,5.68,4.56,3.70,4.72,6.83,6.84,6.96};ch2={5.64,3.61,5.93,5.13,6.85,3.17,4.78,4.25,5.06,2.54,3.74,3.39,1.09,5.80,1.78};ch3={1.80,4.96,2.29,6.37,2.07,1.84,4.05,5.38,5.06,2.58,3.86,4.31,6.00,6.17,6.78};ch4={6.55,5.13,2.29,3.51,1.17,1.84,4.05,5.38,3.76,4.73,3.86,3.23,6.52,6.17,6.98};ch5={1.81,5.49,5.09,6.84,1.71,4.62,5.71,6.50,4.59,2.99,4.86,4.87,6.46,2.17,1.67};ch6={6.55,4.96,3.60,4.34,2.22,4.60,4.76,6.51,5.06,2.82,3.86,4.31,6.00,4.21,6.78};ch7={6.03,5.02,3.07,5.49,1.17,3.48,5.55,6.58,5.68,4.73,3.70,4.72,6.92,6.93,6.98};ch8={6.55,5.02,2.29,5.49,2.22,1.84,4.05,5.55,5.68,2.82,3.70,3.23,6.52,6.17,6.78};ch9={4.11,5.02,5.27,5.49,6.44,4.53,5.55,5.55,5.68,4.56,3.70,4.85,6.83,6.84,6.98};ch10={1.81,3.44,5.09,3.51,6.87,4.62,5.71,6.50,5.18,4.36,2.64,4.85,6.92,2.17,1.67};转到步骤5;执行步骤5:采用fbi&d和ldi方法改进当代种群中新产生的个体并计算其适应度值;经fbi&d和ldi方法改进后,当代种群变为:ch1={6.03,5.02,3.07,5.49,6.44,3.48,5.53,5.55,5.68,4.56,3.70,4.72,6.83,6.84,6.96};ch2={5.07,3.08,5.15,5.39,6.34,4.21,4.46,4.57,5.69,2.64,3.68,3.71,1.84,5.95,1.97};ch3={5.80,4.96,2.29,6.37,2.07,1.84,4.05,5.38,5.06,2.58,3.86,4.31,6.00,6.17,6.78};ch4={6.55,5.13,2.29,3.51,1.17,1.84,4.05,5.38,5.76,4.73,3.86,3.23,6.52,6.17,6.98};ch5={1.81,5.49,5.09,6.84,1.71,3.62,5.71,6.50,4.59,2.99,4.86,4.87,6.46,2.17,1.67};ch6={6.16,4.01,3.39,4.38,1.25,4.45,4.52,6.56,5.74,2.59,3.75,4.88,6.92,4.95,6.99};ch7={6.03,5.02,3.07,5.49,2.17,3.48,5.55,6.58,5.68,4.73,3.70,4.72,6.92,6.93,6.98};ch8={6.55,5.02,2.29,4.49,2.22,1.84,4.05,5.55,5.68,2.82,3.70,3.23,6.52,6.17,6.78};ch9={4.11,5.02,5.27,5.49,6.44,4.53,5.55,5.55,5.68,4.56,3.70,4.85,6.83,6.84,6.98};ch10={1.81,3.44,5.09,3.51,6.87,4.62,5.71,6.50,5.18,4.36,6.64,4.85,6.92,2.17,1.67};其适应度值即工作流响应时间分别为:rs1=1174.64,rs2=4742.60,rs3=2307.64,rs4=2478.04,rs5=4894.52,rs6=4134.76,rs7=1615.56,rs8=2099,rs9=1313.60,rs10=4667.60;……这样不断重复执行步骤5~10,直到迭代终止条件满足,即连续20代最优个体没改进;此时当代种群变为:ch1={6.03,5.02,3.07,3.51,2.17,3.48,5.55,6.58,5.76,4.73,3.86,4.72,6.92,6.17,6.98};ch2={4.11,5.02,5.27,5.49,6.44,3.48,5.55,5.55,5.68,4.56,3.70,4.72,6.83,6.84,6.96};ch3={6.13,5.15,5.11,1.21,6.28,3.14,4.34,5.44,5.76,4.65,3.75,3.85,6.91,6.94,6.95};ch4={6.03,5.02,1.29,6.51,2.17,3.48,5.55,5.55,5.76,4.56,3.70,4.72,6.52,6.84,6.96};ch5={6.03,5.02,3.07,5.49,1.17,3.48,5.55,5.55,5.68,4.73,3.70,4.72,6.83,6.93,6.96};ch6={6.55,5.02,2.29,3.51,6.22,1.84,4.05,5.55,5.76,4.73,3.86,3.23,6.52,6.17,6.78};ch7={6.55,5.02,2.29,5.49,2.22,1.84,4.05,6.58,5.68,4.82,3.70,4.72,6.92,6.93,6.78};ch8={1.81,3.02,5.09,5.49,2.17,4.62,5.55,6.58,5.18,4.36,6.64,4.85,6.92,6.93,1.67};ch9={5.10,4.03,3.00,5.25,6.27,5.12,5.31,5.37,5.61,4.47,3.44,4.65,6.77,6.84,6.98};ch10={4.11,5.02,3.07,5.49,6.44,3.48,5.55,5.55,5.68,4.56,3.70,4.72,6.83,6.84,6.96};其适应度值即工作流响应时间分别为:rs1=1625.80,rs2=1461.52,rs3=1373.20,rs4=1705.64,rs5=1614.36,rs6=1895.00,rs7=1886.12,rs8=1935.72,rs9=1098.16,rs10=1313.60;执行步骤11:输出当代种群中的最优个体,其对应的调度方案为优化方案;当代种群中的最优个体为ch9={5.10,4.03,3.00,5.25,6.27,5.12,5.31,5.37,5.61,4.47,3.44,4.65,6.77,6.84,6.98},工作流响应时间rs9=1098.16,其对应的调度方案如表9所示。调度顺序任务编号开始时间执行时间结束时间虚拟机编号130.00182.16182.163220.00185.16185.164310.00129.12129.12546182.16243.52425.68554129.1234.72163.84565185.16412.72597.88677597.886.32604.20588604.202.96607.165911607.1654.64661.8031010607.1660.64667.804119607.1638.00645.1651212667.80400.081067.88413131067.889.281077.16614141077.1610.001087.16615151087.162.601089.766表9上述实施例只是本发明的较佳实施例,并不是对本发明技术方案的限制,只要是不经过创造性劳动即可在上述实施例的基础上实现的技术方案,均应视为落入本发明专利的权利保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1